diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index f8ba2b85f..cd1418fdd 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -1175,7 +1175,7 @@ tile.dummy_port.name=Dummyblock (Stromanschluss) item.chopper.name=Jagdschrauber -item.nothing.name=Diesen Slot freilassen +item.nothing.name=Leer tile.crystal_virus.name=Dunkler Kristall tile.crystal_hardened.name=Gehärteter Dunkler Kristall diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 339c08e3e..56d5e708e 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -235,6 +235,62 @@ tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP) tile.machine_rtg_blue.name=Convection Generator tile.machine_rtg_purple.name=Antimatter Annihilation Generator +item.assembly_template.TEST.name=Assembly Template: Test +item.assembly_template.MIXED_PLATE.name=Assembly Template: Mixed Plate +item.assembly_template.HAZMAT_CLOTH.name=Assembly Template: Hazmat Cloth +item.assembly_template.ASBESTOS_CLOTH.name=Assembly Template: Fire Proximity Cloth +item.assembly_template.COAL_FILTER.name=Assembly Template: Activated Carbon Filter +item.assembly_template.CENTRIFUGE_ELEMENT.name=Assembly Template: Centrifuge Element +item.assembly_template.CENTRIFUGE_TOWER.name=Assembly Template: Centrifuge Tower +item.assembly_template.DEE_MAGNET.name=Assembly Template: Dee Magnets +item.assembly_template.FLAT_MAGNET.name=Assembly Template: Flat Magnet +item.assembly_template.CYCLOTRON_TOWER.name=Assembly Template: Cyclotron Tower +item.assembly_template.REACTOR_CORE.name=Assembly Template: Breeding Reactor Core +item.assembly_template.RTG_UNIT.name=Assembly Template: RTG Unit +item.assembly_template.HEAT_UNIT.name=Assembly Template: Thermal Distribution Unit +item.assembly_template.GRAVITY_UNIT.name=Assembly Template: Gravity Manipulator +item.assembly_template.TITANIUM_DRILL.name=Assembly Template: Titanium Drill +item.assembly_template.TELEPAD.name=Assembly Template: Telepad +item.assembly_template.TELEKIT.name=Assembly Template: Entanglement Kit +item.assembly_template.GEASS_REACTOR.name=Assembly Template: Dysfunctional Nuclear Reactor +item.assembly_template.GENERATOR_FRONT.name=Assembly Template: Generator Front +item.assembly_template.WT1_GENERIC.name=Assembly Template: Small Warhead +item.assembly_template.WT2_GENERIC.name=Assembly Template: Medium Warhead +item.assembly_template.WT3_GENERIC.name=Assembly Template: Large Warhead +item.assembly_template.WT1_FIRE.name=Assembly Template: Small Incendiary Warhead +item.assembly_template.WT2_FIRE.name=Assembly Template: Medium Incendiary Warhead +item.assembly_template.WT3_FIRE.name=Assembly Template: Large Incendiary Warhead +item.assembly_template.WT1_CLUSTER.name=Assembly Template: Small Cluster Warhead +item.assembly_template.WT2_CLUSTER.name=Assembly Template: Medium Cluster Warhead +item.assembly_template.WT3_CLUSTER.name=Assembly Template: Large Cluster Warhead +item.assembly_template.WT1_BUSTER.name=Assembly Template: Small Bunker Buster Warhead +item.assembly_template.WT2_BUSTER.name=Assembly Template: Medium Bunker Buster Warhead +item.assembly_template.WT3_BUSTER.name=Assembly Template: Large Bunker Buster Warhead +item.assembly_template.W_NUCLEAR.name=Assembly Template: Nuclear Warhead +item.assembly_template.W_MIRVLET.name=Assembly Template: MIRV +item.assembly_template.W_MIRV.name=Assembly Template: Eightfold MIRV Warhead +item.assembly_template.W_ENDOTHERMIC.name=Assembly Template: Endothermic Warhead +item.assembly_template.W_EXOTHERMIC.name=Assembly Template: Exothermic Warhead +item.assembly_template.T1_TANK.name=Assembly Template: Small Fuel Tank +item.assembly_template.T2_TANK.name=Assembly Template: Medium Fuel Tank +item.assembly_template.T3_TANK.name=Assembly Template: Large Fuel Tank +item.assembly_template.T1_THRUSTER.name=Assembly Template: Small Thruster +item.assembly_template.T2_THRUSTER.name=Assembly Template: Medium Thruster +item.assembly_template.T3_THRUSTER.name=Assembly Template: Large Thruster +item.assembly_template.CHOPPER_HEAD.name=Assembly Template: Hunter Chopper Cockpit +item.assembly_template.CHOPPER_GUN.name=Assembly Template: Emplacement Gun +item.assembly_template.CHOPPER_BODY.name=Assembly Template: Hunter Chopper Body +item.assembly_template.CHOPPER_TAIL.name=Assembly Template: Hunter Chopper Tail +item.assembly_template.CHOPPER_WING.name=Assembly Template: Hunter Chopper Wing +item.assembly_template.CHOPPER_BLADES.name=Assembly Template: Hunter Chopper Rotor Blades +item.assembly_template.CIRCUIT_2.name=Assembly Template: Enhanced Circuit +item.assembly_template.CIRCUIT_3.name=Assembly Template: Advanced Circuit +item.assembly_template.RTG_PELLET.name=Assembly Template: Plutonium 238 Fuel Pellet +item.assembly_template.WEAK_PELLET.name=Assembly Template: Weak Uranium RTG Pellet +item.assembly_template.FUSION_PELLET.name=Assembly Template: Tritium-Deuterium-Cake +item.assembly_template.CLUSTER_PELLETS.name=Assembly Template: Explosive Pellets +item.assembly_template.GUN_PELLETS.name=Assembly Template: Lead Pellets + item.fuse.name=Fuse tile.test_nuke.name=Test Nuke @@ -511,7 +567,7 @@ item.asbestos_cloth.name=Fire Proximity Cloth item.filter_coal.name=Activated Carbon Filter item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake item.telepad.name=Telepad -item.entanglement_kit.name=Entaglement Kit +item.entanglement_kit.name=Entanglement Kit item.toothpicks.name=Toothpicks item.ducttape.name=Duct Tape item.magnet_dee.name=Dee Magnets @@ -1175,7 +1231,7 @@ tile.dummy_port.name=Dummy Block (Electricity Port) item.chopper.name=Hunter Chopper -item.nothing.name=Keep This Slot Clear +item.nothing.name=Nothing tile.crystal_virus.name=Dark Crystal tile.crystal_hardened.name=Hardened Dark Crystal diff --git a/assets/hbm/textures/blocks/fluid_duct.png b/assets/hbm/textures/blocks/fluid_duct.png new file mode 100644 index 000000000..429166d5f Binary files /dev/null and b/assets/hbm/textures/blocks/fluid_duct.png differ diff --git a/assets/hbm/textures/blocks/fluid_duct_icon.png b/assets/hbm/textures/blocks/fluid_duct_icon.png new file mode 100644 index 000000000..979a275d5 Binary files /dev/null and b/assets/hbm/textures/blocks/fluid_duct_icon.png differ diff --git a/assets/hbm/textures/items/fluid_identifier.png b/assets/hbm/textures/items/fluid_identifier.png new file mode 100644 index 000000000..34a2ade83 Binary files /dev/null and b/assets/hbm/textures/items/fluid_identifier.png differ diff --git a/assets/hbm/textures/items/fluid_identifier_overlay.png b/assets/hbm/textures/items/fluid_identifier_overlay.png new file mode 100644 index 000000000..79247dd18 Binary files /dev/null and b/assets/hbm/textures/items/fluid_identifier_overlay.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index a4877141d..75724edc2 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -253,6 +253,7 @@ public class ModBlocks { public static Block oil_duct; public static Block gas_duct_solid; public static Block gas_duct; + public static Block fluid_duct; public static Block bomb_multi_large; public static final int guiID_bomb_multi_large = 18; @@ -420,19 +421,19 @@ public class ModBlocks { private static void initializeBlock() { - test_render = new TestRender(Material.rock).setBlockName("test_render").setCreativeTab(MainRegistry.tabTest); - test_container = new TestContainer(0).setBlockName("test_container").setCreativeTab(MainRegistry.tabTest); - test_bomb = new TestBomb(Material.tnt).setBlockName("test_bomb").setCreativeTab(MainRegistry.tabTest).setBlockTextureName(RefStrings.MODID + ":test_bomb"); - test_bomb_advanced = new TestBombAdvanced(Material.tnt).setBlockName("test_bomb_advanced").setCreativeTab(MainRegistry.tabTest); + test_render = new TestRender(Material.rock).setBlockName("test_render").setCreativeTab(null); + test_container = new TestContainer(0).setBlockName("test_container").setCreativeTab(null); + test_bomb = new TestBomb(Material.tnt).setBlockName("test_bomb").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":test_bomb"); + test_bomb_advanced = new TestBombAdvanced(Material.tnt).setBlockName("test_bomb_advanced").setCreativeTab(null); - test_nuke = new TestNuke(Material.iron).setBlockName("test_nuke").setCreativeTab(MainRegistry.tabTest).setHardness(2.5F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":test_nuke"); - event_tester = new TestEventTester(Material.iron).setBlockName("event_tester").setCreativeTab(MainRegistry.tabTest).setHardness(2.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":event_tester"); - rotation_tester = new TestRotationTester(Material.iron).setBlockName("rotation_tester").setCreativeTab(MainRegistry.tabTest).setHardness(2.5F).setResistance(10.0F); - obj_tester = new TestObjTester(Material.iron).setBlockName("obj_tester").setCreativeTab(MainRegistry.tabTest).setHardness(2.5F).setResistance(10.0F); + test_nuke = new TestNuke(Material.iron).setBlockName("test_nuke").setCreativeTab(null).setHardness(2.5F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":test_nuke"); + event_tester = new TestEventTester(Material.iron).setBlockName("event_tester").setCreativeTab(null).setHardness(2.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":event_tester"); + rotation_tester = new TestRotationTester(Material.iron).setBlockName("rotation_tester").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F); + obj_tester = new TestObjTester(Material.iron).setBlockName("obj_tester").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F); - test_ticker = new TestTicker(Material.iron).setBlockName("test_ticker").setCreativeTab(MainRegistry.tabTest).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_ticker"); + test_ticker = new TestTicker(Material.iron).setBlockName("test_ticker").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_ticker"); - test_missile = new TestMissile(Material.iron).setBlockName("test_missile").setCreativeTab(MainRegistry.tabTest).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_missile"); + test_missile = new TestMissile(Material.iron).setBlockName("test_missile").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_missile"); ore_uranium = new BlockGeneric(Material.rock).setBlockName("ore_uranium").setCreativeTab(MainRegistry.tabBlock).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium"); ore_titanium = new BlockGeneric(Material.rock).setBlockName("ore_titanium").setCreativeTab(MainRegistry.tabBlock).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_titanium"); @@ -615,6 +616,7 @@ public class ModBlocks { oil_duct = new BlockOilDuct(Material.iron).setBlockName("oil_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":oil_duct_icon_alt"); gas_duct_solid = new GasDuctSolid(Material.iron).setBlockName("gas_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":gas_duct_solid"); gas_duct = new BlockGasDuct(Material.iron).setBlockName("gas_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":gas_duct_icon"); + fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); factory_titanium_hull = new BlockGeneric(Material.iron).setBlockName("factory_titanium_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":factory_titanium_hull"); factory_titanium_furnace = new FactoryHatch(Material.iron).setBlockName("factory_titanium_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":factory_titanium_furnace"); @@ -932,6 +934,7 @@ public class ModBlocks { GameRegistry.registerBlock(oil_duct_solid, oil_duct_solid.getUnlocalizedName()); GameRegistry.registerBlock(gas_duct, gas_duct.getUnlocalizedName()); GameRegistry.registerBlock(gas_duct_solid, gas_duct_solid.getUnlocalizedName()); + GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); GameRegistry.registerBlock(machine_battery, machine_battery.getUnlocalizedName()); GameRegistry.registerBlock(machine_converter_he_rf, machine_converter_he_rf.getUnlocalizedName()); GameRegistry.registerBlock(machine_converter_rf_he, machine_converter_rf_he.getUnlocalizedName()); diff --git a/com/hbm/blocks/machine/BlockFluidDuct.java b/com/hbm/blocks/machine/BlockFluidDuct.java new file mode 100644 index 000000000..a639d2bbb --- /dev/null +++ b/com/hbm/blocks/machine/BlockFluidDuct.java @@ -0,0 +1,81 @@ +package com.hbm.blocks.machine; + +import com.hbm.tileentity.TileEntityFluidDuct; +import com.hbm.tileentity.TileEntityGasDuct; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockFluidDuct extends BlockContainer { + + public BlockFluidDuct(Material p_i45386_1_) { + super(p_i45386_1_); + float p = 1F/16F; + this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); + this.useNeighborBrightness = true; + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { + TileEntityFluidDuct cable = (TileEntityFluidDuct)world.getTileEntity(x, y, z); + + if(cable != null) + { + float p = 1F/16F; + float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); + float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); + float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); + float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); + float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); + float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); + + this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); + } + } + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { + TileEntityFluidDuct cable = (TileEntityFluidDuct)world.getTileEntity(x, y, z); + + if(cable != null) + { + float p = 1F/16F; + float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); + float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); + float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); + float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); + float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); + float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); + + this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); + } + } + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityFluidDuct(); + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + +} diff --git a/com/hbm/creativetabs/MachineTab.java b/com/hbm/creativetabs/MachineTab.java new file mode 100644 index 000000000..b37a48ffa --- /dev/null +++ b/com/hbm/creativetabs/MachineTab.java @@ -0,0 +1,27 @@ +package com.hbm.creativetabs; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Items; +import net.minecraft.item.Item; + +public class MachineTab extends CreativeTabs { + + public MachineTab(int p_i1853_1_, String p_i1853_2_) { + super(p_i1853_1_, p_i1853_2_); + } + + @Override + public Item getTabIconItem() { + + if(ModItems.assembly_template != null) + { + return ModItems.assembly_template; + } + + return Items.iron_pickaxe; + } + +} diff --git a/com/hbm/handler/FluidTypeHandler.java b/com/hbm/handler/FluidTypeHandler.java new file mode 100644 index 000000000..3a5732358 --- /dev/null +++ b/com/hbm/handler/FluidTypeHandler.java @@ -0,0 +1,47 @@ +package com.hbm.handler; + +import com.hbm.items.tool.ItemAssemblyTemplate.EnumAssemblyTemplate; + +public class FluidTypeHandler { + + public enum FluidType { + NONE(0x888888, 8947848, 0, 0), WATER(0x3333FF, 3355647, 1, 0), LAVA(0xFF3300, 16724736, 2, 0), UF6(0xD1CEBE, 13749950, 3, 0), PUF6(0x4C4C4C, 5000268, 0, 1), + DEUTERIUM(0x0000FF, 255, 1, 1), TRITIUM(0x000099, 153, 2, 1); + + private int color; + private int msa; + private int textureX; + private int textureY; + + private FluidType(int color, int msa, int x, int y) { + this.color = color; + this.msa = msa; + this.textureX = x; + this.textureY = y; + } + + public int getColor() { + return this.color; + } + public int getMSAColor() { + return this.msa; + } + public int textureX() { + return this.textureX; + } + public int textureY() { + return this.textureY; + } + + public static FluidType getEnum(int i) { + return FluidType.values()[i]; + } + + public String getName() { + return this.toString(); + } + }; + + //More stuff to follow. + +} diff --git a/com/hbm/interfaces/IFluidDuct.java b/com/hbm/interfaces/IFluidDuct.java new file mode 100644 index 000000000..06d6f546d --- /dev/null +++ b/com/hbm/interfaces/IFluidDuct.java @@ -0,0 +1,5 @@ +package com.hbm.interfaces; + +public interface IFluidDuct { + +} diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index bd31cf0a1..b9b404801 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -1505,6 +1505,296 @@ public class MachineRecipes { list.add(new ItemStack(Items.gold_ingot, 2)); list.add(new ItemStack(Items.coal, 8)); break; + case MIXED_PLATE: + list.add(new ItemStack(ModItems.plate_advanced_alloy, 2)); + list.add(new ItemStack(ModItems.neutron_reflector, 2)); + list.add(new ItemStack(ModItems.plate_combine_steel, 1)); + list.add(new ItemStack(ModItems.plate_lead, 4)); + break; + case HAZMAT_CLOTH: + list.add(new ItemStack(ModItems.powder_lead, 4)); + list.add(new ItemStack(Items.string, 8)); + break; + case ASBESTOS_CLOTH: + list.add(new ItemStack(ModItems.powder_quartz, 4)); + list.add(new ItemStack(Items.string, 6)); + list.add(new ItemStack(Blocks.wool, 1)); + break; + case COAL_FILTER: + list.add(new ItemStack(ModItems.powder_coal, 4)); + list.add(new ItemStack(Items.string, 6)); + list.add(new ItemStack(Items.paper, 1)); + break; + case CENTRIFUGE_ELEMENT: + list.add(new ItemStack(ModItems.tank_steel, 2)); + list.add(new ItemStack(ModItems.coil_tungsten, 2)); + list.add(new ItemStack(ModItems.wire_red_copper, 6)); + list.add(new ItemStack(ModItems.motor, 1)); + break; + case CENTRIFUGE_TOWER: + list.add(new ItemStack(ModItems.centrifuge_element, 4)); + list.add(new ItemStack(ModItems.plate_steel, 4)); + list.add(new ItemStack(ModItems.wire_red_copper, 6)); + list.add(new ItemStack(ModItems.powder_lapis, 2)); + break; + case DEE_MAGNET: + list.add(new ItemStack(ModBlocks.fusion_conductor, 6)); + list.add(new ItemStack(ModItems.ingot_steel, 3)); + list.add(new ItemStack(ModItems.coil_advanced_torus, 1)); + break; + case FLAT_MAGNET: + list.add(new ItemStack(ModBlocks.fusion_conductor, 5)); + list.add(new ItemStack(ModItems.ingot_steel, 4)); + list.add(new ItemStack(ModItems.plate_advanced_alloy, 6)); + break; + case CYCLOTRON_TOWER: + list.add(new ItemStack(ModItems.magnet_circular, 6)); + list.add(new ItemStack(ModItems.magnet_dee, 3)); + list.add(new ItemStack(ModItems.plate_steel, 12)); + list.add(new ItemStack(ModItems.wire_advanced_alloy, 8)); + break; + case REACTOR_CORE: + list.add(new ItemStack(ModItems.ingot_lead, 4)); + list.add(new ItemStack(ModItems.plate_steel, 4)); + list.add(new ItemStack(ModItems.neutron_reflector, 4)); + break; + case RTG_UNIT: + list.add(new ItemStack(ModItems.thermo_element, 6)); + list.add(new ItemStack(ModItems.board_copper, 2)); + list.add(new ItemStack(ModItems.ingot_lead, 4)); + list.add(new ItemStack(ModItems.plate_steel, 2)); + list.add(new ItemStack(ModItems.circuit_copper, 2)); + break; + case HEAT_UNIT: + list.add(new ItemStack(ModItems.coil_copper_torus, 3)); + list.add(new ItemStack(ModItems.ingot_steel, 3)); + list.add(new ItemStack(ModItems.plate_titanium, 6)); + break; + case GRAVITY_UNIT: + list.add(new ItemStack(ModItems.coil_copper, 4)); + list.add(new ItemStack(ModItems.coil_tungsten, 2)); + list.add(new ItemStack(ModItems.plate_titanium, 6)); + list.add(new ItemStack(ModItems.nugget_schrabidium, 2)); + break; + case TITANIUM_DRILL: + list.add(new ItemStack(ModItems.ingot_steel, 2)); + list.add(new ItemStack(ModItems.ingot_dura_steel, 2)); + list.add(new ItemStack(ModItems.bolt_dura_steel, 2)); + list.add(new ItemStack(ModItems.plate_titanium, 6)); + break; + case TELEPAD: + list.add(new ItemStack(ModItems.plate_schrabidium, 2)); + list.add(new ItemStack(ModItems.plate_combine_steel, 4)); + list.add(new ItemStack(ModItems.plate_steel, 2)); + list.add(new ItemStack(ModItems.wire_gold, 6)); + list.add(new ItemStack(ModItems.circuit_schrabidium, 1)); + break; + case TELEKIT: + list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 6)); + list.add(new ItemStack(ModItems.plate_lead, 16)); + list.add(new ItemStack(ModItems.neutron_reflector, 4)); + list.add(new ItemStack(ModItems.singularity_counter_resonant, 1)); + list.add(new ItemStack(ModItems.singularity_super_heated, 1)); + list.add(new ItemStack(ModItems.powder_power, 4)); + break; + case GEASS_REACTOR: + list.add(new ItemStack(ModItems.plate_steel, 15)); + list.add(new ItemStack(ModItems.ingot_lead, 5)); + list.add(new ItemStack(ModItems.rod_quad_empty, 10)); + list.add(new ItemStack(Items.dye, 4, 3)); + break; + case GENERATOR_FRONT: + list.add(new ItemStack(ModItems.ingot_steel, 3)); + list.add(new ItemStack(ModItems.plate_steel, 6)); + list.add(new ItemStack(ModItems.tank_steel, 4)); + list.add(new ItemStack(ModItems.turbine_titanium, 1)); + list.add(new ItemStack(ModItems.wire_red_copper, 6)); + list.add(new ItemStack(ModItems.wire_gold, 4)); + break; + case WT1_GENERIC: + list.add(new ItemStack(ModItems.plate_titanium, 5)); + list.add(new ItemStack(ModItems.plate_steel, 3)); + list.add(new ItemStack(Blocks.tnt, 2)); + break; + case WT2_GENERIC: + list.add(new ItemStack(ModItems.plate_titanium, 8)); + list.add(new ItemStack(ModItems.plate_steel, 5)); + list.add(new ItemStack(Blocks.tnt, 4)); + break; + case WT3_GENERIC: + list.add(new ItemStack(ModItems.plate_titanium, 15)); + list.add(new ItemStack(ModItems.plate_steel, 8)); + list.add(new ItemStack(Blocks.tnt, 8)); + break; + case WT1_FIRE: + list.add(new ItemStack(ModItems.warhead_generic_small, 1)); + list.add(new ItemStack(ModItems.powder_fire, 4)); + break; + case WT2_FIRE: + list.add(new ItemStack(ModItems.warhead_generic_medium, 1)); + list.add(new ItemStack(ModItems.powder_fire, 8)); + break; + case WT3_FIRE: + list.add(new ItemStack(ModItems.warhead_generic_large, 1)); + list.add(new ItemStack(ModItems.powder_fire, 16)); + break; + case WT1_CLUSTER: + list.add(new ItemStack(ModItems.warhead_generic_small, 1)); + list.add(new ItemStack(ModItems.pellet_cluster, 4)); + break; + case WT2_CLUSTER: + list.add(new ItemStack(ModItems.warhead_generic_medium, 1)); + list.add(new ItemStack(ModItems.pellet_cluster, 8)); + break; + case WT3_CLUSTER: + list.add(new ItemStack(ModItems.warhead_generic_large, 1)); + list.add(new ItemStack(ModItems.powder_fire, 16)); + break; + case WT1_BUSTER: + list.add(new ItemStack(ModItems.warhead_generic_small, 1)); + list.add(new ItemStack(ModBlocks.det_cord, 8)); + break; + case WT2_BUSTER: + list.add(new ItemStack(ModItems.warhead_generic_medium, 1)); + list.add(new ItemStack(ModBlocks.det_cord, 4)); + list.add(new ItemStack(ModBlocks.det_charge, 4)); + break; + case WT3_BUSTER: + list.add(new ItemStack(ModItems.warhead_generic_large, 1)); + list.add(new ItemStack(ModBlocks.det_charge, 8)); + break; + case W_NUCLEAR: + list.add(new ItemStack(ModItems.boy_shielding, 1)); + list.add(new ItemStack(ModItems.boy_target, 1)); + list.add(new ItemStack(ModItems.boy_bullet, 1)); + list.add(new ItemStack(ModItems.plate_titanium, 20)); + list.add(new ItemStack(ModItems.plate_steel, 12)); + break; + case W_MIRVLET: + list.add(new ItemStack(ModItems.ingot_steel, 5)); + list.add(new ItemStack(ModItems.plate_steel, 18)); + list.add(new ItemStack(ModItems.ingot_pu239, 1)); + list.add(new ItemStack(Blocks.tnt, 2)); + break; + case W_MIRV: + list.add(new ItemStack(ModItems.warhead_generic_large, 1)); + list.add(new ItemStack(ModItems.plate_steel, 16)); + list.add(new ItemStack(ModBlocks.det_cord, 8)); + list.add(new ItemStack(ModItems.warhead_mirvlet, 8)); + break; + case W_ENDOTHERMIC: + list.add(new ItemStack(ModBlocks.therm_endo, 2)); + list.add(new ItemStack(ModItems.plate_titanium, 12)); + list.add(new ItemStack(ModItems.plate_steel, 6)); + break; + case W_EXOTHERMIC: + list.add(new ItemStack(ModBlocks.therm_exo, 2)); + list.add(new ItemStack(ModItems.plate_titanium, 12)); + list.add(new ItemStack(ModItems.plate_steel, 6)); + break; + case T1_TANK: + list.add(new ItemStack(ModItems.canister_kerosene, 4)); + list.add(new ItemStack(ModItems.plate_titanium, 6)); + list.add(new ItemStack(ModItems.plate_steel, 2)); + break; + case T2_TANK: + list.add(new ItemStack(ModItems.fuel_tank_small, 3)); + list.add(new ItemStack(ModItems.plate_titanium, 4)); + list.add(new ItemStack(ModItems.plate_steel, 2)); + break; + case T3_TANK: + list.add(new ItemStack(ModItems.fuel_tank_medium, 3)); + list.add(new ItemStack(ModItems.plate_titanium, 4)); + list.add(new ItemStack(ModItems.plate_steel, 2)); + break; + case T1_THRUSTER: + list.add(new ItemStack(ModItems.plate_steel, 2)); + list.add(new ItemStack(ModItems.hull_small_steel, 2)); + list.add(new ItemStack(ModItems.wire_aluminium, 4)); + break; + case T2_THRUSTER: + list.add(new ItemStack(ModItems.thruster_small, 1)); + list.add(new ItemStack(ModItems.plate_steel, 2)); + list.add(new ItemStack(ModItems.hull_small_steel, 1)); + list.add(new ItemStack(ModItems.hull_big_steel, 1)); + list.add(new ItemStack(ModItems.wire_copper, 4)); + break; + case T3_THRUSTER: + list.add(new ItemStack(ModItems.thruster_medium, 1)); + list.add(new ItemStack(ModItems.plate_steel, 4)); + list.add(new ItemStack(ModItems.hull_big_steel, 2)); + list.add(new ItemStack(ModItems.wire_red_copper, 4)); + break; + case CHOPPER_HEAD: + list.add(new ItemStack(ModBlocks.reinforced_glass, 2)); + list.add(new ItemStack(ModBlocks.fwatz_computer, 1)); + list.add(new ItemStack(ModItems.ingot_combine_steel, 22)); + list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 4)); + break; + case CHOPPER_GUN: + list.add(new ItemStack(ModItems.plate_combine_steel, 4)); + list.add(new ItemStack(ModItems.ingot_combine_steel, 2)); + list.add(new ItemStack(ModItems.wire_tungsten, 6)); + list.add(new ItemStack(ModItems.coil_magnetized_tungsten, 1)); + list.add(new ItemStack(ModItems.motor, 1)); + break; + case CHOPPER_BODY: + list.add(new ItemStack(ModItems.ingot_combine_steel, 26)); + list.add(new ItemStack(ModBlocks.fwatz_computer, 1)); + list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 4)); + list.add(new ItemStack(ModItems.motor, 2)); + list.add(new ItemStack(ModItems.chopper_blades, 2)); + break; + case CHOPPER_TAIL: + list.add(new ItemStack(ModItems.plate_combine_steel, 8)); + list.add(new ItemStack(ModItems.ingot_combine_steel, 5)); + list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 4)); + list.add(new ItemStack(ModItems.motor, 1)); + list.add(new ItemStack(ModItems.chopper_blades, 2)); + break; + case CHOPPER_WING: + list.add(new ItemStack(ModItems.plate_combine_steel, 6)); + list.add(new ItemStack(ModItems.ingot_combine_steel, 3)); + list.add(new ItemStack(ModItems.wire_magnetized_tungsten, 2)); + break; + case CHOPPER_BLADES: + list.add(new ItemStack(ModItems.plate_combine_steel, 8)); + list.add(new ItemStack(ModItems.plate_steel, 2)); + list.add(new ItemStack(ModItems.ingot_combine_steel, 2)); + break; + case CIRCUIT_2: + list.add(new ItemStack(ModItems.circuit_aluminium, 1)); + list.add(new ItemStack(ModItems.wire_copper, 6)); + list.add(new ItemStack(ModItems.powder_quartz, 4)); + break; + case CIRCUIT_3: + list.add(new ItemStack(ModItems.circuit_copper, 1)); + list.add(new ItemStack(ModItems.wire_red_copper, 6)); + list.add(new ItemStack(ModItems.powder_gold, 4)); + break; + case RTG_PELLET: + list.add(new ItemStack(ModItems.nugget_pu238, 5)); + list.add(new ItemStack(ModItems.plate_iron, 2)); + break; + case WEAK_PELLET: + list.add(new ItemStack(ModItems.nugget_u238, 4)); + list.add(new ItemStack(ModItems.nugget_pu238, 1)); + list.add(new ItemStack(ModItems.plate_iron, 2)); + break; + case FUSION_PELLET: + list.add(new ItemStack(ModItems.cell_deuterium, 6)); + list.add(new ItemStack(ModItems.cell_tritium, 2)); + list.add(new ItemStack(ModItems.lithium, 4)); + break; + case CLUSTER_PELLETS: + list.add(new ItemStack(ModItems.plate_steel, 4)); + list.add(new ItemStack(Blocks.tnt, 1)); + break; + case GUN_PELLETS: + list.add(new ItemStack(ModItems.nugget_lead, 6)); + break; + default: + break; } if(list.isEmpty()) @@ -1524,6 +1814,170 @@ public class MachineRecipes { case TEST: output = new ItemStack(ModItems.rotor_steel, 2); break; + case MIXED_PLATE: + output = new ItemStack(ModItems.plate_mixed, 6); + break; + case HAZMAT_CLOTH: + output = new ItemStack(ModItems.hazmat_cloth, 4); + break; + case ASBESTOS_CLOTH: + output = new ItemStack(ModItems.asbestos_cloth, 4); + break; + case COAL_FILTER: + output = new ItemStack(ModItems.filter_coal, 1); + break; + case CENTRIFUGE_ELEMENT: + output = new ItemStack(ModItems.centrifuge_element, 1); + break; + case CENTRIFUGE_TOWER: + output = new ItemStack(ModItems.centrifuge_tower, 1); + break; + case DEE_MAGNET: + output = new ItemStack(ModItems.magnet_dee, 1); + break; + case FLAT_MAGNET: + output = new ItemStack(ModItems.magnet_circular, 1); + break; + case CYCLOTRON_TOWER: + output = new ItemStack(ModItems.cyclotron_tower, 1); + break; + case REACTOR_CORE: + output = new ItemStack(ModItems.reactor_core, 1); + break; + case RTG_UNIT: + output = new ItemStack(ModItems.rtg_unit, 2); + break; + case HEAT_UNIT: + output = new ItemStack(ModItems.thermo_unit_empty, 1); + break; + case GRAVITY_UNIT: + output = new ItemStack(ModItems.levitation_unit, 1); + break; + case TITANIUM_DRILL: + output = new ItemStack(ModItems.drill_titanium, 1); + break; + case TELEPAD: + output = new ItemStack(ModItems.telepad, 1); + break; + case TELEKIT: + output = new ItemStack(ModItems.entanglement_kit, 1); + break; + case GEASS_REACTOR: + output = new ItemStack(ModItems.dysfunctional_reactor, 1); + break; + case GENERATOR_FRONT: + output = new ItemStack(ModItems.generator_front, 1); + break; + case WT1_GENERIC: + output = new ItemStack(ModItems.warhead_generic_small, 1); + break; + case WT2_GENERIC: + output = new ItemStack(ModItems.warhead_generic_medium, 1); + break; + case WT3_GENERIC: + output = new ItemStack(ModItems.warhead_generic_large, 1); + break; + case WT1_FIRE: + output = new ItemStack(ModItems.warhead_incendiary_small, 1); + break; + case WT2_FIRE: + output = new ItemStack(ModItems.warhead_incendiary_medium, 1); + break; + case WT3_FIRE: + output = new ItemStack(ModItems.warhead_incendiary_large, 1); + break; + case WT1_CLUSTER: + output = new ItemStack(ModItems.warhead_cluster_small, 1); + break; + case WT2_CLUSTER: + output = new ItemStack(ModItems.warhead_cluster_medium, 1); + break; + case WT3_CLUSTER: + output = new ItemStack(ModItems.warhead_cluster_large, 1); + break; + case WT1_BUSTER: + output = new ItemStack(ModItems.warhead_buster_small, 1); + break; + case WT2_BUSTER: + output = new ItemStack(ModItems.warhead_buster_medium, 1); + break; + case WT3_BUSTER: + output = new ItemStack(ModItems.warhead_buster_large, 1); + break; + case W_NUCLEAR: + output = new ItemStack(ModItems.warhead_nuclear, 1); + break; + case W_MIRVLET: + output = new ItemStack(ModItems.warhead_mirvlet, 1); + break; + case W_MIRV: + output = new ItemStack(ModItems.warhead_mirv, 1); + break; + case W_ENDOTHERMIC: + output = new ItemStack(ModItems.warhead_thermo_endo, 1); + break; + case W_EXOTHERMIC: + output = new ItemStack(ModItems.warhead_thermo_exo, 1); + break; + case T1_TANK: + output = new ItemStack(ModItems.fuel_tank_small, 1); + break; + case T2_TANK: + output = new ItemStack(ModItems.fuel_tank_medium, 1); + break; + case T3_TANK: + output = new ItemStack(ModItems.fuel_tank_large, 1); + break; + case T1_THRUSTER: + output = new ItemStack(ModItems.thruster_small, 1); + break; + case T2_THRUSTER: + output = new ItemStack(ModItems.thruster_medium, 1); + break; + case T3_THRUSTER: + output = new ItemStack(ModItems.thruster_large, 1); + break; + case CHOPPER_HEAD: + output = new ItemStack(ModItems.chopper_head, 1); + break; + case CHOPPER_GUN: + output = new ItemStack(ModItems.chopper_gun, 1); + break; + case CHOPPER_BODY: + output = new ItemStack(ModItems.chopper_torso, 1); + break; + case CHOPPER_TAIL: + output = new ItemStack(ModItems.chopper_tail, 1); + break; + case CHOPPER_WING: + output = new ItemStack(ModItems.chopper_wing, 1); + break; + case CHOPPER_BLADES: + output = new ItemStack(ModItems.chopper_blades, 1); + break; + case CIRCUIT_2: + output = new ItemStack(ModItems.circuit_copper, 1); + break; + case CIRCUIT_3: + output = new ItemStack(ModItems.circuit_red_copper, 1); + break; + case RTG_PELLET: + output = new ItemStack(ModItems.pellet_rtg, 1); + break; + case WEAK_PELLET: + output = new ItemStack(ModItems.pellet_rtg_weak, 1); + break; + case FUSION_PELLET: + output = new ItemStack(ModItems.tritium_deuterium_cake, 1); + break; + case CLUSTER_PELLETS: + output = new ItemStack(ModItems.pellet_cluster, 1); + break; + case GUN_PELLETS: + output = new ItemStack(ModItems.pellet_buckshot, 1); + break; + default: + break; } return output; diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 387a1ae5a..e0a88ae04 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -507,6 +507,7 @@ public class ModItems { public static Item oil_detector; public static Item assembly_template; + public static Item fluid_identifier; public static Item missile_generic; public static Item missile_anti_ballistic; @@ -963,19 +964,19 @@ public class ModItems { redstone_sword = new RedstoneSword(ToolMaterial.STONE).setUnlocalizedName("redstone_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":redstone_sword"); big_sword = new BigSword(ToolMaterial.EMERALD).setUnlocalizedName("big_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":big_sword"); - test_helmet = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 5, 0).setUnlocalizedName("test_helmet").setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_helmet"); - test_chestplate = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 5, 1).setUnlocalizedName("test_chestplate").setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_chestplate"); - test_leggings = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 5, 2).setUnlocalizedName("test_leggings").setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_leggings"); - test_boots = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 5, 3).setUnlocalizedName("test_boots").setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_boots"); + test_helmet = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 5, 0).setUnlocalizedName("test_helmet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_helmet"); + test_chestplate = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 5, 1).setUnlocalizedName("test_chestplate").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_chestplate"); + test_leggings = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 5, 2).setUnlocalizedName("test_leggings").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_leggings"); + test_boots = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 5, 3).setUnlocalizedName("test_boots").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_boots"); - test_nuke_igniter = new Item().setUnlocalizedName("test_nuke_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_nuke_igniter"); - test_nuke_propellant = new Item().setUnlocalizedName("test_nuke_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_nuke_propellant"); - test_nuke_tier1_shielding = new Item().setUnlocalizedName("test_nuke_tier1_shielding").setMaxStackSize(1).setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_nuke_tier1_shielding"); - test_nuke_tier2_shielding = new Item().setUnlocalizedName("test_nuke_tier2_shielding").setMaxStackSize(1).setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_nuke_tier2_shielding"); - test_nuke_tier1_bullet = new Item().setUnlocalizedName("test_nuke_tier1_bullet").setMaxStackSize(1).setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_nuke_tier1_bullet"); - test_nuke_tier2_bullet = new Item().setUnlocalizedName("test_nuke_tier2_bullet").setMaxStackSize(1).setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_nuke_tier2_bullet"); - test_nuke_tier1_target = new Item().setUnlocalizedName("test_nuke_tier1_target").setMaxStackSize(1).setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_nuke_tier1_target"); - test_nuke_tier2_target = new Item().setUnlocalizedName("test_nuke_tier2_target").setMaxStackSize(1).setCreativeTab(MainRegistry.tabTest).setTextureName(RefStrings.MODID + ":test_nuke_tier2_target"); + test_nuke_igniter = new Item().setUnlocalizedName("test_nuke_igniter").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_igniter"); + test_nuke_propellant = new Item().setUnlocalizedName("test_nuke_propellant").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_propellant"); + test_nuke_tier1_shielding = new Item().setUnlocalizedName("test_nuke_tier1_shielding").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_shielding"); + test_nuke_tier2_shielding = new Item().setUnlocalizedName("test_nuke_tier2_shielding").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_shielding"); + test_nuke_tier1_bullet = new Item().setUnlocalizedName("test_nuke_tier1_bullet").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_bullet"); + test_nuke_tier2_bullet = new Item().setUnlocalizedName("test_nuke_tier2_bullet").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_bullet"); + test_nuke_tier1_target = new Item().setUnlocalizedName("test_nuke_tier1_target").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_target"); + test_nuke_tier2_target = new Item().setUnlocalizedName("test_nuke_tier2_target").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_target"); ingot_uranium = new ItemRadioactive().setUnlocalizedName("ingot_uranium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_uranium"); ingot_u235 = new ItemRadioactive().setUnlocalizedName("ingot_u235").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_uranium"); @@ -1593,18 +1594,18 @@ public class ModItems { factory_core_advanced = new ItemBattery(41600).setUnlocalizedName("factory_core_advanced").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":factory_core_advanced"); upgrade_template = new ItemCustomLore().setUnlocalizedName("upgrade_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_template"); - upgrade_speed_1 = new ItemCustomLore().setUnlocalizedName("upgrade_speed_1").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_speed_1"); - upgrade_speed_2 = new ItemCustomLore().setUnlocalizedName("upgrade_speed_2").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_speed_2"); - upgrade_speed_3 = new ItemCustomLore().setUnlocalizedName("upgrade_speed_3").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_speed_3"); - upgrade_effect_1 = new ItemCustomLore().setUnlocalizedName("upgrade_effect_1").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_effect_1"); - upgrade_effect_2 = new ItemCustomLore().setUnlocalizedName("upgrade_effect_2").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_effect_2"); - upgrade_effect_3 = new ItemCustomLore().setUnlocalizedName("upgrade_effect_3").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_effect_3"); - upgrade_power_1 = new ItemCustomLore().setUnlocalizedName("upgrade_power_1").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_power_1"); - upgrade_power_2 = new ItemCustomLore().setUnlocalizedName("upgrade_power_2").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_power_2"); - upgrade_power_3 = new ItemCustomLore().setUnlocalizedName("upgrade_power_3").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_power_3"); - upgrade_fortune_1 = new ItemCustomLore().setUnlocalizedName("upgrade_fortune_1").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_fortune_1"); - upgrade_fortune_2 = new ItemCustomLore().setUnlocalizedName("upgrade_fortune_2").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_fortune_2"); - upgrade_fortune_3 = new ItemCustomLore().setUnlocalizedName("upgrade_fortune_3").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_fortune_3"); + upgrade_speed_1 = new ItemCustomLore().setUnlocalizedName("upgrade_speed_1").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_speed_1"); + upgrade_speed_2 = new ItemCustomLore().setUnlocalizedName("upgrade_speed_2").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_speed_2"); + upgrade_speed_3 = new ItemCustomLore().setUnlocalizedName("upgrade_speed_3").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_speed_3"); + upgrade_effect_1 = new ItemCustomLore().setUnlocalizedName("upgrade_effect_1").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_effect_1"); + upgrade_effect_2 = new ItemCustomLore().setUnlocalizedName("upgrade_effect_2").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_effect_2"); + upgrade_effect_3 = new ItemCustomLore().setUnlocalizedName("upgrade_effect_3").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_effect_3"); + upgrade_power_1 = new ItemCustomLore().setUnlocalizedName("upgrade_power_1").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_power_1"); + upgrade_power_2 = new ItemCustomLore().setUnlocalizedName("upgrade_power_2").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_power_2"); + upgrade_power_3 = new ItemCustomLore().setUnlocalizedName("upgrade_power_3").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_power_3"); + upgrade_fortune_1 = new ItemCustomLore().setUnlocalizedName("upgrade_fortune_1").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_fortune_1"); + upgrade_fortune_2 = new ItemCustomLore().setUnlocalizedName("upgrade_fortune_2").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_fortune_2"); + upgrade_fortune_3 = new ItemCustomLore().setUnlocalizedName("upgrade_fortune_3").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_fortune_3"); wand = new ItemWand().setUnlocalizedName("wand_k").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setFull3D().setTextureName(RefStrings.MODID + ":wand"); wand_s = new ItemWandS().setUnlocalizedName("wand_s").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setFull3D().setTextureName(RefStrings.MODID + ":wand_s"); @@ -1662,7 +1663,8 @@ public class ModItems { linker = new ItemTeleLink().setUnlocalizedName("linker").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":linker"); oil_detector = new ItemOilDetector().setUnlocalizedName("oil_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":oil_detector"); - assembly_template = new ItemAssemblyTemplate().setUnlocalizedName("assembly_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":assembly_template"); + assembly_template = new ItemAssemblyTemplate().setUnlocalizedName("assembly_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":assembly_template"); + fluid_identifier = new ItemFluidIdentifier().setUnlocalizedName("fluid_identifier").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":fluid_identifier"); euphemium_helmet = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 0).setUnlocalizedName("astatine_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_helmet"); euphemium_plate = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 1).setUnlocalizedName("astatine_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_plate"); @@ -1753,7 +1755,7 @@ public class ModItems { australium_iv = new ArmorAustralium(MainRegistry.enumArmorMaterialAusIV, 9, 1).setUnlocalizedName("australium_iv").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":australium_iv"); australium_v = new ArmorAustralium(MainRegistry.enumArmorMaterialAusV, 9, 1).setUnlocalizedName("australium_v").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":australium_v"); - cape_test = new ArmorModel(MainRegistry.enumArmorMaterialEmerald, 9, 1).setUnlocalizedName("cape_test").setCreativeTab(MainRegistry.tabTest).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_test"); + cape_test = new ArmorModel(MainRegistry.enumArmorMaterialEmerald, 9, 1).setUnlocalizedName("cape_test").setCreativeTab(null).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_test"); cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_radiation").setCreativeTab(MainRegistry.tabNuke).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation"); cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.tabNuke).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask"); cape_schrabidium = new ArmorModel(MainRegistry.enumArmorMaterialSchrabidium, 9, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.tabNuke).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium"); @@ -2262,6 +2264,7 @@ public class ModItems { GameRegistry.registerItem(factory_core_advanced, factory_core_advanced.getUnlocalizedName()); //Machine Templates + GameRegistry.registerItem(fluid_identifier, fluid_identifier.getUnlocalizedName()); GameRegistry.registerItem(assembly_template, assembly_template.getUnlocalizedName()); //Machine Upgrades diff --git a/com/hbm/items/tool/ItemAssemblyTemplate.java b/com/hbm/items/tool/ItemAssemblyTemplate.java index ce443315c..744ec1541 100644 --- a/com/hbm/items/tool/ItemAssemblyTemplate.java +++ b/com/hbm/items/tool/ItemAssemblyTemplate.java @@ -34,16 +34,31 @@ public class ItemAssemblyTemplate extends Item { public enum EnumAssemblyTemplate { - TEST(0); + TEST, MIXED_PLATE, HAZMAT_CLOTH, ASBESTOS_CLOTH, COAL_FILTER, CENTRIFUGE_ELEMENT, CENTRIFUGE_TOWER, + DEE_MAGNET, FLAT_MAGNET, CYCLOTRON_TOWER, REACTOR_CORE, RTG_UNIT, HEAT_UNIT, GRAVITY_UNIT, + TITANIUM_DRILL, TELEPAD, TELEKIT, GEASS_REACTOR, GENERATOR_FRONT, WT1_GENERIC, WT2_GENERIC, + WT3_GENERIC, WT1_FIRE, WT2_FIRE, WT3_FIRE, WT1_CLUSTER, WT2_CLUSTER, WT3_CLUSTER, WT1_BUSTER, + WT2_BUSTER, WT3_BUSTER, W_NUCLEAR, W_MIRVLET, W_MIRV, W_ENDOTHERMIC, W_EXOTHERMIC, T1_TANK, T2_TANK, + T3_TANK, T1_THRUSTER, T2_THRUSTER, T3_THRUSTER, CHOPPER_HEAD, CHOPPER_GUN, CHOPPER_BODY, + CHOPPER_TAIL, CHOPPER_WING, CHOPPER_BLADES, CIRCUIT_2, CIRCUIT_3, RTG_PELLET, WEAK_PELLET, + FUSION_PELLET, CLUSTER_PELLETS, GUN_PELLETS, AUSTRALIUM_MACHINE, MAGNETRON, W_SP, W_SHE, W_SME, + W_SLE, W_B, W_N, W_L, W_A, UPGRADE_TEMPLATE, UPGRADE_RED_I, UPGRADE_RED_II, UPGRADE_RED_III, + UPGRADE_GREEN_I, UPGRADE_GREEN_II, UPGRADE_GREEN_III, UPGRADE_BLUE_I, UPGRADE_BLUE_II, + UPGRADE_BLUE_III, UPGRADE_PURPLE_I, UPGRADE_PURPLE_II, UPGRADE_PURPLE_III, FUSE, REDCOIL_CAPACITOR, + TITANIUM_FILTER, LITHIUM_BOX, BERYLLIUM_BOX, COAL_BOX, COPPER_BOX, PLUTONIUM_BOX, THERMO_ELEMENT, + LIMITER, ANGRY_METAL, CMB_TILE, CMB_BRICKS, HATCH_FRAME, HATCH_CONTROLLER, CENTRIFUGE, + BREEDING_REACTOR, RTG_FURNACE, DIESEL_GENERATOR, NUCLEAR_GENERATOR, INDUSTRIAL_GENERATOR, CACLOTRON, + RT_GENERATOR, BATTERY, HE_TO_RF, RF_TO_HE, SHREDDER, DEUTERIUM_EXTRACTOR, DERRICK, FLARE_STACK, + REFINERY; - private final int value; - private EnumAssemblyTemplate(int value) { - this.value = value; - } + //private final int value; + //private EnumAssemblyTemplate(int value) { + // this.value = value; + //} - public int getValue() { - return value; - } + //public int getValue() { + // return value; + //} public static EnumAssemblyTemplate getEnum(int i) { return EnumAssemblyTemplate.values()[i]; @@ -112,7 +127,34 @@ public class ItemAssemblyTemplate extends Item { } } catch(Exception e) { list.add("###INVALID###"); + list.add("0x334077-0x6A298F-0xDF3795-0x334077"); } } + + /*public Motif getColorMotifFromTemplate(EnumAssemblyTemplate temp) { + + //using deprecated value operator, will remove soon + if(temp.getValue() > 0) { + Motif scheme = new Motif(temp.getValue, null); + scheme.setTextureSize(16, 16); + //scheme.applyUniversalScheme(); + scheme.colorCount = 4; + //universal scheme configuration for testing + //TODO: get textures properly baked, display color for shield + scheme.addColor(0x334077); + scheme.addColor(0x6A298F); + scheme.addColor(0xDF3795); + scheme.addColor(0x334077); + + //different test config; prpl, lprpl, cyn, prpl + + scheme.unify(); + return scheme; + + } else { + //return null; + return Motif.defaultInstance; + } + }*/ } diff --git a/com/hbm/items/tool/ItemFluidIdentifier.java b/com/hbm/items/tool/ItemFluidIdentifier.java new file mode 100644 index 000000000..5e0ea5f18 --- /dev/null +++ b/com/hbm/items/tool/ItemFluidIdentifier.java @@ -0,0 +1,132 @@ +package com.hbm.items.tool; + +import java.util.Collections; +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.bomb.BlockCrashedBomb; +import com.hbm.entity.logic.EntityNukeExplosionAdvanced; +import com.hbm.explosion.ExplosionParticleB; +import com.hbm.handler.FluidTypeHandler; +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.inventory.MachineRecipes; +import com.hbm.items.ModItems; +import com.hbm.tileentity.TileEntityFluidDuct; + +import cpw.mods.fml.common.eventhandler.Event.Result; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockColored; +import net.minecraft.block.BlockLog; +import net.minecraft.block.IGrowable; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.resources.I18n; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.passive.EntitySheep; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.util.FakePlayerFactory; +import net.minecraftforge.event.entity.player.BonemealEvent; +import scala.actors.threadpool.Arrays; + +public class ItemFluidIdentifier extends Item { + + IIcon overlayIcon; + + public ItemFluidIdentifier() + { + this.setHasSubtypes(true); + this.setMaxDamage(0); + } + + public String getUnlocalizedName(ItemStack stack) + { + int i = stack.getItemDamage(); + return super.getUnlocalizedName() + "." + FluidType.getEnum(i).getName(); + } + + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) + { + for (int i = 0; i < FluidType.values().length; ++i) + { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) + { + + if(!(stack.getItem() instanceof ItemFluidIdentifier)) + return; + + list.add("Universal fluid identifier for:"); + list.add(" " + FluidType.getEnum(stack.getItemDamage()).getName()); + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) + { + TileEntity te = world.getTileEntity(x, y, z); + if(te != null && te instanceof TileEntityFluidDuct) { + TileEntityFluidDuct duct = (TileEntityFluidDuct)te; + + duct.type = FluidType.getEnum(stack.getItemDamage()); + } + return false; + } + + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() + { + return true; + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister p_94581_1_) + { + super.registerIcons(p_94581_1_); + + this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_identifier_overlay"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) + { + return p_77618_2_ == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_); + } + + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int p_82790_2_) + { + if (p_82790_2_ == 0) + { + return 16777215; + } + else + { + int j = FluidType.getEnum(stack.getItemDamage()).getMSAColor(); + + if (j < 0) + { + j = 16777215; + } + + return j; + } + } + +} diff --git a/com/hbm/lib/Library.java b/com/hbm/lib/Library.java index 5d10a3af0..920e55261 100644 --- a/com/hbm/lib/Library.java +++ b/com/hbm/lib/Library.java @@ -10,8 +10,10 @@ import com.hbm.calc.UnionOfTileEntitiesAndBooleansForGas; import com.hbm.calc.UnionOfTileEntitiesAndBooleansForOil; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; +import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IConductor; import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.IFluidDuct; import com.hbm.interfaces.IGasAcceptor; import com.hbm.interfaces.IGasDuct; import com.hbm.interfaces.IGasSource; @@ -23,6 +25,7 @@ import com.hbm.items.ModItems; import com.hbm.items.special.ItemBattery; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityCable; +import com.hbm.tileentity.TileEntityFluidDuct; import com.hbm.tileentity.TileEntityGasDuct; import com.hbm.tileentity.TileEntityGasDuctSolid; import com.hbm.tileentity.TileEntityLaunchPad; @@ -311,6 +314,17 @@ public class Library { return false; } + public static boolean checkFluidConnectables(World world, int x, int y, int z, FluidType type) + { + TileEntity tileentity = world.getTileEntity(x, y, z); + if((tileentity != null && tileentity instanceof TileEntityFluidDuct)) + { + if(((TileEntityFluidDuct)tileentity).type == type) + return true; + } + return false; + } + public static boolean checkUnionList(List list, ISource that) { for(UnionOfTileEntitiesAndBooleans union : list) diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 786be5a7e..6b9049c71 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -173,6 +173,7 @@ import com.hbm.render.tileentity.RenderCyclotron; import com.hbm.render.tileentity.RenderDecoBlock; import com.hbm.render.tileentity.RenderDecoBlockAlt; import com.hbm.render.tileentity.RenderDerrick; +import com.hbm.render.tileentity.RenderFluidDuct; import com.hbm.render.tileentity.RenderGasDuct; import com.hbm.render.tileentity.RenderGasFlare; import com.hbm.render.tileentity.RenderIGenerator; @@ -215,6 +216,7 @@ import com.hbm.tileentity.TileEntityDecoPoleSatelliteReceiver; import com.hbm.tileentity.TileEntityDecoPoleTop; import com.hbm.tileentity.TileEntityDecoSteelPoles; import com.hbm.tileentity.TileEntityDecoTapeRecorder; +import com.hbm.tileentity.TileEntityFluidDuct; import com.hbm.tileentity.TileEntityGasDuct; import com.hbm.tileentity.TileEntityMachineIGenerator; import com.hbm.tileentity.TileEntityMachineMiningDrill; @@ -408,6 +410,7 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCable.class, new RenderCable()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityOilDuct.class, new RenderOilDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGasDuct.class, new RenderGasDuct()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonRedWire.class, new RenderPylon()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStructureMarker.class, new RenderStructureMaker()); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 61fa78413..48cfd1504 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -26,6 +26,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.creativetabs.BlockTab; +import com.hbm.creativetabs.MachineTab; import com.hbm.creativetabs.NukeTab; import com.hbm.creativetabs.PartsTab; import com.hbm.creativetabs.TestTab; @@ -115,6 +116,7 @@ import com.hbm.handler.GUIHandler; import com.hbm.inventory.MachineRecipes; import com.hbm.inventory.MachineRecipes.ShredderRecipe; import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemFluidIdentifier; import com.hbm.lib.HbmWorld; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; @@ -134,6 +136,7 @@ import com.hbm.tileentity.TileEntityDecoTapeRecorder; import com.hbm.tileentity.TileEntityDiFurnace; import com.hbm.tileentity.TileEntityDummy; import com.hbm.tileentity.TileEntityFWatzCore; +import com.hbm.tileentity.TileEntityFluidDuct; import com.hbm.tileentity.TileEntityFusionMultiblock; import com.hbm.tileentity.TileEntityGasDuct; import com.hbm.tileentity.TileEntityGasDuctSolid; @@ -248,9 +251,9 @@ public class MainRegistry public static ArmorMaterial enumArmorMaterialAusV = EnumHelper.addArmorMaterial("AUSV", 375, new int[] {2, 6, 5, 2}, 0); //Creative Tabs - public static CreativeTabs tabTest = new TestTab(CreativeTabs.getNextID(), "tabTest"); public static CreativeTabs tabParts = new PartsTab(CreativeTabs.getNextID(), "tabParts"); public static CreativeTabs tabBlock = new BlockTab(CreativeTabs.getNextID(), "tabBlocks"); + public static CreativeTabs tabMachine = new MachineTab(CreativeTabs.getNextID(), "tabMachine"); public static CreativeTabs tabNuke = new NukeTab(CreativeTabs.getNextID(), "tabNuke"); //Achievements @@ -457,6 +460,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityStructureMarker.class, "tileentity_structure_marker"); GameRegistry.registerTileEntity(TileEntityMachineMiningDrill.class, "tileentity_mining_drill"); GameRegistry.registerTileEntity(TileEntityMachineAssembler.class, "tileentity_assembly_machine"); + GameRegistry.registerTileEntity(TileEntityFluidDuct.class, "tileentity_universal_duct"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); diff --git a/com/hbm/packet/PacketDispatcher.java b/com/hbm/packet/PacketDispatcher.java index 233844da3..9f7963ae9 100644 --- a/com/hbm/packet/PacketDispatcher.java +++ b/com/hbm/packet/PacketDispatcher.java @@ -23,6 +23,8 @@ public class PacketDispatcher { wrapper.registerMessage(TEStructurePacket.Handler.class, TEStructurePacket.class, 3, Side.CLIENT); //Mingin drill rotation for rendering wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, 4, Side.CLIENT); + //Fluid type for pipe rendering + wrapper.registerMessage(TEFluidPipePacket.Handler.class, TEFluidPipePacket.class, 5, Side.CLIENT); } } diff --git a/com/hbm/packet/TEFluidPipePacket.java b/com/hbm/packet/TEFluidPipePacket.java new file mode 100644 index 000000000..714821e80 --- /dev/null +++ b/com/hbm/packet/TEFluidPipePacket.java @@ -0,0 +1,75 @@ +package com.hbm.packet; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.tileentity.TileEntityFluidDuct; +import com.hbm.tileentity.TileEntityMachineIGenerator; +import com.hbm.tileentity.TileEntityPylonRedWire; + +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.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class TEFluidPipePacket implements IMessage { + + int x; + int y; + int z; + FluidType type; + + public TEFluidPipePacket() + { + + } + + public TEFluidPipePacket(int x, int y, int z, FluidType type) + { + this.x = x; + this.y = y; + this.z = z; + this.type = type; + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + type = FluidType.getEnum(buf.readInt()); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + for (int i = 0; i < FluidType.values().length; ++i) + { + if(FluidType.values()[i] == type) { + buf.writeInt(i); + break; + } + } + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(TEFluidPipePacket m, MessageContext ctx) { + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if (te != null && te instanceof TileEntityFluidDuct) { + + TileEntityFluidDuct duct = (TileEntityFluidDuct) te; + duct.type = m.type; + } + return null; + } + } +} diff --git a/com/hbm/render/tileentity/RenderFluidDuct.java b/com/hbm/render/tileentity/RenderFluidDuct.java new file mode 100644 index 000000000..547ea0a38 --- /dev/null +++ b/com/hbm/render/tileentity/RenderFluidDuct.java @@ -0,0 +1,197 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.TileEntityCable; +import com.hbm.tileentity.TileEntityFluidDuct; +import com.hbm.tileentity.TileEntityGasDuct; +import com.hbm.tileentity.TileEntityOilDuct; + +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; + +public class RenderFluidDuct extends TileEntitySpecialRenderer { + + public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/fluid_duct.png"); + float pixel = 1F/16F; + float textureP = 1F / 32F; + + @Override + public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { + GL11.glTranslated(offsetX, offsetY, offsetZ); + GL11.glDisable(GL11.GL_LIGHTING); + this.bindTexture(texture); + drawCore(tileentity); + TileEntityFluidDuct cable = (TileEntityFluidDuct) tileentity; + for(int i = 0; i < cable.connections.length; i++) + { + if(cable.connections[i] != null) + { + drawConnection(cable.connections[i], cable.type.getColor()); + } + } + GL11.glTranslated(-offsetX, -offsetY, -offsetZ); + GL11.glEnable(GL11.GL_LIGHTING); + + } + + public void drawCore(TileEntity tileentity) { + Tessellator tesseract = Tessellator.instance; + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + tesseract.draw(); + } + + public void drawConnection(ForgeDirection direction, int hex) + { + Tessellator tesseract = Tessellator.instance; + tesseract.startDrawingQuads(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + if(direction.equals(ForgeDirection.UP)) + { + + } + if(direction.equals(ForgeDirection.DOWN)) + { + GL11.glRotatef(180, 1, 0, 0); + } + if(direction.equals(ForgeDirection.NORTH)) + { + GL11.glRotatef(270, 1, 0, 0); + } + if(direction.equals(ForgeDirection.SOUTH)) + { + GL11.glRotatef(90, 1, 0, 0); + } + if(direction.equals(ForgeDirection.EAST)) + { + GL11.glRotatef(270, 0, 0, 1); + } + if(direction.equals(ForgeDirection.WEST)) + { + GL11.glRotatef(90, 0, 0, 1); + } + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.draw(); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_CULL_FACE); + float p = 0.01F; + float n = -0.01F; + int r = (hex & 0xFF0000) >> 16; + int g = (hex & 0xFF00) >> 8; + int b = (hex & 0xFF); + tesseract.startDrawing(5); + tesseract.setColorRGBA(r, g, b, 255); + tesseract.addVertex(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n); + tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); + tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n); + tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); + tesseract.draw(); + + tesseract.startDrawing(5); + tesseract.setColorRGBA(r, g, b, 255); + tesseract.addVertex(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p); + tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); + tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p); + tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); + tesseract.draw(); + + tesseract.startDrawing(5); + tesseract.setColorRGBA(r, g, b, 255); + tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p); + tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); + tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n); + tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); + tesseract.draw(); + + tesseract.startDrawing(5); + tesseract.setColorRGBA(r, g, b, 255); + tesseract.addVertex(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p); + tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); + tesseract.addVertex(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n); + tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); + tesseract.draw(); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + if(direction.equals(ForgeDirection.UP)) + { + + } + if(direction.equals(ForgeDirection.DOWN)) + { + GL11.glRotatef(-180, 1, 0, 0); + } + if(direction.equals(ForgeDirection.NORTH)) + { + GL11.glRotatef(-270, 1, 0, 0); + } + if(direction.equals(ForgeDirection.SOUTH)) + { + GL11.glRotatef(-90, 1, 0, 0); + } + if(direction.equals(ForgeDirection.EAST)) + { + GL11.glRotatef(-270, 0, 0, 1); + } + if(direction.equals(ForgeDirection.WEST)) + { + GL11.glRotatef(-90, 0, 0, 1); + } + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + } +} diff --git a/com/hbm/tileentity/TileEntityFluidDuct.java b/com/hbm/tileentity/TileEntityFluidDuct.java new file mode 100644 index 000000000..daaf8894a --- /dev/null +++ b/com/hbm/tileentity/TileEntityFluidDuct.java @@ -0,0 +1,78 @@ +package com.hbm.tileentity; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.calc.UnionOfTileEntitiesAndBooleansForGas; +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.interfaces.IFluidDuct; +import com.hbm.interfaces.IGasDuct; +import com.hbm.lib.Library; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.TEFluidPipePacket; +import com.hbm.packet.TEIGeneratorPacket; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityFluidDuct extends TileEntity implements IFluidDuct { + + public ForgeDirection[] connections = new ForgeDirection[6]; + public FluidType type = FluidType.NONE; + + //public List uoteab = new ArrayList(); + + public TileEntityFluidDuct() { + + } + + public void updateEntity() { + + if(!worldObj.isRemote) + PacketDispatcher.wrapper.sendToAll(new TEFluidPipePacket(xCoord, yCoord, zCoord, type)); + + this.updateConnections(); + } + + public void updateConnections() { + if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) connections[0] = ForgeDirection.UP; + else connections[0] = null; + + if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) connections[1] = ForgeDirection.DOWN; + else connections[1] = null; + + if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) connections[2] = ForgeDirection.NORTH; + else connections[2] = null; + + if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) connections[3] = ForgeDirection.EAST; + else connections[3] = null; + + if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) connections[4] = ForgeDirection.SOUTH; + else connections[4] = null; + + if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) connections[5] = ForgeDirection.WEST; + else connections[5] = null; + } + + public void readFromNBT(NBTTagCompound nbt) + { + this.type = FluidType.values()[nbt.getInteger("fluid")]; + } + + public void writeToNBT(NBTTagCompound nbt) + { + for(int i = 0; i < FluidType.values().length; i++) + if(FluidType.values()[i] == this.type) + nbt.setInteger("fluid", i); + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() + { + return 65536.0D; + } +} diff --git a/com/hbm/tileentity/TileEntityMachineAssembler.java b/com/hbm/tileentity/TileEntityMachineAssembler.java index cbd414202..96b4c42c4 100644 --- a/com/hbm/tileentity/TileEntityMachineAssembler.java +++ b/com/hbm/tileentity/TileEntityMachineAssembler.java @@ -237,8 +237,10 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve power -= 100; } - } - } + } else + progress = 0; + } else + progress = 0; } @@ -412,7 +414,7 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve ItemStack sta = array[i].copy(); sta.stackSize = 1; - if(sta != null && sta.isItemEqual(st) && array[i].stackSize > 0) { + if(sta != null && isItemAcceptible(sta, st) && array[i].stackSize > 0) { array[i].stackSize--; if(array[i].stackSize <= 0) @@ -425,6 +427,26 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve 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; + } @Override public void setPower(int i) { diff --git a/com/hbm/tileentity/TileEntityMachineMiningDrill.java b/com/hbm/tileentity/TileEntityMachineMiningDrill.java index f3ea27c3c..cf5f0151f 100644 --- a/com/hbm/tileentity/TileEntityMachineMiningDrill.java +++ b/com/hbm/tileentity/TileEntityMachineMiningDrill.java @@ -561,7 +561,7 @@ public class TileEntityMachineMiningDrill extends TileEntity implements ISidedIn /** * returns true if there has been a successful mining operation - * returns false if no block could be mined + * returns false if no block could be mined and the drill is ready to extend * */ public boolean drill1(int x, int y, int z) {