From 5ed9d3126ff414f159a473d07b487fcbc946994f Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 23 Feb 2022 10:37:04 +0100 Subject: [PATCH 1/9] chemplant recipes for TNT and bakelite, rubber, C4, better chem icons --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 +++ .../java/com/hbm/blocks/bomb/BlockSemtex.java | 5 ++-- .../com/hbm/crafting/ConsumableRecipes.java | 2 +- .../java/com/hbm/crafting/MineralRecipes.java | 1 + .../java/com/hbm/crafting/PowderRecipes.java | 10 +++++--- .../java/com/hbm/hazard/HazardRegistry.java | 12 +++++++--- .../com/hbm/inventory/OreDictManager.java | 22 ++++++++++-------- .../inventory/recipes/ChemplantRecipes.java | 21 +++++++++++++++-- src/main/java/com/hbm/items/ModItems.java | 6 +++++ .../java/com/hbm/main/CraftingManager.java | 3 +-- .../assets/hbm/textures/blocks/block_c4.png | Bin 0 -> 498 bytes .../hbm/textures/blocks/block_c4_front.png | Bin 0 -> 610 bytes .../hbm/textures/items/chem_icon_BAKELITE.png | Bin 0 -> 319 bytes .../hbm/textures/items/chem_icon_C4.png | Bin 0 -> 373 bytes .../hbm/textures/items/chem_icon_DESH.png | Bin 256 -> 523 bytes .../hbm/textures/items/chem_icon_POLYMER.png | Bin 274 -> 265 bytes .../hbm/textures/items/chem_icon_RUBBER.png | Bin 0 -> 290 bytes .../hbm/textures/items/chem_icon_TEL.png | Bin 185 -> 418 bytes .../hbm/textures/items/chem_icon_TNT.png | Bin 0 -> 414 bytes .../hbm/textures/items/ingot_rubber.png | Bin 0 -> 248 bytes 20 files changed, 61 insertions(+), 24 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_c4.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_c4_front.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_BAKELITE.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_C4.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_RUBBER.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_TNT.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_rubber.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7b7c3b9d3..53a487000 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -247,6 +247,7 @@ public class ModBlocks { public static Block block_actinium; public static Block block_tritium; public static Block block_semtex; + public static Block block_c4; public static Block block_smore; public static Block block_australium; @@ -1437,6 +1438,7 @@ public class ModBlocks { block_actinium = new BlockHazard().makeBeaconable().setBlockName("block_actinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_actinium"); block_tritium = new BlockRotatablePillar(Material.glass, RefStrings.MODID + ":block_tritium_top").setBlockName("block_tritium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGlass).setHardness(3.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_tritium_side"); block_semtex = new BlockSemtex(Material.tnt).setBlockName("block_semtex").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_semtex"); + block_c4 = new BlockSemtex(Material.tnt).setBlockName("block_c4").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_c4"); block_smore = new BlockPillar(Material.rock, RefStrings.MODID + ":block_smore_top").setBlockName("block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":block_smore_side"); block_australium = new BlockBeaconable(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium"); @@ -2449,6 +2451,7 @@ public class ModBlocks { GameRegistry.registerBlock(block_actinium, block_actinium.getUnlocalizedName()); GameRegistry.registerBlock(block_tritium, block_tritium.getUnlocalizedName()); GameRegistry.registerBlock(block_semtex, block_semtex.getUnlocalizedName()); + GameRegistry.registerBlock(block_c4, block_c4.getUnlocalizedName()); GameRegistry.registerBlock(block_smore, block_smore.getUnlocalizedName()); //Bottlecap Blocks diff --git a/src/main/java/com/hbm/blocks/bomb/BlockSemtex.java b/src/main/java/com/hbm/blocks/bomb/BlockSemtex.java index ee5dd37d0..d0c13b073 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockSemtex.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockSemtex.java @@ -3,7 +3,6 @@ package com.hbm.blocks.bomb; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.interfaces.IBomb; -import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -29,8 +28,8 @@ public class BlockSemtex extends Block implements IBomb { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister p_149651_1_) { - this.blockIcon = p_149651_1_.registerIcon(RefStrings.MODID + ":block_semtex"); - this.topIcon = p_149651_1_.registerIcon(RefStrings.MODID + ":block_semtex_front"); + this.blockIcon = p_149651_1_.registerIcon(this.getTextureName()); + this.topIcon = p_149651_1_.registerIcon(this.getTextureName() + "_front"); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index d29e87d7b..9768e3d30 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -115,7 +115,7 @@ public class ConsumableRecipes { //Medicine CraftingManager.addRecipeAuto(new ItemStack(ModItems.pill_iodine, 8), new Object[] { "IF", 'I', I.dust(), 'F', F.dust() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.plan_c, 1), new Object[] { "PFP", 'P', ModItems.powder_poison, 'F', F.dust() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.radx, 1), new Object[] { COAL.dust(), F.dust(), F.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.radx, 1), new Object[] { COAL.dust(), COAL.dust(), F.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.siox, 8), new Object[] { COAL.dust(), ASBESTOS.dust(), ModItems.nugget_bismuth }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.xanax, 1), new Object[] { COAL.dust(), KNO.dust(), BR.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.fmn, 1), new Object[] { COAL.dust(), PO210.dust(), ST.dust() }); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 585bf1b6f..9776df885 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -46,6 +46,7 @@ public class MineralRecipes { add1To9Pair(ModBlocks.block_waste_vitrified, ModItems.nuclear_waste_vitrified); add1To9Pair(ModBlocks.block_niobium, ModItems.ingot_niobium); add1To9Pair(ModBlocks.block_semtex, ModItems.ingot_semtex); + add1To9Pair(ModBlocks.block_c4, ModItems.ingot_c4); addMineralSet(ModItems.nugget_bismuth, ModItems.ingot_bismuth, ModBlocks.block_bismuth); addMineralSet(ModItems.nugget_tantalium, ModItems.ingot_tantalium, ModBlocks.block_tantalium); diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index d8863029d..2c554ef88 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -18,10 +18,15 @@ public class PowderRecipes { public static void register() { - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_power, 5), new Object[] { REDSTONE.dust(), "dustGlowstone", DIAMOND.dust(), NP237.dust(), MAGTUNG.dust() }); + //Explosives 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[] { Fluids.AROMATICS.getDict(1000), KNO.dust(), KEY_TOOL_CHEMISTRYSET }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ingot_c4, 4), new Object[] { Fluids.UNSATURATEDS.getDict(1000), KNO.dust(), KEY_TOOL_CHEMISTRYSET }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_semtex_mix, 3), new Object[] { ModItems.solid_fuel, ModItems.cordite, KNO.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_semtex_mix, 1), new Object[] { ModItems.solid_fuel, ModItems.ballistite, KNO.dust() }); + + //Other 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[] { Fluids.AROMATICS.getDict(1000), Fluids.PETROLEUM.getDict(1000), KEY_TOOL_CHEMISTRYSET }); @@ -32,13 +37,12 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(Items.gunpowder, 3), new Object[] { S.dust(), KNO.dust(), new ItemStack(Items.coal, 1, 1) }); //Blends + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_power, 5), new Object[] { REDSTONE.dust(), "dustGlowstone", DIAMOND.dust(), NP237.dust(), MAGTUNG.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_nitan_mix, 6), new Object[] { NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), CS.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_nitan_mix, 6), new Object[] { ST.dust(), CO.dust(), BR.dust(), TS.dust(), NB.dust(), CE.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_spark_mix, 5), new Object[] { DESH.dust(), EUPH.dust(), ModItems.powder_meteorite, ModItems.powder_power, ModItems.powder_nitan_mix }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_meteorite, 5), new Object[] { IRON.dust(), CU.dust(), LI.dust(), W.dust(), U.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_thermite, 4), new Object[] { IRON.dust(), IRON.dust(), IRON.dust(), AL.dust() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_semtex_mix, 3), new Object[] { ModItems.solid_fuel, ModItems.cordite, KNO.dust() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_semtex_mix, 1), new Object[] { ModItems.solid_fuel, ModItems.ballistite, KNO.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_desh_mix, 1), new Object[] { B.dustTiny(), B.dustTiny(), LA.dustTiny(), LA.dustTiny(), CE.dustTiny(), CO.dustTiny(), LI.dustTiny(), ND.dustTiny(), NB.dustTiny() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_desh_mix, 9), new Object[] { B.dust(), B.dust(), LA.dust(), LA.dust(), CE.dust(), CO.dust(), LI.dust(), ND.dust(), NB.dust() }); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 54b95a577..897d9ff9b 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -152,16 +152,22 @@ public class HazardRegistry { HazardSystem.register(Blocks.tnt, makeData(EXPLOSIVE, 4F)); HazardSystem.register(Items.pumpkin_pie, makeData(EXPLOSIVE, 1F)); - HazardSystem.register(ModItems.ball_dynamite, makeData(EXPLOSIVE, 2F)); - HazardSystem.register(ModItems.stick_dynamite, makeData(EXPLOSIVE, 1F)); + HazardSystem.register(ball_dynamite, makeData(EXPLOSIVE, 2F)); + HazardSystem.register(ball_tnt, makeData(EXPLOSIVE, 3F)); + HazardSystem.register(stick_dynamite, makeData(EXPLOSIVE, 1F)); + HazardSystem.register(stick_tnt, makeData(EXPLOSIVE, 1.5F)); + HazardSystem.register(dynamite, makeData(EXPLOSIVE, 6F)); + HazardSystem.register(tnt, makeData(EXPLOSIVE, 8F)); HazardSystem.register("dustCoal", makeData(COAL, powder)); HazardSystem.register("dustTinyCoal", makeData(COAL, powder_tiny)); HazardSystem.register("dustLignite", makeData(COAL, powder)); HazardSystem.register("dustTinyLignite", makeData(COAL, powder_tiny)); - + HazardSystem.register(ingot_semtex, makeData(EXPLOSIVE, 10F)); HazardSystem.register(block_semtex, makeData(EXPLOSIVE, 40F)); + HazardSystem.register(ingot_c4, makeData(EXPLOSIVE, 10F)); + HazardSystem.register(block_c4, makeData(EXPLOSIVE, 40F)); HazardSystem.register(cordite, makeData(EXPLOSIVE, 2F)); HazardSystem.register(ballistite, makeData(EXPLOSIVE, 1F)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index e86525244..14f191f71 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -164,6 +164,7 @@ public class OreDictManager { public static final DictFrame DURA = new DictFrame("DuraSteel"); public static final DictFrame POLYMER = new DictFrame("Polymer"); public static final DictFrame BAKELITE = new DictFrame("Bakelite"); + public static final DictFrame RUBBER = new DictFrame("Rubber"); public static final DictFrame MAGTUNG = new DictFrame("MagnetizedTungsten"); public static final DictFrame CMB = new DictFrame("CMBSteel"); public static final DictFrame DESH = new DictFrame("WorkersAlloy"); @@ -233,7 +234,7 @@ public class OreDictManager { /* * COLLECTIONS */ - 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 DictGroup ANY_PLASTIC = new DictGroup("AnyPlastic", POLYMER, BAKELITE); //using the Any prefix means that it's just 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"); @@ -309,6 +310,7 @@ public class OreDictManager { DURA .ingot(ingot_dura_steel) .dust(powder_dura_steel) .block(block_dura_steel); POLYMER .ingot(ingot_polymer) .dust(powder_polymer); BAKELITE .ingot(ingot_bakelite) .dust(powder_bakelite); + RUBBER .ingot(ingot_rubber); MAGTUNG .ingot(ingot_magnetized_tungsten) .dust(powder_magnetized_tungsten) .block(block_magnetized_tungsten); CMB .ingot(ingot_combine_steel) .dust(powder_combine_steel) .plate(plate_combine_steel) .block(block_combine_steel); DESH .nugget(nugget_desh) .ingot(ingot_desh) .dust(powder_desh) .block(block_desh); @@ -387,7 +389,7 @@ public class OreDictManager { */ ANY_GUNPOWDER .dust(Items.gunpowder, ballistite, cordite); ANY_SMOKELESS .dust(ballistite, cordite); - ANY_PLASTICEXPLOSIVE .ingot(ingot_semtex); + ANY_PLASTICEXPLOSIVE .ingot(ingot_semtex, ingot_c4); 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)); @@ -421,22 +423,22 @@ public class OreDictManager { OreDictionary.registerOre("stairWoodPink", pink_stairs); OreDictionary.registerOre("dyeRed", cinnebar); - //OreDictionary.registerOre("dye", cinnebar); + OreDictionary.registerOre("dye", cinnebar); OreDictionary.registerOre("dyeYellow", sulfur); - //OreDictionary.registerOre("dye", sulfur); + OreDictionary.registerOre("dye", sulfur); OreDictionary.registerOre("dyeBlack", powder_coal); - //OreDictionary.registerOre("dye", powder_coal); + OreDictionary.registerOre("dye", powder_coal); OreDictionary.registerOre("dyeBrown", powder_lignite); - //OreDictionary.registerOre("dye", powder_lignite); + OreDictionary.registerOre("dye", powder_lignite); OreDictionary.registerOre("dyeLightGray", powder_titanium); - //OreDictionary.registerOre("dye", powder_titanium); + OreDictionary.registerOre("dye", powder_titanium); OreDictionary.registerOre("dyeWhite", fluorite); - //OreDictionary.registerOre("dye", fluorite); + OreDictionary.registerOre("dye", fluorite); OreDictionary.registerOre("dyeBlue", powder_lapis); - //OreDictionary.registerOre("dye", powder_lapis); + OreDictionary.registerOre("dye", powder_lapis); OreDictionary.registerOre("dyeBlack", fromOne(oil_tar, EnumTarType.CRUDE)); OreDictionary.registerOre("dyeBlack", fromOne(oil_tar, EnumTarType.CRACK)); - //OreDictionary.registerOre("dye", oil_tar); + OreDictionary.registerOre("dye", oil_tar); OreDictionary.registerOre("blockGlass", glass_boron); OreDictionary.registerOre("blockGlass", glass_lead); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 8c8567ecd..9401856a9 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -78,13 +78,30 @@ public class ChemplantRecipes { .inputItems( new OreDictStack(COAL.dust(), 2), new OreDictStack(F.dust())) - .inputFluids(new FluidStack(Fluids.PETROLEUM, 600)) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 500)) .outputItems(new ItemStack(ModItems.ingot_polymer))); + recipes.add(new ChemRecipe(81, "BAKELITE", 100) + .inputFluids( + new FluidStack(Fluids.AROMATICS, 500), + new FluidStack(Fluids.PETROLEUM, 500)) + .outputItems(new ItemStack(ModItems.ingot_bakelite))); + recipes.add(new ChemRecipe(82, "RUBBER", 100) + .inputItems(new OreDictStack(S.dust())) + .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500)) + .outputItems(new ItemStack(ModItems.ingot_rubber))); + recipes.add(new ChemRecipe(83, "TNT", 150) + .inputItems(new OreDictStack(KNO.dust())) + .inputFluids(new FluidStack(Fluids.AROMATICS, 500)) + .outputItems(new ItemStack(ModItems.ball_tnt, 4))); + recipes.add(new ChemRecipe(84, "C4", 150) + .inputItems(new OreDictStack(KNO.dust())) + .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500)) + .outputItems(new ItemStack(ModItems.ingot_c4, 4))); //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(U.billet(), 2), //12 nuggets: the numbers do match up :) new OreDictStack(S.dust(), 2)) .inputFluids(new FluidStack(Fluids.ACID, 500)) .outputItems(new ItemStack(ModItems.powder_yellowcake))); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 3253f30a6..49cdcf991 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -140,6 +140,7 @@ public class ModItems { public static Item nugget_solinium; public static Item ingot_phosphorus; public static Item ingot_semtex; + public static Item ingot_c4; public static Item ingot_boron; public static Item ingot_graphite; public static Item ingot_smore; @@ -313,6 +314,7 @@ public class ModItems { public static Item ingot_dura_steel; public static Item ingot_polymer; public static Item ingot_bakelite; + public static Item ingot_rubber; public static Item ingot_fiberglass; public static Item ingot_asbestos; @@ -2607,6 +2609,7 @@ public class ModItems { lithium = new Item().setUnlocalizedName("lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":lithium"); ingot_zirconium = new Item().setUnlocalizedName("ingot_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_zirconium"); ingot_semtex = new ItemLemon(4, 5, true).setUnlocalizedName("ingot_semtex").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_semtex"); + ingot_c4 = new Item().setUnlocalizedName("ingot_c4").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_c4"); ingot_phosphorus = new Item().setUnlocalizedName("ingot_phosphorus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_phosphorus"); wire_advanced_alloy = new Item().setUnlocalizedName("wire_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_advanced_alloy"); coil_advanced_alloy = new Item().setUnlocalizedName("coil_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_advanced_alloy"); @@ -2692,6 +2695,7 @@ public class ModItems { ingot_dura_steel = new ItemCustomLore().setUnlocalizedName("ingot_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dura_steel"); ingot_polymer = new ItemCustomLore().setUnlocalizedName("ingot_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_polymer"); ingot_bakelite = new ItemCustomLore().setUnlocalizedName("ingot_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bakelite"); + ingot_rubber = new ItemCustomLore().setUnlocalizedName("ingot_rubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_rubber"); ingot_desh = new ItemCustomLore().setUnlocalizedName("ingot_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_desh"); nugget_desh = new ItemCustomLore().setUnlocalizedName("nugget_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_desh"); ingot_dineutronium = new ItemCustomLore().setUnlocalizedName("ingot_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dineutronium"); @@ -5628,6 +5632,7 @@ public class ModItems { GameRegistry.registerItem(ingot_dura_steel, ingot_dura_steel.getUnlocalizedName()); GameRegistry.registerItem(ingot_polymer, ingot_polymer.getUnlocalizedName()); GameRegistry.registerItem(ingot_bakelite, ingot_bakelite.getUnlocalizedName()); + GameRegistry.registerItem(ingot_rubber, ingot_rubber.getUnlocalizedName()); GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidate, ingot_schrabidate.getUnlocalizedName()); @@ -5673,6 +5678,7 @@ public class ModItems { GameRegistry.registerItem(lithium, lithium.getUnlocalizedName()); GameRegistry.registerItem(ingot_zirconium, ingot_zirconium.getUnlocalizedName()); GameRegistry.registerItem(ingot_semtex, ingot_semtex.getUnlocalizedName()); + GameRegistry.registerItem(ingot_c4, ingot_c4.getUnlocalizedName()); GameRegistry.registerItem(oil_tar, oil_tar.getUnlocalizedName()); GameRegistry.registerItem(solid_fuel, solid_fuel.getUnlocalizedName()); GameRegistry.registerItem(solid_fuel_presto, solid_fuel_presto.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 05ad56154..a253eac48 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -462,9 +462,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.det_cord, 8), new Object[] { "TNT", "NGN", "TNT", 'T', IRON.plate(), 'N', KNO.dust(), 'G', Items.gunpowder }); addRecipeAuto(new ItemStack(ModBlocks.det_charge, 1), new Object[] { "PDP", "DTD", "PDP", 'P', STEEL.plate(), 'D', ModBlocks.det_cord, 'T', ModItems.ingot_semtex }); addRecipeAuto(new ItemStack(ModBlocks.det_nuke, 1), new Object[] { "PDP", "DCD", "PDP", 'P', ModItems.plate_desh, 'D', ModBlocks.det_charge, 'C', ModItems.man_core }); - addRecipeAuto(new ItemStack(ModBlocks.det_miner, 3), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', IRON.plate(), 'T', Blocks.tnt }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 4), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', IRON.plate(), 'T', ModItems.ball_dynamite }); - addRecipeAuto(new ItemStack(ModBlocks.det_miner, 12), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', STEEL.plate(), 'T', ModItems.ingot_semtex }); + addRecipeAuto(new ItemStack(ModBlocks.det_miner, 12), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', STEEL.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', ModItems.circuit_gold }); addShapelessAuto(new ItemStack(ModBlocks.charge_dynamite, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.ducttape }); addRecipeAuto(new ItemStack(ModBlocks.charge_miner, 1), new Object[] { " F ", "FCF", " F ", 'F', Items.flint, 'C', ModBlocks.charge_dynamite }); diff --git a/src/main/resources/assets/hbm/textures/blocks/block_c4.png b/src/main/resources/assets/hbm/textures/blocks/block_c4.png new file mode 100644 index 0000000000000000000000000000000000000000..c32a93a06b2d87321e98bcf984ef4d9674e2d1d5 GIT binary patch literal 498 zcmVA4G(< zZ2_3)8GB4x*A)O&#W_bxi4X$QGy&kfuZMW=vDR`D5xn;`8Ne8WsuDs#RS^-M&*xWb zF-8DR$ITD|04XI@wbFE5$1n_E#jUmEoc9)vhB@b|Cn+VIbByDNs$z_(MM~SJoO8wh z`T1d8*RM&aYQ-()rj!6!*LC-xXjvBS_j?U2INBOm0p~4TrQWIT)fz} z4Py+>xk_rS{dW(_Xvzs)*8y<5-KrwXGN8CF-#t48?iZ1U$DFwjO znl8@I&oMDZs;WwtB7!jnfDi)Cxzu!fdy7(vEXx3>stWV8X|Y%U;JwFMOVc!n2sbx3 z066E;5a%4m7Wn9udKNk5Y==-Q8zT3n2is47&Kex5je0L`1m1ZvcaH zjt~srfBoQH|78Mq&JkmL1UTJZ@_J_{fjQ?ARe-CjD~50Px%)apYn`6mi!mnpB0^CV zhzNO}r@Jl(7=GBNX&L|)iv{MXEZwy6c+6xnp(qLfj*gBH5vJ2A0Gp#t_I_KewXKX= zYkIvNBEn=cNz}VWfXmBE4i66z5l&7{fB`_Og7-eLD2jsdcuZNAiF%&rj7B5!Jf|#6 z`u#pisrG#P_&J`Po$>QU;NajOP5htkB7%r;e0bgd2jkT5#0wDy9F^@g~(sCGM*xK3xV10cZYagUC25T)@mXT!{T5F6kEm&1m%;)oG w_VnI!eSJ+`*9-;&oO4`UTqLk=546_&1?v+UeNOyl=Kufz07*qoM6N<$f*`;TJpcdz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_BAKELITE.png b/src/main/resources/assets/hbm/textures/items/chem_icon_BAKELITE.png new file mode 100644 index 0000000000000000000000000000000000000000..038990e5009d7f44137f51621b60a2bef3ded2a8 GIT binary patch literal 319 zcmV-F0l@x=P)NRvjf@J|<57i3cHU}Q2{h_8C{hVSF?Z>5)XElhD0tm_FQYnSXz24`4hPQg1b_l0#@b z7_!QC03@3=074;kP^ofTC>n_i`bdAwU!0}FWN;{PL9dTb_6&kfo1ju9iAH=b7gorY zflx>t)_m%%CeQt@6S8e~{S4wP{d0WgkxL%Rcf7?jCu9`>_=OvDkuK<>^$P+xsN3$@ RkZJ$`002ovPDHLkV1iByf_(r0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_C4.png b/src/main/resources/assets/hbm/textures/items/chem_icon_C4.png new file mode 100644 index 0000000000000000000000000000000000000000..a2bd93346adeac488595b97ae5f23314f42d9305 GIT binary patch literal 373 zcmV-*0gC>KP)Avx6ok*AV~BA`@X#*xq^aPkQz3LPbm(g6(%C<$bCyEa z4uK3IP&#BPWHK4*40eieuyINo=%P*%k|hgrAdtknllYzlSd>IDOQM+BYR*h1J`V!| zukQi?dz!yErU1ucQnXmFUC-k)b@)$oJHEfC7<+m`t3_V!hG>%0rFuzykn0zs)q0tlO(=Ka{oIV%k)l z=I`SV06=@19O!u9!Rx!&?6!*Ot1iWQx_otvA4CrMq`792YmEUs$Q8FrZ3V%LJ;(;)S_W z|7=A9DMd_t0kXlum`GWWAS!%{NG*}t0#YqDOHsxmlK4qaRx>^IG1z``gW*n3_B-cZ z|9qjM9(kS)Kv%t6u3J^`_TDbvPL3%{x}duiQhOQhyn9Qt*?%OCV>;Pm4e+$l0AMto z>L*|ojI|6;p1&}{0t$Q|fLW3N@M}7ykXXfdRgkl~%Ejp^XG+m-wMgf4BPt|T7j(PT zViLy&oFxfT2m_kh+%(6FUXO)RSq76h=E2SmM3K1=_&ysI5Wqqy)_k8ql3;Z~Ken?h zAGX_>zl1<>aE&$`BBR2N;DP^?VSah}W&s^D zK>+$-ZJxWI7Lr!z}3W_{IcAP)LgN>wIj_^AJMt;qw=B@2?C3(6j%@mZ5U} Y0ZgmZDen4~1ONa407*qoM6N<$f@kjHCIA2c delta 213 zcmV;`04o2B1b_mNGk*ZLNkl zK;Q11*9Q+^Guag>dX@kHE`87OVlBt-dCt823UM2YwY*A-z1bvxZDF@Q8VElRtH2#k P00000NkvXXu0mjfO*>hQ diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_POLYMER.png b/src/main/resources/assets/hbm/textures/items/chem_icon_POLYMER.png index efb64abf26d28e143dbcf2bf1d766b03af3d8c6d..23d8fabf2a10346cbc928a349223fab729906e46 100644 GIT binary patch delta 221 zcmV<303!dA0*L~UG=IQJL_t(Ijm?tH34|~dgeOZF@#M1u#RlxZ2(bgLK*&Kv31&|T z>c*eLvh185f$xJ11N#AkXs;ao2TNmPG}@6X;B$ zNxHhOVT`$jvMdX?h+r57r~LnlqKHbiP~Z2MrU?MBt}EtwhE^i!k|aTzra^KC`B-aJ z=wK_kf~u;DchI&i0Kgc7aU7%2Z3j)$TtffRfwguwJ`KRH%AIv^gtpn+v<{2Bg1(wJ Xwu7sFo$*3P00000NkvXXu0mjfB`#&e delta 230 zcmVm4@CV-Vho1dLE_p*9&_A@-T>FV$ zb8Y|7t3L>WESQsvjY&Y7ft68r*PUH~Gtu@#D2=(C`ugql4trH7r9!mg3Y1boN(m_? z@9Vk_oS^N8&~+UEU>xtez3|=x0EmdsMCxG7b+dvrAadtiE?;4qKD#oAXdPVf5@kgG zeLgDWNM&u^{{dr6@dt`AVtvsx&0(^6o`1^E5&(eKnz^->dF*@&oU5JjK0bXjXfgXI(W1e+>b_%@t|n%lT1+T<3js1PCv zRpeAygc!0#lwXZJdQaBZz`LTA^jb+je;3c7aW=-V`P^{$J@D7`fqM|dpn0Ye@n2|3 zl4vD;p668i>M6AS-iG;nI&--keFET|!&)1aOd;nSZQBAc35Dt)w@`V6CMnid87~v-fw<_1C-OOMvmJ o{89&VXqvmlm;4A9xdy#7H-pr%5<2nXCIA2c07*qoM6N<$f^T4a+W-In literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_TEL.png b/src/main/resources/assets/hbm/textures/items/chem_icon_TEL.png index 5aa581db83d009d40f27c778e43f275a42adbe6c..ef8ac0a371f3fbdeaf5cfdbc832cca4722330206 100644 GIT binary patch delta 376 zcmV-;0f+v%0ipwtGk*bDNkl(XbFdB&r z+MOA8>QULFq+@#u^17cKxc+(I#tn*kiFOCR2W~2KaP{>Erb)qlFVCv58rvaT$i1tl-^! z1N>QNc|Dj3td^e;LI8vVj&0)l;se)@%c-P2L&Y@h)D;ga0BAOw9*`iJrkVNqU-S!E WB8xo-S!rni0000DNDH;8ENVO-XvE^cr%G09)= zKx@PUA%o@#DuGW57}VOlr6m*3IhM;g8nUsmsqHy-IHvVFYYPLT{ssXP2DS^y+^5uY r7&eJdV3t1RZrU(ILgB$uMGl5V*OgYtNV$|T0D&jFtDnm{r-UW|Dz+{l diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_TNT.png b/src/main/resources/assets/hbm/textures/items/chem_icon_TNT.png new file mode 100644 index 0000000000000000000000000000000000000000..fcda7da8faa6e9e44dbdfad73158b59033374041 GIT binary patch literal 414 zcmV;P0b%}$P)o5Pu! zItWoFex+_H9VmdX!s(ipQk=xATS^C`nIAzC;dCiI1rn~M_m1N_7`j2OUS~A(nap7? z36uH4LBHoJQ>FBlT;xuxk$5oiX^&?VTf>BMh4|$7BNoLq*=&}BhZcj0&v5E<@j6bx zA_dzrgOkEBhHj9~=!!VB-M_p;2tlXQA)n7ji6}7w2vG*WaUITH+KTPnt9yhHN}NmC zhM=2|sUnWsUJHQls5Xgz1^h+4(!o>VFaS1+*VgUP{#L*76EqdWL&P&?*Z=?k07*qo IM6N<$f`U)7a{vGU literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ingot_rubber.png b/src/main/resources/assets/hbm/textures/items/ingot_rubber.png new file mode 100644 index 0000000000000000000000000000000000000000..63c1ba9b6d6be319330de80265610c4954bec4b7 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfDg+wBjh-PRY(Z(OLv)_Q7<=xkBJHDALg&)hTpB+noJ zEtCATUp}kd$m&}=FZ?s(_piF$ z#ysibj1tKjT}gpLPRAs6tz%A*ac5`=yRM*mr)uAJJT= Date: Wed, 23 Feb 2022 14:18:11 +0100 Subject: [PATCH 2/9] c4 and semtex timed explosives, slight recipe tweaks --- src/main/java/com/hbm/blocks/ModBlocks.java | 10 +- .../com/hbm/blocks/bomb/BlockChargeC4.java | 31 +++++ .../hbm/blocks/bomb/BlockChargeSemtex.java | 31 +++++ .../blocks/machine/DummyBlockChemplant.java | 11 -- .../hbm/blocks/machine/MachineChemplant.java | 4 +- src/main/java/com/hbm/handler/GUIHandler.java | 8 +- .../java/com/hbm/hazard/HazardRegistry.java | 3 +- .../container/ContainerMachineChemplant.java | 6 +- .../com/hbm/inventory/fluid/FluidType.java | 3 +- .../inventory/gui/GUIMachineChemplant.java | 6 +- .../inventory/recipes/AssemblerRecipes.java | 6 +- src/main/java/com/hbm/items/ModItems.java | 3 + src/main/java/com/hbm/main/ClientProxy.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 1 + .../render/tileentity/RenderChemplant.java | 4 +- .../java/com/hbm/tileentity/TileMappings.java | 2 +- ...w.java => TileEntityMachineChemplant.java} | 4 +- .../assets/hbm/models/blocks/charge_c4.obj | 109 ++++++++++++++++++ .../assets/hbm/textures/blocks/charge_c4.png | Bin 0 -> 260 bytes .../hbm/textures/blocks/charge_semtex.png | Bin 0 -> 257 bytes .../textures/items/chem_icon_SF_DIESEL.png | Bin 257 -> 389 bytes .../hbm/textures/items/holotape_damaged.png | Bin 0 -> 754 bytes .../items/holotape_damaged.png.mcmeta | 3 + .../textures/items/holotape_damaged_base.png | Bin 0 -> 436 bytes 24 files changed, 210 insertions(+), 37 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java create mode 100644 src/main/java/com/hbm/blocks/bomb/BlockChargeSemtex.java delete mode 100644 src/main/java/com/hbm/blocks/machine/DummyBlockChemplant.java rename src/main/java/com/hbm/tileentity/machine/{TileEntityMachineChemplantNew.java => TileEntityMachineChemplant.java} (98%) create mode 100644 src/main/resources/assets/hbm/models/blocks/charge_c4.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/charge_c4.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/charge_semtex.png create mode 100644 src/main/resources/assets/hbm/textures/items/holotape_damaged.png create mode 100644 src/main/resources/assets/hbm/textures/items/holotape_damaged.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/items/holotape_damaged_base.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 53a487000..2117c7119 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -492,6 +492,8 @@ public class ModBlocks { public static Block charge_dynamite; public static Block charge_miner; + public static Block charge_c4; + public static Block charge_semtex; public static Block mine_ap; public static Block mine_he; @@ -1699,6 +1701,8 @@ public class ModBlocks { fireworks = new BlockFireworks(Material.iron).setBlockName("fireworks").setCreativeTab(MainRegistry.nukeTab).setResistance(5.0F); charge_dynamite = new BlockChargeDynamite().setBlockName("charge_dynamite").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); charge_miner = new BlockChargeMiner().setBlockName("charge_miner").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); + charge_c4 = new BlockChargeC4().setBlockName("charge_c4").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); + charge_semtex = new BlockChargeSemtex().setBlockName("charge_semtex").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); mine_ap = new Landmine(Material.iron).setBlockName("mine_ap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_ap"); mine_he = new Landmine(Material.iron).setBlockName("mine_he").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_he"); mine_shrap = new Landmine(Material.iron).setBlockName("mine_shrap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_shrap"); @@ -2178,8 +2182,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).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_chemplant = new BlockGeneric(Material.iron).setBlockName("dummy_block_chemplant").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_port_chemplant = new BlockGeneric(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"); @@ -2699,6 +2703,8 @@ public class ModBlocks { //Wall-mounted Explosives GameRegistry.registerBlock(charge_dynamite, ItemBlockBase.class, charge_dynamite.getUnlocalizedName()); GameRegistry.registerBlock(charge_miner, ItemBlockBase.class, charge_miner.getUnlocalizedName()); + GameRegistry.registerBlock(charge_c4, ItemBlockBase.class, charge_c4.getUnlocalizedName()); + GameRegistry.registerBlock(charge_semtex, ItemBlockBase.class, charge_semtex.getUnlocalizedName()); //Mines GameRegistry.registerBlock(mine_ap, mine_ap.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java b/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java new file mode 100644 index 000000000..915c2594d --- /dev/null +++ b/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.bomb; + +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.ExplosionNT; + +import net.minecraft.world.World; + +public class BlockChargeC4 extends BlockChargeBase { + + @Override + public BombReturnCode explode(World world, int x, int y, int z) { + + if(!world.isRemote) { + safe = true; + world.setBlockToAir(x, y, z); + safe = false; + ExplosionNT exp = new ExplosionNT(world, null, x + 0.5, y + 0.5, z + 0.5, 4F); + exp.explode(); + ExplosionLarge.spawnParticles(world, x + 0.5, y + 0.5, z + 0.5, 20); + + return BombReturnCode.DETONATED; + } + + return BombReturnCode.UNDEFINED; + } + + @Override + public int getRenderType() { + return BlockChargeDynamite.renderID; + } +} diff --git a/src/main/java/com/hbm/blocks/bomb/BlockChargeSemtex.java b/src/main/java/com/hbm/blocks/bomb/BlockChargeSemtex.java new file mode 100644 index 000000000..163b93578 --- /dev/null +++ b/src/main/java/com/hbm/blocks/bomb/BlockChargeSemtex.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.bomb; + +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.ExplosionNT; + +import net.minecraft.world.World; + +public class BlockChargeSemtex extends BlockChargeBase { + + @Override + public BombReturnCode explode(World world, int x, int y, int z) { + + if(!world.isRemote) { + safe = true; + world.setBlockToAir(x, y, z); + safe = false; + ExplosionNT exp = new ExplosionNT(world, null, x + 0.5, y + 0.5, z + 0.5, 4F); + exp.explode(); + ExplosionLarge.spawnParticles(world, x + 0.5, y + 0.5, z + 0.5, 20); + + return BombReturnCode.DETONATED; + } + + return BombReturnCode.UNDEFINED; + } + + @Override + public int getRenderType() { + return BlockChargeDynamite.renderID; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockChemplant.java b/src/main/java/com/hbm/blocks/machine/DummyBlockChemplant.java deleted file mode 100644 index f00824817..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockChemplant.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.blocks.machine; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; - -public class DummyBlockChemplant extends Block { - - public DummyBlockChemplant(Material p_i45394_1_) { - super(p_i45394_1_); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemplant.java b/src/main/java/com/hbm/blocks/machine/MachineChemplant.java index bfcc47949..bd7d2fcd2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemplant.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemplant.java @@ -3,7 +3,7 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.machine.TileEntityMachineChemplantNew; +import com.hbm.tileentity.machine.TileEntityMachineChemplant; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -19,7 +19,7 @@ public class MachineChemplant extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { - if(meta >= 12) return new TileEntityMachineChemplantNew(); + if(meta >= 12) return new TileEntityMachineChemplant(); if(meta >= 6) return new TileEntityProxyCombo(false, true, true); return null; } diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index 15fea4c33..6a17678b6 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 TileEntityMachineChemplantNew) { - return new ContainerMachineChemplant(player.inventory, (TileEntityMachineChemplantNew) entity); + if(entity instanceof TileEntityMachineChemplant) { + return new ContainerMachineChemplant(player.inventory, (TileEntityMachineChemplant) entity); } return null; } @@ -1167,8 +1167,8 @@ public class GUIHandler implements IGuiHandler { } case ModBlocks.guiID_machine_chemplant: { - if(entity instanceof TileEntityMachineChemplantNew) { - return new GUIMachineChemplant(player.inventory, (TileEntityMachineChemplantNew) entity); + if(entity instanceof TileEntityMachineChemplant) { + return new GUIMachineChemplant(player.inventory, (TileEntityMachineChemplant) entity); } return null; } diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 897d9ff9b..d781030cc 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -449,7 +449,8 @@ public class HazardRegistry { HazardSystem.register(solinium_core, makeData().addEntry(RADIATION, sa327 * nugget * 8).addEntry(BLINDING, 5F)); HazardSystem.register(nuke_fstbmb, makeData(DIGAMMA, 0.01F)); - HazardSystem.register(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), makeData(DIGAMMA, 1F)); + HazardSystem.register(DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), makeData(DIGAMMA, 1F)); + HazardSystem.register(holotape_damaged, makeData(DIGAMMA, 1_000F)); /* * Blacklist diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java index 7f6a0563f..2ccb2081a 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java @@ -1,7 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; -import com.hbm.tileentity.machine.TileEntityMachineChemplantNew; +import com.hbm.tileentity.machine.TileEntityMachineChemplant; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -11,9 +11,9 @@ import net.minecraft.item.ItemStack; public class ContainerMachineChemplant extends Container { - private TileEntityMachineChemplantNew nukeBoy; + private TileEntityMachineChemplant nukeBoy; - public ContainerMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplantNew tedf) { + public ContainerMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplant tedf) { nukeBoy = tedf; // Battery diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index d87321234..42825eaf9 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -5,7 +5,6 @@ import java.util.Collections; import java.util.List; import com.hbm.inventory.FluidTank; -import com.hbm.inventory.fluid.FluidType.FluidTrait; import com.hbm.lib.RefStrings; import com.hbm.render.util.EnumSymbol; @@ -81,7 +80,7 @@ public class FluidType { return this.unlocalized; } public String getDict(int quantity) { - return "container" + quantity + this.stringId.replace("_", ""); + return "container" + quantity + this.stringId.replace("_", "").toLowerCase(); } public boolean isHot() { diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java index 81093952d..fc03ff008 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineChemplant; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineChemplantNew; +import com.hbm.tileentity.machine.TileEntityMachineChemplant; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; @@ -16,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 TileEntityMachineChemplantNew chemplant; + private TileEntityMachineChemplant chemplant; - public GUIMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplantNew tedf) { + public GUIMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplant tedf) { super(new ContainerMachineChemplant(invPlayer, tedf)); chemplant = tedf; diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index a5b96f5b3..e4c19722a 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -370,7 +370,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.boy_bullet, 1), new AStack[] {new OreDictStack(U235.nugget(), 3), },100); makeRecipe(new ComparableStack(ModItems.boy_propellant, 1), new AStack[] {new ComparableStack(Blocks.tnt, 3), new OreDictStack(IRON.plate(), 8), new OreDictStack(AL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), },100); makeRecipe(new ComparableStack(ModItems.boy_igniter, 1), new AStack[] {new OreDictStack(AL.plate(), 6), new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.wire_red_copper, 3), },150); - makeRecipe(new ComparableStack(ModItems.man_explosive, 1), new AStack[] {new ComparableStack(Blocks.tnt, 2), new ComparableStack(ModItems.ingot_semtex, 3), new OreDictStack(STEEL.plate(), 2), new OreDictStack(TI.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 3), },200); + makeRecipe(new ComparableStack(ModItems.man_explosive, 1), new AStack[] {new ComparableStack(Blocks.tnt, 2), new ComparableStack(ModItems.ball_tnt, 3), new OreDictStack(STEEL.plate(), 2), new OreDictStack(TI.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 3), },200); makeRecipe(new ComparableStack(ModItems.man_igniter, 1), new AStack[] {new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.wire_red_copper, 9), },150); makeRecipe(new ComparableStack(ModItems.man_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 8), new OreDictStack(BE.nugget(), 2), },250); makeRecipe(new ComparableStack(ModItems.mike_core, 1), new AStack[] {new OreDictStack(U238.nugget(), 24), new OreDictStack(PB.ingot(), 6), },250); @@ -435,7 +435,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.mp_warhead_15_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 2), new OreDictStack(P_RED.dust(), 8), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },400); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new ComparableStack(ModItems.ingot_semtex, 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new ComparableStack(ModItems.ball_tnt, 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60); makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new ComparableStack(ModItems.plate_polymer, 64), new ComparableStack(ModItems.fins_small_steel, 4), new ComparableStack(ModItems.hull_big_titanium, 40), new ComparableStack(ModItems.hull_big_steel, 24), new OreDictStack(FIBER.ingot(), 64), },600); makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new ComparableStack(ModItems.plate_polymer, 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600); makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); @@ -578,7 +578,7 @@ public class AssemblerRecipes { new OreDictStack(CU.plate(), 1), new ComparableStack(ModItems.primer_50, 5), new ComparableStack(ModItems.casing_50, 5), - new ComparableStack(ModItems.ingot_semtex, 5), + new ComparableStack(ModItems.ball_tnt, 5), new ComparableStack(ModItems.cordite, 5), new OreDictStack(REDSTONE.dust(), 3) }, 60); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 49cdcf991..95e2c6fb7 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2381,6 +2381,7 @@ public class ModItems { public static Item book_guide; public static Item holotape_image; + public static Item holotape_damaged; public static Item polaroid; public static Item glitch; @@ -5428,6 +5429,7 @@ public class ModItems { book_guide = new ItemGuideBook().setUnlocalizedName("book_guide").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":book_guide"); holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":holotape"); + holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID); glitch = new ItemGlitch().setUnlocalizedName("glitch").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glitch_" + MainRegistry.polaroidID); @@ -7945,6 +7947,7 @@ public class ModItems { //wow we're far down the item registry, is this the cellar? GameRegistry.registerItem(book_guide, book_guide.getUnlocalizedName()); GameRegistry.registerItem(holotape_image, holotape_image.getUnlocalizedName()); + GameRegistry.registerItem(holotape_damaged, holotape_damaged.getUnlocalizedName()); //Technical Items GameRegistry.registerItem(smoke1, smoke1.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a95fca3f8..554b38a1a 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(TileEntityMachineChemplantNew.class, new RenderChemplant()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplant.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 a253eac48..c0455066a 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -864,6 +864,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal()), new Object[] { Items.book, Items.iron_ingot }); addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish }); + addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModBlocks.muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ }); if(GeneralConfig.enableBabyMode) { addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); diff --git a/src/main/java/com/hbm/render/tileentity/RenderChemplant.java b/src/main/java/com/hbm/render/tileentity/RenderChemplant.java index e0f6082bd..da86e40ec 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderChemplant.java +++ b/src/main/java/com/hbm/render/tileentity/RenderChemplant.java @@ -6,7 +6,7 @@ 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.TileEntityMachineChemplantNew; +import com.hbm.tileentity.machine.TileEntityMachineChemplant; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -55,7 +55,7 @@ public class RenderChemplant extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glRotatef(180, 0F, 1F, 0F); - TileEntityMachineChemplantNew chem = (TileEntityMachineChemplantNew) tileEntity; + TileEntityMachineChemplant chem = (TileEntityMachineChemplant) tileEntity; switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { case 5: GL11.glRotatef(180, 0F, 1F, 0F); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 1bcc0013f..4edfbd02e 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -244,7 +244,7 @@ public class TileMappings { put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor"); put(TileEntityMachineSolidifier.class, "tileentity_solidifier"); - put(TileEntityMachineChemplantNew.class, "tileentity_chemical_plant"); + put(TileEntityMachineChemplant.class, "tileentity_chemical_plant"); put(TileEntityMachineOilWell.class, "tileentity_derrick"); put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack"); put(TileEntityMachineFrackingTower.class, "tileentity_fracking_tower"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantNew.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java similarity index 98% rename from src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantNew.java rename to src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 3987dde91..2ce304464 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantNew.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -29,7 +29,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineChemplantNew extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor { +public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor { public long power; public static final long maxPower = 100000; @@ -43,7 +43,7 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme int consumption = 100; int speed = 100; - public TileEntityMachineChemplantNew() { + public TileEntityMachineChemplant() { super(21); /* * 0 Battery diff --git a/src/main/resources/assets/hbm/models/blocks/charge_c4.obj b/src/main/resources/assets/hbm/models/blocks/charge_c4.obj new file mode 100644 index 000000000..2c7440e73 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/charge_c4.obj @@ -0,0 +1,109 @@ +# Blender v2.79 (sub 0) OBJ File: 'charge_c4.blend' +# www.blender.org +o Plane +v -0.250000 -0.312500 -0.250000 +v 0.250000 -0.312500 0.250000 +v -0.250000 -0.312500 0.250000 +v 0.250000 -0.187500 0.250000 +v -0.250000 -0.187500 -0.250000 +v -0.250000 -0.187500 0.250000 +v 0.250000 -0.187500 -0.250000 +v 0.250000 -0.312500 -0.250000 +v -0.468750 -0.500000 0.468750 +v 0.468750 -0.250000 -0.468750 +v -0.031250 -0.500000 0.468750 +v 0.468750 -0.250000 0.468750 +v 0.031250 -0.250000 -0.468750 +v -0.468750 -0.500000 -0.468750 +v 0.031250 -0.250000 0.468750 +v -0.031250 -0.500000 -0.468750 +v 0.031250 -0.500000 0.468750 +v -0.031250 -0.250000 -0.468750 +v 0.468750 -0.500000 0.468750 +v -0.468750 -0.250000 -0.468750 +v -0.468750 -0.250000 0.468750 +v 0.031250 -0.500000 -0.468750 +v -0.031250 -0.250000 0.468750 +v 0.468750 -0.500000 -0.468750 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.250000 0.875000 +vt 0.750000 0.375000 +vt 0.750000 0.875000 +vt 0.250000 0.375000 +vt 0.750000 0.875000 +vt 0.250000 0.875000 +vt 0.750000 0.250000 +vt 0.250000 0.375000 +vt 0.250000 0.250000 +vt 0.750000 0.250000 +vt 0.250000 0.375000 +vt 0.250000 0.250000 +vt 0.750000 0.250000 +vt 0.250000 0.250000 +vt 0.750000 0.250000 +vt 0.250000 0.375000 +vt 0.250000 0.250000 +vt 0.250000 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.375000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 23/1/1 20/2/1 21/3/1 +f 12/4/1 13/5/1 15/6/1 +f 22/7/2 19/8/2 17/9/2 +f 14/10/2 11/11/2 9/12/2 +f 22/7/3 10/13/3 24/14/3 +f 23/1/4 9/12/4 11/11/4 +f 24/14/5 12/4/5 19/8/5 +f 20/2/3 16/15/3 14/10/3 +f 21/3/6 14/10/6 9/12/6 +f 18/16/5 11/11/5 16/15/5 +f 19/8/4 15/6/4 17/9/4 +f 17/9/6 13/5/6 22/7/6 +f 23/1/1 18/16/1 20/2/1 +f 12/4/1 10/13/1 13/5/1 +f 22/7/2 24/14/2 19/8/2 +f 14/10/2 16/15/2 11/11/2 +f 22/7/3 13/5/3 10/13/3 +f 23/1/4 21/3/4 9/12/4 +f 24/14/5 10/13/5 12/4/5 +f 20/2/3 18/16/3 16/15/3 +f 21/3/6 20/2/6 14/10/6 +f 18/16/5 23/1/5 11/11/5 +f 19/8/4 12/4/4 15/6/4 +f 17/9/6 15/6/6 13/5/6 +s 1 +f 1/17/2 2/18/2 3/19/2 +f 4/20/1 5/21/1 6/22/1 +f 1/23/3 7/24/3 8/25/3 +f 2/26/4 6/27/4 3/28/4 +f 8/29/5 4/20/5 2/30/5 +f 3/31/6 5/32/6 1/33/6 +f 1/17/2 8/34/2 2/18/2 +f 4/20/1 7/35/1 5/21/1 +f 1/23/3 5/36/3 7/24/3 +f 2/26/4 4/37/4 6/27/4 +f 8/29/5 7/35/5 4/20/5 +f 3/31/6 6/38/6 5/32/6 diff --git a/src/main/resources/assets/hbm/textures/blocks/charge_c4.png b/src/main/resources/assets/hbm/textures/blocks/charge_c4.png new file mode 100644 index 0000000000000000000000000000000000000000..9c947873f4f52334bfbff1666bd02e33d9e61719 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf#)iiVpovq+i5Zll)_4gllu?H1;Ey0F5Y5_b6K=5GVgd`CC z%uERmSF;ArNdg15gV_jFCXy5`lLLmcId{VgKR0-FVx y&&O--VLNa|VfT!x#1DPJT@O!}|4D50vz8Xa@OEf zex8>8JniBAj$bVuCJdpWm3s`?7(&0MJyHx0mA#{;#3(Lt@&Xu4}nNTA<3pdT1KUHx3vIVCg! E0OGo6ZvX%Q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_SF_DIESEL.png b/src/main/resources/assets/hbm/textures/items/chem_icon_SF_DIESEL.png index 14832b7ea4cc34a44c1b8d149b3e9eafb3d89b8e..338ac8dddd6934b8e8a0353b365dbb780450a323 100644 GIT binary patch delta 347 zcmV-h0i^zc0)+#RGk*a*Nkl&}y~FvWzH-n9t|6r%N2iVvLc8`ztZV zNF2w~?RI4{nTRn)j4^v2?400v9+#t2(liBNeDjD>ilQiR&K=z9)#}*{R7$Z}EKo`j zMNz#6z|QvU{8So%r{@;{oO3Lf%ik%`;Yn4m*K4NJDFCzC41PTQ!2uuduT`DrIeDIc tyTA8uwj0uHHo3bURgJTYaUJ###V2yTX?G}=UjYCB002ovPDHLkV1i-`q=Wzf delta 214 zcmV;{04e{41AzjNGk*ZMNkl=1G=$5)qM97cp|s!TEAc8A`eeBACZLDpHo^;ZO3qt^le4Xxf_s+|vFI zptW}Mwry^X78P@#wGN2J7yy<14}7w<*3DT0dtR)y0U0tQ;Pvx@T>cO71hhd)G)x(i Qg#Z8m07*qoM6N<$f`bxY7ytkO diff --git a/src/main/resources/assets/hbm/textures/items/holotape_damaged.png b/src/main/resources/assets/hbm/textures/items/holotape_damaged.png new file mode 100644 index 0000000000000000000000000000000000000000..35b2bc4be0ee9c3d19f912c9083495db244c7a28 GIT binary patch literal 754 zcmVuIs}_o$C4Y;#N^tvNxEqH9ta8Hdmg^`O`iAtz7O6k ztleF^S18!?#z|r1%<(Z823n^BKvCDHj-7bvCj*en%@mTSlE=7ix4|&DZnse@71TYBkt7fSuZS4u3d3I}0YM+vWM{%Hg;n*ww0yX*vV;_Fj{xs?hDC zbvg`3BU+Zlm$fz2jSaMZpQ5fyDS*$T(U0}bO|-i^)?Z%W@e#6F7!GNipHn|NVxa46 zt*r3dH2F9hd0)dzVy{rJi@Gk^)vA+W-;5f~Cg1aU{tkzXIC<@mP50vlk1DvUUmtV{kabun}K2#)%Czc6O>wt?uR^!xx34yqEz=a$jj}fH~ zcr!>^2fP_1tphI7N$Y?Yf?X~n49=}K|OUF6Uo7vi;oaluf z2Lh2!^yCTh7*S93B#)f%L{DC%F9M_&>5Bl;B7G4cwMbv|l9;qFdIBzzoalxAVWKYz kyd8)YiUYAic@Ha;e;JJ*1ypET#{d8T07*qoM6N<$f-1pMZvX%Q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/holotape_damaged.png.mcmeta b/src/main/resources/assets/hbm/textures/items/holotape_damaged.png.mcmeta new file mode 100644 index 000000000..d7b41bbd3 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/items/holotape_damaged.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/items/holotape_damaged_base.png b/src/main/resources/assets/hbm/textures/items/holotape_damaged_base.png new file mode 100644 index 0000000000000000000000000000000000000000..2d3c0c1d031917b47c0777baeed973e3c0fd1ed0 GIT binary patch literal 436 zcmV;l0ZaagP)2#C z04{w0E_-l*Jsgsq&EV|~(rNHK8c$DLou4xmf_yT`v+J_w`_VR{Ar3SxC<>tjra7PR zQbmnci`!g|SI?s@B@feS#I4-H@{07sLvUT*U6+)q(jSjG9*ttm+Ur_23r)hFH|f7M e`OTmBb9?|^j;OvT22r5^0000 Date: Wed, 23 Feb 2022 15:59:52 +0100 Subject: [PATCH 3/9] redstone power switches --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../com/hbm/blocks/bomb/BlockChargeC4.java | 5 +- .../com/hbm/blocks/bomb/BlockTNTBase.java | 1 - .../com/hbm/blocks/network/CableDetector.java | 68 ++++++++++++++++++ .../com/hbm/blocks/network/CableSwitch.java | 2 - src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../machine/TileEntityMachineGasCent.java | 32 ++++----- .../textures/blocks/cable_detector_off.png | Bin 0 -> 412 bytes .../hbm/textures/blocks/cable_detector_on.png | Bin 0 -> 415 bytes 10 files changed, 94 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/CableDetector.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/cable_detector_off.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cable_detector_on.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 2117c7119..e7ae1920c 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -707,6 +707,7 @@ public class ModBlocks { public static Block red_pylon_large; public static Block substation; public static Block cable_switch; + public static Block cable_detector; public static Block machine_detector; public static Block rf_cable; public static Block oil_duct_solid; @@ -1813,7 +1814,8 @@ public class ModBlocks { red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); red_pylon_large = new PylonLarge(Material.iron).setBlockName("red_pylon_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon_large"); substation = new Substation(Material.iron).setBlockName("substation").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":substation"); - cable_switch = new CableSwitch(Material.iron).setBlockName("cable_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_switch_off"); + cable_switch = new CableSwitch(Material.iron).setBlockName("cable_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + cable_detector = new CableDetector(Material.iron).setBlockName("cable_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); oil_duct_solid = new OilDuctSolid(Material.iron).setBlockName("oil_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":oil_duct_solid_alt"); oil_duct = new BlockOilDuct(Material.iron).setBlockName("oil_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":oil_duct_icon_alt"); @@ -2906,6 +2908,7 @@ public class ModBlocks { GameRegistry.registerBlock(red_pylon_large, ItemBlockBase.class, red_pylon_large.getUnlocalizedName()); GameRegistry.registerBlock(substation, ItemBlockBase.class, substation.getUnlocalizedName()); GameRegistry.registerBlock(cable_switch, cable_switch.getUnlocalizedName()); + GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName()); GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName()); GameRegistry.registerBlock(rf_cable, rf_cable.getUnlocalizedName()); GameRegistry.registerBlock(oil_duct, oil_duct.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java b/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java index 915c2594d..300093604 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java @@ -3,6 +3,7 @@ package com.hbm.blocks.bomb; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; +import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.world.World; public class BlockChargeC4 extends BlockChargeBase { @@ -24,8 +25,10 @@ public class BlockChargeC4 extends BlockChargeBase { return BombReturnCode.UNDEFINED; } + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override public int getRenderType() { - return BlockChargeDynamite.renderID; + return renderID; } } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java index 4bd824e32..c90df63ce 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java @@ -7,7 +7,6 @@ import com.hbm.entity.item.EntityTNTPrimedBase; import com.hbm.util.ChatBuilder; import api.hbm.block.IToolable; -import api.hbm.block.IToolable.ToolType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/network/CableDetector.java b/src/main/java/com/hbm/blocks/network/CableDetector.java new file mode 100644 index 000000000..7776212ac --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/CableDetector.java @@ -0,0 +1,68 @@ +package com.hbm.blocks.network; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCableSwitch; + +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.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class CableDetector extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconOn; + + public CableDetector(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":cable_detector_on"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":cable_detector_off"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 1 ? iconOn : blockIcon; + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityCableSwitch(); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + boolean on = world.isBlockIndirectlyGettingPowered(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + + boolean update = false; + + if(on && meta == 0) { + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); + update = true; + } + + if(!on && meta == 1) { + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); + update = true; + } + + if(update) { + TileEntityCableSwitch te = (TileEntityCableSwitch) world.getTileEntity(x, y, z); + te.updateState(); + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/CableSwitch.java b/src/main/java/com/hbm/blocks/network/CableSwitch.java index 538079e9a..b419ec28a 100644 --- a/src/main/java/com/hbm/blocks/network/CableSwitch.java +++ b/src/main/java/com/hbm/blocks/network/CableSwitch.java @@ -1,7 +1,6 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.network.TileEntityCableBaseNT; import com.hbm.tileentity.network.TileEntityCableSwitch; import cpw.mods.fml.relauncher.Side; @@ -65,5 +64,4 @@ public class CableSwitch extends BlockContainer { return false; } } - } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 554b38a1a..490cb0462 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -643,6 +643,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderBlockMultipass()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); + RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); RenderingRegistry.registerBlockHandler(new RenderRBMKRod()); RenderingRegistry.registerBlockHandler(new RenderRBMKReflector()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 992ad0208..cd3adf9cf 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1165,6 +1165,7 @@ public class ResourceManager { public static final IModelCustom cable_neo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/cable_neo.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); + public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); //RBMK DEBRIS public static final IModelCustom deb_blank = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/projectiles/deb_blank.obj")); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index 4ad474b47..f56ef6c02 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -1,9 +1,12 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; + import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.Spaghetti; +import com.hbm.interfaces.Untested; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -43,6 +46,15 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I private static final int[] slots_bottom = new int[] {2, 3, 4}; private static final int[] slots_side = new int[] { }; + @Untested + private static HashMap fluidConversions = new HashMap(); + + static { + fluidConversions.put(Fluids.UF6, PseudoFluidType.NUF6); + fluidConversions.put(Fluids.PUF6, PseudoFluidType.PF6); + fluidConversions.put(Fluids.WATZ, PseudoFluidType.MUD); + } + public TileEntityMachineGasCent() { super(6); tank = new FluidTank(Fluids.UF6, 2000, 0); @@ -319,23 +331,11 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I if(tank.getTankType() != newType) { - boolean success = false; + PseudoFluidType pseudo = fluidConversions.get(newType); - if(newType == Fluids.UF6) { - inputTank.setTankType(PseudoFluidType.NUF6); - outputTank.setTankType(PseudoFluidType.NUF6.getOutputFluid()); - success = true; - } else if(newType == Fluids.PUF6) { - inputTank.setTankType(PseudoFluidType.PF6); - outputTank.setTankType(PseudoFluidType.PF6.getOutputFluid()); - success = true; - } else if(newType == Fluids.WATZ) { - inputTank.setTankType(PseudoFluidType.MUD); - outputTank.setTankType(PseudoFluidType.MUD.getOutputFluid()); - success = true; - } - - if(success) { + if(pseudo != null) { + inputTank.setTankType(pseudo); + outputTank.setTankType(pseudo.getOutputFluid()); tank.setTankType(newType); tank.setFill(0); } diff --git a/src/main/resources/assets/hbm/textures/blocks/cable_detector_off.png b/src/main/resources/assets/hbm/textures/blocks/cable_detector_off.png new file mode 100644 index 0000000000000000000000000000000000000000..75a65369bacc225d1de36d05010176395bd99777 GIT binary patch literal 412 zcmV;N0b~A&P)uX!sZV$9=S3;g( zFi815=XklVlarYtnJpi%BJZ-Jx?vu?Bn7COCLQemc|7=Oy$0xRVc*yNQB_Xe=bYzYabU5H4M?PPz!TzBe;gQuQjI=j7A^=9}nfg z?)@n|bBr+=MTGGfrqerOjO=!Yfx^70>Iz(@JDkryq?gMu0gy^8^1;dLYg^cE543Gp zLY`nSNclbIc)zcclbIozEg!HV@3Lcc!#sFN3J{tm9qj*kJh)k}0lHh*_jSKi71v5~ zm3}T}i7f5HGK9f0c_tqiSGWox1p~-pv9NsG^0m%;^ZUB}{SBh5%hO)nnbH6N002ov JPDHLkV1iX4vEcv! literal 0 HcmV?d00001 From 72fad8d2de997bbbb2f4c3dcac27dccc237bcada Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 24 Feb 2022 16:22:01 +0100 Subject: [PATCH 4/9] metadata canisters, more leaded fuels, more certus quartz yield --- .../hbm/inventory/FluidContainerRegistry.java | 4 + .../com/hbm/inventory/fluid/FluidType.java | 18 +++++ .../java/com/hbm/inventory/fluid/Fluids.java | 26 ++++-- .../inventory/recipes/CentrifugeRecipes.java | 9 ++- .../inventory/recipes/ChemplantRecipes.java | 15 +++- .../recipes/CrystallizerRecipes.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 40 +++++----- .../com/hbm/items/machine/ItemCanister.java | 74 ++++++++++++++++++ .../com/hbm/main/ModEventHandlerClient.java | 2 +- .../hbm/textures/gui/fluids/coalgas.png | Bin 0 -> 501 bytes .../textures/gui/fluids/coalgas_leaded.png | Bin 0 -> 548 bytes .../hbm/textures/gui/fluids/coaloil.png | Bin 0 -> 399 bytes .../hbm/textures/gui/fluids/gasoline.png | Bin 671 -> 591 bytes .../textures/gui/fluids/gasoline_leaded.png | Bin 0 -> 641 bytes .../textures/gui/fluids/petroil_leaded.png | Bin 0 -> 514 bytes .../hbm/textures/items/canister_overlay.png | Bin 0 -> 413 bytes .../items/chem_icon_COALGAS_LEADED.png | Bin 0 -> 592 bytes .../items/chem_icon_GASOLINE_LEADED.png | Bin 0 -> 591 bytes .../items/chem_icon_PETROIL_LEADED.png | Bin 0 -> 581 bytes 19 files changed, 155 insertions(+), 35 deletions(-) create mode 100644 src/main/java/com/hbm/items/machine/ItemCanister.java create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/coalgas.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/coalgas_leaded.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/coaloil.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/gasoline_leaded.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/petroil_leaded.png create mode 100644 src/main/resources/assets/hbm/textures/items/canister_overlay.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_COALGAS_LEADED.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_GASOLINE_LEADED.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_PETROIL_LEADED.png diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index e88ed6eb9..95041df98 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.FluidType.ExtContainer; import com.hbm.items.ModItems; import net.minecraft.init.Items; @@ -84,6 +85,9 @@ public class FluidContainerRegistry { FluidType type = fluids[i]; + if(type.containers.contains(ExtContainer.CANISTER)) + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_full, 1, i), new ItemStack(ModItems.canister_empty), Fluids.fromID(i), 1000)); + if(type.hasNoContainer()) continue; diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 42825eaf9..fe8f94440 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -2,7 +2,9 @@ package com.hbm.inventory.fluid; import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.List; +import java.util.Set; import com.hbm.inventory.FluidTank; import com.hbm.lib.RefStrings; @@ -18,6 +20,7 @@ public class FluidType { private int id; //Approximate HEX Color of the fluid, used for pipe rendering private int color; + private int containerColor = 0xffffff; //Unlocalized string ID of the fluid private String unlocalized; @@ -26,6 +29,7 @@ public class FluidType { public int reactivity; public EnumSymbol symbol; public int temperature; + public Set containers = new HashSet(); public List traits = new ArrayList(); private String stringId; @@ -57,6 +61,12 @@ public class FluidType { return this; } + public FluidType addContainers(int color, ExtContainer... containers) { + this.containerColor = color; + Collections.addAll(this.containers, containers); + return this; + } + public FluidType addTraits(FluidTrait... traits) { Collections.addAll(this.traits, traits); return this; @@ -73,6 +83,10 @@ public class FluidType { public int getColor() { return this.color; } + + public int getContainerColor() { + return this.containerColor; + } public ResourceLocation getTexture() { return this.texture; } @@ -145,6 +159,10 @@ public class FluidType { NO_ID; } + public static enum ExtContainer { + CANISTER + } + //shitty wrapper delegates, go! //only used for compatibility purposes, these will be removed soon //don't use these, dumbfuck diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index aa2fee227..180b1cf2d 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import com.hbm.inventory.fluid.FluidType.ExtContainer; import com.hbm.inventory.fluid.FluidType.FluidTrait; import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; import com.hbm.render.util.EnumSymbol; @@ -30,7 +31,6 @@ public class Fluids { public static FluidType SMEAR; public static FluidType HEATINGOIL; public static FluidType RECLAIMED; - public static FluidType PETROIL; public static FluidType LUBRICANT; public static FluidType NAPHTHA; public static FluidType NAPHTHA_CRACK; @@ -64,8 +64,12 @@ public class Fluids { public static FluidType PAIN; //tantalite solution public static FluidType WASTEFLUID; public static FluidType WASTEGAS; - public static FluidType GASOLINE; //gasoline, leaded + public static FluidType PETROIL; + public static FluidType PETROIL_LEADED; + public static FluidType GASOLINE; + public static FluidType GASOLINE_LEADED; public static FluidType COALGAS; //coal-based gasoline + public static FluidType COALGAS_LEADED; public static FluidType SPENTSTEAM; public static FluidType FRACKSOL; public static FluidType PLASMA_DT; @@ -112,12 +116,12 @@ public class Fluids { LAVA = new FluidType( "LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200); DEUTERIUM = new FluidTypeCombustible( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE); TRITIUM = new FluidTypeCombustible( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION); - OIL = new FluidTypeFlammable( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); + OIL = new FluidTypeFlammable( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x101010, ExtContainer.CANISTER); HOTOIL = new FluidTypeFlammable( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); - HEAVYOIL = new FluidTypeFlammable( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE); - BITUMEN = new FluidType( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE); - SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE); - HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE); + HEAVYOIL = new FluidTypeFlammable( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x808000, ExtContainer.CANISTER); + BITUMEN = new FluidType( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x101080, ExtContainer.CANISTER); + SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(0x808030, ExtContainer.CANISTER); + HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(0x404000, ExtContainer.CANISTER); //TODO: and so forth RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE); PETROIL = new FluidTypeCombustible( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000); LUBRICANT = new FluidType( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE); @@ -148,7 +152,7 @@ public class Fluids { PAIN = new FluidType( "PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE); WASTEFLUID = new FluidType( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); WASTEGAS = new FluidType( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); - GASOLINE = new FluidTypeCombustible( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000); + GASOLINE = new FluidTypeCombustible( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000); COALGAS = new FluidTypeCombustible( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000); SPENTSTEAM = new FluidType( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER); FRACKSOL = new FluidType( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE); @@ -174,6 +178,9 @@ public class Fluids { 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); + PETROIL_LEADED = new FluidTypeCombustible( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000); + GASOLINE_LEADED = new FluidTypeCombustible( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000); + COALGAS_LEADED = new FluidTypeCombustible( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000); // ^ ^ ^ ^ ^ ^ ^ ^ @@ -230,8 +237,11 @@ public class Fluids { metaOrder.add(DIESEL_CRACK); metaOrder.add(KEROSENE); metaOrder.add(PETROIL); + metaOrder.add(PETROIL_LEADED); metaOrder.add(GASOLINE); + metaOrder.add(GASOLINE_LEADED); metaOrder.add(COALGAS); + metaOrder.add(COALGAS_LEADED); metaOrder.add(BIOGAS); metaOrder.add(BIOFUEL); metaOrder.add(ETHANOL); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 3aafade42..b3e251350 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -279,12 +279,13 @@ public class CentrifugeRecipes { if(quartz != null && !quartz.isEmpty()) { ItemStack qItem = quartz.get(0).copy(); + qItem.stackSize = 2; recipes.put("oreCertusQuartz", new ItemStack[] { - qItem, - qItem, - qItem, - qItem }); + qItem.copy(), + qItem.copy(), + qItem.copy(), + qItem.copy() }); } recipes.put(new ComparableStack(Items.blaze_rod), new ItemStack[] {new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.blaze_powder, 1), new ItemStack(ModItems.powder_fire, 1), new ItemStack(ModItems.powder_fire, 1) }); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 9401856a9..aafeb09fa 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -275,10 +275,21 @@ public class ChemplantRecipes { new FluidStack(Fluids.PETROLEUM, 100), new FluidStack(Fluids.STEAM, 1000)) .outputItems(new ItemStack(ModItems.antiknock))); - recipes.add(new ChemRecipe(71, "GASOLINE", 40) + recipes.add(new ChemRecipe(86, "PETROIL_LEADED", 40) .inputItems(new ComparableStack(ModItems.antiknock)) .inputFluids(new FluidStack(Fluids.PETROIL, 10_000)) - .outputFluids(new FluidStack(Fluids.GASOLINE, 12_000))); + .outputFluids(new FluidStack(Fluids.PETROIL_LEADED, 12_000))); + recipes.add(new ChemRecipe(71, "GASOLINE", 40) + .inputFluids(new FluidStack(Fluids.NAPHTHA, 1000)) + .outputFluids(new FluidStack(Fluids.GASOLINE, 800))); + recipes.add(new ChemRecipe(85, "GASOLINE_LEADED", 40) + .inputItems(new ComparableStack(ModItems.antiknock)) + .inputFluids(new FluidStack(Fluids.GASOLINE, 10_000)) + .outputFluids(new FluidStack(Fluids.GASOLINE_LEADED, 12_000))); + recipes.add(new ChemRecipe(87, "COALGAS_LEADED", 40) + .inputItems(new ComparableStack(ModItems.antiknock)) + .inputFluids(new FluidStack(Fluids.COALGAS, 10_000)) + .outputFluids(new FluidStack(Fluids.COALGAS_LEADED, 12_000))); recipes.add(new ChemRecipe(72, "FRACKSOL", 20) .inputItems(new OreDictStack(S.dust())) .inputFluids( diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 9aeb73bec..ae462ead1 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -89,7 +89,7 @@ public class CrystallizerRecipes { if(quartz != null && !quartz.isEmpty()) { ItemStack qItem = quartz.get(0).copy(); - qItem.stackSize = 6; + qItem.stackSize = 12; recipes.put("oreCertusQuartz", qItem); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 95e2c6fb7..e98200508 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -848,8 +848,9 @@ public class ModItems { public static Item inf_water_mk2; public static Item antiknock; - + public static Item canister_empty; + public static Item canister_full; public static Item canister_smear; public static Item canister_canola; public static Item canister_oil; @@ -3276,24 +3277,25 @@ public class ModItems { antiknock = new Item().setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); canister_empty = new ItemCustomLore().setUnlocalizedName("canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":canister_empty"); - canister_smear = new ItemCustomLore().setUnlocalizedName("canister_smear").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_smear"); - canister_canola = new ItemCustomLore().setUnlocalizedName("canister_canola").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_canola"); - canister_oil = new ItemCustomLore().setUnlocalizedName("canister_oil").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_oil"); - canister_fuel = new ItemCustomLore().setUnlocalizedName("canister_fuel").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_fuel"); - canister_kerosene = new ItemCustomLore().setUnlocalizedName("canister_kerosene").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_kerosene"); - canister_reoil = new ItemCustomLore().setUnlocalizedName("canister_reoil").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_reoil"); - canister_petroil = new ItemCustomLore().setUnlocalizedName("canister_petroil").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_petroil"); - canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm"); - canister_gasoline = new ItemCustomLore().setUnlocalizedName("canister_gasoline").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_gasoline"); - canister_fracksol = new ItemCustomLore().setUnlocalizedName("canister_fracksol").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_fracksol"); - canister_NITAN = new ItemCustomLore().setUnlocalizedName("canister_NITAN").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_superfuel"); - canister_heavyoil = new ItemCustomLore().setUnlocalizedName("canister_heavyoil").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_heavyoil"); - canister_bitumen = new ItemCustomLore().setUnlocalizedName("canister_bitumen").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_bitumen"); - canister_heatingoil = new ItemCustomLore().setUnlocalizedName("canister_heatingoil").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_heatingoil"); - canister_naphtha = new ItemCustomLore().setUnlocalizedName("canister_naphtha").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_naphtha"); - canister_lightoil = new ItemCustomLore().setUnlocalizedName("canister_lightoil").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_lightoil"); - canister_biofuel = new ItemCustomLore().setUnlocalizedName("canister_biofuel").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_biofuel"); - canister_ethanol = new ItemCustomLore().setUnlocalizedName("canister_ethanol").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_ethanol"); + canister_full = new ItemCanister().setUnlocalizedName("canister_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_full"); + canister_smear = new ItemCustomLore().setUnlocalizedName("canister_smear").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_smear"); + canister_canola = new ItemCustomLore().setUnlocalizedName("canister_canola").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_canola"); + canister_oil = new ItemCustomLore().setUnlocalizedName("canister_oil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_oil"); + canister_fuel = new ItemCustomLore().setUnlocalizedName("canister_fuel").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_fuel"); + canister_kerosene = new ItemCustomLore().setUnlocalizedName("canister_kerosene").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_kerosene"); + canister_reoil = new ItemCustomLore().setUnlocalizedName("canister_reoil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_reoil"); + canister_petroil = new ItemCustomLore().setUnlocalizedName("canister_petroil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_petroil"); + canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm"); + canister_gasoline = new ItemCustomLore().setUnlocalizedName("canister_gasoline").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_gasoline"); + canister_fracksol = new ItemCustomLore().setUnlocalizedName("canister_fracksol").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_fracksol"); + canister_NITAN = new ItemCustomLore().setUnlocalizedName("canister_NITAN").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_superfuel"); + canister_heavyoil = new ItemCustomLore().setUnlocalizedName("canister_heavyoil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_heavyoil"); + canister_bitumen = new ItemCustomLore().setUnlocalizedName("canister_bitumen").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_bitumen"); + canister_heatingoil = new ItemCustomLore().setUnlocalizedName("canister_heatingoil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_heatingoil"); + canister_naphtha = new ItemCustomLore().setUnlocalizedName("canister_naphtha").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_naphtha"); + canister_lightoil = new ItemCustomLore().setUnlocalizedName("canister_lightoil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_lightoil"); + canister_biofuel = new ItemCustomLore().setUnlocalizedName("canister_biofuel").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_biofuel"); + canister_ethanol = new ItemCustomLore().setUnlocalizedName("canister_ethanol").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_ethanol"); gas_empty = new Item().setUnlocalizedName("gas_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":gas_empty"); gas_full = new Item().setUnlocalizedName("gas_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.gas_empty).setTextureName(RefStrings.MODID + ":gas_full"); gas_petroleum = new Item().setUnlocalizedName("gas_petroleum").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.gas_empty).setTextureName(RefStrings.MODID + ":gas_petroleum"); diff --git a/src/main/java/com/hbm/items/machine/ItemCanister.java b/src/main/java/com/hbm/items/machine/ItemCanister.java new file mode 100644 index 000000000..a7a853e3f --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemCanister.java @@ -0,0 +1,74 @@ +package com.hbm.items.machine; + +import java.util.List; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.FluidType.ExtContainer; +import com.hbm.inventory.fluid.Fluids; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class ItemCanister extends Item { + + IIcon overlayIcon; + + public ItemCanister() { + this.setHasSubtypes(true); + this.setMaxDamage(0); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + + FluidType[] order = Fluids.getInNiceOrder(); + for(int i = 1; i < order.length; ++i) { + FluidType type = order[i]; + + if(type.containers.contains(ExtContainer.CANISTER)) { + list.add(new ItemStack(item, 1, type.getID())); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + super.registerIcons(reg); + this.overlayIcon = reg.registerIcon("hbm:canister_overlay"); + } + + @Override + @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_); + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int p_82790_2_) { + if(p_82790_2_ == 0) { + return 16777215; + } else { + int j = Fluids.fromID(stack.getItemDamage()).getContainerColor(); + + if(j < 0) { + j = 16777215; + } + + return j; + } + } +} diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 42688a750..95068fd96 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -549,7 +549,7 @@ public class ModEventHandlerClient { int breeder = TileEntityNukeFurnace.getFuelValue(stack); if(breeder != 0) { - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.furnace", (breeder * 5))); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.furnace", breeder)); } /// CUSTOM NUKE /// diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/coalgas.png b/src/main/resources/assets/hbm/textures/gui/fluids/coalgas.png new file mode 100644 index 0000000000000000000000000000000000000000..3f085dbf7ac6bb6e9d42cb0c8370374900a32144 GIT binary patch literal 501 zcmV-G9Gjw1jfLI{BrT5F6kh)B+@wbXS@(=<5eux;C-lp@B6QVOj#T5DpA z#29l!5n)*ty!Z5d&+GLf#)vh>pp-&H@`3cNl)_qzQVQo>p3Hmy_dh@gAs37>)OAe= zA>W?rT5HB}%z2CvoA4Q9^4j-3F~)pYDTVib!;Mmk5CS&c3}gseYn*c|%aWTEMZq*p zhzKH*Vc5E^S(XJ6*)*D_DUS+}lxmtL6aD-9i><1PjJv8T=6TLg(%QBy z#u&=7{K{HY6~izfB3NtL@AvF>JG!phKuY{*t(oVUX_~0(8g;o`e)vzE&*zN)cDu3W zN^70XWs@9f#I)glzyIS%V@y_~D2lHNsZ)xz`%=EHC0XZr{&KJ$Ep1rGI$v8n#`xuJ z{aDiGB;VT7MNwdkVHk!D4;u(;9@2N_P?jZ! r!+{V2pU;O70^WO`&*#P$$zXo~Qq3_c9_w9N00000NkvXXu0mjfB{SqL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/coalgas_leaded.png b/src/main/resources/assets/hbm/textures/gui/fluids/coalgas_leaded.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e45f35e8adbad32a23774bcc80f680c456162d GIT binary patch literal 548 zcmV+<0^9wGP);O@k=zo4P@8I)<7S_>bCMT9b!FWQI*R*ksc4B+lqHAID>A6S-U z14%KF=Zu>-vFFA*rj%Hg1vf{e0pT#`d7}z&$rk|jH~Z#}DDUTY;xG){|G4M%?UnQS zys17617#^&D|~#$(})IT=m%7^0Zf+(Gb6^x@NHnX+i^ahahzH!s@il40Trbzg*<0c zO2p^qXRd3SCXUA=4-XIQb~{9b$G?v_&Qg|5L^ES7W6OcNe^UL}@bvifUm`;Yn;Wr< z&4ty*wVW2FZS0O)n=7RtG+URlv}j-32z>cpExcy3vUQrBF=*Hx%eq-aJ|B?-0$tY; zG;p~zJ5}2Hmlm#dSShZdy8V8OnQ?b_$IHtLdCrIkF?Nx@>nTeUr|*0A`#rT*PNx&K mR^~EuI2ByQ}r3Ee*!8 z!^iXa`~-k81_)K%zW>6JQosB}C#6ijDdE&aRP&4NYB`e9Q2mplrQ`&k0VP?oV$2-Z~9kR+?p{g)5 zs4CnYt+mY)5{Za}B$6?O-utGCo7Xy7`{Cm4c0(!US7r1_L@>s{u_i!V*9CV6BVLhn z-cl2qv-Uj3_)&Pj-vI!vwMZl9452xcMx*AO;SB)1-*1#swiJ5r|2$x^nT6!udz?zt zTH)?6v;T9zsashek4MbLoD(Uf7-gzu?Xlhi5rL}W^?HHI*cO28j_|;P#;7VKDp!w$KhE>qdSx;M2aTkBegT3R0~9jECh-6O002ovPDHLkV1hQrv^xL* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/gasoline.png b/src/main/resources/assets/hbm/textures/gui/fluids/gasoline.png index 8a7b8a4fd4308fcd23af26f5fb2cae5de7b87585..58440ebc7a69ffcf8adbc9caf6854c8ca99a9066 100644 GIT binary patch delta 550 zcmV+>0@?ka1zfB)+MY)HHR}rm8@qV#S^{M{GMmxL1co3O zV{HzA){4EoF-P+QPLCo02CrVfIcLaDk=6?5Jbh(0gPMON&40uIP?jF&J=sG>W@$bi z!fZN42*Js5%!ADk1I79-p)8vLa;N(c%*3!bjBuqVP4jM2o_qEJ!#ddj5QZUDRUzA* zTPIp8zI?l;uB)B3?vkW??$*jOWIGukFADOaU_2TTMIqKc<}iN}vA#>XJlerBj^`B4 z;hbkY8g(wxG=E13K@cc_uK4-0C1b6SLa@5NK`svWIXjK{xVm9=b%S#r=R8pqlBPM< zLRD3irKhZFEL?1$X`O7UgAz44NR*@W-wdjPEUjI;(|q%}$pvDR~& zY>4O4mV^JuR~~9mN;MhvveHUXR`nwXEd#BFLxJkSrGJ&e7=sX^qtciLHu-lkH9IG4 zow#DN?cOxZY=#L8(iNUQ%6*$ssxG|tLfyc+Ip@$!OtW8)a}yYhX@HSZbzGbr$4IG~ z_gnB968jE1P#&pU97eo&dPGrHygXa-;o@`0g`7>NM6;01?}n^-G-bJnsH&RFuRrjv o<{>M%xF1}Rrg`_52EiDBKUq-+Qr^0R#sB~S07*qoM6N<$f>h!N?EnA( delta 630 zcmV-+0*U?41fK-(=2wXU;j}efaq4;N)xs zfYF8|%UD#b6j9V*GARI%zNFoX*z9%Kf7SuOd;9MFfhWWxP=62x*wW&htM-#DWBQ<9 zlx)T^LI||c6x#47N$@hk)HysM=(Jk|zGQc2Ksw2(c{R?5SCqD#T>x;KBo&|;$84>y zqHW2|IISk-xnWr;&PUe>A!t2W#*`Mhcylw30SLl?pU0<^);@aHaCB9z7nNlhaxod8 z(3(PP>S4(CR)3!~EvmzVewX3s8s{8ImQ`ZQ?acw{q`+uHV`-^U`(~UH_>w59127z2 z1F*mMlx8Eq_iG%TTp-u`9bUg!<=fGSAIIkyZ7|x<>$SNVr=)3tDJ|M)?(Q6i-%kj_ zfXzXdnpZ=vuf&{QCRpn#k2h8nzs_y}NYjF-F=G)m>VE{GBuxu0F2`)Hb!R#F&s@M- z%bjzCL4YUjZ3U=@K_#+m#xbQWDYU7;zLa=E;LrPd7@(9Q@Fi(F0YE8*(FXZ1c#y=NtQig0JD$7oT3ndjkPYX_WI<;@#f_QpT8b+ zKAa^}cG@la-4@rslUd?cJ3Qa&P?RNyzlIoXNwS34{=&p}6>OW^8xi#3ZO^H5%P}=bUrTIA6YgJH5GE0bsNtEpj%90)+|#ib4Y* zghw1J=A!{8M|}XCkDorD;yOD`(wA6U(bRQ!pB6dP4KE?0FvM|PjM0?FkY*VaPFw6c z4B{9eJdTg1WJQ6C$NlmFTiJF1z*ClX4N(}fm>r-iOOiaxDGI}0ptxH-;hkb3;~e7SS*B4z z%R&V{()Y+R&2p76pA6SI_z!Glsp|$`%GRSTuX<8;CW|Nxv6ZDX<~bam$9A}SQlgYX z2#-7~S~f~yv_ZUVrf#sc-C;uAP?qbBxDGujNt2u?P>8bBJFjii6rR9V7F$&WeyoKKm`0#ed_p@v6mu)h|AdVRi_xbZT17Ld4=hdQ*wwCj&B}P}IdCA$&TaqNl=+-Y4 bwxRn65L6k4P;m%z00000NkvXXu0mjfdJi3% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/petroil_leaded.png b/src/main/resources/assets/hbm/textures/gui/fluids/petroil_leaded.png new file mode 100644 index 0000000000000000000000000000000000000000..78458ddd5b22741cdf6d74266631f0c62819d0d5 GIT binary patch literal 514 zcmV+d0{#7oP)3`GwqT5d7{(w!9OF1q|~WY9?_u5C$VKNQ=U@<)&$ zlIQXvKYsrDUCIi8d*I&KOhwV8xJSRMplXacb3UIi8?b4b5P=8~=}w|bL_h@Iyax}b zHGs;p%-lb3M1Un#5Fy+Ng658d?*UUXM8IU&$!aY`M1Sw-?Ql>f=iKE)mm>(Of~Zo; z3L>PWoxr0bCe^MpDa*1D#O^F2lv=*jMo`=vwq*v0r)E)QumShF2gxZ@Y9-w9aJ+Vz zHs+D$jc`YfNYoAWNw$_wa6X?AQACCL?~LU<@b>nd$K%1g%zM>`oN2A@Qiy&|(}bo@ zC@R>HGt0W-5vUrcabWy5GS4#+5Z(|`NT8As6H|T%O#lD@07*qoM6N<$ Ef;&9n;{X5v literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/canister_overlay.png b/src/main/resources/assets/hbm/textures/items/canister_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..28ab784a954d0d7d47970689605d865d03faf70a GIT binary patch literal 413 zcmV;O0b>4%P)>3`9N@k0Ra8|)2!XEa$g&Io5#h5201?4CM~so>a*3)kola@nwwL~VJ_mro z6|A+CWy$S!>u0Lkhs!zl>k7Xz{tn99>w7^&@ZNJg9tS&L<7Kra9-#Fr00000NkvXX Hu0mjfjD4?y literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_COALGAS_LEADED.png b/src/main/resources/assets/hbm/textures/items/chem_icon_COALGAS_LEADED.png new file mode 100644 index 0000000000000000000000000000000000000000..eddc981fb497affbf5ca296694a7061f374c9d4c GIT binary patch literal 592 zcmV-W0nV+^~yyXvZUdRl>@8DsE$e=44v2ArIn{5N@w!OvIAG77BTEK*h> zm1`YrZP-}3A$M&hlLe+SxV*e1j$^de^!t61B%xZZBH{_a(HZKW0&sP9N&%i6ouM>9qtTFZJ_f*b-R$h|@3Z;rB}tN?bt*#B^_7U= zpTRsx4j_sm-u}J^z}(z;D^V07B2+3BmX@vyKp2KNw!#Y}ZDDKY7SA8036^CMMN#HI zZqKq*7$72qVF*AzpGQQ{!x@zADqA~naUK8zV0OeqsZ^rd?Gnc^K@i|L4oL#ZsElR1 z%1qH_rf36X9-!CjVObW&7#zpR;%ZWb=9e|Teg6T>^KfI02amS_h~t>!<6{;U7U*`n zDSZvX6{~#c9&qR$jKw_9!*Lusoerf^34p;M#l{${KivcFb8#N- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_GASOLINE_LEADED.png b/src/main/resources/assets/hbm/textures/items/chem_icon_GASOLINE_LEADED.png new file mode 100644 index 0000000000000000000000000000000000000000..866e8540e2fcf141b532376085166f2adb974101 GIT binary patch literal 591 zcmV-V0co;puBq8~noMz&ZDR@AsVV z5sX2(Tvmlbfo8LbVHnhEHF4QJZ5+X07=}T+-5y(yj4QNSt^YnAQLwjMRKo?ic!SOz z8|S`{UG$iFHLIpe(`qciMM&30`5u~f1&}CT63ryZm+~rK%7;YZVD^@aDyw_E*PewW zsZ@&9?`vqf&RM(1(e{y;c~MXbaEv~OpALlvP_0%~R`&pCG#cTl*Xz8#yM*#3LJR)- zvC$L)uud!{A55wUfN7e%`*{z5WOB3>(=-u4ER$sR&Ab9|x?Q5zqu3{Q;KKUWZC);( z%Qj6jjH{aoQgc4aS2*2nFgQJeKp->`5M*;xtZ#ue=l~K(3`K}eT*DmqQ|U-Y#jlT?@zPbJp(R^!nJwX}A|*JC#aBL0}^gTDkIZhK<5Ae002ovPDHLkV1igD2Z{gy literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_PETROIL_LEADED.png b/src/main/resources/assets/hbm/textures/items/chem_icon_PETROIL_LEADED.png new file mode 100644 index 0000000000000000000000000000000000000000..00b082deb68e366698429b9636a2e6b96521c279 GIT binary patch literal 581 zcmV-L0=oT)P)H%D8@!v#yZ64sx%V86 zDbZ*&WUW@C)9E0Dpxth3m(A(Z0RDs!f*=T{_Kj(cZnyj2&j2~C{pVNZtyfQ_?hrY8C1&Nxda6Wl%0AywM-zAf{>J zwjWX`l}Jxc;M<1A`k_SA!1v*BT{8e&*Old;?*Z^UZ-R+?8{GXziU~lgu0VnSD(|EL z5XUhuzh47jVPSHWIF3O|s8p~ve@FmvdJ2vMzOPi++F4?AV@x}a<2=9Jo`Iym6^g2f&dHybbai^X0s_l$q3|9y04ej&M-DpmO-%yy(ii)OJ~^Y Tgy;Jg00000NkvXXu0mjfsp Date: Thu, 24 Feb 2022 19:15:44 +0100 Subject: [PATCH 5/9] Auto stash before merge of "master" and "origin/master" --- .../hbm/inventory/gui/GUIReactorControl.java | 85 +++++++++---------- 1 file changed, 41 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java b/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java index d7da378d0..899f8970a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java @@ -31,82 +31,79 @@ public class GUIReactorControl extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_reactor_control.png"); private TileEntityReactorControl control; - + private final NumberDisplay[] displays = new NumberDisplay[3]; private GuiTextField[] fields; - + public GUIReactorControl(InventoryPlayer invPlayer, TileEntityReactorControl tedf) { super(new ContainerReactorControl(invPlayer, tedf)); control = tedf; displays[0] = new NumberDisplay(6, 20, 0x08FF00).setDigitLength(3); displays[1] = new NumberDisplay(66, 20, 0x08FF00).setDigitLength(4); displays[2] = new NumberDisplay(126, 20, 0x08FF00).setDigitLength(3); - + fields = new GuiTextField[4]; - + this.xSize = 176; this.ySize = 166; } - + public void initGui() { super.initGui(); Keyboard.enableRepeatEvents(true); - - //rod extraction fields + + // rod extraction fields for(byte i = 0; i < 2; i++) { this.fields[i] = new GuiTextField(this.fontRendererObj, guiLeft + 35 + 30 * i, guiTop + 38, 26, 7); this.fields[i].setTextColor(0x08FF00); this.fields[i].setDisabledTextColour(-1); this.fields[i].setEnableBackgroundDrawing(false); - + this.fields[i].setMaxStringLength(3); } - - //heat fields + + // heat fields for(byte i = 0; i < 2; i++) { this.fields[i + 2] = new GuiTextField(this.fontRendererObj, guiLeft + 35 + 30 * i, guiTop + 49, 26, 7); this.fields[i + 2].setTextColor(0x08FF00); this.fields[i + 2].setDisabledTextColour(-1); this.fields[i + 2].setEnableBackgroundDrawing(false); - + this.fields[i + 2].setMaxStringLength(4); } - this.fields[0].setText(String.valueOf((int)control.levelUpper)); - this.fields[1].setText(String.valueOf((int)control.levelLower)); - this.fields[2].setText(String.valueOf((int)control.heatUpper / 50)); - this.fields[3].setText(String.valueOf((int)control.heatLower / 50)); + this.fields[0].setText(String.valueOf((int) control.levelUpper)); + this.fields[1].setText(String.valueOf((int) control.levelLower)); + this.fields[2].setText(String.valueOf((int) control.heatUpper / 50)); + this.fields[3].setText(String.valueOf((int) control.heatLower / 50)); } - - + @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - - } protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - for(int j = 0; j < 4; j++) { + super.mouseClicked(x, y, i); + + for(int j = 0; j < 4; j++) { this.fields[j].mouseClicked(x, y, i); } - + if(guiLeft + 33 <= x && guiLeft + 33 + 58 > x && guiTop + 59 < y && guiTop + 59 + 10 >= y) { - + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); NBTTagCompound data = new NBTTagCompound(); - - double[] vals = new double[] {0D ,0D, 0D, 0D}; + + double[] vals = new double[] { 0D, 0D, 0D, 0D }; for(int k = 0; k < 4; k++) { - + double clamp = k < 2 ? 100 : 1000; int mod = k < 2 ? 1 : 50; - + if(NumberUtils.isDigits(fields[k].getText())) { - int j = (int)MathHelper.clamp_double(Double.parseDouble(fields[k].getText()), 0, clamp); + int j = (int) MathHelper.clamp_double(Double.parseDouble(fields[k].getText()), 0, clamp); fields[k].setText(j + ""); vals[k] = j * mod; } else { @@ -118,70 +115,70 @@ public class GUIReactorControl extends GuiInfoContainer { data.setDouble("levelLower", vals[1]); data.setDouble("heatUpper", vals[2]); data.setDouble("heatLower", vals[3]); - + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, control.xCoord, control.yCoord, control.zCoord)); } - + for(int k = 0; k < 3; k++) { if(guiLeft + 7 <= x && guiLeft + 7 + 22 > x && guiTop + 37 + k * 11 < y && guiTop + 37 + 10 + k * 11 >= y) { - + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); NBTTagCompound data = new NBTTagCompound(); data.setInteger("function", k); PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, control.xCoord, control.yCoord, control.zCoord)); } } - } - + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.control.hasCustomInventoryName() ? this.control.getInventoryName() : I18n.format(this.control.getInventoryName()); - + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } - + @Override protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - GL11.glPushMatrix(); + GL11.glPushMatrix(); Tessellator tess = Tessellator.instance; GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glLineWidth(3F); tess.startDrawing(3); tess.setColorOpaque_I(0x08FF00); - + for(int i = 0; i < 40; i++) { tess.addVertex(guiLeft + 128 + i, guiTop + 39 + MathHelper.clamp_double(control.getTargetLevel(control.function, i * 1250) / 100 * 28, 0, 28), this.zLevel); } - + tess.draw(); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glPopMatrix(); for(byte i = 0; i < 3; i++) displays[i].drawNumber(control.getDisplayData()[i]); - + for(int i = 0; i < 4; i++) this.fields[i].drawTextBox(); } - + @Override protected void keyTyped(char c, int i) { - + for(byte j = 0; j < 4; j++) { if(this.fields[j].textboxKeyTyped(c, i)) return; } - + if(i == 1 || i == this.mc.gameSettings.keyBindInventory.getKeyCode()) { this.mc.thePlayer.closeScreen(); return; } - + super.keyTyped(c, i); } } From 7bfd36230dc590ca18e1613fdf3dee1b533e968d Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 24 Feb 2022 21:21:38 +0100 Subject: [PATCH 6/9] fixed some stuff, finished meta fluid canister, lubricant recipe --- .../com/hbm/crafting/ConsumableRecipes.java | 7 ++-- .../java/com/hbm/crafting/ToolRecipes.java | 12 +++++-- .../java/com/hbm/crafting/WeaponRecipes.java | 25 ++++++++----- .../com/hbm/handler/BobmazonOfferFactory.java | 11 +++--- .../hbm/inventory/FluidContainerRegistry.java | 17 --------- .../java/com/hbm/inventory/fluid/Fluids.java | 34 +++++++++--------- .../hbm/inventory/gui/GUIReactorControl.java | 2 +- .../inventory/recipes/AssemblerRecipes.java | 8 ++--- .../inventory/recipes/ChemplantRecipes.java | 21 ++++++----- .../hbm/inventory/recipes/MachineRecipes.java | 10 +++--- src/main/java/com/hbm/items/ModItems.java | 5 +-- .../com/hbm/items/special/ItemStarterKit.java | 4 +-- .../java/com/hbm/lib/HbmChestContents.java | 9 ++--- src/main/java/com/hbm/lib/Library.java | 15 ++++---- .../java/com/hbm/main/CraftingManager.java | 9 ++--- .../tileentity/bomb/TileEntityNukeCustom.java | 3 -- .../machine/TileEntityMachineChemplant.java | 7 ++-- src/main/resources/assets/hbm/lang/de_DE.lang | 4 +++ src/main/resources/assets/hbm/lang/en_US.lang | 4 +++ .../hbm/textures/items/canister_overlay.png | Bin 413 -> 424 bytes 20 files changed, 108 insertions(+), 99 deletions(-) diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 9768e3d30..a54d6de33 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -1,20 +1,17 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.main.CraftingManager; import static com.hbm.inventory.OreDictManager.*; -import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; -import net.minecraftforge.oredict.ShapedOreRecipe; -import net.minecraftforge.oredict.ShapelessOreRecipe; /** * For foods, drinks or other consumables @@ -66,7 +63,7 @@ public class ConsumableRecipes { //Cans CraftingManager.addRecipeAuto(new ItemStack(ModItems.can_empty, 1), new Object[] { "P", "P", 'P', AL.plate() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.can_smart, 1), new Object[] { ModItems.can_empty, Items.potionitem, Items.sugar, KNO.dust() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.can_creature, 1), new Object[] { ModItems.can_empty, Items.potionitem, Items.sugar, ModItems.canister_fuel }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.can_creature, 1), new Object[] { ModItems.can_empty, Items.potionitem, Items.sugar, Fluids.DIESEL.getDict(1000) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.can_redbomb, 1), new Object[] { ModItems.can_empty, Items.potionitem, Items.sugar, ModItems.pellet_cluster }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.can_mrsugar, 1), new Object[] { ModItems.can_empty, Items.potionitem, Items.sugar, F.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.can_overcharge, 1), new Object[] { ModItems.can_empty, Items.potionitem, Items.sugar, S.dust() }); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 43ff59f86..b37cb4b44 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -2,6 +2,8 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; +import com.hbm.inventory.fluid.Fluids; + import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; @@ -84,9 +86,13 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mese_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_desh, 'D', ModItems.powder_dineutronium, 'A', ModItems.plate_paa, 'P', ModItems.chlorophyte_pickaxe, 'F', ModItems.shimmer_handle }); //Chainsaws - CraftingManager.addRecipeAuto(new ItemStack(ModItems.chainsaw, 1), new Object[] { " H", "BBP", " C", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModItems.canister_fuel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.chainsaw, 1), new Object[] { " H", "BBP", " C", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModItems.canister_petroil }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.chainsaw, 1), new Object[] { " H", "BBP", " C", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModItems.canister_biofuel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chainsaw, 1), new Object[] { " H", "BBP", " C", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', Fluids.DIESEL.getDict(1000) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chainsaw, 1), new Object[] { " H", "BBP", " C", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', Fluids.DIESEL_CRACK.getDict(1000) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chainsaw, 1), new Object[] { " H", "BBP", " C", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', Fluids.PETROIL.getDict(1000) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chainsaw, 1), new Object[] { " H", "BBP", " C", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', Fluids.PETROIL_LEADED.getDict(1000) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chainsaw, 1), new Object[] { " H", "BBP", " C", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', Fluids.GASOLINE.getDict(1000) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chainsaw, 1), new Object[] { " H", "BBP", " C", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', Fluids.GASOLINE_LEADED.getDict(1000) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chainsaw, 1), new Object[] { " H", "BBP", " C", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', Fluids.BIOFUEL.getDict(1000) }); //Misc CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_stopper, 1), new Object[] { "I", "S", "S", 'I', EUPH.ingot(), 'S', KEY_STICK }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 6ee50f3be..d0a081969 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -107,7 +107,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_osipr, 1), new Object[] { "CCT", "WWI", "MCC", 'C', CMB.plate(), 'T', W.ingot(), 'W', ModItems.wire_magnetized_tungsten, 'I', ModItems.mechanism_rifle_2, 'M', ModItems.coil_magnetized_tungsten }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator, 1), new Object[] { "WCC", "PMT", "WAA", 'W', ModItems.wire_gold, 'C', CU.plate(), 'P', ALLOY.plate(), 'M', ModItems.mechanism_launcher_1, 'T', ModItems.tank_steel, 'A', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { "SPS", "PCP", "SPS", 'S', STEEL.plate(), 'C', COAL.dust(), 'P', P_RED.dust() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.canister_fuel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', Fluids.DIESEL.getDict(1000) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 24), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.canister_napalm }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer, 1), new Object[] { "WPP", "SCT", "WMI", 'W', ModItems.wire_gold, 'P', ModItems.pipes_steel, 'S', ModItems.hull_small_steel, 'C', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'M', ModItems.mechanism_launcher_1, 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator, 1), new Object[] { "SSS", "IWL", "LMI", 'S', STEEL.plate(), 'I', IRON.plate(), 'L', Items.leather, 'M', ModItems.mechanism_launcher_1, 'W', ModItems.wire_aluminium }); @@ -240,9 +240,13 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_toxic, 1), new Object[] { "G", "R", 'G', ModItems.pellet_gas, 'R', ModItems.ammo_rocket }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_canister, 1), new Object[] { "G", "R", 'G', ModItems.pellet_canister, 'R', ModItems.ammo_rocket }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_nuclear, 1), new Object[] { " P ", "NRN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', ModItems.canister_fuel, 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', ModItems.canister_petroil, 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', ModItems.canister_biofuel, 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL_CRACK.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.BIOFUEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); //Stinger Rockets CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket_he, 1), new Object[] { "S", "R", 'S', ModItems.ingot_semtex, 'R', ModItems.ammo_stinger_rocket }); @@ -306,7 +310,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_mirv_special, 1), new Object[] { "CBC", "MCM", "CBC", 'C', ModItems.canned_jizz, 'B', ModItems.gun_bf_ammo, 'M', ModItems.ammo_mirv }); //Flamer fuel - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fuel, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.canister_fuel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fuel, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', Fluids.DIESEL.getDict(1000) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fuel_napalm, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.canister_napalm }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fuel_phosphorus, 1), new Object[] { "CPC", "CDC", "CPC", 'C', COAL.dust(), 'P', P_WHITE.ingot(), 'D', ModItems.ammo_fuel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fuel_gas, 1), new Object[] { "PDP", "BDB", "PDP", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.pellet_gas }); @@ -335,10 +339,13 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_gas, 2), new Object[] { " G ", "CGC", " C ", 'G', ModItems.grenade_generic, 'C', ModItems.pellet_gas }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_aschrab, 1), new Object[] {"RS ", "ITI", " S ", 'I', KEY_CLEARGLASS, 'R', ModItems.wire_red_copper, 'S', STEEL.plate(), 'T', ModItems.cell_anti_schrabidium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_mk2, 2), new Object[] { " G ", "SGS", " S ", 'G', ModItems.grenade_strong, 'S', Items.gunpowder }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { ModItems.canister_fuel, Items.flint }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { ModItems.canister_biofuel, Items.flint }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { ModItems.canister_petroil, Items.flint }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { ModItems.canister_kerosene, Items.flint }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.DIESEL.getDict(1000), Items.flint }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.DIESEL_CRACK.getDict(1000), Items.flint }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.PETROIL.getDict(1000), Items.flint }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.PETROIL_LEADED.getDict(1000), Items.flint }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.GASOLINE.getDict(1000), Items.flint }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.GASOLINE_LEADED.getDict(1000), Items.flint }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.BIOFUEL.getDict(1000), Items.flint }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_lemon, 1), new Object[] { ModItems.lemon, ModItems.grenade_strong }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_moist_nugget, 12), new Object[] { Items.bread, Items.wheat, Items.cooked_chicken, Items.egg }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_smart, 4), new Object[] { " A ", "ACA", " A ", 'A', ModItems.grenade_strong, 'C', ModItems.circuit_aluminium }); diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index 28cb14bb6..539594390 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -52,11 +52,12 @@ public class BobmazonOfferFactory { materials.add(new Offer(new ItemStack(ModItems.lithium), Requirement.CHEMICS, 6 * inflation)); materials.add(new Offer(new ItemStack(ModItems.solid_fuel), Requirement.OIL, 4 * inflation)); materials.add(new Offer(new ItemStack(ModItems.lignite), Requirement.STEEL, 2 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.canister_oil), Requirement.OIL, 4 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.canister_fuel), Requirement.OIL, 16 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.canister_petroil), Requirement.OIL, 12 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.canister_kerosene), Requirement.OIL, 20 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.canister_NITAN), Requirement.OIL, 100 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_full, 1, Fluids.OIL.getID()), Requirement.OIL, 4 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_full, 1, Fluids.DIESEL.getID()), Requirement.OIL, 16 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_full, 1, Fluids.PETROIL.getID()), Requirement.OIL, 12 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_full, 1, Fluids.GASOLINE.getID()), Requirement.OIL, 20 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_full, 1, Fluids.KEROSENE.getID()), Requirement.OIL, 20 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_full, 1, Fluids.NITAN.getID()), Requirement.OIL, 100 * inflation)); materials.add(new Offer(new ItemStack(ModItems.gas_petroleum), Requirement.OIL, 8 * inflation)); materials.add(new Offer(new ItemStack(ModItems.motor), Requirement.ASSEMBLY, 12 * inflation)); materials.add(new Offer(new ItemStack(ModItems.rtg_unit), Requirement.NUCLEAR, 25 * inflation)); diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index 95041df98..a78097093 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -24,23 +24,6 @@ public class FluidContainerRegistry { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.bucket_mud), new ItemStack(Items.bucket), Fluids.WATZ, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.bucket_schrabidic_acid), new ItemStack(Items.bucket), Fluids.SCHRABIDIC, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_oil), new ItemStack(ModItems.canister_empty), Fluids.OIL, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_smear), new ItemStack(ModItems.canister_empty), Fluids.SMEAR, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_heavyoil), new ItemStack(ModItems.canister_empty), Fluids.HEAVYOIL, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_bitumen), new ItemStack(ModItems.canister_empty), Fluids.BITUMEN, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_heatingoil), new ItemStack(ModItems.canister_empty), Fluids.HEATINGOIL, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_reoil), new ItemStack(ModItems.canister_empty), Fluids.RECLAIMED, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_petroil), new ItemStack(ModItems.canister_empty), Fluids.PETROIL, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_canola), new ItemStack(ModItems.canister_empty), Fluids.LUBRICANT, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_naphtha), new ItemStack(ModItems.canister_empty), Fluids.NAPHTHA, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_fuel), new ItemStack(ModItems.canister_empty), Fluids.DIESEL, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_lightoil), new ItemStack(ModItems.canister_empty), Fluids.LIGHTOIL, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_kerosene), new ItemStack(ModItems.canister_empty), Fluids.KEROSENE, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_biofuel), new ItemStack(ModItems.canister_empty), Fluids.BIOFUEL, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_ethanol), new ItemStack(ModItems.canister_empty), Fluids.ETHANOL, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_gasoline), new ItemStack(ModItems.canister_empty), Fluids.GASOLINE, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_fracksol), new ItemStack(ModItems.canister_empty), Fluids.FRACKSOL, 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_NITAN), new ItemStack(ModItems.canister_empty), Fluids.NITAN, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full), new ItemStack(ModItems.gas_empty), Fluids.GAS, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_petroleum), new ItemStack(ModItems.gas_empty), Fluids.PETROLEUM, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_lpg), new ItemStack(ModItems.gas_empty), Fluids.LPG, 1000)); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 180b1cf2d..8dc3b9134 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -116,25 +116,25 @@ public class Fluids { LAVA = new FluidType( "LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200); DEUTERIUM = new FluidTypeCombustible( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE); TRITIUM = new FluidTypeCombustible( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION); - OIL = new FluidTypeFlammable( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x101010, ExtContainer.CANISTER); + OIL = new FluidTypeFlammable( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER); HOTOIL = new FluidTypeFlammable( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); - HEAVYOIL = new FluidTypeFlammable( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x808000, ExtContainer.CANISTER); - BITUMEN = new FluidType( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x101080, ExtContainer.CANISTER); - SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(0x808030, ExtContainer.CANISTER); - HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(0x404000, ExtContainer.CANISTER); //TODO: and so forth - RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE); - PETROIL = new FluidTypeCombustible( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000); - LUBRICANT = new FluidType( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE); - NAPHTHA = new FluidTypeFlammable( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE); - DIESEL = new FluidTypeCombustible( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000); - LIGHTOIL = new FluidTypeFlammable( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE); - KEROSENE = new FluidTypeCombustible( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000); + HEAVYOIL = new FluidTypeFlammable( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER); + BITUMEN = new FluidType( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER); + SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(0x808030, ExtContainer.CANISTER).addContainers(0x624F3B, ExtContainer.CANISTER); + HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(0x694235, ExtContainer.CANISTER); //TODO: and so forth + RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).addContainers(0xF65723, ExtContainer.CANISTER); + PETROIL = new FluidTypeCombustible( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).addContainers(0x2369F6, ExtContainer.CANISTER); + LUBRICANT = new FluidType( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER); + NAPHTHA = new FluidTypeFlammable( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER); + DIESEL = new FluidTypeCombustible( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000).addContainers(0xFF2C2C, ExtContainer.CANISTER); + LIGHTOIL = new FluidTypeFlammable( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER); + KEROSENE = new FluidTypeCombustible( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000).addContainers(0xFF377D, ExtContainer.CANISTER); GAS = new FluidTypeFlammable( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); PETROLEUM = new FluidTypeFlammable( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE); LPG = new FluidTypeCombustible( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000); BIOGAS = new FluidTypeFlammable( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE); - BIOFUEL = new FluidTypeCombustible( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000); - NITAN = new FluidTypeCombustible( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000); + BIOFUEL = new FluidTypeCombustible( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).addContainers(0x9EB623, ExtContainer.CANISTER); + NITAN = new FluidTypeCombustible( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).addContainers(0x6B238C, ExtContainer.CANISTER); UF6 = new FluidType( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); PUF6 = new FluidType( "PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); SAS3 = new FluidType( "SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); @@ -152,10 +152,10 @@ public class Fluids { PAIN = new FluidType( "PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE); WASTEFLUID = new FluidType( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); WASTEGAS = new FluidType( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); - GASOLINE = new FluidTypeCombustible( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000); + GASOLINE = new FluidTypeCombustible( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).addContainers(0x2F7747, ExtContainer.CANISTER); COALGAS = new FluidTypeCombustible( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000); SPENTSTEAM = new FluidType( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER); - FRACKSOL = new FluidType( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE); + FRACKSOL = new FluidType( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER); PLASMA_DT = new FluidType( "PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_HD = new FluidType( "PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_HT = new FluidType( "PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); @@ -165,7 +165,7 @@ public class Fluids { PLASMA_DH3 = new FluidType( "PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); HELIUM3 = new FluidType( "HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT); DEATH = new FluidType( "DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER); - ETHANOL = new FluidTypeCombustible( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000); + ETHANOL = new FluidTypeCombustible( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000).addContainers(0xEAFFF3, ExtContainer.CANISTER); HEAVYWATER = new FluidType( "HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE); CRACKOIL = new FluidTypeFlammable( "CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); COALOIL = new FluidTypeFlammable( "COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java b/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java index 899f8970a..24cac5ff5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java @@ -144,7 +144,7 @@ public class GUIReactorControl extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - GL11.glPushMatrix(); + GL11.glPushMatrix(); Tessellator tess = Tessellator.instance; GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glLineWidth(3F); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index e4c19722a..b05d6ce3f 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -163,7 +163,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.telepad, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 12), new OreDictStack(SA326.plate(), 2), new OreDictStack(CMB.plate(), 4), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.wire_gold, 6), new ComparableStack(ModItems.circuit_schrabidium, 1), },300); makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new OreDictStack(PB.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 4), new ComparableStack(ModItems.singularity_counter_resonant, 1), new ComparableStack(ModItems.singularity_super_heated, 1), new ComparableStack(ModItems.powder_power, 4), },200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); - makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_kerosene, 3), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); + makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_full, 3, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.ordinal()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.plate_polymer, 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(Blocks.tnt, 2), },100); makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new ComparableStack(Blocks.tnt, 4), },150); @@ -183,7 +183,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); - makeRecipe(new ComparableStack(ModItems.fuel_tank_small, 1), new AStack[] {new ComparableStack(ModItems.canister_kerosene, 4), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2), },100); + makeRecipe(new ComparableStack(ModItems.fuel_tank_small, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 4, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2), },100); makeRecipe(new ComparableStack(ModItems.fuel_tank_medium, 1), new AStack[] {new ComparableStack(ModItems.fuel_tank_small, 3), new OreDictStack(TI.plate(), 4), new OreDictStack(STEEL.plate(), 2), },150); makeRecipe(new ComparableStack(ModItems.fuel_tank_large, 1), new AStack[] {new ComparableStack(ModItems.fuel_tank_medium, 3), new OreDictStack(TI.plate(), 4), new OreDictStack(STEEL.plate(), 2), },200); makeRecipe(new ComparableStack(ModItems.thruster_small, 1), new AStack[] {new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.wire_aluminium, 4), },100); @@ -274,7 +274,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.block(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(STEEL.plate(), 16), new OreDictStack(AL.plate(), 6), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 8), },400); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 28), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 20), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.coil_tungsten, 8), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },350); - makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_canola, 1), },160); + makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_full, 1, Fluids.LUBRICANT.getID()), },160); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); @@ -778,7 +778,7 @@ public class AssemblerRecipes { new ComparableStack(ModItems.missile_generic, 2), new ComparableStack(ModItems.missile_strong, 1), new OreDictStack(KEY_ORANGE, 5), - new ComparableStack(ModItems.canister_gasoline, 24), + new ComparableStack(ModItems.canister_full, 24, Fluids.GASOLINE_LEADED.getID()), new OreDictStack(FIBER.ingot(), 12), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.ingot_semtex, 8), diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index aafeb09fa..43045d169 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -267,6 +267,11 @@ public class ChemplantRecipes { .inputItems(new ComparableStack(ModBlocks.sand_lead)) .inputFluids(new FluidStack(Fluids.WASTEGAS, 1000)) .outputItems(new ItemStack(ModItems.nuclear_waste_vitrified))); + recipes.add(new ChemRecipe(88, "LUBRICANT", 20) + .inputFluids( + new FluidStack(Fluids.HEATINGOIL, 500), + new FluidStack(Fluids.UNSATURATEDS, 500)) + .outputFluids(new FluidStack(Fluids.LUBRICANT, 1000))); recipes.add(new ChemRecipe(70, "TEL", 40) .inputItems( new OreDictStack(ANY_TAR.any()), @@ -275,6 +280,14 @@ public class ChemplantRecipes { new FluidStack(Fluids.PETROLEUM, 100), new FluidStack(Fluids.STEAM, 1000)) .outputItems(new ItemStack(ModItems.antiknock))); + recipes.add(new ChemRecipe(4, "FR_REOIL", 30) + .inputFluids(new FluidStack(1000, Fluids.SMEAR)) + .outputFluids(new FluidStack(800, Fluids.RECLAIMED))); + 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))); recipes.add(new ChemRecipe(86, "PETROIL_LEADED", 40) .inputItems(new ComparableStack(ModItems.antiknock)) .inputFluids(new FluidStack(Fluids.PETROIL, 10_000)) @@ -357,14 +370,6 @@ public class ChemplantRecipes { new FluidStack(RefineryRecipes.light_frac_diesel * 10, Fluids.DIESEL), new FluidStack(RefineryRecipes.light_frac_kero * 10, Fluids.KEROSENE) )); - recipes.add(new ChemRecipe(4, "FR_REOIL", 30) - .inputFluids(new FluidStack(1000, Fluids.SMEAR)) - .outputFluids(new FluidStack(800, Fluids.RECLAIMED))); - 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 registerOtherOil() { diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index 223da7f5c..960f6c8fa 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -75,8 +75,8 @@ public class MachineRecipes { return new ItemStack(ModItems.ingot_red_copper, 2); } - if (item.getItem() == ModItems.canister_fuel && item2.getItem() == Items.slime_ball - || item.getItem() == Items.slime_ball && item2.getItem() == ModItems.canister_fuel) { + if (item.getItem() == ModItems.canister_full && item.getItemDamage() == Fluids.DIESEL.getID() && item2.getItem() == Items.slime_ball + || item.getItem() == Items.slime_ball && item2.getItem() == ModItems.canister_full && item2.getItemDamage() == Fluids.DIESEL.getID()) { return new ItemStack(ModItems.canister_napalm, 1); } @@ -118,7 +118,7 @@ public class MachineRecipes { if(GeneralConfig.enableBabyMode) { if(mODE(item, new String[] { "gemCoal", "dustCoal" }) && item2.getItem() == ModItems.canister_empty || item.getItem() == ModItems.canister_empty && mODE(item2, new String[] { "gemCoal", "dustCoal" })) { - return new ItemStack(ModItems.canister_oil ); + return new ItemStack(ModItems.canister_full, 1, Fluids.OIL.getID()); } } @@ -414,8 +414,8 @@ public class MachineRecipes { getFurnaceOutput(new ItemStack(ModItems.ingot_copper), new ItemStack(Items.redstone)).copy()); recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_red_copper), new ItemStack(ModItems.ingot_steel) }, getFurnaceOutput(new ItemStack(ModItems.ingot_red_copper), new ItemStack(ModItems.ingot_steel)).copy()); - recipes.put(new ItemStack[] { new ItemStack(ModItems.canister_fuel), new ItemStack(Items.slime_ball) }, - getFurnaceOutput(new ItemStack(ModItems.canister_fuel), new ItemStack(Items.slime_ball)).copy()); + recipes.put(new ItemStack[] { new ItemStack(ModItems.canister_full, 1, Fluids.DIESEL.getContainerColor()), new ItemStack(Items.slime_ball) }, + getFurnaceOutput(new ItemStack(ModItems.canister_full, 1, Fluids.DIESEL.getContainerColor()), new ItemStack(Items.slime_ball)).copy()); recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_tungsten), new ItemStack(ModItems.nugget_schrabidium) }, getFurnaceOutput(new ItemStack(ModItems.ingot_tungsten), new ItemStack(ModItems.nugget_schrabidium)).copy()); recipes.put(new ItemStack[] { new ItemStack(ModItems.plate_mixed), new ItemStack(ModItems.plate_gold) }, diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index e98200508..ab5ade636 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3277,7 +3277,7 @@ public class ModItems { antiknock = new Item().setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); canister_empty = new ItemCustomLore().setUnlocalizedName("canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":canister_empty"); - canister_full = new ItemCanister().setUnlocalizedName("canister_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_full"); + canister_full = new ItemCanister().setUnlocalizedName("canister_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_empty"); canister_smear = new ItemCustomLore().setUnlocalizedName("canister_smear").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_smear"); canister_canola = new ItemCustomLore().setUnlocalizedName("canister_canola").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_canola"); canister_oil = new ItemCustomLore().setUnlocalizedName("canister_oil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_oil"); @@ -3285,7 +3285,7 @@ public class ModItems { canister_kerosene = new ItemCustomLore().setUnlocalizedName("canister_kerosene").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_kerosene"); canister_reoil = new ItemCustomLore().setUnlocalizedName("canister_reoil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_reoil"); canister_petroil = new ItemCustomLore().setUnlocalizedName("canister_petroil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_petroil"); - canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm"); + canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm"); canister_gasoline = new ItemCustomLore().setUnlocalizedName("canister_gasoline").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_gasoline"); canister_fracksol = new ItemCustomLore().setUnlocalizedName("canister_fracksol").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_fracksol"); canister_NITAN = new ItemCustomLore().setUnlocalizedName("canister_NITAN").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_superfuel"); @@ -6322,6 +6322,7 @@ public class ModItems { //Canisters GameRegistry.registerItem(antiknock, antiknock.getUnlocalizedName()); GameRegistry.registerItem(canister_empty, canister_empty.getUnlocalizedName()); + GameRegistry.registerItem(canister_full, canister_full.getUnlocalizedName()); GameRegistry.registerItem(canister_oil, canister_oil.getUnlocalizedName()); GameRegistry.registerItem(canister_heavyoil, canister_heavyoil.getUnlocalizedName()); GameRegistry.registerItem(canister_bitumen, canister_bitumen.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index 4d00179e1..c70d9c612 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -207,8 +207,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_fuel, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_biofuel, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_full, 16, Fluids.DIESEL.getID())); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_full, 16, Fluids.BIOFUEL.getID())); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_advanced_cell_4, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_advanced_cell_4, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1)); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 041d037ad..c7243aee6 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -3,6 +3,7 @@ package com.hbm.lib; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.*; @@ -41,8 +42,8 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.bottle_cherry, 0, 1, 1, 2), new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.cap_nuka, 0, 1, 15, 7), - new WeightedRandomChestContent(ModItems.canister_fuel, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.canister_biofuel, 0, 1, 2, 3), + new WeightedRandomChestContent(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), + new WeightedRandomChestContent(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 2), new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 3) }; @@ -98,8 +99,8 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 6), new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 3), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_barrel), 0, 1, 1, 6), - new WeightedRandomChestContent(ModItems.canister_fuel, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.canister_biofuel, 0, 1, 2, 3), + new WeightedRandomChestContent(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), + new WeightedRandomChestContent(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 5), new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 2), new WeightedRandomChestContent(ModItems.bomb_caller, 1, 1, 1, 1), diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 55958a47f..a6733bb29 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -18,7 +18,6 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyBase; import com.hbm.tileentity.TileEntityProxyInventory; -import com.hbm.tileentity.conductor.TileEntityFluidDuct; import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.tileentity.conductor.TileEntityGasDuct; import com.hbm.tileentity.conductor.TileEntityGasDuctSolid; @@ -490,17 +489,17 @@ public class Library { if(tileentity instanceof IFluidDuct) { - if(tileentity instanceof TileEntityFluidDuct && ((TileEntityFluidDuct)tileentity).getType().name().equals(type.name())) + if(tileentity instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple)tileentity).getType().name().equals(type.name())) { - if(Library.checkUnionListForFluids(((TileEntityFluidDuct)tileentity).uoteab, that)) + if(Library.checkUnionListForFluids(((TileEntityFluidDuctSimple)tileentity).uoteab, that)) { - for(int i = 0; i < ((TileEntityFluidDuct)tileentity).uoteab.size(); i++) + for(int i = 0; i < ((TileEntityFluidDuctSimple)tileentity).uoteab.size(); i++) { - if(((TileEntityFluidDuct)tileentity).uoteab.get(i).source == that) + if(((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).source == that) { - if(((TileEntityFluidDuct)tileentity).uoteab.get(i).ticked != newTact) + if(((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).ticked != newTact) { - ((TileEntityFluidDuct)tileentity).uoteab.get(i).ticked = newTact; + ((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).ticked = newTact; transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); @@ -511,7 +510,7 @@ public class Library { } } } else { - ((TileEntityFluidDuct)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); + ((TileEntityFluidDuctSimple)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); } } if(tileentity instanceof TileEntityGasDuct && ((TileEntityGasDuct)tileentity).type.name().equals(type.name())) diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index c0455066a..d5c27881f 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -450,7 +450,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.pellet_gas, 2), new Object[] { Items.water_bucket, "dustGlowstone", STEEL.plate() }); addRecipeAuto(new ItemStack(ModItems.flame_pony, 1), new Object[] { " O ", "DPD", " O ", 'D', "dyePink", 'O', KEY_YELLOW, 'P', Items.paper }); - addRecipeAuto(new ItemStack(ModItems.flame_conspiracy, 1), new Object[] { " S ", "STS", " S ", 'S', ModItems.canister_kerosene, 'T', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModItems.flame_conspiracy, 1), new Object[] { " S ", "STS", " S ", 'S', Fluids.KEROSENE.getDict(1000), 'T', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.flame_politics, 1), new Object[] { " I ", "IPI", " I ", 'P', Items.paper, 'I', KEY_BLACK }); addRecipeAuto(new ItemStack(ModItems.flame_opinion, 1), new Object[] { " R ", "RPR", " R ", 'P', Items.paper, 'R', KEY_RED }); @@ -531,8 +531,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.tank_waste, 1), new Object[] { "PTP", "PTP", "PTP", 'T', ModItems.tank_steel, 'P', STEEL.plate() }); - addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'K', ModItems.canister_kerosene }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ModItems.plate_polymer, 'L', ModItems.canister_canola, 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'K', Fluids.KEROSENE.getDict(1000) }); + addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ModItems.plate_polymer, 'L', Fluids.LUBRICANT.getDict(1000), 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ModItems.plate_polymer, 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_schrabidium, 'C', ModItems.circuit_schrabidium, 'E', EUPH.ingot() }); @@ -855,6 +855,7 @@ public class CraftingManager { 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[] { Fluids.HEATINGOIL.getDict(1000), KEY_TOOL_CHEMISTRYSET }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 2, Fluids.LUBRICANT.getID()), new Object[] { Fluids.HEATINGOIL.getDict(1000), Fluids.UNSATURATEDS.getDict(1000), ModItems.canister_empty, ModItems.canister_empty, KEY_TOOL_CHEMISTRYSET }); addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', ModItems.board_copper }); @@ -869,7 +870,7 @@ public class CraftingManager { if(GeneralConfig.enableBabyMode) { addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); addShapelessAuto(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, KNO.dust() }); - addShapelessAuto(new ItemStack(ModItems.canister_fuel, 1), new Object[] { ModItems.canister_oil, REDSTONE.dust() }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.DIESEL.getID()), new Object[] { new ItemStack(ModItems.canister_full, 1, Fluids.OIL.getID()), REDSTONE.dust(), ModItems.canister_empty }); addShapelessAuto(new ItemStack(ModBlocks.ore_uranium, 1), new Object[] { ModBlocks.ore_uranium_scorched, Items.water_bucket }); addRecipeAuto(new ItemStack(ModBlocks.ore_uranium, 8), new Object[] { "OOO", "OBO", "OOO", 'O', ModBlocks.ore_uranium_scorched, 'B', Items.water_bucket }); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java index 87cd599b1..715afd4f7 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java @@ -186,9 +186,6 @@ public class TileEntityNukeCustom extends TileEntity implements ISidedInventory entries.put(new ComparableStack(ModBlocks.det_cord), new CustomNukeEntry(EnumBombType.TNT, 1.5F)); entries.put(new ComparableStack(ModItems.ingot_semtex), new CustomNukeEntry(EnumBombType.TNT, 8F)); entries.put(new ComparableStack(ModBlocks.det_charge), new CustomNukeEntry(EnumBombType.TNT, 15F)); - entries.put(new ComparableStack(ModItems.canister_fuel), new CustomNukeEntry(EnumBombType.TNT, 0.5F)); - entries.put(new ComparableStack(ModItems.canister_napalm), new CustomNukeEntry(EnumBombType.TNT, 2.5F)); - entries.put(new ComparableStack(ModItems.canister_kerosene), new CustomNukeEntry(EnumBombType.TNT, 0.8F)); entries.put(new ComparableStack(ModBlocks.red_barrel), new CustomNukeEntry(EnumBombType.TNT, 2.5F)); entries.put(new ComparableStack(ModBlocks.pink_barrel), new CustomNukeEntry(EnumBombType.TNT, 4F)); entries.put(new ComparableStack(ModItems.custom_tnt), new CustomNukeEntry(EnumBombType.TNT, 10F)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 2ce304464..ab62f8427 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -17,10 +17,13 @@ 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.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.InventoryUtil; import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -88,7 +91,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements loadItems(); unloadItems(); - if(worldObj.getTotalWorldTime() % 10 == 0) { + if(worldObj.getTotalWorldTime() % 1 == 0) { this.fillFluidInit(tanks[2].getTankType()); this.fillFluidInit(tanks[3].getTankType()); } @@ -417,7 +420,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements * #### */ - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); fillFluid(xCoord + rot.offsetX * 3, yCoord, zCoord + rot.offsetZ * 3, this.getTact(), type); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index e840c4966..3857a5b5b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1594,6 +1594,7 @@ item.ingot_bakelite.name=Bakelitbarren item.ingot_beryllium.name=Berylliumbarren item.ingot_bismuth.name=Bismutbarren item.ingot_boron.name=Borbarren +item.ingot_c4.name=C4-Tafel item.ingot_chainsteel.name=Schwerer Kettenstahl item.ingot_co60.name=Kobalt-60-Barren item.ingot_cobalt.name=Kobaltbarren @@ -1633,6 +1634,7 @@ item.ingot_pu240.name=Plutonium-240-Barren item.ingot_pu241.name=Plutonium-241-Barren item.ingot_red_copper.name=Minecraft-Kupfer item.ingot_reiium.name=Reiiumbarren +item.ingot_rubber.name=Gummitafel item.ingot_saturnite.name=Saturnitbarren item.ingot_schrabidate.name=Eisenschrabidatbarren item.ingot_schrabidium.name=Schrabidiumbarren @@ -2868,6 +2870,7 @@ tile.block_australium.name=Australiumblock tile.block_beryllium.name=Berylliumblock tile.block_bismuth.name=Bismutblock tile.block_boron.name=Borblock +tile.block_c4.name=C4-Block tile.block_cap_fritz.name=Fritz-Kola Kronkorkenblock tile.block_cap_korl.name=Korl Kronkorkenblock tile.block_cap_nuka.name=Nuka Kronkorkenblock @@ -2988,6 +2991,7 @@ tile.brick_light.name=Helle Ziegel tile.brick_obsidian.name=Obsidianziegel tile.broadcaster_pc.name=Korrupter Sender tile.burning_earth.name=Brennendes Gras +tile.cable_detector.name=Redstone-Stromschalter tile.cable_switch.name=Stromschalter tile.charge_dynamite.name=Zeitbombe tile.charge_miner.name=Bergbauladung mit Zeitzünder diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d696458c9..c1d32c0a6 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1821,6 +1821,7 @@ item.ingot_bakelite.name=Bakelite Ingot item.ingot_beryllium.name=Beryllium Ingot item.ingot_bismuth.name=Bismuth Ingot item.ingot_boron.name=Boron Ingot +item.ingot_c4.name=Bar of Composition C-4 item.ingot_chainsteel.name=Heavy Chainsteel item.ingot_co60.name=Cobalt-60 Ingot item.ingot_cobalt.name=Cobalt Ingot @@ -1869,6 +1870,7 @@ item.ingot_pu241.name=Plutonium-241 Ingot item.ingot_ra226.name=Radium-226 Ingot item.ingot_red_copper.name=Minecraft Grade Copper item.ingot_reiium.name=Reiium Ingot +item.ingot_rubber.name=Rubber Bar item.ingot_saturnite.name=Saturnite Ingot item.ingot_schrabidate.name=Ferric Schrabidate Ingot item.ingot_schrabidium.name=Schrabidium Ingot @@ -3232,6 +3234,7 @@ tile.block_australium.name=Block of Australium tile.block_beryllium.name=Block of Beryllium tile.block_bismuth.name=Block of Bismuth tile.block_boron.name=Block of Boron +tile.block_c4.name=Block of C-4 tile.block_cap_fritz.name=Block of Fritz Cola Bottle Caps tile.block_cap_korl.name=Block of Korl Bottle Caps tile.block_cap_nuka.name=Block of Nuka Cola Bottle Caps @@ -3353,6 +3356,7 @@ tile.brick_light.name=Light Bricks tile.brick_obsidian.name=Obsidian Bricks tile.broadcaster_pc.name=Corrupted Broadcaster tile.burning_earth.name=Burning Grass +tile.cable_detector.name=Redstone Power Switch tile.cable_switch.name=Power Switch tile.charge_dynamite.name=Time Bomb tile.charge_miner.name=Timed Mining Charge diff --git a/src/main/resources/assets/hbm/textures/items/canister_overlay.png b/src/main/resources/assets/hbm/textures/items/canister_overlay.png index 28ab784a954d0d7d47970689605d865d03faf70a..f32b8014f54bc6a6121e4466e3f6917c355c822d 100644 GIT binary patch delta 381 zcmV-@0fPRW1E>R#G=E=7L_t(Ijn$G(uHrBd2FngMSs<~C1SA&-=YVT)GA_b7xByWQ z5E&M%K>q2sO7y~r(QK!8ZK+Gu?GOI@QokD!k^BA5<#Itp$n%`j>BMHUQU3(+-ivdN z$K%2K{U*53Q$U+wMJ`=h_GBPan6ZzP5`Q^LaFf!*|VvOGbT5F6k06d>h=JPpS*HM<` zXw9#H*Xsp92zCMQJ;&pbx~>Pi{x)9$)>^dIOePcBwxy~noO2XK0YFNL&l&+@j2L4G zA+T61NGUO$PU*UCQ131K8vR0+Wi(C0^?DuNQc6R(j4?wthMRmU^+D-%`+*oE)>?ME b-Du_qo`AEIJ!o%^00000NkvXXu0mjfYG<(b delta 370 zcmV-&0ge8s1DykqG=Ee{L_t(Ijn$Gdj`A=Ng+Ch`BqW+h5ciykW8?&I3L1_8ccLeW zAW205*fU$Kh&Jp-fBjE4W6h`cJP-c+GC!Ns>7-rPalKwqRc5mpm&=9yes9JA_Gj~Y zy@)YlttF*IN{KwrDT+diqR@W=j4?Rp5E16{Ib~V0-EK{u=YNC{_zPk`2Pq{clL;v$ zto?r8?RG|0sq31}W;1}ePX*Rmj4_A^tJR9b;h+Fb(-1&UVU01@G{1^^MkIY*3<<#LItGM!Fo z+qRefd_D(&!4<5vlx4~7cI#)V+K0 Date: Fri, 25 Feb 2022 13:12:31 +0100 Subject: [PATCH 7/9] plastic blocks, heat energy values for fluids, more explosive sticks --- src/main/java/com/hbm/blocks/ModBlocks.java | 9 ++++ .../java/com/hbm/crafting/MineralRecipes.java | 10 +++-- .../java/com/hbm/crafting/WeaponRecipes.java | 10 ++++- .../com/hbm/inventory/OreDictManager.java | 7 ++- .../inventory/fluid/FluidTypeFlammable.java | 4 ++ .../java/com/hbm/inventory/fluid/Fluids.java | 34 +++++++-------- src/main/java/com/hbm/items/ModItems.java | 40 ++++++++++-------- .../com/hbm/items/machine/ItemCanister.java | 12 ++++++ .../com/hbm/items/tool/ItemColtanCompass.java | 1 + .../java/com/hbm/items/tool/ItemWiring.java | 18 ++++++++ .../java/com/hbm/main/CraftingManager.java | 21 ++++++++- .../machine/TileEntityMachineIGenerator.java | 20 +-------- src/main/resources/assets/hbm/lang/de_DE.lang | 35 +++++++-------- src/main/resources/assets/hbm/lang/en_US.lang | 39 ++++++++--------- .../hbm/textures/blocks/block_bakelite.png | Bin 0 -> 216 bytes .../textures/blocks/block_plastic_base.png | Bin 0 -> 208 bytes .../hbm/textures/blocks/block_polymer.png | Bin 0 -> 209 bytes .../hbm/textures/blocks/block_rubber.png | Bin 0 -> 214 bytes .../assets/hbm/textures/items/stick_c4.png | Bin 0 -> 306 bytes .../hbm/textures/items/stick_semtex.png | Bin 0 -> 305 bytes .../assets/hbm/textures/items/stick_tnt.png | Bin 242 -> 275 bytes 21 files changed, 161 insertions(+), 99 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_bakelite.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_plastic_base.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_polymer.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_rubber.png create mode 100644 src/main/resources/assets/hbm/textures/items/stick_c4.png create mode 100644 src/main/resources/assets/hbm/textures/items/stick_semtex.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index e7ae1920c..e838c776f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -224,6 +224,9 @@ public class ModBlocks { public static Block block_desh; public static Block block_dura_steel; public static Block block_starmetal; + public static Block block_polymer; + public static Block block_bakelite; + public static Block block_rubber; public static Block block_yellowcake; public static Block block_insulator; public static Block block_fiberglass; @@ -1418,6 +1421,9 @@ public class ModBlocks { block_desh = new BlockBeaconable(Material.iron).setBlockName("block_desh").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_desh"); block_dura_steel = new BlockBeaconable(Material.iron).setBlockName("block_dura_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_dura_steel"); block_starmetal = new BlockBeaconable(Material.iron).setBlockName("block_starmetal").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_starmetal"); + block_polymer = new BlockBeaconable(Material.ground).setBlockName("block_polymer").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polymer"); + block_bakelite = new BlockBeaconable(Material.ground).setBlockName("block_bakelite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_bakelite"); + block_rubber = new BlockBeaconable(Material.ground).setBlockName("block_rubber").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_rubber"); block_yellowcake = new BlockHazardFalling().makeBeaconable().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); block_insulator = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_insulator_top").setBlockName("block_insulator").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_insulator_side"); block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); @@ -2446,6 +2452,9 @@ public class ModBlocks { GameRegistry.registerBlock(block_desh, block_desh.getUnlocalizedName()); GameRegistry.registerBlock(block_dura_steel, block_dura_steel.getUnlocalizedName()); GameRegistry.registerBlock(block_starmetal, block_starmetal.getUnlocalizedName()); + GameRegistry.registerBlock(block_polymer, block_polymer.getUnlocalizedName()); + GameRegistry.registerBlock(block_bakelite, block_bakelite.getUnlocalizedName()); + GameRegistry.registerBlock(block_rubber, block_rubber.getUnlocalizedName()); GameRegistry.registerBlock(block_australium, ItemOreBlock.class, block_australium.getUnlocalizedName()); GameRegistry.registerBlock(block_weidanium, ItemOreBlock.class, block_weidanium.getUnlocalizedName()); GameRegistry.registerBlock(block_reiium, ItemOreBlock.class, block_reiium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 9776df885..1b20fba59 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -34,7 +34,6 @@ public class MineralRecipes { add1To9Pair(ModBlocks.block_aluminium, ModItems.ingot_aluminium); add1To9Pair(ModBlocks.block_graphite, ModItems.ingot_graphite); add1To9Pair(ModBlocks.block_boron, ModItems.ingot_boron); - add1To9Pair(ModItems.powder_boron, ModItems.powder_boron_tiny); add1To9Pair(ModBlocks.block_schraranium, ModItems.ingot_schraranium); add1To9Pair(ModBlocks.block_lanthanium, ModItems.ingot_lanthanium); add1To9Pair(ModBlocks.block_ra226, ModItems.ingot_ra226); @@ -42,17 +41,20 @@ public class MineralRecipes { add1To9Pair(ModBlocks.block_schrabidate, ModItems.ingot_schrabidate); add1To9Pair(ModBlocks.block_coltan, ModItems.fragment_coltan); add1To9Pair(ModBlocks.block_smore, ModItems.ingot_smore); - add1To9Pair(ModItems.nuclear_waste_vitrified, ModItems.nuclear_waste_vitrified_tiny); - add1To9Pair(ModBlocks.block_waste_vitrified, ModItems.nuclear_waste_vitrified); add1To9Pair(ModBlocks.block_niobium, ModItems.ingot_niobium); add1To9Pair(ModBlocks.block_semtex, ModItems.ingot_semtex); add1To9Pair(ModBlocks.block_c4, ModItems.ingot_c4); + add1To9Pair(ModBlocks.block_polymer, ModItems.ingot_polymer); + add1To9Pair(ModBlocks.block_bakelite, ModItems.ingot_bakelite); + add1To9Pair(ModBlocks.block_rubber, ModItems.ingot_rubber); addMineralSet(ModItems.nugget_bismuth, ModItems.ingot_bismuth, ModBlocks.block_bismuth); addMineralSet(ModItems.nugget_tantalium, ModItems.ingot_tantalium, ModBlocks.block_tantalium); addMineralSet(ModItems.nugget_zirconium, ModItems.ingot_zirconium, ModBlocks.block_zirconium); addMineralSet(ModItems.nugget_dineutronium, ModItems.ingot_dineutronium, ModBlocks.block_dineutronium); - + addMineralSet(ModItems.nuclear_waste_vitrified_tiny, ModItems.nuclear_waste_vitrified, ModBlocks.block_waste_vitrified); + + add1To9Pair(ModItems.powder_boron, ModItems.powder_boron_tiny); add1To9Pair(ModItems.powder_sr90, ModItems.powder_sr90_tiny); add1To9Pair(ModItems.powder_xe135, ModItems.powder_xe135_tiny); add1To9Pair(ModItems.powder_cs137, ModItems.powder_cs137_tiny); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index d0a081969..20cda0e99 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -356,8 +356,16 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_pink_cloud), new Object[] { " S ", "ECE", " E ", 'S', ModItems.powder_spark_mix, 'E', ModItems.powder_magic, 'C', ModItems.grenade_cloud }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.nuclear_waste_pearl), new Object[] { "WWW", "WFW", "WWW", 'W', ModItems.nuclear_waste_tiny, 'F', ModBlocks.block_fallout }); //CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_nuke), new Object[] { "CGC", "CGC", "PAP", 'C', ModBlocks.det_charge, 'G', ModItems.grenade_mk2, 'P', ALLOY.plate(), 'A', Blocks.anvil }); + + //Sticks of explosives CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModItems.safety_fuse, 'P', Items.paper, 'D', ModItems.ball_dynamite }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_tnt, 4), new Object[] { "PDP", "PDP", 'P', Items.paper, 'D', ModItems.ball_tnt }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_tnt, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModBlocks.det_cord, 'P', Items.paper, 'D', ModItems.ball_tnt }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_semtex, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModBlocks.det_cord, 'P', Items.paper, 'D', ModItems.ingot_semtex }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_c4, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModBlocks.det_cord, 'P', Items.paper, 'D', ModItems.ingot_c4 }); + + //Blocks of explosives + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.dynamite, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_dynamite, 'S', ModItems.safety_fuse }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.tnt, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_tnt, 'S', ModItems.safety_fuse }); //IF Grenades diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 14f191f71..d50ed4ed5 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -1,7 +1,6 @@ package com.hbm.inventory; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -308,9 +307,9 @@ public class OreDictManager { B .nugget(fragment_boron) .ingot(ingot_boron) .dustSmall(powder_boron_tiny) .dust(powder_boron) .block(block_boron); GRAPHITE .ingot(ingot_graphite) .block(block_graphite); DURA .ingot(ingot_dura_steel) .dust(powder_dura_steel) .block(block_dura_steel); - POLYMER .ingot(ingot_polymer) .dust(powder_polymer); - BAKELITE .ingot(ingot_bakelite) .dust(powder_bakelite); - RUBBER .ingot(ingot_rubber); + POLYMER .ingot(ingot_polymer) .dust(powder_polymer) .block(block_polymer); + BAKELITE .ingot(ingot_bakelite) .dust(powder_bakelite) .block(block_bakelite); + RUBBER .ingot(ingot_rubber) .block(block_rubber); MAGTUNG .ingot(ingot_magnetized_tungsten) .dust(powder_magnetized_tungsten) .block(block_magnetized_tungsten); CMB .ingot(ingot_combine_steel) .dust(powder_combine_steel) .plate(plate_combine_steel) .block(block_combine_steel); DESH .nugget(nugget_desh) .ingot(ingot_desh) .dust(powder_desh) .block(block_desh); diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java b/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java index fbd0aaf9a..3b928c809 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java @@ -21,6 +21,10 @@ public class FluidTypeFlammable extends FluidType { this.energy = energy; return this; } + + public long getHeatEnergy() { + return this.energy; + } @Override public void addInfo(List info) { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 8dc3b9134..b95348530 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -120,21 +120,21 @@ public class Fluids { HOTOIL = new FluidTypeFlammable( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); HEAVYOIL = new FluidTypeFlammable( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER); BITUMEN = new FluidType( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER); - SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(0x808030, ExtContainer.CANISTER).addContainers(0x624F3B, ExtContainer.CANISTER); - HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(0x694235, ExtContainer.CANISTER); //TODO: and so forth - RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).addContainers(0xF65723, ExtContainer.CANISTER); - PETROIL = new FluidTypeCombustible( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).addContainers(0x2369F6, ExtContainer.CANISTER); + SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).setHeatEnergy(50_000).addContainers(0x624F3B, ExtContainer.CANISTER); + HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).setHeatEnergy(75_000).addContainers(0x694235, ExtContainer.CANISTER); //TODO: and so forth + RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).setHeatEnergy(100_000).addContainers(0xF65723, ExtContainer.CANISTER); + PETROIL = new FluidTypeCombustible( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).setHeatEnergy(125_000).addContainers(0x2369F6, ExtContainer.CANISTER); LUBRICANT = new FluidType( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER); NAPHTHA = new FluidTypeFlammable( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER); - DIESEL = new FluidTypeCombustible( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000).addContainers(0xFF2C2C, ExtContainer.CANISTER); + DIESEL = new FluidTypeCombustible( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000).setHeatEnergy(200_000).addContainers(0xFF2C2C, ExtContainer.CANISTER); LIGHTOIL = new FluidTypeFlammable( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER); - KEROSENE = new FluidTypeCombustible( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000).addContainers(0xFF377D, ExtContainer.CANISTER); + KEROSENE = new FluidTypeCombustible( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000).setHeatEnergy(300_000).addContainers(0xFF377D, ExtContainer.CANISTER); GAS = new FluidTypeFlammable( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); PETROLEUM = new FluidTypeFlammable( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE); - LPG = new FluidTypeCombustible( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000); + LPG = new FluidTypeCombustible( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); BIOGAS = new FluidTypeFlammable( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE); - BIOFUEL = new FluidTypeCombustible( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).addContainers(0x9EB623, ExtContainer.CANISTER); - NITAN = new FluidTypeCombustible( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).addContainers(0x6B238C, ExtContainer.CANISTER); + BIOFUEL = new FluidTypeCombustible( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).setHeatEnergy(150_000).addContainers(0x9EB623, ExtContainer.CANISTER); + NITAN = new FluidTypeCombustible( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).setHeatEnergy(2_000_000).addContainers(0x6B238C, ExtContainer.CANISTER); UF6 = new FluidType( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); PUF6 = new FluidType( "PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); SAS3 = new FluidType( "SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); @@ -144,7 +144,7 @@ public class Fluids { ACID = new FluidType( "ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(FluidTrait.CORROSIVE); WATZ = new FluidType( "WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2); CRYOGEL = new FluidType( "CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170); - HYDROGEN = new FluidTypeCombustible( "HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setCombustionEnergy(FuelGrade.HIGH, 10_000); + HYDROGEN = new FluidTypeCombustible( "HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); OXYGEN = new FluidType( "OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC); XENON = new FluidType( "XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT); BALEFIRE = new FluidType( "BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(FluidTrait.CORROSIVE); @@ -152,8 +152,8 @@ public class Fluids { PAIN = new FluidType( "PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE); WASTEFLUID = new FluidType( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); WASTEGAS = new FluidType( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); - GASOLINE = new FluidTypeCombustible( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).addContainers(0x2F7747, ExtContainer.CANISTER); - COALGAS = new FluidTypeCombustible( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000); + GASOLINE = new FluidTypeCombustible( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER); + COALGAS = new FluidTypeCombustible( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000); SPENTSTEAM = new FluidType( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER); FRACKSOL = new FluidType( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER); PLASMA_DT = new FluidType( "PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); @@ -165,22 +165,22 @@ public class Fluids { PLASMA_DH3 = new FluidType( "PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); HELIUM3 = new FluidType( "HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT); DEATH = new FluidType( "DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER); - ETHANOL = new FluidTypeCombustible( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000).addContainers(0xEAFFF3, ExtContainer.CANISTER); + ETHANOL = new FluidTypeCombustible( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000).setHeatEnergy(75_000).addContainers(0xEAFFF3, ExtContainer.CANISTER); HEAVYWATER = new FluidType( "HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE); CRACKOIL = new FluidTypeFlammable( "CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); COALOIL = new FluidTypeFlammable( "COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); HOTCRACKOIL = new FluidTypeFlammable( "HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); NAPHTHA_CRACK = new FluidTypeFlammable( "NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE); LIGHTOIL_CRACK = new FluidTypeFlammable( "LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE); - DIESEL_CRACK = new FluidTypeCombustible( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000); + DIESEL_CRACK = new FluidTypeCombustible( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); 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); - PETROIL_LEADED = new FluidTypeCombustible( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000); - GASOLINE_LEADED = new FluidTypeCombustible( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000); - COALGAS_LEADED = new FluidTypeCombustible( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000); + PETROIL_LEADED = new FluidTypeCombustible( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy()); + GASOLINE_LEADED = new FluidTypeCombustible( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()); + COALGAS_LEADED = new FluidTypeCombustible( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy()); // ^ ^ ^ ^ ^ ^ ^ ^ diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index ab5ade636..8baceaa34 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1691,6 +1691,8 @@ public class ModItems { public static Item stick_dynamite; public static Item stick_tnt; + public static Item stick_semtex; + public static Item stick_c4; public static Item grenade_generic; public static Item grenade_strong; @@ -3278,24 +3280,24 @@ public class ModItems { canister_empty = new ItemCustomLore().setUnlocalizedName("canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":canister_empty"); canister_full = new ItemCanister().setUnlocalizedName("canister_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_empty"); - canister_smear = new ItemCustomLore().setUnlocalizedName("canister_smear").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_smear"); - canister_canola = new ItemCustomLore().setUnlocalizedName("canister_canola").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_canola"); - canister_oil = new ItemCustomLore().setUnlocalizedName("canister_oil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_oil"); - canister_fuel = new ItemCustomLore().setUnlocalizedName("canister_fuel").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_fuel"); - canister_kerosene = new ItemCustomLore().setUnlocalizedName("canister_kerosene").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_kerosene"); - canister_reoil = new ItemCustomLore().setUnlocalizedName("canister_reoil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_reoil"); - canister_petroil = new ItemCustomLore().setUnlocalizedName("canister_petroil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_petroil"); + canister_smear = new ItemCustomLore().setUnlocalizedName("canister_smear").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_smear"); + canister_canola = new ItemCustomLore().setUnlocalizedName("canister_canola").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_canola"); + canister_oil = new ItemCustomLore().setUnlocalizedName("canister_oil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_oil"); + canister_fuel = new ItemCustomLore().setUnlocalizedName("canister_fuel").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_fuel"); + canister_kerosene = new ItemCustomLore().setUnlocalizedName("canister_kerosene").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_kerosene"); + canister_reoil = new ItemCustomLore().setUnlocalizedName("canister_reoil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_reoil"); + canister_petroil = new ItemCustomLore().setUnlocalizedName("canister_petroil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_petroil"); canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm"); - canister_gasoline = new ItemCustomLore().setUnlocalizedName("canister_gasoline").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_gasoline"); - canister_fracksol = new ItemCustomLore().setUnlocalizedName("canister_fracksol").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_fracksol"); - canister_NITAN = new ItemCustomLore().setUnlocalizedName("canister_NITAN").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_superfuel"); - canister_heavyoil = new ItemCustomLore().setUnlocalizedName("canister_heavyoil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_heavyoil"); - canister_bitumen = new ItemCustomLore().setUnlocalizedName("canister_bitumen").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_bitumen"); - canister_heatingoil = new ItemCustomLore().setUnlocalizedName("canister_heatingoil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_heatingoil"); - canister_naphtha = new ItemCustomLore().setUnlocalizedName("canister_naphtha").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_naphtha"); - canister_lightoil = new ItemCustomLore().setUnlocalizedName("canister_lightoil").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_lightoil"); - canister_biofuel = new ItemCustomLore().setUnlocalizedName("canister_biofuel").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_biofuel"); - canister_ethanol = new ItemCustomLore().setUnlocalizedName("canister_ethanol").setCreativeTab(null).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_ethanol"); + canister_gasoline = new ItemCustomLore().setUnlocalizedName("canister_gasoline").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_gasoline"); + canister_fracksol = new ItemCustomLore().setUnlocalizedName("canister_fracksol").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_fracksol"); + canister_NITAN = new ItemCustomLore().setUnlocalizedName("canister_NITAN").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_superfuel"); + canister_heavyoil = new ItemCustomLore().setUnlocalizedName("canister_heavyoil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_heavyoil"); + canister_bitumen = new ItemCustomLore().setUnlocalizedName("canister_bitumen").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_bitumen"); + canister_heatingoil = new ItemCustomLore().setUnlocalizedName("canister_heatingoil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_heatingoil"); + canister_naphtha = new ItemCustomLore().setUnlocalizedName("canister_naphtha").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_naphtha"); + canister_lightoil = new ItemCustomLore().setUnlocalizedName("canister_lightoil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_lightoil"); + canister_biofuel = new ItemCustomLore().setUnlocalizedName("canister_biofuel").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_biofuel"); + canister_ethanol = new ItemCustomLore().setUnlocalizedName("canister_ethanol").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_ethanol"); gas_empty = new Item().setUnlocalizedName("gas_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":gas_empty"); gas_full = new Item().setUnlocalizedName("gas_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.gas_empty).setTextureName(RefStrings.MODID + ":gas_full"); gas_petroleum = new Item().setUnlocalizedName("gas_petroleum").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.gas_empty).setTextureName(RefStrings.MODID + ":gas_petroleum"); @@ -4354,6 +4356,8 @@ public class ModItems { stick_dynamite = new ItemGrenade(3).setUnlocalizedName("stick_dynamite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_dynamite"); stick_tnt = new Item().setUnlocalizedName("stick_tnt").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_tnt"); + stick_semtex = new Item().setUnlocalizedName("stick_semtex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_semtex"); + stick_c4 = new Item().setUnlocalizedName("stick_c4").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_c4"); grenade_generic = new ItemGrenade(4).setUnlocalizedName("grenade_generic").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_generic"); grenade_strong = new ItemGrenade(5).setUnlocalizedName("grenade_strong").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_strong"); @@ -7299,6 +7303,8 @@ public class ModItems { //Grenades GameRegistry.registerItem(stick_dynamite, stick_dynamite.getUnlocalizedName()); //heave-ho! GameRegistry.registerItem(stick_tnt, stick_tnt.getUnlocalizedName()); + GameRegistry.registerItem(stick_semtex, stick_semtex.getUnlocalizedName()); + GameRegistry.registerItem(stick_c4, stick_c4.getUnlocalizedName()); GameRegistry.registerItem(grenade_generic, grenade_generic.getUnlocalizedName()); GameRegistry.registerItem(grenade_strong, grenade_strong.getUnlocalizedName()); GameRegistry.registerItem(grenade_frag, grenade_frag.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemCanister.java b/src/main/java/com/hbm/items/machine/ItemCanister.java index a7a853e3f..6290acb2d 100644 --- a/src/main/java/com/hbm/items/machine/ItemCanister.java +++ b/src/main/java/com/hbm/items/machine/ItemCanister.java @@ -13,6 +13,7 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; public class ItemCanister extends Item { @@ -37,6 +38,17 @@ public class ItemCanister extends Item { } } + public String getItemStackDisplayName(ItemStack stack) { + String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + + if(s1 != null) { + s = s + " " + s1; + } + + return s; + } + @Override @SideOnly(Side.CLIENT) public boolean requiresMultipleRenderPasses() { diff --git a/src/main/java/com/hbm/items/tool/ItemColtanCompass.java b/src/main/java/com/hbm/items/tool/ItemColtanCompass.java index c00c329be..7fbf14af9 100644 --- a/src/main/java/com/hbm/items/tool/ItemColtanCompass.java +++ b/src/main/java/com/hbm/items/tool/ItemColtanCompass.java @@ -24,6 +24,7 @@ public class ItemColtanCompass extends Item { public int lastZ = 0; public long lease = 0; + @Override public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean inhand) { if(world.isRemote) { diff --git a/src/main/java/com/hbm/items/tool/ItemWiring.java b/src/main/java/com/hbm/items/tool/ItemWiring.java index 73f00a739..04c8455af 100644 --- a/src/main/java/com/hbm/items/tool/ItemWiring.java +++ b/src/main/java/com/hbm/items/tool/ItemWiring.java @@ -3,15 +3,18 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityPylonBase; import net.minecraft.block.Block; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ItemWiring extends Item { @@ -97,4 +100,19 @@ public class ItemWiring extends Item { list.add("Right-click poles to connect"); } } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean inhand) { + + if(world.isRemote) { + if(stack.stackTagCompound != null) { + Vec3 vec = Vec3.createVectorHelper( + entity.posX - stack.stackTagCompound.getInteger("x"), + entity.posY - stack.stackTagCompound.getInteger("y"), + entity.posZ - stack.stackTagCompound.getInteger("z")); + + MainRegistry.proxy.displayTooltip(((int) vec.lengthVector()) + "m"); + } + } + } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d5c27881f..39e816ab7 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -11,6 +11,7 @@ import com.hbm.inventory.OreDictManager; import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; + import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; @@ -467,8 +468,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', ModItems.circuit_gold }); addShapelessAuto(new ItemStack(ModBlocks.charge_dynamite, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.ducttape }); addRecipeAuto(new ItemStack(ModBlocks.charge_miner, 1), new Object[] { " F ", "FCF", " F ", 'F', Items.flint, 'C', ModBlocks.charge_dynamite }); - addRecipeAuto(new ItemStack(ModBlocks.dynamite, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_dynamite, 'S', Items.string }); - addRecipeAuto(new ItemStack(ModBlocks.tnt, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_tnt, 'S', Items.string }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_generic), new Object[] { " A ", "PRP", "PRP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'R', REDSTONE.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', ModItems.wire_red_copper, 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() }); @@ -866,6 +865,24 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish }); addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModBlocks.muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ }); + + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.SMEAR.getID()), new Object[] { ModItems.canister_smear }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.LUBRICANT.getID()), new Object[] { ModItems.canister_canola }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.OIL.getID()), new Object[] { ModItems.canister_oil }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.DIESEL.getID()), new Object[] { ModItems.canister_fuel }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.KEROSENE.getID()), new Object[] { ModItems.canister_kerosene }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.RECLAIMED.getID()), new Object[] { ModItems.canister_reoil }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.PETROIL.getID()), new Object[] { ModItems.canister_petroil }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.GASOLINE_LEADED.getID()), new Object[] { ModItems.canister_gasoline }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.FRACKSOL.getID()), new Object[] { ModItems.canister_fracksol }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.NITAN.getID()), new Object[] { ModItems.canister_NITAN }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.HEAVYOIL.getID()), new Object[] { ModItems.canister_heavyoil }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.BITUMEN.getID()), new Object[] { ModItems.canister_bitumen }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.HEATINGOIL.getID()), new Object[] { ModItems.canister_heatingoil }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.NAPHTHA.getID()), new Object[] { ModItems.canister_naphtha }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.LIGHTOIL.getID()), new Object[] { ModItems.canister_lightoil }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.BIOFUEL.getID()), new Object[] { ModItems.canister_biofuel }); + addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.ETHANOL.getID()), new Object[] { ModItems.canister_ethanol }); if(GeneralConfig.enableBabyMode) { addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index ee96435fb..aa875a734 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -8,6 +8,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.FluidTypeFlammable; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPellet; @@ -187,27 +188,10 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement } public static final int coalGenRate = 75; - public static final HashMap fuels = new HashMap(); - - static { - fuels.put(Fluids.SMEAR, 50); - fuels.put(Fluids.HEATINGOIL, 75); - fuels.put(Fluids.HYDROGEN, 5); - fuels.put(Fluids.DIESEL, 225); - fuels.put(Fluids.KEROSENE, 300); - fuels.put(Fluids.RECLAIMED, 100); - fuels.put(Fluids.PETROIL, 125); - fuels.put(Fluids.BIOFUEL, 200); - fuels.put(Fluids.GASOLINE, 700); - fuels.put(Fluids.NITAN, 2500); - fuels.put(Fluids.LPG, 200); - fuels.put(Fluids.ETHANOL, 75); - } public int getPowerFromFuel() { FluidType type = tanks[1].getTankType(); - Integer value = fuels.get(type); - return value != null ? value : 0; + return type instanceof FluidTypeFlammable ? (int)(((FluidTypeFlammable) type).getHeatEnergy() / 1000L) : 0; } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 3857a5b5b..609ebf63f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -935,26 +935,27 @@ item.can_mrsugar.name='Dr. Sugar' Softdrink item.can_overcharge.name=Overcharge Delirium XT item.can_redbomb.name='Red Bomb' Energy-Drink item.can_smart.name='Smart' Energy-Drink -item.canister_NITAN.name=NITAN© 100 Oktan Supertreibstoff -item.canister_biofuel.name=Biodieselkanister -item.canister_bitumen.name=Bitumenkanister -item.canister_canola.name=Schmiermittelkanister +item.canister_NITAN.name=NITAN© 100 Oktan Supertreibstoff (LEGACY) +item.canister_biofuel.name=Biodieselkanister (LEGACY) +item.canister_bitumen.name=Bitumenkanister (LEGACY) +item.canister_canola.name=Schmiermittelkanister (LEGACY) item.canister_empty.name=Leerer Kanister -item.canister_ethanol.name=Ethanolkanister -item.canister_fracksol.name=Frackinglösungskanister -item.canister_fuel.name=Dieselkanister -item.canister_gasoline.name=Bleibenzinkanister +item.canister_ethanol.name=Ethanolkanister (LEGACY) +item.canister_fracksol.name=Frackinglösungskanister (LEGACY) +item.canister_fuel.name=Dieselkanister (LEGACY) +item.canister_full.name=Kanister: +item.canister_gasoline.name=Bleibenzinkanister (LEGACY) item.canister_gasoline.desc=blei ist freund$lasse deinen freund in deinen blutstrom$*lädt waffe* jetzt sofort -item.canister_heatingoil.name=Heizölkanister -item.canister_heavyoil.name=Schwerölkanister -item.canister_kerosene.name=Kerosinkanister -item.canister_lightoil.name=Leichtölkanister +item.canister_heatingoil.name=Heizölkanister (LEGACY) +item.canister_heavyoil.name=Schwerölkanister (LEGACY) +item.canister_kerosene.name=Kerosinkanister (LEGACY) +item.canister_lightoil.name=Leichtölkanister (LEGACY) item.canister_napalm.name=Napalm B -item.canister_naphtha.name=Mitteldestillatkanister -item.canister_oil.name=Rohölkanister -item.canister_petroil.name=Gemischkanister -item.canister_reoil.name=Kanister voll aufbereitetem Industrieöl -item.canister_smear.name=Industrieölkanister +item.canister_naphtha.name=Mitteldestillatkanister (LEGACY) +item.canister_oil.name=Rohölkanister (LEGACY) +item.canister_petroil.name=Gemischkanister (LEGACY) +item.canister_reoil.name=Kanister voll aufbereitetem Industrieöl (LEGACY) +item.canister_smear.name=Industrieölkanister (LEGACY) item.canned_asbestos.name=Konservendose (Asbestdämmung) item.canned_ass.name=Konservendose (Esel) item.canned_bark.name=Konservendose (Geräucherte Kiefernrinde) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c1d32c0a6..3e7fede99 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1141,27 +1141,28 @@ item.can_mrsugar.name='Dr. Sugar' Soft Drink item.can_overcharge.name=Overcharge Delirium XT item.can_redbomb.name='Red Bomb' Energy Drink item.can_smart.name='Smart' Energy Drink -item.canister_NITAN.name=NITAN© 100 Octane Super Fuel -item.canister_biofuel.name=Biofuel Canister -item.canister_bitumen.name=Bitumen Canister -item.canister_canola.name=Engine Lubricant +item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) +item.canister_biofuel.name=Biofuel Canister (LEGACY) +item.canister_bitumen.name=Bitumen Canister (LEGACY) +item.canister_canola.name=Engine Lubricant (LEGACY) item.canister_empty.name=Empty Canister -item.canister_ethanol.name=Ethanol Canister -item.canister_fracksol.name=Fracking Solution Canister -item.canister_fuel.name=Diesel Canister +item.canister_ethanol.name=Ethanol Canister (LEGACY) +item.canister_fracksol.name=Fracking Solution Canister (LEGACY) +item.canister_fuel.name=Diesel Canister (LEGACY) item.canister_fuel.desc=All hail the spout! -item.canister_gasoline.name=Leaded Gasoline Canister +item.canister_full.name=Canister: +item.canister_gasoline.name=Leaded Gasoline Canister (LEGACY) item.canister_gasoline.desc=lead is friend$let friend into your blood stream$*cocks gun* do it now. -item.canister_heatingoil.name=Heating Oil Canister -item.canister_heavyoil.name=Heavy Oil Canister -item.canister_kerosene.name=Kerosene Canister -item.canister_lightoil.name=Light Oil Canister +item.canister_heatingoil.name=Heating Oil Canister (LEGACY) +item.canister_heavyoil.name=Heavy Oil Canister (LEGACY) +item.canister_kerosene.name=Kerosene Canister (LEGACY) +item.canister_lightoil.name=Light Oil Canister (LEGACY) item.canister_napalm.name=Napalm B -item.canister_naphtha.name=Naphtha Canister -item.canister_oil.name=Crude Oil Canister -item.canister_petroil.name=Petroil Canister -item.canister_reoil.name=Canister of Reclaimed Industrial Oil -item.canister_smear.name=Industrial Oil Canister +item.canister_naphtha.name=Naphtha Canister (LEGACY) +item.canister_oil.name=Crude Oil Canister (LEGACY) +item.canister_petroil.name=Petroil Canister (LEGACY) +item.canister_reoil.name=Canister of Reclaimed Industrial Oil (LEGACY) +item.canister_smear.name=Industrial Oil Canister (LEGACY) item.canned_asbestos.name=Canned Asbestos item.canned_ass.name=Canned Ass item.canned_bark.name=Canned Pine Bark Jerky @@ -1309,11 +1310,11 @@ item.clip_immolator.name=Tank of Immolator Fuel item.clip_jack.name=Box of Quadruple 12x70 Buckshot Rounds item.clip_lever_action.name=Box of 12x74 Buckshot Rounds item.clip_mirv.name=Three-In-One Pack of Mini MIRVs -item.clip_mp.name=Britannia Military Standard Issue Assult Rifle Magazine +item.clip_mp.name=Britannia Military Standard Issue Assault Rifle Magazine item.clip_mp40.name=9mm SMG Magazine item.clip_osipr.name=AR2 Magazine item.clip_revolver.name=Box of .357 Rounds -item.clip_revolver_cursed.name=Britannia Military Standard Issue Pisol Magazine +item.clip_revolver_cursed.name=Britannia Military Standard Issue Pistol Magazine item.clip_revolver_gold.name=Small Coffer of Golden Bullets item.clip_revolver_iron.name=Box of Iron Rounds item.clip_revolver_lead.name=Box of Nuclear Bullets diff --git a/src/main/resources/assets/hbm/textures/blocks/block_bakelite.png b/src/main/resources/assets/hbm/textures/blocks/block_bakelite.png new file mode 100644 index 0000000000000000000000000000000000000000..1054901bfc4ecc6aed3ab5a4ad11b0697394225e GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfW2wEb1B- zxUqY)i`a4RVsh4Xo-^y`&!3WKUcHv|Gc|i;#;{C4Iv^n6fI#x0OxcMER~U3Q9you# z-*ii-(Sd`P8V|17H_u31L0xDOPs3BKh+Ar+8x9nS?qp!-5YXjycfIit=rjgTS3j3^ HP6=ElESYfWPoOkpy1 z{*WMQ+`OueWnRR>Yg`QRj0`JYWhxuLe^j93p~*YDlS8R#&gX~+t+q)$^*eJb?x^%H z_{{BcrS`2Rqp`EgySop{J(jWT3$?qwn&tkg)q5Cob#-ec=p+VDS3j3^P6$)xFt^PkeRKyhe>!#`-xNX8WZ9^=WTn#&a`{B{bO-+ z4n+r-1d|L`7lFrHI7}`&d2up?F)|#nh&8h^f0I6K%kany8q9QzJn7Z zL1`1IJCEnAOOq%y5$*7f!A|L0GhJlXM{SO3E+=bCx= z<7`t`L>Mt1y=`%r;aN^twklg?WhGl&TpU|yXeiIuh**ZpfBv0zZ)1PH-gtv2w_!wd zbn;dnWu6It|NOdK-FE)|ej^q(wnrtJU5u}IUxoFDW6>QDo*9AUEU7{0&-K%nWNE)CsJ9@arJZ(+r-jelF{r5}E+a CnSQUBgXegPIf#T(UEn0J`|WN0kj@{=LAkzZlUjvZ#^TiGruxikqpnt%Ss z0oSKyqLEo_x^v$ay|?_sC;r3wXvlWiB)VEK(&%lkqU$uD zRja0P?3#b3@9_ljG>&zwdkmVbZcY2v%eXC9__@s9lWcX9lB+!o|iM^;L1c%!~j@I$$?|> zYS`zuC|~<98E_be41n*;o~BeMe{-xfy2~|O*L_)ARN>^Ru{crX&Egwu7JP~e4Fbnv h0F7`djb8Pu+yJ55i-ehV(W?Le002ovPDHLkV1hh|ZEyep delta 198 zcmV;%06G7Y0`dWnG=Hf{L_t(IjbmUKQsB0W)PHm_CQ>xN`}G&Y5Jplo|M{|pQa|8L*E{eOjt$p4ADf*4_d z*V!lS#Q(2fzy3c11H*r)VHg0bQ;_}q{KsDg_UhRTfq{Wo)jwhgqHBKn^DjgG<@Y%K z%t(o56a&c7jNyV6CL;eC7#N7wj1`a+Rf7Tm01<6{$smym1ONa407*qoM6N<$f)F8N A8~^|S From d3b3cb64b785fc102c0da8b73d0e4d2584dac6a1 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 27 Feb 2022 16:32:41 +0100 Subject: [PATCH 8/9] more recipe handlers, some fixes, finished RPA, fixed furnace NEI --- .../com/hbm/blocks/IStepTickReceiver.java | 9 + src/main/java/com/hbm/blocks/ModBlocks.java | 7 +- .../com/hbm/blocks/generic/BlockEmitter.java | 243 ++++++++++++++++++ .../com/hbm/blocks/generic/BlockSpeedy.java | 32 ++- .../hbm/blocks/machine/BlockHadronDiode.java | 1 - .../java/com/hbm/crafting/ArmorRecipes.java | 5 + .../java/com/hbm/crafting/WeaponRecipes.java | 1 - .../java/com/hbm/handler/HazmatRegistry.java | 6 + .../java/com/hbm/handler/ToolAbility.java | 24 +- .../com/hbm/handler/nei/CrackingHandler.java | 11 + .../hbm/handler/nei/FractioningHandler.java | 11 + .../hbm/handler/nei/NEIUniversalHandler.java | 12 +- .../java/com/hbm/hazard/HazardRegistry.java | 10 +- .../com/hbm/inventory/OreDictManager.java | 5 +- .../hbm/inventory/recipes/MachineRecipes.java | 4 +- .../inventory/recipes/RefineryRecipes.java | 36 +++ .../inventory/recipes/anvil/AnvilRecipes.java | 11 +- src/main/java/com/hbm/items/ItemEnums.java | 6 + src/main/java/com/hbm/items/ModItems.java | 23 +- .../hbm/items/block/ItemBlockBlastInfo.java | 1 - .../hbm/items/machine/ItemChemistryIcon.java | 6 +- .../com/hbm/items/machine/ItemFluidIcon.java | 6 + src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 2 + .../java/com/hbm/main/CraftingManager.java | 14 +- .../java/com/hbm/main/ModEventHandler.java | 14 + src/main/java/com/hbm/main/NEIConfig.java | 4 + .../hbm/render/tileentity/RenderEmitter.java | 79 ++++++ .../java/com/hbm/render/util/BeamPronter.java | 18 +- .../java/com/hbm/tileentity/TileMappings.java | 2 + .../machine/TileEntityCoreEmitter.java | 1 - .../machine/TileEntityMachineChemplant.java | 11 + src/main/java/com/hbm/util/ArmorUtil.java | 1 + src/main/java/com/hbm/util/InventoryUtil.java | 6 +- src/main/resources/assets/hbm/lang/de_DE.lang | 21 +- src/main/resources/assets/hbm/lang/en_US.lang | 20 +- src/main/resources/assets/hbm/sounds.json | 1 + .../assets/hbm/sounds/footsteps/powered1.ogg | Bin 0 -> 9576 bytes .../assets/hbm/sounds/footsteps/powered2.ogg | Bin 0 -> 10587 bytes .../assets/hbm/sounds/footsteps/powered3.ogg | Bin 0 -> 8517 bytes .../assets/hbm/textures/blocks/emitter.png | Bin 0 -> 380 bytes .../textures/items/chem_icon_LUBRICANT.png | Bin 0 -> 464 bytes ...endary_1.png => parts_legendary.tier1.png} | Bin ...endary_2.png => parts_legendary.tier2.png} | Bin ...endary_3.png => parts_legendary.tier3.png} | Bin .../assets/hbm/textures/items/rpa_boots.png | Bin 0 -> 169 bytes .../assets/hbm/textures/items/rpa_helmet.png | Bin 0 -> 397 bytes .../assets/hbm/textures/items/rpa_legs.png | Bin 0 -> 249 bytes .../assets/hbm/textures/items/rpa_plate.png | Bin 0 -> 347 bytes src/main/resources/mcmod.info | 2 +- 50 files changed, 610 insertions(+), 58 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/IStepTickReceiver.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockEmitter.java create mode 100644 src/main/java/com/hbm/handler/nei/CrackingHandler.java create mode 100644 src/main/java/com/hbm/handler/nei/FractioningHandler.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderEmitter.java create mode 100644 src/main/resources/assets/hbm/sounds/footsteps/powered1.ogg create mode 100644 src/main/resources/assets/hbm/sounds/footsteps/powered2.ogg create mode 100644 src/main/resources/assets/hbm/sounds/footsteps/powered3.ogg create mode 100644 src/main/resources/assets/hbm/textures/blocks/emitter.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_LUBRICANT.png rename src/main/resources/assets/hbm/textures/items/{parts_legendary_1.png => parts_legendary.tier1.png} (100%) rename src/main/resources/assets/hbm/textures/items/{parts_legendary_2.png => parts_legendary.tier2.png} (100%) rename src/main/resources/assets/hbm/textures/items/{parts_legendary_3.png => parts_legendary.tier3.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/items/rpa_boots.png create mode 100644 src/main/resources/assets/hbm/textures/items/rpa_helmet.png create mode 100644 src/main/resources/assets/hbm/textures/items/rpa_legs.png create mode 100644 src/main/resources/assets/hbm/textures/items/rpa_plate.png diff --git a/src/main/java/com/hbm/blocks/IStepTickReceiver.java b/src/main/java/com/hbm/blocks/IStepTickReceiver.java new file mode 100644 index 000000000..0c511ab58 --- /dev/null +++ b/src/main/java/com/hbm/blocks/IStepTickReceiver.java @@ -0,0 +1,9 @@ +package com.hbm.blocks; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public interface IStepTickReceiver { + + public void onPlayerStep(World world, int x, int y, int z, EntityPlayer player); +} diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index e838c776f..8fde28704 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -280,6 +280,7 @@ public class ModBlocks { public static Block deco_rbmk; public static Block deco_rbmk_smooth; + public static Block deco_emitter; public static Block deco_loot; public static Block bobblehead; @@ -1477,14 +1478,15 @@ public class ModBlocks { deco_rbmk = new BlockGeneric(Material.iron).setBlockName("deco_rbmk").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_side"); deco_rbmk_smooth = new BlockGeneric(Material.iron).setBlockName("deco_rbmk_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_top"); + deco_emitter = new BlockEmitter().setBlockName("deco_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":emitter"); deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); gravel_diamond = new BlockFalling(Material.sand).setBlockName("gravel_diamond").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":gravel_diamond"); - asphalt = new BlockSpeedy(Material.rock, 1.15).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); - asphalt_light = new BlockSpeedy(Material.rock, 1.15).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); + asphalt = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); + asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(200.0F); @@ -2488,6 +2490,7 @@ public class ModBlocks { GameRegistry.registerBlock(deco_lead, deco_lead.getUnlocalizedName()); GameRegistry.registerBlock(deco_beryllium, deco_beryllium.getUnlocalizedName()); GameRegistry.registerBlock(deco_asbestos, deco_asbestos.getUnlocalizedName()); + GameRegistry.registerBlock(deco_emitter, ItemBlockBase.class, deco_emitter.getUnlocalizedName()); GameRegistry.registerBlock(deco_loot, deco_loot.getUnlocalizedName()); GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName()); GameRegistry.registerBlock(hazmat, hazmat.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockEmitter.java b/src/main/java/com/hbm/blocks/generic/BlockEmitter.java new file mode 100644 index 000000000..4d6b10199 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockEmitter.java @@ -0,0 +1,243 @@ +package com.hbm.blocks.generic; + +import java.awt.Color; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.NBTPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.INBTPacketReceiver; + +import api.hbm.block.IToolable; +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.BlockContainer; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemDye; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockEmitter extends BlockContainer implements IToolable, ITooltipProvider { + + public BlockEmitter() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityEmitter(); + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float fx, float fy, float fz) { + + if(world.isRemote) + return true; + + TileEntityEmitter te = (TileEntityEmitter)world.getTileEntity(x, y, z); + + if(player.getHeldItem() != null) { + + if(player.getHeldItem().getItem() instanceof ItemDye) { + te.color = ItemDye.field_150922_c[player.getHeldItem().getItemDamage()]; + te.markDirty(); + world.markBlockForUpdate(x, y, z); + player.getHeldItem().stackSize--; + return true; + } + } + + return false; + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + TileEntityEmitter te = (TileEntityEmitter)world.getTileEntity(x, y, z); + + if(tool == ToolType.SCREWDRIVER) { + te.girth += 0.125F; + te.markDirty(); + return true; + } + + if(tool == ToolType.DEFUSER) { + te.girth -= 0.125F; + if(te.girth < 0.125F) te.girth = 0.125F; + te.markDirty(); + return true; + } + + if(tool == ToolType.HAND_DRILL) { + te.effect = (te.effect + 1) % te.effectCount; + te.markDirty(); + return true; + } + + return false; + } + + public static class TileEntityEmitter extends TileEntity implements INBTPacketReceiver { + + public static final int range = 100; + public int color; + public int beam; + public float girth = 0.5F; + public int effect = 0; + public static final int effectCount = 5; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(int i = 1; i <= range; i++) { + + beam = i; + + int x = xCoord + dir.offsetX * i; + int y = yCoord + dir.offsetY * i; + int z = zCoord + dir.offsetZ * i; + + Block b = worldObj.getBlock(x, y, z); + if(b.isBlockSolid(worldObj, x, y, z, dir.ordinal())) { + break; + } + } + } + + if(effect == 4 && beam > 0) { + + if(worldObj.getTotalWorldTime() % 5 == 0) { + double x = (int) (xCoord + dir.offsetX * (worldObj.getTotalWorldTime() / 5L) % beam) + 0.5; + double y = (int) (yCoord + dir.offsetY * (worldObj.getTotalWorldTime() / 5L) % beam) + 0.5; + double z = (int) (zCoord + dir.offsetZ * (worldObj.getTotalWorldTime() / 5L) % beam) + 0.5; + + int prevColor = color; + if(color == 0) { + color = Color.HSBtoRGB(worldObj.getTotalWorldTime() / 50.0F, 0.5F, 0.25F) & 16777215; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "plasmablast"); + data.setFloat("r", ((float)((color & 0xff0000) >> 16)) / 256F); + data.setFloat("g", ((float)((color & 0x00ff00) >> 8)) / 256F); + data.setFloat("b", ((float)((color & 0x0000ff))) / 256F); + data.setFloat("scale", girth * 5); + + if(this.getBlockMetadata() == 2) { + data.setFloat("pitch", 90); + } + if(this.getBlockMetadata() == 3) { + data.setFloat("pitch", -90); + } + if(this.getBlockMetadata() == 4) { + data.setFloat("pitch", 90); + data.setFloat("yaw", 90); + } + if(this.getBlockMetadata() == 5) { + data.setFloat("pitch", -90); + data.setFloat("yaw", 90); + } + + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), + new TargetPoint(worldObj.provider.dimensionId, x, y, z, 100)); + + color = prevColor; + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("beam", this.beam); + data.setInteger("color", this.color); + data.setFloat("girth", this.girth); + data.setInteger("effect", this.effect); + PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); + } + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.color = nbt.getInteger("color"); + this.girth = nbt.getFloat("girth"); + this.effect = nbt.getInteger("effect"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("color", this.color); + nbt.setFloat("girth", this.girth); + nbt.setInteger("effect", this.effect); + } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return TileEntity.INFINITE_EXTENT_AABB; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.beam = nbt.getInteger("beam"); + this.color = nbt.getInteger("color"); + this.girth = nbt.getFloat("girth"); + this.effect = nbt.getInteger("effect"); + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.GOLD + "Use screwdriver to widen beam"); + list.add(EnumChatFormatting.GOLD + "Use defuser to narrow beam"); + list.add(EnumChatFormatting.GOLD + "Use hand drill to cycle special effects"); + list.add(EnumChatFormatting.GOLD + "Use dye to change color"); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockSpeedy.java b/src/main/java/com/hbm/blocks/generic/BlockSpeedy.java index 4d0a0e433..3d8427781 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSpeedy.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSpeedy.java @@ -1,12 +1,19 @@ package com.hbm.blocks.generic; +import java.util.List; + +import com.hbm.blocks.IStepTickReceiver; +import com.hbm.blocks.ITooltipProvider; + +import codechicken.lib.math.MathHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class BlockSpeedy extends Block { +public class BlockSpeedy extends Block implements IStepTickReceiver, ITooltipProvider { double speed; @@ -16,12 +23,19 @@ public class BlockSpeedy extends Block { } @Override - public void onEntityWalking(World world, int x, int y, int z, Entity entity) { - - if(entity instanceof EntityLivingBase) { //prevents vehicles from going mach 5 - double tan = Math.atan2(entity.motionX, entity.motionZ); - entity.motionX += Math.sin(tan) * speed; - entity.motionZ += Math.cos(tan) * speed; + public void onPlayerStep(World world, int x, int y, int z, EntityPlayer player) { + + if(!world.isRemote) + return; + + if(player.moveForward != 0 || player.moveStrafing != 0) { + player.motionX *= speed; + player.motionZ *= speed; } } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.BLUE + "Increases speed by " + (MathHelper.floor_double((speed - 1) * 100)) + "%"); + } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java b/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java index 30d59b14a..b0ebce2f4 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java @@ -1,6 +1,5 @@ package com.hbm.blocks.machine; -import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityHadronDiode; import com.hbm.tileentity.machine.TileEntityHadronDiode.DiodeConfig; diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 33b1c94e4..358de71d4 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.main.CraftingManager; import net.minecraft.init.Blocks; @@ -92,6 +93,10 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_plate, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_plate_jetpack, 'C', ModItems.singularity_spark }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_legs, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_legs, 'C', ModItems.coin_worm }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_boots, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_boots, 'C', ModItems.demon_core_closed }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.rpa_helmet, 1), new Object[] { "KPK", "PLP", " F ", 'L', DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), 'K', ModItems.plate_kevlar, 'P', ModItems.plate_armor_ajr, 'F', ModItems.gas_mask_filter_combo }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.rpa_plate, 1), new Object[] { "P P", "MLM", "PKP", 'L', DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), 'K', ModItems.plate_kevlar, 'P', ModItems.plate_armor_ajr, 'M', ModItems.motor_desh }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.rpa_legs, 1), new Object[] { "MPM", "KLK", "P P", 'L', DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), 'K', ModItems.plate_kevlar, 'P', ModItems.plate_armor_ajr, 'M', ModItems.motor_desh }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.rpa_boots, 1), new Object[] { "KLK", "P P", 'L', DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), 'K', ModItems.plate_kevlar, 'P', ModItems.plate_armor_ajr }); //Euphemium armor CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_helmet, 1), new Object[] { "EEE", "E E", 'E', ModItems.plate_euphemium }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 20cda0e99..c0cf2b675 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -402,7 +402,6 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.custom_dirty, 1), new Object[] { " C ", "WLW", "WLW", 'C', CU.plate(), 'L', PB.plate(), 'W', ModItems.nuclear_waste }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.custom_schrab, 1), new Object[] { " C ", "LUL", "LUL", 'C', CU.plate(), 'L', PB.plate(), 'U', SA326.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.demon_core_open, 1), new Object[] { "PRP", " CS", "PRP", 'P', TI.plate(), 'R', OreDictManager.getReflector(), 'C', ModItems.man_core, 'S', ModItems.screwdriver }); CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.lamp_demon, 1), new Object[] { " D ", "S S", 'D', ModItems.demon_core_closed, 'S', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.crucible, 1, 3), new Object[] { "MEM", "YDY", "YCY", 'M', ModItems.ingot_meteorite_forged, 'E', EUPH.ingot(), 'Y', ModItems.billet_yharonite, 'D', ModItems.demon_core_closed, 'C', ModItems.ingot_chainsteel }); diff --git a/src/main/java/com/hbm/handler/HazmatRegistry.java b/src/main/java/com/hbm/handler/HazmatRegistry.java index ecd466adb..2e2b13764 100644 --- a/src/main/java/com/hbm/handler/HazmatRegistry.java +++ b/src/main/java/com/hbm/handler/HazmatRegistry.java @@ -43,6 +43,7 @@ public class HazmatRegistry { double ajr = 1.3D; // 95% double bj = 1D; // 90% double hev = 1.3D; // 95% + double rpa = 2D; // 99% double fau = 4D; // 99.99% double dns = 5D; // 99.999% double security = 0.825D; // 85% @@ -114,6 +115,11 @@ public class HazmatRegistry { HazmatRegistry.registerHazmat(ModItems.hev_legs, hev * legs); HazmatRegistry.registerHazmat(ModItems.hev_boots, hev * boots); + HazmatRegistry.registerHazmat(ModItems.rpa_helmet, rpa * helmet); + HazmatRegistry.registerHazmat(ModItems.rpa_plate, rpa * chest); + HazmatRegistry.registerHazmat(ModItems.rpa_legs, rpa * legs); + HazmatRegistry.registerHazmat(ModItems.rpa_boots, rpa * boots); + HazmatRegistry.registerHazmat(ModItems.fau_helmet, fau * helmet); HazmatRegistry.registerHazmat(ModItems.fau_plate, fau * chest); HazmatRegistry.registerHazmat(ModItems.fau_legs, fau * legs); diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index 92b2dc96e..a28b7dd0c 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -280,17 +280,23 @@ public abstract class ToolAbility { @Override public void onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; + List drops = block.getDrops(world, x, y, z, world.getBlockMetadata(x, y, z), 0); - ItemStack stack = new ItemStack(block, 1, meta); - ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(stack); - - if(result != null) { - world.setBlockToAir(x, y, z); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); + for(int i = 0; i < drops.size(); i++) { + ItemStack stack = drops.get(i).copy(); + ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(stack); + + if(result != null) { + result = result.copy(); + result.stackSize *= stack.stackSize; + drops.set(i, result); + } } + + world.setBlockToAir(x, y, z); + + for(ItemStack stack : drops) + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy())); } @Override diff --git a/src/main/java/com/hbm/handler/nei/CrackingHandler.java b/src/main/java/com/hbm/handler/nei/CrackingHandler.java new file mode 100644 index 000000000..b0ef1c4eb --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/CrackingHandler.java @@ -0,0 +1,11 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.RefineryRecipes; + +public class CrackingHandler extends NEIUniversalHandler { + + public CrackingHandler() { + super("ntmCracking", "Cracking", ModBlocks.machine_catalytic_cracker, RefineryRecipes.getCrackingRecipesForNEI()); + } +} diff --git a/src/main/java/com/hbm/handler/nei/FractioningHandler.java b/src/main/java/com/hbm/handler/nei/FractioningHandler.java new file mode 100644 index 000000000..282e99ec0 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/FractioningHandler.java @@ -0,0 +1,11 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.RefineryRecipes; + +public class FractioningHandler extends NEIUniversalHandler { + + public FractioningHandler() { + super("ntmFractioning", "Fractioning", ModBlocks.machine_fraction_tower, RefineryRecipes.getFractionRecipesForNEI()); + } +} diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 3dab3b0e4..7cba240f0 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -50,7 +50,7 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { input = new PositionedStack[in.length]; for(int i = 0; i < in.length; i++) { ItemStack[] sub = in[i]; - this.input[i] = new PositionedStack(sub, 48 + i * 18, 24); + this.input[i] = new PositionedStack(sub, 48 + i * -18, 24); } output = new PositionedStack[out.length]; for(int i = 0; i < out.length; i++) { @@ -95,8 +95,14 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { @Override public void drawBackground(int recipe) { super.drawBackground(recipe); - drawTexturedModalRect(47, 23, 5, 87, 18, 18); - drawTexturedModalRect(101, 23, 5, 87, 18, 18); + + RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); + + for(int i = 0; i < rec.input.length; i++) + drawTexturedModalRect(47 + i * -18, 23, 5, 87, 18, 18); + for(int i = 0; i < rec.output.length; i++) + drawTexturedModalRect(101 + i * 18, 23, 5, 87, 18, 18); + drawTexturedModalRect(74, 14, 59, 87, 18, 38); } diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index d781030cc..9f6a49d48 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -154,8 +154,12 @@ public class HazardRegistry { HazardSystem.register(ball_dynamite, makeData(EXPLOSIVE, 2F)); HazardSystem.register(ball_tnt, makeData(EXPLOSIVE, 3F)); + HazardSystem.register(ingot_semtex, makeData(EXPLOSIVE, 5F)); + HazardSystem.register(ingot_c4, makeData(EXPLOSIVE, 5F)); HazardSystem.register(stick_dynamite, makeData(EXPLOSIVE, 1F)); HazardSystem.register(stick_tnt, makeData(EXPLOSIVE, 1.5F)); + HazardSystem.register(stick_semtex, makeData(EXPLOSIVE, 2.5F)); + HazardSystem.register(stick_c4, makeData(EXPLOSIVE, 2.5F)); HazardSystem.register(dynamite, makeData(EXPLOSIVE, 6F)); HazardSystem.register(tnt, makeData(EXPLOSIVE, 8F)); @@ -164,10 +168,8 @@ public class HazardRegistry { HazardSystem.register("dustLignite", makeData(COAL, powder)); HazardSystem.register("dustTinyLignite", makeData(COAL, powder_tiny)); - HazardSystem.register(ingot_semtex, makeData(EXPLOSIVE, 10F)); - HazardSystem.register(block_semtex, makeData(EXPLOSIVE, 40F)); - HazardSystem.register(ingot_c4, makeData(EXPLOSIVE, 10F)); - HazardSystem.register(block_c4, makeData(EXPLOSIVE, 40F)); + HazardSystem.register(block_semtex, makeData(EXPLOSIVE, 25F)); + HazardSystem.register(block_c4, makeData(EXPLOSIVE, 25F)); HazardSystem.register(cordite, makeData(EXPLOSIVE, 2F)); HazardSystem.register(ballistite, makeData(EXPLOSIVE, 1F)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index d50ed4ed5..e7378d2cf 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -456,7 +456,7 @@ public class OreDictManager { } public static void registerGroups() { - ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true); + ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true); ANY_TAR.addPrefix(ANY, false); } @@ -547,6 +547,9 @@ public class OreDictManager { public static ItemStack fromOne(Item item, Enum en) { return new ItemStack(item, 1, en.ordinal()); } + public static ItemStack fromOne(Item item, Enum en, int stacksize) { + return new ItemStack(item, stacksize, en.ordinal()); + } /** Same as fromOne but with an array of ItemStacks. The array type is Object[] so that the ODM methods work with it. Generates ItemStacks for the entire enum class. */ public static Object[] fromAll(Item item, Class en) { Enum[] vals = en.getEnumConstants(); diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index 960f6c8fa..f1b8148e5 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -414,8 +414,8 @@ public class MachineRecipes { getFurnaceOutput(new ItemStack(ModItems.ingot_copper), new ItemStack(Items.redstone)).copy()); recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_red_copper), new ItemStack(ModItems.ingot_steel) }, getFurnaceOutput(new ItemStack(ModItems.ingot_red_copper), new ItemStack(ModItems.ingot_steel)).copy()); - recipes.put(new ItemStack[] { new ItemStack(ModItems.canister_full, 1, Fluids.DIESEL.getContainerColor()), new ItemStack(Items.slime_ball) }, - getFurnaceOutput(new ItemStack(ModItems.canister_full, 1, Fluids.DIESEL.getContainerColor()), new ItemStack(Items.slime_ball)).copy()); + recipes.put(new ItemStack[] { new ItemStack(ModItems.canister_full, 1, Fluids.DIESEL.getID()), new ItemStack(Items.slime_ball) }, + getFurnaceOutput(new ItemStack(ModItems.canister_full, 1, Fluids.DIESEL.getID()), new ItemStack(Items.slime_ball)).copy()); recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_tungsten), new ItemStack(ModItems.nugget_schrabidium) }, getFurnaceOutput(new ItemStack(ModItems.ingot_tungsten), new ItemStack(ModItems.nugget_schrabidium)).copy()); recipes.put(new ItemStack[] { new ItemStack(ModItems.plate_mixed), new ItemStack(ModItems.plate_gold) }, diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index 0039208af..17e3ea6bb 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -134,4 +134,40 @@ public class RefineryRecipes { protected static Map> getCrackingRecipes() { return cracking; } + + public static HashMap getFractionRecipesForNEI() { + + HashMap recipes = new HashMap(); + + for(Entry> recipe : fractions.entrySet()) { + ItemStack[] out = new ItemStack[] { + ItemFluidIcon.make(recipe.getValue().getKey()), + ItemFluidIcon.make(recipe.getValue().getValue()) + }; + + recipes.put(ItemFluidIcon.make(recipe.getKey(), 100), out); + } + + return recipes; + } + + public static HashMap getCrackingRecipesForNEI() { + + HashMap recipes = new HashMap(); + + for(Entry> recipe : cracking.entrySet()) { + ItemStack[] in = new ItemStack[] { + ItemFluidIcon.make(recipe.getKey(), 100), + ItemFluidIcon.make(Fluids.STEAM, 200) + }; + ItemStack[] out = new ItemStack[] { + ItemFluidIcon.make(recipe.getValue().getKey()), + ItemFluidIcon.make(recipe.getValue().getValue()) + }; + + recipes.put(in, recipe.getValue().getValue().type == Fluids.NONE ? ItemFluidIcon.make(recipe.getValue().getKey()) : out); + } + + return recipes; + } } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 5dda19898..50dd7ff53 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -246,6 +246,13 @@ public class AnvilRecipes { new ComparableStack(ModItems.nuclear_waste_vitrified, 10) }, new AnvilOutput(new ItemStack(ModBlocks.vitrified_barrel))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(ModItems.man_core, 1), + new OreDictStack(BE.ingot(), 4), + new ComparableStack(ModItems.screwdriver, 1) + }, new AnvilOutput(new ItemStack(ModItems.demon_core_open))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(DURA.ingot(), 1)}, new AnvilOutput(new ItemStack(ModItems.plate_desh, 4))).setTier(3)); @@ -509,7 +516,7 @@ public class AnvilRecipes { new AnvilOutput[] { new AnvilOutput(new ItemStack(Items.redstone, 4)), new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 2)), - new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_bismuth : ModItems.ingot_asbestos, 2)), + new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_tantalium : ModItems.ingot_asbestos, 2)), new AnvilOutput(new ItemStack(ModItems.ingot_bismuth, 1)) } ).setTier(4)); @@ -519,7 +526,7 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(Items.redstone, 2)), new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1)), new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.5F), - new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_bismuth : ModItems.ingot_asbestos, 1)), + new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_tantalium : ModItems.ingot_asbestos, 1)), new AnvilOutput(new ItemStack(ModItems.ingot_bismuth, 1), 0.75F) } ).setTier(4)); diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index 760fe724c..b8e529cbd 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -19,4 +19,10 @@ public class ItemEnums { CRACK, COAL } + + public static enum EnumLegendaryType { + TIER1, + TIER2, + TIER3 + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8baceaa34..4e7fe4e28 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -9,6 +9,7 @@ import com.hbm.handler.WeaponAbility; import com.hbm.handler.guncfg.*; import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.armor.*; import com.hbm.items.bomb.*; import com.hbm.items.food.*; @@ -530,6 +531,8 @@ public class ModItems { public static Item component_emitter; public static Item chlorine_pinwheel; public static Item deuterium_filter; + + public static Item parts_legendary; public static Item circuit_raw; public static Item circuit_aluminium; @@ -2994,6 +2997,7 @@ public class ModItems { ring_starmetal = new Item().setUnlocalizedName("ring_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ring_starmetal"); flywheel_beryllium = new Item().setUnlocalizedName("flywheel_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flywheel_beryllium"); deuterium_filter = new Item().setUnlocalizedName("deuterium_filter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":deuterium_filter"); + parts_legendary = new ItemEnumMulti(EnumLegendaryType.class, false, true).setUnlocalizedName("parts_legendary").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":parts_legendary"); cap_aluminium = new Item().setUnlocalizedName("cap_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cap_aluminium"); hull_small_steel = new Item().setUnlocalizedName("hull_small_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_small_steel"); @@ -4739,10 +4743,10 @@ public class ModItems { chemistry_icon = new ItemChemistryIcon().setUnlocalizedName("chemistry_icon").setMaxStackSize(1).setCreativeTab(null); fluid_identifier = new ItemFluidIdentifier().setUnlocalizedName("fluid_identifier").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":fluid_identifier"); 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_lead_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); + fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setContainerItem(ModItems.fluid_tank_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank"); fluid_tank_lead_empty = new Item().setUnlocalizedName("fluid_tank_lead_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_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"); fluid_barrel_infinite = new Item().setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); @@ -4914,18 +4918,18 @@ public class ModItems { ajro_legs = new ArmorAJRO(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_legs").setTextureName(RefStrings.MODID + ":ajro_legs"); ajro_boots = new ArmorAJRO(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_boots").setTextureName(RefStrings.MODID + ":ajro_boots"); - rpa_helmet = new ArmorRPA(aMatAJR, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).setMod(0.25F).setCap(6.0F).setThreshold(4F) + rpa_helmet = new ArmorRPA(aMatAJR, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).setMod(0.1F).setCap(6.0F).setThreshold(20F) .setFireproof(true) .enableVATS(true) .setHasGeigerSound(true) .setHasHardLanding(true) - .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 3)) .setBlastProtection(0.25F) - .setStep("hbm:step.metal") - .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land") - .addResistance("monoxide", 0F) + .setProjectileProtection(0.25F) + .setProtectionLevel(1500) + .setStep("hbm:step.powered") + .setJump("hbm:step.powered") + .setFall("hbm:step.powered") .addResistance("fall", 0).setUnlocalizedName("rpa_helmet").setTextureName(RefStrings.MODID + ":rpa_helmet"); rpa_plate = new ArmorRPA(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_plate").setTextureName(RefStrings.MODID + ":rpa_plate"); rpa_legs = new ArmorRPA(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_legs").setTextureName(RefStrings.MODID + ":rpa_legs"); @@ -6067,6 +6071,7 @@ public class ModItems { GameRegistry.registerItem(chlorine_pinwheel, chlorine_pinwheel.getUnlocalizedName()); GameRegistry.registerItem(ring_starmetal, ring_starmetal.getUnlocalizedName()); GameRegistry.registerItem(deuterium_filter, deuterium_filter.getUnlocalizedName()); + GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName()); //Teleporter Parts GameRegistry.registerItem(telepad, telepad.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java b/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java index d01dc1cfd..4ded08d51 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java +++ b/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java @@ -5,7 +5,6 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java b/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java index d9af8a310..6e67efada 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java @@ -28,10 +28,10 @@ public class ItemChemistryIcon extends Item { public String getItemStackDisplayName(ItemStack stack) { - ChemRecipe chem = ChemplantRecipes.recipes.get(stack.getItemDamage() % ChemplantRecipes.recipes.size()); + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(stack.getItemDamage()); String s = ("" + StatCollector.translateToLocal(ModItems.chemistry_template.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal("chem." + chem.name)).trim(); + String s1 = ("" + StatCollector.translateToLocal("chem." + recipe.name)).trim(); if(s1 != null) { s = s + " " + s1; @@ -59,6 +59,6 @@ public class ItemChemistryIcon extends Item { @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int i) { - return this.icons[ChemplantRecipes.indexMapping.get(i).listing]; + return this.icons[ChemplantRecipes.indexMapping.get(i).listing % this.icons.length]; } } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java index 40c7553b7..27f7e3863 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java @@ -1,6 +1,8 @@ package com.hbm.items.machine; import java.util.List; + +import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; @@ -50,6 +52,10 @@ public class ItemFluidIcon extends Item { return stack; } + public static ItemStack make(FluidStack stack) { + return make(stack.type, stack.fill); + } + public static ItemStack make(FluidType fluid, int i) { return addQuantity(new ItemStack(ModItems.fluid_icon, 1, fluid.ordinal()), i); } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 39cf09aad..eee994716 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4152)"; + public static final String VERSION = "1.0.27 BETA (4158)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 490cb0462..45aae560c 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -38,6 +38,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; +import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.entity.effect.*; import com.hbm.entity.grenade.*; @@ -111,6 +112,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDemonLamp.class, new RenderDemonLamp()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLoot.class, new RenderLoot()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBobble.class, new RenderBobble()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEmitter.class, new RenderEmitter()); //bombs ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeGadget.class, new RenderNukeGadget()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeBoy.class, new RenderNukeBoy()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 39e816ab7..9a26dad9d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -13,6 +13,7 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; @@ -238,6 +239,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_arc_furnace_off, 1), new Object[] { "ITI", "PFP", "ITI", 'I', W.ingot(), 'T', ModBlocks.machine_transformer, 'P', ModItems.board_copper, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.red_wire_coated), 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', MINGRADE.ingot(), 'R', ModItems.wire_red_copper }); addRecipeAuto(new ItemStack(ModBlocks.cable_switch, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.red_wire_coated }); + addRecipeAuto(new ItemStack(ModBlocks.cable_detector, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.machine_detector, 1), new Object[] { "IRI", "CTC", "IRI", 'I', ModItems.plate_polymer, 'R', REDSTONE.dust(), 'C', ModItems.wire_red_copper, 'T', ModItems.coil_tungsten }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.red_cable), 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', ModItems.wire_red_copper }); addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() }); @@ -460,8 +462,8 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.solid_fuel_presto_triplet, 1), new Object[] { ModItems.solid_fuel_presto, ModItems.solid_fuel_presto, ModItems.solid_fuel_presto, ModItems.ball_dynamite }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.flame_war), 1), new Object[] { "WHW", "CTP", "WOW", 'W', Item.getItemFromBlock(Blocks.planks), 'T', Item.getItemFromBlock(Blocks.tnt), 'H', ModItems.flame_pony, 'C', ModItems.flame_conspiracy, 'P', ModItems.flame_politics, 'O', ModItems.flame_opinion }); - addRecipeAuto(new ItemStack(ModBlocks.det_cord, 8), new Object[] { "TNT", "NGN", "TNT", 'T', IRON.plate(), 'N', KNO.dust(), 'G', Items.gunpowder }); - addRecipeAuto(new ItemStack(ModBlocks.det_charge, 1), new Object[] { "PDP", "DTD", "PDP", 'P', STEEL.plate(), 'D', ModBlocks.det_cord, 'T', ModItems.ingot_semtex }); + addRecipeAuto(new ItemStack(ModBlocks.det_cord, 4), new Object[] { " P ", "PGP", " P ", 'P', Items.paper, 'G', Items.gunpowder }); + addRecipeAuto(new ItemStack(ModBlocks.det_charge, 1), new Object[] { "PDP", "DTD", "PDP", 'P', STEEL.plate(), 'D', ModBlocks.det_cord, 'T', ANY_PLASTICEXPLOSIVE.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.det_nuke, 1), new Object[] { "PDP", "DCD", "PDP", 'P', ModItems.plate_desh, 'D', ModBlocks.det_charge, 'C', ModItems.man_core }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 4), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', IRON.plate(), 'T', ModItems.ball_dynamite }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 12), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', STEEL.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); @@ -848,6 +850,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.deco_pipe_rim_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim_green, 'C', KEY_GREEN }); addRecipeAuto(new ItemStack(ModBlocks.deco_pipe_quad_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad_green, 'C', KEY_GREEN }); addRecipeAuto(new ItemStack(ModBlocks.deco_pipe_framed_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', KEY_GREEN }); + + addRecipeAuto(new ItemStack(ModBlocks.deco_emitter), new Object[] { "IDI", "DRD", "IDI", 'I', IRON.ingot(), 'D', DIAMOND.gem(), 'R', REDSTONE.block() }); addRecipeAuto(new ItemStack(Items.name_tag), new Object[] { "SB ", "BPB", " BP", 'S', Items.string, 'B', KEY_SLIME, 'P', Items.paper }); addRecipeAuto(new ItemStack(Items.name_tag), new Object[] { "SB ", "BPB", " BP", 'S', Items.string, 'B', ANY_TAR.any(), 'P', Items.paper }); @@ -883,6 +887,12 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.LIGHTOIL.getID()), new Object[] { ModItems.canister_lightoil }); addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.BIOFUEL.getID()), new Object[] { ModItems.canister_biofuel }); addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.ETHANOL.getID()), new Object[] { ModItems.canister_ethanol }); + + addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); + addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2) }); + addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), new Object[] { ModItems.ingot_chainsteel, ModItems.ingot_bismuth, ModItems.gem_alexandrite, ModItems.gem_alexandrite }); + addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER3) }); + addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER3), new Object[] { ModItems.ingot_chainsteel, ModItems.ingot_smore, ModItems.gem_alexandrite, ModItems.gem_alexandrite, ModItems.gem_alexandrite }); if(GeneralConfig.enableBabyMode) { addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 5795a2fa2..cb0112dc3 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -13,6 +13,7 @@ import org.apache.commons.lang3.math.NumberUtils; import org.apache.logging.log4j.Level; import com.google.common.collect.Multimap; +import com.hbm.blocks.IStepTickReceiver; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; import com.hbm.config.GeneralConfig; @@ -61,6 +62,7 @@ import com.hbm.util.EntityDamageUtil; import com.hbm.world.WorldProviderNTM; import com.hbm.world.generator.TimedGenerator; +import codechicken.lib.math.MathHelper; import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -1099,6 +1101,18 @@ public class ModEventHandler { if(player.ticksExisted == 100 || player.ticksExisted == 200) CraftingManager.crumple(); + if(event.phase == TickEvent.Phase.START) { + int x = MathHelper.floor_double(player.posX); + int y = MathHelper.floor_double(player.posY - player.yOffset - 0.5); + int z = MathHelper.floor_double(player.posZ); + Block b = player.worldObj.getBlock(x, y, z); + + if(b instanceof IStepTickReceiver) { + IStepTickReceiver step = (IStepTickReceiver) b; + step.onPlayerStep(player.worldObj, x, y, z, player); + } + } + if(!player.worldObj.isRemote && event.phase == TickEvent.Phase.START) { /// GHOST FIX START /// diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 5a8644263..1d57eeb24 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -71,6 +71,10 @@ public class NEIConfig implements IConfigureNEI { API.registerUsageHandler(new LiquefactionHandler()); API.registerRecipeHandler(new SolidificationHandler()); API.registerUsageHandler(new SolidificationHandler()); + API.registerRecipeHandler(new CrackingHandler()); + API.registerUsageHandler(new CrackingHandler()); + API.registerRecipeHandler(new FractioningHandler()); + API.registerUsageHandler(new FractioningHandler()); //Some things are even beyond my control...or are they? API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); diff --git a/src/main/java/com/hbm/render/tileentity/RenderEmitter.java b/src/main/java/com/hbm/render/tileentity/RenderEmitter.java new file mode 100644 index 000000000..bf1762f70 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderEmitter.java @@ -0,0 +1,79 @@ +package com.hbm.render.tileentity; + +import java.awt.Color; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; +import com.hbm.render.util.BeamPronter; +import com.hbm.render.util.BeamPronter.EnumBeamType; +import com.hbm.render.util.BeamPronter.EnumWaveType; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; + +public class RenderEmitter extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glRotatef(90, 0F, 1F, 0F); + + switch(tileEntity.getBlockMetadata()) { + case 0: + GL11.glTranslated(0.0D, 0.5D, -0.5D); + GL11.glRotatef(90, 1F, 0F, 0F); break; + case 1: + GL11.glTranslated(0.0D, 0.5D, 0.5D); + GL11.glRotatef(90, -1F, 0F, 0F); break; + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glTranslated(0, 0.5, 0.5); + TileEntityEmitter emitter = (TileEntityEmitter) tileEntity; + int range = emitter.beam - 1; + int originalColor = emitter.color == 0 ? Color.HSBtoRGB(tileEntity.getWorldObj().getTotalWorldTime() / 50.0F, 0.5F, 0.25F) & 16777215 : emitter.color; + float girth = emitter.girth; + int r = (originalColor & 0xff0000) >> 16; + int g = (originalColor & 0x00ff00) >> 8; + int b = (originalColor & 0x0000ff); + float innerMult = 0.85F; + float outerMult = 0.1F; + int colorInner = ((int)(r * innerMult) << 16) | ((int)(g * innerMult) << 8) | ((int)(b * innerMult)); + int colorOuter = ((int)(r * outerMult) << 16) | ((int)(g * outerMult) << 8) | ((int)(b * outerMult)); + + if(range > 0) { + + int segments = (int)Math.max(Math.sqrt(girth * 50), 2); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.SPIRAL, EnumBeamType.SOLID, colorOuter, colorInner, 0, 1, 0F, segments, girth); + + if(emitter.effect == 1) { + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.RANDOM, EnumBeamType.SOLID, colorOuter, colorInner, (int) tileEntity.getWorldObj().getTotalWorldTime() / 2, (int)Math.max(range / girth / 2, 1), girth * 2, 4, girth * 0.1F); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.RANDOM, EnumBeamType.SOLID, colorOuter, colorInner, (int) tileEntity.getWorldObj().getTotalWorldTime() / 2 + 15, (int)Math.max(range / girth / 4, 1), girth * 2, 4, girth * 0.1F); + } + + if(emitter.effect == 2) { + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.SPIRAL, EnumBeamType.SOLID, colorOuter, colorInner, (int) (tileEntity.getWorldObj().getTotalWorldTime() + f) * -10 % 360, (int)Math.max(range / girth / 2, 1), girth * 2, 4, girth * 0.1F); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.SPIRAL, EnumBeamType.SOLID, colorOuter, colorInner, (int) (tileEntity.getWorldObj().getTotalWorldTime() + f) * -10 % 360 + 180, (int)Math.max(range / girth / 2, 1), girth * 2, 4, girth * 0.1F); + } + if(emitter.effect == 3) { + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.SPIRAL, EnumBeamType.SOLID, colorOuter, colorInner, (int) (tileEntity.getWorldObj().getTotalWorldTime() + f) * -10 % 360, (int)Math.max(range / girth / 2, 1), girth * 2, 4, girth * 0.1F); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.SPIRAL, EnumBeamType.SOLID, colorOuter, colorInner, (int) (tileEntity.getWorldObj().getTotalWorldTime() + f) * -10 % 360 + 120, (int)Math.max(range / girth / 2, 1), girth * 2, 4, girth * 0.1F); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.SPIRAL, EnumBeamType.SOLID, colorOuter, colorInner, (int) (tileEntity.getWorldObj().getTotalWorldTime() + f) * -10 % 360 + 240, (int)Math.max(range / girth / 2, 1), girth * 2, 4, girth * 0.1F); + } + } + + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/util/BeamPronter.java b/src/main/java/com/hbm/render/util/BeamPronter.java index 261667c9d..bdf1f4826 100644 --- a/src/main/java/com/hbm/render/util/BeamPronter.java +++ b/src/main/java/com/hbm/render/util/BeamPronter.java @@ -59,7 +59,8 @@ public class BeamPronter { spinner.rotateAroundY((float) Math.PI * (float) start / 180F); spinner.rotateAroundY((float) Math.PI * 45F / 180F * i); } else if(wave == EnumWaveType.RANDOM) { - spinner.rotateAroundY((float) Math.PI * 4 * rand.nextFloat()); + spinner.rotateAroundY((float) Math.PI * 2 * rand.nextFloat()); + spinner.rotateAroundY((float) Math.PI * 2 * rand.nextFloat()); } double pX = unit.xCoord * segLength * i + spinner.xCoord; @@ -82,7 +83,20 @@ public class BeamPronter { for(int j = 1; j <= layers; j++) { float inter = (float) (j - 1) / (float) (layers - 1); - int color = (int) (outerColor + (innerColor - outerColor) * inter); + + int r1 = ((outerColor & 0xFF0000) >> 16); + int g1 = ((outerColor & 0x00FF00) >> 8); + int b1 = ((outerColor & 0x0000FF) >> 0); + + int r2 = ((innerColor & 0xFF0000) >> 16); + int g2 = ((innerColor & 0x00FF00) >> 8); + int b2 = ((innerColor & 0x0000FF) >> 0); + + int r = ((int)(r1 + (r2 - r1) * inter)) << 16; + int g = ((int)(g1 + (g2 - g1) * inter)) << 8; + int b = ((int)(b1 + (b2 - b1) * inter)) << 0; + + int color = r | g | b; tessellator.startDrawingQuads(); tessellator.setColorOpaque_I(color); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 4edfbd02e..847a98149 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -3,6 +3,7 @@ package com.hbm.tileentity; import java.util.HashMap; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; +import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.conductor.*; @@ -188,6 +189,7 @@ public class TileMappings { put(TileEntityLoot.class, "tileentity_ntm_loot"); put(TileEntityBobble.class, "tileentity_ntm_bobblehead"); + put(TileEntityEmitter.class, "tileentity_ntm_emitter"); put(TileEntityDoorGeneric.class, "tileentity_ntm_door"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index edeac7c23..d4c0341dc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -1,6 +1,5 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; import com.hbm.interfaces.IFluidAcceptor; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index ab62f8427..24a59581e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -130,6 +130,17 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements } this.networkPack(data, 150); + } else { + + if(isProgressing && this.worldObj.getTotalWorldTime() % 3 == 0) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + double x = xCoord + 0.5 + dir.offsetX * 1.125 + rot.offsetX * 0.125; + double y = yCoord + 3; + double z = zCoord + 0.5 + dir.offsetZ * 1.125 + rot.offsetZ * 0.125; + worldObj.spawnParticle("cloud", x, y, z, 0.0, 0.1, 0.0); + } } } diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index d86857913..efdccc7e1 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -59,6 +59,7 @@ public class ArmorUtil { ArmorRegistry.registerHazard(ModItems.dns_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.schrabidium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.rpa_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); //Ob ihr wirklich richtig steht, seht ihr wenn das Licht angeht! registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); diff --git a/src/main/java/com/hbm/util/InventoryUtil.java b/src/main/java/com/hbm/util/InventoryUtil.java index 1a1878bbe..19477712e 100644 --- a/src/main/java/com/hbm/util/InventoryUtil.java +++ b/src/main/java/com/hbm/util/InventoryUtil.java @@ -365,8 +365,10 @@ public class InventoryUtil { if(o instanceof ItemStack[]) { ItemStack[] ingredients = (ItemStack[]) o; - ItemStack[][] stacks = new ItemStack[1][0]; - stacks[0] = ingredients; + ItemStack[][] stacks = new ItemStack[ingredients.length][1]; + for(int i = 0; i < ingredients.length; i++) { + stacks[i][0] = ingredients[i]; + } return stacks; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 609ebf63f..838409c55 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -110,9 +110,11 @@ bomb.triggered=Erfolgreich ausgelöst! book.test.page1=Testseite 1 chem.ASPHALT=Asphaltherstellung +chem.BAKELITE=Bakelitherstellung chem.BALEFIRE=BF-Raketentreibstoffherstellung chem.BP_BIOFUEL=Biodieselumesterung chem.BP_BIOGAS=Biogasherstellung +chem.C4=C4-Synthese chem.CC_HEATING=Fortgeschrittene Kohleverflüssigung chem.CC_HEAVY=Einfache Kohleverflüssigung chem.CC_I=Erweiterte Kohleverflüssigung @@ -120,6 +122,8 @@ chem.CC_NAPHTHA=Naphtha-Kohleverflüssigung chem.CC_OIL=Kohleverflüssigung chem.CIRCUIT_4=Überstaktete Schaltkreisherstellung chem.CIRCUIT_5=Leistungsstarke Schaltkreisherstellung +chem.CO2=CO2-Herstellung +chem.COALGAS_LEADED=Bleikohlebenzin mischen chem.COLTAN_CLEANING=Coltanreinigung chem.COLTAN_CRYSTAL=Tantal-Kristallisierung chem.COLTAN_PAIN=Pandemonium(III)tantalit-Herstellung @@ -148,15 +152,19 @@ chem.FP_SMEAR=Industrieölverarbeitung chem.FR_PETROIL=Gemischherstellung chem.FR_REOIL=Öl-Wiederaufbereitung chem.GASOLINE=Benzinherstellung +chem.GASOLINE_LEADED=Bleibenzin mischen chem.HELIUM3=Helium-3-Extraktion aus Mondgestein chem.KEVLAR=Kevlarverbundherstellung chem.LPG=Petroleumgasverflüssigung +chem.LUBRICANT=Schmieröl mischen chem.NITAN=NITAN-Supertreibstoff mischen chem.OIL_SAND=Teersand-Extraktion chem.OSMIRIDIUM_DEATH=Osmiridiumlösung-Herstellung chem.PEROXIDE=Wasserstoffperoxidherstellung +chem.PETROIL_LEADED=Bleigemisch mischen chem.POLYMER=Polymersynthese chem.PUF6=Plutoniumhexafluoridproduktion +chem.RUBBER=Gummiherstellung chem.SAS3=Schrabidiumtrisulfatherstellung chem.SATURN=Saturnitherstellung chem.SCHRABIDATE=Eisenschrabidatherstellung @@ -180,6 +188,7 @@ chem.SOLID_FUEL=Festbrennstoffherstellung chem.STEAM=Wasser kochen chem.TEL=TEL mischen chem.TEST=Test +chem.TNT=TNT-Synthese chem.UF6=Uranhexafluoridproduktion chem.VIT_GAS=Gas-Atommüllvitrifizierung chem.VIT_LIQUID=Flüssig-Atommüllvitrifizierung @@ -463,6 +472,7 @@ hbmfluid.bitumen=Bitumen hbmfluid.carbondioxide=Kohlenstoffdioxid hbmfluid.coolant=Kühlflüssigkeit hbmfluid.coalgas=Kohlebenzin +hbmfluid.coalgas_leaded=Bleikohlebenzin hbmfluid.coaloil=Kohleöl hbmfluid.crackoil=Crack-Öl hbmfluid.cryogel=Kryogel @@ -474,7 +484,8 @@ hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Endersaft hbmfluid.fracksol=Frackinglösung hbmfluid.gas=Erdgas -hbmfluid.gasoline=Bleibenzin +hbmfluid.gasoline=Benzin +hbmfluid.gasoline_leaded=Bleibenzin hbmfluid.heatingoil=Heizöl hbmfluid.heavyoil=Schweröl hbmfluid.heavywater=Schweres Wasser @@ -498,6 +509,7 @@ hbmfluid.oil=Rohöl hbmfluid.oxygen=Flüssiger Sauerstoff hbmfluid.pain=Pandemonium(III)tantalit-Lösung hbmfluid.petroil=Gemisch +hbmfluid.petroil_leaded=Bleigemisch hbmfluid.petroleum=Petroleumgas hbmfluid.plasma_bf=Balefire-Plasma hbmfluid.plasma_dh3=Deuterium-Helium-3-Plasma @@ -2073,6 +2085,7 @@ item.particle_muon.name=Myonenkapsel item.particle_sparkticle.name=Sparktikelkapsel item.particle_strange.name=Strange-Quark-Kapsel item.particle_tachyon.name=Tachyonenkapsel +item.parts_legendary.name=Legendäre Teile item.peas.name=Erbsen item.pedestal_steel.name=Stahlsockel item.pellet_advanced.name=Fortgeschrittenes Watzaufwertugspellet @@ -2607,7 +2620,9 @@ item.steel_pickaxe.name=Stahlspitzhacke item.steel_plate.name=Stahlbrustpanzer item.steel_shovel.name=Stahlschaufel item.steel_sword.name=Stahlschwert +item.stick_c4.name=Stange C4 item.stick_dynamite.name=Stange Dynamit +item.stick_semtex.name=Stange Semtex item.stick_tnt.name=Stange TNT item.stopsign.name=Stopschild-Streitaxt item.sulfur.name=Schwefel @@ -2868,6 +2883,7 @@ tile.block_advanced_alloy.name=Fortgeschrittener Legierungsblock tile.block_aluminium.name=Aluminiumblock tile.block_asbestos.name=Asbestblock tile.block_australium.name=Australiumblock +tile.block_bakelite.name=Bakelitblock tile.block_beryllium.name=Berylliumblock tile.block_bismuth.name=Bismutblock tile.block_boron.name=Borblock @@ -2921,6 +2937,7 @@ tile.block_niobium.name=Niobblock tile.block_plutonium.name=Plutoniumblock tile.block_plutonium_fuel.name=Plutoniumkernbrennstoffblock tile.block_polonium.name=Polonium-210-Block +tile.block_polymer.name=Polymerblock tile.block_pu_mix.name=Reaktorfähiger Plutoniumblock tile.block_pu238.name=Plutonium-238-Block tile.block_pu239.name=Plutonium-239-Block @@ -2928,6 +2945,7 @@ tile.block_pu240.name=Plutonium-240-Block tile.block_red_copper.name=Roter Kupferblock tile.block_red_phosphorus.name=Roter Phosphorblock tile.block_reiium.name=Reiiumblock +tile.block_rubber.name=Gummiblock tile.block_schrabidate.name=Eisenschrabidatblock tile.block_schrabidium.name=Schrabidiumblock tile.block_schrabidium_cluster.name=Schrabidium-Cluster @@ -3048,6 +3066,7 @@ tile.crystal_virus.name=Dunkler Kristall tile.deco_aluminium.name=Aluminium-Dekoblock tile.deco_asbestos.name=Asbestdach tile.deco_beryllium.name=Beryllium-Dekoblock +tile.deco_emitter.name=Deko-Lichtemitter tile.deco_lead.name=Blei-Dekoblock tile.deco_rbmk.name=RBMK-Dekoblock tile.deco_rbmk_smooth.name=Glatter RBMK-Dekoblock diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3e7fede99..b5c658b3f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -277,9 +277,11 @@ book.starter.page18=vær is just a guy who has been trapped in the grey void fea #book.rbmk.page16=§4§lAvoid. chem.ASPHALT=Asphalt Production +chem.BAKELITE=Bakelite Production chem.BALEFIRE=BF Rocket Fuel Mixing chem.BP_BIOFUEL=Biofuel Transesterification chem.BP_BIOGAS=Biogas Production +chem.C4=C-4 Synthesis chem.CC_HEATING=Advanced Coal Liquefaction chem.CC_HEAVY=Basic Coal Liquefaction chem.CC_I=Enhanced Coal Liquefaction @@ -288,6 +290,7 @@ chem.CC_OIL=Coal Liquefaction chem.CIRCUIT_4=Overclocked Circuit Production chem.CIRCUIT_5=High Performance Circuit Production chem.CO2=Carbon Dioxide Production +chem.COALGAS_LEADED=Leaded Coal Gasoline Mixing chem.COLTAN_CLEANING=Coltan Purifying chem.COLTAN_CRYSTAL=Tantalium Crystallizing chem.COLTAN_PAIN=Pandemonium(III)tantalite Production @@ -318,17 +321,21 @@ chem.FR_PETROIL=Petroil Mixing chem.FR_REOIL=Oil Reprocessing chem.FRACKSOL=Fracking Solution Production chem.GASOLINE=Gasoline Production +chem.GASOLINE_LEADED=Leaded Gasoline Mixing chem.HEAVY_ELECTROLYSIS=Heavy Water Cryo-Electrolysis chem.HELIUM3=Helium-3 Extraction from Moon Turf chem.KEVLAR=Kevlar Compound Production chem.LPG=Petroleum Gas Liquefaction +chem.LUBRICANT=Lubricant Mixing chem.METH=Methamphetamine Synthesis chem.NITAN=NITAN Super Fuel Mixing chem.OIL_SAND=Tar Sand Extraction chem.OSMIRIDIUM_DEATH=Osmiridic Solution Production chem.PEROXIDE=Hydrogen Peroxide Production +chem.PETROIL_LEADED=Leaded Petroil Mixing chem.POLYMER=Polymer Synthesis chem.PUF6=Plutonium Hexafluoride Production +chem.RUBBER=Rubber Production chem.SAS3=Schrabidium Trisulfide Production chem.SATURN=Saturnite Production chem.SCHRABIDATE=Ferric Schrabidate Production @@ -352,6 +359,7 @@ chem.SOLID_FUEL=Solid Rocket Fuel Production chem.STEAM=Water Boiling chem.TEL=TEL Mixing chem.TEST=Test +chem.TNT=TNT Synthesis chem.UF6=Uranium Hexafluoride Production chem.VIT_GAS=Gaseous Nuclear Waste Vitrification chem.VIT_LIQUID=Liquid Nuclear Waste Vitrification @@ -655,6 +663,7 @@ hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.carbondioxide=Carbon Dioxide hbmfluid.coalgas=Coal Gasoline +hbmfluid.coalgas_leaded=Leaded Coal Gasoline hbmfluid.coaloil=Coal Oil hbmfluid.coolant=Coolant hbmfluid.crackoil=Cracked Oil @@ -667,7 +676,8 @@ hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Ender Juice hbmfluid.fracksol=Fracking Solution hbmfluid.gas=Natural Gas -hbmfluid.gasoline=Leaded Gasoline +hbmfluid.gasoline=Gasoline +hbmfluid.gasoline_leaded=Leaded Gasoline hbmfluid.heatingoil=Heating Oil hbmfluid.heavyoil=Heavy Oil hbmfluid.heavywater=Heavy Water @@ -691,6 +701,7 @@ hbmfluid.oil=Crude Oil hbmfluid.oxygen=Liquid Oxygen hbmfluid.pain=Pandemonium(III)tantalite Solution hbmfluid.petroil=Petroil +hbmfluid.petroil_leaded=Leaded Petroil hbmfluid.petroleum=Petroleum Gas hbmfluid.plasma_bf=Balefire Plasma hbmfluid.plasma_dh3=Deuterium-Helium-3 Plasma @@ -2335,6 +2346,7 @@ item.particle_muon.name=Muon Capsule item.particle_sparkticle.name=Sparkticle Capsule item.particle_strange.name=Strange Quark Capsule item.particle_tachyon.name=Tachyon Capsule +item.parts_legendary.name=Legendary Parts item.peas.name=Peas item.pedestal_steel.name=Steel Pedestal item.pellet_advanced.name=Advanced Watz Performance Improver @@ -2961,7 +2973,9 @@ item.steel_pickaxe.name=Steel Pickaxe item.steel_plate.name=Steel Chestplate item.steel_shovel.name=Steel Shovel item.steel_sword.name=Steel Sword +item.stick_c4.name=Stick of C-4 item.stick_dynamite.name=Stick of Dynamite +item.stick_semtex.name=Stick of Semtex item.stick_tnt.name=Stick of TNT item.stopsign.name=Stop Sign Battle Axe item.sulfur.name=Sulfur @@ -3232,6 +3246,7 @@ tile.block_advanced_alloy.name=Block of Advanced Alloy tile.block_aluminium.name=Block of Aluminium tile.block_asbestos.name=Block of Asbestos tile.block_australium.name=Block of Australium +tile.block_bakelite.name=Block of Bakelite tile.block_beryllium.name=Block of Beryllium tile.block_bismuth.name=Block of Bismuth tile.block_boron.name=Block of Boron @@ -3285,6 +3300,7 @@ tile.block_niobium.name=Block of Niobium tile.block_plutonium.name=Block of Plutonium tile.block_plutonium_fuel.name=Block of Plutonium Fuel tile.block_polonium.name=Block of Polonium-210 +tile.block_polymer.name=Block of Polymer tile.block_pu_mix.name=Block of Reactor Grade Plutonium tile.block_pu238.name=Block of Plutonium-238 tile.block_pu239.name=Block of Plutonium-239 @@ -3293,6 +3309,7 @@ tile.block_ra226.name=Block of Radium-226 tile.block_red_copper.name=Block of Red Copper tile.block_red_phosphorus.name=Block of Red Phosphorus tile.block_reiium.name=Block of Reiium +tile.block_rubber.name=Block of Rubber tile.block_schrabidate.name=Block of Ferric Schrabidate tile.block_schrabidium.name=Block of Schrabidium tile.block_schrabidium_cluster.name=Schrabidium Cluster @@ -3413,6 +3430,7 @@ tile.crystal_virus.name=Dark Crystal tile.deco_aluminium.name=Aluminium Deco Block tile.deco_asbestos.name=Asbestos Roof tile.deco_beryllium.name=Beryllium Deco Block +tile.deco_emitter.name=Deco Light Emitter tile.deco_lead.name=Lead Deco Block tile.deco_rbmk.name=RBMK Deco Block tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 40bb51e67..94aa7cb13 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -194,6 +194,7 @@ "step.iron_land": {"category": "player", "sounds": [{"name": "footsteps/iron_land", "stream": false}]}, "step.iron": {"category": "player", "sounds": ["footsteps/iron1", "footsteps/iron2", "footsteps/iron3", "footsteps/iron4"]}, "step.metalBlock": {"category": "block", "sounds": ["footsteps/metalStep1", "footsteps/metalStep2", "footsteps/metalStep3", "footsteps/metalStep4"]}, + "step.powered": {"category": "player", "sounds": ["footsteps/powered1", "footsteps/powered2", "footsteps/powered3"]}, "player.vomit": {"category": "player", "sounds": [{"name": "player/vomit", "stream": false}]}, "player.cough": {"category": "player", "sounds": ["player/cough1", "player/cough2", "player/cough3", "player/cough4"]}, diff --git a/src/main/resources/assets/hbm/sounds/footsteps/powered1.ogg b/src/main/resources/assets/hbm/sounds/footsteps/powered1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..45146b8e02ecaa14e60401b33036303abd0dbcdf GIT binary patch literal 9576 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/footsteps/powered3.ogg b/src/main/resources/assets/hbm/sounds/footsteps/powered3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a1e90131385fa8fa1e1f06053fdec51efaeaae2e GIT binary patch literal 8517 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/emitter.png b/src/main/resources/assets/hbm/textures/blocks/emitter.png new file mode 100644 index 0000000000000000000000000000000000000000..cc2cf11e86e8f3d435f09e425377b7ea3f46e7da GIT binary patch literal 380 zcmV-?0fYXDP)3Ypt%0F{fHesYp@Pb*+=7QNZiNUs{i7#YVAfMFQa1Yp~?0u)&KHGw>gqx+|cB4IB7 aea>&ndb(MgXo}VV00000WbcEP){m5anbLowK~V@1N!YV~RNJ-?Y*2QU~6bT}L`o6U&hnDKZ_lc&?E zW6LK^h~t_2A|P-kwbqhIUp@LDhOtmbO%NgW>1L z1l}8qG)hpli_XE}p&2yUdpnOJ`%%@{+Capb2#}^AA}u~RfH=13_55AKV7WBNb6d-0 z+2Yq%I6k&JReaTkf%oeapPyY0Lr4-U2dtdd7|YTw=Q$i5by*d5cdd*n`fAmff`~nq z@9#g?4X&bBk1Gh)Q>fqe)v3+6s%b&%@WRKmUKey`RUR=HD&b9c`blzcW-g z{qxta1H37XhFe5hB<1%0I@56GzE6wH9ae)6PjBnb`FB*UJ@Ehs3&UCu0~_`$&zXUC OF?hQAxvX)ve*eW%Bl@Avnb^Z9&$E)3*COK8-z}cgPqiacUm( z^7_GS;YjO!I!m%foXhJQ&lhnIyE`d>P&2@a8fg48!0oPUDvjJEAZ+9&=$Z;ZxqKq> z`6D4s;G$_x(KQuaQ)!yh&{STgj@?zVMn%jP4p$EupXlOlFSK4HzyOB_`v9bq3DU`g zj{|76Zk1l|UI`sA7>+#SY(8guYm>onB&`tG19ySewU{>mU`<&9_?}RjpkS4JB0U;K rh;L)TDoIm>qF$?tdaWw`1Am4u#kFU+uH&N~00000NkvXXu0mjfh-s=l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rpa_legs.png b/src/main/resources/assets/hbm/textures/items/rpa_legs.png new file mode 100644 index 0000000000000000000000000000000000000000..a7a90dbd5a7cbfb29822471906e659c0facd9072 GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfG}I5wurPC@+3Ni|9EjVoz2oP zu1)`b-NFQ2*2Fbzn-e}?-^!lS$4n~Q%3Br$$ zt`eAT!F6G(=#Tx?w^#iyPWSt{UR(Ra{0SD!%(KLq?&^9bC09IDUoLTY-rHzJ89&3O tM-qAo2@NhFqYd}8d)G`j%4EsFaA-%^J>S5+7kJJ$c=i{#OX$)s z%A_S!3Be%MltS%JdXPG6)uvi-l z!1nMFT>#oxF#vNvsqHWqCxrtJVIpOX+L z`5NiKyDiiVZ7izDgsh5ebQeaE8C+hRjiUIreH`C<$QucSj;Ao?$$LIMJ`4a?^BeNi zVcL$*uWxZxMTYBh4*M+t>({qL1Y$#s2~1JdO(GHeV0_kNk)}Km2;VpSsv%b8a)|ze ts%{du+u(K^T%Sjs0bHNsdB;rtj2|GOiVt;uO6LFo002ovPDHLkV1gD_lQaMT literal 0 HcmV?d00001 diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index bb45c5f46..0c7be7a1c 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4152", + "version":"1.0.27_X4158", "mcversion": "1.7.10", "url": "", "updateUrl": "", From 74e81f29ae5332ce4beaf09991314a1cf4bb3e71 Mon Sep 17 00:00:00 2001 From: Doctor17-git <60807716+Doctor17-git@users.noreply.github.com> Date: Sun, 27 Feb 2022 19:01:24 +0300 Subject: [PATCH 9/9] Updated ru_RU.lang --- src/main/resources/assets/hbm/lang/ru_RU.lang | 72 ++++++++++++------- 1 file changed, 48 insertions(+), 24 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 2d630ef21..ac169665e 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -791,7 +791,7 @@ hbmfluid.aschrab=Антишрабидий hbmfluid.heavyoil=Тяжелая нефть hbmfluid.bitumen=Битум hbmfluid.heatingoil=Мазут -hbmfluid.naphtha=Лигроин +hbmfluid.naphtha=Нафта hbmfluid.lightoil=Легкая нефть hbmfluid.petroleum=Попутный нефтяной газ hbmfluid.lpg=Сжиженный попутный газ (СПГ) @@ -817,7 +817,9 @@ hbmfluid.plasma_xm=Ксенон-Ртутная-плазма hbmfluid.plasma_bf=Жар-плазма hbmfluid.schrabidic=Шрабидиевая кислота hbmfluid.pain=Пандемониум(III)Раствор танталита -hbmfluid.gasoline=Этилированный бензин +hbmfluid.gasoline=Газолин +hbmfluid.gasoline_leaded=Этилированный газолин +hbmfluid.petroil_leaded=Этилированный бензин hbmfluid.spentsteam=Пар низкого давления hbmfluid.fracksol=Жидкость для гидроразрыва пласта hbmfluid.alcohol=Изопропиловый спирт @@ -849,6 +851,7 @@ hbmfluid.salient=Зелёный сойлент hbmfluid.coalgas=Угольный газ hbmfluid.enderjuice=Эндер-сок hbmfluid.xpjuice=Жидкий опыт +hbmfluid.coalgas_leaded=Этилированный угольный газ //Special for 1.12.2 version// fluid.hbmsteam=Пар @@ -927,7 +930,7 @@ radar.redMode=Режим красного камня$Включён: Сигна chem.TEST=Тест chem.FP_HEAVYOIL=Переработка тяжелой нефти chem.FP_SMEAR=Переработка промышленного масла -chem.FP_NAPHTHA=Переработка лигроина +chem.FP_NAPHTHA=Переработка нафты chem.FP_LIGHTOIL=Переработка легкой нефти chem.FR_REOIL=Воссоздание нефти chem.FR_PETROIL=Смешивание бензина @@ -941,7 +944,7 @@ chem.CC_OIL=Сжижение угля chem.CC_I=Улучшенное сжижение угля chem.CC_HEATING=Усовершенствованное сжижение угля chem.CC_HEAVY=Базовое сжижение угля -chem.CC_NAPHTHA=Сжижение тяжелого бензина +chem.CC_NAPHTHA=Сжижение нафты chem.LPG=Сжижение попутного газа chem.ASPHALT=Производство асфальта chem.CONCRETE=Производство бетона @@ -958,7 +961,7 @@ chem.SF_HEATINGOIL=Затвердевание битума chem.SF_RECLAIMED=Затвердевание очищенного масла chem.SF_PETROIL=Затвердевание бензина chem.SF_LUBRICANT=Затвердевание машинной смазки -chem.SF_NAPHTHA=Затвердевание лигроина +chem.SF_NAPHTHA=Затвердевание нафты chem.SF_DIESEL=Затвердевание дизеля chem.SF_LIGHTOIL=Затвердевание легкой нефти chem.SF_KEROSENE=Затвердевание керосина @@ -996,7 +999,7 @@ chem.COLTAN_CRYSTAL=Кристаллизация тантала chem.COLTAN_PAIN=Производство Пандемониум(III)танталита chem.VIT_GAS=Остекловывание газообразных ядерных отходов chem.VIT_LIQUID=Остекловывание жидких ядерных отходов -chem.GASOLINE=Производство бензина +chem.GASOLINE=Производство газолина chem.TEL=Смешивание тетраэтилсвинца chem.ACRYLIC=Полимеризация акрила chem.ALCOHOL=Гидратация изопропилового спирта @@ -1021,6 +1024,14 @@ chem.HEAVY_ELECTROLYSIS=Электролиз тяжёлой воды chem.ETHANOL=Производство этанола chem.CO2=Получение CO2 путём сжигания природного газа chem.EPEARL=Синтез жемчужин Эндера +chem.BAKELITE=Производство бакелита +chem.C4=Синтез C-4 +chem.COALGAS_LEADED=Смешивание этилированного угольного газа +chem.GASOLINE_LEADED=Смешивание этилированного газолина +chem.LUBRICANT=Смешивание машинной смазки +chem.PETROIL_LEADED=Смешивание этилированного бензина +chem.RUBBER=Производство резины +chem.TNT=Синтез ТНТ item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core item.record.ss.desc=Valve - Sector Sweep @@ -1290,6 +1301,7 @@ tile.machine_generator.name=Ядерный реактор (Устаревший) container.generator=Ядерный реактор tile.red_wire_coated.name=Медный кабель с покрытием tile.cable_switch.name=Рубильник +tile.cable_detector.name=Редстоун-рубильник tile.machine_deuterium.name=Дейтериевый экстрактор container.machine_deuterium=Дейтериевый экстрактор tile.machine_battery_potato.name=Картофельная батарея @@ -1739,6 +1751,7 @@ item.plate_schrabidium.name=Шрабидиевая пластина item.ingot_schraranium.name=Шрараниевый слиток item.ingot_schraranium.desc=Делается из урана в шрабидиевом трансмутаторе item.ingot_semtex.name=Семтекс +item.ingot_c4.name=Брусок C-4 item.ingot_schrabidate.name=Слиток шрабидата железа item.powder_schrabidate.name=Порошок шрабидата железа item.ingot_schrabidium.name=Шрабидиевый слиток @@ -1820,6 +1833,7 @@ item.plate_mixed.name=Смешанная пластина item.plate_paa.name=Пластина сплава PaA item.ingot_dura_steel.name=Высокоскоростная сталь item.ingot_polymer.name=Полимер +item.ingot_rubber.name=Резина item.ingot_polonium.name=Слиток полония-210 item.bolt_dura_steel.name=Высокоскоростной стальной стержень item.pipes_steel.name=Стальные трубы @@ -1879,6 +1893,8 @@ item.solid_fuel_presto.name=Топливное полено item.solid_fuel_presto_triplet.name=Сжатые топливные полена item.stick_dynamite.name=Динамитная шашка item.stick_tnt.name=Шашка ТНТ +item.stick_c4.name=Шашка C-4 +item.stick_semtex.name=Шашка семтекса item.rocket_fuel.name=Твердое топливо (Ракетное) item.coke.coal.name=Угольный кокс item.coke.lignite.name=Бурый кокс @@ -2109,8 +2125,11 @@ tile.block_bismuth.name=Блок висмута tile.block_coltan.name=Блок колтана tile.block_tantalium.name=Блок тантала tile.block_semtex.name=Блок семтекса +tile.block_c4.name=Блок C-4 tile.block_smore.name=Блок с'мора tile.block_niobium.name=Блок ниобия +tile.block_bakelite.name=Блок бакелита +tile.block_rubber.name=Блок резины tile.block_ra226.name=Блок радия-226 tile.block_u233.name=Блок урана-233 @@ -2251,6 +2270,7 @@ tile.block_cap_star.name=Блок крышек со звездой от Санс tile.block_cap_sunset.name=Блок крышек от Сансет Сарсапарилла tile.block_tritium.name=Блок тритиевых пробирок tile.hazmat.name=Блок защитной ткани +tile.deco_emitter.name=Декоративный источник света tile.reinforced_brick.name=Усиленный камень tile.reinforced_glass.name=Усиленное стекло @@ -2687,25 +2707,26 @@ item.oil_tar.crack.name=Крекинговая нефтяная смола item.oil_tar.coal.name=Угольная смола item.canister_empty.name=Пустая канистра -item.canister_smear.name=Канистра с промышленным маслом -item.canister_canola.name=Машинная смазка -item.canister_oil.name=Канистра с неочищенной нефтью -item.canister_fuel.name=Канистра с дизелем +item.canister_smear.name=Канистра с промышленным маслом (LEGACY) +item.canister_canola.name=Машинная смазка (LEGACY) +item.canister_oil.name=Канистра с неочищенной нефтью (LEGACY) +item.canister_fuel.name=Канистра с дизелем (LEGACY) item.canister_fuel.desc=Да здравствует носик! -item.canister_kerosene.name=Канистра с керосином -item.canister_reoil.name=Канистра с восстановленным промышленным маслом -item.canister_petroil.name=Канистра с бензином +item.canister_kerosene.name=Канистра с керосином (LEGACY) +item.canister_reoil.name=Канистра с восстановленным промышленным маслом (LEGACY) +item.canister_petroil.name=Канистра с бензином (LEGACY) item.canister_napalm.name=Напалм Б -item.canister_NITAN.name=100-октановое сверхтопливо NITAN© -item.canister_heavyoil.name=Канистра с тяжелой нефтью -item.canister_bitumen.name=Канистра с битумом -item.canister_heatingoil.name=Канистра с мазутом -item.canister_naphtha.name=Канистра тяжелого бензина -item.canister_lightoil.name=Канистра с лёгкой нефтью -item.canister_biofuel.name=Канистра с биотопливом -item.canister_gasoline.name=Канистра с этилированным бензином -item.canister_fracksol.name=Канистра с жидкостью для гидроразрыва пласта -item.canister_ethanol.name=Канистра с этанолом +item.canister_NITAN.name=100-октановое сверхтопливо NITAN© (LEGACY) +item.canister_heavyoil.name=Канистра с тяжелой нефтью (LEGACY) +item.canister_bitumen.name=Канистра с битумом (LEGACY) +item.canister_heatingoil.name=Канистра с мазутом (LEGACY) +item.canister_naphtha.name=Канистра нафты (LEGACY) +item.canister_lightoil.name=Канистра с лёгкой нефтью (LEGACY) +item.canister_biofuel.name=Канистра с биотопливом (LEGACY) +item.canister_gasoline.name=Канистра с этилированным бензином (LEGACY) +item.canister_fracksol.name=Канистра с жидкостью для гидроразрыва пласта (LEGACY) +item.canister_ethanol.name=Канистра с этанолом (LEGACY) +item.canister_full.name=Канистра: item.canister_gasoline.desc=свинец - это друг$впусти друга в свой кровоток$*достаёт пистолет* живо. item.gas_empty.name=Пустой газовый баллон item.gas_full.name=Газовый баллон @@ -4497,6 +4518,7 @@ item.burnt_bark.desc=Кусок коры взорванного золотого item.loot_10.name=Ящик с запчастями от Ракеты 10-го размера item.loot_15.name=Ящик с запчастями от Ракеты 15-го размера item.loot_misc.name=Общий ящик с запчастями от Ракеты +item.parts_legendary.name=Легендарные запчасти item.crystal_horn.name=Кристалльный рог item.crystal_horn.desc=Не настоящий рог. item.crystal_horn.desc.P11=Настоящий рог. @@ -4918,7 +4940,9 @@ tile.block_circuit_tier_5.name=High Performance Supercomputer Calculation Matrix tile.block_circuit_tier_6.name=Spark Supercomputer Calculation Matrix tile.block_electronium.name=§bBlock of Electronium§r tile.block_ferrouranium.name=Reinforced Block of Ferrouranium -tile.block_polymer.name=Block of Polymer +tile.block_polymer.name=Блок полимера +tile.block_bakelite.name=Блок бакелита +tile.block_rubber.name=Блок резины tile.block_saturnite.name=Reinforced Block of Saturnite tile.block_silicon.name=Block of Silicon tile.block_staballoy.name=Reinforced Block of Staballoy