diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index a831abc71..222974e54 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -28,16 +28,9 @@ public class GUIHandler implements IGuiHandler { public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getTileEntity(x, y, z); - if(entity instanceof TileEntityMachineLiquefactor) { - return new ContainerLiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); - } - if(entity instanceof TileEntityMachineSolidifier) { - return new ContainerSolidifier(player.inventory, (TileEntityMachineSolidifier) entity); - } - - if(entity instanceof TileEntityMachineRadiolysis) { - return new ContainerRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); - } + if(entity instanceof TileEntityMachineLiquefactor) { return new ContainerLiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } + if(entity instanceof TileEntityMachineSolidifier) { return new ContainerSolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } + if(entity instanceof TileEntityMachineRadiolysis) { return new ContainerRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); } switch(ID) { case ModBlocks.guiID_test_difurnace: { @@ -875,16 +868,9 @@ public class GUIHandler implements IGuiHandler { public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getTileEntity(x, y, z); - if(entity instanceof TileEntityMachineLiquefactor) { - return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); - } - if(entity instanceof TileEntityMachineSolidifier) { - return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); - } - - if(entity instanceof TileEntityMachineRadiolysis) { - return new GUIRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); - } + if(entity instanceof TileEntityMachineLiquefactor) { return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } + if(entity instanceof TileEntityMachineSolidifier) { return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } + if(entity instanceof TileEntityMachineRadiolysis) { return new GUIRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); } switch(ID) { case ModBlocks.guiID_test_difurnace: { diff --git a/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java b/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java index 36a6f87b7..c59102c07 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java @@ -78,9 +78,8 @@ public class GUIRadiolysis extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(radiolysis.tanks[0].getSheet()); radiolysis.tanks[0].renderTank(this, guiLeft + 61, guiTop + 69, radiolysis.tanks[0].getTankType().textureX() * FluidTank.x, radiolysis.tanks[0].getTankType().textureY() * FluidTank.y, 8, 52); - //For some reason, liquid hydrogen appears as lava. but it doesn't seem to be an issue with any other fuel? for(byte j = 0; j < 2; j++) { - Minecraft.getMinecraft().getTextureManager().bindTexture(radiolysis.tanks[j].getSheet()); + Minecraft.getMinecraft().getTextureManager().bindTexture(radiolysis.tanks[j + 1].getSheet()); radiolysis.tanks[j + 1].renderTank(this, guiLeft + 87, guiTop + 33 + j * 36, radiolysis.tanks[j + 1].getTankType().textureX() * FluidTank.x, radiolysis.tanks[j + 1].getTankType().textureY() * FluidTank.y, 12, 16); } diff --git a/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java b/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java index 1a8614f38..fce717996 100644 --- a/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java @@ -12,6 +12,7 @@ import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.util.Tuple.Pair; +import com.hbm.util.Tuple.Quartet; import net.minecraft.item.ItemStack; @@ -49,13 +50,28 @@ public class RadiolysisRecipes { public static void registerRadiolysis() { radiolysis.put(Fluids.WATER, new Pair(new FluidStack(80, Fluids.ACID), new FluidStack(20, Fluids.HYDROGEN))); - //now this is poggers - radiolysis.put(Fluids.OIL, new Pair(new FluidStack(RefineryRecipes.oil_crack_oil, Fluids.CRACKOIL), new FluidStack(RefineryRecipes.oil_crack_petro, Fluids.PETROLEUM))); - radiolysis.put(Fluids.BITUMEN, new Pair(new FluidStack(RefineryRecipes.bitumen_crack_oil, Fluids.OIL), new FluidStack(RefineryRecipes.bitumen_crack_aroma, Fluids.AROMATICS))); - radiolysis.put(Fluids.SMEAR, new Pair(new FluidStack(RefineryRecipes.smear_crack_napht, Fluids.NAPHTHA), new FluidStack(RefineryRecipes.smear_crack_petro, Fluids.PETROLEUM))); - radiolysis.put(Fluids.GAS, new Pair(new FluidStack(RefineryRecipes.gas_crack_petro, Fluids.PETROLEUM), new FluidStack(RefineryRecipes.gas_crack_unsat, Fluids.UNSATURATEDS))); - radiolysis.put(Fluids.DIESEL, new Pair(new FluidStack(RefineryRecipes.diesel_crack_kero, Fluids.KEROSENE), new FluidStack(RefineryRecipes.diesel_crack_petro, Fluids.PETROLEUM))); - radiolysis.put(Fluids.KEROSENE, new Pair(new FluidStack(RefineryRecipes.kero_crack_petro, Fluids.PETROLEUM), new FluidStack(0, Fluids.NONE))); + //automatically add cracking recipes to the radiolysis recipe list + //we want the numbers and types to stay consistent anyway and this will save us a lot of headache later on + Map> cracking = RefineryRecipes.getCrackingRecipes(); + + if(cracking.isEmpty()) { + throw new IllegalStateException("RefineryRecipes.getCrackingRecipes has yielded an empty map while registering the radiolysis recipes! Either the load order is broken or cracking recipes have been removed!"); + } + + for(Entry> recipe : cracking.entrySet()) { + FluidType input = recipe.getKey(); + FluidType out1 = recipe.getValue().getW(); + FluidType out2 = recipe.getValue().getX(); + int amount1 = recipe.getValue().getY(); + int amount2 = recipe.getValue().getZ(); + + radiolysis.put(input, + new Pair( + new FluidStack(amount1, out1), + new FluidStack(amount2, out2) + ) + ); + } } public static Pair getRadiolysis(FluidType input) { diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index bf1525f82..f1ef4e866 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -115,4 +115,8 @@ public class RefineryRecipes { public static Quartet getCracking(FluidType oil) { return cracking.get(oil); } + + protected static Map> getCrackingRecipes() { + return cracking; + } }