From 09e1b6b19767857690ebefc134af87879df7ce63 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 20 Feb 2022 22:02:08 +0100 Subject: [PATCH] more chemplannt rework stuff, new templates, battery block fixes --- .../java/api/hbm/energy/IEnergyConnector.java | 4 + src/main/java/api/hbm/energy/PowerNet.java | 2 +- .../hbm/blocks/machine/MachineBattery.java | 2 +- .../hbm/blocks/machine/MachineChemplant.java | 297 +----- .../com/hbm/blocks/machine/MachineFENSU.java | 2 +- src/main/java/com/hbm/handler/GUIHandler.java | 8 +- .../handler/nei/ChemplantRecipeHandler.java | 13 +- .../java/com/hbm/inventory/RecipesCommon.java | 8 + .../container/ContainerMachineChemplant.java | 112 +-- .../hbm/inventory/gui/GUIMachineBattery.java | 4 +- .../inventory/gui/GUIMachineChemplant.java | 11 +- .../gui/GUIScreenTemplateFolder.java | 11 +- .../recipes/GasCentrifugeRecipes.java | 4 - .../hbm/inventory/recipes/MachineRecipes.java | 843 ------------------ .../hbm/items/machine/ItemChemistryIcon.java | 90 +- .../items/machine/ItemChemistryTemplate.java | 270 +----- src/main/java/com/hbm/main/ClientProxy.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 1 + .../render/tileentity/RenderChemplant.java | 42 +- .../hbm/render/tileentity/RenderFENSU.java | 2 +- .../render/tileentity/RenderRBMKConsole.java | 2 +- .../java/com/hbm/tileentity/TileMappings.java | 4 +- .../hbm/tileentity/machine/TileEntityFEL.java | 13 +- .../machine/TileEntityMachineChemplant.java | 13 +- .../TileEntityMachineChemplantNew.java | 7 + .../machine/TileEntityMachineGasCent.java | 33 +- .../storage/TileEntityMachineBattery.java | 54 +- .../{ => storage}/TileEntityMachineFENSU.java | 17 +- .../models/weapons/detonator_laser.png | Bin 0 -> 1109 bytes 29 files changed, 269 insertions(+), 1602 deletions(-) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityMachineFENSU.java (87%) create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java index 2ce5c3ebd..6c05e377d 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ b/src/main/java/api/hbm/energy/IEnergyConnector.java @@ -44,6 +44,10 @@ public interface IEnergyConnector { */ public long getMaxPower(); + public default long getTransferWeight() { + return Math.max(getMaxPower() - getPower(), 0); + } + /** * Basic implementation of subscribing to a nearby power grid * @param world diff --git a/src/main/java/api/hbm/energy/PowerNet.java b/src/main/java/api/hbm/energy/PowerNet.java index 62adacbba..c08a228c2 100644 --- a/src/main/java/api/hbm/energy/PowerNet.java +++ b/src/main/java/api/hbm/energy/PowerNet.java @@ -109,7 +109,7 @@ public class PowerNet implements IPowerNet { long totalReq = 0; for(IEnergyConnector con : this.subscribers) { - long req = Math.max(con.getMaxPower() - con.getPower(), 0); + long req = con.getTransferWeight(); weight.add(req); totalReq += req; } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBattery.java b/src/main/java/com/hbm/blocks/machine/MachineBattery.java index fb4913d82..514254660 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBattery.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBattery.java @@ -154,7 +154,7 @@ public class MachineBattery extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineBattery(maxPower); + return new TileEntityMachineBattery(); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemplant.java b/src/main/java/com/hbm/blocks/machine/MachineChemplant.java index ab382e6ba..b74324836 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemplant.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemplant.java @@ -1,296 +1,53 @@ package com.hbm.blocks.machine; -import java.util.Random; - +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineChemplant; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineChemplantNew; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class MachineChemplant extends BlockContainer implements IMultiblock { +public class MachineChemplant extends BlockDummyable { public MachineChemplant(Material p_i45386_1_) { super(p_i45386_1_); } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineChemplant(); - + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineChemplantNew(); + if(meta >= 6) return new TileEntityProxyCombo(false, true, true); + return null; } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.machine_chemplant); + public int[] getDimensions() { + return new int[] {2, 0, 2, 1, 2, 1}; } @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if (i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.chemplantDimensionEast)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.chemplantDimensionEast, ModBlocks.dummy_block_chemplant); - - // - DummyBlockChemplant.safeBreak = true; - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_chemplant); - TileEntity te = world.getTileEntity(x - 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_chemplant); - TileEntity te2 = world.getTileEntity(x - 1, y, z + 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 2, y, z, ModBlocks.dummy_port_chemplant); - TileEntity te3 = world.getTileEntity(x + 2, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 2, y, z + 1, ModBlocks.dummy_port_chemplant); - TileEntity te4 = world.getTileEntity(x + 2, y, z + 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockChemplant.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.chemplantDimensionSouth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.chemplantDimensionSouth, ModBlocks.dummy_block_chemplant); - - // - DummyBlockChemplant.safeBreak = true; - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_chemplant); - TileEntity te = world.getTileEntity(x, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_chemplant); - TileEntity te2 = world.getTileEntity(x - 1, y, z - 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z + 2, ModBlocks.dummy_port_chemplant); - TileEntity te3 = world.getTileEntity(x, y, z + 2); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z + 2, ModBlocks.dummy_port_chemplant); - TileEntity te4 = world.getTileEntity(x - 1, y, z + 2); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockChemplant.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.chemplantDimensionWest)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.chemplantDimensionWest, ModBlocks.dummy_block_chemplant); - - // - DummyBlockChemplant.safeBreak = true; - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_chemplant); - TileEntity te = world.getTileEntity(x + 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_chemplant); - TileEntity te2 = world.getTileEntity(x + 1, y, z - 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z, ModBlocks.dummy_port_chemplant); - TileEntity te3 = world.getTileEntity(x - 2, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z - 1, ModBlocks.dummy_port_chemplant); - TileEntity te4 = world.getTileEntity(x - 2, y, z - 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockChemplant.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.chemplantDimensionNorth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.chemplantDimensionNorth, ModBlocks.dummy_block_chemplant); - - // - DummyBlockChemplant.safeBreak = true; - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_chemplant); - TileEntity te = world.getTileEntity(x, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_chemplant); - TileEntity te2 = world.getTileEntity(x + 1, y, z + 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 2, ModBlocks.dummy_port_chemplant); - TileEntity te3 = world.getTileEntity(x, y, z - 2); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z - 2, ModBlocks.dummy_port_chemplant); - TileEntity te4 = world.getTileEntity(x + 1, y, z - 2); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockChemplant.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } + public int getOffset() { + return 1; } - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, ModBlocks.guiID_machine_chemplant); + } - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } + this.makeExtra(world, x + rot.offsetX * 2, y, z + rot.offsetZ * 2); + this.makeExtra(world, x - rot.offsetX * 1, y, z - rot.offsetZ * 1); + this.makeExtra(world, x + rot.offsetX * 2 + dir.offsetX, y, z + rot.offsetZ * 2 + dir.offsetZ); + this.makeExtra(world, x - rot.offsetX * 1 + dir.offsetX, y, z - rot.offsetZ * 1 + dir.offsetZ); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFENSU.java b/src/main/java/com/hbm/blocks/machine/MachineFENSU.java index 24ac88d2b..d541e34d0 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFENSU.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFENSU.java @@ -3,7 +3,7 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineFENSU; +import com.hbm.tileentity.machine.storage.TileEntityMachineFENSU; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index 6a17678b6..15fea4c33 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -327,8 +327,8 @@ public class GUIHandler implements IGuiHandler { } case ModBlocks.guiID_machine_chemplant: { - if(entity instanceof TileEntityMachineChemplant) { - return new ContainerMachineChemplant(player.inventory, (TileEntityMachineChemplant) entity); + if(entity instanceof TileEntityMachineChemplantNew) { + return new ContainerMachineChemplant(player.inventory, (TileEntityMachineChemplantNew) entity); } return null; } @@ -1167,8 +1167,8 @@ public class GUIHandler implements IGuiHandler { } case ModBlocks.guiID_machine_chemplant: { - if(entity instanceof TileEntityMachineChemplant) { - return new GUIMachineChemplant(player.inventory, (TileEntityMachineChemplant) entity); + if(entity instanceof TileEntityMachineChemplantNew) { + return new GUIMachineChemplant(player.inventory, (TileEntityMachineChemplantNew) entity); } return null; } diff --git a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java index 92475e8bc..83b23ab38 100644 --- a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java @@ -17,6 +17,7 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; +//TODO: destroy this abomination and replace it with something more sensible public class ChemplantRecipeHandler extends TemplateRecipeHandler { public LinkedList transferRectsRec = new LinkedList(); @@ -94,7 +95,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(String outputId, Object... results) { - if ((outputId.equals("chemistry")) && getClass() == ChemplantRecipeHandler.class) { + /*if ((outputId.equals("chemistry")) && getClass() == ChemplantRecipeHandler.class) { Map recipes = MachineRecipes.instance().getChemistryRecipes(); for (Map.Entry recipe : recipes.entrySet()) { this.arecipes.add(new SmeltingSet( @@ -114,12 +115,12 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { } } else { super.loadCraftingRecipes(outputId, results); - } + }*/ } @Override public void loadCraftingRecipes(ItemStack result) { - Map recipes = MachineRecipes.instance().getChemistryRecipes(); + /*Map recipes = MachineRecipes.instance().getChemistryRecipes(); for (Map.Entry recipe : recipes.entrySet()) { if (compareFluidStacks(result, (ItemStack)recipe.getValue()[0]) || compareFluidStacks(result, (ItemStack)recipe.getValue()[1]) || @@ -141,7 +142,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { (ItemStack)recipe.getValue()[4], (ItemStack)recipe.getValue()[5], (ItemStack)recipe.getKey()[6])); - } + }*/ } @Override @@ -155,7 +156,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { - Map recipes = MachineRecipes.instance().getChemistryRecipes(); + /*Map recipes = MachineRecipes.instance().getChemistryRecipes(); for (Map.Entry recipe : recipes.entrySet()) { if (compareFluidStacks(ingredient, (ItemStack)recipe.getKey()[0]) || compareFluidStacks(ingredient, (ItemStack)recipe.getKey()[1]) || @@ -178,7 +179,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { (ItemStack)recipe.getValue()[4], (ItemStack)recipe.getValue()[5], (ItemStack)recipe.getKey()[6])); - } + }*/ } private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { diff --git a/src/main/java/com/hbm/inventory/RecipesCommon.java b/src/main/java/com/hbm/inventory/RecipesCommon.java index 32512a06d..f29d3740e 100644 --- a/src/main/java/com/hbm/inventory/RecipesCommon.java +++ b/src/main/java/com/hbm/inventory/RecipesCommon.java @@ -93,6 +93,14 @@ public class RecipesCommon { * @return */ public abstract List extractForNEI(); + + public ItemStack extractForCyclingDisplay(int cycle) { + List list = extractForNEI(); + + cycle *= 50; + + return list.get((int)(System.currentTimeMillis() % (cycle * list.size()) / cycle)); + } } public static class ComparableStack extends AStack { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java index 62ea17d07..7f6a0563f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java @@ -1,143 +1,93 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; -import com.hbm.tileentity.machine.TileEntityMachineChemplant; +import com.hbm.tileentity.machine.TileEntityMachineChemplantNew; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerMachineChemplant extends Container { -private TileEntityMachineChemplant nukeBoy; + private TileEntityMachineChemplantNew nukeBoy; - private int progress; - private int maxProgress; - - public ContainerMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplant tedf) { - progress = 0; + public ContainerMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplantNew tedf) { nukeBoy = tedf; - //Battery + // Battery this.addSlotToContainer(new Slot(tedf, 0, 80, 18)); - //Upgrades + // Upgrades this.addSlotToContainer(new Slot(tedf, 1, 116, 18)); this.addSlotToContainer(new Slot(tedf, 2, 116, 36)); this.addSlotToContainer(new Slot(tedf, 3, 116, 54)); - //Schematic + // Schematic this.addSlotToContainer(new Slot(tedf, 4, 80, 54)); - //Outputs + // Outputs this.addSlotToContainer(new SlotMachineOutput(tedf, 5, 134, 90)); this.addSlotToContainer(new SlotMachineOutput(tedf, 6, 152, 90)); this.addSlotToContainer(new SlotMachineOutput(tedf, 7, 134, 108)); this.addSlotToContainer(new SlotMachineOutput(tedf, 8, 152, 108)); - //Fluid Output In + // Fluid Output In this.addSlotToContainer(new Slot(tedf, 9, 134, 54)); this.addSlotToContainer(new Slot(tedf, 10, 152, 54)); - //Fluid Outputs Out + // Fluid Outputs Out this.addSlotToContainer(new SlotMachineOutput(tedf, 11, 134, 72)); this.addSlotToContainer(new SlotMachineOutput(tedf, 12, 152, 72)); - //Input + // Input this.addSlotToContainer(new Slot(tedf, 13, 8, 90)); this.addSlotToContainer(new Slot(tedf, 14, 26, 90)); this.addSlotToContainer(new Slot(tedf, 15, 8, 108)); this.addSlotToContainer(new Slot(tedf, 16, 26, 108)); - //Fluid Input In + // Fluid Input In this.addSlotToContainer(new Slot(tedf, 17, 8, 54)); this.addSlotToContainer(new Slot(tedf, 18, 26, 54)); - //Fluid Input Out + // Fluid Input Out this.addSlotToContainer(new SlotMachineOutput(tedf, 19, 8, 72)); this.addSlotToContainer(new SlotMachineOutput(tedf, 20, 26, 72)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); } } - - for(int i = 0; i < 9; i++) - { + + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); } } - + @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); SlotMachineOutput.checkAchievements(p_82846_1_, var5); - - if (par2 <= 20) { - if (!this.mergeItemStack(var5, 21, this.inventorySlots.size(), true)) - { + + if(par2 <= 20) { + if(!this.mergeItemStack(var5, 21, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(var5, 4, 5, false)) - if (!this.mergeItemStack(var5, 13, 19, false)) + } else if(!this.mergeItemStack(var5, 4, 5, false)) + if(!this.mergeItemStack(var5, 13, 19, false)) return null; - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { return nukeBoy.isUseableByPlayer(player); } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.progress != this.nukeBoy.progress) - { - par1.sendProgressBarUpdate(this, 1, this.nukeBoy.progress); - } - - if(this.maxProgress != this.nukeBoy.maxProgress) - { - par1.sendProgressBarUpdate(this, 2, this.nukeBoy.maxProgress); - } - } - - this.progress= this.nukeBoy.progress; - this.maxProgress= this.nukeBoy.maxProgress; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) - { - nukeBoy.progress = j; - } - if(i == 2) - { - nukeBoy.maxProgress = j; - } - } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java index 9c28e2c69..14b870fb9 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java @@ -33,7 +33,7 @@ public class GUIMachineBattery extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 52, 52, battery.power, battery.maxPower); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 52, 52, battery.power, battery.getMaxPower()); long delta = battery.log[19] - battery.log[0]; String deltaText = BobMathUtil.getShortNumber(Math.abs(delta)) + "HE/s"; @@ -46,7 +46,7 @@ public class GUIMachineBattery extends GuiInfoContainer { deltaText = EnumChatFormatting.YELLOW + "+" + deltaText; String[] info = { - BobMathUtil.getShortNumber(battery.power) + "/" + BobMathUtil.getShortNumber(battery.maxPower) + "HE", + BobMathUtil.getShortNumber(battery.power) + "/" + BobMathUtil.getShortNumber(battery.getMaxPower()) + "HE", deltaText }; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java index 572a0fe6a..81093952d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java @@ -2,11 +2,10 @@ package com.hbm.inventory.gui; import org.lwjgl.opengl.GL11; -import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineChemplant; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineChemplant; +import com.hbm.tileentity.machine.TileEntityMachineChemplantNew; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; @@ -17,9 +16,9 @@ import net.minecraft.util.ResourceLocation; public class GUIMachineChemplant extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_chemplant.png"); - private TileEntityMachineChemplant chemplant; + private TileEntityMachineChemplantNew chemplant; - public GUIMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplant tedf) { + public GUIMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplantNew tedf) { super(new ContainerMachineChemplant(invPlayer, tedf)); chemplant = tedf; @@ -68,10 +67,10 @@ public class GUIMachineChemplant extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int i = (int)chemplant.getPowerScaled(52); + int i = (int) (chemplant.power * 52 / chemplant.maxPower); drawTexturedModalRect(guiLeft + 44, guiTop + 70 - i, 176, 52 - i, 16, i); - int j = chemplant.getProgressScaled(90); + int j = chemplant.progress * 90 / chemplant.maxProgress; drawTexturedModalRect(guiLeft + 43, guiTop + 89, 0, 222, j, 18); this.drawInfoPanel(guiLeft + 105, guiTop + 40, 8, 8, 8); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 1de103212..ffdd5a32a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -10,11 +10,12 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.AssemblerRecipes; +import com.hbm.inventory.recipes.ChemplantRecipes; +import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemCassette; import com.hbm.items.machine.ItemChemistryTemplate; import com.hbm.items.machine.ItemStamp; -import com.hbm.items.machine.ItemChemistryTemplate.EnumChemistryTemplate; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.lib.RefStrings; import com.hbm.packet.ItemFolderPacket; @@ -80,11 +81,9 @@ public class GUIScreenTemplateFolder extends GuiScreen { } } // Chemistry Templates - for(int i = 0; i < ItemChemistryTemplate.EnumChemistryTemplate.values().length; i++) { - EnumChemistryTemplate chem = EnumChemistryTemplate.getEnum(i); - if(!chem.isDisabled()) { - allStacks.add(new ItemStack(ModItems.chemistry_template, 1, i)); - } + for(int i = 0; i < ChemplantRecipes.recipes.size(); i++) { + ChemRecipe chem = ChemplantRecipes.recipes.get(i); + allStacks.add(new ItemStack(ModItems.chemistry_template, 1, chem.getId())); } } else { diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index 84d7ed95c..62e08f5e5 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -1,18 +1,14 @@ package com.hbm.inventory.recipes; -import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; -import java.util.List; import java.util.Map; import java.util.Map.Entry; import com.hbm.inventory.FluidStack; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; -import com.hbm.util.Tuple.Pair; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index d7851ebae..223da7f5c 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -1117,50 +1117,6 @@ public class MachineRecipes { return false; } - public Map getChemistryRecipes() { - - Map recipes = new HashMap(); - - for (int i = 0; i < ItemChemistryTemplate.EnumChemistryTemplate.values().length; ++i) - { - ItemStack[] inputs = new ItemStack[7]; - ItemStack[] outputs = new ItemStack[6]; - inputs[6] = new ItemStack(ModItems.chemistry_template, 1, i); - - List listIn = MachineRecipes.getChemInputFromTempate(inputs[6]); - if(listIn != null) - for(int j = 0; j < listIn.size(); j++) - if(listIn.get(j) != null) - inputs[j + 2] = listIn.get(j).copy(); - - FluidStack[] fluidIn = MachineRecipes.getFluidInputFromTempate(inputs[6]); - for(int j = 0; j < fluidIn.length; j++) - if(fluidIn[j] != null) - inputs[j] = ItemFluidIcon.addQuantity(new ItemStack(ModItems.fluid_icon, 1, fluidIn[j].type.getID()), fluidIn[j].fill); - - ItemStack[] listOut = MachineRecipes.getChemOutputFromTempate(inputs[6]); - for(int j = 0; j < listOut.length; j++) - if(listOut[j] != null) - outputs[j + 2] = listOut[j].copy(); - - FluidStack[] fluidOut = MachineRecipes.getFluidOutputFromTempate(inputs[6]); - for(int j = 0; j < fluidOut.length; j++) - if(fluidOut[j] != null) - outputs[j] = ItemFluidIcon.addQuantity(new ItemStack(ModItems.fluid_icon, 1, fluidOut[j].type.getID()), fluidOut[j].fill); - - for(int j = 0; j < inputs.length; j++) - if(inputs[j] == null) - inputs[j] = new ItemStack(ModItems.nothing); - - for(int j = 0; j < outputs.length; j++) - if(outputs[j] == null) - outputs[j] = new ItemStack(ModItems.nothing); - - recipes.put(inputs, outputs); - } - - return recipes; - } public Map getBoilerRecipes() { @@ -1186,805 +1142,6 @@ public class MachineRecipes { return recipes; } - public static List getChemInputFromTempate(ItemStack stack) { - - if(stack == null || !(stack.getItem() instanceof ItemChemistryTemplate)) - return null; - - List list = new ArrayList(); - ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage()); - - if(chem.isDisabled()) - return list; - - switch(chem) { - case CC_OIL: - list.add(new ItemStack(ModItems.powder_coal, 8)); - list.add(new ItemStack(ModItems.oil_tar, 4)); - break; - case CC_I: - list.add(new ItemStack(ModItems.powder_coal, 6)); - list.add(new ItemStack(ModItems.oil_tar, 4)); - break; - case CC_HEATING: - list.add(new ItemStack(ModItems.powder_coal, 6)); - list.add(new ItemStack(ModItems.oil_tar, 4)); - break; - case CC_HEAVY: - list.add(new ItemStack(ModItems.powder_coal, 8)); - list.add(new ItemStack(ModItems.oil_tar, 4)); - break; - case CC_NAPHTHA: - list.add(new ItemStack(ModItems.powder_coal, 8)); - list.add(new ItemStack(ModItems.oil_tar, 4)); - break; - case ASPHALT: - list.add(new ItemStack(Blocks.gravel, 2)); - list.add(new ItemStack(Blocks.sand, 6)); - break; - case CONCRETE: - list.add(new ItemStack(Blocks.gravel, 8)); - list.add(new ItemStack(Blocks.sand, 8)); - break; - case CONCRETE_ASBESTOS: - list.add(new ItemStack(Blocks.gravel, 2)); - list.add(new ItemStack(Blocks.sand, 2)); - list.add(new ItemStack(ModItems.ingot_asbestos, 4)); - break; - case COOLANT: - list.add(new ItemStack(ModItems.niter, 1)); - break; - case CRYOGEL: - list.add(new ItemStack(ModItems.powder_ice, 1)); - break; - case DESH: - list.add(new ItemStack(ModItems.powder_desh_mix, 1)); - break; - case CIRCUIT_4: - list.add(new ItemStack(ModItems.circuit_red_copper, 1)); - list.add(new ItemStack(ModItems.wire_gold, 4)); - list.add(new ItemStack(ModItems.powder_lapis, 1)); - list.add(new ItemStack(ModItems.ingot_polymer, 1)); - break; - case CIRCUIT_5: - list.add(new ItemStack(ModItems.circuit_gold, 1)); - list.add(new ItemStack(ModItems.wire_schrabidium, 4)); - list.add(new ItemStack(ModItems.powder_diamond, 1)); - list.add(new ItemStack(ModItems.ingot_desh, 1)); - break; - case POLYMER: - list.add(new ItemStack(ModItems.powder_coal, 2)); - list.add(new ItemStack(ModItems.fluorite, 1)); - break; - case DEUTERIUM: - list.add(new ItemStack(ModItems.sulfur, 1)); - break; - case BP_BIOGAS: - list.add(new ItemStack(ModItems.biomass, 16)); - break; - case YELLOWCAKE: - list.add(new ItemStack(ModItems.billet_uranium, 2)); - list.add(new ItemStack(ModItems.sulfur, 2)); - break; - case UF6: - list.add(new ItemStack(ModItems.powder_yellowcake, 1)); - list.add(new ItemStack(ModItems.fluorite, 4)); - break; - case PUF6: - list.add(new ItemStack(ModItems.powder_plutonium, 1)); - list.add(new ItemStack(ModItems.fluorite, 3)); - break; - case SAS3: - list.add(new ItemStack(ModItems.powder_schrabidium, 1)); - list.add(new ItemStack(ModItems.sulfur, 2)); - break; - case NITAN: - list.add(new ItemStack(ModItems.powder_nitan_mix, 2)); - break; - case OIL_SAND: - list.add(new ItemStack(ModBlocks.ore_oil_sand, 16)); - break; - case DYN_SCHRAB: - list.add(new ItemStack(ModItems.dynosphere_desh_charged, 3)); - list.add(new ItemStack(ModItems.ingot_uranium, 1)); - list.add(new ItemStack(ModItems.catalyst_clay, 8)); - break; - case DYN_EUPH: - list.add(new ItemStack(ModItems.dynosphere_schrabidium_charged, 1)); - list.add(new ItemStack(ModItems.ingot_plutonium, 1)); - list.add(new ItemStack(ModItems.catalyst_clay, 16)); - list.add(new ItemStack(ModItems.ingot_euphemium, 1)); - break; - case DYN_DNT: - list.add(new ItemStack(ModItems.dynosphere_euphemium_charged, 2)); - list.add(new ItemStack(ModItems.powder_spark_mix, 1)); - list.add(new ItemStack(ModItems.ingot_starmetal, 1)); - list.add(new ItemStack(ModItems.catalyst_clay, 32)); - break; - case CORDITE: - list.add(new ItemStack(ModItems.niter, 2)); - list.add(new ItemStack(Blocks.planks, 1)); - list.add(new ItemStack(Items.sugar, 1)); - break; - case KEVLAR: - list.add(new ItemStack(ModItems.niter, 2)); - list.add(new ItemStack(Items.brick, 1)); - list.add(new ItemStack(ModItems.powder_coal, 1)); - break; - case SOLID_FUEL: - list.add(new ItemStack(ModItems.solid_fuel, 2)); - list.add(new ItemStack(ModItems.niter, 1)); - list.add(new ItemStack(Items.redstone, 1)); - break; - case SATURN: - list.add(new ItemStack(ModItems.powder_dura_steel, 1)); - list.add(new ItemStack(ModItems.powder_fire, 1)); - break; - case BALEFIRE: - list.add(new ItemStack(ModItems.egg_balefire_shard, 1)); - break; - case SCHRABIDIC: - list.add(new ItemStack(ModItems.pellet_charged, 1)); - break; - case SCHRABIDATE: - list.add(new ItemStack(ModItems.powder_iron, 1)); - break; - case COLTAN_CLEANING: - list.add(new ItemStack(ModItems.powder_coltan_ore, 2)); - list.add(new ItemStack(ModItems.powder_coal, 1)); - break; - case COLTAN_PAIN: - list.add(new ItemStack(ModItems.powder_coltan, 1)); - list.add(new ItemStack(ModItems.fluorite, 1)); - break; - case VIT_LIQUID: - case VIT_GAS: - list.add(new ItemStack(ModBlocks.sand_lead, 1)); - break; - case TEL: - list.add(new ItemStack(ModItems.oil_tar, 1)); - list.add(new ItemStack(ModItems.powder_lead, 1)); - break; - case GASOLINE: - list.add(new ItemStack(ModItems.antiknock, 1)); - break; - case FRACKSOL: - list.add(new ItemStack(ModItems.sulfur, 1)); - break; - case HELIUM3: - list.add(new ItemStack(ModBlocks.moon_turf, 8)); - break; - case OSMIRIDIUM_DEATH: - list.add(new ItemStack(ModItems.powder_paleogenite, 1)); - list.add(new ItemStack(ModItems.fluorite, 8)); - list.add(new ItemStack(ModItems.nugget_bismuth, 4)); - break; - case ETHANOL: - list.add(new ItemStack(Items.sugar, 6)); - break; - case METH: - list.add(new ItemStack(Items.wheat, 1)); - list.add(new ItemStack(Items.dye, 2, 3)); - break; - case DUCRETE: - list.add(new ItemStack(Blocks.sand, 8)); - list.add(new ItemStack(ModItems.billet_u238, 2)); - list.add(new ItemStack(Items.clay_ball, 4)); - default: - break; - } - - if(list.isEmpty()) - return null; - else - return list; - } - - public static FluidStack[] getFluidInputFromTempate(ItemStack stack) { - - if(stack == null || !(stack.getItem() instanceof ItemChemistryTemplate)) - return null; - - FluidStack[] input = new FluidStack[2]; - - ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage()); - - if(chem.isDisabled()) - return input; - - switch(chem) { - case FP_HEAVYOIL: - input[0] = new FluidStack(1000, Fluids.HEAVYOIL); - break; - case FP_SMEAR: - input[0] = new FluidStack(1000, Fluids.SMEAR); - break; - case FP_NAPHTHA: - input[0] = new FluidStack(1000, Fluids.NAPHTHA); - break; - case FP_LIGHTOIL: - input[0] = new FluidStack(1000, Fluids.LIGHTOIL); - break; - case FR_REOIL: - input[0] = new FluidStack(1000, Fluids.SMEAR); - break; - case FR_PETROIL: - input[0] = new FluidStack(800, Fluids.RECLAIMED); - input[1] = new FluidStack(200, Fluids.LUBRICANT); - break; - case FC_BITUMEN: - input[0] = new FluidStack(1200, Fluids.BITUMEN); - input[1] = new FluidStack(2400, Fluids.STEAM); - break; - case FC_I_NAPHTHA: - input[0] = new FluidStack(1400, Fluids.SMEAR); - input[1] = new FluidStack(800, Fluids.WATER); - break; - case FC_GAS_PETROLEUM: - input[0] = new FluidStack(1800, Fluids.GAS); - input[1] = new FluidStack(1200, Fluids.WATER); - break; - case FC_DIESEL_KEROSENE: - input[0] = new FluidStack(1200, Fluids.DIESEL); - input[1] = new FluidStack(2000, Fluids.STEAM); - break; - case FC_KEROSENE_PETROLEUM: - input[0] = new FluidStack(1400, Fluids.KEROSENE); - input[1] = new FluidStack(2000, Fluids.STEAM); - break; - case CC_I: - input[0] = new FluidStack(1800, Fluids.WATER); - break; - case CC_OIL: - input[0] = new FluidStack(1400, Fluids.STEAM); - break; - case CC_HEATING: - input[0] = new FluidStack(2000, Fluids.STEAM); - break; - case CC_HEAVY: - input[0] = new FluidStack(1400, Fluids.WATER); - break; - case CC_NAPHTHA: - input[0] = new FluidStack(2400, Fluids.STEAM); - break; - case ASPHALT: - input[0] = new FluidStack(1000, Fluids.BITUMEN); - break; - case CONCRETE: - input[0] = new FluidStack(2000, Fluids.WATER); - break; - case CONCRETE_ASBESTOS: - input[0] = new FluidStack(2000, Fluids.WATER); - break; - case COOLANT: - input[0] = new FluidStack(1800, Fluids.WATER); - break; - case CRYOGEL: - input[0] = new FluidStack(1800, Fluids.COOLANT); - break; - case DESH: - if(GeneralConfig.enableBabyMode) { - input[0] = new FluidStack(200, Fluids.LIGHTOIL); - } else { - input[0] = new FluidStack(200, Fluids.MERCURY); - input[1] = new FluidStack(200, Fluids.LIGHTOIL); - } - break; - case PEROXIDE: - input[0] = new FluidStack(1000, Fluids.WATER); - break; - case CIRCUIT_4: - input[0] = new FluidStack(400, Fluids.ACID); - input[1] = new FluidStack(200, Fluids.PETROLEUM); - break; - case CIRCUIT_5: - input[0] = new FluidStack(800, Fluids.ACID); - input[1] = new FluidStack(200, Fluids.MERCURY); - break; - case SF_OIL: - input[0] = new FluidStack(SolidificationRecipes.SF_OIL * 2, Fluids.OIL); - break; - case SF_HEAVYOIL: - input[0] = new FluidStack(SolidificationRecipes.SF_HEAVY * 2, Fluids.HEAVYOIL); - break; - case SF_SMEAR: - input[0] = new FluidStack(SolidificationRecipes.SF_SMEAR * 2, Fluids.SMEAR); - break; - case SF_HEATINGOIL: - input[0] = new FluidStack(SolidificationRecipes.SF_HEATING * 2, Fluids.HEATINGOIL); - break; - case SF_RECLAIMED: - input[0] = new FluidStack(SolidificationRecipes.SF_RECLAIMED * 2, Fluids.RECLAIMED); - break; - case SF_PETROIL: - input[0] = new FluidStack(SolidificationRecipes.SF_PETROIL * 2, Fluids.PETROIL); - break; - case SF_LUBRICANT: - input[0] = new FluidStack(SolidificationRecipes.SF_LUBE * 2, Fluids.LUBRICANT); - break; - case SF_NAPHTHA: - input[0] = new FluidStack(SolidificationRecipes.SF_NAPH * 2, Fluids.NAPHTHA); - break; - case SF_DIESEL: - input[0] = new FluidStack(SolidificationRecipes.SF_DIESEL * 2, Fluids.DIESEL); - break; - case SF_LIGHTOIL: - input[0] = new FluidStack(SolidificationRecipes.SF_LIGHT * 2, Fluids.LIGHTOIL); - break; - case SF_KEROSENE: - input[0] = new FluidStack(SolidificationRecipes.SF_KEROSENE * 2, Fluids.KEROSENE); - break; - case SF_GAS: - input[0] = new FluidStack(SolidificationRecipes.SF_GAS * 2, Fluids.GAS); - break; - case SF_PETROLEUM: - input[0] = new FluidStack(SolidificationRecipes.SF_PETROLEUM * 2, Fluids.PETROLEUM); - break; - case SF_BIOGAS: - input[0] = new FluidStack(SolidificationRecipes.SF_BIOGAS * 2, Fluids.BIOGAS); - break; - case SF_BIOFUEL: - input[0] = new FluidStack(SolidificationRecipes.SF_BIOFUEL * 2, Fluids.BIOFUEL); - break; - case POLYMER: - input[0] = new FluidStack(600, Fluids.PETROLEUM); - break; - case DEUTERIUM: - input[0] = new FluidStack(4000, Fluids.WATER); - break; - case STEAM: - input[0] = new FluidStack(1000, Fluids.WATER); - break; - case LPG: - input[0] = new FluidStack(2000, Fluids.PETROLEUM); - break; - case BP_BIOFUEL: - input[0] = new FluidStack(2000, Fluids.BIOGAS); - break; - case YELLOWCAKE: - input[0] = new FluidStack(500, Fluids.ACID); - break; - case UF6: - input[0] = new FluidStack(1000, Fluids.WATER); - break; - case PUF6: - input[0] = new FluidStack(1000, Fluids.WATER); - break; - case SAS3: - input[0] = new FluidStack(2000, Fluids.ACID); - break; - case NITAN: - input[0] = new FluidStack(600, Fluids.KEROSENE); - input[1] = new FluidStack(200, Fluids.MERCURY); - break; - case OIL_SAND: - input[0] = new FluidStack(400, Fluids.BITUMEN); - break; - case CORDITE: - input[0] = new FluidStack(200, Fluids.HEATINGOIL); - break; - case KEVLAR: - input[0] = new FluidStack(100, Fluids.PETROLEUM); - break; - case SOLID_FUEL: - input[0] = new FluidStack(200, Fluids.PETROLEUM); - break; - case ELECTROLYSIS: - input[0] = new FluidStack(8000, Fluids.WATER); - break; - case XENON: - input[0] = new FluidStack(0, Fluids.NONE); - break; - case XENON_OXY: - input[0] = new FluidStack(250, Fluids.OXYGEN); - break; - case SATURN: - input[0] = new FluidStack(100, Fluids.ACID); - input[1] = new FluidStack(50, Fluids.MERCURY); - break; - case BALEFIRE: - input[0] = new FluidStack(6000, Fluids.KEROSENE); - break; - case SCHRABIDIC: - input[0] = new FluidStack(8000, Fluids.SAS3); - input[1] = new FluidStack(6000, Fluids.ACID); - break; - case SCHRABIDATE: - input[0] = new FluidStack(250, Fluids.SCHRABIDIC); - break; - case COLTAN_CLEANING: - input[0] = new FluidStack(250, Fluids.ACID); - input[1] = new FluidStack(500, Fluids.HYDROGEN); - break; - case COLTAN_PAIN: - input[0] = new FluidStack(1000, Fluids.GAS); - input[1] = new FluidStack(500, Fluids.OXYGEN); - break; - case COLTAN_CRYSTAL: - input[0] = new FluidStack(1000, Fluids.PAIN); - input[1] = new FluidStack(500, Fluids.ACID); - break; - case VIT_LIQUID: - input[0] = new FluidStack(1000, Fluids.WASTEFLUID); - break; - case VIT_GAS: - input[0] = new FluidStack(1000, Fluids.WASTEGAS); - break; - case TEL: - input[0] = new FluidStack(100, Fluids.PETROLEUM); - input[1] = new FluidStack(1000, Fluids.STEAM); - break; - case GASOLINE: - input[0] = new FluidStack(10000, Fluids.PETROIL); - break; - case FRACKSOL: - input[0] = new FluidStack(100, Fluids.PETROLEUM); - input[1] = new FluidStack(1000, Fluids.WATER); - break; - case OSMIRIDIUM_DEATH: - input[0] = new FluidStack(1000, Fluids.ACID); - break; - case METH: - input[0] = new FluidStack(400, Fluids.LUBRICANT); - input[1] = new FluidStack(400, Fluids.ACID); - break; - case CO2: - input[0] = new FluidStack(1000, Fluids.GAS); - break; - case HEAVY_ELECTROLYSIS: - input[0] = new FluidStack(8000, Fluids.HEAVYWATER); - break; - case DUCRETE: - input[0] = new FluidStack(2000, Fluids.WATER); - default: - break; - } - - return input; - } - - public static ItemStack[] getChemOutputFromTempate(ItemStack stack) { - - if(stack == null || !(stack.getItem() instanceof ItemChemistryTemplate)) - return null; - - ItemStack[] output = new ItemStack[4]; - - ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage()); - - if(chem.isDisabled()) - return output; - - switch(chem) { - case ASPHALT: - output[0] = new ItemStack(ModBlocks.asphalt, 4); - output[1] = new ItemStack(ModBlocks.asphalt, 4); - output[2] = new ItemStack(ModBlocks.asphalt, 4); - output[3] = new ItemStack(ModBlocks.asphalt, 4); - break; - case CONCRETE: - output[0] = new ItemStack(ModBlocks.concrete_smooth, 4); - output[1] = new ItemStack(ModBlocks.concrete_smooth, 4); - output[2] = new ItemStack(ModBlocks.concrete_smooth, 4); - output[3] = new ItemStack(ModBlocks.concrete_smooth, 4); - break; - case CONCRETE_ASBESTOS: - output[0] = new ItemStack(ModBlocks.concrete_asbestos, 4); - output[1] = new ItemStack(ModBlocks.concrete_asbestos, 4); - output[2] = new ItemStack(ModBlocks.concrete_asbestos, 4); - output[3] = new ItemStack(ModBlocks.concrete_asbestos, 4); - break; - case DESH: - output[0] = new ItemStack(ModItems.ingot_desh, 1); - break; - case CIRCUIT_4: - output[0] = new ItemStack(ModItems.circuit_gold, 1); - break; - case CIRCUIT_5: - output[0] = new ItemStack(ModItems.circuit_schrabidium, 1); - break; - case SF_OIL: - output[0] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE); - output[1] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE); - break; - case SF_HEAVYOIL: - output[0] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE); - output[1] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE); - break; - case SF_SMEAR: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_HEATINGOIL: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_RECLAIMED: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_PETROIL: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_LUBRICANT: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_NAPHTHA: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_DIESEL: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_LIGHTOIL: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_KEROSENE: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_GAS: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_PETROLEUM: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_BIOGAS: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case SF_BIOFUEL: - output[0] = new ItemStack(ModItems.solid_fuel, 1); - output[1] = new ItemStack(ModItems.solid_fuel, 1); - break; - case POLYMER: - output[0] = new ItemStack(ModItems.ingot_polymer, 1); - break; - case YELLOWCAKE: - output[0] = new ItemStack(ModItems.powder_yellowcake, 1); - break; - case UF6: - output[0] = new ItemStack(ModItems.sulfur, 2); - break; - case DYN_SCHRAB: - output[0] = new ItemStack(ModItems.ingot_schrabidium, 1); - output[1] = new ItemStack(ModItems.powder_desh, 12); - output[2] = new ItemStack(ModItems.powder_desh_mix, 12); - break; - case DYN_EUPH: - output[0] = new ItemStack(ModItems.nugget_euphemium, 12); - output[1] = new ItemStack(ModItems.powder_schrabidium, 4); - output[2] = new ItemStack(ModItems.powder_power, 4); - break; - case DYN_DNT: - output[0] = new ItemStack(ModItems.ingot_dineutronium, 1); - output[1] = new ItemStack(ModItems.powder_euphemium, 8); - output[2] = new ItemStack(ModItems.powder_nitan_mix, 8); - break; - case CORDITE: - output[0] = new ItemStack(ModItems.cordite, 4); - break; - case KEVLAR: - output[0] = new ItemStack(ModItems.plate_kevlar, 4); - break; - case SOLID_FUEL: - output[0] = new ItemStack(ModItems.rocket_fuel, 4); - break; - case SATURN: - output[0] = new ItemStack(ModItems.ingot_saturnite, 2); - break; - case BALEFIRE: - output[0] = new ItemStack(ModItems.powder_balefire, 1); - break; - case SCHRABIDATE: - output[0] = new ItemStack(ModItems.powder_schrabidate, 1); - break; - case COLTAN_CLEANING: - output[0] = new ItemStack(ModItems.powder_coltan, 1); - output[1] = new ItemStack(ModItems.powder_niobium, 1); - output[2] = new ItemStack(ModItems.dust, 1); - break; - case COLTAN_CRYSTAL: - output[0] = new ItemStack(ModItems.gem_tantalium, 1); - output[1] = new ItemStack(ModItems.dust, 3); - break; - case VIT_LIQUID: - case VIT_GAS: - output[0] = new ItemStack(ModItems.nuclear_waste_vitrified, 1); - break; - case TEL: - output[0] = new ItemStack(ModItems.antiknock, 1); - break; - case METH: - output[0] = new ItemStack(ModItems.chocolate, 2); - output[1] = new ItemStack(ModItems.chocolate, 2); - break; - case DUCRETE: - output[0] = new ItemStack(ModBlocks.ducrete_smooth, 2); - output[1] = new ItemStack(ModBlocks.ducrete_smooth, 2); - output[2] = new ItemStack(ModBlocks.ducrete_smooth, 2); - output[3] = new ItemStack(ModBlocks.ducrete_smooth, 2); - default: - break; - } - - return output; - } - - public static FluidStack[] getFluidOutputFromTempate(ItemStack stack) { - - if(stack == null || !(stack.getItem() instanceof ItemChemistryTemplate)) - return null; - - FluidStack[] output = new FluidStack[2]; - - ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage()); - - if(chem.isDisabled()) - return output; - - switch(chem) { - case FP_HEAVYOIL: - output[0] = new FluidStack(RefineryRecipes.heavy_frac_bitu * 10, Fluids.BITUMEN); - output[1] = new FluidStack(RefineryRecipes.heavy_frac_smear * 10, Fluids.SMEAR); - break; - case FP_SMEAR: - output[0] = new FluidStack(RefineryRecipes.smear_frac_heat * 10, Fluids.HEATINGOIL); - output[1] = new FluidStack(RefineryRecipes.smear_frac_lube * 10, Fluids.LUBRICANT); - break; - case FP_NAPHTHA: - output[0] = new FluidStack(RefineryRecipes.napht_frac_heat * 10, Fluids.HEATINGOIL); - output[1] = new FluidStack(RefineryRecipes.napht_frac_diesel * 10, Fluids.DIESEL); - break; - case FP_LIGHTOIL: - output[0] = new FluidStack(RefineryRecipes.light_frac_diesel * 10, Fluids.DIESEL); - output[1] = new FluidStack(RefineryRecipes.light_frac_kero * 10, Fluids.KEROSENE); - break; - case FR_REOIL: - output[0] = new FluidStack(800, Fluids.RECLAIMED); - break; - case FR_PETROIL: - output[0] = new FluidStack(1000, Fluids.PETROIL); - break; - case FC_BITUMEN: - output[0] = new FluidStack(1000, Fluids.OIL); - output[1] = new FluidStack(200, Fluids.PETROLEUM); - break; - case FC_I_NAPHTHA: - output[0] = new FluidStack(800, Fluids.NAPHTHA); - break; - case FC_GAS_PETROLEUM: - output[0] = new FluidStack(800, Fluids.PETROLEUM); - break; - case FC_DIESEL_KEROSENE: - output[0] = new FluidStack(400, Fluids.KEROSENE); - break; - case FC_KEROSENE_PETROLEUM: - output[0] = new FluidStack(800, Fluids.PETROLEUM); - break; - case CC_OIL: - output[0] = new FluidStack(2000, Fluids.OIL); - break; - case CC_I: - output[0] = new FluidStack(1600, Fluids.SMEAR); - break; - case CC_HEATING: - output[0] = new FluidStack(1800, Fluids.HEATINGOIL); - break; - case CC_HEAVY: - output[0] = new FluidStack(1800, Fluids.HEAVYOIL); - break; - case CC_NAPHTHA: - output[0] = new FluidStack(2000, Fluids.NAPHTHA); - break; - case COOLANT: - output[0] = new FluidStack(2000, Fluids.COOLANT); - break; - case CRYOGEL: - output[0] = new FluidStack(2000, Fluids.CRYOGEL); - break; - case PEROXIDE: - output[0] = new FluidStack(800, Fluids.ACID); - break; - case DEUTERIUM: - output[0] = new FluidStack(500, Fluids.DEUTERIUM); - break; - case STEAM: - output[0] = new FluidStack(1000, Fluids.STEAM); - break; - case BP_BIOGAS: - output[0] = new FluidStack(4000, Fluids.BIOGAS); - break; - case BP_BIOFUEL: - output[0] = new FluidStack(1000, Fluids.BIOFUEL); - break; - case LPG: - output[0] = new FluidStack(1000, Fluids.LPG); - break; - case UF6: - output[0] = new FluidStack(1200, Fluids.UF6); - break; - case PUF6: - output[0] = new FluidStack(900, Fluids.PUF6); - break; - case SAS3: - output[0] = new FluidStack(1000, Fluids.SAS3); - break; - case NITAN: - output[0] = new FluidStack(1000, Fluids.NITAN); - break; - case OIL_SAND: - output[0] = new FluidStack(1000, Fluids.BITUMEN); - break; - case DYN_SCHRAB: - output[0] = new FluidStack(50, Fluids.WATZ); - break; - case DYN_EUPH: - output[0] = new FluidStack(100, Fluids.WATZ); - break; - case DYN_DNT: - output[0] = new FluidStack(150, Fluids.WATZ); - break; - case ELECTROLYSIS: - output[0] = new FluidStack(400, Fluids.HYDROGEN); - output[1] = new FluidStack(400, Fluids.OXYGEN); - break; - case XENON: - output[0] = new FluidStack(50, Fluids.XENON); - break; - case XENON_OXY: - output[0] = new FluidStack(50, Fluids.XENON); - break; - case BALEFIRE: - output[0] = new FluidStack(8000, Fluids.BALEFIRE); - break; - case SCHRABIDIC: - output[0] = new FluidStack(16000, Fluids.SCHRABIDIC); - break; - case COLTAN_CLEANING: - output[0] = new FluidStack(500, Fluids.WATER); - break; - case COLTAN_PAIN: - output[0] = new FluidStack(1000, Fluids.PAIN); - break; - case COLTAN_CRYSTAL: - output[0] = new FluidStack(250, Fluids.WATER); - break; - case GASOLINE: - output[0] = new FluidStack(12000, Fluids.GASOLINE); - break; - case FRACKSOL: - output[0] = new FluidStack(1000, Fluids.FRACKSOL); - break; - case HELIUM3: - output[0] = new FluidStack(1000, Fluids.HELIUM3); - break; - case OSMIRIDIUM_DEATH: - output[0] = new FluidStack(1000, Fluids.DEATH); - break; - case ETHANOL: - output[0] = new FluidStack(1000, Fluids.ETHANOL); - break; - case CO2: - output[0] = new FluidStack(1000, Fluids.CARBONDIOXIDE); - break; - case HEAVY_ELECTROLYSIS: - output[0] = new FluidStack(400, Fluids.DEUTERIUM); - output[1] = new FluidStack(400, Fluids.OXYGEN); - break; - default: - break; - } - - return output; - } - public Map getFluidContainers() { Map map = new HashMap(); diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java b/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java index 0499585bb..37d76b7b0 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java @@ -2,8 +2,9 @@ package com.hbm.items.machine; import java.util.List; +import com.hbm.inventory.recipes.ChemplantRecipes; +import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemChemistryTemplate.EnumChemistryTemplate; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -16,55 +17,50 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.StatCollector; public class ItemChemistryIcon extends Item { - - @SideOnly(Side.CLIENT) - private IIcon[] icons; - public ItemChemistryIcon() - { - this.setHasSubtypes(true); - this.setMaxDamage(0); - } - - public String getItemStackDisplayName(ItemStack stack) - { - String s = ("" + StatCollector.translateToLocal(ModItems.chemistry_template.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal("chem." + EnumChemistryTemplate.getEnum(stack.getItemDamage()).name())).trim(); - - if (s1 != null) - { - s = s + " " + s1; - } - - return s; - } - - @Override @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tabs, List list) - { - for (int i = 0; i < EnumChemistryTemplate.values().length; ++i) - { - list.add(new ItemStack(item, 1, i)); - } - } + private IIcon[] icons; - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister reg) - { - this.icons = new IIcon[EnumChemistryTemplate.values().length]; + public ItemChemistryIcon() { + this.setHasSubtypes(true); + this.setMaxDamage(0); + } - for (int i = 0; i < icons.length; ++i) - { - this.icons[i] = reg.registerIcon("hbm:chem_icon_" + EnumChemistryTemplate.getEnum(i).name()); - } - } - - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int i) - { - int j = MathHelper.clamp_int(i, 0, icons.length - 1); - return this.icons[j]; - } + public String getItemStackDisplayName(ItemStack stack) { + + ChemRecipe chem = ChemplantRecipes.recipes.get(stack.getItemDamage() % ChemplantRecipes.recipes.size()); + + String s = ("" + StatCollector.translateToLocal(ModItems.chemistry_template.getUnlocalizedName() + ".name")).trim(); + String s1 = ("" + StatCollector.translateToLocal("chem." + chem.name)).trim(); + + if(s1 != null) { + s = s + " " + s1; + } + + return s; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for(int i = 0; i < ChemplantRecipes.recipes.size(); i++) { + list.add(new ItemStack(item, 1, ChemplantRecipes.recipes.get(i).getId())); + } + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + this.icons = new IIcon[ChemplantRecipes.recipes.size()]; + + for(int i = 0; i < icons.length; ++i) { + this.icons[i] = reg.registerIcon("hbm:chem_icon_" + ChemplantRecipes.recipes.get(i).name); + } + } + + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int i) { + int j = MathHelper.clamp_int(i, 0, icons.length - 1); + return this.icons[j]; + } } diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index f6ee4340c..3da019d69 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -4,7 +4,10 @@ import java.util.List; import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.recipes.ChemplantRecipes; import com.hbm.inventory.recipes.MachineRecipes; +import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; @@ -19,122 +22,6 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; public class ItemChemistryTemplate extends Item { - - @Spaghetti("this system is so utterly and horribly fucking retarded i can not believe i haven't been shot for this yet") - public enum EnumChemistryTemplate { - - //FP - Fuel Processing - //FR - Fuel Reprocessing - //FC - Fuel Cracking - //CC - Coal Cracking - //SF - Solid Fuel Production - //BP - Biofuel Production - - FP_HEAVYOIL, //0 - FP_SMEAR, - FP_NAPHTHA, - FP_LIGHTOIL, - FR_REOIL, - FR_PETROIL, - FC_BITUMEN(true), - FC_I_NAPHTHA(true), - FC_GAS_PETROLEUM(true), - FC_DIESEL_KEROSENE(true), - FC_KEROSENE_PETROLEUM(true), //10 - CC_OIL(true), - CC_I(true), - CC_HEATING(true), - CC_HEAVY(true), - CC_NAPHTHA(true), - SF_OIL(true), - SF_HEAVYOIL(true), - SF_SMEAR(true), - SF_HEATINGOIL(true), - SF_RECLAIMED(true), //20 - SF_PETROIL(true), - SF_LUBRICANT(true), - SF_NAPHTHA(true), - SF_DIESEL(true), - SF_LIGHTOIL(true), - SF_KEROSENE(true), - SF_GAS(true), - SF_PETROLEUM(true), - SF_BIOGAS(true), - SF_BIOFUEL(true), //30 - BP_BIOGAS, - BP_BIOFUEL, - LPG, - OIL_SAND, - ASPHALT, - COOLANT, - CRYOGEL, - DESH, - NITAN, - PEROXIDE, //40 - CIRCUIT_4, - CIRCUIT_5, - POLYMER, - DEUTERIUM, - STEAM, - YELLOWCAKE, - UF6, - PUF6, - SAS3, - DYN_SCHRAB, //50 - DYN_EUPH, - DYN_DNT, - CORDITE, - KEVLAR, - CONCRETE, - CONCRETE_ASBESTOS, - SOLID_FUEL, - ELECTROLYSIS, - XENON, - XENON_OXY, //60 - SATURN, - BALEFIRE, - SCHRABIDIC, - SCHRABIDATE, - COLTAN_CLEANING, - COLTAN_PAIN, - COLTAN_CRYSTAL, - VIT_LIQUID, - VIT_GAS, - TEL, //70 - GASOLINE, - FRACKSOL, - HELIUM3, - OSMIRIDIUM_DEATH, - ETHANOL, - METH, - CO2, - HEAVY_ELECTROLYSIS, - DUCRETE; - - private boolean disabled = false; - - private EnumChemistryTemplate() { } - - /** Alternate ctor for disabling recipes to prevent recipe shifting armageddon */ - private EnumChemistryTemplate(boolean disabled) { - this.disabled = disabled; - } - - public static EnumChemistryTemplate getEnum(int i) { - if(i < EnumChemistryTemplate.values().length) - return EnumChemistryTemplate.values()[i]; - else - return FP_HEAVYOIL; - } - - public String getName() { - return this.toString(); - } - - public boolean isDisabled() { - return this.disabled; - } - } public ItemChemistryTemplate() { this.setHasSubtypes(true); @@ -142,13 +29,14 @@ public class ItemChemistryTemplate extends Item { } public String getItemStackDisplayName(ItemStack stack) { - EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(stack.getItemDamage()); - if(enum1.isDisabled()) { + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(stack.getItemDamage()); + + if(recipe == null) { return EnumChatFormatting.RED + "Broken Template" + EnumChatFormatting.RESET; } else { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal("chem." + enum1.name())).trim(); + String s1 = ("" + StatCollector.translateToLocal("chem." + recipe.name)).trim(); if(s1 != null) { s = s + " " + s1; @@ -161,105 +49,8 @@ public class ItemChemistryTemplate extends Item { @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tabs, List list) { - for(int i = 0; i < EnumChemistryTemplate.values().length; ++i) { - EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(i); - - if(!enum1.isDisabled()) { - list.add(new ItemStack(item, 1, i)); - } - } - } - - public static int getProcessTime(ItemStack stack) { - - if(!(stack.getItem() instanceof ItemChemistryTemplate)) - return 100; - - int i = stack.getItemDamage(); - EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(i); - - switch(enum1) { - case FP_HEAVYOIL: return 50; - case FP_SMEAR: return 50; - case FP_NAPHTHA: return 50; - case FP_LIGHTOIL: return 50; - case FR_REOIL: return 30; - case FR_PETROIL: return 30; - case OIL_SAND: return 200; - case FC_BITUMEN: return 100; - case FC_I_NAPHTHA: return 150; - case FC_GAS_PETROLEUM: return 100; - case FC_DIESEL_KEROSENE: return 150; - case FC_KEROSENE_PETROLEUM: return 150; - case CC_OIL: return 150; - case CC_I: return 200; - case CC_HEATING: return 250; - case CC_HEAVY: return 200; - case CC_NAPHTHA: return 300; - case ASPHALT: return 100; - case COOLANT: return 50; - case CRYOGEL: return 50; - case DESH: return 300; - case NITAN: return 50; - case PEROXIDE: return 50; - case CIRCUIT_4: return 200; - case CIRCUIT_5: return 250; - case SF_OIL: return 20; - case SF_HEAVYOIL: return 20; - case SF_SMEAR: return 20; - case SF_HEATINGOIL: return 20; - case SF_RECLAIMED: return 20; - case SF_PETROIL: return 20; - case SF_LUBRICANT: return 20; - case SF_NAPHTHA: return 20; - case SF_DIESEL: return 20; - case SF_LIGHTOIL: return 20; - case SF_KEROSENE: return 20; - case SF_GAS: return 20; - case SF_PETROLEUM: return 20; - case SF_BIOGAS: return 20; - case SF_BIOFUEL: return 20; - case POLYMER: return 100; - case DEUTERIUM: return 200; - case STEAM: return 20; - case BP_BIOGAS: return 200; - case BP_BIOFUEL: return 100; - case LPG: return 100; - case YELLOWCAKE: return 250; - case UF6: return 100; - case PUF6: return 150; - case SAS3: return 200; - case DYN_SCHRAB: return 1 * 60 * 20; - case DYN_EUPH: return 3 * 60 * 20; - case DYN_DNT: return 5 * 60 * 20; - case CORDITE: return 40; - case KEVLAR: return 40; - case CONCRETE: return 100; - case CONCRETE_ASBESTOS: return 100; - case SOLID_FUEL: return 200; - case ELECTROLYSIS: return 150; - case XENON: return 300; - case XENON_OXY: return 20; - case SATURN: return 60; - case BALEFIRE: return 100; - case SCHRABIDIC: return 100; - case SCHRABIDATE: return 150; - case COLTAN_CLEANING: return 60; - case COLTAN_PAIN: return 120; - case COLTAN_CRYSTAL: return 80; - case VIT_LIQUID: return 100; - case VIT_GAS: return 100; - case TEL: return 40; - case GASOLINE: return 40; - case FRACKSOL: return 20; - case HELIUM3: return 200; - case OSMIRIDIUM_DEATH: return 240; - case ETHANOL: return 50; - case METH: return 30; - case CO2: return 60; - case HEAVY_ELECTROLYSIS: return 150; - case DUCRETE: return 150; - default: return 100; + for(int i = 0; i < ChemplantRecipes.recipes.size(); i++) { + list.add(new ItemStack(item, 1, ChemplantRecipes.recipes.get(i).getId())); } } @@ -268,41 +59,46 @@ public class ItemChemistryTemplate extends Item { if(!(stack.getItem() instanceof ItemChemistryTemplate)) return; + + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(stack.getItemDamage()); - if(EnumChemistryTemplate.getEnum(stack.getItemDamage()).isDisabled()) { + if(recipe == null) { return; } - List stacks = MachineRecipes.getChemInputFromTempate(stack); - FluidStack[] inF = MachineRecipes.getFluidInputFromTempate(stack); - ItemStack[] out = MachineRecipes.getChemOutputFromTempate(stack); - FluidStack[] outF = MachineRecipes.getFluidOutputFromTempate(stack); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name"))); list.add(""); try { list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_out_p")); - for(int i = 0; i < 4; i++) - if(out[i] != null) - list.add(out[i].stackSize + "x " + out[i].getDisplayName()); + for(int i = 0; i < 4; i++) { + if(recipe.outputs.length > i && recipe.outputs[i] != null) { + list.add(recipe.outputs[i].stackSize + "x " + recipe.outputs[i].getDisplayName()); + } + } - for(int i = 0; i < 2; i++) - if(outF[i] != null) - list.add(outF[i].fill + "mB " + I18n.format(outF[i].type.getUnlocalizedName())); + for(int i = 0; i < 2; i++) { + if(recipe.outputFluids.length > i && recipe.outputFluids[i] != null) { + list.add(recipe.outputFluids[i].fill + "mB " + I18n.format(recipe.outputFluids[i].type.getUnlocalizedName())); + } + } list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_in_p")); - if(stacks != null) - for(int i = 0; i < stacks.size(); i++) - list.add(stacks.get(i).stackSize + "x " + stacks.get(i).getDisplayName()); + for(int i = 0; i < recipe.inputs.length; i++) { + if(recipe.inputs.length > i && recipe.inputs[i] != null) { + list.add(recipe.inputs[i].stacksize + "x " + recipe.inputs[i].extractForCyclingDisplay(20).getDisplayName()); + } + } - for(int i = 0; i < 2; i++) - if(inF[i] != null) - list.add(inF[i].fill + "mB " + I18n.format(inF[i].type.getUnlocalizedName())); + for(int i = 0; i < 2; i++) { + if(recipe.inputFluids.length > i && recipe.inputFluids[i] != null) { + list.add(recipe.inputFluids[i].fill + "mB " + I18n.format(recipe.inputFluids[i].type.getUnlocalizedName())); + } + } list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_time")); - list.add(Math.floor((float) (getProcessTime(stack)) / 20 * 100) / 100 + " " + I18nUtil.resolveKey("info.template_seconds")); + list.add(Math.floor((float) (recipe.getDuration()) / 20 * 100) / 100 + " " + I18nUtil.resolveKey("info.template_seconds")); } catch(Exception e) { list.add("###INVALID###"); list.add("0x334077-0x6A298F-0xDF3795-0x334077"); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 554b38a1a..a95fca3f8 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -168,7 +168,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningDrill.class, new RenderMiningDrill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningLaser.class, new RenderLaserMiner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplant.class, new RenderChemplant()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplantNew.class, new RenderChemplant()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineBAT9000.class, new RenderBAT9000()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOrbus.class, new RenderOrbus()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 861c906f9..16555e3df 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -944,6 +944,7 @@ public class MainRegistry { TileEntityNukeFurnace.registerFuels(); BreederRecipes.registerRecipes(); AssemblerRecipes.loadRecipes(); + ChemplantRecipes.register(); CyclotronRecipes.register(); HadronRecipes.register(); MagicRecipes.register(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderChemplant.java b/src/main/java/com/hbm/render/tileentity/RenderChemplant.java index 56ce022de..e0f6082bd 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderChemplant.java +++ b/src/main/java/com/hbm/render/tileentity/RenderChemplant.java @@ -2,10 +2,11 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; import com.hbm.inventory.fluid.Fluids; import com.hbm.main.ResourceManager; import com.hbm.render.loader.HmfController; -import com.hbm.tileentity.machine.TileEntityMachineChemplant; +import com.hbm.tileentity.machine.TileEntityMachineChemplantNew; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -22,24 +23,22 @@ public class RenderChemplant extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glRotatef(180, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) { - case 2: + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 5: GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glTranslated(0.5D, 0.0D, -0.5D); + break; + case 2: + GL11.glRotatef(270, 0F, 1F, 0F); break; case 4: - GL11.glRotatef(270, 0F, 1F, 0F); - GL11.glTranslated(0.5D, 0.0D, -0.5D); + GL11.glRotatef(0, 0F, 1F, 0F); break; case 3: - GL11.glRotatef(0, 0F, 1F, 0F); - GL11.glTranslated(0.5D, 0.0D, -0.5D); - break; - case 5: GL11.glRotatef(90, 0F, 1F, 0F); - GL11.glTranslated(0.5D, 0.0D, -0.5D); break; } + + GL11.glTranslated(-0.5D, 0.0D, 0.5D); bindTexture(ResourceManager.chemplant_body_tex); @@ -52,29 +51,28 @@ public class RenderChemplant extends TileEntitySpecialRenderer { public void renderExtras(TileEntity tileEntity, double x, double y, double z, float f) { GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glRotatef(180, 0F, 1F, 0F); - TileEntityMachineChemplant chem = (TileEntityMachineChemplant) tileEntity; - switch(chem.getBlockMetadata()) { - case 2: - GL11.glTranslated(-1, 0, 0); + TileEntityMachineChemplantNew chem = (TileEntityMachineChemplantNew) tileEntity; + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 5: GL11.glRotatef(180, 0F, 1F, 0F); break; - case 4: + case 2: GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glTranslated(0, 0, -1); + case 4: GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: - GL11.glTranslated(-1, 0, -1); + case 3: GL11.glRotatef(90, 0F, 1F, 0F); break; } - + + GL11.glTranslated(-0.5D, 0.0D, 0.5D); + bindTexture(ResourceManager.chemplant_spinner_tex); int rotation = (int) (System.currentTimeMillis() % (360 * 5)) / 5; diff --git a/src/main/java/com/hbm/render/tileentity/RenderFENSU.java b/src/main/java/com/hbm/render/tileentity/RenderFENSU.java index 9fccc8ade..1ace84964 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFENSU.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFENSU.java @@ -4,7 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineFENSU; +import com.hbm.tileentity.machine.storage.TileEntityMachineFENSU; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java index 94064d651..a89f2c3b5 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java @@ -4,9 +4,9 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineFENSU; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.RBMKColumn; +import com.hbm.tileentity.machine.storage.TileEntityMachineFENSU; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 5a1a76d81..1bcc0013f 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -79,7 +79,6 @@ public class TileMappings { put(TileEntityMachineAssembler.class, "tileentity_assembly_machine"); put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple"); put(TileEntityFluidDuct.class, "tileentity_universal_duct"); - put(TileEntityMachineChemplant.class, "tileentity_chemical_plant"); put(TileEntityMachineFluidTank.class, "tileentity_fluid_tank"); put(TileEntityTurretHeavy.class, "tileentity_turret_heavy"); put(TileEntityTurretRocket.class, "tileentity_turret_rocket"); @@ -244,7 +243,8 @@ public class TileMappings { put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower"); put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor"); put(TileEntityMachineSolidifier.class, "tileentity_solidifier"); - + + put(TileEntityMachineChemplantNew.class, "tileentity_chemical_plant"); put(TileEntityMachineOilWell.class, "tileentity_derrick"); put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack"); put(TileEntityMachineFrackingTower.class, "tileentity_fracking_tower"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index b4a45dd98..ccfcf5b65 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -5,11 +5,8 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockHazard; -import com.hbm.blocks.generic.BlockHazardFalling; import com.hbm.blocks.machine.MachineSILEX; import com.hbm.extprop.HbmLivingProps; -import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.interfaces.Spaghetti; import com.hbm.items.machine.ItemFELCrystal; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; @@ -20,16 +17,12 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.block.BlockTNT; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -61,6 +54,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser return "container.machineFEL"; } + @SuppressWarnings("incomplete-switch") @Override @Spaghetti ("What the fuck were you thinking") public void updateEntity() { @@ -83,7 +77,6 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser } else { this.mode = EnumWavelengths.NULL; } int range = 24; - int length = 3; boolean silexSpacing = false; if(this.isOn && power >= powerReq * Math.pow(3, mode.ordinal()) && this.mode != EnumWavelengths.NULL) { @@ -101,7 +94,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser switch(this.mode) { case VISIBLE: entity.addPotionEffect(new PotionEffect(Potion.blindness.id, 60 * 60 * 65536, 0)); case IR: - case UV: entity.setFire(65535); break; + case UV: entity.setFire(10); break; case GAMMA: HbmLivingProps.incrementRadiation(entity, 25); break; case DRX: HbmLivingProps.incrementDigamma(entity, 0.1F); break; } @@ -110,8 +103,6 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser power -= powerReq * ((mode.ordinal() == 0) ? 0 : Math.pow(3, mode.ordinal())); for(int i = 3; i < range; i++) { - length = i; - int x = xCoord + dir.offsetX * i; int y = yCoord + 1; int z = zCoord + dir.offsetZ * i; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index c3563f814..9ac07f796 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -44,6 +44,7 @@ import net.minecraft.tileentity.TileEntityHopper; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.oredict.OreDictionary; +@Deprecated //shut up and die please public class TileEntityMachineChemplant extends TileEntity implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource { private ItemStack slots[]; @@ -300,7 +301,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); } - FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]); + /*FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]); FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]); if((MachineRecipes.getChemInputFromTempate(slots[4]) != null || !Library.isArrayEmpty(inputs)) && @@ -436,7 +437,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(xCoord + 1.625, yCoord + 3, zCoord + 0.375, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord + 1.625, yCoord + 3, zCoord + 0.375, 50)); } - } + }*/ PacketDispatcher.wrapper.sendToAllAround(new TEChemplantPacket(xCoord, yCoord, zCoord, isProgressing), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); @@ -540,7 +541,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve private void setContainers() { - if(slots[4] == null || (slots[4] != null && !(slots[4].getItem() instanceof ItemChemistryTemplate))) { + /*if(slots[4] == null || (slots[4] != null && !(slots[4].getItem() instanceof ItemChemistryTemplate))) { } else { FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]); FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]); @@ -549,7 +550,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve tanks[1].setTankType(inputs[1] == null ? Fluids.NONE : inputs[1].type); tanks[2].setTankType(outputs[0] == null ? Fluids.NONE : outputs[0].type); tanks[3].setTankType(outputs[1] == null ? Fluids.NONE : outputs[1].type); - } + }*/ } public boolean hasFluidsStored(FluidStack[] fluids) { @@ -724,7 +725,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve //Loads assembler's input queue from chests public boolean tryFillAssembler(IInventory inventory, int slot) { - FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]); + /*FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]); FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]); if(!((MachineRecipes.getChemInputFromTempate(slots[4]) != null || !Library.isArrayEmpty(inputs)) && @@ -754,7 +755,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve if(!flag) return false; - } + }*/ for(int i = 13; i < 17; i++) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantNew.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantNew.java index adc336064..8b7e1943c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantNew.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantNew.java @@ -30,6 +30,7 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme public static final long maxPower = 100000; public int progress; public int maxProgress = 100; + public boolean isProgressing; public FluidTank[] tanks; @@ -67,6 +68,7 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme if(!worldObj.isRemote) { + this.isProgressing = false; this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); if(!tanks[0].loadTank(17, 19, slots)) tanks[0].unloadTank(17, 19, slots); @@ -99,6 +101,7 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme if(!canProcess()) { this.progress = 0; } else { + isProgressing = true; process(); } @@ -106,10 +109,13 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme data.setLong("power", this.power); data.setInteger("progress", this.progress); data.setInteger("maxProgress", this.maxProgress); + data.setBoolean("isProgressing", isProgressing); for(int i = 0; i < tanks.length; i++) { tanks[i].writeToNBT(data, "t" + i); } + + this.networkPack(data, 150); } } @@ -118,6 +124,7 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); this.maxProgress = nbt.getInteger("maxProgress"); + this.isProgressing = nbt.getBoolean("isProgressing"); for(int i = 0; i < tanks.length; i++) { tanks[i].readFromNBT(nbt, "t" + i); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index 5ae1bd073..17381d36e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -1,9 +1,5 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; @@ -11,14 +7,10 @@ import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.recipes.GasCentrifugeRecipes; import com.hbm.inventory.recipes.GasCentrifugeRecipes.PseudoFluidType; -import com.hbm.inventory.recipes.MachineRecipes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIdentifier; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; @@ -27,12 +19,8 @@ import api.hbm.energy.IEnergyUser; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @@ -330,23 +318,26 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I FluidType newType = ItemFluidIdentifier.getType(slots[in]); if(tank.getTankType() != newType) { - tank.setTankType(newType); - tank.setFill(0); + + boolean success = false; if(newType == Fluids.UF6) { inputTank.setTankType(PseudoFluidType.NUF6); outputTank.setTankType(PseudoFluidType.NUF6.getOutputFluid()); - return; - } - if(newType == Fluids.PUF6) { + success = true; + } else if(newType == Fluids.PUF6) { inputTank.setTankType(PseudoFluidType.PF6); outputTank.setTankType(PseudoFluidType.PF6.getOutputFluid()); - return; - } - if(newType == Fluids.WATZ) { + success = true; + } else if(newType == Fluids.WATZ) { inputTank.setTankType(PseudoFluidType.MUD); outputTank.setTankType(PseudoFluidType.MUD.getOutputFluid()); - return; + success = true; + } + + if(success) { + tank.setTankType(newType); + tank.setFill(0); } } return; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index af29de991..f0c188e0a 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -18,12 +18,15 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public long[] log = new long[20]; public long power = 0; - public long maxPower = 1000000; //0: input only //1: buffer //2: output only //3: nothing + public static final int mode_input = 0; + public static final int mode_buffer = 1; + public static final int mode_output = 2; + public static final int mode_none = 3; public short redLow = 0; public short redHigh = 2; @@ -39,12 +42,6 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I super(2); slots = new ItemStack[2]; } - - public TileEntityMachineBattery(long maxPower) { - super(2); - slots = new ItemStack[2]; - this.maxPower = maxPower; - } @Override public String getName() { @@ -146,7 +143,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } public long getPowerRemainingScaled(long i) { - return (power * i) / maxPower; + return (power * i) / this.getMaxPower(); } @Override @@ -154,20 +151,17 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(worldObj.getBlock(xCoord, yCoord, zCoord) instanceof MachineBattery && !worldObj.isRemote) { - this.maxPower = ((MachineBattery)worldObj.getBlock(xCoord, yCoord, zCoord)).maxPower; - - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - power = Library.chargeItemsFromTE(slots, 1, power, maxPower); - long prevPower = this.power; ////////////////////////////////////////////////////////////////////// this.transmitPower(); ////////////////////////////////////////////////////////////////////// + power = Library.chargeTEFromItems(slots, 0, power, getMaxPower()); + power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); + NBTTagCompound nbt = new NBTTagCompound(); nbt.setLong("power", (power + prevPower) / 2); - nbt.setLong("maxPower", maxPower); nbt.setShort("redLow", redLow); nbt.setShort("redHigh", redHigh); this.networkPack(nbt, 20); @@ -200,7 +194,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } //then we add energy - if(mode == 1 || mode == 2) { + if(mode == mode_buffer || mode == mode_output) { if(te instanceof IEnergyConnector) { IEnergyConnector con = (IEnergyConnector) te; long oldPower = this.power; @@ -214,7 +208,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I IEnergyConductor con = (IEnergyConductor) te; if(con.getPowerNet() != null) { - if(mode == 2 || mode == 3) { + if(mode == mode_output || mode == mode_none) { if(con.getPowerNet().isSubscribed(this)) { con.getPowerNet().unsubscribe(this); } @@ -230,7 +224,6 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); - this.maxPower = nbt.getLong("maxPower"); this.redLow = nbt.getShort("redLow"); this.redHigh = nbt.getShort("redHigh"); } @@ -248,14 +241,17 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return this.redLow; } } + + private long bufferedMax; @Override public long getMaxPower() { - if(!worldObj.isRemote && getRelevantMode() >= 2) - return this.getPower(); + if(bufferedMax == 0) { + bufferedMax = ((MachineBattery)worldObj.getBlock(xCoord, yCoord, zCoord)).maxPower; + } - return maxPower; + return bufferedMax; } /* @@ -263,6 +259,12 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I */ @Override public long transferPower(long power) { + + int mode =this.getRelevantMode(); + + if(mode == mode_output || mode == mode_none) { + return power; + } this.power += power; @@ -275,6 +277,18 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return 0; } + + @Override + public long getTransferWeight() { + + int mode =this.getRelevantMode(); + + if(mode == mode_output || mode == mode_none) { + return 0; + } + + return Math.max(getMaxPower() - getPower(), 0); + } @Override public boolean canConnect(ForgeDirection dir) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java similarity index 87% rename from src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index 7126d6310..4b399436d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -1,7 +1,6 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; import com.hbm.lib.Library; -import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IEnergyConnector; @@ -20,18 +19,15 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { @Override public void updateEntity() { - this.maxPower = Long.MAX_VALUE; - if(!worldObj.isRemote) { this.transmitPower(); - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - power = Library.chargeItemsFromTE(slots, 1, power, maxPower); + power = Library.chargeTEFromItems(slots, 0, power, getMaxPower()); + power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); NBTTagCompound nbt = new NBTTagCompound(); nbt.setLong("power", power); - nbt.setLong("maxPower", maxPower); nbt.setShort("redLow", redLow); nbt.setShort("redHigh", redHigh); this.networkPack(nbt, 250); @@ -94,10 +90,15 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { @Override public long getPowerRemainingScaled(long i) { - double powerScaled = (double)power / (double)maxPower; + double powerScaled = (double)power / (double)getMaxPower(); return (long)(i * powerScaled); } + + @Override + public long getMaxPower() { + return Long.MAX_VALUE; + } public float getSpeed() { return (float) Math.pow(Math.log(power * 0.75 + 1) * 0.05F, 5); diff --git a/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png b/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png new file mode 100644 index 0000000000000000000000000000000000000000..2226449e2625f9779800db1db320d4b2cdcd6e91 GIT binary patch literal 1109 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y!~dpOvD_9k>>+dP;m6J>J>EGkq9O&R3c1|o*O`Q-#)zsrGA?B8lCaAun*Q}z&Y}-h zLgznwaBS##`}DB?|0Cy8ves^868IARo||Ete@27FLdHieY#qW<3VuV9^Dg#1_l{#G zzQN}|Z@(6G{`29*Mi&_h`Asj{%=)$QHN!Wjzc~_%<%M|#)J+`bTwo}4Vm`tN=gh9_ zd$v}+a(PsIp2fe~#NRdl&F<$fvzz$m&u$X;qUGfU$7goTkwL5)2xCtf?ax9seL zZ5R4hZjBe4x^l{;X?m}}?BDkNw@KdC%NGrVePdtVIQjX&VyS;;6BP1yT)1*T`{)tF zMDI3k-VJuZsBGi%{iNDA-G4*QiVF<2F`~0pZjP?IATE4dTKjQq`Gf!csjC`4`=ABI z9RvAQZ?f!5|Hm!=we$T?$=RK39lNt^XGPCXjl6y7eAyqxyxLb!7d@7_w(zC>#foF? zb!{~-OLp-*_s!a>B_ES;;=+_qGP7fU{yw_x{_D^0?`Q4I_oJ6MC+!;-@f_Y$8!7sb$&qR zqsmjiwe=;;PPrIwUcG*CVV-osPG5f$?`ek$=S0|@*;iX_ck)dC*XQeZ>fF!)M)CHS zoy+w0xPRJe_y6DdUU`Kd1v7eHeQ*7Izog_wpKtrKkiX?~ll71Cx|#W8RITveyPo0Q z;ez)Uujn_vzsDydye(zN1%}taoRGKTf=c|Oik~c}+qify91qQAi!Xi9`n5Iqx%KPE zCspUHnOR+9R1u%Qd&=hHmbTAr@0Q-0x#Pug7v!Y1v0q`$uVwlL*P(&E@p;C(n}w`< zf13Npz25QZ-lJV+-@mXH&0D;1v7-8{Xz@K>vfSIUPIR(GT%RD!yFrgow*1Zb{m^M+ URz|Ovz;c4Y)78&qol`;+00tueLI3~& literal 0 HcmV?d00001