Jump to content

[1.16.x][Question]fluid generators


Recommended Posts

I was trying to find some information and documentation about making a lava or water generator like i would do with ItemStack but with Fluids but unable to find much i been following tutorials in making basic items/tools/armor and excited i was able to figure but i started the process but got stuck after getting this far


package raziel23x.projectskyblock.utils;

import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntityType;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import raziel23x.projectskyblock.ProjectSkyblock;
import raziel23x.projectskyblock.blocks.*;

public class RegistryHandler {

public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, ProjectSkyblock.MOD_ID);
    public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, ProjectSkyblock.MOD_ID);
    private static final DeferredRegister<TileEntityType<?>> TILES = DeferredRegister.create(ForgeRegistries.TILE_ENTITIES, ProjectSkyblock.MOD_ID);
  public static final RegistryObject<Block> LAVA_GENERATOR_BLOCK  = BLOCKS.register("lava_generator_block", LavaGeneratorBlock::new);
   public static final RegistryObject<Item> LAVA_GENERATOR_BLOCK_ITEM = ITEMS.register("lava_generator_block", () -> new BlockItemBaseLavaGenerator(LAVA_GENERATOR_BLOCK.get()));
  public static final RegistryObject<TileEntityType<LavaGeneratorTile>> LAVAGENERATOR_TILE = TILES.register("lava_generator_block", () -> TileEntityType.Builder.create(LavaGeneratorTile::new, LAVA_GENERATOR_BLOCK.get()).build(null));
  public static void init() {





package raziel23x.projectskyblock.blocks;

import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockReader;

import javax.annotation.Nullable;

public class LavaGeneratorBlock extends Block {
    public LavaGeneratorBlock(){


    public boolean hasTileEntity(BlockState state) {
        return true;

    public TileEntity createTileEntity(BlockState state, IBlockReader world) {
        return new LavaGeneratorTile();



package raziel23x.projectskyblock.blocks;

import net.minecraft.fluid.Fluids;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.ITickableTileEntity;
import net.minecraft.util.Direction;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

import static raziel23x.projectskyblock.utils.RegistryHandler.LAVAGENERATOR_TILE;

public class LavaGeneratorTile extends TileEntity implements ITickableTileEntity {
    private int tick;
    public LavaGeneratorTile() {

    public void tick() {
        if (tick == 10) {
            tick = 0;
            FluidStack stack = new FluidStack(Fluids.LAVA, Integer.MAX_VALUE);
         // CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY


    public LazyOptional<FluidTank> fluidHandler = LazyOptional.of(this::createFluidHandler);

    public FluidTank getFluidHandler() {
        return fluidHandler.orElseThrow(RuntimeException::new);

    public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
        if (!this.removed) {
            if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) {
                return this.fluidHandler.cast();
        return super.getCapability(cap, side);

    private FluidTank createFluidHandler() {
        return new FluidTank(FluidAttributes.BUCKET_VOLUME * 8) {
            protected void onContentsChanged() {



package raziel23x.projectskyblock.blocks;

import net.minecraft.block.Block;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.util.text.TranslationTextComponent;
import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import raziel23x.projectskyblock.ProjectSkyblock;

import java.util.List;

public class BlockItemBaseLavaGenerator extends BlockItem {
    public BlockItemBaseLavaGenerator(Block block) {
        super(block, new Properties().group(ProjectSkyblock.TAB).maxStackSize(1));
    public void addInformation(ItemStack stack, World worldIn, List<ITextComponent> tooltip, ITooltipFlag flagIn) {
        tooltip.add((new TranslationTextComponent("tip."+ProjectSkyblock.MOD_ID+".LavaGeneratorline1").mergeStyle(TextFormatting.GREEN)));
        tooltip.add((new TranslationTextComponent("tip."+ProjectSkyblock.MOD_ID+".LavaGeneratorline2").mergeStyle(TextFormatting.YELLOW)));
        super.addInformation(stack, worldIn, tooltip, flagIn);



out on my own about a simple cobblegen and though i would try my hand at doing one for water and lava just to see if i can pull it off but cant seem to find much information


i am just lost and maybe someone could point me in the right direction

Edited by raziel23x

Please Kill me i am married with 2 kids HELP!!!!!!!!

Link to comment
Share on other sites

If I remember correctliiy there are some nbt tags about how much an container is filled with fluids.

I wouldn't recommend doing the graphical interface yourself.

I am sure there are some libaries which could handle the graphics for you.


If you want to find out which blockdata to add to your block:

Download any mod which adds fluid containers

place one of them in your world 

then read out the blockdata of the block

/blockdata x y z 

x y and z can be retrieved by typing out / blockdata  and then pressing [Tab] for each coordinate whilst looking directly at the block of your destination


I hope I could help

I am going to research an fluid interface 


here is an topic discussion explaining how to do it

here you can find a list of libaries:



I hope I could help...

Dennis out!

Link to comment
Share on other sites

Vanilla buckets know nothing about a modded block whose tile entity offers a fluid capability.  You need to code the bucket-filling logic in your block's onBlockActivated() method.  Tip: don't just check for a bucket, check for any item which offers the CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, since that would also allow other mod fluids containers (tanks etc.) to be filled from your block.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • 무주룸사롱 ※BCGAME4·COM# 하왕십리룸사롱 신사룸사롱 군포룸사롱 쌍문룸사롱 cdk75 가양룸사롱 홍파룸사롱 대구룸사롱 평택룸사롱 ofv42 가양룸사롱 불광룸사롱 오산룸사롱 광명룸사롱 qbs73 완주룸사롱 구미룸사롱 신창룸사롱 마장룸사롱 clj67 공릉룸사롱 상도룸사롱 남대문룸사롱 제천룸사롱 xfl17 진천룸사롱 연건룸사롱 묵정룸사롱 당산룸사롱 bhn78 구의룸사롱 안암룸사롱 화양룸사롱 송정룸사롱 vwt80 상월곡룸사롱 상도룸사롱 개포룸사롱 예산룸사롱 xci55 장위룸사롱 하월곡룸사롱 봉래룸사롱 논현룸사롱 jts76 문배룸사롱 신창룸사롱 고흥룸사롱 신공덕룸사롱 ncm83 영천룸사롱 전농룸사롱 수표룸사롱 홍성룸사롱 wfw42 항동룸사롱 석촌룸사롱 능동룸사롱 합정룸사롱 vxe73 독산룸사롱 광희룸사롱 동대문룸사롱 충무룸사롱 dlr49 구로룸사롱 수색룸사롱 완주룸사롱 상계룸사롱 aah76 가락룸사롱 천연룸사롱 홍지룸사롱 태평룸사롱 qfp92 봉천룸사롱 동두천룸사롱 옥천룸사롱 삼선룸사롱 fex86 효자룸사롱 잠원룸사롱 필운룸사롱 북가좌룸사롱 uiy28 밀양룸사롱 교남룸사롱 신원룸사롱 행당룸사롱 hoo99 고흥룸사롱 고덕룸사롱 장지룸사롱 양주룸사롱 sod20 동두천룸사롱 누상룸사롱 마장룸사롱 신촌룸사롱 vbh05 청진룸사롱 우이룸사롱 수하룸사롱 보광룸사롱 yia18 중곡룸사롱 혜화룸사롱 신대방룸사롱 산림룸사롱 wwi66 홍성룸사롱 창동룸사롱 군포룸사롱 성수룸사롱 pke43
    • 야마가타 셔츠룸 커뮤니티 ▶BCGAME88.COM☎ 야마가타 셔츠룸 업소모집 창던지기 야마가타 셔츠룸 동호회 다이빙 셔츠룸 여행 마라톤 셔츠룸 위치[본사문의 텔레 @JBOX7] 야마가타 셔츠룸 투어 올림픽 야마가타 셔츠룸 하는곳 권투 셔츠룸 영상 스키 셔츠룸 사이트[총판문의 카톡 JBOX7] 야마가타 셔츠룸 접속 씨름 야마가타 셔츠룸 검증 올림픽 셔츠룸 접속 철봉 셔츠룸 틱톡[각종 오피 커뮤니티 제작] 야마가타 셔츠룸 주소 피클볼 야마가타 셔츠룸 새주소 야구 셔츠룸 스토리 아이스하키 셔츠룸 텔레그램[마케팅문의] 야마가타 셔츠룸 카카오톡 승마 야마가타 셔츠룸 접속 원반던지기 셔츠룸 주소 F1그랑프리 셔츠룸 시스템 [카지노본사] 야마가타 셔츠룸 검증 보트경기 야마가타 셔츠룸 유투브 보트경기 셔츠룸 총판 복싱 셔츠룸 지도 [스포츠본사] 야마가타 셔츠룸 오픈채팅 배구 야마가타 셔츠룸 검증 크리켓 셔츠룸 오픈채팅 농구 셔츠룸 커뮤니티[토토본사 문의] 야마가타 셔츠룸 시스템 마라톤 야마가타 셔츠룸 유투브 럭비 셔츠룸 주소 배드민턴 셔츠룸 여행 [토토총판 구매] 야마가타 셔츠룸 여행 쇼트트랙 야마가타 셔츠룸 업소모집 싱크로나이즈 셔츠룸 투어 킥복싱 셔츠룸 주소[카지노총판] 야마가타 셔츠룸 이야기 미식축구 야마가타 셔츠룸 총판 야구 셔츠룸 여행 수영 셔츠룸 새주소[야마토본사] 야마가타 셔츠룸 투어 유도 야마가타 셔츠룸 접속 마루운동 셔츠룸 검증 승마 셔츠룸 검증[바카라총판] 야마가타 셔츠룸 카카오톡 수영 야마가타 셔츠룸 지도 기계체조 셔츠룸 영상 프리스타일 셔츠룸 링크[경마총판] 야마가타 셔츠룸 구인광고 레슬링 야마가타 셔츠룸 총판 사이클 셔츠룸 스토리 킥복싱 셔츠룸 스토리[BCGAME 비씨게임 총판문의]알림 설정 추천 구독 좋아요
    • 오오이타 쇼핑 위치 ◈BCGAME4·COM↖ 오오이타 쇼핑 방송 노르딕 오오이타 쇼핑 영상 멀리뛰기 쇼핑 투어 정구 쇼핑 시스템[본사문의 텔레 @JBOX7] 오오이타 쇼핑 여행 당구 오오이타 쇼핑 사이트 씨름 쇼핑 인스타그램 수영 쇼핑 인스타그램[총판문의 카톡 JBOX7] 오오이타 쇼핑 위치 온라인게임 오오이타 쇼핑 시스템 평균대 쇼핑 업소모집 복싱 쇼핑 새주소[각종 오피 커뮤니티 제작] 오오이타 쇼핑 구인광고 수영 오오이타 쇼핑 트위터 올림픽 쇼핑 오픈채팅 프리스타일 쇼핑 야동[마케팅문의] 오오이타 쇼핑 커뮤니티 씨름 오오이타 쇼핑 동영상 소프트테니스 쇼핑 최신주소 미식축구 쇼핑 사이트 [카지노본사] 오오이타 쇼핑 영상 씨름 오오이타 쇼핑 업소모집 미식축구 쇼핑 접속 보치아 쇼핑 야동 [스포츠본사] 오오이타 쇼핑 방송 장대높이뛰기 오오이타 쇼핑 여행 족구 쇼핑 사이트 마루운동 쇼핑 여행[토토본사 문의] 오오이타 쇼핑 지도 세팍타크로 오오이타 쇼핑 방송 풋볼 쇼핑 사이트 킥복싱 쇼핑 여행 [토토총판 구매] 오오이타 쇼핑 트위터 싱크로나이즈 오오이타 쇼핑 구인광고 씨름 쇼핑 지도 스키 쇼핑 위치[카지노총판] 오오이타 쇼핑 방송 수상스포츠 오오이타 쇼핑 방송 멀리뛰기 쇼핑 추천 리얼 쇼핑 총판[야마토본사] 오오이타 쇼핑 방송 월드컵 오오이타 쇼핑 주소 리얼 쇼핑 추천 골프 쇼핑 시스템[바카라총판] 오오이타 쇼핑 오픈채팅 정구 오오이타 쇼핑 여행 필드하키 쇼핑 위치 리얼 쇼핑 카카오톡[경마총판] 오오이타 쇼핑 라인 플래그 오오이타 쇼핑 틱톡 스키 쇼핑 오픈채팅 권투 쇼핑 검증[BCGAME 비씨게임 총판문의]알림 설정 추천 구독 좋아요
    • 국내 LAPT 카지노펍†BCGAME88·COM↗ 타지키스탄 LAPT 사이트 국내 니카라과 LAPT 놀이터 [본사문의 텔레 JBOX7]국내 LAPT §↓ 사이트 인도네시아 LAPT 모집 국내 콩고 국내 LAPT 접속 [총판문의 카톡 JBOX7]국내 LAPT ↔@ 캐쉬게임 중앙아시아 LAPT 토너먼트 국내 시리아 국내 LAPT 여행 [각종 오피 커뮤니티 제작]국내 LAPT ☞◇ 사이트 바베이도스 LAPT 방법 국내 시저스팰리스카지노 국내 LAPT 카지노펍 [마케팅문의]국내 LAPT ◈& 단톡방 오스트레일리아 LAPT 홀덤펍 국내 포르투갈 국내 LAPT 바카라펍 [카지노본사]국내 LAPT ▼↙ 투어 동남아시아 LAPT 홀덤펍 국내 아이슬란드 국내 LAPT 방송 [스포츠본사]국내 LAPT ㈜* 포커대회 바하마 LAPT 홀덤펍 국내 보스니아 국내 LAPT 싸이트 [토토본사 문의]국내 LAPT ♣※ 게임장 볼리비아 LAPT 싸이트 국내 볼리비아 국내 LAPT 싸이트 [토토총판 구매]국내 LAPT ◈☎ 게임 짐바브웨 LAPT 커뮤니티 국내 네비스 국내 LAPT 업체 [카지노총판]국내 LAPT ↕○ 포커대회 아르헨티나 LAPT 투어 국내 몽골 국내 LAPT 도박장 [야마토본사]국내 LAPT †№ 쿠푼 베네시안카지노 LAPT 본사 국내 에스토니아 국내 LAPT 투어 [바카라총판]국내 LAPT 〓○ 주소 리히텐슈타인 LAPT 주소 국내 베네시안카지노 국내 LAPT 커뮤니티 [경마총판]미크로네시아 LAPT 총판 한국 LAPT 투어 [BCGAME 비씨게임 총판문의]알림 설정 추천 구독 좋아요
    • 이시카와 가요주점 스토리 ㏂BCGAME88·COM◎ 이시카와 가요주점 하는곳 유도 이시카와 가요주점 검증 스키 가요주점 위치 노르딕 가요주점 스토리[본사문의 텔레 @JBOX7] 이시카와 가요주점 검증 안마 이시카와 가요주점 시스템 펜싱 가요주점 구인광고 골프 가요주점 틱톡[총판문의 카톡 JBOX7] 이시카와 가요주점 투어 씨름 이시카와 가요주점 지도 팔씨름 가요주점 모임 정보 필드하키 가요주점 구인광고[각종 오피 커뮤니티 제작] 이시카와 가요주점 주소 철봉 이시카와 가요주점 라인 탁구 가요주점 인스타그램 농구 가요주점 리조트[마케팅문의] 이시카와 가요주점 업소모집 알파인 이시카와 가요주점 영상 양궁 가요주점 스토리 원반던지기 가요주점 검증 [카지노본사] 이시카와 가요주점 라인 정구 이시카와 가요주점 주소 씨름 가요주점 지도 포환던지기 가요주점 모임 정보 [스포츠본사] 이시카와 가요주점 이야기 당구 이시카와 가요주점 시스템 스키 가요주점 위치 유도 가요주점 유투브[토토본사 문의] 이시카와 가요주점 구인광고 온라인게임 이시카와 가요주점 지도 택견 가요주점 텔레그램 아이스하키 가요주점 트위터 [토토총판 구매] 이시카와 가요주점 추천 보치아 이시카와 가요주점 링크 도마 가요주점 커뮤니티 스케이팅 가요주점 인스타그램[카지노총판] 이시카와 가요주점 방송 리얼 이시카와 가요주점 이야기 수상스포츠 가요주점 사이트 레슬링 가요주점 스토리[야마토본사] 이시카와 가요주점 여행 스케이팅 이시카와 가요주점 모임 정보 스키 가요주점 스토리 탁구 가요주점 텔레그램[바카라총판] 이시카와 가요주점 영상 온라인게임 이시카와 가요주점 카카오톡 수구 가요주점 접속 양궁 가요주점 주소[경마총판] 이시카와 가요주점 투어 월드컵 이시카와 가요주점 추천 월드컵 가요주점 접속 테니스 가요주점 주소[BCGAME 비씨게임 총판문의]알림 설정 추천 구독 좋아요
  • Topics

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.