private void outputActiveLava() { FluidStack fluid = tank[1].getFluid(); if (fluid != null) { if (itemStacks[2] != null && itemStacks[2].stackSize == 1) { ItemStack itemStack = itemStacks[2]; if (FluidContainerRegistry.isEmptyContainer(itemStack)) { if (fluid.amount >= FluidContainerRegistry.BUCKET_VOLUME) { FluidStack oneBucketOfFluid = new FluidStack(fluid, FluidContainerRegistry.BUCKET_VOLUME); ItemStack filledBucket = FluidContainerRegistry.fillFluidContainer( oneBucketOfFluid, FluidContainerRegistry.EMPTY_BUCKET); itemStacks[2] = filledBucket; fluid.amount -= FluidContainerRegistry.BUCKET_VOLUME; } } else if (itemStack.getItem() instanceof IFluidContainerItem && (workingTick % 20) == 10) { if (fluid.amount >= FluidContainerRegistry.BUCKET_VOLUME) { IFluidContainerItem fluidContainerItem = (IFluidContainerItem) itemStack.getItem(); FluidStack fluidStack = fluid.copy(); if (fluidStack.amount > FluidContainerRegistry.BUCKET_VOLUME) fluidStack.amount = FluidContainerRegistry.BUCKET_VOLUME; int amount = fluidContainerItem.fill(itemStack, fluidStack, true); if (amount > 0) { fluid.amount -= amount; } if (fluid.amount == 0) tank[1].setFluid(null); } } } } }
private void inputLava() { if (itemStacks[0] != null) { Item item = itemStacks[0].getItem(); if (item != null) { if (item == Items.lava_bucket || item == ModItems.itemActiveLavaBucket) { if (tank[0].getCapacity() - tank[0].getFluidAmount() >= FluidContainerRegistry.BUCKET_VOLUME) { FluidStack fluidStack = FluidContainerRegistry.getFluidForFilledItem(itemStacks[0]); int result = tank[0].fill(fluidStack, false); if (result == FluidContainerRegistry.BUCKET_VOLUME) { itemStacks[0] = new ItemStack(Items.bucket, 1); tank[0].fill(fluidStack, true); } } } else if (item instanceof IFluidContainerItem && (workingTick % 20) == 5) { IFluidContainerItem fluidContainerItem = (IFluidContainerItem) item; FluidStack fluidStack = fluidContainerItem.getFluid(itemStacks[0]); if (fluidStack != null) { fluidStack = fluidStack.copy(); if (fluidStack.amount > FluidContainerRegistry.BUCKET_VOLUME) fluidStack.amount = FluidContainerRegistry.BUCKET_VOLUME; int result = tank[0].fill(fluidStack, true); if (result > 0) { fluidContainerItem.drain(itemStacks[0], result, true); } } } } } }