diff --git a/src/main/java/forestry/apiculture/gadgets/TileAlvearyHygroregulator.java b/src/main/java/forestry/apiculture/gadgets/TileAlvearyHygroregulator.java index 823693d88..e95542055 100755 --- a/src/main/java/forestry/apiculture/gadgets/TileAlvearyHygroregulator.java +++ b/src/main/java/forestry/apiculture/gadgets/TileAlvearyHygroregulator.java @@ -27,6 +27,7 @@ import net.minecraftforge.fluids.FluidTankInfo; import forestry.api.apiculture.IAlvearyComponent; import forestry.api.core.ForestryAPI; import forestry.core.config.Defaults; +import forestry.core.fluids.FluidHelper; import forestry.core.fluids.TankManager; import forestry.core.fluids.tanks.FilteredTank; import forestry.core.interfaces.ILiquidTankContainer; @@ -69,9 +70,9 @@ public class TileAlvearyHygroregulator extends TileAlveary implements IInventory public TileAlvearyHygroregulator() { super(BLOCK_META); - Fluid water = LiquidHelper.getFluid(Defaults.LIQUID_WATER); - Fluid lava = LiquidHelper.getFluid(Defaults.LIQUID_LAVA); - Fluid liquidIce = LiquidHelper.getFluid(Defaults.LIQUID_ICE); + Fluid water = FluidRegistry.getFluid(Defaults.LIQUID_WATER); + Fluid lava = FluidRegistry.getFluid(Defaults.LIQUID_LAVA); + Fluid liquidIce = FluidRegistry.getFluid(Defaults.LIQUID_ICE); liquidTank = new FilteredTank(Defaults.PROCESSOR_TANK_CAPACITY, water, lava, liquidIce); tankManager = new TankManager(liquidTank); @@ -133,14 +134,7 @@ public class TileAlvearyHygroregulator extends TileAlveary implements IInventory // Check if we have suitable items waiting in the item slot if (canInventory.getStackInSlot(0) != null) { - FluidContainerData container = LiquidHelper.getLiquidContainer(canInventory.getStackInSlot(0)); - if (container != null && - (container.fluid.getFluid() == FluidRegistry.WATER || container.fluid.getFluid() == FluidRegistry.LAVA)) { - - canInventory.setInventorySlotContents(0, StackUtils.replenishByContainer(this, canInventory.getStackInSlot(0), container, liquidTank)); - if (canInventory.getStackInSlot(0).stackSize <= 0) - canInventory.setInventorySlotContents(0, null); - } + FluidHelper.drainContainers(tankManager, canInventory, 0); } } @@ -276,7 +270,7 @@ public class TileAlvearyHygroregulator extends TileAlveary implements IInventory @Override public boolean isItemValidForSlot(int slotIndex, ItemStack itemstack) { if (slotIndex == 0) { - FluidStack fluid = LiquidHelper.getFluidStackInContainer(itemstack); + FluidStack fluid = FluidHelper.getFluidStackInContainer(itemstack); if (fluid == null || fluid.amount <= 0) return false; return liquidTank.accepts(fluid.getFluid()); diff --git a/src/main/java/forestry/core/ForestryCore.java b/src/main/java/forestry/core/ForestryCore.java index 45156812c..0905e75b4 100755 --- a/src/main/java/forestry/core/ForestryCore.java +++ b/src/main/java/forestry/core/ForestryCore.java @@ -10,6 +10,8 @@ ******************************************************************************/ package forestry.core; +import com.google.common.collect.ImmutableList; + import java.io.File; import net.minecraft.init.Blocks; @@ -17,15 +19,14 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.server.MinecraftServer; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fluids.FluidRegistry; + import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraftforge.common.MinecraftForge; - -import com.google.common.collect.ImmutableList; - import forestry.api.apiculture.FlowerManager; import forestry.api.core.ForestryAPI; import forestry.api.fuels.EngineBronzeFuel; @@ -89,17 +90,17 @@ public class ForestryCore { Defaults.ENGINE_COPPER_FUEL_VALUE_PEAT, Defaults.ENGINE_COPPER_CYCLE_DURATION_PEAT)); FuelManager.copperEngineFuel.put(ForestryItem.bituminousPeat.getItemStack(), new EngineCopperFuel(ForestryItem.bituminousPeat.getItemStack(), Defaults.ENGINE_COPPER_FUEL_VALUE_BITUMINOUS_PEAT, Defaults.ENGINE_COPPER_CYCLE_DURATION_BITUMINOUS_PEAT)); - FuelManager.bronzeEngineFuel.put(LiquidHelper.getFluid(Defaults.LIQUID_BIOMASS), new EngineBronzeFuel(LiquidHelper.getFluid(Defaults.LIQUID_BIOMASS), + FuelManager.bronzeEngineFuel.put(FluidRegistry.getFluid(Defaults.LIQUID_BIOMASS), new EngineBronzeFuel(FluidRegistry.getFluid(Defaults.LIQUID_BIOMASS), Defaults.ENGINE_FUEL_VALUE_BIOMASS, (int) (Defaults.ENGINE_CYCLE_DURATION_BIOMASS * GameMode.getGameMode().getFloatSetting("fuel.biomass.biogas")), 1)); - FuelManager.bronzeEngineFuel.put(LiquidHelper.getFluid(Defaults.LIQUID_WATER), new EngineBronzeFuel(LiquidHelper.getFluid(Defaults.LIQUID_WATER), + FuelManager.bronzeEngineFuel.put(FluidRegistry.getFluid(Defaults.LIQUID_WATER), new EngineBronzeFuel(FluidRegistry.getFluid(Defaults.LIQUID_WATER), Defaults.ENGINE_FUEL_VALUE_WATER, Defaults.ENGINE_CYCLE_DURATION_WATER, 3)); - FuelManager.bronzeEngineFuel.put(LiquidHelper.getFluid(Defaults.LIQUID_MILK), new EngineBronzeFuel(LiquidHelper.getFluid(Defaults.LIQUID_MILK), + FuelManager.bronzeEngineFuel.put(FluidRegistry.getFluid(Defaults.LIQUID_MILK), new EngineBronzeFuel(FluidRegistry.getFluid(Defaults.LIQUID_MILK), Defaults.ENGINE_FUEL_VALUE_MILK, Defaults.ENGINE_CYCLE_DURATION_MILK, 3)); - FuelManager.bronzeEngineFuel.put(LiquidHelper.getFluid(Defaults.LIQUID_SEEDOIL), new EngineBronzeFuel(LiquidHelper.getFluid(Defaults.LIQUID_SEEDOIL), + FuelManager.bronzeEngineFuel.put(FluidRegistry.getFluid(Defaults.LIQUID_SEEDOIL), new EngineBronzeFuel(FluidRegistry.getFluid(Defaults.LIQUID_SEEDOIL), Defaults.ENGINE_FUEL_VALUE_SEED_OIL, Defaults.ENGINE_CYCLE_DURATION_SEED_OIL, 1)); - FuelManager.bronzeEngineFuel.put(LiquidHelper.getFluid(Defaults.LIQUID_HONEY), new EngineBronzeFuel(LiquidHelper.getFluid(Defaults.LIQUID_HONEY), + FuelManager.bronzeEngineFuel.put(FluidRegistry.getFluid(Defaults.LIQUID_HONEY), new EngineBronzeFuel(FluidRegistry.getFluid(Defaults.LIQUID_HONEY), Defaults.ENGINE_FUEL_VALUE_HONEY, Defaults.ENGINE_CYCLE_DURATION_HONEY, 1)); - FuelManager.bronzeEngineFuel.put(LiquidHelper.getFluid(Defaults.LIQUID_JUICE), new EngineBronzeFuel(LiquidHelper.getFluid(Defaults.LIQUID_JUICE), + FuelManager.bronzeEngineFuel.put(FluidRegistry.getFluid(Defaults.LIQUID_JUICE), new EngineBronzeFuel(FluidRegistry.getFluid(Defaults.LIQUID_JUICE), Defaults.ENGINE_FUEL_VALUE_JUICE, Defaults.ENGINE_CYCLE_DURATION_JUICE, 1)); // Set rain substrates diff --git a/src/main/java/forestry/core/fluids/FluidHelper.java b/src/main/java/forestry/core/fluids/FluidHelper.java index 9d7f65071..2eac3fb34 100644 --- a/src/main/java/forestry/core/fluids/FluidHelper.java +++ b/src/main/java/forestry/core/fluids/FluidHelper.java @@ -10,22 +10,28 @@ ******************************************************************************/ package forestry.core.fluids; -import forestry.core.fluids.tanks.StandardTank; -import forestry.core.inventory.InvTools; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; import net.minecraft.block.Block; import net.minecraft.block.BlockLiquid; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; -import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.world.World; -import net.minecraftforge.fluids.*; + +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidBlock; +import net.minecraftforge.fluids.IFluidContainerItem; +import net.minecraftforge.fluids.IFluidHandler; + +import forestry.core.fluids.tanks.StandardTank; +import forestry.core.inventory.InvTools; +import forestry.core.utils.StackUtils; /** * @@ -63,7 +69,7 @@ public final class FluidHelper { FluidStack available = tank.drain(side, Integer.MAX_VALUE, false); if (available != null) { - ItemStack filled = fillContainer(available, current); + ItemStack filled = getFilledContainer(available, current); liquid = getFluidStackInContainer(filled); if (liquid != null) { @@ -116,6 +122,10 @@ public final class FluidHelper { } public static boolean fillContainers(IFluidHandler fluidHandler, IInventory inv, int inputSlot, int outputSlot, Fluid fluidToFill) { + return fillContainers(fluidHandler, inv, inputSlot, outputSlot, fluidToFill, true); + } + + public static boolean fillContainers(IFluidHandler fluidHandler, IInventory inv, int inputSlot, int outputSlot, Fluid fluidToFill, boolean doFill) { ItemStack input = inv.getStackInSlot(inputSlot); ItemStack output = inv.getStackInSlot(outputSlot); ItemStack filled = getFilledContainer(fluidToFill, input); @@ -123,12 +133,14 @@ public final class FluidHelper { FluidStack fluidInContainer = getFluidStackInContainer(filled); FluidStack drain = fluidHandler.drain(ForgeDirection.UNKNOWN, fluidInContainer, false); if (drain != null && drain.amount == fluidInContainer.amount) { - fluidHandler.drain(ForgeDirection.UNKNOWN, fluidInContainer, true); - if (output == null) - inv.setInventorySlotContents(outputSlot, filled); - else - output.stackSize++; - inv.decrStackSize(inputSlot, 1); + if (doFill) { + fluidHandler.drain(ForgeDirection.UNKNOWN, fluidInContainer, true); + if (output == null) + inv.setInventorySlotContents(outputSlot, filled); + else + output.stackSize++; + inv.decrStackSize(inputSlot, 1); + } return true; } } @@ -143,30 +155,37 @@ public final class FluidHelper { ItemStack input = inv.getStackInSlot(inputSlot); ItemStack output = inv.getStackInSlot(outputSlot); - if (input != null) { - FluidStack fluidInContainer = getFluidStackInContainer(input); - ItemStack emptyItem = input.getItem().getContainerItem(input); - if (fluidInContainer != null && (emptyItem == null || output == null - || (inputSlot == outputSlot && input.stackSize == 1) - || (output.stackSize < output.getMaxStackSize() && InvTools.isItemEqual(output, emptyItem)))) { - int used = fluidHandler.fill(ForgeDirection.UNKNOWN, fluidInContainer, false); - if (used >= fluidInContainer.amount) { - fluidHandler.fill(ForgeDirection.UNKNOWN, fluidInContainer, true); - if (emptyItem != null) - if (output == null) - inv.setInventorySlotContents(outputSlot, emptyItem); - else - output.stackSize++; - inv.decrStackSize(inputSlot, 1); - return true; - } - } - } - return false; - } + if (input == null) + return false; - public static boolean isBucket(ItemStack stack) { - return FluidContainerRegistry.isBucket(stack); + FluidStack fluidInContainer = getFluidStackInContainer(input); + if (fluidInContainer == null) + return false; + + int used = fluidHandler.fill(ForgeDirection.UNKNOWN, fluidInContainer, false); + if (used < fluidInContainer.amount) + return false; + + fluidHandler.fill(ForgeDirection.UNKNOWN, fluidInContainer, true); + + ItemStack emptyItem = getEmptyContainer(input); + + // unstackable containers like buckets are not consumed + if (outputSlot == inputSlot && input.getMaxStackSize() == 1) { + inv.setInventorySlotContents(outputSlot, emptyItem); + return true; + } + + if (emptyItem != null) { + if (output == null) { + inv.setInventorySlotContents(outputSlot, emptyItem); + } else if (StackUtils.isIdenticalItem(output, emptyItem) && (output.stackSize < output.getMaxStackSize())) { + output.stackSize++; + } + // else output item is consumed + } + inv.decrStackSize(inputSlot, 1); + return true; } public static boolean isContainer(ItemStack stack) { @@ -176,48 +195,116 @@ public final class FluidHelper { } public static boolean isFilledContainer(ItemStack stack) { - return FluidContainerRegistry.isFilledContainer(stack); + if (FluidContainerRegistry.isFilledContainer(stack)) + return true; + + Item item = stack.getItem(); + if (item instanceof IFluidContainerItem) { + IFluidContainerItem containerItem = (IFluidContainerItem)item; + FluidStack fluidStack = containerItem.getFluid(stack); + return fluidStack != null && fluidStack.amount > 0; + } + + return false; } - public static boolean isEmptyContainer(ItemStack stack) { - return FluidContainerRegistry.isEmptyContainer(stack); + public static boolean isFillableContainer(ItemStack empty, FluidStack liquid) { + Item item = empty.getItem(); + if (item instanceof IFluidContainerItem) { + IFluidContainerItem containerItem = (IFluidContainerItem)item; + return containerItem.fill(empty, liquid, false) > 0; + } + + for (FluidContainerData cont : FluidContainerRegistry.getRegisteredFluidContainerData()) { + if (cont.fluid.isFluidEqual(liquid) && (cont.emptyContainer != null && cont.emptyContainer.isItemEqual(empty))) + return true; + } + + return false; + } + + public static boolean isEmptyContainer(ItemStack empty) { + + if (FluidContainerRegistry.isEmptyContainer(empty)) + return true; + + Item item = empty.getItem(); + if (item instanceof IFluidContainerItem) { + IFluidContainerItem containerItem = (IFluidContainerItem)item; + FluidStack fluid = containerItem.getFluid(empty); + return fluid == null || fluid.amount == 0; + } + + return false; + } + + public static ItemStack getEmptyContainer(ItemStack container) { + + Item item = container.getItem(); + if (item instanceof IFluidContainerItem) { + ItemStack empty = container.copy(); + empty.stackSize = 1; + IFluidContainerItem containerItem = (IFluidContainerItem) item; + containerItem.drain(empty, Integer.MAX_VALUE, true); + return empty; + } + + return FluidContainerRegistry.drainFluidContainer(container); } public static ItemStack getFilledContainer(Fluid fluid, ItemStack empty) { - if (fluid == null || empty == null) + if (fluid == null) return null; - return FluidContainerRegistry.fillFluidContainer(new FluidStack(fluid, Integer.MAX_VALUE), empty); + + FluidStack fluidToFill = new FluidStack(fluid, Integer.MAX_VALUE); + + return getFilledContainer(fluidToFill, empty); } - public static ItemStack getFilledContainer(FluidStack fluid, ItemStack empty) { - if (fluid == null || empty == null) - return null; - fluid = fluid.copy(); - fluid.amount = Integer.MAX_VALUE; - return FluidContainerRegistry.fillFluidContainer(fluid, empty); - } - - public static ItemStack fillContainer(FluidStack liquid, ItemStack empty) { + public static ItemStack getFilledContainer(FluidStack liquid, ItemStack empty) { if (liquid == null || empty == null) return null; + + Item item = empty.getItem(); + if (item instanceof IFluidContainerItem) { + ItemStack full = empty.copy(); + full.stackSize = 1; + IFluidContainerItem containerItem = (IFluidContainerItem) item; + containerItem.fill(full, liquid, true); + return full; + } + return FluidContainerRegistry.fillFluidContainer(liquid, empty); } public static FluidStack getFluidStackInContainer(ItemStack stack) { + Item item = stack.getItem(); + if (item instanceof IFluidContainerItem) { + IFluidContainerItem containerItem = (IFluidContainerItem) item; + return containerItem.getFluid(stack); + } + return FluidContainerRegistry.getFluidForFilledItem(stack); } - public static Fluid getFluidInContianer(ItemStack stack) { - FluidStack fluidStack = FluidContainerRegistry.getFluidForFilledItem(stack); + public static Fluid getFluidInContainer(ItemStack stack) { + FluidStack fluidStack = getFluidStackInContainer(stack); return fluidStack != null ? fluidStack.getFluid() : null; } public static boolean containsFluidStack(ItemStack stack, FluidStack fluidStack) { + Item item = stack.getItem(); + if (item instanceof IFluidContainerItem) { + IFluidContainerItem containerItem = (IFluidContainerItem) item; + FluidStack contained = containerItem.getFluid(stack); + return contained != null && contained.containsFluid(fluidStack); + } + return FluidContainerRegistry.containsFluid(stack, fluidStack); } public static boolean containsFluid(ItemStack stack, Fluid fluid) { - return FluidContainerRegistry.containsFluid(stack, new FluidStack(fluid, 1)); + return containsFluidStack(stack, new FluidStack(fluid, 1)); } public static boolean isFluidEqual(FluidStack L1, FluidStack L2) { @@ -226,24 +313,6 @@ public final class FluidHelper { return L1.isFluidEqual(L2); } - public static Collection getContainersFilledWith(FluidStack fluidStack) { - List containers = new ArrayList(); - for (FluidContainerData data : FluidContainerRegistry.getRegisteredFluidContainerData()) { - FluidStack inContainer = getFluidStackInContainer(data.filledContainer); - if (inContainer != null && inContainer.containsFluid(fluidStack)) - containers.add(data.filledContainer.copy()); - } - return containers; - } - - public static void nerfWaterBottle() { - for (FluidContainerData data : FluidContainerRegistry.getRegisteredFluidContainerData()) - if (data.filledContainer.getItem() == Items.potionitem && data.emptyContainer.getItem() == Items.glass_bottle && Fluids.WATER.is(data.fluid)) { - data.fluid.amount = 333; - return; - } - } - public static FluidStack drainBlock(World world, int x, int y, int z, boolean doDrain) { return drainBlock(world.getBlock(x, y, z), world, x, y, z, doDrain); } diff --git a/src/main/java/forestry/core/gadgets/BlockBase.java b/src/main/java/forestry/core/gadgets/BlockBase.java index 404db46d6..7f4fe43be 100755 --- a/src/main/java/forestry/core/gadgets/BlockBase.java +++ b/src/main/java/forestry/core/gadgets/BlockBase.java @@ -22,20 +22,22 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; + import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.IFluidHandler; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +import forestry.core.fluids.FluidHelper; import forestry.core.interfaces.IOwnable; import forestry.core.items.ItemNBTTile; import forestry.core.proxy.Proxies; -import forestry.core.utils.LiquidHelper; import forestry.core.utils.StringUtil; public class BlockBase extends BlockForestry { @@ -167,7 +169,7 @@ public class BlockBase extends BlockForestry { ItemStack current = player.getCurrentEquippedItem(); if (current != null && current.getItem() != Items.bucket && tile instanceof IFluidHandler) { if (Proxies.common.isSimulating(world)) { - if (LiquidHelper.handleRightClick((IFluidHandler) tile, ForgeDirection.getOrientation(side), player, true, tile.canDrainWithBucket())) { + if (FluidHelper.handleRightClick((IFluidHandler) tile, ForgeDirection.getOrientation(side), player, true, tile.canDrainWithBucket())) { return true; } } else { diff --git a/src/main/java/forestry/core/gadgets/TilePowered.java b/src/main/java/forestry/core/gadgets/TilePowered.java index 41fea59e5..895539cb1 100644 --- a/src/main/java/forestry/core/gadgets/TilePowered.java +++ b/src/main/java/forestry/core/gadgets/TilePowered.java @@ -118,32 +118,6 @@ public abstract class TilePowered extends TileBase implements IRenderableMachine energyManager.readFromNBT(nbt); } - /* LIQUID CONTAINER HANDLING */ - /** - @deprecated Use FluidHelper - */ - @Deprecated - protected ItemStack bottleIntoContainer(ItemStack canStack, ItemStack outputStack, FluidContainerData container, StandardTank tank) { - if (tank.getFluidAmount() < container.fluid.amount) - return outputStack; - if (canStack.stackSize <= 0) - return outputStack; - if (outputStack != null && !outputStack.isItemEqual(container.filledContainer)) - return outputStack; - if (outputStack != null && outputStack.stackSize >= outputStack.getMaxStackSize()) - return outputStack; - - tank.drain(container.fluid.amount, true); - canStack.stackSize--; - - if (outputStack == null) - outputStack = container.filledContainer.copy(); - else - outputStack.stackSize++; - - return outputStack; - } - // / ADDITIONAL LIQUID HANDLING @Override public EnumTankLevel getPrimaryLevel() { diff --git a/src/main/java/forestry/core/items/ItemLiquidContainer.java b/src/main/java/forestry/core/items/ItemLiquidContainer.java index 96c71883e..61254b4a9 100755 --- a/src/main/java/forestry/core/items/ItemLiquidContainer.java +++ b/src/main/java/forestry/core/items/ItemLiquidContainer.java @@ -33,6 +33,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidBlock; import forestry.core.CreativeTabForestry; +import forestry.core.fluids.FluidHelper; import forestry.core.proxy.Proxies; import forestry.core.render.TextureManager; import forestry.core.utils.LiquidHelper; @@ -149,19 +150,18 @@ public class ItemLiquidContainer extends Item { if (fluid == null || fluid.amount <= 0) return itemstack; - // Check whether there is valid container for the liquid. - FluidContainerData container = LiquidHelper.getEmptyContainer(itemstack, fluid); - if (container == null) + ItemStack filledContainer = FluidHelper.getFilledContainer(fluid.getFluid(), itemstack); + if (filledContainer == null) return itemstack; // Search for a slot to stow a filled container in player's // inventory - int slot = getMatchingSlot(entityplayer, container.filledContainer); + int slot = getMatchingSlot(entityplayer, filledContainer); if (slot < 0) return itemstack; if (entityplayer.inventory.getStackInSlot(slot) == null) - entityplayer.inventory.setInventorySlotContents(slot, container.filledContainer.copy()); + entityplayer.inventory.setInventorySlotContents(slot, filledContainer.copy()); else entityplayer.inventory.getStackInSlot(slot).stackSize++; diff --git a/src/main/java/forestry/core/utils/FluidStackMap.java b/src/main/java/forestry/core/utils/FluidStackMap.java index 757c2b466..a4a46e677 100755 --- a/src/main/java/forestry/core/utils/FluidStackMap.java +++ b/src/main/java/forestry/core/utils/FluidStackMap.java @@ -11,6 +11,7 @@ package forestry.core.utils; import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; public class FluidStackMap extends StackMap { @@ -38,9 +39,9 @@ public class FluidStackMap extends StackMap { if (key instanceof FluidStack) return (FluidStack) key; if (key instanceof Fluid) - return LiquidHelper.getLiquid(((Fluid) key).getName(), 1); + return FluidRegistry.getFluidStack(((Fluid) key).getName(), 1); if (key instanceof String) - return LiquidHelper.getLiquid((String) key, 1); + return FluidRegistry.getFluidStack((String) key, 1); return null; } diff --git a/src/main/java/forestry/core/utils/Fluids.java b/src/main/java/forestry/core/utils/Fluids.java index 681b8632f..0a011b318 100755 --- a/src/main/java/forestry/core/utils/Fluids.java +++ b/src/main/java/forestry/core/utils/Fluids.java @@ -18,6 +18,8 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import forestry.core.fluids.FluidHelper; + /** * @author CovertJaguar */ @@ -46,7 +48,7 @@ public enum Fluids { } public boolean isContained(ItemStack containerStack) { - return containerStack != null && LiquidHelper.containsFluid(containerStack, Fluids.WATER.get()); + return containerStack != null && FluidHelper.containsFluid(containerStack, Fluids.WATER.get()); } public static boolean areEqual(Fluid fluid, FluidStack fluidStack) { diff --git a/src/main/java/forestry/core/utils/LiquidHelper.java b/src/main/java/forestry/core/utils/LiquidHelper.java index ac019db20..157ff030f 100755 --- a/src/main/java/forestry/core/utils/LiquidHelper.java +++ b/src/main/java/forestry/core/utils/LiquidHelper.java @@ -10,83 +10,36 @@ ******************************************************************************/ package forestry.core.utils; -import java.util.HashMap; import java.util.LinkedList; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; -import cpw.mods.fml.common.registry.LanguageRegistry; - -import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidHandler; import forestry.api.recipes.RecipeManagers; -import forestry.core.config.Defaults; import forestry.core.config.ForestryItem; import forestry.core.render.TextureManager; public class LiquidHelper { private static final LinkedList myLiquids = new LinkedList(); - private static final HashMap liquidMap = new HashMap(); public static boolean isEmptyLiquidData() { return FluidContainerRegistry.getRegisteredFluidContainerData().length <= 0; } - public static boolean isEmptyContainer(ItemStack empty) { - return FluidContainerRegistry.isEmptyContainer(empty); - } - - public static FluidContainerData getEmptyContainer(ItemStack empty, FluidStack liquid) { - for (FluidContainerData cont : FluidContainerRegistry.getRegisteredFluidContainerData()) { - if (cont.fluid.isFluidEqual(liquid) && (cont.emptyContainer != null && cont.emptyContainer.isItemEqual(empty))) - return cont; - } - - return null; - } - - public static FluidContainerData getLiquidContainer(ItemStack container) { - for (FluidContainerData cont : FluidContainerRegistry.getRegisteredFluidContainerData()) { - if (cont.filledContainer.isItemEqual(container)) - return cont; - } - return null; - } - - public static FluidContainerData createLiquidData(String ident, FluidStack stillLiquid, ItemStack filled, ItemStack container) { - return new FluidContainerData(new FluidStack(getOrCreateLiquid(ident), Defaults.BUCKET_VOLUME), filled, container); - } - - public static boolean isLiquid(String ident, FluidStack stack) { - return FluidRegistry.getFluidID(ident) == stack.fluidID; - } - - public static boolean exists(String ident) { - return FluidRegistry.isFluidRegistered(ident); - } - - public static Fluid getFluid(String ident) { - return FluidRegistry.getFluid(ident); - } - public static Fluid getOrCreateLiquid(String ident) { if (!FluidRegistry.isFluidRegistered(ident)) { Fluid fluid = new Fluid(ident); FluidRegistry.registerFluid(fluid); myLiquids.add(ident); } - liquidMap.put(ident, FluidRegistry.getFluid(ident)); return FluidRegistry.getFluid(ident); } @@ -111,7 +64,7 @@ public class LiquidHelper { } public static void injectLiquidContainer(String name, int volume, ItemStack filled, ItemStack empty, ItemStack remnant, int chance) { - FluidStack contained = getLiquid(name, volume); + FluidStack contained = FluidRegistry.getFluidStack(name, volume); if (contained == null) throw new IllegalArgumentException(String.format("Attempted to inject a liquid container for the non-existent liquid '%s'.", name)); @@ -128,140 +81,9 @@ public class LiquidHelper { public static void resetLiquidIcons(IIconRegister register) { for (String fluidString : myLiquids) { - Fluid fluid = getFluid(fluidString); + Fluid fluid = FluidRegistry.getFluid(fluidString); IIcon icon = TextureManager.getInstance().registerTex(register, "liquid/" + fluid.getName()); fluid.setIcons(icon); - } } - - public static boolean handleRightClick(IFluidHandler tank, ForgeDirection side, EntityPlayer player, boolean fill, boolean drain) { - if (player == null) { - return false; - } - ItemStack current = player.inventory.getCurrentItem(); - if (current != null) { - - FluidStack liquid = FluidContainerRegistry.getFluidForFilledItem(current); - - if (fill && liquid != null) { - int used = tank.fill(side, liquid, true); - - if (used > 0) { - if (!player.capabilities.isCreativeMode) { - player.inventory.setInventorySlotContents(player.inventory.currentItem, StackUtils.consumeItem(current)); - player.inventory.markDirty(); - } - return true; - } - - } else if (drain) { - - FluidStack available = tank.drain(side, Integer.MAX_VALUE, false); - if (available != null) { - ItemStack filled = FluidContainerRegistry.fillFluidContainer(available, current); - - liquid = FluidContainerRegistry.getFluidForFilledItem(filled); - if (liquid != null) { - - if (current.stackSize > 1) { - if (!player.inventory.addItemStackToInventory(filled)) - return false; - player.inventory.setInventorySlotContents(player.inventory.currentItem, StackUtils.consumeItem(current)); - player.inventory.markDirty(); - } else { - player.inventory.setInventorySlotContents(player.inventory.currentItem, StackUtils.consumeItem(current)); - player.inventory.setInventorySlotContents(player.inventory.currentItem, filled); - player.inventory.markDirty(); - } - - tank.drain(side, liquid.amount, true); - return true; - } - } - } - } - return false; - } - - public static void processContainers(IFluidHandler fluidHandler, IInventory inv, int inputSlot, int outputSlot, Fluid fluidToFill, boolean processFilled, boolean processEmpty) { - ItemStack input = inv.getStackInSlot(inputSlot); - - if (input == null) - return; - - if (processFilled && drainContainers(fluidHandler, inv, inputSlot, outputSlot)) - return; - - if (processEmpty && fluidToFill != null) - fillContainers(fluidHandler, inv, inputSlot, outputSlot, fluidToFill); - } - - public static boolean fillContainers(IFluidHandler fluidHandler, IInventory inv, int inputSlot, int outputSlot, Fluid fluidToFill) { - return fillContainers(fluidHandler, inv, inputSlot, outputSlot, fluidToFill, true); - } - - public static boolean fillContainers(IFluidHandler fluidHandler, IInventory inv, int inputSlot, int outputSlot, Fluid fluidToFill, boolean doFill) { - ItemStack input = inv.getStackInSlot(inputSlot); - ItemStack output = inv.getStackInSlot(outputSlot); - ItemStack filled = getFilledContainer(fluidToFill, input); - if (filled != null && (output == null || (output.stackSize < output.getMaxStackSize() && StackUtils.isIdenticalItem(filled, output)))) { - FluidStack fluidInContainer = getFluidStackInContainer(filled); - FluidStack drain = fluidHandler.drain(ForgeDirection.UNKNOWN, fluidInContainer, false); - if (drain != null && drain.amount == fluidInContainer.amount) { - if (doFill) { - fluidHandler.drain(ForgeDirection.UNKNOWN, fluidInContainer, true); - if (output == null) - inv.setInventorySlotContents(outputSlot, filled); - else - output.stackSize++; - inv.decrStackSize(inputSlot, 1); - } - return true; - } - } - return false; - } - - public static boolean drainContainers(IFluidHandler fluidHandler, IInventory inv, int inputSlot, int outputSlot) { - ItemStack input = inv.getStackInSlot(inputSlot); - ItemStack output = inv.getStackInSlot(outputSlot); - - if (input != null) { - FluidStack fluidInContainer = getFluidStackInContainer(input); - ItemStack emptyItem = input.getItem().getContainerItem(input); - if (fluidInContainer != null && (emptyItem == null || output == null || (output.stackSize < output.getMaxStackSize() && StackUtils.isIdenticalItem(output, emptyItem)))) { - int used = fluidHandler.fill(ForgeDirection.UNKNOWN, fluidInContainer, false); - if (used >= fluidInContainer.amount) { - fluidHandler.fill(ForgeDirection.UNKNOWN, fluidInContainer, true); - if (emptyItem != null) - if (output == null) - inv.setInventorySlotContents(outputSlot, emptyItem); - else - output.stackSize++; - inv.decrStackSize(inputSlot, 1); - return true; - } - } - } - return false; - } - - public static ItemStack getFilledContainer(Fluid fluid, ItemStack empty) { - if (fluid == null || empty == null) - return null; - return FluidContainerRegistry.fillFluidContainer(new FluidStack(fluid, Integer.MAX_VALUE), empty); - } - - public static FluidStack getFluidStackInContainer(ItemStack stack) { - return FluidContainerRegistry.getFluidForFilledItem(stack); - } - - public static boolean containsFluidStack(ItemStack stack, FluidStack fluidStack) { - return FluidContainerRegistry.containsFluid(stack, fluidStack); - } - - public static boolean containsFluid(ItemStack stack, Fluid fluid) { - return FluidContainerRegistry.containsFluid(stack, new FluidStack(fluid, 1)); - } } diff --git a/src/main/java/forestry/core/utils/RecipeUtil.java b/src/main/java/forestry/core/utils/RecipeUtil.java index 6a51922c9..37341c907 100755 --- a/src/main/java/forestry/core/utils/RecipeUtil.java +++ b/src/main/java/forestry/core/utils/RecipeUtil.java @@ -10,21 +10,24 @@ ******************************************************************************/ package forestry.core.utils; -import forestry.api.recipes.RecipeManagers; -import forestry.core.config.Defaults; -import forestry.core.gui.ContainerDummy; -import forestry.core.interfaces.IDescriptiveRecipe; -import forestry.core.proxy.Proxies; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import net.minecraft.inventory.Container; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.world.World; + +import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.oredict.OreDictionary; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import forestry.api.recipes.RecipeManagers; +import forestry.core.config.Defaults; +import forestry.core.gui.ContainerDummy; +import forestry.core.interfaces.IDescriptiveRecipe; +import forestry.core.proxy.Proxies; public class RecipeUtil { @@ -34,13 +37,13 @@ public class RecipeUtil { if (RecipeManagers.fermenterManager == null) return; - RecipeManagers.fermenterManager.addRecipe(resource, fermentationValue, 1.0f, LiquidHelper.getLiquid(output, 1), LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1)); + RecipeManagers.fermenterManager.addRecipe(resource, fermentationValue, 1.0f, FluidRegistry.getFluidStack(output, 1), FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1)); - if (LiquidHelper.exists(Defaults.LIQUID_JUICE)) - RecipeManagers.fermenterManager.addRecipe(resource, fermentationValue, 1.5f, LiquidHelper.getLiquid(output, 1), LiquidHelper.getLiquid(Defaults.LIQUID_JUICE, 1)); + if (FluidRegistry.isFluidRegistered(Defaults.LIQUID_JUICE)) + RecipeManagers.fermenterManager.addRecipe(resource, fermentationValue, 1.5f, FluidRegistry.getFluidStack(output, 1), FluidRegistry.getFluidStack(Defaults.LIQUID_JUICE, 1)); - if (LiquidHelper.exists(Defaults.LIQUID_HONEY)) - RecipeManagers.fermenterManager.addRecipe(resource, fermentationValue, 1.5f, LiquidHelper.getLiquid(output, 1), LiquidHelper.getLiquid(Defaults.LIQUID_HONEY, 1)); + if (FluidRegistry.isFluidRegistered(Defaults.LIQUID_HONEY)) + RecipeManagers.fermenterManager.addRecipe(resource, fermentationValue, 1.5f, FluidRegistry.getFluidStack(output, 1), FluidRegistry.getFluidStack(Defaults.LIQUID_HONEY, 1)); } /** diff --git a/src/main/java/forestry/core/utils/StackUtils.java b/src/main/java/forestry/core/utils/StackUtils.java index 14ea1fbaf..d4fe11fac 100755 --- a/src/main/java/forestry/core/utils/StackUtils.java +++ b/src/main/java/forestry/core/utils/StackUtils.java @@ -396,27 +396,6 @@ public class StackUtils { } - public static void replenishByContainer(TileForestry tile, ItemStack inventoryStack, StandardTank tank) { - FluidContainerData container = LiquidHelper.getLiquidContainer(inventoryStack); - replenishByContainer(tile, inventoryStack, container, tank); - } - - public static ItemStack replenishByContainer(TileForestry tile, ItemStack inventoryStack, FluidContainerData container, StandardTank tank) { - if (container == null) - return inventoryStack; - - if (tank.fill(container.fluid, false) >= container.fluid.amount) { - tank.fill(container.fluid, true); - if (container.filledContainer != null && container.filledContainer.getItem().hasContainerItem(container.filledContainer)) - inventoryStack = container.emptyContainer.copy(); - else - inventoryStack.stackSize--; - tile.sendNetworkUpdate(); - } - - return inventoryStack; - } - public static ItemStack copyWithRandomSize(ItemStack template, int max, Random rand) { int size = rand.nextInt(max); ItemStack created = template.copy(); diff --git a/src/main/java/forestry/energy/gadgets/EngineBronze.java b/src/main/java/forestry/energy/gadgets/EngineBronze.java index a07753998..28b2cd9d6 100755 --- a/src/main/java/forestry/energy/gadgets/EngineBronze.java +++ b/src/main/java/forestry/energy/gadgets/EngineBronze.java @@ -16,6 +16,7 @@ import forestry.api.fuels.EngineBronzeFuel; import forestry.api.fuels.FuelManager; import forestry.core.config.Config; import forestry.core.config.Defaults; +import forestry.core.fluids.FluidHelper; import forestry.core.fluids.TankManager; import forestry.core.fluids.tanks.FilteredTank; import forestry.core.fluids.tanks.StandardTank; @@ -26,6 +27,8 @@ import forestry.core.network.GuiId; import forestry.core.network.PacketPayload; import forestry.core.utils.LiquidHelper; import forestry.core.utils.TileInventoryAdapter; + +import static forestry.factory.gadgets.MachineBottler.SLOT_CAN; import static forestry.factory.gadgets.MachineBottler.SLOT_PRODUCT; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -107,30 +110,14 @@ public class EngineBronze extends Engine implements ISidedInventory, ILiquidTank super.updateServerSide(); - // Check if we have suitable items waiting in the item slot - if (inventory.getStackInSlot(SLOT_CAN) != null) { - - FluidContainerData container = LiquidHelper.getLiquidContainer(inventory.getStackInSlot(SLOT_CAN)); - if (container != null) { - - StandardTank tank = null; - - if (heatingTank.accepts(container.fluid.getFluid())) - tank = heatingTank; - else if (fuelTank.accepts(container.fluid.getFluid())) - tank = fuelTank; - - if (tank != null) { - inventory.setInventorySlotContents(SLOT_CAN, replenishByContainer(inventory.getStackInSlot(SLOT_CAN), container, tank)); - if (inventory.getStackInSlot(SLOT_CAN).stackSize <= 0) - inventory.setInventorySlotContents(0, null); - } - } - } - if (worldObj.getTotalWorldTime() % 20 * 10 != 0) return; + // Check if we have suitable items waiting in the item slot + if (inventory.getStackInSlot(SLOT_CAN) != null) { + FluidHelper.drainContainers(tankManager, inventory, SLOT_CAN); + } + if (getHeatLevel() <= 0.2 && heatingTank.getFluidAmount() <= 0) setErrorState(EnumErrorCode.NOHEAT); else if (burnTime <= 0 && fuelTank.getFluidAmount() <= 0) @@ -451,7 +438,7 @@ public class EngineBronze extends Engine implements ISidedInventory, ILiquidTank @Override public boolean isItemValidForSlot(int slotIndex, ItemStack itemstack) { if (slotIndex == SLOT_CAN) { - FluidStack fluid = LiquidHelper.getFluidStackInContainer(itemstack); + FluidStack fluid = FluidHelper.getFluidStackInContainer(itemstack); if (fluid == null || fluid.amount <= 0) return false; return fuelTank.accepts(fluid.getFluid()) || heatingTank.accepts(fluid.getFluid()); @@ -471,8 +458,7 @@ public class EngineBronze extends Engine implements ISidedInventory, ILiquidTank if (!super.canTakeStackFromSide(slotIndex, stack, side)) return false; - FluidContainerData container = LiquidHelper.getLiquidContainer(stack); - return container != null; + return FluidHelper.isContainer(stack); } /** diff --git a/src/main/java/forestry/energy/gadgets/MachineGenerator.java b/src/main/java/forestry/energy/gadgets/MachineGenerator.java index bcec54700..c34933a55 100755 --- a/src/main/java/forestry/energy/gadgets/MachineGenerator.java +++ b/src/main/java/forestry/energy/gadgets/MachineGenerator.java @@ -18,7 +18,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; import net.minecraftforge.fluids.FluidStack; import ic2.api.energy.prefab.BasicSource; @@ -30,6 +29,7 @@ import forestry.api.fuels.GeneratorFuel; import forestry.api.core.EnumErrorCode; import forestry.core.config.Config; import forestry.core.config.Defaults; +import forestry.core.fluids.FluidHelper; import forestry.core.fluids.tanks.FilteredTank; import forestry.core.fluids.TankManager; import forestry.core.gadgets.TileBase; @@ -39,8 +39,6 @@ import forestry.core.network.EntityNetData; import forestry.core.network.GuiId; import forestry.core.utils.EnumTankLevel; import forestry.core.utils.InventoryAdapter; -import forestry.core.utils.LiquidHelper; -import forestry.core.utils.StackUtils; import forestry.core.utils.Utils; import forestry.plugins.PluginIC2; import net.minecraftforge.fluids.FluidTankInfo; @@ -119,14 +117,7 @@ public class MachineGenerator extends TileBase implements ISpecialInventory, ILi // Check inventory slots for fuel // Check if we have suitable items waiting in the item slot if (inventory.getStackInSlot(SLOT_CAN) != null) { - FluidContainerData container = LiquidHelper.getLiquidContainer(inventory.getStackInSlot(SLOT_CAN)); - if (container != null) - - if (resourceTank.accepts(container.fluid.getFluid())) { - inventory.setInventorySlotContents(SLOT_CAN, StackUtils.replenishByContainer(this, inventory.getStackInSlot(SLOT_CAN), container, resourceTank)); - if (inventory.getStackInSlot(SLOT_CAN).stackSize <= 0) - inventory.setInventorySlotContents(SLOT_CAN, null); - } + FluidHelper.drainContainers(tankManager, inventory, SLOT_CAN); } // No work to be done if IC2 is unavailable. @@ -236,11 +227,9 @@ public class MachineGenerator extends TileBase implements ISpecialInventory, ILi @Override public int addItem(ItemStack stack, boolean doAdd, ForgeDirection from) { - FluidContainerData container = LiquidHelper.getLiquidContainer(stack); - if (container == null) - return 0; + Fluid fluid = FluidHelper.getFluidInContainer(stack); - if (container.fluid == null || !FuelManager.generatorFuel.containsKey(container.fluid.getFluid())) + if (fluid == null || !FuelManager.generatorFuel.containsKey(fluid)) return 0; if (inventory.getStackInSlot(SLOT_CAN) == null) { diff --git a/src/main/java/forestry/factory/gadgets/MachineBottler.java b/src/main/java/forestry/factory/gadgets/MachineBottler.java index 0e9d01fcd..0a35a8f9f 100755 --- a/src/main/java/forestry/factory/gadgets/MachineBottler.java +++ b/src/main/java/forestry/factory/gadgets/MachineBottler.java @@ -17,6 +17,7 @@ import forestry.api.core.ForestryAPI; import forestry.api.recipes.ICraftingProvider; import forestry.core.config.Config; import forestry.core.config.Defaults; +import forestry.core.fluids.FluidHelper; import forestry.core.fluids.TankManager; import forestry.core.fluids.tanks.StandardTank; import forestry.core.gadgets.TileBase; @@ -222,13 +223,7 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq // Check if we have suitable items waiting in the item slot if (inventory.getStackInSlot(SLOT_CAN) != null) { - FluidContainerData container = LiquidHelper.getLiquidContainer(inventory.getStackInSlot(SLOT_CAN)); - if (container != null && RecipeManager.isInput(container.fluid)) { - - inventory.setInventorySlotContents(SLOT_CAN, StackUtils.replenishByContainer(this, inventory.getStackInSlot(SLOT_CAN), container, resourceTank)); - if (inventory.getStackInSlot(SLOT_CAN).stackSize <= 0) - inventory.setInventorySlotContents(SLOT_CAN, null); - } + FluidHelper.drainContainers(tankManager, inventory, SLOT_CAN); } checkRecipe(); @@ -461,8 +456,8 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq return FluidContainerRegistry.isEmptyContainer(itemstack); if(slotIndex == SLOT_CAN) { - FluidContainerData container = LiquidHelper.getLiquidContainer(itemstack); - return container != null && RecipeManager.isInput(container.fluid); + FluidStack fluidStack = FluidHelper.getFluidStackInContainer(itemstack); + return RecipeManager.isInput(fluidStack); } return false; diff --git a/src/main/java/forestry/factory/gadgets/MachineCarpenter.java b/src/main/java/forestry/factory/gadgets/MachineCarpenter.java index 3ce691173..5e4b99397 100755 --- a/src/main/java/forestry/factory/gadgets/MachineCarpenter.java +++ b/src/main/java/forestry/factory/gadgets/MachineCarpenter.java @@ -10,28 +10,11 @@ ******************************************************************************/ package forestry.factory.gadgets; -import forestry.api.core.ForestryAPI; -import forestry.api.recipes.ICarpenterManager; -import forestry.api.core.EnumErrorCode; -import forestry.core.config.Config; -import forestry.core.config.Defaults; -import forestry.core.config.ForestryItem; -import forestry.core.fluids.TankManager; -import forestry.core.fluids.tanks.FilteredTank; -import forestry.core.gadgets.TileBase; -import forestry.core.gadgets.TilePowered; -import forestry.core.interfaces.ILiquidTankContainer; -import forestry.core.network.EntityNetData; -import forestry.core.network.GuiId; -import forestry.core.proxy.Proxies; -import forestry.core.utils.EnumTankLevel; -import forestry.core.utils.InventoryAdapter; -import forestry.core.utils.LiquidHelper; -import forestry.core.utils.ShapedRecipeCustom; -import forestry.core.utils.StackUtils; -import forestry.core.utils.TileInventoryAdapter; -import forestry.core.utils.Utils; -import forestry.factory.gui.ContainerCarpenter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ICrafting; @@ -42,17 +25,36 @@ import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; + import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; +import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; +import forestry.api.core.EnumErrorCode; +import forestry.api.core.ForestryAPI; +import forestry.api.recipes.ICarpenterManager; +import forestry.core.config.Config; +import forestry.core.config.Defaults; +import forestry.core.config.ForestryItem; +import forestry.core.fluids.FluidHelper; +import forestry.core.fluids.TankManager; +import forestry.core.fluids.tanks.FilteredTank; +import forestry.core.gadgets.TileBase; +import forestry.core.gadgets.TilePowered; +import forestry.core.interfaces.ILiquidTankContainer; +import forestry.core.network.EntityNetData; +import forestry.core.network.GuiId; +import forestry.core.proxy.Proxies; +import forestry.core.utils.EnumTankLevel; +import forestry.core.utils.InventoryAdapter; +import forestry.core.utils.ShapedRecipeCustom; +import forestry.core.utils.StackUtils; +import forestry.core.utils.TileInventoryAdapter; +import forestry.core.utils.Utils; +import forestry.factory.gui.ContainerCarpenter; public class MachineCarpenter extends TilePowered implements ISidedInventory, ILiquidTankContainer { @@ -144,14 +146,14 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL @Override public void addCrating(ItemStack itemStack) { ItemStack uncrated = ((forestry.core.items.ItemCrated) itemStack.getItem()).getContained(itemStack); - addRecipe(Defaults.CARPENTER_CRATING_CYCLES, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, Defaults.CARPENTER_CRATING_LIQUID_QUANTITY), + addRecipe(Defaults.CARPENTER_CRATING_CYCLES, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, Defaults.CARPENTER_CRATING_LIQUID_QUANTITY), ForestryItem.crate.getItemStack(), itemStack, new Object[] { "###", "###", "###", '#', uncrated }); - addRecipe(null, new ItemStack(uncrated.getItem(), 9, uncrated.getItemDamage()), new Object[] { "#", Character.valueOf('#'), itemStack }); + addRecipe(null, new ItemStack(uncrated.getItem(), 9, uncrated.getItemDamage()), new Object[] { "#", '#', itemStack }); } @Override public void addCrating(String toCrate, ItemStack unpack, ItemStack crated) { - addRecipe(Defaults.CARPENTER_CRATING_CYCLES, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, Defaults.CARPENTER_CRATING_LIQUID_QUANTITY), + addRecipe(Defaults.CARPENTER_CRATING_CYCLES, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, Defaults.CARPENTER_CRATING_LIQUID_QUANTITY), ForestryItem.crate.getItemStack(), crated, new Object[] { "###", "###", "###", '#', toCrate }); addRecipe(null, new ItemStack(unpack.getItem(), 9, unpack.getItemDamage()), new Object[] { "#", '#', crated }); } @@ -322,22 +324,15 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL @Override public void updateServerSide() { - if (worldObj.getTotalWorldTime() % 20 * 10 != 0) + if (worldObj.getTotalWorldTime() % 20 != 0) return; // Check if we have suitable items waiting in the item slot if (accessibleInventory.getStackInSlot(SLOT_CAN_INPUT) != null) { - FluidContainerData container = LiquidHelper.getLiquidContainer(accessibleInventory.getStackInSlot(SLOT_CAN_INPUT)); - if (container != null && RecipeManager.isResourceLiquid(container.fluid)) { - - accessibleInventory.setInventorySlotContents(SLOT_CAN_INPUT, - StackUtils.replenishByContainer(this, accessibleInventory.getStackInSlot(SLOT_CAN_INPUT), container, resourceTank)); - if (accessibleInventory.getStackInSlot(SLOT_CAN_INPUT).stackSize <= 0) - accessibleInventory.setInventorySlotContents(SLOT_CAN_INPUT, null); - } + FluidHelper.drainContainers(tankManager, accessibleInventory, SLOT_CAN_INPUT); } - if (worldObj.getTotalWorldTime() % 40 * 10 != 0) + if (worldObj.getTotalWorldTime() % 40 != 0) return; if (currentRecipe == null) { diff --git a/src/main/java/forestry/factory/gadgets/MachineFermenter.java b/src/main/java/forestry/factory/gadgets/MachineFermenter.java index 3b1925a95..a64926b2e 100755 --- a/src/main/java/forestry/factory/gadgets/MachineFermenter.java +++ b/src/main/java/forestry/factory/gadgets/MachineFermenter.java @@ -10,8 +10,29 @@ ******************************************************************************/ package forestry.factory.gadgets; -import buildcraft.api.statements.ITriggerExternal; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; + +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; + import cpw.mods.fml.common.Optional; + import forestry.api.core.EnumErrorCode; import forestry.api.core.ForestryAPI; import forestry.api.fuels.FuelManager; @@ -19,6 +40,7 @@ import forestry.api.recipes.IFermenterManager; import forestry.api.recipes.IVariableFermentable; import forestry.core.config.Config; import forestry.core.config.Defaults; +import forestry.core.fluids.FluidHelper; import forestry.core.fluids.TankManager; import forestry.core.fluids.tanks.FilteredTank; import forestry.core.fluids.tanks.StandardTank; @@ -29,29 +51,10 @@ import forestry.core.network.EntityNetData; import forestry.core.network.GuiId; import forestry.core.utils.EnumTankLevel; import forestry.core.utils.InventoryAdapter; -import forestry.core.utils.LiquidHelper; -import forestry.core.utils.StackUtils; import forestry.core.utils.Utils; import forestry.factory.triggers.FactoryTriggers; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.Map; +import buildcraft.api.statements.ITriggerExternal; public class MachineFermenter extends TilePowered implements ISidedInventory, ILiquidTankContainer { @@ -135,7 +138,7 @@ public class MachineFermenter extends TilePowered implements ISidedInventory, IL @Override public void addRecipe(ItemStack resource, int fermentationValue, float modifier, FluidStack output) { - addRecipe(resource, fermentationValue, modifier, output, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000)); + addRecipe(resource, fermentationValue, modifier, output, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000)); } public static Recipe findMatchingRecipe(ItemStack res, FluidStack liqu) { @@ -161,6 +164,8 @@ public class MachineFermenter extends TilePowered implements ISidedInventory, IL } public static boolean isLiquidResource(FluidStack liquid) { + if (liquid == null) + return false; return recipeFluidInputs.contains(liquid.getFluid()); } @@ -247,33 +252,20 @@ public class MachineFermenter extends TilePowered implements ISidedInventory, IL @Override public void updateServerSide() { - // Check if we have suitable items waiting in the item slot - if (inventory.getStackInSlot(SLOT_INPUT) != null) { - - FluidContainerData container = LiquidHelper.getLiquidContainer(inventory.getStackInSlot(SLOT_INPUT)); - if (container != null && RecipeManager.isLiquidResource(container.fluid)) { - - inventory.setInventorySlotContents(SLOT_INPUT, StackUtils.replenishByContainer(this, inventory.getStackInSlot(SLOT_INPUT), container, resourceTank)); - if (inventory.getStackInSlot(SLOT_INPUT).stackSize <= 0) - inventory.setInventorySlotContents(SLOT_INPUT, null); - - } - } - // Can/capsule input/output needs to be handled here. - if (inventory.getStackInSlot(SLOT_CAN_INPUT) != null) { - FluidContainerData container = LiquidHelper.getEmptyContainer(inventory.getStackInSlot(SLOT_CAN_INPUT), productTank.getFluid()); - - if (container != null) { - inventory.setInventorySlotContents(SLOT_CAN_OUTPUT, bottleIntoContainer(inventory.getStackInSlot(SLOT_CAN_INPUT), inventory.getStackInSlot(SLOT_CAN_OUTPUT), container, - productTank)); - if (inventory.getStackInSlot(SLOT_CAN_INPUT).stackSize <= 0) - inventory.setInventorySlotContents(SLOT_CAN_INPUT, null); - } - } - - if (worldObj.getTotalWorldTime() % 20 * 10 != 0) + if (worldObj.getTotalWorldTime() % 20 != 0) return; + // Check if we have suitable items waiting in the item slot + if (inventory.getStackInSlot(SLOT_INPUT) != null) { + FluidHelper.drainContainers(tankManager, inventory, SLOT_INPUT); + } + + // Can/capsule input/output needs to be handled here. + if (inventory.getStackInSlot(SLOT_CAN_INPUT) != null) { + FluidStack fluidStack = productTank.getFluid(); + if (fluidStack != null) + FluidHelper.fillContainers(tankManager, inventory, SLOT_CAN_INPUT, SLOT_CAN_OUTPUT, fluidStack.getFluid()); + } if (RecipeManager.findMatchingRecipe(inventory.getStackInSlot(SLOT_RESOURCE), resourceTank.getFluid()) != null) { if (resourceTank.getFluidAmount() < fuelCurrentFerment) @@ -550,11 +542,11 @@ public class MachineFermenter extends TilePowered implements ISidedInventory, IL if (slotIndex == SLOT_INPUT) { - FluidContainerData container = LiquidHelper.getLiquidContainer(itemstack); - return container != null && RecipeManager.isLiquidResource(container.fluid); + FluidStack fluidStack = FluidHelper.getFluidStackInContainer(itemstack); + return RecipeManager.isLiquidResource(fluidStack); } - if (slotIndex == SLOT_CAN_INPUT && LiquidHelper.isEmptyContainer(itemstack)) { + if (slotIndex == SLOT_CAN_INPUT && FluidHelper.isEmptyContainer(itemstack)) { return true; } if (slotIndex == SLOT_FUEL && FuelManager.fermenterFuel.containsKey(itemstack)) diff --git a/src/main/java/forestry/factory/gadgets/MachineMoistener.java b/src/main/java/forestry/factory/gadgets/MachineMoistener.java index c3970bdec..10d635ced 100755 --- a/src/main/java/forestry/factory/gadgets/MachineMoistener.java +++ b/src/main/java/forestry/factory/gadgets/MachineMoistener.java @@ -18,6 +18,7 @@ import forestry.api.fuels.MoistenerFuel; import forestry.api.recipes.IMoistenerManager; import forestry.core.config.Config; import forestry.core.config.Defaults; +import forestry.core.fluids.FluidHelper; import forestry.core.fluids.TankManager; import forestry.core.fluids.tanks.FilteredTank; import forestry.core.gadgets.TileBase; @@ -27,7 +28,6 @@ import forestry.core.network.EntityNetData; import forestry.core.network.GuiId; import forestry.core.utils.EnumTankLevel; import forestry.core.utils.InventoryAdapter; -import forestry.core.utils.LiquidHelper; import forestry.core.utils.StackUtils; import forestry.core.utils.Utils; import net.minecraft.entity.player.EntityPlayer; @@ -38,7 +38,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; @@ -204,13 +203,7 @@ public class MachineMoistener extends TileBase implements ISpecialInventory, ISi // Check if we have suitable water container waiting in the item slot if (inventory.getStackInSlot(SLOT_PRODUCT) != null) { - FluidContainerData container = LiquidHelper.getLiquidContainer(inventory.getStackInSlot(SLOT_PRODUCT)); - if (container != null && resourceTank.accepts(container.fluid.getFluid())) { - - inventory.setInventorySlotContents(SLOT_PRODUCT, StackUtils.replenishByContainer(this, inventory.getStackInSlot(SLOT_PRODUCT), container, resourceTank)); - if (inventory.getStackInSlot(SLOT_PRODUCT).stackSize <= 0) - inventory.setInventorySlotContents(SLOT_PRODUCT, null); - } + FluidHelper.drainContainers(tankManager, inventory, SLOT_PRODUCT); } // Let's get to work @@ -620,8 +613,8 @@ public class MachineMoistener extends TileBase implements ISpecialInventory, ISi @Override public int addItem(ItemStack stack, boolean doAdd, ForgeDirection from) { - FluidContainerData container = LiquidHelper.getLiquidContainer(stack); - if (container != null && resourceTank.accepts(container.fluid.getFluid())) { + Fluid fluid = FluidHelper.getFluidInContainer(stack); + if (fluid != null && resourceTank.accepts(fluid)) { return inventory.addStack(stack, SLOT_PRODUCT, 1, false, doAdd); } diff --git a/src/main/java/forestry/factory/gadgets/MachineRaintank.java b/src/main/java/forestry/factory/gadgets/MachineRaintank.java index 64d5ae494..939587e67 100755 --- a/src/main/java/forestry/factory/gadgets/MachineRaintank.java +++ b/src/main/java/forestry/factory/gadgets/MachineRaintank.java @@ -10,21 +10,6 @@ ******************************************************************************/ package forestry.factory.gadgets; -import forestry.api.core.BiomeHelper; -import forestry.api.core.EnumErrorCode; -import forestry.api.core.ForestryAPI; -import forestry.core.config.Config; -import forestry.core.config.Defaults; -import forestry.core.fluids.TankManager; -import forestry.core.fluids.tanks.FilteredTank; -import forestry.core.gadgets.TileBase; -import forestry.core.interfaces.ILiquidTankContainer; -import forestry.core.network.GuiId; -import forestry.core.utils.Fluids; -import forestry.core.utils.InventoryAdapter; -import forestry.core.utils.LiquidHelper; -import forestry.core.utils.StackUtils; -import forestry.core.utils.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ICrafting; @@ -32,18 +17,35 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.biome.BiomeGenBase; + import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; +import forestry.api.core.BiomeHelper; +import forestry.api.core.EnumErrorCode; +import forestry.api.core.ForestryAPI; +import forestry.core.config.Config; +import forestry.core.config.Defaults; +import forestry.core.fluids.FluidHelper; +import forestry.core.fluids.TankManager; +import forestry.core.fluids.tanks.FilteredTank; +import forestry.core.gadgets.TileBase; +import forestry.core.interfaces.ILiquidTankContainer; +import forestry.core.network.GuiId; +import forestry.core.utils.Fluids; +import forestry.core.utils.InventoryAdapter; +import forestry.core.utils.StackUtils; +import forestry.core.utils.Utils; + public class MachineRaintank extends TileBase implements ISidedInventory, ILiquidTankContainer { /* CONSTANTS */ public static final short SLOT_RESOURCE = 0; public static final short SLOT_PRODUCT = 1; - private static final FluidStack STACK_WATER = LiquidHelper.getLiquid(Defaults.LIQUID_WATER, Defaults.RAINTANK_AMOUNT_PER_UPDATE); + private static final FluidStack STACK_WATER = FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, Defaults.RAINTANK_AMOUNT_PER_UPDATE); /* MEMBER */ public FilteredTank resourceTank; @@ -132,7 +134,7 @@ public class MachineRaintank extends TileBase implements ISidedInventory, ILiqui tryToStartFillling(); else { fillingTime--; - if (fillingTime <= 0 && LiquidHelper.fillContainers(this, inventory, SLOT_RESOURCE, SLOT_PRODUCT, Fluids.WATER.get())) + if (fillingTime <= 0 && FluidHelper.fillContainers(tankManager, inventory, SLOT_RESOURCE, SLOT_PRODUCT, Fluids.WATER.get())) fillingTime = 0; } } @@ -143,7 +145,7 @@ public class MachineRaintank extends TileBase implements ISidedInventory, ILiqui private void tryToStartFillling() { // Nothing to do if no empty cans are available - if (!LiquidHelper.fillContainers(this, inventory, SLOT_RESOURCE, SLOT_PRODUCT, Fluids.WATER.get(), false)) + if (!FluidHelper.fillContainers(tankManager, inventory, SLOT_RESOURCE, SLOT_PRODUCT, Fluids.WATER.get(), false)) return; fillingTime = Defaults.RAINTANK_FILLING_TIME; @@ -262,7 +264,7 @@ public class MachineRaintank extends TileBase implements ISidedInventory, ILiqui if (slotIndex != SLOT_RESOURCE) return false; - return LiquidHelper.getEmptyContainer(itemstack, STACK_WATER) != null; + return FluidHelper.isFillableContainer(itemstack, STACK_WATER); } /* SMP GUI */ diff --git a/src/main/java/forestry/factory/gadgets/MachineSqueezer.java b/src/main/java/forestry/factory/gadgets/MachineSqueezer.java index b51346295..62b618155 100755 --- a/src/main/java/forestry/factory/gadgets/MachineSqueezer.java +++ b/src/main/java/forestry/factory/gadgets/MachineSqueezer.java @@ -16,6 +16,7 @@ import forestry.api.recipes.ISqueezerManager; import forestry.api.core.EnumErrorCode; import forestry.core.config.Config; import forestry.core.config.Defaults; +import forestry.core.fluids.FluidHelper; import forestry.core.fluids.TankManager; import forestry.core.fluids.tanks.FilteredTank; import forestry.core.fluids.tanks.StandardTank; @@ -230,21 +231,16 @@ public class MachineSqueezer extends TilePowered implements ISpecialInventory, I @Override public void updateServerSide() { + if (worldObj.getTotalWorldTime() % 20 != 0) + return; + // Can/capsule input/output needs to be handled here. if (inventory.getStackInSlot(SLOT_CAN_INPUT) != null) { - - FluidContainerData container = LiquidHelper.getEmptyContainer(inventory.getStackInSlot(SLOT_CAN_INPUT), productTank.getFluid()); - if (container != null) { - inventory.setInventorySlotContents(SLOT_CAN_OUTPUT, bottleIntoContainer(inventory.getStackInSlot(SLOT_CAN_INPUT), inventory.getStackInSlot(SLOT_CAN_OUTPUT), container, productTank)); - if (inventory.getStackInSlot(SLOT_CAN_INPUT).stackSize <= 0) - inventory.setInventorySlotContents(SLOT_CAN_INPUT, null); - } - + FluidStack fluidStack = productTank.getFluid(); + if (fluidStack != null) + FluidHelper.fillContainers(tankManager, inventory, SLOT_CAN_INPUT, SLOT_CAN_OUTPUT, fluidStack.getFluid()); } - if (worldObj.getTotalWorldTime() % 20 * 10 != 0) - return; - checkRecipe(); if (getErrorState() == EnumErrorCode.NORECIPE && currentRecipe != null) setErrorState(EnumErrorCode.OK); @@ -436,11 +432,11 @@ public class MachineSqueezer extends TilePowered implements ISpecialInventory, I public boolean isItemValidForSlot(int slotIndex, ItemStack itemstack) { if(slotIndex == SLOT_CAN_INPUT) { - return LiquidHelper.isEmptyContainer(itemstack); + return FluidHelper.isEmptyContainer(itemstack); } if(slotIndex >= SLOT_RESOURCE_1 && slotIndex < SLOT_RESOURCE_1 + SLOTS_RESOURCE_COUNT) { - if (LiquidHelper.isEmptyContainer(itemstack)) + if (FluidHelper.isEmptyContainer(itemstack)) return false; if (RecipeManager.canUse(itemstack)) @@ -504,7 +500,7 @@ public class MachineSqueezer extends TilePowered implements ISpecialInventory, I public int addItem(ItemStack stack, boolean doAdd, ForgeDirection from) { // Try to add to can slot if input is from top or bottom. - if (LiquidHelper.isEmptyContainer(stack)) { + if (FluidHelper.isEmptyContainer(stack)) { return inventory.addStack(stack, SLOT_CAN_INPUT, 1, false, doAdd); } else { return inventory.addStack(stack, SLOT_RESOURCE_1, SLOTS_RESOURCE_COUNT, false, doAdd); diff --git a/src/main/java/forestry/factory/gadgets/MachineStill.java b/src/main/java/forestry/factory/gadgets/MachineStill.java index bf5ded4ea..132f242fb 100755 --- a/src/main/java/forestry/factory/gadgets/MachineStill.java +++ b/src/main/java/forestry/factory/gadgets/MachineStill.java @@ -10,12 +10,30 @@ ******************************************************************************/ package forestry.factory.gadgets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; + +import forestry.api.core.EnumErrorCode; import forestry.api.core.ForestryAPI; import forestry.api.core.ISpecialInventory; import forestry.api.recipes.IStillManager; -import forestry.api.core.EnumErrorCode; import forestry.core.config.Config; import forestry.core.config.Defaults; +import forestry.core.fluids.FluidHelper; import forestry.core.fluids.TankManager; import forestry.core.fluids.tanks.FilteredTank; import forestry.core.fluids.tanks.StandardTank; @@ -26,25 +44,8 @@ import forestry.core.network.EntityNetData; import forestry.core.network.GuiId; import forestry.core.utils.EnumTankLevel; import forestry.core.utils.InventoryAdapter; -import forestry.core.utils.LiquidHelper; import forestry.core.utils.StackUtils; import forestry.core.utils.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; public class MachineStill extends TilePowered implements ISpecialInventory, ISidedInventory, ILiquidTankContainer { @@ -177,32 +178,22 @@ public class MachineStill extends TilePowered implements ISpecialInventory, ISid @Override public void updateServerSide() { + if (worldObj.getTotalWorldTime() % 20 * 10 != 0) + return; + // Check if we have suitable items waiting in the item slot if (inventory.getStackInSlot(SLOT_CAN) != null) { - FluidContainerData container = LiquidHelper.getLiquidContainer(inventory.getStackInSlot(SLOT_CAN)); - - if (container != null && resourceTank.accepts(container.fluid.getFluid())) { - - inventory.setInventorySlotContents(SLOT_CAN, StackUtils.replenishByContainer(this, inventory.getStackInSlot(SLOT_CAN), container, resourceTank)); - if (inventory.getStackInSlot(SLOT_CAN).stackSize <= 0) - inventory.setInventorySlotContents(SLOT_CAN, null); - - } + FluidHelper.drainContainers(tankManager, inventory, SLOT_CAN); } // Can product liquid if possible if (inventory.getStackInSlot(SLOT_RESOURCE) != null) { - FluidContainerData container = LiquidHelper.getEmptyContainer(inventory.getStackInSlot(SLOT_RESOURCE), productTank.getFluid()); - if (container != null) { - inventory.setInventorySlotContents(SLOT_PRODUCT, bottleIntoContainer(inventory.getStackInSlot(SLOT_RESOURCE), inventory.getStackInSlot(SLOT_PRODUCT), container, productTank)); - if (inventory.getStackInSlot(SLOT_RESOURCE).stackSize <= 0) - inventory.setInventorySlotContents(SLOT_RESOURCE, null); + FluidStack fluidStack = productTank.getFluid(); + if (fluidStack != null) { + FluidHelper.fillContainers(tankManager, inventory, SLOT_RESOURCE, SLOT_PRODUCT, fluidStack.getFluid()); } } - if (worldObj.getTotalWorldTime() % 20 * 10 != 0) - return; - checkRecipe(); if (getErrorState() == EnumErrorCode.NORECIPE && currentRecipe != null) setErrorState(EnumErrorCode.OK); @@ -335,10 +326,10 @@ public class MachineStill extends TilePowered implements ISpecialInventory, ISid public int addItem(ItemStack stack, boolean doAdd, ForgeDirection from) { int inventorySlot; - FluidContainerData container = LiquidHelper.getLiquidContainer(stack); - if (container != null && resourceTank.accepts(container.fluid.getFluid())) + Fluid fluid = FluidHelper.getFluidInContainer(stack); + if (fluid != null && resourceTank.accepts(fluid)) inventorySlot = SLOT_CAN; - else if (LiquidHelper.isEmptyContainer(stack)) + else if (FluidHelper.isEmptyContainer(stack)) inventorySlot = SLOT_RESOURCE; else return 0; @@ -447,11 +438,11 @@ public class MachineStill extends TilePowered implements ISpecialInventory, ISid return false; if(slotIndex == SLOT_RESOURCE) - return LiquidHelper.isEmptyContainer(itemstack); + return FluidHelper.isEmptyContainer(itemstack); if(slotIndex == SLOT_CAN) { - FluidContainerData container = LiquidHelper.getLiquidContainer(itemstack); - return container != null && resourceTank.accepts(container.fluid.getFluid()); + Fluid fluid = FluidHelper.getFluidInContainer(itemstack); + return fluid != null && resourceTank.accepts(fluid); } return false; diff --git a/src/main/java/forestry/farming/gadgets/TileFarmPlain.java b/src/main/java/forestry/farming/gadgets/TileFarmPlain.java index 5aefa40f8..b0014ebd1 100755 --- a/src/main/java/forestry/farming/gadgets/TileFarmPlain.java +++ b/src/main/java/forestry/farming/gadgets/TileFarmPlain.java @@ -29,7 +29,6 @@ import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; @@ -48,16 +47,15 @@ import forestry.api.farming.IFarmable; import forestry.core.GameMode; import forestry.core.config.Config; import forestry.core.config.Defaults; +import forestry.core.fluids.FluidHelper; import forestry.core.fluids.TankManager; import forestry.core.fluids.tanks.FilteredTank; -import forestry.core.fluids.tanks.StandardTank; import forestry.core.interfaces.IClimatised; import forestry.core.interfaces.IHintSource; import forestry.core.interfaces.ISocketable; import forestry.core.proxy.Proxies; import forestry.core.utils.DelayTimer; import forestry.core.utils.InventoryAdapter; -import forestry.core.utils.LiquidHelper; import forestry.core.utils.StackUtils; import forestry.core.utils.TileInventoryAdapter; import forestry.core.utils.Utils; @@ -169,13 +167,7 @@ public class TileFarmPlain extends TileFarm implements IFarmHousing, ISocketable // Check if we have suitable items waiting in the item slot if (inventory.getStackInSlot(SLOT_CAN) != null) { - FluidContainerData container = LiquidHelper.getLiquidContainer(inventory.getStackInSlot(SLOT_CAN)); - if (container != null && tankManager.accepts(container.fluid.getFluid())) { - StandardTank liquidTank = tankManager.get(0); - inventory.setInventorySlotContents(SLOT_CAN, StackUtils.replenishByContainer(this, inventory.getStackInSlot(SLOT_CAN), container, liquidTank)); - if (inventory.getStackInSlot(SLOT_CAN).stackSize <= 0) - inventory.setInventorySlotContents(SLOT_CAN, null); - } + FluidHelper.drainContainers(tankManager, inventory, SLOT_CAN); } } @@ -442,7 +434,7 @@ public class TileFarmPlain extends TileFarm implements IFarmHousing, ISocketable else hasFertilizer = true; - FluidStack liquid = LiquidHelper.getLiquid(Defaults.LIQUID_WATER, logic.getWaterConsumption(getHydrationModifier())); + FluidStack liquid = FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, logic.getWaterConsumption(getHydrationModifier())); if (liquid.amount > 0 && !hasLiquid(liquid)) continue; else @@ -565,7 +557,7 @@ public class TileFarmPlain extends TileFarm implements IFarmHousing, ISocketable } // Check water - FluidStack liquid = LiquidHelper.getLiquid(Defaults.LIQUID_WATER, provider.getWaterConsumption(getHydrationModifier())); + FluidStack liquid = FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, provider.getWaterConsumption(getHydrationModifier())); if (liquid.amount > 0 && !hasLiquid(liquid)) { setErrorState(EnumErrorCode.NOLIQUID); return false; diff --git a/src/main/java/forestry/farming/logic/FarmLogicWatered.java b/src/main/java/forestry/farming/logic/FarmLogicWatered.java index 5a0281b50..a2b50cdea 100755 --- a/src/main/java/forestry/farming/logic/FarmLogicWatered.java +++ b/src/main/java/forestry/farming/logic/FarmLogicWatered.java @@ -23,6 +23,7 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; @@ -33,7 +34,7 @@ public abstract class FarmLogicWatered extends FarmLogic { protected ItemStack ground; private final ItemStack[] resource; - private static final FluidStack STACK_WATER = new FluidStack(LiquidHelper.getFluid(Defaults.LIQUID_WATER), 1000); + private static final FluidStack STACK_WATER = new FluidStack(FluidRegistry.getFluid(Defaults.LIQUID_WATER), 1000); ArrayList produce = new ArrayList(); diff --git a/src/main/java/forestry/plugins/PluginApiculture.java b/src/main/java/forestry/plugins/PluginApiculture.java index b2dc4fbd1..4ab0a92be 100644 --- a/src/main/java/forestry/plugins/PluginApiculture.java +++ b/src/main/java/forestry/plugins/PluginApiculture.java @@ -25,11 +25,14 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.util.IIcon; import net.minecraft.util.WeightedRandomChestContent; + import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.common.BiomeDictionary; import net.minecraftforge.common.ChestGenHooks; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.oredict.OreDictionary; + import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; @@ -40,6 +43,7 @@ import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.VillagerRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; + import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.FlowerManager; @@ -156,7 +160,6 @@ import forestry.core.items.ItemOverlay.OverlayInfo; import forestry.core.items.ItemScoop; import forestry.core.proxy.Proxies; import forestry.core.render.EntitySnowFX; -import forestry.core.utils.LiquidHelper; import forestry.core.utils.ShapedRecipeCustom; @Plugin(pluginID = "Apiculture", name = "Apiculture", author = "SirSengir", url = Defaults.URL, unlocalizedDescription = "for.plugin.apiculture.description") @@ -560,13 +563,13 @@ public class PluginApiculture extends ForestryPlugin { '#', ForestryItem.propolis.getItemStack(1, 2)); // / CANDLES - RecipeManagers.carpenterManager.addRecipe(30, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 600), null, ForestryBlock.candle.getItemStack(24), + RecipeManagers.carpenterManager.addRecipe(30, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 600), null, ForestryBlock.candle.getItemStack(24), " X ", "###", "###", '#', ForestryItem.beeswax, 'X', Items.string); - RecipeManagers.carpenterManager.addRecipe(10, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 200), null, ForestryBlock.candle.getItemStack(6), + RecipeManagers.carpenterManager.addRecipe(10, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 200), null, ForestryBlock.candle.getItemStack(6), "#X#", '#', ForestryItem.beeswax, 'X', ForestryItem.craftingMaterial.getItemStack(1, 2)); @@ -636,20 +639,20 @@ public class PluginApiculture extends ForestryPlugin { 'W', ForestryItem.craftingMaterial.getItemStack(1, 3)); // / SQUEEZER - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.honeyDrop.getItemStack()}, LiquidHelper.getLiquid(Defaults.LIQUID_HONEY, Defaults.FLUID_PER_HONEY_DROP), + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.honeyDrop.getItemStack()}, FluidRegistry.getFluidStack(Defaults.LIQUID_HONEY, Defaults.FLUID_PER_HONEY_DROP), ForestryItem.propolis.getItemStack(), 5); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.honeydew.getItemStack()}, LiquidHelper.getLiquid(Defaults.LIQUID_HONEY, Defaults.FLUID_PER_HONEY_DROP)); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.phosphor.getItemStack(2), new ItemStack(Blocks.sand)}, LiquidHelper.getLiquid(Defaults.LIQUID_LAVA, 2000)); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.phosphor.getItemStack(2), new ItemStack(Blocks.dirt)}, LiquidHelper.getLiquid(Defaults.LIQUID_LAVA, 1600)); + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.honeydew.getItemStack()}, FluidRegistry.getFluidStack(Defaults.LIQUID_HONEY, Defaults.FLUID_PER_HONEY_DROP)); + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.phosphor.getItemStack(2), new ItemStack(Blocks.sand)}, FluidRegistry.getFluidStack(Defaults.LIQUID_LAVA, 2000)); + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.phosphor.getItemStack(2), new ItemStack(Blocks.dirt)}, FluidRegistry.getFluidStack(Defaults.LIQUID_LAVA, 1600)); // / CARPENTER - RecipeManagers.carpenterManager.addRecipe(100, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 2000), null, ForestryItem.beealyzer.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(100, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 2000), null, ForestryItem.beealyzer.getItemStack(), "X#X", "X#X", "RDR", '#', Blocks.glass_pane, 'X', "ingotTin", 'R', Items.redstone, 'D', Items.diamond); - RecipeManagers.carpenterManager.addRecipe(50, LiquidHelper.getLiquid(Defaults.LIQUID_HONEY, 500), null, ForestryItem.craftingMaterial.getItemStack(1, 6), + RecipeManagers.carpenterManager.addRecipe(50, FluidRegistry.getFluidStack(Defaults.LIQUID_HONEY, 500), null, ForestryItem.craftingMaterial.getItemStack(1, 6), " J ", "###", "WPW", '#', "plankWood", 'J', ForestryItem.royalJelly, @@ -704,8 +707,8 @@ public class PluginApiculture extends ForestryPlugin { ForestryItem.craftingMaterial.getItemStack(1, 2), ForestryItem.propolis.getItemStack()}, new int[]{60, 10}); // / FERMENTER - RecipeManagers.fermenterManager.addRecipe(ForestryItem.honeydew.getItemStack(), 500, 1.0f, LiquidHelper.getLiquid(Defaults.LIQUID_MEAD, 1), - LiquidHelper.getLiquid(Defaults.LIQUID_HONEY, 1)); + RecipeManagers.fermenterManager.addRecipe(ForestryItem.honeydew.getItemStack(), 500, 1.0f, FluidRegistry.getFluidStack(Defaults.LIQUID_MEAD, 1), + FluidRegistry.getFluidStack(Defaults.LIQUID_HONEY, 1)); // ANALYZER definitionAnalyzer.recipes = createAlyzerRecipes(ForestryBlock.core.block(), Defaults.DEFINITION_ANALYZER_META); diff --git a/src/main/java/forestry/plugins/PluginArboriculture.java b/src/main/java/forestry/plugins/PluginArboriculture.java index e507bde93..2f33f7e73 100644 --- a/src/main/java/forestry/plugins/PluginArboriculture.java +++ b/src/main/java/forestry/plugins/PluginArboriculture.java @@ -10,6 +10,24 @@ ******************************************************************************/ package forestry.plugins; +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.command.ICommand; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.WeightedRandomChestContent; + +import net.minecraftforge.common.ChestGenHooks; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.oredict.OreDictionary; + import cpw.mods.fml.common.IFuelHandler; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; @@ -17,6 +35,7 @@ import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.registry.GameData; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.VillagerRegistry; + import forestry.api.arboriculture.EnumGermlingType; import forestry.api.arboriculture.ITree; import forestry.api.arboriculture.ITreeRoot; @@ -122,24 +141,8 @@ import forestry.core.interfaces.IPacketHandler; import forestry.core.items.ItemForestryBlock; import forestry.core.items.ItemFruit.EnumFruit; import forestry.core.proxy.Proxies; -import forestry.core.utils.LiquidHelper; import forestry.core.utils.RecipeUtil; import forestry.core.utils.ShapedRecipeCustom; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.command.ICommand; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.WeightedRandomChestContent; -import net.minecraftforge.common.ChestGenHooks; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.ArrayList; -import java.util.EnumSet; -import java.util.List; @Plugin(pluginID = "Arboriculture", name = "Arboriculture", author = "Binnie & SirSengir", url = Defaults.URL, unlocalizedDescription = "for.plugin.arboriculture.description") public class PluginArboriculture extends ForestryPlugin { @@ -409,7 +412,7 @@ public class PluginArboriculture extends ForestryPlugin { ItemStack logStack = forestryBlock.getItemStack(1, i); ItemStack fireproofLogStack = fireproofLog.getItemStack(1, i); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), fireproofLogStack, new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), fireproofLogStack, new Object[]{ " # ", "#X#", " # ", @@ -424,7 +427,7 @@ public class PluginArboriculture extends ForestryPlugin { ForestryBlock fireproofPlank = BlockFireproofPlanks.getFireproofPlanks((BlockPlanks)plank.block()); ItemStack plankStack = plank.getItemStack(1, i); ItemStack fireproofPlankStack = fireproofPlank.getItemStack(5, i); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), fireproofPlankStack, new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), fireproofPlankStack, new Object[]{ "X#X", "#X#", "X#X", @@ -436,7 +439,7 @@ public class PluginArboriculture extends ForestryPlugin { ForestryBlock fireproofPlank = BlockFireproofPlanks.getFireproofPlanks((BlockPlanks)plank.block()); ItemStack plankStack = plank.getItemStack(1, i); ItemStack fireproofPlankStack = fireproofPlank.getItemStack(5, i); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), fireproofPlankStack, new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), fireproofPlankStack, new Object[]{ "X#X", "#X#", "X#X", @@ -474,20 +477,20 @@ public class PluginArboriculture extends ForestryPlugin { Proxies.common.addRecipe(ForestryBlock.fences2.getItemStack(4, i), "###", "# #", '#', ForestryBlock.planks2.getItemStack(1, i)); // Treealyzer - RecipeManagers.carpenterManager.addRecipe(100, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 2000), null, ForestryItem.treealyzer.getItemStack(), "X#X", "X#X", "RDR", + RecipeManagers.carpenterManager.addRecipe(100, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 2000), null, ForestryItem.treealyzer.getItemStack(), "X#X", "X#X", "RDR", '#', Blocks.glass_pane, 'X', "ingotCopper", 'R', Items.redstone, 'D', Items.diamond); // SQUEEZER RECIPES - RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.CHERRY.ordinal())}, LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, 5 * GameMode.getGameMode().getIntegerSetting("squeezer.liquid.seed")), ForestryItem.mulch.getItemStack(), 5); - RecipeManagers.squeezerManager.addRecipe(60, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.WALNUT.ordinal())}, LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, 18 * GameMode.getGameMode().getIntegerSetting("squeezer.liquid.seed")), ForestryItem.mulch.getItemStack(), 5); - RecipeManagers.squeezerManager.addRecipe(70, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.CHESTNUT.ordinal())}, LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, 22 * GameMode.getGameMode().getIntegerSetting("squeezer.liquid.seed")), ForestryItem.mulch.getItemStack(), 2); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.LEMON.ordinal())}, LiquidHelper.getLiquid(Defaults.LIQUID_JUICE, GameMode.getGameMode().getIntegerSetting("squeezer.liquid.apple") * 2), ForestryItem.mulch.getItemStack(), (int) Math.floor(GameMode.getGameMode().getIntegerSetting("squeezer.mulch.apple") * 0.5f)); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.PLUM.ordinal())}, LiquidHelper.getLiquid(Defaults.LIQUID_JUICE, (int) Math.floor(GameMode.getGameMode().getIntegerSetting("squeezer.liquid.apple") * 0.5f)), ForestryItem.mulch.getItemStack(), GameMode.getGameMode().getIntegerSetting("squeezer.mulch.apple") * 3); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.PAPAYA.ordinal())}, LiquidHelper.getLiquid(Defaults.LIQUID_JUICE, GameMode.getGameMode().getIntegerSetting("squeezer.liquid.apple") * 3), ForestryItem.mulch.getItemStack(), (int) Math.floor(GameMode.getGameMode().getIntegerSetting("squeezer.mulch.apple") * 0.5f)); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.DATES.ordinal())}, LiquidHelper.getLiquid(Defaults.LIQUID_JUICE, (int) Math.floor(GameMode.getGameMode().getIntegerSetting("squeezer.liquid.apple") * 0.25)), ForestryItem.mulch.getItemStack(), (int) Math.floor(GameMode.getGameMode().getIntegerSetting("squeezer.mulch.apple"))); + RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.CHERRY.ordinal())}, FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, 5 * GameMode.getGameMode().getIntegerSetting("squeezer.liquid.seed")), ForestryItem.mulch.getItemStack(), 5); + RecipeManagers.squeezerManager.addRecipe(60, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.WALNUT.ordinal())}, FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, 18 * GameMode.getGameMode().getIntegerSetting("squeezer.liquid.seed")), ForestryItem.mulch.getItemStack(), 5); + RecipeManagers.squeezerManager.addRecipe(70, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.CHESTNUT.ordinal())}, FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, 22 * GameMode.getGameMode().getIntegerSetting("squeezer.liquid.seed")), ForestryItem.mulch.getItemStack(), 2); + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.LEMON.ordinal())}, FluidRegistry.getFluidStack(Defaults.LIQUID_JUICE, GameMode.getGameMode().getIntegerSetting("squeezer.liquid.apple") * 2), ForestryItem.mulch.getItemStack(), (int) Math.floor(GameMode.getGameMode().getIntegerSetting("squeezer.mulch.apple") * 0.5f)); + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.PLUM.ordinal())}, FluidRegistry.getFluidStack(Defaults.LIQUID_JUICE, (int) Math.floor(GameMode.getGameMode().getIntegerSetting("squeezer.liquid.apple") * 0.5f)), ForestryItem.mulch.getItemStack(), GameMode.getGameMode().getIntegerSetting("squeezer.mulch.apple") * 3); + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.PAPAYA.ordinal())}, FluidRegistry.getFluidStack(Defaults.LIQUID_JUICE, GameMode.getGameMode().getIntegerSetting("squeezer.liquid.apple") * 3), ForestryItem.mulch.getItemStack(), (int) Math.floor(GameMode.getGameMode().getIntegerSetting("squeezer.mulch.apple") * 0.5f)); + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.fruits.getItemStack(1, EnumFruit.DATES.ordinal())}, FluidRegistry.getFluidStack(Defaults.LIQUID_JUICE, (int) Math.floor(GameMode.getGameMode().getIntegerSetting("squeezer.liquid.apple") * 0.25)), ForestryItem.mulch.getItemStack(), (int) Math.floor(GameMode.getGameMode().getIntegerSetting("squeezer.mulch.apple"))); RecipeUtil.injectLeveledRecipe(ForestryItem.sapling.getItemStack(), GameMode.getGameMode().getIntegerSetting("fermenter.yield.sapling"), Defaults.LIQUID_BIOMASS); diff --git a/src/main/java/forestry/plugins/PluginBuildCraftFuels.java b/src/main/java/forestry/plugins/PluginBuildCraftFuels.java index 79ce9b58f..002241592 100644 --- a/src/main/java/forestry/plugins/PluginBuildCraftFuels.java +++ b/src/main/java/forestry/plugins/PluginBuildCraftFuels.java @@ -10,14 +10,18 @@ ******************************************************************************/ package forestry.plugins; -import buildcraft.api.fuels.BuildcraftFuelRegistry; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; + import cpw.mods.fml.common.Optional; + import forestry.core.GameMode; import forestry.core.config.Defaults; import forestry.core.config.ForestryItem; import forestry.core.proxy.Proxies; import forestry.core.utils.LiquidHelper; -import net.minecraftforge.fluids.Fluid; + +import buildcraft.api.fuels.BuildcraftFuelRegistry; @Plugin(pluginID = "BC6|Fuels", name = "BuildCraft 6 Fuels", author = "mezz", url = Defaults.URL, unlocalizedDescription = "for.plugin.buildcraft6.description") public class PluginBuildCraftFuels extends ForestryPlugin { @@ -35,9 +39,9 @@ public class PluginBuildCraftFuels extends ForestryPlugin { @Optional.Method(modid = "BuildCraftAPI|fuels") @Override public void doInit() { - BuildcraftFuelRegistry.coolant.addCoolant(LiquidHelper.getFluid(Defaults.LIQUID_ICE), 10.0f); + BuildcraftFuelRegistry.coolant.addCoolant(FluidRegistry.getFluid(Defaults.LIQUID_ICE), 10.0f); - Fluid ethanol = LiquidHelper.getLiquid(Defaults.LIQUID_ETHANOL, 1).getFluid(); + Fluid ethanol = FluidRegistry.getFluidStack(Defaults.LIQUID_ETHANOL, 1).getFluid(); int ethanolPower = 40; int ethanolBurnTime = Math.round(Defaults.ENGINE_CYCLE_DURATION_ETHANOL * GameMode.getGameMode().getFloatSetting("fuel.ethanol.combustion")); BuildcraftFuelRegistry.fuel.addFuel(ethanol, ethanolPower, ethanolBurnTime); diff --git a/src/main/java/forestry/plugins/PluginBuildCraftRecipes.java b/src/main/java/forestry/plugins/PluginBuildCraftRecipes.java index 632880e42..9224ffe1c 100644 --- a/src/main/java/forestry/plugins/PluginBuildCraftRecipes.java +++ b/src/main/java/forestry/plugins/PluginBuildCraftRecipes.java @@ -10,12 +10,15 @@ ******************************************************************************/ package forestry.plugins; -import buildcraft.api.recipes.BuildcraftRecipeRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + import cpw.mods.fml.common.Optional; + import forestry.core.config.Defaults; import forestry.core.proxy.Proxies; -import forestry.core.utils.LiquidHelper; -import net.minecraftforge.fluids.FluidStack; + +import buildcraft.api.recipes.BuildcraftRecipeRegistry; @Plugin(pluginID = "BC6|Recipes", name = "BuildCraft 6 Recipes", author = "SirSengir", url = Defaults.URL, unlocalizedDescription = "for.plugin.buildcraft6.description") public class PluginBuildCraftRecipes extends ForestryPlugin { @@ -34,8 +37,8 @@ public class PluginBuildCraftRecipes extends ForestryPlugin { @Override protected void registerRecipes() { // Add recipe for ethanol - FluidStack input = LiquidHelper.getLiquid(Defaults.LIQUID_BIOMASS, 4); - FluidStack output = LiquidHelper.getLiquid(Defaults.LIQUID_ETHANOL, 1); + FluidStack input = FluidRegistry.getFluidStack(Defaults.LIQUID_BIOMASS, 4); + FluidStack output = FluidRegistry.getFluidStack(Defaults.LIQUID_ETHANOL, 1); BuildcraftRecipeRegistry.refinery.addRecipe("forestry:BiomassToEthanol", input, output, 100, 1); } } diff --git a/src/main/java/forestry/plugins/PluginFactory.java b/src/main/java/forestry/plugins/PluginFactory.java index 05eec8e43..ccf9e261f 100755 --- a/src/main/java/forestry/plugins/PluginFactory.java +++ b/src/main/java/forestry/plugins/PluginFactory.java @@ -10,7 +10,17 @@ ******************************************************************************/ package forestry.plugins; +import java.util.ArrayList; + +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import net.minecraftforge.fluids.FluidRegistry; + import cpw.mods.fml.common.network.IGuiHandler; + import forestry.api.recipes.ICraftingProvider; import forestry.api.recipes.RecipeManagers; import forestry.core.GameMode; @@ -25,7 +35,6 @@ import forestry.core.interfaces.ISaveEventHandler; import forestry.core.items.ItemForestryBlock; import forestry.core.items.ItemNBTTile; import forestry.core.proxy.Proxies; -import forestry.core.utils.LiquidHelper; import forestry.core.utils.RecipeUtil; import forestry.core.utils.ShapedRecipeCustom; import forestry.factory.GuiHandlerFactory; @@ -42,12 +51,6 @@ import forestry.factory.gadgets.MillRainmaker; import forestry.factory.gadgets.TileWorktable; import forestry.factory.recipes.CraftGuideIntegration; import forestry.factory.triggers.FactoryTriggers; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; @Plugin(pluginID = "Factory", name = "Factory", author = "SirSengir", url = Defaults.URL, unlocalizedDescription = "for.plugin.factory.description") public class PluginFactory extends ForestryPlugin { @@ -250,27 +253,27 @@ public class PluginFactory extends ForestryPlugin { protected void registerRecipes() { // / FABRICATOR - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 0), new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 0), new Object[]{ " X ", "#X#", "XXX", '#', Items.redstone, 'X', "ingotCopper"}); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 1), new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 1), new Object[]{ " X ", "#X#", "XXX", '#', Items.redstone, 'X', "ingotTin"}); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 2), new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 2), new Object[]{ " X ", "#X#", "XXX", '#', Items.redstone, 'X', "ingotBronze"}); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 3), new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 3), new Object[]{ " X ", "#X#", "XXX", '#', Items.redstone, 'X', Items.iron_ingot}); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 4), new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 4), new Object[]{ " X ", "#X#", "XXX", '#', Items.redstone, 'X', Items.gold_ingot}); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 5), new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 5), new Object[]{ " X ", "#X#", "XXX", '#', Items.redstone, 'X', Items.diamond}); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 6), new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 6), new Object[]{ " X ", "#X#", "XXX", '#', Items.redstone, 'X', Blocks.obsidian}); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 7), new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 7), new Object[]{ " X ", "#X#", "XXX", '#', Items.redstone, 'X', Items.blaze_powder}); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 9), new Object[]{ + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 9), new Object[]{ " X ", "#X#", "XXX", '#', Items.redstone, 'X', Items.emerald}); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 10), + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 10), new Object[]{" X ", "#X#", "XXX", '#', Items.redstone, 'X', "gemApatite"}); - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 11), + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 11), new Object[]{" X ", "#X#", "XXX", '#', Items.redstone, 'X', new ItemStack(Items.dye, 1, 4)}); String[] dyes = {"dyeBlack", "dyeRed", "dyeGreen", "dyeBrown", "dyeBlue", "dyePurple", "dyeCyan", "dyeLightGray", "dyeGray", "dyePink", "dyeLime", @@ -278,28 +281,28 @@ public class PluginFactory extends ForestryPlugin { if (PluginManager.Module.APICULTURE.isEnabled()) for (int i = 0; i < 16; i++) - RecipeManagers.fabricatorManager.addRecipe(ForestryItem.waxCast.getItemStack(1, Defaults.WILDCARD), LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, + RecipeManagers.fabricatorManager.addRecipe(ForestryItem.waxCast.getItemStack(1, Defaults.WILDCARD), FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, Defaults.BUCKET_VOLUME), ForestryBlock.glass.getItemStack(1, 15 - i), new Object[]{"#", "X", '#', dyes[i], 'X', ForestryItem.propolis.getItemStack(1, Defaults.WILDCARD)}); // / SQUEEZER - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.apple)}, LiquidHelper.getLiquid(Defaults.LIQUID_JUICE, GameMode.getGameMode().getIntegerSetting("squeezer.liquid.apple")), + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.apple)}, FluidRegistry.getFluidStack(Defaults.LIQUID_JUICE, GameMode.getGameMode().getIntegerSetting("squeezer.liquid.apple")), ForestryItem.mulch.getItemStack(), GameMode.getGameMode().getIntegerSetting("squeezer.mulch.apple")); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.wheat_seeds)}, LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, GameMode + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.wheat_seeds)}, FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, GameMode .getGameMode().getIntegerSetting("squeezer.liquid.seed"))); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.pumpkin_seeds)}, LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, GameMode + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.pumpkin_seeds)}, FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, GameMode .getGameMode().getIntegerSetting("squeezer.liquid.seed"))); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.melon_seeds)}, LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, GameMode + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.melon_seeds)}, FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, GameMode .getGameMode().getIntegerSetting("squeezer.liquid.seed"))); RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{ForestryItem.phosphor.getItemStack(2), new ItemStack(Blocks.cobblestone)}, - LiquidHelper.getLiquid(Defaults.LIQUID_LAVA, 1600)); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Blocks.cactus)}, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 500)); + FluidRegistry.getFluidStack(Defaults.LIQUID_LAVA, 1600)); + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Blocks.cactus)}, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 500)); RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{new ItemStack(Items.snowball), ForestryItem.craftingMaterial.getItemStack(4, 5)}, - LiquidHelper.getLiquid(Defaults.LIQUID_ICE, 4000)); + FluidRegistry.getFluidStack(Defaults.LIQUID_ICE, 4000)); // STILL - RecipeManagers.stillManager.addRecipe(Defaults.STILL_DESTILLATION_DURATION, LiquidHelper.getLiquid(Defaults.LIQUID_BIOMASS, - Defaults.STILL_DESTILLATION_INPUT), LiquidHelper.getLiquid(Defaults.LIQUID_ETHANOL, Defaults.STILL_DESTILLATION_OUTPUT)); + RecipeManagers.stillManager.addRecipe(Defaults.STILL_DESTILLATION_DURATION, FluidRegistry.getFluidStack(Defaults.LIQUID_BIOMASS, + Defaults.STILL_DESTILLATION_INPUT), FluidRegistry.getFluidStack(Defaults.LIQUID_ETHANOL, Defaults.STILL_DESTILLATION_OUTPUT)); // MOISTENER RecipeManagers.moistenerManager.addRecipe(new ItemStack(Items.wheat_seeds), new ItemStack(Blocks.mycelium), 5000); @@ -319,17 +322,17 @@ public class PluginFactory extends ForestryPlugin { RecipeUtil.injectLeveledRecipe(new ItemStack(Blocks.red_mushroom), GameMode.getGameMode().getIntegerSetting("fermenter.yield.mushroom"), Defaults.LIQUID_BIOMASS); // FABRICATOR - RecipeManagers.fabricatorManager.addSmelting(new ItemStack(Blocks.glass), LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 1000), 1000); - RecipeManagers.fabricatorManager.addSmelting(new ItemStack(Blocks.glass_pane), LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 375), 1000); - RecipeManagers.fabricatorManager.addSmelting(new ItemStack(Blocks.sand), LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 1000), 3000); + RecipeManagers.fabricatorManager.addSmelting(new ItemStack(Blocks.glass), FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 1000), 1000); + RecipeManagers.fabricatorManager.addSmelting(new ItemStack(Blocks.glass_pane), FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 375), 1000); + RecipeManagers.fabricatorManager.addSmelting(new ItemStack(Blocks.sand), FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 1000), 3000); // / CARPENTER - RecipeManagers.carpenterManager.addRecipe(50, LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, 250), null, ForestryItem.impregnatedCasing.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(50, FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, 250), null, ForestryItem.impregnatedCasing.getItemStack(), "###", "# #", "###", '#', "logWood"); - RecipeManagers.carpenterManager.addRecipe(50, LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, 500), null, + RecipeManagers.carpenterManager.addRecipe(50, FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, 500), null, ForestryBlock.core.getItemStack(1, Defaults.DEFINITION_ESCRITOIRE_META), "# ", "###", @@ -337,35 +340,35 @@ public class PluginFactory extends ForestryPlugin { '#', "plankWood"); // RESOURCES - RecipeManagers.carpenterManager.addRecipe(10, LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, 100), null, + RecipeManagers.carpenterManager.addRecipe(10, FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, 100), null, ForestryItem.stickImpregnated.getItemStack(2), "#", "#", '#', "logWood"); - RecipeManagers.carpenterManager.addRecipe(5, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 250), null, + RecipeManagers.carpenterManager.addRecipe(5, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 250), null, ForestryItem.woodPulp.getItemStack(4), "#", '#', "logWood"); - RecipeManagers.carpenterManager.addRecipe(5, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 250), null, + RecipeManagers.carpenterManager.addRecipe(5, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 250), null, new ItemStack(Items.paper, 1), "#", "#", '#', "pulpWood"); - RecipeManagers.carpenterManager.addRecipe(5, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, + RecipeManagers.carpenterManager.addRecipe(5, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryBlock.soil.getItemStack(9), "###", "#X#", "###", '#', Blocks.dirt, 'X', ForestryItem.mulch); - RecipeManagers.carpenterManager.addRecipe(5, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, + RecipeManagers.carpenterManager.addRecipe(5, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryBlock.soil.getItemStack(8, 1), "#X#", "XYX", "#X#", '#', Blocks.dirt, 'X', Blocks.sand, 'Y', ForestryItem.mulch); - RecipeManagers.carpenterManager.addRecipe(75, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 5000), null, ForestryItem.hardenedCasing.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(75, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 5000), null, ForestryItem.hardenedCasing.getItemStack(), "# #", " Y ", "# #", @@ -373,21 +376,21 @@ public class PluginFactory extends ForestryPlugin { 'Y', ForestryItem.sturdyCasing); // / CHIPSETS - RecipeManagers.carpenterManager.addRecipe(20, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.circuitboards.getItemStack(1, 0), + RecipeManagers.carpenterManager.addRecipe(20, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.circuitboards.getItemStack(1, 0), "R R", "R#R", "R R", '#', "ingotTin", 'R', Items.redstone); - RecipeManagers.carpenterManager.addRecipe(40, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.circuitboards.getItemStack(1, 1), + RecipeManagers.carpenterManager.addRecipe(40, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.circuitboards.getItemStack(1, 1), "R#R", "R#R", "R#R", '#', "ingotBronze", 'R', Items.redstone); - RecipeManagers.carpenterManager.addRecipe(80, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.circuitboards.getItemStack(1, 2), + RecipeManagers.carpenterManager.addRecipe(80, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.circuitboards.getItemStack(1, 2), "R#R", "R#R", "R#R", '#', Items.iron_ingot, 'R', Items.redstone); - RecipeManagers.carpenterManager.addRecipe(80, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.circuitboards.getItemStack(1, 3), + RecipeManagers.carpenterManager.addRecipe(80, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.circuitboards.getItemStack(1, 3), "R#R", "R#R", "R#R", '#', Items.gold_ingot, 'R', Items.redstone); - RecipeManagers.carpenterManager.addRecipe(40, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.solderingIron.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(40, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.solderingIron.getItemStack(), " # ", "# #", " B", '#', Items.iron_ingot, 'B', "ingotBronze"); // ForestryCore.oreHandler.registerCarpenterRecipe(solderingIron); // RAIN SUBSTRATES if (PluginManager.Module.APICULTURE.isEnabled()) { - RecipeManagers.carpenterManager.addRecipe(5, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.iodineCharge.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(5, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.iodineCharge.getItemStack(), "Z#Z", "#Y#", "X#X", @@ -396,7 +399,7 @@ public class PluginFactory extends ForestryPlugin { 'Y', ForestryItem.canEmpty, 'Z', ForestryItem.honeyDrop); // ForestryCore.oreHandler.registerCarpenterRecipe(iodineCapsule); - RecipeManagers.carpenterManager.addRecipe(5, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.craftingMaterial.getItemStack(1, 4), + RecipeManagers.carpenterManager.addRecipe(5, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.craftingMaterial.getItemStack(1, 4), "Z#Z", "#Y#", "X#X", @@ -411,13 +414,13 @@ public class PluginFactory extends ForestryPlugin { RecipeManagers.carpenterManager.addRecipe(100, null, new ItemStack(Items.ender_pearl, 1), " # ", "###", " # ", '#', ForestryItem.craftingMaterial.getItemStack(1, 1)); // Woven Silk - RecipeManagers.carpenterManager.addRecipe(10, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 500), null, ForestryItem.craftingMaterial.getItemStack(1, 3), + RecipeManagers.carpenterManager.addRecipe(10, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 500), null, ForestryItem.craftingMaterial.getItemStack(1, 3), "###", "###", "###", '#', ForestryItem.craftingMaterial.getItemStack(1, 2)); // Boxes - RecipeManagers.carpenterManager.addRecipe(5, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.carton.getItemStack(2), + RecipeManagers.carpenterManager.addRecipe(5, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.carton.getItemStack(2), " # ", "# #", " # ", '#', "pulpWood"); - RecipeManagers.carpenterManager.addRecipe(20, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.crate.getItemStack(24), + RecipeManagers.carpenterManager.addRecipe(20, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.crate.getItemStack(24), " # ", "# #", " # ", '#', "logWood"); // Assembly Kits diff --git a/src/main/java/forestry/plugins/PluginIC2.java b/src/main/java/forestry/plugins/PluginIC2.java index ab30f2500..1360c94f1 100644 --- a/src/main/java/forestry/plugins/PluginIC2.java +++ b/src/main/java/forestry/plugins/PluginIC2.java @@ -10,9 +10,19 @@ ******************************************************************************/ package forestry.plugins; +import java.util.EnumSet; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.registry.GameData; + import forestry.api.circuits.ChipsetManager; import forestry.api.circuits.ICircuitLayout; import forestry.api.fuels.FuelManager; @@ -45,15 +55,10 @@ import forestry.energy.gadgets.EngineTin; import forestry.energy.gadgets.MachineGenerator; import forestry.farming.circuits.CircuitFarmLogic; import forestry.farming.logic.FarmLogicRubber; + import ic2.api.item.IC2Items; import ic2.api.recipe.RecipeInputItemStack; import ic2.api.recipe.Recipes; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -import java.util.EnumSet; @Plugin(pluginID = "IC2", name = "IndustrialCraft2", author = "SirSengir", url = Defaults.URL, unlocalizedDescription = "for.plugin.ic2.description") public class PluginIC2 extends ForestryPlugin { @@ -195,11 +200,11 @@ public class PluginIC2 extends ForestryPlugin { definitionEngineTin.register(); definitionGenerator.register(); - FluidStack ethanol = LiquidHelper.getLiquid(Defaults.LIQUID_ETHANOL, 1); + FluidStack ethanol = FluidRegistry.getFluidStack(Defaults.LIQUID_ETHANOL, 1); GeneratorFuel ethanolFuel = new GeneratorFuel(ethanol, (int) (32 * GameMode.getGameMode().getFloatSetting("fuel.ethanol.generator")), 4); FuelManager.generatorFuel.put(ethanol.getFluid(), ethanolFuel); - FluidStack biomass = LiquidHelper.getLiquid(Defaults.LIQUID_BIOMASS, 1); + FluidStack biomass = FluidRegistry.getFluidStack(Defaults.LIQUID_BIOMASS, 1); GeneratorFuel biomassFuel = new GeneratorFuel(biomass, (int) (8 * GameMode.getGameMode().getFloatSetting("fuel.biomass.generator")), 1); FuelManager.generatorFuel.put(biomass.getFluid(), biomassFuel); @@ -265,7 +270,7 @@ public class PluginIC2 extends ForestryPlugin { if (rubber != null) { for (Object rubberOreDict : RecipeUtil.getOreDictRecipeEquivalents(rubber)) { - RecipeManagers.fabricatorManager.addRecipe(null, LiquidHelper.getLiquid(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 8), + RecipeManagers.fabricatorManager.addRecipe(null, FluidRegistry.getFluidStack(Defaults.LIQUID_GLASS, 500), ForestryItem.tubes.getItemStack(4, 8), new Object[]{" X ", "#X#", "XXX", '#', Items.redstone, 'X', rubberOreDict}); } } diff --git a/src/main/java/forestry/plugins/PluginLepidopterology.java b/src/main/java/forestry/plugins/PluginLepidopterology.java index 1630ac097..b2ad5d5bd 100755 --- a/src/main/java/forestry/plugins/PluginLepidopterology.java +++ b/src/main/java/forestry/plugins/PluginLepidopterology.java @@ -17,6 +17,8 @@ import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.crafting.CraftingManager; + +import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.oredict.RecipeSorter; import cpw.mods.fml.common.SidedProxy; @@ -42,7 +44,6 @@ import forestry.core.gadgets.MachineDefinition; import forestry.core.genetics.Allele; import forestry.core.genetics.Branch; import forestry.core.items.ItemForestryBlock; -import forestry.core.utils.LiquidHelper; import forestry.core.utils.ShapedRecipeCustom; import forestry.core.utils.Utils; import forestry.lepidopterology.ButterflySpawner; @@ -148,9 +149,9 @@ public class PluginLepidopterology extends ForestryPlugin { protected void registerRecipes() { CraftingManager.getInstance().getRecipeList().add(new MatingRecipe()); - RecipeManagers.carpenterManager.addRecipe(100, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 2000), null, ForestryItem.flutterlyzer.getItemStack(), - "X#X", "X#X", "RDR", Character.valueOf('#'), Blocks.glass_pane, Character.valueOf('X'), "ingotBronze", Character.valueOf('R'), - Items.redstone, Character.valueOf('D'), Items.diamond); + RecipeManagers.carpenterManager.addRecipe(100, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 2000), null, ForestryItem.flutterlyzer.getItemStack(), + "X#X", "X#X", "RDR", '#', Blocks.glass_pane, 'X', "ingotBronze", 'R', + Items.redstone, 'D', Items.diamond); } private void createAlleles() { diff --git a/src/main/java/forestry/plugins/PluginMail.java b/src/main/java/forestry/plugins/PluginMail.java index b98c89c30..d3ac0b401 100755 --- a/src/main/java/forestry/plugins/PluginMail.java +++ b/src/main/java/forestry/plugins/PluginMail.java @@ -16,9 +16,12 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; + import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.network.IGuiHandler; +import forestry.api.mail.EnumAddressee; import forestry.api.mail.EnumPostage; import forestry.api.mail.PostManager; import forestry.api.recipes.RecipeManagers; @@ -34,9 +37,7 @@ import forestry.core.interfaces.ISaveEventHandler; import forestry.core.items.ItemForestryBlock; import forestry.core.proxy.Proxies; import forestry.core.triggers.Trigger; -import forestry.core.utils.LiquidHelper; import forestry.core.utils.ShapedRecipeCustom; -import forestry.api.mail.EnumAddressee; import forestry.mail.GuiHandlerMail; import forestry.mail.PacketHandlerMail; import forestry.mail.PostRegistry; @@ -201,7 +202,7 @@ public class PluginMail extends ForestryPlugin { 'X', stampDefinitions[i].getCraftingIngredient(), '#', Items.paper, 'Z', stampGlue); - RecipeManagers.carpenterManager.addRecipe(10, LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, 300), null, ForestryItem.stamps.getItemStack(9, i), + RecipeManagers.carpenterManager.addRecipe(10, FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, 300), null, ForestryItem.stamps.getItemStack(9, i), "XXX", "###", 'X', stampDefinitions[i].getCraftingIngredient(), '#', Items.paper); @@ -211,7 +212,7 @@ public class PluginMail extends ForestryPlugin { Proxies.common.addRecipe(new ItemStack(Items.paper), "###", '#', ForestryItem.letters.getItemStack(1, Defaults.WILDCARD)); // Carpenter - RecipeManagers.carpenterManager.addRecipe(10, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 250), null, ForestryItem.letters.getItemStack(), "###", "###", '#', ForestryItem.woodPulp); + RecipeManagers.carpenterManager.addRecipe(10, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 250), null, ForestryItem.letters.getItemStack(), "###", "###", '#', ForestryItem.woodPulp); Proxies.common.addShapelessRecipe(ForestryItem.catalogue.getItemStack(), ForestryItem.stamps.getItemStack(1, Defaults.WILDCARD), new ItemStack(Items.book)); } diff --git a/src/main/java/forestry/plugins/PluginNatura.java b/src/main/java/forestry/plugins/PluginNatura.java index 8611c3700..0e5a07b95 100755 --- a/src/main/java/forestry/plugins/PluginNatura.java +++ b/src/main/java/forestry/plugins/PluginNatura.java @@ -12,19 +12,20 @@ package forestry.plugins; import java.util.ArrayList; -import cpw.mods.fml.common.registry.GameData; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; + import cpw.mods.fml.common.event.FMLInterModComms; +import cpw.mods.fml.common.registry.GameData; import cpw.mods.fml.common.registry.GameRegistry; import forestry.api.recipes.RecipeManagers; import forestry.core.GameMode; import forestry.core.config.Defaults; import forestry.core.proxy.Proxies; -import forestry.core.utils.LiquidHelper; @Plugin(pluginID = "Natura", name = "Natura", author = "SirSengir", url = Defaults.URL, unlocalizedDescription = "for.plugin.natura.description") public class PluginNatura extends ForestryPlugin { @@ -86,7 +87,7 @@ public class PluginNatura extends ForestryPlugin { int amount = GameMode.getGameMode().getIntegerSetting("squeezer.liquid.seed"); for (ItemStack aSeedList : seedList) RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{aSeedList}, - LiquidHelper.getLiquid(Defaults.LIQUID_SEEDOIL, amount)); + FluidRegistry.getFluidStack(Defaults.LIQUID_SEEDOIL, amount)); ItemStack berryBlight = GameRegistry.findItemStack(NATURA, "berryBlight", 1); ItemStack berryDusk = GameRegistry.findItemStack(NATURA, "berryDusk", 1); @@ -119,7 +120,7 @@ public class PluginNatura extends ForestryPlugin { amount = (amount > 1) ? amount : 1; // Produce at least 1 mb of juice. for (ItemStack berry : berries) RecipeManagers.squeezerManager.addRecipe(3, new ItemStack[]{berry}, - LiquidHelper.getLiquid(Defaults.LIQUID_JUICE, amount)); + FluidRegistry.getFluidStack(Defaults.LIQUID_JUICE, amount)); } } diff --git a/src/main/java/forestry/plugins/PluginStorage.java b/src/main/java/forestry/plugins/PluginStorage.java index c8bfb475d..94708ad26 100755 --- a/src/main/java/forestry/plugins/PluginStorage.java +++ b/src/main/java/forestry/plugins/PluginStorage.java @@ -41,14 +41,15 @@ import net.minecraft.item.ItemDoor; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.IPlantable; +import net.minecraftforge.common.IShearable; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.oredict.OreDictionary; + import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.registry.GameData; -import net.minecraftforge.common.IPlantable; -import net.minecraftforge.common.IShearable; -import net.minecraftforge.oredict.OreDictionary; - import forestry.api.core.Tabs; import forestry.api.recipes.RecipeManagers; import forestry.api.storage.BackpackManager; @@ -66,7 +67,6 @@ import forestry.core.interfaces.ISaveEventHandler; import forestry.core.items.ItemForestry; import forestry.core.network.GuiId; import forestry.core.proxy.Proxies; -import forestry.core.utils.LiquidHelper; import forestry.storage.BackpackDefinition; import forestry.storage.BackpackHelper; import forestry.storage.GuiHandlerStorage; @@ -504,22 +504,22 @@ public class PluginStorage extends ForestryPlugin implements IOreDictionaryHandl // / CARPENTER // / BACKPACKS T2 - RecipeManagers.carpenterManager.addRecipe(200, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.minerBackpackT2.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(200, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.minerBackpackT2.getItemStack(), "WXW", "WTW", "WWW", 'X', Items.diamond, 'W', ForestryItem.craftingMaterial.getItemStack(1, 3), 'T', ForestryItem.minerBackpack); - RecipeManagers.carpenterManager.addRecipe(200, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.diggerBackpackT2.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(200, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.diggerBackpackT2.getItemStack(), "WXW", "WTW", "WWW", 'X', Items.diamond, 'W', ForestryItem.craftingMaterial.getItemStack(1, 3), 'T', ForestryItem.diggerBackpack); - RecipeManagers.carpenterManager.addRecipe(200, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.foresterBackpackT2.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(200, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.foresterBackpackT2.getItemStack(), "WXW", "WTW", "WWW", 'X', Items.diamond, 'W', ForestryItem.craftingMaterial.getItemStack(1, 3), 'T', ForestryItem.foresterBackpack); - RecipeManagers.carpenterManager.addRecipe(200, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.hunterBackpackT2.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(200, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.hunterBackpackT2.getItemStack(), "WXW", "WTW", "WWW", 'X', Items.diamond, 'W', ForestryItem.craftingMaterial.getItemStack(1, 3), 'T', ForestryItem.hunterBackpack); - RecipeManagers.carpenterManager.addRecipe(200, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.adventurerBackpackT2.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(200, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.adventurerBackpackT2.getItemStack(), "WXW", "WTW", "WWW", 'X', Items.diamond, 'W', ForestryItem.craftingMaterial.getItemStack(1, 3), 'T', ForestryItem.adventurerBackpack); - RecipeManagers.carpenterManager.addRecipe(200, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, 1000), null, ForestryItem.builderBackpackT2.getItemStack(), + RecipeManagers.carpenterManager.addRecipe(200, FluidRegistry.getFluidStack(Defaults.LIQUID_WATER, 1000), null, ForestryItem.builderBackpackT2.getItemStack(), "WXW", "WTW", "WWW", 'X', Items.diamond, 'W', ForestryItem.craftingMaterial.getItemStack(1, 3), 'T', ForestryItem.builderBackpack);