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/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 237cc40fb..7b7c3b9d3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2176,8 +2176,8 @@ public class ModBlocks { dummy_port_drill = new DummyBlockDrill(Material.iron, true).setBlockName("dummy_port_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead"); dummy_block_assembler = new DummyBlockAssembler(Material.iron, false).setBlockName("dummy_block_assembler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_port_assembler = new DummyBlockAssembler(Material.iron, true).setBlockName("dummy_port_assembler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_block_chemplant = new DummyBlockChemplant(Material.iron, false).setBlockName("dummy_block_chemplant").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_port_chemplant = new DummyBlockChemplant(Material.iron, true).setBlockName("dummy_port_chemplant").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_block_chemplant = new DummyBlockChemplant(Material.iron).setBlockName("dummy_block_chemplant").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_port_chemplant = new DummyBlockChemplant(Material.iron).setBlockName("dummy_port_chemplant").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_fluidtank = new DummyBlockFluidTank(Material.iron, false).setBlockName("dummy_block_fluidtank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_port_fluidtank = new DummyBlockFluidTank(Material.iron, true).setBlockName("dummy_port_fluidtank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_refinery = new DummyBlockRefinery(Material.iron, false).setBlockName("dummy_block_refinery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); @@ -2819,8 +2819,8 @@ public class ModBlocks { GameRegistry.registerBlock(machine_rtg_furnace_on, machine_rtg_furnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_coal_off, machine_coal_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_coal_on, machine_coal_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_diesel, machine_diesel.getUnlocalizedName()); - GameRegistry.registerBlock(machine_selenium, machine_selenium.getUnlocalizedName()); + GameRegistry.registerBlock(machine_diesel, ItemBlockBase.class, machine_diesel.getUnlocalizedName()); + GameRegistry.registerBlock(machine_selenium, ItemBlockBase.class, machine_selenium.getUnlocalizedName()); GameRegistry.registerBlock(machine_generator, machine_generator.getUnlocalizedName()); GameRegistry.registerBlock(machine_controller, machine_controller.getUnlocalizedName()); GameRegistry.registerBlock(reactor_research, reactor_research.getUnlocalizedName()); @@ -2976,9 +2976,9 @@ public class ModBlocks { GameRegistry.registerBlock(fraction_spacer, fraction_spacer.getUnlocalizedName()); GameRegistry.registerBlock(machine_catalytic_cracker, machine_catalytic_cracker.getUnlocalizedName()); GameRegistry.registerBlock(machine_drill, machine_drill.getUnlocalizedName()); - GameRegistry.registerBlock(machine_mining_laser, ItemBlockLore.class, machine_mining_laser.getUnlocalizedName()); + GameRegistry.registerBlock(machine_mining_laser, ItemBlockBase.class, machine_mining_laser.getUnlocalizedName()); GameRegistry.registerBlock(barricade, barricade.getUnlocalizedName()); - GameRegistry.registerBlock(machine_turbofan, machine_turbofan.getUnlocalizedName()); + GameRegistry.registerBlock(machine_turbofan, ItemBlockBase.class, machine_turbofan.getUnlocalizedName()); GameRegistry.registerBlock(machine_schrabidium_transmutator, machine_schrabidium_transmutator.getUnlocalizedName()); GameRegistry.registerBlock(machine_combine_factory, machine_combine_factory.getUnlocalizedName()); GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockChemplant.java b/src/main/java/com/hbm/blocks/machine/DummyBlockChemplant.java index ee7406b29..f00824817 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockChemplant.java +++ b/src/main/java/com/hbm/blocks/machine/DummyBlockChemplant.java @@ -1,60 +1,11 @@ package com.hbm.blocks.machine; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineChemplant; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -public class DummyBlockChemplant extends DummyOldBase { +public class DummyBlockChemplant extends Block { - public DummyBlockChemplant(Material p_i45386_1_, boolean port) { - super(p_i45386_1_, port); + public DummyBlockChemplant(Material p_i45394_1_) { + super(p_i45394_1_); } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.machine_chemplant); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityMachineChemplant entity = (TileEntityMachineChemplant) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_chemplant, world, a, b, c); - } - } - return true; - } else { - return false; - } - } - } 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/MachineDiesel.java b/src/main/java/com/hbm/blocks/machine/MachineDiesel.java index 4dfaa7095..b15d1dc59 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDiesel.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDiesel.java @@ -1,8 +1,11 @@ package com.hbm.blocks.machine; +import java.util.List; import java.util.Random; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineDiesel; @@ -20,13 +23,13 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; -public class MachineDiesel extends BlockContainer { +public class MachineDiesel extends BlockContainer implements ITooltipProvider { private final Random field_149933_a = new Random(); - private Random rand; private static boolean keepInventory; @SideOnly(Side.CLIENT) @@ -46,14 +49,10 @@ public class MachineDiesel extends BlockContainer { @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { - if(side == 0) - return iconBottom; - if(side == 1) - return iconTop; - if(side == 2 || side == 3) - return blockIcon; - if(side == 4 || side == 5) - return iconSide; + if(side == 0) return iconBottom; + if(side == 1) return iconTop; + if(side == 2 || side == 3) return blockIcon; + if(side == 4 || side == 5) return iconSide; return null; } @@ -143,4 +142,17 @@ public class MachineDiesel extends BlockContainer { super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); } + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); + for(FuelGrade grade : FuelGrade.values()) { + Double efficiency = TileEntityMachineDiesel.fuelEfficiency.get(grade); + + if(efficiency != null) { + int eff = (int)(efficiency * 100); + list.add(EnumChatFormatting.YELLOW + "-" + grade.getGrade() + ": " + EnumChatFormatting.RED + "" + eff + "%"); + } + } + } } 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/blocks/machine/MachineMiningLaser.java b/src/main/java/com/hbm/blocks/machine/MachineMiningLaser.java index a130899bc..ee8d0ea45 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineMiningLaser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineMiningLaser.java @@ -1,6 +1,9 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyEnergy; @@ -10,11 +13,12 @@ import com.hbm.tileentity.machine.TileEntityMachineMiningLaser; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineMiningLaser extends BlockDummyable { +public class MachineMiningLaser extends BlockDummyable implements ITooltipProvider { public MachineMiningLaser(Material mat) { super(mat); @@ -83,4 +87,10 @@ public class MachineMiningLaser extends BlockDummyable { this.makeExtra(world, x, y + 1, z); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add("3x3x3 Multiblock"); + list.add("Only placeable on a ceiling."); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java index 09831c0c8..78754095c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java @@ -1,8 +1,11 @@ package com.hbm.blocks.machine; +import java.util.List; import java.util.Random; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; @@ -16,14 +19,14 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class MachineSeleniumEngine extends BlockContainer { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; +public class MachineSeleniumEngine extends BlockContainer implements ITooltipProvider { + private final Random field_149933_a = new Random(); + private static boolean keepInventory; public MachineSeleniumEngine(Material p_i45386_1_) { super(p_i45386_1_); @@ -48,91 +51,76 @@ public class MachineSeleniumEngine extends BlockContainer { 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) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } - + @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) - { - TileEntityMachineSeleniumEngine tileentityfurnace = (TileEntityMachineSeleniumEngine)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + 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) { + TileEntityMachineSeleniumEngine tileentityfurnace = (TileEntityMachineSeleniumEngine) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + if(tileentityfurnace != null) { + for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - 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; + 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; + while(itemstack.stackSize > 0) { + int j1 = this.field_149933_a.nextInt(21) + 10; - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } + 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())); + 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()); - } + 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); - } - } - } + 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_); - } - } + 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_); + } - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { + } else if(!player.isSneaking()) { TileEntityMachineSeleniumEngine entity = (TileEntityMachineSeleniumEngine) world.getTileEntity(x, y, z); - if(entity != null) - { + if(entity != null) { FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_selenium, world, x, y, z); } return true; @@ -141,4 +129,17 @@ public class MachineSeleniumEngine extends BlockContainer { } } + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); + for(FuelGrade grade : FuelGrade.values()) { + Double efficiency = TileEntityMachineSeleniumEngine.fuelEfficiency.get(grade); + + if(efficiency != null) { + int eff = (int) (efficiency * 100); + list.add(EnumChatFormatting.YELLOW + "-" + grade.getGrade() + ": " + EnumChatFormatting.RED + "" + eff + "%"); + } + } + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java index 27e4fb9d2..cdc203283 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java @@ -1,13 +1,17 @@ package com.hbm.blocks.machine; +import java.util.List; import java.util.Random; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandler; import com.hbm.interfaces.IMultiblock; +import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDummy; +import com.hbm.tileentity.machine.TileEntityMachineDiesel; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -22,10 +26,11 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class MachineTurbofan extends BlockContainer implements IMultiblock { +public class MachineTurbofan extends BlockContainer implements IMultiblock, ITooltipProvider { public MachineTurbofan(Material p_i45386_1_) { super(p_i45386_1_); @@ -316,4 +321,11 @@ public class MachineTurbofan extends BlockContainer implements IMultiblock { super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); + list.add(EnumChatFormatting.YELLOW + "-" + FuelGrade.AERO.getGrade() + ": " + EnumChatFormatting.RED + "100%"); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index 2ae095577..d8863029d 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -21,9 +21,9 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_power, 5), new Object[] { REDSTONE.dust(), "dustGlowstone", DIAMOND.dust(), NP237.dust(), MAGTUNG.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ballistite, 3), new Object[] { Items.gunpowder, KNO.dust(), Items.sugar }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_dynamite, 2), new Object[] { KNO.dust(), Items.sugar, Blocks.sand, KEY_TOOL_CHEMISTRYSET }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_tnt, 4), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.AROMATICS.getID()), KNO.dust(), KEY_TOOL_CHEMISTRYSET }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_tnt, 4), new Object[] { Fluids.AROMATICS.getDict(1000), KNO.dust(), KEY_TOOL_CHEMISTRYSET }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ingot_steel_dusted, 1), new Object[] { STEEL.ingot(), COAL.dust() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_bakelite, 2), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.AROMATICS.getID()), new ItemStack(ModItems.fluid_tank_full, 1, Fluids.PETROLEUM.getID()), KEY_TOOL_CHEMISTRYSET }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_bakelite, 2), new Object[] { Fluids.AROMATICS.getDict(1000), Fluids.PETROLEUM.getDict(1000), KEY_TOOL_CHEMISTRYSET }); //Gunpowder CraftingManager.addShapelessAuto(new ItemStack(Items.gunpowder, 3), new Object[] { S.dust(), KNO.dust(), COAL.gem() }); diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index 8ae71460c..cb8a10966 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -4,11 +4,15 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GUIScreenBobmazon.Offer; import com.hbm.inventory.gui.GUIScreenBobmazon.Requirement; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; +import com.hbm.items.special.ItemKitCustom; +import com.hbm.items.special.ItemKitNBT; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class BobmazonOfferFactory { @@ -158,12 +162,14 @@ public class BobmazonOfferFactory { tools.add(new Offer(new ItemStack(ModItems.hazmat_red_kit), Requirement.CHEMICS, 100 * inflation)); tools.add(new Offer(new ItemStack(ModItems.hazmat_grey_kit), Requirement.OIL, 160 * inflation)); + special.add(new Offer(new ItemStack(Items.iron_ingot, 64), Requirement.STEEL, 1)); special.add(new Offer(new ItemStack(ModItems.ingot_steel, 64), Requirement.STEEL, 1)); special.add(new Offer(new ItemStack(ModItems.ingot_copper, 64), Requirement.STEEL, 1)); special.add(new Offer(new ItemStack(ModItems.ingot_red_copper, 64), Requirement.STEEL, 1)); special.add(new Offer(new ItemStack(ModItems.ingot_titanium, 64), Requirement.STEEL, 1)); special.add(new Offer(new ItemStack(ModItems.ingot_tungsten, 64), Requirement.STEEL, 1)); special.add(new Offer(new ItemStack(ModItems.ingot_cobalt, 64), Requirement.STEEL, 1)); + special.add(new Offer(new ItemStack(ModItems.ingot_desh, 64), Requirement.STEEL, 1)); special.add(new Offer(new ItemStack(ModItems.ingot_tantalium, 64), Requirement.STEEL, 5)); special.add(new Offer(new ItemStack(ModItems.ingot_bismuth, 16), Requirement.STEEL, 5)); special.add(new Offer(new ItemStack(ModItems.ingot_schrabidium, 16), Requirement.STEEL, 5)); @@ -176,6 +182,7 @@ public class BobmazonOfferFactory { special.add(new Offer(new ItemStack(ModItems.ammo_container, 16), Requirement.STEEL, 5)); special.add(new Offer(new ItemStack(ModItems.nuke_starter_kit), Requirement.STEEL, 5)); special.add(new Offer(new ItemStack(ModItems.nuke_advanced_kit), Requirement.STEEL, 5)); + special.add(new Offer(new ItemStack(ModItems.nuke_commercially_kit), Requirement.STEEL, 5)); special.add(new Offer(new ItemStack(ModItems.boy_kit), Requirement.STEEL, 5)); special.add(new Offer(new ItemStack(ModItems.prototype_kit), Requirement.STEEL, 10)); special.add(new Offer(new ItemStack(ModItems.missile_kit), Requirement.STEEL, 5)); @@ -200,27 +207,77 @@ public class BobmazonOfferFactory { special.add(new Offer(new ItemStack(ModItems.sat_laser, 1), Requirement.HIDDEN, 8)); special.add(new Offer(new ItemStack(ModItems.sat_gerald, 1), Requirement.HIDDEN, 32)); special.add(new Offer(new ItemStack(ModItems.billet_yharonite, 4), Requirement.HIDDEN, 16)); + special.add(new Offer(new ItemStack(ModItems.ingot_chainsteel, 1), Requirement.HIDDEN, 16)); special.add(new Offer(new ItemStack(ModItems.ingot_electronium, 1), Requirement.HIDDEN, 16)); special.add(new Offer(new ItemStack(ModItems.book_of_, 1), Requirement.HIDDEN, 16)); + special.add(new Offer(new ItemStack(ModItems.mese_pickaxe, 1), Requirement.HIDDEN, 16)); special.add(new Offer(new ItemStack(ModItems.mysteryshovel, 1), Requirement.HIDDEN, 16)); special.add(new Offer(new ItemStack(ModBlocks.ntm_dirt, 1), Requirement.HIDDEN, 16)); special.add(new Offer(new ItemStack(ModItems.euphemium_kit, 1), Requirement.HIDDEN, 64)); + + special.add(new Offer(ItemKitCustom.create("Fusion Man", "For the nuclear physicist on the go", 0xff00ff, 0x800080, + new ItemStack(ModBlocks.iter), + new ItemStack(ModBlocks.plasma_heater), + new ItemStack(ModItems.fusion_shield_vaporwave), + ItemBattery.getFullBattery(ModItems.battery_spark), + new ItemStack(ModBlocks.machine_chemplant, 10), + new ItemStack(ModBlocks.machine_fluidtank, 8), + new ItemStack(ModBlocks.red_wire_coated, 64), + new ItemStack(ModBlocks.red_cable, 64), + new ItemStack(ModItems.fluid_barrel_full, 64, Fluids.DEUTERIUM.getID()), + new ItemStack(ModItems.fluid_barrel_full, 64, Fluids.TRITIUM.getID()), + new ItemStack(ModItems.fluid_barrel_full, 64, Fluids.XENON.getID()), + new ItemStack(ModItems.fluid_barrel_full, 64, Fluids.MERCURY.getID()), + new ItemStack(ModBlocks.red_pylon_large, 8), + new ItemStack(ModBlocks.substation, 4), + new ItemStack(ModBlocks.red_pylon, 16), + new ItemStack(ModBlocks.red_connector, 64), + new ItemStack(ModItems.wiring_red_copper, 1), + new ItemStack(ModBlocks.machine_chungus, 1), + new ItemStack(ModBlocks.machine_large_turbine, 3), + new ItemStack(ModItems.template_folder, 1), + new ItemStack(Items.paper, 64), + new ItemStack(Items.dye, 64) + ), Requirement.HIDDEN, 64)); + + special.add(new Offer(ItemKitCustom.create("Maid's Cleaning Utensils", "For the heard to reach spots", 0x00ff00, 0x008000, + new ItemStack(ModItems.gun_calamity), + new ItemStack(ModItems.ammo_50bmg_chlorophyte, 64), + new ItemStack(ModItems.ammo_50bmg_chlorophyte, 64), + new ItemStack(ModItems.ammo_50bmg_chlorophyte, 64), + new ItemStack(ModItems.ammo_50bmg_star, 64), + new ItemStack(ModItems.ammo_50bmg_star, 64), + new ItemStack(ModItems.gun_supershotgun), + new ItemStack(ModItems.ammo_12gauge_du, 64), + new ItemStack(ModItems.ammo_12gauge_du, 64), + new ItemStack(ModItems.ammo_12gauge_shrapnel, 64), + new ItemStack(ModItems.ammo_12gauge_shrapnel, 64), + new ItemStack(ModItems.ammo_12gauge_marauder, 4), + new ItemStack(ModItems.gun_sauer), + new ItemStack(ModItems.ammo_4gauge, 64), + new ItemStack(ModItems.ammo_4gauge_claw, 64), + new ItemStack(ModItems.ammo_4gauge_kampf, 64), + new ItemStack(ModItems.ammo_4gauge_flechette, 64), + new ItemStack(ModItems.ammo_4gauge_void, 64) + ), Requirement.HIDDEN, 64)); + + special.add(new Offer(ItemKitNBT.create( + new ItemStack(ModItems.rod_of_discord).setStackDisplayName("Cock Joke"), + new ItemStack(ModItems.canned_jizz, 64).setStackDisplayName("Class A Horse Semen"), + new ItemStack(ModItems.pipe_lead).setStackDisplayName("Get Nutted, Dumbass"), + new ItemStack(ModItems.gem_alexandrite) + ).setStackDisplayName("The Nut Bucket"), Requirement.HIDDEN, 64)); } public static List getOffers(ItemStack stack) { if(stack != null) { - if(stack.getItem() == ModItems.bobmazon_materials) - return materials; - if(stack.getItem() == ModItems.bobmazon_machines) - return machines; - if(stack.getItem() == ModItems.bobmazon_weapons) - return weapons; - if(stack.getItem() == ModItems.bobmazon_tools) - return tools; - if(stack.getItem() == ModItems.bobmazon_hidden) - return special; + if(stack.getItem() == ModItems.bobmazon_materials) return materials; + if(stack.getItem() == ModItems.bobmazon_machines) return machines; + if(stack.getItem() == ModItems.bobmazon_weapons) return weapons; + if(stack.getItem() == ModItems.bobmazon_tools) return tools; + if(stack.getItem() == ModItems.bobmazon_hidden) return special; } return null; 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..0beaff581 100644 --- a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java @@ -2,13 +2,16 @@ package com.hbm.handler.nei; import java.awt.Rectangle; import java.util.ArrayList; -import java.util.Arrays; import java.util.LinkedList; import java.util.List; -import java.util.Map; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.gui.GUIMachineChemplant; -import com.hbm.inventory.recipes.MachineRecipes; +import com.hbm.inventory.recipes.ChemplantRecipes; +import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; @@ -18,70 +21,78 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; public class ChemplantRecipeHandler extends TemplateRecipeHandler { - - public LinkedList transferRectsRec = new LinkedList(); - public LinkedList transferRectsGui = new LinkedList(); - public LinkedList> guiRec = new LinkedList>(); - public LinkedList> guiGui = new LinkedList>(); - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe - { - PositionedStack input1; - PositionedStack input2; - PositionedStack input3; - PositionedStack input4; - PositionedStack inputF1; - PositionedStack inputF2; - PositionedStack output1; - PositionedStack output2; - PositionedStack output3; - PositionedStack output4; - PositionedStack outputF1; - PositionedStack outputF2; + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); + + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack[] itemIn = new PositionedStack[4]; + PositionedStack[] fluidIn = new PositionedStack[2]; + PositionedStack[] itemOut = new PositionedStack[4]; + PositionedStack[] fluidOut = new PositionedStack[2]; PositionedStack template; - - public SmeltingSet(ItemStack inputF1, ItemStack inputF2, ItemStack input1, - ItemStack input2, ItemStack input3, ItemStack input4, ItemStack outputF1, - ItemStack outputF2, ItemStack output1, ItemStack output2, ItemStack output3, - ItemStack output4, ItemStack template) { - this.inputF1 = new PositionedStack(inputF1, 30, 6); - this.inputF2 = new PositionedStack(inputF2, 30 + 18, 6); - this.input1 = new PositionedStack(input1, 30, 6 + 18); - this.input2 = new PositionedStack(input2, 30 + 18, 6 + 18); - this.input3 = new PositionedStack(input3, 30, 6 + 36); - this.input4 = new PositionedStack(input4, 30 + 18, 6 + 36); - this.outputF1 = new PositionedStack(outputF1, 120, 6); - this.outputF2 = new PositionedStack(outputF2, 120 + 18, 6); - this.output1 = new PositionedStack(output1, 120, 6 + 18); - this.output2 = new PositionedStack(output2, 120 + 18, 6 + 18); - this.output3 = new PositionedStack(output3, 120, 6 + 36); - this.output4 = new PositionedStack(output4, 120 + 18, 6 + 36); - this.template = new PositionedStack(template, 84, 6); - } - @Override + public RecipeSet(ChemRecipe recipe) { + + for(int i = 0; i < recipe.inputs.length; i++) { + AStack in = recipe.inputs[i]; + if(in == null) continue; + this.itemIn[i] = new PositionedStack(in.extractForNEI(), 30 + (i % 2) * 18, 24 + (i / 2) * 18); + } + + for(int i = 0; i < recipe.inputFluids.length; i++) { + FluidStack in = recipe.inputFluids[i]; + if(in == null) continue; + ItemStack drop = ItemFluidIcon.make(in.type, in.fill); + this.fluidIn[i] = new PositionedStack(drop, 30 + (i % 2) * 18, 6); + } + + for(int i = 0; i < recipe.outputs.length; i++) { + ItemStack out = recipe.outputs[i]; + if(out == null) continue; + this.itemOut[i] = new PositionedStack(out, 120 + (i % 2) * 18, 24 + (i / 2) * 18); + } + + for(int i = 0; i < recipe.outputFluids.length; i++) { + FluidStack out = recipe.outputFluids[i]; + if(out == null) continue; + ItemStack drop = ItemFluidIcon.make(out.type, out.fill); + this.fluidOut[i] = new PositionedStack(drop, 120 + (i % 2) * 18, 6); + } + + this.template = new PositionedStack(new ItemStack(ModItems.chemistry_template, 1, recipe.getId()), 84, 6); + } + + @Override public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input1, input2, input3, input4, inputF1, inputF2, template})); - } + List stacks = new ArrayList(); + + for(PositionedStack stack : itemIn) if(stack != null) stacks.add(stack); + for(PositionedStack stack : fluidIn) if(stack != null) stacks.add(stack); + stacks.add(template); + + return getCycledIngredients(cycleticks / 20, stacks); + } - @Override + @Override public List getOtherStacks() { - List stacks = new ArrayList(); - stacks.add(output1); - stacks.add(output2); - stacks.add(output3); - stacks.add(output4); - stacks.add(outputF1); - stacks.add(outputF2); - return stacks; - } + List stacks = new ArrayList(); + + for(PositionedStack stack : itemOut) if(stack != null) stacks.add(stack); + for(PositionedStack stack : fluidOut) if(stack != null) stacks.add(stack); + stacks.add(template); + + return stacks; + } - @Override + @Override public PositionedStack getResult() { - return output1; - } - } - + return null; + } + } + @Override public String getRecipeName() { return "Chemical Plant"; @@ -91,26 +102,14 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { public String getGuiTexture() { return RefStrings.MODID + ":textures/gui/nei/gui_nei_chemplant.png"; } - + @Override public void loadCraftingRecipes(String outputId, Object... results) { - if ((outputId.equals("chemistry")) && getClass() == ChemplantRecipeHandler.class) { - Map recipes = MachineRecipes.instance().getChemistryRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet( - (ItemStack)recipe.getKey()[0], - (ItemStack)recipe.getKey()[1], - (ItemStack)recipe.getKey()[2], - (ItemStack)recipe.getKey()[3], - (ItemStack)recipe.getKey()[4], - (ItemStack)recipe.getKey()[5], - (ItemStack)recipe.getValue()[0], - (ItemStack)recipe.getValue()[1], - (ItemStack)recipe.getValue()[2], - (ItemStack)recipe.getValue()[3], - (ItemStack)recipe.getValue()[4], - (ItemStack)recipe.getValue()[5], - (ItemStack)recipe.getKey()[6])); + + if((outputId.equals("chemistry")) && getClass() == ChemplantRecipeHandler.class) { + + for(ChemRecipe recipe : ChemplantRecipes.recipes) { + this.arecipes.add(new RecipeSet(recipe)); } } else { super.loadCraftingRecipes(outputId, results); @@ -119,34 +118,35 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(ItemStack result) { - Map recipes = MachineRecipes.instance().getChemistryRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (compareFluidStacks(result, (ItemStack)recipe.getValue()[0]) || - compareFluidStacks(result, (ItemStack)recipe.getValue()[1]) || - NEIServerUtils.areStacksSameTypeCrafting(result, (ItemStack)recipe.getValue()[2]) || - NEIServerUtils.areStacksSameTypeCrafting(result, (ItemStack)recipe.getValue()[3]) || - NEIServerUtils.areStacksSameTypeCrafting(result, (ItemStack)recipe.getValue()[4]) || - NEIServerUtils.areStacksSameTypeCrafting(result, (ItemStack)recipe.getValue()[5])) - this.arecipes.add(new SmeltingSet( - (ItemStack)recipe.getKey()[0], - (ItemStack)recipe.getKey()[1], - (ItemStack)recipe.getKey()[2], - (ItemStack)recipe.getKey()[3], - (ItemStack)recipe.getKey()[4], - (ItemStack)recipe.getKey()[5], - (ItemStack)recipe.getValue()[0], - (ItemStack)recipe.getValue()[1], - (ItemStack)recipe.getValue()[2], - (ItemStack)recipe.getValue()[3], - (ItemStack)recipe.getValue()[4], - (ItemStack)recipe.getValue()[5], - (ItemStack)recipe.getKey()[6])); + + outer: + for(ChemRecipe recipe : ChemplantRecipes.recipes) { + + for(ItemStack out : recipe.outputs) { + + if(out != null && NEIServerUtils.areStacksSameTypeCrafting(result, out)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + + for(FluidStack out : recipe.outputFluids) { + + if(out != null) { + ItemStack drop = ItemFluidIcon.make(out.type, out.fill); + + if(compareFluidStacks(result, drop)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + } } } @Override public void loadUsageRecipes(String inputId, Object... ingredients) { - if ((inputId.equals("chemistry")) && getClass() == ChemplantRecipeHandler.class) { + if((inputId.equals("chemistry")) && getClass() == ChemplantRecipeHandler.class) { loadCraftingRecipes("chemistry", new Object[0]); } else { super.loadUsageRecipes(inputId, ingredients); @@ -155,64 +155,68 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { - Map recipes = MachineRecipes.instance().getChemistryRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (compareFluidStacks(ingredient, (ItemStack)recipe.getKey()[0]) || - compareFluidStacks(ingredient, (ItemStack)recipe.getKey()[1]) || - NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()[2]) || - NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()[3]) || - NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()[4]) || - NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()[5]) || - NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()[6])) - this.arecipes.add(new SmeltingSet( - (ItemStack)recipe.getKey()[0], - (ItemStack)recipe.getKey()[1], - (ItemStack)recipe.getKey()[2], - (ItemStack)recipe.getKey()[3], - (ItemStack)recipe.getKey()[4], - (ItemStack)recipe.getKey()[5], - (ItemStack)recipe.getValue()[0], - (ItemStack)recipe.getValue()[1], - (ItemStack)recipe.getValue()[2], - (ItemStack)recipe.getValue()[3], - (ItemStack)recipe.getValue()[4], - (ItemStack)recipe.getValue()[5], - (ItemStack)recipe.getKey()[6])); + + outer: + for(ChemRecipe recipe : ChemplantRecipes.recipes) { + + for(AStack in : recipe.inputs) { + + if(in != null) { + List stacks = in.extractForNEI(); + + for(ItemStack stack : stacks) { + if(NEIServerUtils.areStacksSameTypeCrafting(ingredient, stack)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + } + } + + for(FluidStack in : recipe.inputFluids) { + + if(in != null) { + ItemStack drop = ItemFluidIcon.make(in.type, in.fill); + + if(compareFluidStacks(ingredient, drop)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + } } } - + private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); } - @Override - public Class getGuiClass() { - //return GUITestDiFurnace.class; - return null; - } - - @Override - public void loadTransferRects() { - transferRectsGui = new LinkedList(); - guiGui = new LinkedList>(); + @Override + public Class getGuiClass() { + return null; + } - transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 72, 23, 18 * 3, 18), "chemistry")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2, 89 - 7 - 11, 18 * 5 - 4, 18 + 16), "chemistry")); - guiGui.add(GUIMachineChemplant.class); - RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); - RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - } + @Override + public void loadTransferRects() { + transferRectsGui = new LinkedList(); + guiGui = new LinkedList>(); - @Override - public void drawExtras(int recipe) { + transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 72, 23, 18 * 3, 18), "chemistry")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2, 89 - 7 - 11, 18 * 5 - 4, 18 + 16), "chemistry")); + guiGui.add(GUIMachineChemplant.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } - drawProgressBar(83 - (18 * 4) - 9 + 1, 6, 0, 86, 16, 18 * 3 - 2, 480, 7); - - drawProgressBar(83 - 3 + 16 + 5 - 36, 5 + 18, 16, 86, 18 * 3, 18, 48, 0); - } + @Override + public void drawExtras(int recipe) { - @Override - public TemplateRecipeHandler newInstance() { - return super.newInstance(); - } + drawProgressBar(83 - (18 * 4) - 9 + 1, 6, 0, 86, 16, 18 * 3 - 2, 480, 7); + drawProgressBar(83 - 3 + 16 + 5 - 36, 5 + 18, 16, 86, 18 * 3, 18, 48, 0); + } + + @Override + public TemplateRecipeHandler newInstance() { + return super.newInstance(); + } } diff --git a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java index cc1dba5b5..dd624fc18 100644 --- a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java @@ -48,7 +48,7 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler { this.outputs = new ArrayList(); this.chances = new ArrayList(); this.produced = recipe.fluidProduced / recipe.fluidConsumed; - this.crystalStrength = EnumWavelengths.values()[recipe.laserStrength]; + this.crystalStrength = recipe.laserStrength; double weight = 0; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java index ccd9d6251..622e6af7d 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java @@ -3,10 +3,8 @@ package com.hbm.hazard.type; import java.util.List; import com.hbm.config.GeneralConfig; -import com.hbm.handler.ArmorModHandler; import com.hbm.hazard.modifier.HazardModifier; import com.hbm.items.ModItems; -import com.hbm.items.armor.ItemModGloves; import com.hbm.util.ContaminationUtil; import com.hbm.util.I18nUtil; import com.hbm.util.ContaminationUtil.ContaminationType; diff --git a/src/main/java/com/hbm/interfaces/IFluidAcceptor.java b/src/main/java/com/hbm/interfaces/IFluidAcceptor.java index e013ec71b..85b3f78a5 100644 --- a/src/main/java/com/hbm/interfaces/IFluidAcceptor.java +++ b/src/main/java/com/hbm/interfaces/IFluidAcceptor.java @@ -4,6 +4,16 @@ import com.hbm.inventory.fluid.FluidType; public interface IFluidAcceptor extends IFluidContainer { - int getMaxFluidFill(FluidType type); + int getMaxFillForReceive(FluidType type); + /* + * Behavior for overriding when a fluid container has matching types as in and outputs + * Only a temporary fix until the fluid system is rewritten + */ + default void setFillForTransferIncoming(int fill, FluidType type) { + this.setFillForTransfer(fill, type); + } + default int getFluidFillIncoming(FluidType type) { + return this.getFluidFill(type); + } } diff --git a/src/main/java/com/hbm/interfaces/IFluidContainer.java b/src/main/java/com/hbm/interfaces/IFluidContainer.java index 7143ca1bc..04a0905c6 100644 --- a/src/main/java/com/hbm/interfaces/IFluidContainer.java +++ b/src/main/java/com/hbm/interfaces/IFluidContainer.java @@ -1,22 +1,17 @@ package com.hbm.interfaces; -import java.util.List; - -import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; public interface IFluidContainer { //Args: fill, what the fill should be set to; index, index for array if there are multiple tanks - public void setFillstate(int fill, int index); + public void setFillForSync(int fill, int index); //Args: fill: what the fill should be set to; type, what type the tank in question has - void setFluidFill(int fill, FluidType type); + void setFillForTransfer(int fill, FluidType type); //Args: type, what the type should be set to; index, index for array if there are multiple tanks - public void setType(FluidType type, int index); - - public List getTanks(); + public void setTypeForSync(FluidType type, int index); //Args: type, what type the tank in question has int getFluidFill(FluidType type); diff --git a/src/main/java/com/hbm/interfaces/IFluidSource.java b/src/main/java/com/hbm/interfaces/IFluidSource.java index b3b8def87..8151691cd 100644 --- a/src/main/java/com/hbm/interfaces/IFluidSource.java +++ b/src/main/java/com/hbm/interfaces/IFluidSource.java @@ -14,4 +14,15 @@ public interface IFluidSource extends IFluidContainer { List getFluidList(FluidType type); void clearFluidList(FluidType type); + /* + * Behavior for overriding when a fluid container has matching types as in and outputs + * Only a temporary fix until the fluid system is rewritten + */ + default void setFillForTransferOutgoing(int fill, FluidType type) { + this.setFillForTransfer(fill, type); + } + default int getFluidFillOutgoing(FluidType type) { + return this.getFluidFill(type); + } + } diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index f44672f5f..e88ed6eb9 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -10,6 +10,7 @@ import com.hbm.items.ModItems; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class FluidContainerRegistry { @@ -74,6 +75,9 @@ public class FluidContainerRegistry { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.particle_hydrogen), new ItemStack(ModItems.particle_empty), Fluids.HYDROGEN, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.particle_amat), new ItemStack(ModItems.particle_empty), Fluids.AMAT, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.particle_aschrab), new ItemStack(ModItems.particle_empty), Fluids.ASCHRAB, 1000)); + + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.iv_xp), new ItemStack(ModItems.iv_xp_empty), Fluids.XPJUICE, 100)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.experience_bottle), new ItemStack(Items.glass_bottle), Fluids.XPJUICE, 100)); FluidType[] fluids = Fluids.getAll(); for(int i = 1; i < fluids.length; i++) { @@ -95,6 +99,7 @@ public class FluidContainerRegistry { public static void registerContainer(FluidContainer con) { allContainers.add(con); + OreDictionary.registerOre(con.type.getDict(con.content), con.fullContainer); } public static int getFluidContent(ItemStack stack, FluidType type) { diff --git a/src/main/java/com/hbm/inventory/FluidTank.java b/src/main/java/com/hbm/inventory/FluidTank.java index eaad80666..5f0a0b41c 100644 --- a/src/main/java/com/hbm/inventory/FluidTank.java +++ b/src/main/java/com/hbm/inventory/FluidTank.java @@ -90,7 +90,7 @@ public class FluidTank { } //Fills tank from canisters - public void loadTank(int in, int out, ItemStack[] slots) { + public boolean loadTank(int in, int out, ItemStack[] slots) { FluidType inType = Fluids.NONE; if(slots[in] != null) { @@ -101,27 +101,27 @@ public class FluidTank { if(slots[in].getItem() == ModItems.fluid_barrel_infinite && type != Fluids.NONE) { this.fluid = this.maxFluid; - return; + return true; } if(slots[in].getItem() == ModItems.inf_water && this.type == Fluids.WATER) { this.fluid += 50; if(this.fluid > this.maxFluid) this.fluid = this.maxFluid; - return; + return true; } if(slots[in].getItem() == ModItems.inf_water_mk2 && this.type == Fluids.WATER) { this.fluid += 500; if(this.fluid > this.maxFluid) this.fluid = this.maxFluid; - return; + return true; } if(FluidContainerRegistry.getFluidContent(slots[in], type) <= 0) - return; + return false; } else { - return; + return false; } if(slots[in] != null && inType.getName().equals(type.getName()) && fluid + FluidContainerRegistry.getFluidContent(slots[in], type) <= maxFluid) { @@ -141,7 +141,11 @@ public class FluidTank { if(slots[in].stackSize <= 0) slots[in] = null; } + + return true; } + + return false; } //Fills canisters from tank diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index ea9da8e23..e86525244 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -1,6 +1,9 @@ package com.hbm.inventory; import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; //i love you @@ -15,15 +18,21 @@ import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumTarType; +import com.hbm.main.MainRegistry; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.oredict.OreDictionary.OreRegisterEvent; //the more i optimize this, the more it starts looking like gregtech public class OreDictManager { + + /** Alternate, additional names for ore dict registration. Used mostly for DictGroups */ + private static final HashMap> reRegistration = new HashMap(); /* * Standard keys @@ -63,6 +72,10 @@ public class OreDictManager { public static final String KEY_CRACK_TAR = "cracktar"; public static final String KEY_COAL_TAR = "coaltar"; + public static final String KEY_UNIVERSAL_TANK = "ntmuniversaltank"; + public static final String KEY_HAZARD_TANK = "ntmuhazardtank"; + public static final String KEY_UNIVERSAL_BARREL = "ntmuniversalbarrel"; + public static final String KEY_TOOL_SCREWDRIVER = "ntmscrewdriver"; public static final String KEY_TOOL_HANDDRILL = "ntmhanddrill"; public static final String KEY_TOOL_CHEMISTRYSET = "ntmchemistryset"; @@ -220,14 +233,14 @@ public class OreDictManager { /* * COLLECTIONS */ - public static final DictFrame ANY_PLASTIC = new DictFrame("AnyPlastic"); //using the Any prefix means that it's jsut the secondary prefix, and that shape prefixes are applicable + public static final DictGroup ANY_PLASTIC = new DictGroup("AnyPlastic", POLYMER, BAKELITE); //using the Any prefix means that it's jsut the secondary prefix, and that shape prefixes are applicable public static final DictFrame ANY_GUNPOWDER = new DictFrame("AnyPropellant"); public static final DictFrame ANY_SMOKELESS = new DictFrame("AnySmokeless"); public static final DictFrame ANY_PLASTICEXPLOSIVE = new DictFrame("AnyPlasticexplosive"); public static final DictFrame ANY_HIGHEXPLOSIVE = new DictFrame("AnyHighexplosive"); public static final DictFrame ANY_COKE = new DictFrame("AnyCoke", "Coke"); public static final DictFrame ANY_CONCRETE = new DictFrame("Concrete"); //no any prefix means that any has to be appended with the any() or anys() getters, registering works with the any (i.e. no shape) setter - public static final DictFrame ANY_TAR = new DictFrame("Tar"); + public static final DictGroup ANY_TAR = new DictGroup("Tar", KEY_OIL_TAR, KEY_COAL_TAR, KEY_CRACK_TAR); public static void registerOres() { @@ -372,19 +385,21 @@ public class OreDictManager { /* * COLLECTIONS */ - ANY_PLASTIC .ingot(ingot_polymer, ingot_bakelite).dust(powder_polymer, powder_bakelite); ANY_GUNPOWDER .dust(Items.gunpowder, ballistite, cordite); ANY_SMOKELESS .dust(ballistite, cordite); ANY_PLASTICEXPLOSIVE .ingot(ingot_semtex); ANY_HIGHEXPLOSIVE .ingot(ball_tnt); ANY_CONCRETE .any(concrete, concrete_smooth, concrete_colored, concrete_asbestos, ducrete, ducrete_smooth); ANY_COKE .gem(fromAll(coke, EnumCokeType.class)); - ANY_TAR .any(fromAll(oil_tar, EnumTarType.class)); OreDictionary.registerOre(KEY_OIL_TAR, fromOne(oil_tar, EnumTarType.CRUDE)); OreDictionary.registerOre(KEY_CRACK_TAR, fromOne(oil_tar, EnumTarType.CRACK)); OreDictionary.registerOre(KEY_COAL_TAR, fromOne(oil_tar, EnumTarType.COAL)); + OreDictionary.registerOre(KEY_UNIVERSAL_TANK, new ItemStack(fluid_tank_full, 1, OreDictionary.WILDCARD_VALUE)); + OreDictionary.registerOre(KEY_HAZARD_TANK, new ItemStack(fluid_tank_lead_full, 1, OreDictionary.WILDCARD_VALUE)); + OreDictionary.registerOre(KEY_UNIVERSAL_BARREL, new ItemStack(fluid_barrel_full, 1, OreDictionary.WILDCARD_VALUE)); + OreDictionary.registerOre(KEY_TOOL_SCREWDRIVER, new ItemStack(screwdriver, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre(KEY_TOOL_SCREWDRIVER, new ItemStack(screwdriver_desh, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre(KEY_TOOL_HANDDRILL, new ItemStack(hand_drill, 1, OreDictionary.WILDCARD_VALUE)); @@ -439,6 +454,33 @@ public class OreDictManager { return GeneralConfig.enableReflectorCompat ? "plateDenseLead" : "plateTungCar"; //let's just mangle the name into "tungCar" so that it can't conflict with anything ever } + public static void registerGroups() { + ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true); + ANY_TAR.addPrefix(ANY, false); + } + + private static boolean recursionBrake = false; + + @SubscribeEvent + public void onRegisterOre(OreRegisterEvent event) { + + if(recursionBrake) + return; + + recursionBrake = true; + + HashSet strings = reRegistration.get(event.Name); + + if(strings != null) { + for(String name : strings) { + OreDictionary.registerOre(name, event.Ore); + MainRegistry.logger.info("Re-registration for " + event.Name + " to " + name); + } + } + + recursionBrake = false; + } + public static class DictFrame { String[] mats; float hazMult = 1.0F; @@ -604,4 +646,85 @@ public class OreDictManager { } } } + + public static class DictGroup { + + private String groupName; + private HashSet names = new HashSet(); + + public DictGroup(String groupName) { + this.groupName = groupName; + } + public DictGroup(String groupName, String... names) { + this(groupName); + this.addNames(names); + } + public DictGroup(String groupName, DictFrame... frames) { + this(groupName); + this.addFrames(frames); + } + + public DictGroup addNames(String... names) { + for(String mat : names) this.names.add(mat); + return this; + } + public DictGroup addFrames(DictFrame... frames) { + for(DictFrame frame : frames) this.addNames(frame.mats); + return this; + } + + /** + * Will add a reregistration entry for every mat name of every added DictFrame for the given prefix + * @param prefix The prefix of both the input and result of the reregistration + * @return + */ + public DictGroup addPrefix(String prefix, boolean inputPrefix) { + + String group = prefix + groupName; + + for(String name : names) { + String original = (inputPrefix ? prefix : "") + name; + addReRegistration(original, group); + } + + return this; + } + /** + * Same thing as addPrefix, but the input for the reregistration is not bound by the prefix or any mat names + * @param prefix The prefix for the resulting reregistration entry (in full: prefix + group name) + * @param original The full original ore dict key, not bound by any naming conventions + * @return + */ + public DictGroup addFixed(String prefix, String original) { + + String group = prefix + groupName; + addReRegistration(original, group); + return this; + } + + public String any() { return ANY + groupName; } + public String nugget() { return NUGGET + groupName; } + public String tiny() { return TINY + groupName; } + public String ingot() { return INGOT + groupName; } + public String dustTiny() { return DUSTTINY + groupName; } + public String dust() { return DUST + groupName; } + public String gem() { return GEM + groupName; } + public String crystal() { return CRYSTAL + groupName; } + public String plate() { return PLATE + groupName; } + public String billet() { return BILLET + groupName; } + public String block() { return BLOCK + groupName; } + public String ore() { return ORE + groupName; } + } + + private static void addReRegistration(String original, String additional) { + + HashSet strings = reRegistration.get(original); + + if(strings == null) + strings = new HashSet(); + + strings.add(additional); + + reRegistration.put(original, strings); + } } 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/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index e857d5f15..d87321234 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -80,6 +80,9 @@ public class FluidType { public String getUnlocalizedName() { return this.unlocalized; } + public String getDict(int quantity) { + return "container" + quantity + this.stringId.replace("_", ""); + } public boolean isHot() { return this.temperature >= 100; diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index e60258b26..aa2fee227 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -80,6 +80,8 @@ public class Fluids { public static FluidType ETHANOL; public static FluidType HEAVYWATER; public static FluidType SALIENT; + public static FluidType XPJUICE; + public static FluidType ENDERJUICE; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -170,6 +172,8 @@ public class Fluids { AROMATICS = new FluidTypeFlammable( "AROMATICS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); UNSATURATEDS = new FluidTypeFlammable( "UNSATURATEDS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); SALIENT = new FluidType(69, "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); + XPJUICE = new FluidType( "XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE); + ENDERJUICE = new FluidType( "ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE); // ^ ^ ^ ^ ^ ^ ^ ^ @@ -251,6 +255,9 @@ public class Fluids { //nuclear waste metaOrder.add(WASTEFLUID); metaOrder.add(WASTEGAS); + //garbage + metaOrder.add(XPJUICE); + metaOrder.add(ENDERJUICE); //plasma metaOrder.add(PLASMA_DT); metaOrder.add(PLASMA_HD); 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/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 54ec7ec31..a5b96f5b3 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -859,6 +859,14 @@ public class AssemblerRecipes { new ComparableStack(ModItems.crt_display, 8), }, 300); + makeRecipe(new ComparableStack(ModBlocks.rbmk_crane_console, 1), new AStack[] { + new OreDictStack(STEEL.ingot(), 16), + new OreDictStack(AL.plate(), 8), + new ComparableStack(ModItems.plate_polymer, 4), + new ComparableStack(ModItems.circuit_gold, 1), + new ComparableStack(ModItems.circuit_tantalium, 10), + }, 300); + makeRecipe(new ComparableStack(ModBlocks.hadron_core, 1), new AStack[] { new ComparableStack(ModBlocks.hadron_coil_alloy, 24), new OreDictStack(STEEL.ingot(), 8), diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index c5a076661..a88cb0c43 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -1,9 +1,11 @@ package com.hbm.inventory.recipes; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.FluidStack; import static com.hbm.inventory.OreDictManager.*; import com.hbm.inventory.RecipesCommon.AStack; @@ -11,229 +13,364 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.items.ItemEnums.EnumTarType; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class ChemplantRecipes { + + /** + * Nice order: The order in which the ChemRecipe are added to the recipes list + * Meta order: Fixed using the id param, saved in indexMapping + */ + public static HashMap indexMapping = new HashMap(); public static List recipes = new ArrayList(); public static void register() { registerFuelProcessing(); - registerFuelCracking(); - registerCoalCracking(); - registerSolidFuel(); + //6-30, formerly oil cracking, coal liquefaction and solidifciation registerOtherOil(); - recipes.add(new ChemRecipe("COOLANT", 0)); - recipes.add(new ChemRecipe("CRYOGEL", 0)); - recipes.add(new ChemRecipe("DESH", 0)); - recipes.add(new ChemRecipe("NITAN", 0)); - recipes.add(new ChemRecipe("PEROXIDE", 0)); - recipes.add(new ChemRecipe("CIRCUIT_4", 0)); - recipes.add(new ChemRecipe("CIRCUIT_5", 0)); - recipes.add(new ChemRecipe("POLYMER", 0)); - recipes.add(new ChemRecipe("DEUTERIUM", 0)); - recipes.add(new ChemRecipe("STEAM", 0)); - recipes.add(new ChemRecipe("YELLOWCAKE", 0)); - recipes.add(new ChemRecipe("UF6", 0)); - recipes.add(new ChemRecipe("PUF6", 0)); - recipes.add(new ChemRecipe("SAS3", 0)); - recipes.add(new ChemRecipe("DYN_SCHRAB", 0)); - recipes.add(new ChemRecipe("DYN_EUPH", 0)); - recipes.add(new ChemRecipe("DYN_DNT", 0)); - recipes.add(new ChemRecipe("CORDITE", 0)); - recipes.add(new ChemRecipe("KEVLAR", 0)); - recipes.add(new ChemRecipe("CONCRETE", 0)); - recipes.add(new ChemRecipe("CONCRETE_ASBESTOS", 0)); - recipes.add(new ChemRecipe("SOLID_FUEL", 0)); - recipes.add(new ChemRecipe("ELECTROLYSIS", 0)); - recipes.add(new ChemRecipe("XENON", 0)); - recipes.add(new ChemRecipe("XENON_OXY", 0)); - recipes.add(new ChemRecipe("SATURN", 0)); - recipes.add(new ChemRecipe("BALEFIRE", 0)); - recipes.add(new ChemRecipe("SCHRABIDIC", 0)); - recipes.add(new ChemRecipe("SCHRABIDATE", 0)); - recipes.add(new ChemRecipe("COLTAN_CLEANING", 0)); - recipes.add(new ChemRecipe("COLTAN_PAIN", 0)); - recipes.add(new ChemRecipe("COLTAN_CRYSTAL", 0)); - recipes.add(new ChemRecipe("VIT_LIQUID", 0)); - recipes.add(new ChemRecipe("VIT_GAS", 0)); - recipes.add(new ChemRecipe("TEL", 0)); - recipes.add(new ChemRecipe("GASOLINE", 0)); - recipes.add(new ChemRecipe("FRACKSOL", 0)); - recipes.add(new ChemRecipe("DUCRETE", 0)); + + recipes.add(new ChemRecipe(36, "COOLANT", 50) + .inputItems(new OreDictStack(KNO.dust())) + .inputFluids(new FluidStack(Fluids.WATER, 1800)) + .outputFluids(new FluidStack(Fluids.COOLANT, 2000))); + recipes.add(new ChemRecipe(37, "CRYOGEL", 50) + .inputItems(new ComparableStack(ModItems.powder_ice)) + .inputFluids(new FluidStack(Fluids.COOLANT, 1800)) + .outputFluids(new FluidStack(Fluids.CRYOGEL, 2000))); + recipes.add(new ChemRecipe(38, "DESH", 300) + .inputItems(new ComparableStack(ModItems.powder_desh_mix)) + .inputFluids( + GeneralConfig.enableBabyMode ? + new FluidStack[] {new FluidStack(Fluids.LIGHTOIL, 200)} : + new FluidStack[] {new FluidStack(Fluids.MERCURY, 200), new FluidStack(Fluids.LIGHTOIL, 200)}) + .outputItems(new ItemStack(ModItems.ingot_desh))); + recipes.add(new ChemRecipe(39, "NITAN", 50) + .inputItems(new ComparableStack(ModItems.powder_nitan_mix)) + .inputFluids( + new FluidStack(Fluids.KEROSENE, 600), + new FluidStack(Fluids.MERCURY, 200)) + .outputFluids(new FluidStack(Fluids.NITAN, 1000))); + recipes.add(new ChemRecipe(40, "PEROXIDE", 50) + .inputFluids(new FluidStack(Fluids.WATER, 1000)) + .outputFluids(new FluidStack(Fluids.ACID, 800))); + recipes.add(new ChemRecipe(41, "CIRCUIT_4", 200) + .inputItems( + new ComparableStack(ModItems.circuit_red_copper), + new ComparableStack(ModItems.wire_gold, 4), + new OreDictStack(LAPIS.dust()), + new OreDictStack(ANY_PLASTIC.ingot())) + .inputFluids(new FluidStack(Fluids.ACID, 400), new FluidStack(Fluids.PETROLEUM, 200)) + .outputItems(new ItemStack(ModItems.circuit_gold))); + recipes.add(new ChemRecipe(42, "CIRCUIT_5", 250) + .inputItems( + new ComparableStack(ModItems.circuit_gold), + new ComparableStack(ModItems.wire_schrabidium, 4), + new OreDictStack(DIAMOND.dust()), + new OreDictStack(DESH.ingot())) + .inputFluids(new FluidStack(Fluids.ACID, 800), new FluidStack(Fluids.MERCURY, 200)) + .outputItems(new ItemStack(ModItems.circuit_schrabidium))); + recipes.add(new ChemRecipe(43, "POLYMER", 100) + .inputItems( + new OreDictStack(COAL.dust(), 2), + new OreDictStack(F.dust())) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 600)) + .outputItems(new ItemStack(ModItems.ingot_polymer))); + //44, formerly deuterium + //45, formerly steam + recipes.add(new ChemRecipe(46, "YELLOWCAKE", 250) + .inputItems( + new OreDictStack(U.billet(), 2), //TODO: that's 12 nuggets right there, check if those numbers match up + new OreDictStack(S.dust(), 2)) + .inputFluids(new FluidStack(Fluids.ACID, 500)) + .outputItems(new ItemStack(ModItems.powder_yellowcake))); + recipes.add(new ChemRecipe(47, "UF6", 100) + .inputItems( + new ComparableStack(ModItems.powder_yellowcake), + new OreDictStack(F.dust(), 4)) + .inputFluids(new FluidStack(Fluids.WATER, 1000)) + .outputItems(new ItemStack(ModItems.sulfur, 2)) + .outputFluids(new FluidStack(Fluids.UF6, 1200))); + recipes.add(new ChemRecipe(48, "PUF6", 150) + .inputItems( + new OreDictStack(PU.dust()), + new OreDictStack(F.dust(), 3)) + .inputFluids(new FluidStack(Fluids.WATER, 1000)) + .outputFluids(new FluidStack(Fluids.PUF6, 900))); + recipes.add(new ChemRecipe(49, "SAS3", 200) + .inputItems( + new OreDictStack(SA326.dust()), + new OreDictStack(S.dust(), 2)) + .inputFluids(new FluidStack(Fluids.ACID, 2000)) + .outputFluids(new FluidStack(Fluids.SAS3, 1000))); + recipes.add(new ChemRecipe(50, "DYN_SCHRAB", 1200) + .inputItems( + new ComparableStack(ModItems.dynosphere_desh_charged, 3), + new OreDictStack(U.ingot()), + new ComparableStack(ModItems.catalyst_clay, 8)) + .outputItems( + new ItemStack(ModItems.ingot_schrabidium), + new ItemStack(ModItems.powder_desh), + new ItemStack(ModItems.powder_desh_mix)) + .outputFluids(new FluidStack(Fluids.WATZ, 50))); + recipes.add(new ChemRecipe(51, "DYN_EUPH", 3600) + .inputItems( + new ComparableStack(ModItems.dynosphere_schrabidium_charged, 1), + new OreDictStack(PU.ingot()), + new ComparableStack(ModItems.catalyst_clay, 16), + new OreDictStack(EUPH.ingot())) + .outputItems( + new ItemStack(ModItems.nugget_euphemium, 12), + new ItemStack(ModItems.powder_schrabidium, 4), + new ItemStack(ModItems.powder_power, 4)) + .outputFluids(new FluidStack(Fluids.WATZ, 100))); + recipes.add(new ChemRecipe(52, "DYN_DNT", 6000) + .inputItems( + new ComparableStack(ModItems.dynosphere_euphemium_charged, 2), + new ComparableStack(ModItems.powder_spark_mix), + new ComparableStack(ModItems.ingot_starmetal), + new ComparableStack(ModItems.catalyst_clay, 32)) + .outputItems( + new ItemStack(ModItems.ingot_dineutronium), + new ItemStack(ModItems.powder_euphemium, 8), + new ItemStack(ModItems.powder_nitan_mix, 8)) + .outputFluids(new FluidStack(Fluids.WATZ, 150))); + recipes.add(new ChemRecipe(53, "CORDITE", 40) + .inputItems( + new OreDictStack(KNO.dust(), 2), + new OreDictStack(KEY_PLANKS), + new ComparableStack(Items.sugar)) + .inputFluids(new FluidStack(Fluids.HEATINGOIL, 200)) + .outputItems(new ItemStack(ModItems.cordite, 4))); + recipes.add(new ChemRecipe(54, "KEVLAR", 40) + .inputItems( + new OreDictStack(KNO.dust(), 2), + new ComparableStack(Items.brick), + new OreDictStack(COAL.dust())) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 100)) + .outputItems(new ItemStack(ModItems.plate_kevlar, 4))); + recipes.add(new ChemRecipe(55, "CONCRETE", 100) + .inputItems( + new ComparableStack(Blocks.gravel, 8), + new ComparableStack(Blocks.sand, 8)) + .inputFluids(new FluidStack(Fluids.WATER, 2000)) + .outputItems(new ItemStack(ModBlocks.concrete_smooth, 16))); + recipes.add(new ChemRecipe(56, "CONCRETE_ASBESTOS", 100) + .inputItems( + new ComparableStack(Blocks.gravel, 2), + new ComparableStack(Blocks.sand, 2), + new OreDictStack(ASBESTOS.ingot(), 4)) + .inputFluids(new FluidStack(Fluids.WATER, 2000)) + .outputItems(new ItemStack(ModBlocks.concrete_asbestos, 16))); + recipes.add(new ChemRecipe(79, "DUCRETE", 150) + .inputItems( + new ComparableStack(Blocks.sand, 8), + new OreDictStack(U238.billet(), 2), + new ComparableStack(Items.clay_ball, 4)) + .inputFluids(new FluidStack(Fluids.WATER, 2000)) + .outputItems(new ItemStack(ModBlocks.ducrete_smooth, 8))); + recipes.add(new ChemRecipe(57, "SOLID_FUEL", 200) + .inputItems( + new ComparableStack(ModItems.solid_fuel, 2), + new OreDictStack(KNO.dust()), + new OreDictStack(REDSTONE.dust())) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 200)) + .outputItems(new ItemStack(ModItems.rocket_fuel, 4))); + recipes.add(new ChemRecipe(58, "ELECTROLYSIS", 150) + .inputFluids(new FluidStack(Fluids.WATER, 8000)) + .outputFluids( + new FluidStack(Fluids.HYDROGEN, 800), + new FluidStack(Fluids.OXYGEN, 800))); + recipes.add(new ChemRecipe(59, "XENON", 300) + .inputFluids(new FluidStack(Fluids.NONE, 0)) + .outputFluids(new FluidStack(Fluids.XENON, 50))); + recipes.add(new ChemRecipe(60, "XENON_OXY", 20) + .inputFluids(new FluidStack(Fluids.OXYGEN, 250)) + .outputFluids(new FluidStack(Fluids.XENON, 50))); + recipes.add(new ChemRecipe(61, "SATURN", 60) + .inputItems( + new ComparableStack(ModItems.powder_dura_steel), + new OreDictStack(P_RED.dust())) + .inputFluids( + new FluidStack(Fluids.ACID, 100), + new FluidStack(Fluids.MERCURY, 50)) + .outputItems(new ItemStack(ModItems.ingot_saturnite, 2))); + recipes.add(new ChemRecipe(62, "BALEFIRE", 100) + .inputItems(new ComparableStack(ModItems.egg_balefire_shard)) + .inputFluids(new FluidStack(Fluids.KEROSENE, 6000)) + .outputItems(new ItemStack(ModItems.powder_balefire)) + .outputFluids(new FluidStack(Fluids.BALEFIRE, 8000))); + recipes.add(new ChemRecipe(63, "SCHRABIDIC", 100) + .inputItems(new ComparableStack(ModItems.pellet_charged)) + .inputFluids( + new FluidStack(Fluids.SAS3, 8000), + new FluidStack(Fluids.ACID, 6000)) + .outputFluids(new FluidStack(Fluids.SCHRABIDIC, 16000))); + recipes.add(new ChemRecipe(64, "SCHRABIDATE", 150) + .inputItems(new OreDictStack(IRON.dust())) + .inputFluids(new FluidStack(Fluids.SCHRABIDIC, 250)) + .outputItems(new ItemStack(ModItems.powder_schrabidate))); + recipes.add(new ChemRecipe(65, "COLTAN_CLEANING", 60) + .inputItems( + new OreDictStack(COLTAN.dust(), 2), + new OreDictStack(COAL.dust())) + .inputFluids( + new FluidStack(Fluids.ACID, 250), + new FluidStack(Fluids.HYDROGEN, 500)) + .outputItems( + new ItemStack(ModItems.powder_coltan), + new ItemStack(ModItems.powder_niobium), + new ItemStack(ModItems.dust)) + .outputFluids(new FluidStack(Fluids.WATER, 500))); + recipes.add(new ChemRecipe(66, "COLTAN_PAIN", 120) + .inputItems( + new ComparableStack(ModItems.powder_coltan), + new OreDictStack(F.dust())) + .inputFluids( + new FluidStack(Fluids.GAS, 1000), + new FluidStack(Fluids.OXYGEN, 500)) + .outputFluids(new FluidStack(Fluids.PAIN, 1000))); + recipes.add(new ChemRecipe(67, "COLTAN_CRYSTAL", 80) + .inputFluids( + new FluidStack(Fluids.PAIN, 1000), + new FluidStack(Fluids.ACID, 500)) + .outputItems( + new ItemStack(ModItems.gem_tantalium), + new ItemStack(ModItems.dust, 3)) + .outputFluids(new FluidStack(Fluids.WATER, 250))); + recipes.add(new ChemRecipe(68, "VIT_LIQUID", 100) + .inputItems(new ComparableStack(ModBlocks.sand_lead)) + .inputFluids(new FluidStack(Fluids.WASTEFLUID, 1000)) + .outputItems(new ItemStack(ModItems.nuclear_waste_vitrified))); + recipes.add(new ChemRecipe(69, "VIT_GAS", 100) + .inputItems(new ComparableStack(ModBlocks.sand_lead)) + .inputFluids(new FluidStack(Fluids.WASTEGAS, 1000)) + .outputItems(new ItemStack(ModItems.nuclear_waste_vitrified))); + recipes.add(new ChemRecipe(70, "TEL", 40) + .inputItems( + new OreDictStack(ANY_TAR.any()), + new OreDictStack(PB.dust())) + .inputFluids( + new FluidStack(Fluids.PETROLEUM, 100), + new FluidStack(Fluids.STEAM, 1000)) + .outputItems(new ItemStack(ModItems.antiknock))); + recipes.add(new ChemRecipe(71, "GASOLINE", 40) + .inputItems(new ComparableStack(ModItems.antiknock)) + .inputFluids(new FluidStack(Fluids.PETROIL, 10_000)) + .outputFluids(new FluidStack(Fluids.GASOLINE, 12_000))); + recipes.add(new ChemRecipe(72, "FRACKSOL", 20) + .inputItems(new OreDictStack(S.dust())) + .inputFluids( + new FluidStack(Fluids.PETROLEUM, 100), + new FluidStack(Fluids.WATER, 1000)) + .outputFluids(new FluidStack(Fluids.FRACKSOL, 1000))); + recipes.add(new ChemRecipe(73, "HELIUM3", 200) + .inputItems(new ComparableStack(ModBlocks.moon_turf, 8)) + .outputFluids(new FluidStack(Fluids.HELIUM3, 1000))); + recipes.add(new ChemRecipe(74, "OSMIRIDIUM_DEATH", 240) + .inputItems( + new ComparableStack(ModItems.powder_paleogenite), + new OreDictStack(F.dust(), 8), + new ComparableStack(ModItems.nugget_bismuth, 4)) + .inputFluids(new FluidStack(Fluids.ACID, 1000)) + .outputFluids(new FluidStack(Fluids.DEATH, 1000))); + recipes.add(new ChemRecipe(75, "ETHANOL", 50) + .inputItems(new ComparableStack(Items.sugar, 6)) + .outputFluids(new FluidStack(Fluids.ETHANOL, 1000))); + recipes.add(new ChemRecipe(76, "METH", 30) + .inputItems( + new ComparableStack(Items.wheat), + new ComparableStack(Items.dye, 2, 3)) + .inputFluids( + new FluidStack(Fluids.LUBRICANT, 400), + new FluidStack(Fluids.ACID, 400)) + .outputItems(new ItemStack(ModItems.chocolate, 4))); + recipes.add(new ChemRecipe(77, "CO2", 60) + .inputFluids(new FluidStack(Fluids.GAS, 1000)) + .outputFluids(new FluidStack(Fluids.CARBONDIOXIDE, 1000))); + recipes.add(new ChemRecipe(78, "HEAVY_ELECTROLYSIS", 150) + .inputFluids(new FluidStack(Fluids.HEAVYWATER, 8000)) + .outputFluids( + new FluidStack(Fluids.DEUTERIUM, 400), + new FluidStack(Fluids.OXYGEN, 400))); + recipes.add(new ChemRecipe(80, "EPEARL", 100) + .inputItems(new OreDictStack(DIAMOND.dust(), 1)) + .inputFluids(new FluidStack(Fluids.XPJUICE, 500)) + .outputFluids(new FluidStack(Fluids.ENDERJUICE, 100))); } public static void registerFuelProcessing() { - recipes.add(new ChemRecipe("FP_HEAVYOIL", 50) + recipes.add(new ChemRecipe(0, "FP_HEAVYOIL", 50) .inputFluids(new FluidStack(1000, Fluids.HEAVYOIL)) .outputFluids( new FluidStack(RefineryRecipes.heavy_frac_bitu * 10, Fluids.BITUMEN), new FluidStack(RefineryRecipes.heavy_frac_smear * 10, Fluids.SMEAR) )); - recipes.add(new ChemRecipe("FP_SMEAR", 50) + recipes.add(new ChemRecipe(1, "FP_SMEAR", 50) .inputFluids(new FluidStack(1000, Fluids.SMEAR)) .outputFluids( new FluidStack(RefineryRecipes.smear_frac_heat * 10, Fluids.HEATINGOIL), new FluidStack(RefineryRecipes.smear_frac_lube * 10, Fluids.LUBRICANT) )); - recipes.add(new ChemRecipe("FP_NAPHTHA", 50) + recipes.add(new ChemRecipe(2, "FP_NAPHTHA", 50) .inputFluids(new FluidStack(1000, Fluids.NAPHTHA)) .outputFluids( new FluidStack(RefineryRecipes.napht_frac_heat * 10, Fluids.HEATINGOIL), new FluidStack(RefineryRecipes.napht_frac_diesel * 10, Fluids.DIESEL) )); - recipes.add(new ChemRecipe("FP_LIGHTOIL", 50) + recipes.add(new ChemRecipe(3, "FP_LIGHTOIL", 50) .inputFluids(new FluidStack(1000, Fluids.LIGHTOIL)) .outputFluids( new FluidStack(RefineryRecipes.light_frac_diesel * 10, Fluids.DIESEL), new FluidStack(RefineryRecipes.light_frac_kero * 10, Fluids.KEROSENE) )); - recipes.add(new ChemRecipe("FR_REOIL", 30) + recipes.add(new ChemRecipe(4, "FR_REOIL", 30) .inputFluids(new FluidStack(1000, Fluids.SMEAR)) .outputFluids(new FluidStack(800, Fluids.RECLAIMED))); - recipes.add(new ChemRecipe("FR_PETROIL", 30) + recipes.add(new ChemRecipe(5, "FR_PETROIL", 30) .inputFluids( new FluidStack(800, Fluids.RECLAIMED), new FluidStack(200, Fluids.LUBRICANT)) .outputFluids(new FluidStack(1000, Fluids.PETROIL))); } - - public static void registerFuelCracking() { - recipes.add(new ChemRecipe("FC_BITUMEN", 100) - .inputFluids( - new FluidStack(1200, Fluids.BITUMEN), - new FluidStack(2400, Fluids.STEAM)) - .outputFluids( - new FluidStack(1000, Fluids.OIL), - new FluidStack(200, Fluids.PETROLEUM))); - recipes.add(new ChemRecipe("FC_I_NAPHTHA", 150) - .inputFluids( - new FluidStack(1400, Fluids.SMEAR), - new FluidStack(800, Fluids.WATER)) - .outputFluids(new FluidStack(800, Fluids.NAPHTHA))); - recipes.add(new ChemRecipe("FC_GAS_PETROLEUM", 100) - .inputFluids( - new FluidStack(1800, Fluids.GAS), - new FluidStack(1200, Fluids.WATER)) - .outputFluids(new FluidStack(800, Fluids.PETROLEUM))); - recipes.add(new ChemRecipe("FC_DIESEL_KEROSENE", 150) - .inputFluids( - new FluidStack(1200, Fluids.DIESEL), - new FluidStack(2000, Fluids.STEAM)) - .outputFluids(new FluidStack(400, Fluids.KEROSENE))); - recipes.add(new ChemRecipe("FC_KEROSENE_PETROLEUM", 150) - .inputFluids( - new FluidStack(1400, Fluids.KEROSENE), - new FluidStack(2000, Fluids.STEAM)) - .outputFluids(new FluidStack(800, Fluids.PETROLEUM))); - } - - public static void registerCoalCracking() { - recipes.add(new ChemRecipe("CC_OIL", 150) - .inputItems(new OreDictStack(COAL.dust(), 8), new OreDictStack(ANY_TAR.any(), 4)) - .inputFluids(new FluidStack(1400, Fluids.STEAM)) - .outputFluids(new FluidStack(2000, Fluids.OIL))); - recipes.add(new ChemRecipe("CC_I", 200) - .inputItems(new OreDictStack(COAL.dust(), 6), new OreDictStack(ANY_TAR.any(), 4)) - .inputFluids(new FluidStack(1800, Fluids.WATER)) - .outputFluids(new FluidStack(1600, Fluids.SMEAR))); - recipes.add(new ChemRecipe("CC_HEATING", 250) - .inputItems(new OreDictStack(COAL.dust(), 6), new OreDictStack(ANY_TAR.any(), 4)) - .inputFluids(new FluidStack(2000, Fluids.STEAM)) - .outputFluids(new FluidStack(1800, Fluids.HEATINGOIL))); - recipes.add(new ChemRecipe("CC_HEAVY", 200) - .inputItems(new OreDictStack(COAL.dust(), 8), new OreDictStack(ANY_TAR.any(), 4)) - .inputFluids(new FluidStack(1400, Fluids.WATER)) - .outputFluids(new FluidStack(1800, Fluids.HEAVYOIL))); - recipes.add(new ChemRecipe("CC_NAPHTHA", 300) - .inputItems(new OreDictStack(COAL.dust(), 8), new OreDictStack(ANY_TAR.any(), 4)) - .inputFluids(new FluidStack(2400, Fluids.STEAM)) - .outputFluids(new FluidStack(2000, Fluids.NAPHTHA))); - } - - public static void registerSolidFuel() { - recipes.add(new ChemRecipe("SF_OIL", 20) - .inputFluids(new FluidStack(350, Fluids.OIL)) - .outputItems(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE))); - recipes.add(new ChemRecipe("SF_HEAVYOIL", 20) - .inputFluids(new FluidStack(250, Fluids.HEAVYOIL)) - .outputItems(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE))); - recipes.add(new ChemRecipe("SF_SMEAR", 20) - .inputFluids(new FluidStack(200, Fluids.SMEAR)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_HEATINGOIL", 20) - .inputFluids(new FluidStack(100, Fluids.HEATINGOIL)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_RECLAIMED", 20) - .inputFluids(new FluidStack(200, Fluids.RECLAIMED)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_PETROIL", 20) - .inputFluids(new FluidStack(250, Fluids.PETROIL)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_LUBRICANT", 20) - .inputFluids(new FluidStack(250, Fluids.LUBRICANT)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_NAPHTHA", 20) - .inputFluids(new FluidStack(300, Fluids.NAPHTHA)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_DIESEL", 20) - .inputFluids(new FluidStack(400, Fluids.DIESEL)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_LIGHTOIL", 20) - .inputFluids(new FluidStack(450, Fluids.LIGHTOIL)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_KEROSENE", 20) - .inputFluids(new FluidStack(550, Fluids.KEROSENE)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_GAS", 20) - .inputFluids(new FluidStack(750, Fluids.GAS)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_PETROLEUM", 20) - .inputFluids(new FluidStack(600, Fluids.PETROLEUM)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_BIOGAS", 20) - .inputFluids(new FluidStack(3500, Fluids.BIOGAS)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1))); - recipes.add(new ChemRecipe("SF_BIOFUEL", 20) - .inputFluids(new FluidStack(1500, Fluids.BIOFUEL)) - .outputItems(new ItemStack(ModItems.solid_fuel, 1), new ItemStack(ModItems.solid_fuel, 1)));; - } public static void registerOtherOil() { - recipes.add(new ChemRecipe("BP_BIOGAS", 200) + recipes.add(new ChemRecipe(31, "BP_BIOGAS", 200) .inputItems(new ComparableStack(ModItems.biomass, 16)) .outputFluids(new FluidStack(4000, Fluids.BIOGAS))); - recipes.add(new ChemRecipe("BP_BIOFUEL", 100) + recipes.add(new ChemRecipe(32, "BP_BIOFUEL", 100) .inputFluids(new FluidStack(2000, Fluids.BIOGAS)) .outputFluids(new FluidStack(1000, Fluids.BIOFUEL))); - recipes.add(new ChemRecipe("LPG", 100) + recipes.add(new ChemRecipe(33, "LPG", 100) .inputFluids(new FluidStack(2000, Fluids.PETROLEUM)) .outputFluids(new FluidStack(1000, Fluids.LPG))); - recipes.add(new ChemRecipe("OIL_SAND", 200) + recipes.add(new ChemRecipe(34, "OIL_SAND", 200) .inputItems(new ComparableStack(ModBlocks.ore_oil_sand, 16), new OreDictStack(ANY_TAR.any(), 1)) .outputItems(new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4)) .outputFluids(new FluidStack(1000, Fluids.BITUMEN))); - recipes.add(new ChemRecipe("ASPHALT", 100) + recipes.add(new ChemRecipe(35, "ASPHALT", 100) .inputItems(new ComparableStack(Blocks.gravel, 2), new ComparableStack(Blocks.sand, 6)) .inputFluids(new FluidStack(1000, Fluids.BITUMEN)) - .outputItems(new ItemStack(ModBlocks.asphalt, 4), new ItemStack(ModBlocks.asphalt, 4), new ItemStack(ModBlocks.asphalt, 4), new ItemStack(ModBlocks.asphalt, 4))); + .outputItems(new ItemStack(ModBlocks.asphalt, 16))); } public static class ChemRecipe { + private int id; public String name; - private AStack[] inputs; - private FluidStack[] inputFluids; - private ItemStack[] outputs; - private FluidStack[] outputFluids; + public AStack[] inputs; + public FluidStack[] inputFluids; + public ItemStack[] outputs; + public FluidStack[] outputFluids; private int duration; - public ChemRecipe(String name, int duration) { + public ChemRecipe(int index, String name, int duration) { + this.id = index; this.name = name; this.duration = duration; @@ -241,6 +378,12 @@ public class ChemplantRecipes { this.outputs = new ItemStack[4]; this.inputFluids = new FluidStack[2]; this.outputFluids = new FluidStack[2]; + + if(!indexMapping.containsKey(id)) { + indexMapping.put(id, this); + } else { + throw new IllegalStateException("Chemical plant recipe " + name + " has been registered with duplicate id " + id + " used by " + indexMapping.get(id).name + "!"); + } } public ChemRecipe inputItems(AStack... in) { @@ -262,5 +405,13 @@ public class ChemplantRecipes { for(int i = 0; i < out.length; i++) this.outputFluids[i] = out[i]; return this; } + + public int getId() { + return this.id; + } + + public int getDuration() { + return this.duration; + } } } 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/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index 3a06bf329..36a3fe87b 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -38,6 +38,7 @@ public class LiquefactionRecipes { recipes.put(new ComparableStack(Blocks.snow), new FluidStack(500, Fluids.WATER)); recipes.put(new ComparableStack(Blocks.ice), new FluidStack(1000, Fluids.WATER)); recipes.put(new ComparableStack(Blocks.packed_ice), new FluidStack(1000, Fluids.WATER)); + recipes.put(new ComparableStack(Items.ender_pearl), new FluidStack(100, Fluids.ENDERJUICE)); recipes.put(new ComparableStack(Items.sugar), new FluidStack(150, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(250, Fluids.BIOGAS)); 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/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index c614d2674..2b21c3bb8 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -9,6 +9,7 @@ import java.util.Map.Entry; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; import com.hbm.util.WeightedRandomObject; @@ -532,7 +533,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 1)) ); - recipes.put(new ComparableStack(Blocks.gravel, 1), new SILEXRecipe(1000, 250, 0) + recipes.put(new ComparableStack(Blocks.gravel, 1), new SILEXRecipe(1000, 250, EnumWavelengths.VISIBLE) .addOut(new WeightedRandomObject(new ItemStack(Items.flint), 80)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_boron), 5)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_lithium), 10)) @@ -627,15 +628,19 @@ public static class SILEXRecipe { public int fluidProduced; public int fluidConsumed; - public int laserStrength; + public EnumWavelengths laserStrength; public List outputs = new ArrayList(); - public SILEXRecipe(int fluidProduced, int fluidConsumed, int laserStrength) { + public SILEXRecipe(int fluidProduced, int fluidConsumed, EnumWavelengths laserStrength) { this.fluidProduced = fluidProduced; this.fluidConsumed = fluidConsumed; this.laserStrength = laserStrength; } + public SILEXRecipe(int fluidProduced, int fluidConsumed, int laserStrength) { + this(fluidProduced, fluidConsumed, EnumWavelengths.values()[laserStrength]); + } + public SILEXRecipe addOut(WeightedRandomObject entry) { outputs.add(entry); return this; diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 8755159b8..8f4616ed3 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -14,6 +14,7 @@ import com.hbm.util.Tuple.Pair; import net.minecraft.block.Block; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -54,6 +55,7 @@ public class SolidificationRecipes { registerRecipe(MERCURY, 125, ModItems.ingot_mercury); registerRecipe(BIOGAS, 250, ModItems.biomass_compressed); registerRecipe(SALIENT, 1280, new ItemStack(ModItems.bio_wafer, 8)); //4 (food val) * 2 (sat mod) * 2 (constant) * 10 (quanta) * 8 (batch size) + registerRecipe(ENDERJUICE, 100, Items.ender_pearl); registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(CRACKOIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 25487dab4..3253f30a6 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4730,7 +4730,7 @@ public class ModItems { fluid_icon = new ItemFluidIcon().setUnlocalizedName("fluid_icon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":fluid_icon"); fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setContainerItem(ModItems.fluid_tank_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank"); fluid_tank_empty = new Item().setUnlocalizedName("fluid_tank_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank"); - fluid_tank_lead_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_lead_full").setContainerItem(ModItems.fluid_tank_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); + fluid_tank_lead_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_lead_full").setContainerItem(ModItems.fluid_tank_lead_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); fluid_tank_lead_empty = new Item().setUnlocalizedName("fluid_tank_lead_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); diff --git a/src/main/java/com/hbm/items/block/ItemBlockLore.java b/src/main/java/com/hbm/items/block/ItemBlockLore.java index 631163477..c83b5293b 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockLore.java +++ b/src/main/java/com/hbm/items/block/ItemBlockLore.java @@ -78,11 +78,6 @@ public class ItemBlockLore extends ItemBlock { list.add("Come on, get a derrick you doofus."); } - if(this.field_150939_a == ModBlocks.machine_mining_laser) { - list.add("3x3x3 Multiblock"); - list.add("Only placeable on a ceiling."); - } - if(this.field_150939_a == ModBlocks.gravel_diamond) { list.add("There is some kind of joke here,"); list.add("but I can't quite tell what it is."); 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 acf16f00b..12ad0569e 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -2,9 +2,8 @@ package com.hbm.items.machine; import java.util.List; -import com.hbm.interfaces.Spaghetti; -import com.hbm.inventory.FluidStack; -import com.hbm.inventory.recipes.MachineRecipes; +import com.hbm.inventory.recipes.ChemplantRecipes; +import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; @@ -19,122 +18,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, - 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), - 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), - 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), - BP_BIOGAS, - BP_BIOFUEL, - LPG, - OIL_SAND, - ASPHALT, - COOLANT, - CRYOGEL, - DESH, - NITAN, - PEROXIDE, - CIRCUIT_4, - CIRCUIT_5, - POLYMER, - DEUTERIUM, - STEAM, - YELLOWCAKE, - UF6, - PUF6, - SAS3, - DYN_SCHRAB, - DYN_EUPH, - DYN_DNT, - CORDITE, - KEVLAR, - CONCRETE, - CONCRETE_ASBESTOS, - SOLID_FUEL, - ELECTROLYSIS, - XENON, - XENON_OXY, - SATURN, - BALEFIRE, - SCHRABIDIC, - SCHRABIDATE, - COLTAN_CLEANING, - COLTAN_PAIN, - COLTAN_CRYSTAL, - VIT_LIQUID, - VIT_GAS, - TEL, - 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 +25,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 +45,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,45 +55,49 @@ 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[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[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[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[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/items/machine/ItemFELCrystal.java b/src/main/java/com/hbm/items/machine/ItemFELCrystal.java index 4b0e03748..0a105cb2b 100644 --- a/src/main/java/com/hbm/items/machine/ItemFELCrystal.java +++ b/src/main/java/com/hbm/items/machine/ItemFELCrystal.java @@ -31,7 +31,7 @@ public class ItemFELCrystal extends Item { } public static enum EnumWavelengths{ - NULL("la creatura", "6 dollar", 0x010101, 0x010101, EnumChatFormatting.WHITE), + NULL("la creatura", "6 dollar", 0x010101, 0x010101, EnumChatFormatting.WHITE), //why do you exist? IR("wavelengths.name.ir", "wavelengths.waveRange.ir", 0xBB1010, 0xCC4040, EnumChatFormatting.RED), VISIBLE("wavelengths.name.visible", "wavelengths.waveRange.visible", 0, 0, EnumChatFormatting.GREEN), diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index 5bda69b31..4d00179e1 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -65,39 +65,6 @@ public class ItemStarterKit extends Item { if(this == ModItems.nuke_starter_kit) { - /*player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_difurnace_off, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_centrifuge, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_uf6_tank, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_assembler, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_press, 1)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.template_folder, 1)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_uranium, 6)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_red_copper, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_tungsten, 4)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_steel, 12)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_lead, 8)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_titanium, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_aluminium, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_iron, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_steel, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_lead, 16)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.wire_red_copper, 28)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.wire_tungsten, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_copper, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.tank_steel, 4)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_empty, 32)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_uf6, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_empty, 16));*/ player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_uranium, 32)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.powder_yellowcake, 32)); @@ -128,46 +95,6 @@ public class ItemStarterKit extends Item { if(this == ModItems.nuke_advanced_kit) { - /*player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 2)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_centrifuge), 4)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_reactor), 3)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 2)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_puf6_tank), 2)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_assembler, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_chemplant, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_press, 1)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_uranium, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_u235, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_u238, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_plutonium, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_pu238, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_pu239, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_pu240, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_neptunium, 16)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.wire_red_copper, 32)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_copper, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_tungsten, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_copper_torus, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.tank_steel, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.motor, 8)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_aluminium, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_titanium, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_iron, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_steel, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.neutron_reflector, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_lead, 16)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_empty, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_empty, 64)); - - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1));*/ player.inventory.addItemStackToInventory(new ItemStack(ModItems.powder_yellowcake, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.powder_plutonium, 64)); @@ -212,68 +139,33 @@ public class ItemStarterKit extends Item { if(this == ModItems.nuke_commercially_kit) { - /*player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_generator), 4)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 2)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_rtg_furnace_off), 2)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 4)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.red_cable), 64)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.red_wire_coated), 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_pu238, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_pu238, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_mox_fuel, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_mox_fuel, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_mox_fuel, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_mox_fuel, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_dual_mox_fuel, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_dual_mox_fuel, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_dual_mox_fuel, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_dual_mox_fuel, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_water, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_water, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_water, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_water, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_coolant, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_coolant, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_coolant, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_coolant, 1));*/ - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_pu238, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_uranium_fuel, 32)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_plutonium_fuel, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_mox_fuel, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rtg_unit, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.motor, 3)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.reactor_core, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_empty, 32)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_empty, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.fluid_barrel_full, 16, Fluids.WATER.getID())); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.fluid_barrel_full, 8, Fluids.COOLANT.getID())); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_assembler, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_chemplant, 3)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_gascent, 2)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_nuke_furnace_off, 2)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_rtg_furnace_off, 3)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_rtg_grey, 2)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.reactor_research, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_turbine, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_lithium_battery, 4)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 32)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_wire_coated, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.radaway_strong, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.radaway_flush, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.radx, 2)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.pill_iodine, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor_breeding, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_fluidtank, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.billet_pu238be, 40)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_u233, 40)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_uranium_fuel, 32)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_plutonium_fuel, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_mox_fuel, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.inf_water_mk2, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.inf_water_mk2, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.inf_water_mk2, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_empty, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_dual_empty, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_empty, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.fluid_tank_lead_empty, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.fluid_barrel_empty, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.barrel_steel, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_iron, 64)); + player.inventory.addItemStackToInventory(new ItemStack(Items.dye, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.template_folder, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.radaway_flush, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.iv_blood, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pill_iodine, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gas_mask_filter_combo, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gas_mask_filter_combo, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gas_mask_filter_combo, 1)); giveHaz(world, player, 2); } diff --git a/src/main/java/com/hbm/items/tool/ItemAnalyzer.java b/src/main/java/com/hbm/items/tool/ItemAnalyzer.java index b403b45db..64a7856f3 100644 --- a/src/main/java/com/hbm/items/tool/ItemAnalyzer.java +++ b/src/main/java/com/hbm/items/tool/ItemAnalyzer.java @@ -76,19 +76,6 @@ public class ItemAnalyzer extends Item { "Electricity: " + ((IEnergyConnector)te).getPower() + " HE")); } - if(te instanceof IFluidContainer) { - - player.addChatMessage(new ChatComponentText( - "Fluid Tanks:")); - - List tanks = ((IFluidContainer)te).getTanks(); - - for(int i = 0; i < tanks.size(); i++) { - player.addChatMessage(new ChatComponentText( - " *Tank " + (i + 1) + ": " + tanks.get(i).getFill() + "mB " + I18n.format(tanks.get(i).getTankType().getUnlocalizedName()))); - } - } - if(te instanceof IFluidDuct) { player.addChatMessage(new ChatComponentText( diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index c4ec0afc1..b606b087d 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -618,8 +618,8 @@ public class Library { } } - if(tileentity instanceof IFluidAcceptor && newTact && ((IFluidAcceptor)tileentity).getMaxFluidFill(type) > 0 && - ((IFluidAcceptor)tileentity).getMaxFluidFill(type) - ((IFluidAcceptor)tileentity).getFluidFill(type) > 0) { + if(tileentity instanceof IFluidAcceptor && newTact && ((IFluidAcceptor)tileentity).getMaxFillForReceive(type) > 0 && + ((IFluidAcceptor)tileentity).getMaxFillForReceive(type) - ((IFluidAcceptor)tileentity).getMaxFillForReceive(type) > 0) { that.getFluidList(type).add((IFluidAcceptor)tileentity); } @@ -628,18 +628,18 @@ public class Library { int size = that.getFluidList(type).size(); if(size > 0) { - int part = that.getFluidFill(type) / size; + int part = that.getFluidFillOutgoing(type) / size; for(IFluidAcceptor consume : that.getFluidList(type)) { - if(consume.getFluidFill(type) < consume.getMaxFluidFill(type)) + if(consume.getFluidFillIncoming(type) < consume.getMaxFillForReceive(type)) { - if(consume.getMaxFluidFill(type) - consume.getFluidFill(type) >= part) + if(consume.getMaxFillForReceive(type) - consume.getFluidFillIncoming(type) >= part) { - that.setFluidFill(that.getFluidFill(type) - part, type); - consume.setFluidFill(consume.getFluidFill(type) + part, type); + that.setFillForTransferOutgoing(that.getFluidFillOutgoing(type) - part, type); + consume.setFillForTransferIncoming(consume.getFluidFillIncoming(type) + part, type); } else { - that.setFluidFill(that.getFluidFill(type) - (consume.getMaxFluidFill(type) - consume.getFluidFill(type)), type); - consume.setFluidFill(consume.getMaxFluidFill(type), type); + that.setFillForTransferOutgoing(that.getFluidFillOutgoing(type) - (consume.getMaxFillForReceive(type) - consume.getFluidFillIncoming(type)), type); + consume.setFillForTransferIncoming(consume.getMaxFillForReceive(type), type); } } } 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/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 3a8f1d9a5..05ad56154 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -855,9 +855,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Items.name_tag), new Object[] { "SB ", "BPB", " BP", 'S', Items.string, 'B', ANY_TAR.any(), 'P', Items.paper }); addRecipeAuto(new ItemStack(ModItems.rag, 4), new Object[] { "SW", "WS", 'S', Items.string, 'W', Blocks.wool }); - addShapelessAuto(new ItemStack(ModItems.solid_fuel, 10), new Object[] { ModItems.canister_heatingoil, KEY_TOOL_CHEMISTRYSET }); - addShapelessAuto(new ItemStack(ModItems.solid_fuel, 10), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.HEATINGOIL.getID()), KEY_TOOL_CHEMISTRYSET }); - addShapelessAuto(new ItemStack(ModItems.solid_fuel, 10), new Object[] { new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.HEATINGOIL.getID()), KEY_TOOL_CHEMISTRYSET }); + addShapelessAuto(new ItemStack(ModItems.solid_fuel, 10), new Object[] { Fluids.HEATINGOIL.getDict(1000), KEY_TOOL_CHEMISTRYSET }); addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', ModItems.board_copper }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 0d6831552..16555e3df 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -263,6 +263,7 @@ public class MainRegistry { SiegeTier.registerTiers(); HazardRegistry.registerItems(); HazardRegistry.registerTrafos(); + OreDictManager.registerGroups(); Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8"); Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e"); @@ -943,6 +944,7 @@ public class MainRegistry { TileEntityNukeFurnace.registerFuels(); BreederRecipes.registerRecipes(); AssemblerRecipes.loadRecipes(); + ChemplantRecipes.register(); CyclotronRecipes.register(); HadronRecipes.register(); MagicRecipes.register(); @@ -984,6 +986,9 @@ public class MainRegistry { SchistStratum schist = new SchistStratum(); MinecraftForge.EVENT_BUS.register(schist); //DecorateBiomeEvent.Pre + OreDictManager oreMan = new OreDictManager(); + MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent + PacketDispatcher.registerPackets(); ChunkRadiationManager radiationSystem = new ChunkRadiationManager(); diff --git a/src/main/java/com/hbm/packet/LoopedSoundPacket.java b/src/main/java/com/hbm/packet/LoopedSoundPacket.java index c7598f70a..4def5fb03 100644 --- a/src/main/java/com/hbm/packet/LoopedSoundPacket.java +++ b/src/main/java/com/hbm/packet/LoopedSoundPacket.java @@ -4,13 +4,11 @@ import com.hbm.interfaces.Spaghetti; import com.hbm.sound.SoundLoopAssembler; import com.hbm.sound.SoundLoopBroadcaster; import com.hbm.sound.SoundLoopCentrifuge; -import com.hbm.sound.SoundLoopChemplant; import com.hbm.sound.SoundLoopMiner; import com.hbm.sound.SoundLoopTurbofan; import com.hbm.tileentity.machine.TileEntityBroadcaster; import com.hbm.tileentity.machine.TileEntityMachineAssembler; import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; -import com.hbm.tileentity.machine.TileEntityMachineChemplant; import com.hbm.tileentity.machine.TileEntityMachineGasCent; import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; @@ -78,18 +76,6 @@ public class LoopedSoundPacket implements IMessage { Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopMiner(new ResourceLocation("hbm:block.minerOperate"), te)); } - if (te != null && te instanceof TileEntityMachineChemplant) { - - boolean flag = true; - for(int i = 0; i < SoundLoopChemplant.list.size(); i++) { - if(SoundLoopChemplant.list.get(i).getTE() == te && !SoundLoopChemplant.list.get(i).isDonePlaying()) - flag = false; - } - - if(flag && te.getWorldObj().isRemote && ((TileEntityMachineChemplant)te).isProgressing) - Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopChemplant(new ResourceLocation("hbm:block.chemplantOperate"), te)); - } - if (te != null && te instanceof TileEntityMachineAssembler) { boolean flag = true; diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 21b2acac7..a3023730b 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -33,8 +33,6 @@ public class PacketDispatcher { wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT); //Sound packet that keeps client and server separated wrapper.registerMessage(LoopedSoundPacket.Handler.class, LoopedSoundPacket.class, i++, Side.CLIENT); - //Chemplant piston rotation for rendering - wrapper.registerMessage(TEChemplantPacket.Handler.class, TEChemplantPacket.class, i++, Side.CLIENT); //Turret rotation for rendering wrapper.registerMessage(TETurretPacket.Handler.class, TETurretPacket.class, i++, Side.CLIENT); //Signals server to consume items and create template diff --git a/src/main/java/com/hbm/packet/TEChemplantPacket.java b/src/main/java/com/hbm/packet/TEChemplantPacket.java deleted file mode 100644 index 155cb45a6..000000000 --- a/src/main/java/com/hbm/packet/TEChemplantPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineChemplant; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEChemplantPacket implements IMessage { - - int x; - int y; - int z; - boolean isProgressing; - - public TEChemplantPacket() - { - - } - - public TEChemplantPacket(int x, int y, int z, boolean isProgressing) - { - this.x = x; - this.y = y; - this.z = z; - this.isProgressing = isProgressing; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - isProgressing = buf.readBoolean(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeBoolean(isProgressing); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEChemplantPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineChemplant) { - - TileEntityMachineChemplant gen = (TileEntityMachineChemplant) te; - gen.isProgressing = m.isProgressing; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEFluidPacket.java b/src/main/java/com/hbm/packet/TEFluidPacket.java index 9509c98a0..078729c9f 100644 --- a/src/main/java/com/hbm/packet/TEFluidPacket.java +++ b/src/main/java/com/hbm/packet/TEFluidPacket.java @@ -62,8 +62,8 @@ public class TEFluidPacket implements IMessage { if (te != null && te instanceof IFluidContainer) { IFluidContainer gen = (IFluidContainer) te; - gen.setFillstate(m.fill, m.index); - gen.setType(Fluids.fromID(m.type), m.index); + gen.setFillForSync(m.fill, m.index); + gen.setTypeForSync(Fluids.fromID(m.type), m.index); } } catch(Exception x) { } return null; 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/sound/SoundLoopChemplant.java b/src/main/java/com/hbm/sound/SoundLoopChemplant.java deleted file mode 100644 index 813b7170b..000000000 --- a/src/main/java/com/hbm/sound/SoundLoopChemplant.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.hbm.sound; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.tileentity.machine.TileEntityMachineChemplant; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class SoundLoopChemplant extends SoundLoopMachine { - - public static List list = new ArrayList(); - - public SoundLoopChemplant(ResourceLocation path, TileEntity te) { - super(path, te); - list.add(this); - } - - @Override - public void update() { - super.update(); - - if(te instanceof TileEntityMachineChemplant) { - TileEntityMachineChemplant plant = (TileEntityMachineChemplant)te; - - if(this.volume != 3) - volume = 3; - - if(!plant.isProgressing) - this.donePlaying = true; - } - } - - public TileEntity getTE() { - return te; - } - -} diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index 67cb91f9d..5b3736cef 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -41,51 +41,38 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(!fluid) return; if(getTile() instanceof IFluidAcceptor) { - ((IFluidAcceptor)getTile()).setFillstate(fill, index); + ((IFluidAcceptor)getTile()).setFillForSync(fill, index); } } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(!fluid) return; if(getTile() instanceof IFluidAcceptor) { - ((IFluidAcceptor)getTile()).setFluidFill(fill, type); + ((IFluidAcceptor)getTile()).setFillForTransfer(fill, type); } } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(!fluid) return; if(getTile() instanceof IFluidAcceptor) { - ((IFluidAcceptor)getTile()).setType(type, index); + ((IFluidAcceptor)getTile()).setTypeForSync(type, index); } } - @Override - public List getTanks() { - - if(!fluid) - return null; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getTanks(); - } - - return null; - } - @Override public int getFluidFill(FluidType type) { @@ -100,13 +87,13 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(!fluid) return 0; if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getMaxFluidFill(type); + return ((IFluidAcceptor)getTile()).getMaxFillForReceive(type); } return 0; 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/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 481ac57b5..dba1221f5 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -503,7 +503,7 @@ public class TileEntityCompactLauncher extends TileEntity implements ISidedInven } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if (type.name().equals(tanks[1].getTankType().name())) @@ -513,13 +513,13 @@ public class TileEntityCompactLauncher extends TileEntity implements ISidedInven } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(fill); else if (type.name().equals(tanks[1].getTankType().name())) @@ -527,20 +527,11 @@ public class TileEntityCompactLauncher extends TileEntity implements ISidedInven } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } - @Override public int getFluidFill(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 168d01a83..49a7f9722 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -482,7 +482,7 @@ public class TileEntityLaunchTable extends TileEntity implements ISidedInventory } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if (type.name().equals(tanks[1].getTankType().name())) @@ -492,13 +492,13 @@ public class TileEntityLaunchTable extends TileEntity implements ISidedInventory } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(fill); else if (type.name().equals(tanks[1].getTankType().name())) @@ -506,20 +506,11 @@ public class TileEntityLaunchTable extends TileEntity implements ISidedInventory } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } - @Override public int getFluidFill(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java index e7ec37f9b..72d7f539e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java @@ -469,7 +469,7 @@ public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IF } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if(type.name().equals(tanks[1].getTankType().name())) @@ -483,7 +483,7 @@ public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IF } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -509,13 +509,13 @@ public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IF } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 4 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 4 && tanks[index] != null) tanks[index].setTankType(type); } @@ -531,15 +531,4 @@ public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IF { return 65536.0D; } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - list.add(tanks[2]); - list.add(tanks[3]); - - return list; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java index 587990625..7f8175fff 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java @@ -365,7 +365,7 @@ public class TileEntityAMSEmitter extends TileEntity implements ISidedInventory, } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } @@ -379,7 +379,7 @@ public class TileEntityAMSEmitter extends TileEntity implements ISidedInventory, } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tank.getTankType().name())) return tank.getMaxFill(); else @@ -387,12 +387,12 @@ public class TileEntityAMSEmitter extends TileEntity implements ISidedInventory, } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @@ -407,12 +407,4 @@ public class TileEntityAMSEmitter extends TileEntity implements ISidedInventory, { return 65536.0D; } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java index 41b39bb8c..eed90c948 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java @@ -379,7 +379,7 @@ public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } @@ -393,7 +393,7 @@ public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tank.getTankType().name())) return tank.getMaxFill(); else @@ -401,12 +401,12 @@ public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @@ -421,13 +421,4 @@ public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, { return 65536.0D; } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } - } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 204568e19..999311465 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -166,7 +166,7 @@ public class TileEntityChungus extends TileEntity implements IFluidAcceptor, IFl } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -184,7 +184,7 @@ public class TileEntityChungus extends TileEntity implements IFluidAcceptor, IFl } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); @@ -192,25 +192,16 @@ public class TileEntityChungus extends TileEntity implements IFluidAcceptor, IFl } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } @Override public List getFluidList(FluidType type) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index c9803d48c..0315a6085 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -102,7 +102,7 @@ public class TileEntityCondenser extends TileEntity implements IFluidAcceptor, I } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -120,7 +120,7 @@ public class TileEntityCondenser extends TileEntity implements IFluidAcceptor, I } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); @@ -128,25 +128,16 @@ public class TileEntityCondenser extends TileEntity implements IFluidAcceptor, I } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } @Override public List getFluidList(FluidType type) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 526f7317f..ddf8d847d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -187,7 +187,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } @@ -201,7 +201,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tank.getTankType().name())) return tank.getMaxFill(); else @@ -209,23 +209,15 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } - @Override public void setPower(long i) { this.power = i; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index cd7a903ff..3d62a7689 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -103,7 +103,7 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if (type.name().equals(tanks[1].getTankType().name())) @@ -113,7 +113,7 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if (type.name().equals(tanks[1].getTankType().name())) @@ -131,25 +131,16 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index cc69ce342..624da12fa 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -91,7 +91,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } @@ -105,7 +105,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tank.getTankType().name())) return tank.getMaxFill(); else @@ -113,23 +113,15 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } - @Override public void addEnergy(World world, int x, int y, int z, long energy, ForgeDirection dir) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java index 9be6edf80..d27bf6436 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java @@ -134,7 +134,7 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -152,7 +152,7 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); @@ -160,26 +160,17 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } - @Override public List getFluidList(FluidType type) { return list; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index b4a45dd98..f3f564292 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -5,31 +5,23 @@ 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; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; 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 +53,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 +76,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,17 +93,15 @@ 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 GAMMA: HbmLivingProps.incrementRadiation(entity, 25); break; - case DRX: HbmLivingProps.incrementDigamma(entity, 0.1F); break; + case UV: entity.setFire(10); break; + case GAMMA: ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, 25); break; + case DRX: ContaminationUtil.applyDigammaData(entity, 0.1F); break; } } 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; @@ -175,8 +165,6 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser data.setBoolean("valid", missingValidSilex); data.setInteger("distance", distance); this.networkPack(data, 250); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java index 949fc1065..99f451ef4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java @@ -386,19 +386,19 @@ public class TileEntityFWatzCore extends TileEntity implements ISidedInventory, } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 3 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 3 && tanks[index] != null) tanks[index].setTankType(type); } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[1].getTankType().name())) tanks[1].setFill(i); else if(type.name().equals(tanks[2].getTankType().name())) @@ -416,7 +416,7 @@ public class TileEntityFWatzCore extends TileEntity implements ISidedInventory, } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[1].getTankType().name())) return tanks[1].getMaxFill(); else if(type.name().equals(tanks[2].getTankType().name())) @@ -424,14 +424,4 @@ public class TileEntityFWatzCore extends TileEntity implements ISidedInventory, else return 0; } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - list.add(tanks[2]); - - return list; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFusionMultiblock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFusionMultiblock.java index 663d3c497..7e9a0b438 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFusionMultiblock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFusionMultiblock.java @@ -1197,19 +1197,19 @@ public class TileEntityFusionMultiblock extends TileEntity implements ISidedInve } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 3 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 3 && tanks[index] != null) tanks[index].setTankType(type); } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -1231,7 +1231,7 @@ public class TileEntityFusionMultiblock extends TileEntity implements ISidedInve } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if(type.name().equals(tanks[1].getTankType().name())) @@ -1241,15 +1241,4 @@ public class TileEntityFusionMultiblock extends TileEntity implements ISidedInve else return 0; } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - list.add(tanks[2]); - - return list; - } - } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 879af660c..53520b926 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -308,7 +308,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); @@ -317,7 +317,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if (type.name().equals(tanks[1].getTankType().name())) @@ -327,7 +327,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); @@ -335,16 +335,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser plasma.setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - list.add(plasma); - - return list; - } - @Override public int getFluidFill(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) @@ -388,7 +378,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if (type.name().equals(tanks[1].getTankType().name())) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java index 9565a7c39..e02cc8bfb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java @@ -350,7 +350,7 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -368,7 +368,7 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); @@ -376,25 +376,16 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } @Override public List getFluidList(FluidType type) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java index 2465d1cc1..0cfc3f548 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java @@ -352,7 +352,7 @@ public class TileEntityMachineBoilerElectric extends TileEntity implements ISide } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -370,7 +370,7 @@ public class TileEntityMachineBoilerElectric extends TileEntity implements ISide } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); @@ -378,25 +378,16 @@ public class TileEntityMachineBoilerElectric extends TileEntity implements ISide } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } @Override public List getFluidList(FluidType type) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java index c9488e98b..39c5379a5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java @@ -335,17 +335,17 @@ public class TileEntityMachineCMBFactory extends TileEntity implements ISidedInv } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; } @@ -355,16 +355,8 @@ public class TileEntityMachineCMBFactory extends TileEntity implements ISidedInv } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java deleted file mode 100644 index 71e3e5bd6..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ /dev/null @@ -1,1030 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.interfaces.Spaghetti; -import com.hbm.inventory.FluidStack; -import com.hbm.inventory.FluidTank; -import com.hbm.inventory.UpgradeManager; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.recipes.MachineRecipes; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemChemistryTemplate; -import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxParticlePacket; -import com.hbm.packet.LoopedSoundPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEChemplantPacket; -import com.hbm.tileentity.machine.storage.TileEntityCrateIron; -import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; -import com.hbm.util.ItemStackUtil; - -import api.hbm.energy.IBatteryItem; -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.inventory.IInventory; -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.tileentity.TileEntityChest; -import net.minecraft.tileentity.TileEntityHopper; -import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.oredict.OreDictionary; - -public class TileEntityMachineChemplant extends TileEntity implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource { - - private ItemStack slots[]; - - public long power; - public static final long maxPower = 100000; - public int progress; - public int maxProgress = 100; - public boolean isProgressing; - int age = 0; - int consumption = 100; - int speed = 100; - public FluidTank[] tanks; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); - - Random rand = new Random(); - - private String customName; - - public TileEntityMachineChemplant() { - slots = new ItemStack[21]; - tanks = new FluidTank[4]; - tanks[0] = new FluidTank(Fluids.NONE, 24000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 24000, 1); - tanks[2] = new FluidTank(Fluids.NONE, 24000, 2); - tanks[3] = new FluidTank(Fluids.NONE, 24000, 3); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.chemplant"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - this.power = nbt.getLong("powerTime"); - slots = new ItemStack[getSizeInventory()]; - - tanks[0].readFromNBT(nbt, "input1"); - tanks[1].readFromNBT(nbt, "input2"); - tanks[2].readFromNBT(nbt, "output1"); - tanks[3].readFromNBT(nbt, "output2"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - NBTTagList list = new NBTTagList(); - - tanks[0].writeToNBT(nbt, "input1"); - tanks[1].writeToNBT(nbt, "input2"); - tanks[2].writeToNBT(nbt, "output1"); - tanks[3].writeToNBT(nbt, "output2"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return new int[] { 0 }; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getProgressScaled(int i) { - return (progress * i) / maxProgress; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - - this.updateConnections(); - - this.consumption = 100; - this.speed = 100; - - UpgradeManager.eval(slots, 1, 3); - - int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); - - speed -= speedLevel * 25; - consumption += speedLevel * 300; - speed += powerLevel * 5; - consumption -= powerLevel * 30; - speed /= (overLevel + 1); - consumption *= (overLevel + 1); - - isProgressing = false; - - age++; - if(age >= 20) - { - age = 0; - } - - if(age == 9 || age == 19) { - fillFluidInit(tanks[2].getTankType()); - fillFluidInit(tanks[3].getTankType()); - } - - setContainers(); - - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - tanks[0].loadTank(17, 19, slots); - tanks[1].loadTank(18, 20, slots); - - if(slots[17] != null && !(slots[17].getItem() == ModItems.fluid_barrel_infinite || slots[17].getItem() == ModItems.inf_water || slots[17].getItem() == ModItems.inf_water_mk2)) - tanks[0].unloadTank(17, 19, slots); - if(slots[18] != null && !(slots[18].getItem() == ModItems.fluid_barrel_infinite || slots[18].getItem() == ModItems.inf_water || slots[18].getItem() == ModItems.inf_water_mk2)) - tanks[1].unloadTank(18, 20, slots); - - tanks[2].unloadTank(9, 11, slots); - tanks[3].unloadTank(10, 12, slots); - - for(int i = 0; i < 4; i++) { - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - - FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]); - FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]); - - if((MachineRecipes.getChemInputFromTempate(slots[4]) != null || !Library.isArrayEmpty(inputs)) && - (MachineRecipes.getChemOutputFromTempate(slots[4]) != null || !Library.isArrayEmpty(outputs))) { - this.maxProgress = (ItemChemistryTemplate.getProcessTime(slots[4]) * speed) / 100; - - if(power >= consumption && removeItems(MachineRecipes.getChemInputFromTempate(slots[4]), cloneItemStackProper(slots)) && hasFluidsStored(inputs)) { - - if(hasSpaceForItems(MachineRecipes.getChemOutputFromTempate(slots[4])) && hasSpaceForFluids(outputs)) { - progress++; - isProgressing = true; - - if(progress >= maxProgress) { - progress = 0; - - addItems(MachineRecipes.getChemOutputFromTempate(slots[4])); - addFluids(outputs); - - removeItems(MachineRecipes.getChemInputFromTempate(slots[4]), slots); - removeFluids(inputs); - - if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_machined) - slots[0] = new ItemStack(ModItems.meteorite_sword_treated); - } - - power -= consumption; - } - } else - progress = 0; - } else - progress = 0; - - int meta = worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord); - TileEntity te1 = null; - TileEntity te2 = null; - - - if(meta == 2) { - te1 = worldObj.getTileEntity(xCoord - 2, yCoord, zCoord); - te2 = worldObj.getTileEntity(xCoord + 3, yCoord, zCoord - 1); - } - if(meta == 3) { - te1 = worldObj.getTileEntity(xCoord + 2, yCoord, zCoord); - te2 = worldObj.getTileEntity(xCoord - 3, yCoord, zCoord + 1); - } - if(meta == 4) { - te1 = worldObj.getTileEntity(xCoord, yCoord, zCoord + 2); - te2 = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord - 3); - } - if(meta == 5) { - te1 = worldObj.getTileEntity(xCoord, yCoord, zCoord - 2); - te2 = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord + 3); - } - - tryExchangeTemplates(te1, te2); - - //OUTPUT - if(te1 instanceof TileEntityChest) { - TileEntityChest chest = (TileEntityChest)te1; - - for(int i = 5; i < 9; i++) - tryFillContainer(chest, i); - } - - if(te1 instanceof TileEntityHopper) { - TileEntityHopper hopper = (TileEntityHopper)te1; - - for(int i = 5; i < 9; i++) - tryFillContainer(hopper, i); - } - - if(te1 instanceof TileEntityCrateIron) { - TileEntityCrateIron crate = (TileEntityCrateIron)te1; - - for(int i = 5; i < 9; i++) - tryFillContainer(crate, i); - } - - if(te1 instanceof TileEntityCrateSteel) { - TileEntityCrateSteel crate = (TileEntityCrateSteel)te1; - - for(int i = 5; i < 9; i++) - tryFillContainer(crate, i); - } - - //INPUT - if(te2 instanceof TileEntityChest) { - TileEntityChest chest = (TileEntityChest)te2; - - for(int i = 0; i < chest.getSizeInventory(); i++) - if(tryFillAssembler(chest, i)) - break; - } - - if(te2 instanceof TileEntityHopper) { - TileEntityHopper hopper = (TileEntityHopper)te2; - - for(int i = 0; i < hopper.getSizeInventory(); i++) - if(tryFillAssembler(hopper, i)) - break; - } - - if(te2 instanceof TileEntityCrateIron) { - TileEntityCrateIron hopper = (TileEntityCrateIron)te2; - - for(int i = 0; i < hopper.getSizeInventory(); i++) - if(tryFillAssembler(hopper, i)) - break; - } - - if(te2 instanceof TileEntityCrateSteel) { - TileEntityCrateSteel hopper = (TileEntityCrateSteel)te2; - - for(int i = 0; i < hopper.getSizeInventory(); i++) - if(tryFillAssembler(hopper, i)) - break; - } - - if(isProgressing) { - if(meta == 2) { - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(xCoord + 0.375, yCoord + 3, zCoord - 0.625, 1), - new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.375, yCoord + 3, zCoord - 0.625, 50)); - } - if(meta == 3) { - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(xCoord + 0.625, yCoord + 3, zCoord + 1.625, 1), - new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.625, yCoord + 3, zCoord + 1.625, 50)); - } - if(meta == 4) { - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(xCoord - 0.625, yCoord + 3, zCoord + 0.625, 1), - new TargetPoint(worldObj.provider.dimensionId, xCoord - 0.625, yCoord + 3, zCoord + 0.625, 50)); - } - if(meta == 5) { - 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)); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - - } - - private void updateConnections() { - this.getBlockMetadata(); - - if(this.blockMetadata == 5) { - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - - } else if(this.blockMetadata == 3) { - this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3, Library.POS_Z); - - } else if(this.blockMetadata == 4) { - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); - - } else if(this.blockMetadata == 2) { - this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); - } - } - - public boolean tryExchangeTemplates(TileEntity te1, TileEntity te2) { - //validateTe sees if it's a valid inventory tile entity - boolean te1Valid = validateTe(te1); - boolean te2Valid = validateTe(te2); - - if(te1Valid && te2Valid){ - IInventory iTe1 = (IInventory)te1; - IInventory iTe2 = (IInventory)te2; - boolean openSlot = false; - boolean existingTemplate = false; - boolean filledContainer = false; - //Check if there's an existing template and an open slot - for(int i = 0; i < iTe1.getSizeInventory(); i++){ - if(iTe1.getStackInSlot(i) == null){ - openSlot = true; - - } - - } - if(this.slots[4] != null){ - existingTemplate = true; - } - //Check if there's a template in input - for(int i = 0; i < iTe2.getSizeInventory(); i++){ - if(iTe2.getStackInSlot(i) != null && iTe2.getStackInSlot(i).getItem() instanceof ItemChemistryTemplate){ - if(openSlot && existingTemplate){ - filledContainer = tryFillContainer(iTe1, 4); - - } - if(filledContainer){ - ItemStack copy = iTe2.getStackInSlot(i).copy(); - iTe2.setInventorySlotContents(i, null); - this.slots[4] = copy; - } - } - - } - - - } - return false; - - } - - private boolean validateTe(TileEntity te) { - if(te != null && te instanceof TileEntityChest) { - return true; - - } - - if(te != null && te instanceof TileEntityHopper) { - return true; - } - - if(te != null && te instanceof TileEntityCrateIron) { - return true; - } - - if(te != null && te instanceof TileEntityCrateSteel) { - return true; - } - return false; - } - - private void setContainers() { - - 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]); - - tanks[0].setTankType(inputs[0] == null ? Fluids.NONE : inputs[0].type); - 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) { - if(Library.isArrayEmpty(fluids)) - return true; - - if((fluids[0] == null || fluids[0] != null && fluids[0].fill <= tanks[0].getFill()) && - (fluids[1] == null || fluids[1] != null && fluids[1].fill <= tanks[1].getFill())) - return true; - - return false; - } - - public boolean hasSpaceForFluids(FluidStack[] fluids) { - if(Library.isArrayEmpty(fluids)) - return true; - - if((fluids[0] == null || fluids[0] != null && tanks[2].getFill() + fluids[0].fill <= tanks[2].getMaxFill()) && - (fluids[1] == null || fluids[1] != null && tanks[3].getFill() + fluids[1].fill <= tanks[3].getMaxFill())) - return true; - - return false; - } - - public void removeFluids(FluidStack[] fluids) { - if(Library.isArrayEmpty(fluids)) - return; - - if(fluids[0] != null) - tanks[0].setFill(tanks[0].getFill() - fluids[0].fill); - if(fluids[1] != null) - tanks[1].setFill(tanks[1].getFill() - fluids[1].fill); - } - - @Spaghetti("what the fuck am i looking at") - public boolean hasSpaceForItems(ItemStack[] stacks) { - if(stacks == null) - return true; - if(stacks != null && Library.isArrayEmpty(stacks)) - return true; - - ItemStack sta0 = ItemStackUtil.carefulCopy(slots[5]); - if(sta0 != null) - sta0.stackSize = 1; - ItemStack sta1 = ItemStackUtil.carefulCopy(stacks[0]); - if(sta1 != null) - sta1.stackSize = 1; - ItemStack sta2 = ItemStackUtil.carefulCopy(slots[6]); - if(sta2 != null) - sta2.stackSize = 1; - ItemStack sta3 = ItemStackUtil.carefulCopy(stacks[1]); - if(sta3 != null) - sta3.stackSize = 1; - ItemStack sta4 = ItemStackUtil.carefulCopy(slots[7]); - if(sta4 != null) - sta4.stackSize = 1; - ItemStack sta5 = ItemStackUtil.carefulCopy(stacks[2]); - if(sta5 != null) - sta5.stackSize = 1; - ItemStack sta6 = ItemStackUtil.carefulCopy(slots[8]); - if(sta6 != null) - sta6.stackSize = 1; - ItemStack sta7 = ItemStackUtil.carefulCopy(stacks[3]); - if(sta7 != null) - sta7.stackSize = 1; - - if((slots[5] == null || stacks[0] == null || (stacks[0] != null && isItemAcceptible(sta0, sta1) && slots[5].stackSize + stacks[0].stackSize <= slots[5].getMaxStackSize())) && - (slots[6] == null || stacks[1] == null || (stacks[1] != null && isItemAcceptible(sta2, sta3) && slots[6].stackSize + stacks[1].stackSize <= slots[6].getMaxStackSize())) && - (slots[7] == null || stacks[2] == null || (stacks[2] != null && isItemAcceptible(sta4, sta5) && slots[7].stackSize + stacks[2].stackSize <= slots[7].getMaxStackSize())) && - (slots[8] == null || stacks[3] == null || (stacks[3] != null && isItemAcceptible(sta6, sta7) && slots[8].stackSize + stacks[3].stackSize <= slots[8].getMaxStackSize()))) - return true; - - return false; - } - - public void addItems(ItemStack[] stacks) { - if(slots[5] == null && stacks[0] != null) - slots[5] = stacks[0].copy(); - else if (slots[5] != null && stacks[0] != null) - slots[5].stackSize += stacks[0].stackSize; - - if(slots[6] == null && stacks[1] != null) - slots[6] = stacks[1].copy(); - else if (slots[6] != null && stacks[1] != null) - slots[6].stackSize += stacks[1].stackSize; - - if(slots[7] == null && stacks[2] != null) - slots[7] = stacks[2].copy(); - else if (slots[7] != null && stacks[2] != null) - slots[7].stackSize += stacks[2].stackSize; - - if(slots[8] == null && stacks[3] != null) - slots[8] = stacks[3].copy(); - else if (slots[8] != null && stacks[3] != null) - slots[8].stackSize += stacks[3].stackSize; - } - - public void addFluids(FluidStack[] stacks) { - if(stacks[0] != null) - tanks[2].setFill(tanks[2].getFill() + stacks[0].fill); - if(stacks[1] != null) - tanks[3].setFill(tanks[3].getFill() + stacks[1].fill); - } - - //I can't believe that worked. - public ItemStack[] cloneItemStackProper(ItemStack[] array) { - ItemStack[] stack = new ItemStack[array.length]; - - for(int i = 0; i < array.length; i++) - if(array[i] != null) - stack[i] = array[i].copy(); - else - stack[i] = null; - - return stack; - } - - //Unloads output into chests - public boolean tryFillContainer(IInventory inventory, int slot) { - - int size = inventory.getSizeInventory(); - - for(int i = 0; i < size; i++) { - if(inventory.getStackInSlot(i) != null) { - - if(slots[slot] == null) - return false; - - ItemStack sta1 = inventory.getStackInSlot(i).copy(); - ItemStack sta2 = slots[slot].copy(); - if(sta1 != null && sta2 != null) { - sta1.stackSize = 1; - sta2.stackSize = 1; - - if(ItemStack.areItemStacksEqual(sta1, sta2) && ItemStack.areItemStackTagsEqual(sta1, sta2) && inventory.getStackInSlot(i).stackSize < inventory.getStackInSlot(i).getMaxStackSize()) { - slots[slot].stackSize--; - - if(slots[slot].stackSize <= 0) - slots[slot] = null; - - ItemStack sta3 = inventory.getStackInSlot(i).copy(); - sta3.stackSize++; - inventory.setInventorySlotContents(i, sta3); - - return true; - } - } - } - } - for(int i = 0; i < size; i++) { - - if(slots[slot] == null) - return false; - - ItemStack sta2 = slots[slot].copy(); - if(inventory.getStackInSlot(i) == null && sta2 != null) { - sta2.stackSize = 1; - slots[slot].stackSize--; - - if(slots[slot].stackSize <= 0) - slots[slot] = null; - - inventory.setInventorySlotContents(i, sta2); - - return true; - } - } - - return false; - } - - //Loads assembler's input queue from chests - public boolean tryFillAssembler(IInventory inventory, int slot) { - - FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]); - FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]); - - if(!((MachineRecipes.getChemInputFromTempate(slots[4]) != null || !Library.isArrayEmpty(inputs)) && - (MachineRecipes.getChemOutputFromTempate(slots[4]) != null || !Library.isArrayEmpty(outputs)))) - return false; - else { - List list = copyItemStackList(MachineRecipes.getChemInputFromTempate(slots[4])); - if(list == null || list.isEmpty()) - return false; - - for(int i = 0; i < list.size(); i++) - list.get(i).stackSize = 1; - - - if(inventory.getStackInSlot(slot) == null) - return false; - - ItemStack stack = inventory.getStackInSlot(slot).copy(); - stack.stackSize = 1; - - boolean flag = false; - - for(int i = 0; i < list.size(); i++) - if(ItemStack.areItemStacksEqual(stack, list.get(i)) && ItemStack.areItemStackTagsEqual(stack, list.get(i))) - flag = true; - - if(!flag) - return false; - - } - - for(int i = 13; i < 17; i++) { - - if(slots[i] != null) { - - ItemStack sta1 = inventory.getStackInSlot(slot).copy(); - ItemStack sta2 = slots[i].copy(); - if(sta1 != null && sta2 != null) { - sta1.stackSize = 1; - sta2.stackSize = 1; - - if(isItemAcceptible(sta1, sta2) && slots[i].stackSize < slots[i].getMaxStackSize()) { - ItemStack sta3 = inventory.getStackInSlot(slot).copy(); - sta3.stackSize--; - if(sta3.stackSize <= 0) - sta3 = null; - inventory.setInventorySlotContents(slot, sta3); - - slots[i].stackSize++; - return true; - } - } - } - } - - for(int i = 13; i < 17; i++) { - - ItemStack sta2 = inventory.getStackInSlot(slot).copy(); - if(slots[i] == null && sta2 != null) { - sta2.stackSize = 1; - slots[i] = sta2.copy(); - - ItemStack sta3 = inventory.getStackInSlot(slot).copy(); - sta3.stackSize--; - if(sta3.stackSize <= 0) - sta3 = null; - inventory.setInventorySlotContents(slot, sta3); - - return true; - } - } - - return false; - } - - //boolean true: remove items, boolean false: simulation mode - public boolean removeItems(List stack, ItemStack[] array) { - - if(stack == null || stack.isEmpty()) - return true; - - for(int i = 0; i < stack.size(); i++) { - for(int j = 0; j < stack.get(i).stackSize; j++) { - ItemStack sta = stack.get(i).copy(); - sta.stackSize = 1; - - if(!canRemoveItemFromArray(sta, array)) - return false; - } - } - - return true; - - } - - public boolean canRemoveItemFromArray(ItemStack stack, ItemStack[] array) { - - ItemStack st = stack.copy(); - - if(st == null) - return true; - - for(int i = 13; i < 17; i++) { - - if(array[i] != null) { - ItemStack sta = array[i].copy(); - sta.stackSize = 1; - - if(sta != null && isItemAcceptible(sta, st) && array[i].stackSize > 0) { - array[i].stackSize--; - - if(array[i].stackSize <= 0) - array[i] = null; - - return true; - } - } - } - - return false; - } - - public boolean isItemAcceptible(ItemStack stack1, ItemStack stack2) { - - if(stack1 != null && stack2 != null) { - if(ItemStack.areItemStacksEqual(stack1, stack2)) - return true; - - int[] ids1 = OreDictionary.getOreIDs(stack1); - int[] ids2 = OreDictionary.getOreIDs(stack2); - - if(ids1 != null && ids2 != null && ids1.length > 0 && ids2.length > 0) { - for(int i = 0; i < ids1.length; i++) - for(int j = 0; j < ids2.length; j++) - if(ids1[i] == ids2[j]) - return true; - } - } - - return false; - } - - public static List copyItemStackList(List list){ - List newList = new ArrayList(); - if(list == null || list.isEmpty()) - return newList; - for(ItemStack stack : list){ - newList.add(stack.copy()); - } - return newList; - } - - @Override - public void setPower(long i) { - power = i; - - } - - @Override - public long getPower() { - return power; - - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void setFillstate(int fill, int index) { - if(index < 4 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setType(FluidType type, int index) { - if(index < 4 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - else if(type.name().equals(tanks[3].getTankType().name())) - tanks[3].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else if(type.name().equals(tanks[3].getTankType().name())) - return tanks[3].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - int meta = worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord); - if(meta == 5) { - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord + 1, getTact(), type); - } - - if(meta == 3) { - fillFluid(this.xCoord, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 3, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 3, getTact(), type); - } - - if(meta == 2) { - fillFluid(this.xCoord, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 3, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 3, getTact(), type); - } - - if(meta == 4) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord - 1, getTact(), type); - } - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public List getFluidList(FluidType type) { - if(type.name().equals(tanks[2].getTankType().name())) - return list1; - if(type.name().equals(tanks[3].getTankType().name())) - return list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type.name().equals(tanks[2].getTankType().name())) - list1.clear(); - if(type.name().equals(tanks[3].getTankType().name())) - list2.clear(); - } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - list.add(tanks[2]); - list.add(tanks[3]); - - return list; - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantNew.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantNew.java new file mode 100644 index 000000000..794ef4395 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantNew.java @@ -0,0 +1,449 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidSource; +import com.hbm.inventory.FluidTank; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.ChemplantRecipes; +import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.InventoryUtil; + +import api.hbm.energy.IEnergyUser; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineChemplantNew extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor { + + public long power; + public static final long maxPower = 100000; + public int progress; + public int maxProgress = 100; + public boolean isProgressing; + + public FluidTank[] tanks; + + //upgraded stats + int consumption = 100; + int speed = 100; + + public TileEntityMachineChemplantNew() { + super(21); + /* + * 0 Battery + * 1-3 Upgrades + * 4 Schematic + * 5-8 Output + * 9-10 FOut In + * 11-12 FOut Out + * 13-16 Input + * 17-18 FIn In + * 19-20 FIn Out + */ + + tanks = new FluidTank[4]; + for(int i = 0; i < 4; i++) { + tanks[i] = new FluidTank(Fluids.NONE, 24_000, i); + } + } + + @Override + public String getName() { + return "container.chemplant"; + } + + @Override + public void updateEntity() { + + 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); + if(!tanks[1].loadTank(18, 20, slots)) tanks[1].unloadTank(18, 20, slots); + + tanks[2].unloadTank(9, 11, slots); + tanks[3].unloadTank(10, 12, slots); + + loadItems(); + unloadItems(); + + if(worldObj.getTotalWorldTime() % 10 == 0) { + this.fillFluidInit(tanks[2].getTankType()); + this.fillFluidInit(tanks[3].getTankType()); + } + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.updateConnections(); + } + + UpgradeManager.eval(slots, 1, 3); + + int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); + + this.speed -= speedLevel * 25; + this.consumption += speedLevel * 300; + this.speed += powerLevel * 5; + this.consumption -= powerLevel * 30; + this.speed /= (overLevel + 1); + this.consumption *= (overLevel + 1); + + if(!canProcess()) { + this.progress = 0; + } else { + isProgressing = true; + process(); + } + + NBTTagCompound data = new NBTTagCompound(); + 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); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + 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); + } + } + + private void updateConnections() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + this.trySubscribe(worldObj, xCoord + rot.offsetX * 3, yCoord, zCoord + rot.offsetZ * 3, rot); + this.trySubscribe(worldObj, xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()); + this.trySubscribe(worldObj, xCoord + rot.offsetX * 3 + dir.offsetX, yCoord, zCoord + rot.offsetZ * 3 + dir.offsetZ, rot); + this.trySubscribe(worldObj, xCoord - rot.offsetX * 2 + dir.offsetX, yCoord, zCoord - rot.offsetZ * 2 + dir.offsetZ, rot.getOpposite()); + } + + private boolean canProcess() { + + if(slots[4] == null || slots[4].getItem() != ModItems.chemistry_template) + return false; + + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(slots[4].getItemDamage()); + + if(recipe == null) + return false; + + setupTanks(recipe); + + if(this.power < this.consumption) return false; + if(!hasRequiredFluids(recipe)) return false; + if(!hasSpaceForFluids(recipe)) return false; + if(!hasRequiredItems(recipe)) return false; + if(!hasSpaceForItems(recipe)) return false; + + return true; + } + + private void setupTanks(ChemRecipe recipe) { + if(recipe.inputFluids.length > 0) tanks[0].setTankType(recipe.inputFluids[0].type); + if(recipe.inputFluids.length > 1) tanks[1].setTankType(recipe.inputFluids[1].type); + if(recipe.outputFluids.length > 0) tanks[2].setTankType(recipe.outputFluids[0].type); + if(recipe.outputFluids.length > 1) tanks[3].setTankType(recipe.outputFluids[1].type); + } + + private boolean hasRequiredFluids(ChemRecipe recipe) { + if(recipe.inputFluids.length > 0 && tanks[0].getFill() < recipe.inputFluids[0].fill) return false; + if(recipe.inputFluids.length > 1 && tanks[1].getFill() < recipe.inputFluids[1].fill) return false; + return true; + } + + private boolean hasSpaceForFluids(ChemRecipe recipe) { + if(recipe.outputFluids.length > 0 && tanks[2].getFill() + recipe.outputFluids[0].fill > tanks[2].getMaxFill()) return false; + if(recipe.outputFluids.length > 1 && tanks[3].getFill() + recipe.outputFluids[1].fill > tanks[3].getMaxFill()) return false; + return true; + } + + private boolean hasRequiredItems(ChemRecipe recipe) { + return InventoryUtil.doesArrayHaveIngredients(slots, 13, 16, recipe.inputs); + } + + private boolean hasSpaceForItems(ChemRecipe recipe) { + return InventoryUtil.doesArrayHaveSpace(slots, 5, 8, recipe.outputs); + } + + private void process() { + + this.power -= this.consumption; + this.progress++; + + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(slots[4].getItemDamage()); + + this.maxProgress = recipe.getDuration() * this.speed / 100; + + if(this.progress >= this.maxProgress) { + consumeFluids(recipe); + produceFluids(recipe); + consumeItems(recipe); + produceItems(recipe); + } + } + + private void consumeFluids(ChemRecipe recipe) { + if(recipe.inputFluids.length > 0) tanks[0].setFill(tanks[0].getFill() - recipe.inputFluids[0].fill); + if(recipe.inputFluids.length > 1) tanks[1].setFill(tanks[1].getFill() - recipe.inputFluids[1].fill); + } + + private void produceFluids(ChemRecipe recipe) { + if(recipe.outputFluids.length > 0) tanks[2].setFill(tanks[2].getFill() + recipe.outputFluids[0].fill); + if(recipe.outputFluids.length > 1) tanks[3].setFill(tanks[3].getFill() + recipe.outputFluids[1].fill); + } + + private void consumeItems(ChemRecipe recipe) { + + for(AStack in : recipe.inputs) { + InventoryUtil.tryConsumeAStack(slots, 13, 16, in); + } + } + + private void produceItems(ChemRecipe recipe) { + + for(ItemStack out : recipe.outputs) { + InventoryUtil.tryAddItemToInventory(slots, 5, 8, out); + } + } + + //TODO: move this into a util class + private void loadItems() { + + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(slots[4].getItemDamage()); + + if(recipe != null) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + + int x = xCoord - dir.offsetX * 2; + int z = zCoord - dir.offsetZ * 2; + + TileEntity te = worldObj.getTileEntity(x, yCoord, z); + + if(te instanceof IInventory) { + + IInventory inv = (IInventory) te; + + for(AStack ingredient : recipe.inputs) { + + if(!InventoryUtil.doesArrayHaveIngredients(slots, 13, 16, ingredient)) { + + for(int i = 0; i < inv.getSizeInventory(); i++) { + + ItemStack stack = inv.getStackInSlot(i); + if(ingredient.matchesRecipe(stack, true)) { + + for(int j = 13; j <= 16; j++) { + + if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { + inv.decrStackSize(i, 1); + slots[j].stackSize++; + return; + } + } + + for(int j = 13; j <= 16; j++) { + + if(slots[j] == null) { + slots[j] = stack.copy(); + slots[j].stackSize = 1; + inv.decrStackSize(i, 1); + return; + } + } + } + } + } + } + } + } + } + + private void unloadItems() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + + int x = xCoord - dir.offsetX * 2; + int z = zCoord - dir.offsetZ * 2; + + TileEntity te = worldObj.getTileEntity(x, yCoord, z); + + if(te instanceof IInventory) { + + IInventory inv = (IInventory) te; + + for(int i = 5; i <= 8; i++) { + + ItemStack out = slots[i]; + + if(out != null) { + + for(int j = 0; j < inv.getSizeInventory(); j++) { + ItemStack target = inv.getStackInSlot(i); + + if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize()) { + this.decrStackSize(i, 1); + target.stackSize++; + return; + } + } + + for(int j = 0; j < inv.getSizeInventory(); j++) { + + if(inv.getStackInSlot(j) == null) { + inv.setInventorySlotContents(j, out.copy()); + inv.getStackInSlot(j).stackSize = 1; + this.decrStackSize(i, 1); + return; + } + } + } + } + } + } + + @Override + public long getPower() { + return this.power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return this.maxPower; + } + + @Override + public void setFillForSync(int fill, int index) { + if(index >= 0 && index < tanks.length) tanks[index].setFill(fill); + } + + @Override + public void setFillForTransfer(int fill, FluidType type) { + + for(FluidTank tank : tanks) { + if(tank.getTankType() == type) { + tank.setFill(fill); + return; + } + } + } + + @Override + public void setTypeForSync(FluidType type, int index) { + if(index >= 0 && index < tanks.length) tanks[index].setTankType(type); + } + + @Override + public int getFluidFill(FluidType type) { + + for(FluidTank tank : tanks) { + if(tank.getTankType() == type) { + return tank.getFill(); + } + } + + return 0; + } + + @Override + public int getMaxFillForReceive(FluidType type) { + + for(FluidTank tank : tanks) { + if(tank.getTankType() == type) { + return tank.getMaxFill(); + } + } + + return 0; + } + + @Override + public void fillFluidInit(FluidType type) { + + /* + * #### + * X####X + * X##O#X + * #### + */ + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + fillFluid(xCoord + rot.offsetX * 3, yCoord, zCoord + rot.offsetZ * 3, this.getTact(), type); + fillFluid(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, this.getTact(), type); + fillFluid(xCoord + rot.offsetX * 3 + dir.offsetX, yCoord, zCoord + rot.offsetZ * 3 + dir.offsetZ, this.getTact(), type); + fillFluid(xCoord - rot.offsetX * 2 + dir.offsetX, yCoord, zCoord - rot.offsetZ * 2 + dir.offsetZ, this.getTact(), type); + } + + @Override + public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { + Library.transmitFluid(x, y, z, newTact, this, worldObj, type); + } + + @Override + public boolean getTact() { + return worldObj.getTotalWorldTime() % 20 < 10; + } + + List[] lists = new List[] { + new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList() + }; + + @Override + public List getFluidList(FluidType type) { + + for(int i = 0; i < tanks.length; i++) { + if(tanks[i].getTankType() == type) { + return lists[i]; + } + } + + return new ArrayList(); + } + + @Override + public void clearFluidList(FluidType type) { + + for(int i = 0; i < tanks.length; i++) { + if(tanks[i].getTankType() == type) { + lists[i].clear(); + } + } + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index 2d377ba14..29c8b011f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -314,7 +314,7 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } @@ -325,25 +325,17 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index d3d78700f..932d64625 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -263,32 +263,27 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public List getTanks() { - return new ArrayList() {{ add(tank); }}; - } - @Override public int getFluidFill(FluidType type) { return tank.getFill(); } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { return tank.getMaxFill(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 98ece5d5e..12f70845d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -351,7 +351,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index == 0) coolant.setFill(fill); @@ -360,7 +360,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(type == Fluids.COOLANT) coolant.setFill(fill); else if(type == Fluids.AMAT) @@ -368,18 +368,13 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index == 0) coolant.setTankType(type); else if(index == 1) amat.setTankType(type); } - @Override - public List getTanks() { - return Arrays.asList(new FluidTank[] {coolant, amat}); - } - @Override public int getFluidFill(FluidType type) { if(type == Fluids.COOLANT) @@ -425,7 +420,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type == Fluids.COOLANT) return coolant.getMaxFill(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 1317d175d..80c1282cd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -139,8 +139,7 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE public static HashMap fuelEfficiency = new HashMap(); static { - fuelEfficiency.put(FuelGrade.LOW, 0.5D); - fuelEfficiency.put(FuelGrade.MEDIUM, 1.0D); + fuelEfficiency.put(FuelGrade.MEDIUM, 0.9D); fuelEfficiency.put(FuelGrade.HIGH, 1.0D); fuelEfficiency.put(FuelGrade.AERO, 0.1D); } @@ -206,36 +205,28 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; + public int getMaxFillForReceive(FluidType type) { + return type == this.tank.getTankType() ? tank.getMaxFill() : 0; } @Override public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; + return type == this.tank.getTankType() ? tank.getFill() : 0; } @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) + public void setFillForTransfer(int i, FluidType type) { + if(type == tank.getTankType()) tank.setFill(i); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index 205175ae4..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; @@ -315,12 +303,12 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @@ -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; @@ -354,7 +345,7 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; } @@ -364,19 +355,11 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGenerator.java index 88b0cd5d7..328d414d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGenerator.java @@ -520,7 +520,7 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if(type.name().equals(tanks[1].getTankType().name())) @@ -530,7 +530,7 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -548,23 +548,14 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 0c8eea22e..6bd5eb603 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -211,12 +211,12 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tanks[index].setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(type == Fluids.WATER) tanks[0].setFill(fill); @@ -227,15 +227,10 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tanks[index].setTankType(type); } - @Override - public List getTanks() { - return Arrays.asList(tanks); - } - @Override public int getFluidFill(FluidType type) { @@ -247,7 +242,7 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { for(int i = 0; i < 3; i++) if(tanks[i].getTankType() == type) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java index 691096c84..6e7be881c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java @@ -283,19 +283,19 @@ public class TileEntityMachineInserter extends TileEntity implements ISidedInven } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 3 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 3 && tanks[index] != null) tanks[index].setTankType(type); } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -317,7 +317,7 @@ public class TileEntityMachineInserter extends TileEntity implements ISidedInven } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if(type.name().equals(tanks[1].getTankType().name())) @@ -348,14 +348,4 @@ public class TileEntityMachineInserter extends TileEntity implements ISidedInven if(type.name().equals(tanks[2].getTankType().name())) list3.clear(); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - list.add(tanks[2]); - - return list; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index bd5fd5c63..a54233b8b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -170,7 +170,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -188,7 +188,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); @@ -196,25 +196,16 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } @Override public List getFluidList(FluidType type) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index b75e2869d..7bc36bd6f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -600,26 +600,21 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(type == Fluids.OIL) tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public List getTanks() { - return new ArrayList() {{ add(tank); }}; - } - @Override public int getFluidFill(FluidType type) { if(type == Fluids.OIL) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index 9c2632486..8023b5aad 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -203,7 +203,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if (type.name().equals(tanks[1].getTankType().name())) @@ -215,7 +215,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if (type.name().equals(tanks[1].getTankType().name())) @@ -237,7 +237,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); @@ -246,7 +246,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); @@ -254,16 +254,6 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme plasma.setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - list.add(plasma); - - return list; - } - @Override public void setPower(long i) { this.power = i; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index 099f61581..339d338ec 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -250,13 +250,13 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement /* Fluid Methods */ @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 3 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { for(FluidTank tank : tanks) { if(tank.getTankType() == type) { tank.setFill(fill); @@ -265,15 +265,10 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { this.tanks[index].setTankType(type); } - @Override - public List getTanks() { - return Arrays.asList(this.tanks); - } - @Override public int getFluidFill(FluidType type) { for(FluidTank tank : tanks) { @@ -285,7 +280,7 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(tanks[0].getTankType() == type) { return tanks[0].getMaxFill(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java index 0ab6c50ce..7860ef28d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java @@ -785,7 +785,7 @@ public class TileEntityMachineReactorLarge extends TileEntity } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if (type.name().equals(tanks[1].getTankType().name())) @@ -795,7 +795,7 @@ public class TileEntityMachineReactorLarge extends TileEntity } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if (type.name().equals(tanks[1].getTankType().name())) @@ -817,27 +817,17 @@ public class TileEntityMachineReactorLarge extends TileEntity } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if (index < 3 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if (index < 3 && tanks[index] != null) tanks[index].setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - list.add(tanks[2]); - - return list; - } - @Override public List getFluidList(FluidType type) { return list; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index bbc771f52..e44670799 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -326,39 +326,31 @@ public class TileEntityMachineSeleniumEngine extends TileEntity implements ISide } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; + public int getMaxFillForReceive(FluidType type) { + return type == this.tank.getTankType() ? tank.getMaxFill() : 0; } @Override public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; + return type == this.tank.getTankType() ? tank.getFill() : 0; } @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) + public void setFillForTransfer(int i, FluidType type) { + if(type == tank.getTankType()) tank.setFill(i); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } - @Override public boolean canConnect(ForgeDirection dir) { return dir == ForgeDirection.DOWN; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index d442c8996..034410e32 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -288,7 +288,7 @@ public class TileEntityMachineTurbine extends TileEntity implements ISidedInvent } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) @@ -306,7 +306,7 @@ public class TileEntityMachineTurbine extends TileEntity implements ISidedInvent } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); @@ -314,25 +314,16 @@ public class TileEntityMachineTurbine extends TileEntity implements ISidedInvent } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } @Override public List getFluidList(FluidType type) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 2aabf9074..637760876 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -497,28 +497,28 @@ public class TileEntityMachineTurbofan extends TileEntity implements ISidedInven } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; + public int getMaxFillForReceive(FluidType type) { + return type == this.tank.getTankType() ? tank.getMaxFill() : 0; } @Override public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; + return type == this.tank.getTankType() ? tank.getFill() : 0; } @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) + public void setFillForTransfer(int i, FluidType type) { + if(type == tank.getTankType()) tank.setFill(i); } @@ -533,12 +533,4 @@ public class TileEntityMachineTurbofan extends TileEntity implements ISidedInven { return 65536.0D; } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index 9ecc55bfc..d115f9e5c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -407,14 +407,14 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF return false; } - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type == Fluids.SUPERHOTSTEAM) return steam.getMaxFill(); if(type == Fluids.CARBONDIOXIDE) return carbonDioxide.getMaxFill(); if(type == Fluids.WATER) return water.getMaxFill(); return 0; } - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type == Fluids.SUPERHOTSTEAM) steam.setFill(i); if(type == Fluids.CARBONDIOXIDE) carbonDioxide.setFill(i); if(type == Fluids.WATER) water.setFill(i); @@ -427,7 +427,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF return 0; } - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { switch (index) { case 0: steam.setFill(fill); break; @@ -439,7 +439,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } } - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { switch (index) { case 0: steam.setTankType(type); break; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index 4b4ce9600..7cb62da73 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -185,7 +185,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce if(recipe == null) return false; - if(recipe.laserStrength > this.mode.ordinal()) + if(recipe.laserStrength.ordinal() > this.mode.ordinal()) return false; if(currentFill < recipe.fluidConsumed) @@ -194,7 +194,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce if(slots[4] != null) return false; - int progressSpeed = (int) Math.pow(2, this.mode.ordinal() - recipe.laserStrength + 1) / 2; + int progressSpeed = (int) Math.pow(2, this.mode.ordinal() - recipe.laserStrength.ordinal() + 1) / 2; progress += progressSpeed; @@ -291,31 +291,22 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(type == tank.getTankType()) tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public List getTanks() { - return new ArrayList() { - { - add(tank); - } - }; - } - @Override public int getFluidFill(FluidType type) { @@ -326,7 +317,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type == tank.getTankType()) return tank.getMaxFill(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index 8cb38bd56..14d91ec0c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -67,7 +67,7 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index == 0) water.setFill(fill); if(index == 1) @@ -75,7 +75,7 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(type == Fluids.WATER) water.setFill(fill); if(type == Fluids.STEAM) @@ -83,18 +83,13 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index == 0) water.setTankType(type); if(index == 1) steam.setTankType(type); } - @Override - public List getTanks() { - return Arrays.asList(new FluidTank[] {water, steam}); - } - @Override public int getFluidFill(FluidType type) { if(type == Fluids.WATER) @@ -122,7 +117,7 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type == Fluids.WATER) return water.getMaxFill(); if(type == Fluids.STEAM) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index adc9b78f1..17fdddfd7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -357,7 +357,7 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) return tanks[0].getMaxFill(); else if (type.name().equals(tanks[1].getTankType().name())) @@ -367,13 +367,13 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) tanks[0].setFill(fill); else if (type.name().equals(tanks[1].getTankType().name())) @@ -381,20 +381,11 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } - @Override public int getFluidFill(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index e4d2e7ffb..68e190d13 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -259,7 +259,7 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type == tanks[0].getTankType()) tanks[0].setFill(i); else if(type == tanks[1].getTankType()) @@ -285,25 +285,16 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java index ba09081b0..bd4047c64 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java @@ -701,12 +701,12 @@ public class TileEntityWatzCore extends TileEntity implements ISidedInventory, I } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @@ -730,7 +730,7 @@ public class TileEntityWatzCore extends TileEntity implements ISidedInventory, I } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { tank.setFill(i); } @@ -743,12 +743,4 @@ public class TileEntityWatzCore extends TileEntity implements ISidedInventory, I public void clearFluidList(FluidType type) { list1.clear(); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java index 16c571f56..35a439b40 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java @@ -111,13 +111,13 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 4 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { for(FluidTank tank : tanks) { if(tank.getTankType() == type) { tank.setFill(fill); @@ -126,15 +126,10 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { this.tanks[index].setTankType(type); } - @Override - public List getTanks() { - return Arrays.asList(this.tanks); - } - @Override public int getFluidFill(FluidType type) { for(FluidTank tank : tanks) { @@ -146,7 +141,7 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type == tanks[0].getTankType()) return tanks[0].getMaxFill(); else if(type == tanks[1].getTankType()) diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 3e82a0897..481175fab 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -110,7 +110,7 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { return type == tanks[2].getTankType() ? tanks[2].getMaxFill() : 0; } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java index 3f63560aa..017955ce6 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java @@ -129,13 +129,13 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 3 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { for(FluidTank tank : tanks) { if(tank.getTankType() == type) { tank.setFill(fill); @@ -144,15 +144,10 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { this.tanks[index].setTankType(type); } - @Override - public List getTanks() { - return Arrays.asList(this.tanks); - } - @Override public int getFluidFill(FluidType type) { for(FluidTank tank : tanks) { @@ -164,7 +159,7 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type == tanks[0].getTankType()) return tanks[0].getMaxFill(); else diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 64421d6e5..594915d70 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -270,17 +270,17 @@ public class TileEntityMachineGasFlare extends TileEntity implements ISidedInven } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; } @@ -290,16 +290,8 @@ public class TileEntityMachineGasFlare extends TileEntity implements ISidedInven } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 9f7de17bc..ce3f56663 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -170,28 +170,21 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(type == tank.getTankType()) tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public List getTanks() { - List tanks = new ArrayList(); - tanks.add(tank); - return tanks; - } - @Override public int getFluidFill(FluidType type) { return type == tank.getTankType() ? tank.getFill() : 0; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index caa412335..2eaf4c876 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -259,7 +259,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { for(int i = 0; i < 5; i++) { if(type == tanks[i].getTankType()) { @@ -286,7 +286,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type == tanks[0].getTankType()) return tanks[0].getMaxFill(); else @@ -294,28 +294,16 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < 5 && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < 5 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - list.add(tanks[2]); - list.add(tanks[3]); - list.add(tanks[4]); - - return list; - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index ab7493b2c..5b10f8995 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -181,35 +181,28 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(type == tank.getTankType()) tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public List getTanks() { - List tanks = new ArrayList(); - tanks.add(tank); - return tanks; - } - @Override public int getFluidFill(FluidType type) { return tank.getTankType() == type ? tank.getFill() : 0; } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { return tank.getTankType() == type ? tank.getMaxFill() : 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index d1f2857f8..6f085faee 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -275,7 +275,7 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { for(FluidTank tank : tanks) { if(type == tank.getTankType()) { tank.setFill(i); @@ -298,26 +298,17 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index < tanks.length && tanks[index] != null) tanks[index].setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index < tanks.length && tanks[index] != null) tanks[index].setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); - - return list; - } - @Override public void setPower(long i) { this.power = i; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 8da8e3994..82ffd4381 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -117,7 +117,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type == feed.getTankType()) feed.setFill(i); @@ -137,7 +137,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type == feed.getTankType()) return feed.getMaxFill(); @@ -148,7 +148,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index == 0) feed.setFill(fill); @@ -157,22 +157,13 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index == 0) feed.setTankType(type); else if(index == 1) steam.setTankType(type); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(feed); - list.add(steam); - - return list; - } @Override public List getFluidList(FluidType type) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 66b75c751..0fc7e20b4 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -100,33 +100,28 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(type == tank.getTankType()) tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public List getTanks() { - return new ArrayList() {{ add(tank); }}; - } - @Override public int getFluidFill(FluidType type) { return type == tank.getTankType() ? tank.getFill() : 0; } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { return type == tank.getTankType() ? tank.getMaxFill() : 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java index 0cbcca9d0..d391a29a6 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java @@ -63,25 +63,20 @@ public class TileEntityRBMKInlet extends TileEntity implements IFluidAcceptor { } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index == 0) water.setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(type == Fluids.WATER) water.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index == 0) water.setTankType(type); } - @Override - public List getTanks() { - return Arrays.asList(new FluidTank[] {water}); - } - @Override public int getFluidFill(FluidType type) { if(type == Fluids.WATER) return water.getFill(); @@ -89,7 +84,7 @@ public class TileEntityRBMKInlet extends TileEntity implements IFluidAcceptor { } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(type == Fluids.WATER) return water.getMaxFill(); return 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index abd054a05..966b61ff6 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -181,31 +181,26 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement public boolean getTact() { return worldObj.getTotalWorldTime() % 20 < 10; } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { if(index == 0) gas.setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { if(type == gas.getTankType()) gas.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { if(index == 0) gas.setTankType(type); } - @Override - public List getTanks() { - return new ArrayList() {{ add(gas); }}; - } - @Override public int getFluidFill(FluidType type) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java index c48873103..cf6a0a79d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java @@ -69,25 +69,20 @@ public class TileEntityRBMKOutlet extends TileEntity implements IFluidSource { } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { steam.setFill(fill); } @Override - public void setFluidFill(int fill, FluidType type) { + public void setFillForTransfer(int fill, FluidType type) { steam.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { steam.setTankType(type); } - @Override - public List getTanks() { - return Arrays.asList(new FluidTank[] {steam}); - } - @Override public int getFluidFill(FluidType type) { return steam.getFill(); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 4555402bd..7ab412714 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -122,17 +122,17 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(mode == 2 || mode == 3) return 0; @@ -171,7 +171,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type == tank.getTankType()) tank.setFill(i); } @@ -184,14 +184,6 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc public void clearFluidList(FluidType type) { this.list.clear(); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } @Override public void readFromNBT(NBTTagCompound nbt) { 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/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index e1bec2abf..6a42aea5c 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -99,17 +99,17 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { if(mode == 2 || mode == 3) return 0; @@ -149,7 +149,7 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } @@ -163,14 +163,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public void clearFluidList(FluidType type) { this.list.clear(); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java index 54af5b7b5..ac640f987 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java @@ -212,30 +212,22 @@ public class TileEntityMachinePuF6Tank extends TileEntity implements ISidedInven } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } - @Override public int getFluidFill(FluidType type) { return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java index 9cfb79a9c..4ddcdb34a 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java @@ -214,30 +214,22 @@ public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInvent } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } - @Override public int getFluidFill(FluidType type) { return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java index 7d20f531b..4d267f71f 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java @@ -51,6 +51,18 @@ public class TileEntityConverterHeRf extends TileEntity implements IEnergyConnec return Integer.MAX_VALUE / 4; } + private long lastTransfer = 0; + + @Override + public long getTransferWeight() { + + if(lastTransfer > 0) { + return lastTransfer * 2; + } else { + return getMaxPower(); + } + } + @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { return 0; @@ -88,6 +100,7 @@ public class TileEntityConverterHeRf extends TileEntity implements IEnergyConnec } recursionBrake = false; + lastTransfer = totalTransferred / 4; return power - (totalTransferred / 4); } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index 3ac6695ae..e5c0d06ed 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -134,17 +134,17 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl } @Override - public void setFillstate(int fill, int index) { + public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setType(FluidType type, int index) { + public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } @Override - public int getMaxFluidFill(FluidType type) { + public int getMaxFillForReceive(FluidType type) { return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; } @@ -154,16 +154,8 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl } @Override - public void setFluidFill(int i, FluidType type) { + public void setFillForTransfer(int i, FluidType type) { if(type.name().equals(tank.getTankType().name())) tank.setFill(i); } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tank); - - return list; - } } diff --git a/src/main/java/com/hbm/util/ContaminationUtil.java b/src/main/java/com/hbm/util/ContaminationUtil.java index 9943a3ee2..521a82c4a 100644 --- a/src/main/java/com/hbm/util/ContaminationUtil.java +++ b/src/main/java/com/hbm/util/ContaminationUtil.java @@ -283,7 +283,7 @@ public class ContaminationUtil { * This system is nice but the cont types are a bit confusing. Cont types should have much better names and multiple cont types should be applicable. */ @SuppressWarnings("incomplete-switch") //just shut up - @Deprecated // instead of this does-everything-but-nothing-well solution, please use the ArmorRegistry to check for protection and the HBM Props for applying contamination + //instead of this does-everything-but-nothing-well solution, please use the ArmorRegistry to check for protection and the HBM Props for applying contamination. still good for regular radiation tho public static boolean contaminate(EntityLivingBase entity, HazardType hazard, ContaminationType cont, float amount) { if(hazard == HazardType.RADIATION) { diff --git a/src/main/java/com/hbm/util/InventoryUtil.java b/src/main/java/com/hbm/util/InventoryUtil.java index 786e78585..5fb87cfb1 100644 --- a/src/main/java/com/hbm/util/InventoryUtil.java +++ b/src/main/java/com/hbm/util/InventoryUtil.java @@ -37,6 +37,10 @@ public class InventoryUtil { return rem; } + public static ItemStack tryAddItemToInventory(ItemStack[] inv, ItemStack stack) { + return tryAddItemToInventory(inv, 0, inv.length - 1, stack); + } + /** * Functionally equal to tryAddItemToInventory, but will not try to create new stacks in empty slots * @param inv @@ -156,6 +160,32 @@ public class InventoryUtil { return false; } + public static boolean tryConsumeAStack(ItemStack[] inv, int start, int end, AStack stack) { + + if(stack == null) + return true; + + AStack copy = stack.copy(); + + for(int i = start; i <= end; i++) { + ItemStack in = inv[i]; + + if(stack.matchesRecipe(in, true)) { + int size = Math.min(copy.stacksize, in.stackSize); + + in.stackSize -= size; + copy.stacksize -= size; + + if(in.stackSize == 0) + inv[i] = null; + if(copy.stacksize == 0) + return true; + } + } + + return false; + } + /** * Compares item, metadata and NBT data of two stacks. Also handles null values! * @param stack1 @@ -164,29 +194,14 @@ public class InventoryUtil { */ public static boolean doesStackDataMatch(ItemStack stack1, ItemStack stack2) { - if(stack1 == null && stack2 == null) - return true; - - if(stack1 == null && stack2 != null) - return false; - - if(stack1 != null && stack2 == null) - return false; - - if(stack1.getItem() != stack2.getItem()) - return false; - - if(stack1.getItemDamage() != stack2.getItemDamage()) - return false; - - if(!stack1.hasTagCompound() && !stack2.hasTagCompound()) - return true; - - if(stack1.hasTagCompound() && !stack2.hasTagCompound()) - return false; - - if(!stack1.hasTagCompound() && stack2.hasTagCompound()) - return false; + if(stack1 == null && stack2 == null) return true; + if(stack1 == null && stack2 != null) return false; + if(stack1 != null && stack2 == null) return false; + if(stack1.getItem() != stack2.getItem()) return false; + if(stack1.getItemDamage() != stack2.getItemDamage()) return false; + if(!stack1.hasTagCompound() && !stack2.hasTagCompound()) return true; + if(stack1.hasTagCompound() && !stack2.hasTagCompound()) return false; + if(!stack1.hasTagCompound() && stack2.hasTagCompound()) return false; return stack1.getTagCompound().equals(stack2.getTagCompound()); } @@ -376,4 +391,54 @@ public class InventoryUtil { return new ItemStack[0][0]; } + + public static boolean doesArrayHaveIngredients(ItemStack[] array, int start, int end, AStack... ingredients) { + ItemStack[] copy = ItemStackUtil.carefulCopyArrayTruncate(array, start, end); + + AStack[] req = new AStack[ingredients.length]; + for(int i = 0; i < req.length; i++) { + req[i] = ingredients[i] == null ? null : ingredients[i].copy(); + } + + for(AStack ingredient : req) { + + if(ingredient == null) + continue; + + for(ItemStack input : copy) { + + if(input == null) + continue; + + if(ingredient.matchesRecipe(input, true)) { + int size = Math.min(input.stackSize, ingredient.stacksize); + + ingredient.stacksize -= size; + input.stackSize -= size; + + if(ingredient.stacksize == 0) + break; + } + } + + //we have iterated over the entire input array and removed all matching entries, yet the ingredient is still not exhausted, meaning the input wasn't enough + if(ingredient.stacksize > 0) + return false; + } + + return true; + } + + public static boolean doesArrayHaveSpace(ItemStack[] array, int start, int end, ItemStack[] items) { + ItemStack[] copy = ItemStackUtil.carefulCopyArrayTruncate(array, start, end); + + for(ItemStack item : items) { + ItemStack remainder = tryAddItemToInventory(copy, item); + if(remainder != null) { + return false; + } + } + + return true; + } } diff --git a/src/main/java/com/hbm/util/ItemStackUtil.java b/src/main/java/com/hbm/util/ItemStackUtil.java index f2f50debf..f2eaa87b5 100644 --- a/src/main/java/com/hbm/util/ItemStackUtil.java +++ b/src/main/java/com/hbm/util/ItemStackUtil.java @@ -14,6 +14,56 @@ public class ItemStackUtil { else return stack.copy(); } + + /** + * Runs carefulCopy over the entire ItemStack array. + * @param array + * @return + */ + public static ItemStack[] carefulCopyArray(ItemStack[] array) { + return carefulCopyArray(array, 0, array.length - 1); + } + + /** + * Recreates the ItemStack array and only runs carefulCopy over the supplied range. All other fields remain null. + * @param array + * @param start + * @param end + * @return + */ + public static ItemStack[] carefulCopyArray(ItemStack[] array, int start, int end) { + if(array == null) + return null; + + ItemStack[] copy = new ItemStack[array.length]; + + for(int i = start; i <= end; i++) { + copy[i] = carefulCopy(array[i]); + } + + return copy; + } + + /** + * Creates a new array that only contains the copied range. + * @param array + * @param start + * @param end + * @return + */ + public static ItemStack[] carefulCopyArrayTruncate(ItemStack[] array, int start, int end) { + if(array == null) + return null; + + int length = end - start + 1; + ItemStack[] copy = new ItemStack[length]; + + for(int i = 0; i < length; i++) { + copy[i] = carefulCopy(array[start + i]); + } + + return copy; + } /** * UNSAFE! Will ignore all existing display tags and override them! In its current state, only fit for items we know don't have any display tags! diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index bdfdb065c..e840c4966 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -134,6 +134,7 @@ chem.DYN_DNT=Dineutronium-Dynosynthese chem.DYN_EUPH=Euphemium-Dynosynthese chem.DYN_SCHRAB=Schrabidium-Dynosynthese chem.ELECTROLYSIS=Kryo-Elektrolyse +chem.EPEARL=Enderperlen-Synthese chem.ETHANOL=Ethanolherstellung chem.FC_BITUMEN=Bitumen-Cracking chem.FC_DIESEL_KEROSENE=Diesel-Cracking @@ -470,6 +471,7 @@ hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel hbmfluid.diesel_crack=Crackdiesel hbmfluid.ethanol=Ethanol +hbmfluid.enderjuice=Endersaft hbmfluid.fracksol=Frackinglösung hbmfluid.gas=Erdgas hbmfluid.gasoline=Bleibenzin @@ -521,6 +523,7 @@ hbmfluid.wastegas=Gasförmiger Atommüll hbmfluid.water=Wasser hbmfluid.watz=Giftiger Schlamm hbmfluid.xenon=Xenongas +hbmfluid.xpjuice=Erfahrungssaft info.coil=Spulenstärke info.templatefolder=Hergestellt mit %s diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d3de62e25..d696458c9 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -303,6 +303,7 @@ chem.DYN_DNT=Dineutronium Dynosynthesis chem.DYN_EUPH=Euphemium Dynosynthesis chem.DYN_SCHRAB=Schrabidium Dynosynthesis chem.ELECTROLYSIS=Cryo-Electrolysis +chem.EPEARL=Ender Pearl Synthesis chem.ETHANOL=Ethanol Production chem.FC_BITUMEN=Bitumen Cracking chem.FC_DIESEL_KEROSENE=Diesel Cracking @@ -663,6 +664,7 @@ hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel hbmfluid.diesel_crack=Cracked Diesel hbmfluid.ethanol=Ethanol +hbmfluid.enderjuice=Ender Juice hbmfluid.fracksol=Fracking Solution hbmfluid.gas=Natural Gas hbmfluid.gasoline=Leaded Gasoline @@ -714,6 +716,7 @@ hbmfluid.wastegas=Gaseous Nuclear Waste hbmfluid.water=Water hbmfluid.watz=Poisonous Mud hbmfluid.xenon=Xenon Gas +hbmfluid.xpjuice=Experience Juice info.coil=Coil Strength info.templatefolder=Created with %s diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 91baa32a6..adfa1f953 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -749,9 +749,21 @@ book.starter.title9=Продукты нефтехимии book.starter.page9=Используя §lХимические заводы§r, §lРектификационные§r §lколонны§r, и §lБашни§r §lкаталитического крекинга§r, вы можете превратить переработанную нефть в различные полезные продукты. Например: §lПолимер§r, прочный и гибкий пластик; §lДеш§r, чрезвычайно прочный и термостойкий сплав редкоземельных металлов; §lТвёрдое топливо§r, которое можно сжигать для получения энергии; или даже §lЖидкое топливо§r, такое как §lБензин§r, §lДизель§r, §lКеросин§r, и т.д. book.starter.title10=Продвинутые механизмы book.starter.page10=Имея за плечами переработку нефти, вы можете создать §lЦентрифугу§r, которая утроит выход руды; §lРудный §lокислитель§r, который будет кристаллизовать руды, увеличивая выход; и §lSILEX + §lFEL§r, два чуда современной инженерии, которые могут легко отделять изотопы материалов. Для их питания вам потребуется значительно больше энергии, которую можно получить с помощью таких источников, как §lДизельный генератор§r, §lПромышленный генератор§r или даже ядерный реактор. -book.starter.title11=Радиация -book.starter.page11a=§oОстальная часть этой книги будет посвящена вопросам, связанным с §oрадиацией. Для вашей безопасности и безопасности других людей я дам вам §oсоветы о том, как смягчить воздействие и справиться с ней. -book.starter.page11b=Достаточное воздействие радиации может привести и приведет к телесным повреждениям. Первый шаг - это внешняя защита; обязательно ограничьте свое воздействие и наденьте защитное снаряжение, например §lЗащитный костюм§r, или прикрепить §lОбшивку§r к вашей одежде или броне; вы также можете принять §lРад-X§r чтобы ограничить получаемую дозу. Спасибо современной медицине, the second step can be removal if necessary; например, §l"Обеззараживатель §lигрока"§r будет медленно уменьшать излучение, поглощённое вашим телом. §lАнтирадин§r can also be used as post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. +book.starter.title11=Пласт +book.starter.page11=Под землей, по которой вы ходите, есть несколько естественных §lпластов§r, или особых минеральных слоев и образований. §lСланцевые пласты§r - это голубые литийсодержащие слои, заполненные ураном, железом, медью, асбестом и другими рудами для вашего собственного использования. §lГлубинная порода§r содержит большое количество более редких минералов, таких как §lцирконий§r и §lбор§r, но для правильного сбора требуется взрывчатка. +book.starter.title12=Радиация +book.starter.page12a=§oОстальная часть этой книги будет посвящена вопросам, связанным с §oрадиацией. Для вашей безопасности и безопасности других людей я дам вам §oсоветы о том, как смягчить воздействие и справиться с ней. +book.starter.page12b=Достаточное воздействие радиации может привести и приведет к телесным повреждениям. Первый шаг - это внешняя защита; обязательно ограничьте свое воздействие и наденьте защитное снаряжение, например §lЗащитный костюм§r, или прикрепить §lОбшивку§r к вашей одежде или броне; вы также можете принять §lРад-X§r чтобы ограничить получаемую дозу. Спасибо современной медицине, вторым шагом может быть удаление, если это необходимо; например, §l"Обеззараживатель §lигрока"§r будет медленно уменьшать излучение, поглощённое вашим телом. §lАнтирадин§r может быть использован как профилактика при облучении, быстро и эффективно устраняя повреждения, причиненные вашему организму ионизирующим излучением. +book.starter.title13=Обогащение урана +book.starter.page13=Существует несколько простых вариантов топлива для ядерного реактора; например, топливо из §lПриродного урана§r или §lТория§r. Однако, если вы ищете что-то более мощное, вы можете настроить каскад обогащения из двух §lГазовых центрифуг§r для производства §lУранового топлива§r с остатками §lУрана-238§r. Для этого вам придется превратить природный уран в §lЙеллоукейк§r, а затем в §lГексафторид §lурана§r. +book.starter.title14=Чикагская поленница +book.starter.page14=В качестве альтернативы вы можете получить §lРеакторный плутоний§r, более мощное топливо, из природного урана, используя §lЧикагскую поленницу§r. Укладывая графитовые блоки и сверля их, вы можете вставить топливные стержни для размножения в плутоний и стержни источников нейтронов, такие как §lРадий-Бериллий§r, чтобы начать реакцию. Обязательно протестируйте свои конструкции; для предотвращения перегрева может потребоваться разделение или ограничение количества блоков. +book.starter.title15=ЦИРНОКС РГО +book.starter.page15=Наконец, вы можете создать свой первый §oреальный§r источник энергии: ядерный реактор §lЦИРНОКС§r. Ядерные реакторы требуют большей настройки, чем другие источники энергии; во-первых, вам понадобится хороший источник воды, такой как §lУсиленный §lбесконечный резервуар воды§r. Чтобы удалить тепло из активной зоны реактора и вскипятить воду в пар, вам понадобится достаточное количество §lУглекислого газа§r. Вам нужно достаточное давление, но не §oслишком§r сильное. Вам также понадобятся три паровые турбины для использования созданного пара для производства энергии; §lПаровая §lтурбина§r или §lПромышленная паровая §lтурбина§r будут оптимальными. Наконец, §lКонденсатор§r или §lВспомогательная§r градирня необходимы для конденсации оставшегося пара в воду, где он может быть удален или переработан в контуре охлаждения. +book.starter.title16=Заключение +book.starter.page16=Если вы зашли так далеко, значит, вы на пути к тому, чтобы помочь восстановить цивилизацию. Вы успешно воссоздали передовую технику доапокалипсиса - с помощью ядерной энергетики, нефтехимии и многого другого. Я не могу знать, §oкак§r вы будете использовать эти новообретенные преимущества, но я лично надеюсь, что вы используете их на благо себе и другим - или, по крайней мере, в целях самообороны. До свидания! +book.starter.title18=Об авторе +book.starter.page18=vær - просто парень, который слишком долго был пойман в ловушку серой пустоты, показанной в фильме "Говорящая голова" §o"Раз в жизни"§r. Однажды он нашел дверь студии, но, к своему ужасу, обнаружил, что она была вырезана из картона. hbmfluid.none=Ничего hbmfluid.water=Вода diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/enderjuice.png b/src/main/resources/assets/hbm/textures/gui/fluids/enderjuice.png new file mode 100644 index 000000000..ab18b6953 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/enderjuice.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/xpjuice.png b/src/main/resources/assets/hbm/textures/gui/fluids/xpjuice.png new file mode 100644 index 000000000..7072a3a9b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/xpjuice.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_chemfac.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_chemfac.png new file mode 100755 index 000000000..3ec12aba3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_chemfac.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_EPEARL.png b/src/main/resources/assets/hbm/textures/items/chem_icon_EPEARL.png new file mode 100644 index 000000000..0d8077cb5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/chem_icon_EPEARL.png differ diff --git a/src/main/resources/assets/hbm/textures/items/parts_legendary.png b/src/main/resources/assets/hbm/textures/items/parts_legendary.png new file mode 100644 index 000000000..55fb0bd03 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/parts_legendary.png differ diff --git a/src/main/resources/assets/hbm/textures/items/parts_legendary_1.png b/src/main/resources/assets/hbm/textures/items/parts_legendary_1.png new file mode 100644 index 000000000..55fb0bd03 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/parts_legendary_1.png differ diff --git a/src/main/resources/assets/hbm/textures/items/parts_legendary_2.png b/src/main/resources/assets/hbm/textures/items/parts_legendary_2.png new file mode 100644 index 000000000..2a7d3429b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/parts_legendary_2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/parts_legendary_3.png b/src/main/resources/assets/hbm/textures/items/parts_legendary_3.png new file mode 100644 index 000000000..9bcb1d4d3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/parts_legendary_3.png differ 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 000000000..2226449e2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png differ