From 778ebe9e415a7676574b14b6eb2d9c1b70906c7e Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 13 Feb 2022 21:39:24 +0100 Subject: [PATCH] siege drill, bugfixes, you know the full program --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../com/hbm/blocks/generic/BlockDepthOre.java | 3 + src/main/java/com/hbm/config/WorldConfig.java | 2 + .../java/com/hbm/crafting/PowderRecipes.java | 4 + .../java/com/hbm/crafting/WeaponRecipes.java | 20 +- .../hbm/entity/mob/EntityBurrowingBase.java | 23 +- .../mob/EntityBurrowingSwingingBase.java | 200 +++++++++++++++++- .../entity/mob/siege/EntitySiegeCraft.java | 61 ++++++ .../entity/mob/siege/EntitySiegeTunneler.java | 48 ++++- .../entity/projectile/EntityRocketHoming.java | 3 +- .../com/hbm/handler/SiegeOrchestrator.java | 13 +- .../java/com/hbm/hazard/HazardRegistry.java | 1 + .../com/hbm/inventory/OreDictManager.java | 16 +- .../com/hbm/inventory/fluid/FluidType.java | 8 + .../inventory/fluid/FluidTypeCombustible.java | 3 +- .../inventory/fluid/FluidTypeFlammable.java | 3 +- .../java/com/hbm/inventory/fluid/Fluids.java | 2 +- .../inventory/recipes/AssemblerRecipes.java | 58 ++--- .../inventory/recipes/anvil/AnvilRecipes.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../hbm/items/special/ItemAlexandrite.java | 64 ++++++ .../java/com/hbm/items/tool/ItemWandD.java | 1 + src/main/java/com/hbm/lib/HbmWorldGen.java | 3 + src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 39 ++-- .../entity/mob/RenderSiegeTunneler.java | 12 +- .../machine/TileEntityCoreAdvanced.java | 2 +- .../machine/TileEntityCoreTitanium.java | 2 +- .../machine/TileEntityMachineKeyForge.java | 38 +--- .../network/TileEntityCableBaseNT.java | 2 +- .../network/TileEntityConverterHeRf.java | 18 +- src/main/resources/assets/hbm/lang/de_DE.lang | 6 + src/main/resources/assets/hbm/lang/en_US.lang | 6 + .../assets/hbm/textures/armor/rpa_arm.png | Bin 839 -> 968 bytes .../assets/hbm/textures/armor/rpa_chest.png | Bin 2606 -> 4316 bytes .../assets/hbm/textures/armor/rpa_helmet.png | Bin 2508 -> 2620 bytes .../assets/hbm/textures/armor/rpa_leg.png | Bin 873 -> 1088 bytes .../hbm/textures/blocks/ore_alexandrite.png | Bin 0 -> 727 bytes .../assets/hbm/textures/blocks/stone.png | Bin 0 -> 223 bytes .../hbm/textures/entity/siege_drill_buff.png | Bin 0 -> 906 bytes .../hbm/textures/entity/siege_drill_clay.png | Bin 0 -> 925 bytes .../hbm/textures/entity/siege_drill_desh.png | Bin 0 -> 912 bytes .../hbm/textures/entity/siege_drill_dnt.png | Bin 0 -> 926 bytes .../hbm/textures/entity/siege_drill_gold.png | Bin 0 -> 910 bytes .../hbm/textures/entity/siege_drill_iron.png | Bin 0 -> 886 bytes .../textures/entity/siege_drill_schrab.png | Bin 0 -> 925 bytes .../textures/entity/siege_drill_silver.png | Bin 0 -> 890 bytes .../hbm/textures/entity/siege_drill_stone.png | Bin 0 -> 920 bytes .../textures/items/chem_icon_SOLID_FUEL.png | Bin 457 -> 478 bytes .../textures/items/chemistry_set_boron.png | Bin 249 -> 245 bytes .../hbm/textures/items/gem_alexandrite.png | Bin 0 -> 2231 bytes .../textures/items/gem_alexandrite.png.mcmeta | 3 + .../assets/hbm/textures/items/gem_base2.png | Bin 0 -> 292 bytes .../assets/hbm/textures/items/gem_base3.png | Bin 0 -> 319 bytes src/main/resources/mcmod.info | 2 +- 55 files changed, 533 insertions(+), 145 deletions(-) create mode 100644 src/main/java/com/hbm/items/special/ItemAlexandrite.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_alexandrite.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/stone.png create mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_buff.png create mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_clay.png create mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_desh.png create mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_dnt.png create mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_gold.png create mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_iron.png create mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_schrab.png create mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_silver.png create mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_stone.png create mode 100644 src/main/resources/assets/hbm/textures/items/gem_alexandrite.png create mode 100755 src/main/resources/assets/hbm/textures/items/gem_alexandrite.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/items/gem_base2.png create mode 100644 src/main/resources/assets/hbm/textures/items/gem_base3.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f35805a69..237cc40fb 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -76,6 +76,7 @@ public class ModBlocks { public static Block ore_cobalt; public static Block ore_cinnebar; public static Block ore_coltan; + public static Block ore_alexandrite; public static Block ore_bedrock_coltan; @@ -1309,6 +1310,7 @@ public class ModBlocks { cluster_depth_iron = new BlockDepthOre().setBlockName("cluster_depth_iron").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_iron"); cluster_depth_titanium = new BlockDepthOre().setBlockName("cluster_depth_titanium").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_titanium"); cluster_depth_tungsten = new BlockDepthOre().setBlockName("cluster_depth_tungsten").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_tungsten"); + ore_alexandrite = new BlockDepthOre().setBlockName("ore_alexandrite").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_alexandrite"); depth_brick = new BlockDepth().setBlockName("depth_brick").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_brick"); depth_tiles = new BlockDepth().setBlockName("depth_tiles").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_tiles"); @@ -2322,6 +2324,7 @@ public class ModBlocks { GameRegistry.registerBlock(cluster_depth_iron, ItemBlockBase.class, cluster_depth_iron.getUnlocalizedName()); GameRegistry.registerBlock(cluster_depth_titanium, ItemBlockBase.class, cluster_depth_titanium.getUnlocalizedName()); GameRegistry.registerBlock(cluster_depth_tungsten, ItemBlockBase.class, cluster_depth_tungsten.getUnlocalizedName()); + GameRegistry.registerBlock(ore_alexandrite, ItemBlockBase.class, ore_alexandrite.getUnlocalizedName()); //Nether depth ores GameRegistry.registerBlock(ore_depth_nether_neodymium, ItemBlockBase.class, ore_depth_nether_neodymium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockDepthOre.java b/src/main/java/com/hbm/blocks/generic/BlockDepthOre.java index df966575a..cfe4c8e4a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDepthOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDepthOre.java @@ -33,6 +33,9 @@ public class BlockDepthOre extends BlockDepth { if(this == ModBlocks.ore_depth_borax) { return ModItems.powder_borax; } + if(this == ModBlocks.ore_alexandrite) { + return ModItems.gem_alexandrite; + } return super.getItemDropped(metadata, rand, fortune); } diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index a5bb5a257..6d5d55fdb 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -35,6 +35,7 @@ public class WorldConfig { public static int titaniumClusterSpawn = 2; public static int aluminiumClusterSpawn = 3; public static int copperClusterSpawn = 4; + public static int alexandriteSpawn = 100; public static int netherUraniumuSpawn = 8; public static int netherTungstenSpawn = 10; @@ -106,6 +107,7 @@ public class WorldConfig { cinnebarSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cinnebarSpawnRate", "Amount of cinnebar ore veins per chunk", 1); cobaltSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cobaltSpawnRate", "Amount of cobalt ore veins per chunk", 2); explosivebubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.19_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk", 8); + alexandriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.20_alexandriteSpawnRate", "Spawns an alexandrite vein every nTH chunk", 100); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index ae62ef24b..2ae095577 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -1,6 +1,8 @@ package com.hbm.crafting; import static com.hbm.inventory.OreDictManager.*; + +import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.main.CraftingManager; @@ -19,7 +21,9 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_power, 5), new Object[] { REDSTONE.dust(), "dustGlowstone", DIAMOND.dust(), NP237.dust(), MAGTUNG.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ballistite, 3), new Object[] { Items.gunpowder, KNO.dust(), Items.sugar }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_dynamite, 2), new Object[] { KNO.dust(), Items.sugar, Blocks.sand, KEY_TOOL_CHEMISTRYSET }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_tnt, 4), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.AROMATICS.getID()), KNO.dust(), KEY_TOOL_CHEMISTRYSET }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ingot_steel_dusted, 1), new Object[] { STEEL.ingot(), COAL.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_bakelite, 2), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.AROMATICS.getID()), new ItemStack(ModItems.fluid_tank_full, 1, Fluids.PETROLEUM.getID()), KEY_TOOL_CHEMISTRYSET }); //Gunpowder CraftingManager.addShapelessAuto(new ItemStack(Items.gunpowder, 3), new Object[] { S.dust(), KNO.dust(), COAL.gem() }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 38cf7aeb8..6ee50f3be 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -77,12 +77,12 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_gold, 1), new Object[] { "SSM", " RW", 'S', GOLD.plate(), 'W', W.ingot(), 'R', ModItems.wire_gold, 'M', ModItems.mechanism_revolver_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_lead, 1), new Object[] { "SSM", " RW", 'S', PB.plate(), 'W', W.ingot(), 'R', ModItems.wire_tungsten, 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_schrabidium, 1), new Object[] { "SSM", " RW", 'S', SA326.block(), 'W', W.ingot(), 'R', ModItems.wire_schrabidium, 'M', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_pip, 1), new Object[] { " G ", "SSP", " TI", 'G', KEY_ANYPANE, 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nopip, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_pip, 1), new Object[] { " G ", "SSP", " TI", 'G', KEY_ANYPANE, 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nopip, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_blackjack, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_silver, 1), new Object[] { "SSP", " TI", 'S', AL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_red, 1), new Object[] { "R ", " B", 'R', ModItems.key_red, 'B', ModItems.gun_revolver_blackjack }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'I', POLYMER.ingot(), 'M', ModItems.mechanism_rifle_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_cursed, 1), new Object[] { "TTM", "SRI", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'R', ModItems.wire_red_copper, 'T', TI.plate(), 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare, 1), new Object[] { "SEM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'E', ModItems.powder_power, 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare2, 1), new Object[] { "SSM", "RRW", 'S', OreDictManager.getReflector(), 'W', W.ingot(), 'R', ModItems.wire_gold, 'M', ModItems.mechanism_special }); @@ -92,7 +92,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bf_ammo, 1), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_thompson, 1), new Object[] { "IIM", " SW", " S ", 'S', IRON.plate(), 'I', STEEL.plate(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', STEEL.ingot(), 'S', POLYMER.ingot(), 'G', ModItems.mechanism_launcher_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', STEEL.ingot(), 'S', ANY_PLASTIC.ingot(), 'G', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uboinik, 1), new Object[] { "IIM", "SPW", 'P', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'S', KEY_STICK, 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_supershotgun, 1), new Object[] { "BBM", "BBM", "AWL", 'B', ModItems.hull_small_steel, 'M', ModItems.mechanism_rifle_2, 'A', ModItems.plate_dalekanium, 'W', ModItems.wire_gold, 'L', KEY_LOG }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_ks23, 1), new Object[] { "PPM", "SWL", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'W', ModItems.wire_tungsten, 'L', KEY_LOG }); @@ -136,17 +136,17 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92_ammo, 1), new Object[] { "PSP", "ESE", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'E', ModItems.powder_spark_mix }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.weaponized_starblaster_cell, 1), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.ACID.getID()), GunB92Cell.getFullCell(), ModItems.wire_copper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi, 1), new Object[] { "SMS", " PB", " P ", 'S', STEEL.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', STEEL.plate(), 'B', ModItems.bolt_dura_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_silencer, 1), new Object[] { "P ", " P ", " U", 'P', POLYMER.ingot(), 'U', ModItems.gun_uzi }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite, 1), new Object[] { "SMS", " PB", " P ", 'S', BIGMT.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', BIGMT.plate(), 'B', ModItems.bolt_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite_silencer, 1), new Object[] { "P ", " P ", " U", 'P', POLYMER.ingot(), 'U', ModItems.gun_uzi_saturnite }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolter, 1), new Object[] { "SSM", "PIP", " I ", 'S', BIGMT.plate(), 'I', BIGMT.ingot(), 'M', ModItems.mechanism_special, 'P', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi_saturnite }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolter, 1), new Object[] { "SSM", "PIP", " I ", 'S', BIGMT.plate(), 'I', BIGMT.ingot(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity, 1), new Object[] { " PI", "BBM", " PI", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity_dual, 1), new Object[] { "BBM", " PI", "BBM", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', STEEL.block(), 'I', POLYMER.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', STEEL.block(), 'I', ANY_PLASTIC.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_avenger, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', BE.block(), 'I', DESH.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lacunae, 1), new Object[] { "TIT", "ILI", "PRP", 'T', ModItems.syringe_taint, 'I', STAR.ingot(), 'L', ModItems.gun_minigun, 'P', ModItems.pellet_rtg, 'R', ModBlocks.machine_rtg_grey }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ModItems.plate_polymer, 'W', ModItems.wire_aluminium }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', POLYMER.ingot() }); + //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', ModItems.bolt_tungsten, 'T', ModItems.tank_steel }); //Legacy ammo recycling @@ -203,7 +203,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_explosive, 6), new Object[] { " I ", "GCL", " P ", 'I', ModItems.ingot_semtex, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_semtex, 4), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_semtex, 4), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_4gauge_titan, 1), new Object[] { ModItems.ammo_4gauge, ModItems.peas }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_4gauge_titan, 1), new Object[] { ModItems.ammo_4gauge, ModItems.nugget_bismuth, ModItems.nugget_tantalium, ModItems.ball_dynamite }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); diff --git a/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java b/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java index 93b9dd0d0..d2c5576b9 100644 --- a/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java +++ b/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java @@ -1,8 +1,7 @@ package com.hbm.entity.mob; import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.DamageSource; import net.minecraft.world.World; /** @@ -12,11 +11,17 @@ import net.minecraft.world.World; public abstract class EntityBurrowingBase extends EntityCreature { protected float airDrag; + protected float airDragY; protected float groundDrag; + protected float groundDragY; public EntityBurrowingBase(World world) { super(world); this.noClip = true; + this.airDrag = 0.995F; + this.airDragY = 0.997F; + this.groundDrag = 0.98F; + this.groundDragY = 0.995F; } /** @@ -28,6 +33,16 @@ public abstract class EntityBurrowingBase extends EntityCreature { return this.height * 0.5F; } + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(this.isEntityInvulnerable() || source == DamageSource.drown || source == DamageSource.inWall) { + return false; + } + + return super.attackEntityFrom(source, amount); + } + /** * No fall and fallstate functions */ @@ -50,9 +65,11 @@ public abstract class EntityBurrowingBase extends EntityCreature { public void moveEntityWithHeading(float strafe, float forward) { float drag = this.groundDrag; + float dragY = this.groundDragY; if(!isEntityInsideOpaqueBlock() && !isInWater() && !handleLavaMovement()) { drag = this.airDrag; + dragY = this.airDragY; } //misnomer, actually just sets the motion, the moving part happens the line after that @@ -60,7 +77,7 @@ public abstract class EntityBurrowingBase extends EntityCreature { moveEntity(this.motionX, this.motionY, this.motionZ); this.motionX *= drag; - this.motionY *= drag; + this.motionY *= dragY; this.motionZ *= drag; } diff --git a/src/main/java/com/hbm/entity/mob/EntityBurrowingSwingingBase.java b/src/main/java/com/hbm/entity/mob/EntityBurrowingSwingingBase.java index 3705ddb3c..eff3ae1a5 100644 --- a/src/main/java/com/hbm/entity/mob/EntityBurrowingSwingingBase.java +++ b/src/main/java/com/hbm/entity/mob/EntityBurrowingSwingingBase.java @@ -1,6 +1,21 @@ package com.hbm.entity.mob; +import java.util.List; + +import com.hbm.entity.mob.ai.EntityAINearestAttackableTargetNT; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IEntityLivingData; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; @@ -14,14 +29,26 @@ import net.minecraft.world.World; */ public abstract class EntityBurrowingSwingingBase extends EntityBurrowingBase { - protected Entity target = null; + protected Entity targetedEntity = null; + protected boolean wasNearGround = false; + public int courseChangeCooldown = 0; + public int aggroCooldown = 0; + public double waypointX; + public double waypointY; + public double waypointZ; + protected ChunkCoordinates spawnPoint = new ChunkCoordinates(); + public boolean lastInGround = false; public EntityBurrowingSwingingBase(World world) { super(world); + this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, null, 128.0D)); } @Override public void onUpdate() { + this.prevRotationYaw = this.rotationYaw; + this.prevRotationPitch = this.rotationPitch; super.onUpdate(); @@ -29,8 +56,26 @@ public abstract class EntityBurrowingSwingingBase extends EntityBurrowingBase { double dy = motionY; double dz = motionZ; float f3 = MathHelper.sqrt_double(dx * dx + dz * dz); - this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(dx, dz) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(dy, f3) * 180.0D / Math.PI); + this.rotationYaw = (float) (Math.atan2(dx, dz) * 180.0D / Math.PI); + this.rotationPitch = (float) (Math.atan2(dy, f3) * 180.0D / Math.PI); + + boolean inGround = isEntityInsideOpaqueBlock(); + + if(this.lastInGround != inGround) { + worldObj.playSoundAtEntity(this, "hbm:block.debris", 1.0F, 1.0F); + + double mod = 0.25D; + + if(inGround) + mod *= -1; + + for(int i = 0; i < 10; i++) { + double dev = 0.05D; + worldObj.spawnParticle("cloud", posX, posY, posZ, motionX * mod + rand.nextGaussian() * dev, motionY * mod + rand.nextGaussian() * dev, motionZ * mod + rand.nextGaussian() * dev); + } + } + + this.lastInGround = inGround; } @Override @@ -39,7 +84,7 @@ public abstract class EntityBurrowingSwingingBase extends EntityBurrowingBase { this.updateEntityActionState(); super.updateAITasks(); - swingingMovement(); + updateSwingingMovement(); } @Override @@ -48,17 +93,158 @@ public abstract class EntityBurrowingSwingingBase extends EntityBurrowingBase { if(!this.worldObj.isRemote && this.worldObj.difficultySetting == EnumDifficulty.PEACEFUL) { setDead(); } - if((this.target != null) && (this.target.isDead)) { - this.target = null; + if((this.targetedEntity != null) && (this.targetedEntity.isDead)) { + this.targetedEntity = null; } if(this.posY < -10.0D) { this.motionY = 1D; } else if(this.posY < 3.0D) { this.motionY = 0.3D; } + + if(this.ticksExisted % 2 == 0) { + attackEntitiesInList(this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(0.5D, 0.5D, 0.5D))); + } + } + + protected void attackEntitiesInList(List targets) { + + for(Entity target : targets) { + if(target instanceof EntityLivingBase && canAttackClass(target.getClass())) { + attackEntityAsMob(target); + } + } + } + + @Override + public boolean attackEntityAsMob(Entity target) { + + boolean hit = target.attackEntityFrom(DamageSource.causeMobDamage(this), (float) getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue()); + + if(hit) { + this.entityAge = 0; + double tx = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; + double tz = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; + double ty = (this.boundingBox.minY + this.boundingBox.maxY) / 2.0D; + double deltaX = target.posX - tx; + double deltaZ = target.posZ - tz; + double deltaY = target.posY - ty; + double knockback = 0.5 * (deltaX * deltaX + deltaZ * deltaZ + deltaY * deltaY + 0.1D); + target.addVelocity(deltaX / knockback, deltaY / knockback, deltaZ / knockback); + } + + return hit; } - protected void swingingMovement() { + protected void updateSwingingMovement() { + + double deltaX = this.waypointX - this.posX; + double deltaY = this.waypointY - this.posY; + double deltaZ = this.waypointZ - this.posZ; + double delta = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); + if(this.courseChangeCooldown-- <= 0) { + + this.courseChangeCooldown += this.getRNG().nextInt(5) + 5; + + double speed = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue(); + + if(!this.canSupportMovement()) { + speed /= 4D; + } + + this.motionX += deltaX / delta * speed; + this.motionY += deltaY / delta * speed; + this.motionZ += deltaZ / delta * speed; + } + + if(!this.canSupportMovement() && !this.wasNearGround) { + this.motionY -= this.getGravity(); + } + + this.aggroCooldown--; + + if(this.getAttackTarget() != null) { + + if(this.aggroCooldown <= 0) { + this.targetedEntity = this.getAttackTarget(); + this.aggroCooldown = getAggroCooldown(); + } + + } else if(this.targetedEntity == null) { + this.waypointX = this.spawnPoint.posX - 50 + this.getRNG().nextInt(100); + this.waypointY = this.spawnPoint.posY - 30 + this.getRNG().nextInt(60); + this.waypointZ = this.spawnPoint.posZ - 50 + this.getRNG().nextInt(100); + } + + this.rotationYaw = -(float) -(Math.atan2(this.motionX, this.motionZ) * 180.0F / Math.PI); + this.rotationPitch = (float) -(Math.atan2(this.motionY, MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / Math.PI); + + double range = 100; + if(this.targetedEntity != null && this.targetedEntity.getDistanceSqToEntity(this) < range * range) { + + if(this.canSupportMovement() || this.wasNearGround) { + + this.waypointX = this.targetedEntity.posX; + this.waypointY = this.targetedEntity.posY + this.targetedEntity.height * 0.5; + this.waypointZ = this.targetedEntity.posZ; + + int surface = worldObj.getHeightValue(MathHelper.floor_double(this.waypointX), MathHelper.floor_double(this.waypointZ)); + + if(this.getRNG().nextInt(80) == 0 && this.posY > surface && !this.canSupportMovement()) { + this.wasNearGround = false; + } + + } else { + + this.waypointX = this.targetedEntity.posX; + this.waypointY = 10.0D; + this.waypointZ = this.targetedEntity.posZ; + + if(this.posY < 15.0D) { + this.wasNearGround = true; + } + } + } else { + this.waypointX = this.spawnPoint.posX - 20 + this.getRNG().nextInt(40); + this.waypointY = this.spawnPoint.posY - 5 + this.getRNG().nextInt(100); + this.waypointZ = this.spawnPoint.posZ - 20 + this.getRNG().nextInt(40); + } + } + + protected double getGravity() { + return 0.01; + } + + protected int getAggroCooldown() { + return 20; + } + + @Override + public void addVelocity(double x, double y, double z) { } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("spawnX", this.spawnPoint.posX); + nbt.setInteger("spawnY", this.spawnPoint.posY); + nbt.setInteger("spawnZ", this.spawnPoint.posZ); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.spawnPoint.set(nbt.getInteger("spawnX"), nbt.getInteger("spawnY"), nbt.getInteger("spawnZ")); + } + + public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) { + + int x = MathHelper.floor_double(this.posX); + int y = MathHelper.floor_double(this.posY); + int z = MathHelper.floor_double(this.posZ); + + this.spawnPoint.set(x, y, z); + + return super.onSpawnWithEgg(data); } } diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java index 9df56e2cf..7492c2a4c 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java @@ -4,8 +4,11 @@ import java.util.List; import com.hbm.entity.mob.EntityUFOBase; import com.hbm.entity.projectile.EntitySiegeLaser; +import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.handler.SiegeOrchestrator; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.util.ContaminationUtil; @@ -18,9 +21,12 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.boss.IBossDisplayData; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EntityDamageSource; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -35,6 +41,57 @@ public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData this.isImmuneToFire = true; this.ignoreFrustumCheck = true; } + + @Override + public boolean attackEntityFrom(DamageSource source, float damage) { + + if(this.isEntityInvulnerable()) + return false; + + if(SiegeOrchestrator.isSiegeMob(source.getEntity())) + return false; + + SiegeTier tier = this.getTier(); + + if(tier.fireProof && source.isFireDamage()) { + this.extinguish(); + return false; + } + + //noFF can't be harmed by other mobs + if(tier.noFriendlyFire && source instanceof EntityDamageSource && !(((EntityDamageSource) source).getEntity() instanceof EntityPlayer)) + return false; + + damage -= tier.dt; + + if(damage < 0) { + worldObj.playSoundAtEntity(this, "random.break", 5F, 1.0F + rand.nextFloat() * 0.5F); + return false; + } + + damage *= (1F - tier.dr); + + return super.attackEntityFrom(source, damage); + } + + @Override + protected void onDeathUpdate() { + + this.beamCountdown = 200; + this.setBeam(false); + + this.motionY -= 0.05D; + + if(this.deathTime == 19 && !worldObj.isRemote) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tinytot"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(this.dimension, posX, posY, posZ, 250)); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + } + + super.onDeathUpdate(); + } @Override protected void entityInit() { @@ -129,6 +186,10 @@ public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData double y = this.target.posY + this.target.height * 0.5; double z = this.target.posZ; this.setLockon(x, y, z); + + if(this.beamCountdown == 110) { + worldObj.playSoundAtEntity(this.target, "hbm:weapon.stingerLockOn", 2F, 0.75F); + } } if(this.beamCountdown >= 40 && this.beamCountdown < 100) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java index 98d004c4b..da940e4b8 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java @@ -1,14 +1,16 @@ package com.hbm.entity.mob.siege; import com.hbm.entity.mob.EntityBurrowingSwingingBase; +import com.hbm.handler.SiegeOrchestrator; -import net.minecraft.entity.EntityCreature; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EntityDamageSource; import net.minecraft.world.World; //cursed code ahead @@ -25,6 +27,40 @@ public class EntitySiegeTunneler extends EntityBurrowingSwingingBase { public EntitySiegeTunneler(World world) { super(world); this.tasks.addTask(0, new EntityAISwimming(this)); + this.setSize(1F, 1F); + this.yOffset = 0.5F; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float damage) { + + if(this.isEntityInvulnerable()) + return false; + + if(SiegeOrchestrator.isSiegeMob(source.getEntity())) + return false; + + SiegeTier tier = this.getTier(); + + if(tier.fireProof && source.isFireDamage()) { + this.extinguish(); + return false; + } + + //noFF can't be harmed by other mobs + if(tier.noFriendlyFire && source instanceof EntityDamageSource && !(((EntityDamageSource) source).getEntity() instanceof EntityPlayer)) + return false; + + damage -= tier.dt; + + if(damage < 0) { + //worldObj.playSoundAtEntity(this, "random.break", 5F, 1.0F + rand.nextFloat() * 0.5F); + return false; + } + + damage *= (1F - tier.dr); + + return super.attackEntityFrom(source, damage); } @Override @@ -36,15 +72,17 @@ public class EntitySiegeTunneler extends EntityBurrowingSwingingBase { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); + this.getAttributeMap().registerAttribute(SharedMonsterAttributes.attackDamage); this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.15D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(1.0D); } public void setTier(SiegeTier tier) { this.getDataWatcher().updateObject(12, tier.id); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).applyModifier(new AttributeModifier("Tier Speed Mod", tier.speedMod, 1)); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Tier Damage Mod", tier.damageMod, 1)); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health * 0.5); this.setHealth(this.getMaxHealth()); } diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java index b66d19177..908859d79 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java @@ -303,8 +303,7 @@ public class EntityRocketHoming extends Entity implements IProjectile Entity entity = null; List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - System.out.println(list); - double d0 = 0.0D; + double d0 = 0.0D; int i; float f1; diff --git a/src/main/java/com/hbm/handler/SiegeOrchestrator.java b/src/main/java/com/hbm/handler/SiegeOrchestrator.java index 9cf5ce124..d1c7fd725 100644 --- a/src/main/java/com/hbm/handler/SiegeOrchestrator.java +++ b/src/main/java/com/hbm/handler/SiegeOrchestrator.java @@ -1,7 +1,9 @@ package com.hbm.handler; import com.hbm.entity.missile.EntitySiegeDropship; +import com.hbm.entity.mob.siege.EntitySiegeCraft; import com.hbm.entity.mob.siege.EntitySiegeSkeleton; +import com.hbm.entity.mob.siege.EntitySiegeTunneler; import com.hbm.entity.mob.siege.EntitySiegeUFO; import com.hbm.entity.mob.siege.EntitySiegeZombie; import com.hbm.entity.mob.siege.SiegeTier; @@ -140,12 +142,15 @@ public class SiegeOrchestrator { float f = world.rand.nextFloat(); - if(f < 0.1F) { + if(target != null && f < 0.25F && target.posY + 15 < y) { + entity = new EntitySiegeTunneler(world); + ((EntitySiegeTunneler)entity).setTier(tier); + } else if(f < 0.1F) { entity = new EntitySiegeUFO(world); ((EntitySiegeUFO)entity).setTier(tier); } else if(f < 0.4F) { - entity = new EntitySiegeUFO(world); - ((EntitySiegeUFO)entity).setTier(tier); + entity = new EntitySiegeSkeleton(world); + ((EntitySiegeSkeleton)entity).setTier(tier); } else { entity = new EntitySiegeZombie(world); ((EntitySiegeZombie)entity).setTier(tier); @@ -178,6 +183,8 @@ public class SiegeOrchestrator { if(entity instanceof EntitySiegeZombie) return true; if(entity instanceof EntitySiegeSkeleton) return true; if(entity instanceof EntitySiegeUFO) return true; + if(entity instanceof EntitySiegeTunneler) return true; + if(entity instanceof EntitySiegeCraft) return true; return false; } diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 711297671..54b95a577 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -169,6 +169,7 @@ public class HazardRegistry { HazardSystem.register(demon_core_open, makeData(RADIATION, 5F)); HazardSystem.register(demon_core_closed, makeData(RADIATION, 100_000F)); + HazardSystem.register(lamp_demon, makeData(RADIATION, 100_000F)); HazardSystem.register(cell_tritium, makeData(RADIATION, 0.001F)); HazardSystem.register(cell_sas3, makeData().addEntry(RADIATION, sas3).addEntry(BLINDING, 3F)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 735d4c36d..ea9da8e23 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -223,6 +223,8 @@ public class OreDictManager { public static final DictFrame ANY_PLASTIC = new DictFrame("AnyPlastic"); //using the Any prefix means that it's jsut the secondary prefix, and that shape prefixes are applicable public static final DictFrame ANY_GUNPOWDER = new DictFrame("AnyPropellant"); public static final DictFrame ANY_SMOKELESS = new DictFrame("AnySmokeless"); + public static final DictFrame ANY_PLASTICEXPLOSIVE = new DictFrame("AnyPlasticexplosive"); + public static final DictFrame ANY_HIGHEXPLOSIVE = new DictFrame("AnyHighexplosive"); public static final DictFrame ANY_COKE = new DictFrame("AnyCoke", "Coke"); public static final DictFrame ANY_CONCRETE = new DictFrame("Concrete"); //no any prefix means that any has to be appended with the any() or anys() getters, registering works with the any (i.e. no shape) setter public static final DictFrame ANY_TAR = new DictFrame("Tar"); @@ -370,12 +372,14 @@ public class OreDictManager { /* * COLLECTIONS */ - ANY_PLASTIC .ingot(ingot_polymer, ingot_bakelite).dust(powder_polymer, powder_bakelite); - ANY_GUNPOWDER .dust(Items.gunpowder, ballistite, cordite); - ANY_SMOKELESS .dust(ballistite, cordite); - ANY_CONCRETE .any(concrete, concrete_smooth, concrete_colored, concrete_asbestos, ducrete, ducrete_smooth); - ANY_COKE .gem(fromAll(coke, EnumCokeType.class)); - ANY_TAR .any(fromAll(oil_tar, EnumTarType.class)); + ANY_PLASTIC .ingot(ingot_polymer, ingot_bakelite).dust(powder_polymer, powder_bakelite); + ANY_GUNPOWDER .dust(Items.gunpowder, ballistite, cordite); + ANY_SMOKELESS .dust(ballistite, cordite); + ANY_PLASTICEXPLOSIVE .ingot(ingot_semtex); + ANY_HIGHEXPLOSIVE .ingot(ball_tnt); + ANY_CONCRETE .any(concrete, concrete_smooth, concrete_colored, concrete_asbestos, ducrete, ducrete_smooth); + ANY_COKE .gem(fromAll(coke, EnumCokeType.class)); + ANY_TAR .any(fromAll(oil_tar, EnumTarType.class)); OreDictionary.registerOre(KEY_OIL_TAR, fromOne(oil_tar, EnumTarType.CRUDE)); OreDictionary.registerOre(KEY_CRACK_TAR, fromOne(oil_tar, EnumTarType.CRACK)); diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 5968400e8..e857d5f15 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -45,6 +45,14 @@ public class FluidType { this.id = Fluids.registerSelf(this); } + public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) { + this(name, color, p, f, r, symbol); + + if(this.id != forcedId) { + throw new IllegalStateException("Howdy! I am a safeguard put into place by Bob to protect you, the player, from Bob's dementia. For whatever reason, Bob decided to either add or remove a fluid in a way that shifts the IDs, despite the entire system being built to prevent just that. Instead of people's fluids getting jumbled for the 500th time, I am here to prevent the game from starting entirely. The expected ID was " + forcedId + ", but turned out to be " + this.id + "."); + } + } + public FluidType setTemp(int temperature) { this.temperature = temperature; return this; diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java b/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java index 493171e99..3f1702cd3 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java @@ -2,7 +2,6 @@ package com.hbm.inventory.fluid; import java.util.List; -import com.hbm.inventory.fluid.FluidType.FluidTrait; import com.hbm.render.util.EnumSymbol; import com.hbm.util.BobMathUtil; @@ -31,7 +30,7 @@ public class FluidTypeCombustible extends FluidTypeFlammable { info.add(EnumChatFormatting.GOLD + "[Combustible]"); if(combustionEnergy > 0) { - info.add(EnumChatFormatting.GOLD + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(combustionEnergy) + "HE " + EnumChatFormatting.GOLD + "per bucket used in an engine"); + info.add(EnumChatFormatting.GOLD + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(combustionEnergy) + "HE " + EnumChatFormatting.GOLD + "per bucket"); info.add(EnumChatFormatting.GOLD + "Fuel grade: " + EnumChatFormatting.RED + this.fuelGrade.getGrade()); } } diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java b/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java index 5ce3f8afb..fbd0aaf9a 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java @@ -2,7 +2,6 @@ package com.hbm.inventory.fluid; import java.util.List; -import com.hbm.inventory.fluid.FluidType.FluidTrait; import com.hbm.render.util.EnumSymbol; import com.hbm.util.BobMathUtil; @@ -30,6 +29,6 @@ public class FluidTypeFlammable extends FluidType { info.add(EnumChatFormatting.YELLOW + "[Flammable]"); if(energy > 0) - info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "HE " + EnumChatFormatting.YELLOW + "per bucket burned"); + info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "HE " + EnumChatFormatting.YELLOW + "per bucket"); } } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index afee6285e..e60258b26 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -169,7 +169,7 @@ public class Fluids { DIESEL_CRACK = new FluidTypeCombustible( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000); AROMATICS = new FluidTypeFlammable( "AROMATICS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); UNSATURATEDS = new FluidTypeFlammable( "UNSATURATEDS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); - SALIENT = new FluidType( "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); + SALIENT = new FluidType(69, "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); // ^ ^ ^ ^ ^ ^ ^ ^ diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 39ec3d7bb..54ec7ec31 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -153,14 +153,14 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.asbestos_cloth, 4), new AStack[] {new OreDictStack(ASBESTOS.ingot(), 2), new ComparableStack(Items.string, 6), new ComparableStack(Blocks.wool, 1), },50); makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 6), new ComparableStack(Items.paper, 1), },50); makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModItems.coil_tungsten, 1), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.motor, 1), },200); - makeRecipe(new ComparableStack(ModItems.centrifuge_tower, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },150); + makeRecipe(new ComparableStack(ModItems.centrifuge_tower, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },150); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new ComparableStack(ModItems.board_copper, 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); makeRecipe(new ComparableStack(ModItems.thermo_unit_empty, 1), new AStack[] {new ComparableStack(ModItems.coil_copper_torus, 3), new OreDictStack(STEEL.ingot(), 3), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.plate_polymer, 12), },100); makeRecipe(new ComparableStack(ModItems.levitation_unit, 1), new AStack[] {new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.coil_tungsten, 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.nugget_schrabidium, 2), },100); makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(TI.plate(), 6), },100); - makeRecipe(new ComparableStack(ModItems.telepad, 1), new AStack[] {new OreDictStack(POLYMER.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.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); @@ -194,8 +194,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_small_steel, 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.plate_polymer, 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); makeRecipe(new ComparableStack(ModItems.sat_head_scanner, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.magnetron, 6), new ComparableStack(ModItems.coil_advanced_torus, 2), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.plate_polymer, 6), new ComparableStack(Items.diamond, 1), },400); makeRecipe(new ComparableStack(ModItems.sat_head_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.wire_red_copper, 16), new ComparableStack(ModItems.coil_gold, 3), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(Items.diamond, 1), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(POLYMER.ingot(), 6), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.board_copper, 24), new ComparableStack(ModItems.circuit_targeting_tier5, 2), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); - makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 32), new OreDictStack(POLYMER.ingot(), 48), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.crystal_xen, 1), new OreDictStack(STAR.ingot(), 7), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.circuit_targeting_tier6, 2), },1000); + makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 6), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.board_copper, 24), new ComparableStack(ModItems.circuit_targeting_tier5, 2), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); + makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 48), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.crystal_xen, 1), new OreDictStack(STAR.ingot(), 7), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.circuit_targeting_tier6, 2), },1000); makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.ordinal()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.ordinal()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.plate_polymer, 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.ordinal()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.plate_polymer, 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); @@ -224,19 +224,19 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.pellet_advanced, 1), new AStack[] {new OreDictStack(DESH.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); makeRecipe(new ComparableStack(ModItems.upgrade_template, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new OreDictStack(IRON.plate(), 4), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_copper, 6), },100); makeRecipe(new ComparableStack(ModItems.upgrade_speed_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(MINGRADE.dust(), 4), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_speed_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_1, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_speed_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_1, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_speed_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_2, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_effect_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(DURA.dust(), 4), new OreDictStack(STEEL.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_effect_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_effect_1, 1), new OreDictStack(DURA.dust(), 2), new OreDictStack(STEEL.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_effect_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_effect_1, 1), new OreDictStack(DURA.dust(), 2), new OreDictStack(STEEL.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_effect_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_effect_2, 1), new OreDictStack(DURA.dust(), 2), new OreDictStack(STEEL.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_power_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(LAPIS.dust(), 4), new ComparableStack(Items.glowstone_dust, 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_power_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_power_1, 1), new OreDictStack(LAPIS.dust(), 2), new ComparableStack(Items.glowstone_dust, 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_power_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_power_1, 1), new OreDictStack(LAPIS.dust(), 2), new ComparableStack(Items.glowstone_dust, 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_power_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_power_2, 1), new OreDictStack(LAPIS.dust(), 2), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_fortune_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(DIAMOND.dust(), 4), new OreDictStack(IRON.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_fortune_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_1, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_fortune_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_1, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_fortune_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_2, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(POLYMER.dust(), 4), new OreDictStack(W.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_1, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_1, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_2, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_radius, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(DIAMOND.dust(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_health, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(TI.dust(), 4), },500); @@ -258,15 +258,15 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.cmb_brick, 8), new AStack[] {new OreDictStack(CMB.ingot(), 1), new OreDictStack(CMB.plate(), 8), },100); makeRecipe(new ComparableStack(ModBlocks.cmb_brick_reinforced, 8), new AStack[] {new ComparableStack(ModBlocks.block_magnetized_tungsten, 4), new ComparableStack(ModBlocks.brick_concrete, 4), new ComparableStack(ModBlocks.cmb_brick, 1), new OreDictStack(STEEL.plate(), 4), },200); makeRecipe(new ComparableStack(ModBlocks.seal_frame, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(REDSTONE.dust(), 2), new ComparableStack(ModBlocks.steel_roof, 5), },50); - makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(POLYMER.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModBlocks.steel_roof, 5), },100); + makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModBlocks.steel_roof, 5), },100); makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(IRON.ingot(), 4), new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 8), },250); makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 8), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.wire_red_copper, 32) },300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(Blocks.piston, 4), new OreDictStack(STEEL.ingot(), 6), new OreDictStack(MINGRADE.ingot(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 6), },200); makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 3), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(POLYMER.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12), new OreDictStack(SA326.ingot(), 2), new ComparableStack(ModItems.wire_schrabidium, 4), },800); makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 8), },1600); makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2), new ComparableStack(ModBlocks.red_wire_coated, 1), },200); @@ -281,11 +281,11 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(TCALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(TCALLOY.ingot(), 12), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(STEEL.ingot(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(POLYMER.ingot(), 4), new ComparableStack(ModItems.motor, 3), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 6), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(CMB.plate(), 4), new ComparableStack(ModItems.telepad, 1), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), new OreDictStack(TI.ingot(), 24), new OreDictStack(ALLOY.plate(), 18), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); - makeRecipe(new ComparableStack(ModBlocks.machine_combine_factory, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(POLYMER.ingot(), 6), new OreDictStack(TI.plate(), 4), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.coil_advanced_alloy, 8), new ComparableStack(ModItems.coil_tungsten, 4), new OreDictStack(MAGTUNG.ingot(), 12), },150); + makeRecipe(new ComparableStack(ModBlocks.machine_combine_factory, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(TI.plate(), 4), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.coil_advanced_alloy, 8), new ComparableStack(ModItems.coil_tungsten, 4), new OreDictStack(MAGTUNG.ingot(), 12), },150); makeRecipe(new ComparableStack(ModBlocks.factory_advanced_hull, 1), new AStack[] {new OreDictStack(ALLOY.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.wire_advanced_alloy, 6), },50); makeRecipe(new ComparableStack(ModBlocks.factory_advanced_furnace, 1), new AStack[] {new OreDictStack(ALLOY.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_advanced_alloy, 2), },100); makeRecipe(new ComparableStack(ModBlocks.factory_advanced_core, 1), new AStack[] {new OreDictStack(ALLOY.ingot(), 6), new OreDictStack(ALLOY.plate(), 6), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_advanced_alloy, 2), new ComparableStack(ModItems.motor, 16), new ComparableStack(Blocks.piston, 6), },100); @@ -319,7 +319,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.wire_gold, 6), },250); makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.thermo_unit_endo, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.wire_gold, 6), },250); makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.thermo_unit_exo, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.wire_gold, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(POLYMER.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); + makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); //makeRecipe(new ComparableStack(ModBlocks.turret_light, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new ComparableStack(ModItems.pipes_steel, 2), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier2, 2), },200); //makeRecipe(new ComparableStack(ModBlocks.turret_heavy, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(AL.ingot(), 4), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.hull_small_steel, 1), new OreDictStack(MINGRADE.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier2, 3), },250); @@ -347,7 +347,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.missile_volcano, 1), new AStack[] {new ComparableStack(ModItems.warhead_volcano, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); makeRecipe(new ComparableStack(ModItems.missile_endo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_endo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); makeRecipe(new ComparableStack(ModItems.missile_exo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_exo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); - makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(POLYMER.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); + makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo, 24), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(REDSTONE.dust(), 1), new ComparableStack(Items.glowstone_dust, 1), },50); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo2, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(REDSTONE.dust(), 7), new ComparableStack(ModItems.powder_power, 3), },200); makeRecipe(new ComparableStack(ModItems.grenade_fire, 1), new AStack[] {new ComparableStack(ModItems.grenade_frag, 1), new OreDictStack(P_RED.dust(), 1), new OreDictStack(CU.plate(), 2), },150); @@ -361,7 +361,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.grenade_schrabidium, 1), new AStack[] {new ComparableStack(ModItems.grenade_flare, 1), new OreDictStack(SA326.dust(), 1), new OreDictStack(OreDictManager.getReflector(), 2), },300); makeRecipe(new ComparableStack(ModItems.grenade_nuclear, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new OreDictStack(STEEL.plate(), 1), new OreDictStack(PU239.nugget(), 2), new ComparableStack(ModItems.wire_red_copper, 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_zomg, 1), new AStack[] {new ComparableStack(ModItems.plate_paa, 3), new OreDictStack(OreDictManager.getReflector(), 1), new ComparableStack(ModItems.coil_magnetized_tungsten, 3), new ComparableStack(ModItems.powder_power, 3), },300); - makeRecipe(new ComparableStack(ModItems.grenade_black_hole, 1), new AStack[] {new OreDictStack(POLYMER.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1), },500); + makeRecipe(new ComparableStack(ModItems.grenade_black_hole, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1), },500); makeRecipe(new ComparableStack(ModItems.gadget_explosive, 1), new AStack[] {new ComparableStack(Blocks.tnt, 3), new OreDictStack(STEEL.plate(), 2), new OreDictStack(AL.plate(), 4), new ComparableStack(ModItems.wire_gold, 3), },200); makeRecipe(new ComparableStack(ModItems.gadget_wireing, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.wire_gold, 12), },100); makeRecipe(new ComparableStack(ModItems.gadget_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 7), new OreDictStack(U238.nugget(), 3), },200); @@ -388,7 +388,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 6), new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.crystal_diamond, 1)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 24), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModItems.crystal_redstone, 5), new ComparableStack(ModBlocks.machine_lithium_battery)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_base, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 12), new OreDictStack(STEEL.plate(), 28), new ComparableStack(ModBlocks.steel_scaffold, 30), new ComparableStack(ModBlocks.steel_grate, 8), new ComparableStack(ModBlocks.barrel_steel, 2)}, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 16), new OreDictStack(POLYMER.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); @@ -459,7 +459,7 @@ public class AssemblerRecipes { new OreDictStack(W.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), - new OreDictStack(POLYMER.ingot(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.circuit_red_copper, 8), new ComparableStack(ModItems.circuit_bismuth, 1) }, 600); @@ -508,7 +508,7 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), - new OreDictStack(POLYMER.ingot(), 24), + new OreDictStack(ANY_PLASTIC.ingot(), 24), new ComparableStack(ModItems.plate_polymer, 64), new ComparableStack(ModItems.board_copper, 8), new ComparableStack(ModItems.circuit_red_copper, 8), @@ -668,7 +668,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.turret_tauon, 1), new AStack[] { new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(POLYMER.ingot(), 4), + new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 1), new ComparableStack(ModItems.motor_desh, 1), @@ -683,7 +683,7 @@ public class AssemblerRecipes { new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 1), - new OreDictStack(POLYMER.ingot(), 2), + new OreDictStack(ANY_PLASTIC.ingot(), 2), new ComparableStack(ModItems.hull_small_steel, 8), new ComparableStack(ModItems.mechanism_launcher_2, 1), new ComparableStack(ModBlocks.crate_steel, 1), @@ -741,7 +741,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_lithium_battery, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 24), - new OreDictStack(POLYMER.ingot(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 64), new ComparableStack(ModItems.coil_advanced_torus, 16), @@ -842,7 +842,7 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), - new OreDictStack(POLYMER.ingot(), 24), + new OreDictStack(ANY_PLASTIC.ingot(), 24), new ComparableStack(ModItems.plate_polymer, 64), new ComparableStack(ModItems.board_copper, 8), new ComparableStack(ModItems.circuit_red_copper, 8), @@ -862,7 +862,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.hadron_core, 1), new AStack[] { new ComparableStack(ModBlocks.hadron_coil_alloy, 24), new OreDictStack(STEEL.ingot(), 8), - new OreDictStack(POLYMER.ingot(), 16), + new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(TCALLOY.ingot(), 8), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.circuit_schrabidium, 5), @@ -874,7 +874,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_battery, 3), new ComparableStack(ModBlocks.steel_scaffold, 10), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(POLYMER.ingot(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.circuit_red_copper, 5), new ComparableStack(ModItems.circuit_tantalium, 15), }, 200); @@ -883,7 +883,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModBlocks.steel_scaffold, 10), new OreDictStack(STEEL.ingot(), 24), - new OreDictStack(POLYMER.ingot(), 12), + new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.circuit_tantalium, 25), }, 200); @@ -892,7 +892,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_lithium_battery, 5), new ComparableStack(ModBlocks.steel_scaffold, 24), new OreDictStack(STEEL.ingot(), 32), - new OreDictStack(POLYMER.ingot(), 24), + new OreDictStack(ANY_PLASTIC.ingot(), 24), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.upgrade_power_3, 3), new ComparableStack(ModItems.circuit_tantalium, 100), @@ -914,7 +914,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.steel_scaffold, 16), new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.tank_steel, 3), - new OreDictStack(POLYMER.ingot(), 4), + new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(NB.ingot(), 2), new ComparableStack(ModItems.catalyst_clay, 12), }, 300); 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 cf49930bc..5dda19898 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -147,7 +147,7 @@ public class AnvilRecipes { new AStack[] {new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus)}, new AnvilOutput(new ItemStack(ModItems.motor, 2))).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(POLYMER.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)}, + new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)}, new AnvilOutput(new ItemStack(ModItems.motor_desh, 1))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -173,7 +173,7 @@ public class AnvilRecipes { new AStack[] { new OreDictStack(STEEL.ingot(), 6), new OreDictStack(IRON.plate(), 8), - new OreDictStack(POLYMER.ingot(), 4), + new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.turbine_titanium, 1), new ComparableStack(ModItems.thermo_element, 3), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8c481e882..25487dab4 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -371,6 +371,7 @@ public class ModItems { public static Item gem_tantalium; public static Item gem_volcanic; + public static Item gem_alexandrite; public static Item powder_lead; public static Item powder_tantalium; @@ -2837,6 +2838,7 @@ public class ModItems { crystal_osmiridium = new Item().setUnlocalizedName("crystal_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_osmiridium"); gem_tantalium = new ItemCustomLore().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); gem_volcanic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_volcanic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_volcanic"); + gem_alexandrite = new ItemAlexandrite().setUnlocalizedName("gem_alexandrite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_alexandrite"); powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead"); powder_tantalium = new ItemCustomLore().setUnlocalizedName("powder_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tantalium"); @@ -5889,6 +5891,7 @@ public class ModItems { GameRegistry.registerItem(crystal_osmiridium, crystal_osmiridium.getUnlocalizedName()); GameRegistry.registerItem(gem_tantalium, gem_tantalium.getUnlocalizedName()); GameRegistry.registerItem(gem_volcanic, gem_volcanic.getUnlocalizedName()); + GameRegistry.registerItem(gem_alexandrite, gem_alexandrite.getUnlocalizedName()); //Fragments GameRegistry.registerItem(fragment_neodymium, fragment_neodymium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemAlexandrite.java b/src/main/java/com/hbm/items/special/ItemAlexandrite.java new file mode 100644 index 000000000..73e55391a --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemAlexandrite.java @@ -0,0 +1,64 @@ +package com.hbm.items.special; + +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.texture.TextureUtil; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.world.EnumSkyBlock; + +public class ItemAlexandrite extends Item { + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister register) { + if(register instanceof TextureMap) { + TextureMap map = (TextureMap) register; + TextureAlexandrite gemTexture = new TextureAlexandrite(this.getIconString()); + map.setTextureEntry(this.getIconString(), gemTexture); + this.itemIcon = gemTexture; + } else { + this.itemIcon = register.registerIcon(this.getIconString()); + } + } + + @SideOnly(Side.CLIENT) + public class TextureAlexandrite extends TextureAtlasSprite { + + protected TextureAlexandrite(String texture) { + super(texture); + } + + private int lastLight = 0; + + @Override + public void updateAnimation() { + + if(Minecraft.getMinecraft().theWorld == null) + return; + + EntityPlayer player = MainRegistry.proxy.me(); + + if(player == null) + return; + + int x = (int) Math.floor(player.posX); + int y = (int) Math.floor(player.posY); + int z = (int) Math.floor(player.posZ); + + int light = player.worldObj.getSavedLightValue(EnumSkyBlock.Block, x, y, z); + + if(light != lastLight) { + lastLight = light; + + this.frameCounter = light; + TextureUtil.uploadTextureMipmap((int[][]) this.framesTextureData.get(this.frameCounter), this.width, this.height, this.originX, this.originY, false, false); + } + } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index b8820fd55..dd61128ba 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -29,6 +29,7 @@ public class ItemWandD extends Item { EntitySiegeTunneler tunneler = new EntitySiegeTunneler(world); tunneler.setPosition(pos.blockX, pos.blockY + 1, pos.blockZ); + tunneler.onSpawnWithEgg(null); world.spawnEntityInWorld(tunneler); //CellularDungeonFactory.meteor.generate(world, x, y, z, world.rand); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 2662fea0a..a5442ede4 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -75,6 +75,9 @@ public class HbmWorldGen implements IWorldGenerator { if(WorldConfig.explosivebubbleSpawn > 0 && rand.nextInt(WorldConfig.explosivebubbleSpawn) == 0) DungeonToolbox.generateOre(world, rand, i, j, 1, 32, 30, 10, ModBlocks.gas_explosive, 1); + if(WorldConfig.alexandriteSpawn > 0 && rand.nextInt(WorldConfig.alexandriteSpawn) == 0) + DungeonToolbox.generateOre(world, rand, i, j, 1, 3, 10, 5, ModBlocks.ore_alexandrite); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_iron, rand, 24); DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_titanium, rand, 32); DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_tungsten, rand, 32); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 035718e67..ed3c39984 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 (4130H1)"; + public static final String VERSION = "1.0.27 BETA (4144)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index f23e51ec0..e8df39f6c 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -73,7 +73,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.bolt_tungsten, 4), new Object[] { "D", "D", 'D', W.ingot() }); addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', ModItems.bolt_dura_steel, 'T', ModItems.bolt_tungsten, 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.flint, 'O', ModBlocks.gravel_obsidian }); - addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', POLYMER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', FIBER.ingot()}); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', ASBESTOS.ingot()}); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "SWS", 'S', Items.string, 'W', Blocks.wool }); @@ -83,7 +83,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.marker_structure, 1), new Object[] { "L", "G", "R", 'L', LAPIS.dust(), 'G', Items.glowstone_dust, 'R', Blocks.redstone_torch }); addRecipeAuto(new ItemStack(ModItems.circuit_raw, 1), new Object[] { "A", "R", "S", 'S', STEEL.plate(), 'R', REDSTONE.dust(), 'A', ModItems.wire_aluminium }); - addRecipeAuto(new ItemStack(ModItems.circuit_bismuth_raw, 1), new Object[] { "RPR", "ABA", "RPR", 'R', REDSTONE.dust(), 'P', POLYMER.ingot(), 'A', (GeneralConfig.enable528 ? ModItems.circuit_tantalium : ASBESTOS.ingot()), 'B', ModItems.ingot_bismuth }); + addRecipeAuto(new ItemStack(ModItems.circuit_bismuth_raw, 1), new Object[] { "RPR", "ABA", "RPR", 'R', REDSTONE.dust(), 'P', ANY_PLASTIC.ingot(), 'A', (GeneralConfig.enable528 ? ModItems.circuit_tantalium : ASBESTOS.ingot()), 'B', ModItems.ingot_bismuth }); addRecipeAuto(new ItemStack(ModItems.circuit_tantalium_raw, 1), new Object[] { "RWR", "PTP", "RWR", 'R', REDSTONE.dust(), 'W', ModItems.wire_gold, 'P', CU.plate(), 'T', TA.nugget() }); addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier1, 1), new Object[] { "CPC", 'C', ModItems.circuit_aluminium, 'P', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier2, 1), new Object[] { "CPC", 'C', ModItems.circuit_copper, 'P', NETHERQUARTZ.dust() }); @@ -171,7 +171,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.tank_steel, 2), new Object[] { "STS", "S S", "STS", 'S', STEEL.plate(), 'T', TI.plate() }); addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", "ITI", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', IRON.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper }); - addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', POLYMER.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_element, 1), new Object[] { " T ", "WTW", "RMR", 'R', ModItems.wire_red_copper, 'T', ModItems.tank_steel, 'M', ModItems.motor, 'W', ModItems.coil_tungsten }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_tower, 1), new Object[] { "LL", "EE", "EE", 'E', ModItems.centrifuge_element, 'L', KEY_BLUE }); //addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() }); @@ -202,7 +202,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.generator_steel, 1), new Object[] { "RRR", "CCC", "SSS", 'C', ModItems.coil_gold_torus, 'S', STEEL.ingot(), 'R', ModItems.rotor_steel }); addRecipeAuto(new ItemStack(ModItems.shimmer_head, 1), new Object[] { "SSS", "DTD", "SSS", 'S', STEEL.ingot(), 'D', DESH.block(), 'T', W.block() }); addRecipeAuto(new ItemStack(ModItems.shimmer_axe_head, 1), new Object[] { "PII", "PBB", "PII", 'P', STEEL.plate(), 'B', DESH.block(), 'I', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.shimmer_handle, 1), new Object[] { "GP", "GP", "GP", 'G', GOLD.plate(), 'P', POLYMER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.shimmer_handle, 1), new Object[] { "GP", "GP", "GP", 'G', GOLD.plate(), 'P', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.shimmer_sledge, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_head }); addRecipeAuto(new ItemStack(ModItems.shimmer_axe, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_axe_head }); addRecipeAuto(new ItemStack(ModItems.definitelyfood, 1), new Object[] { "DDD", "SDS", "DDD", 'D', Blocks.dirt, 'S', STEEL.plate() }); @@ -342,7 +342,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_1, 1), new Object[] { "ICI", "CMA", "IAM", 'I', IRON.plate(), 'C', CU.ingot(), 'A', AL.ingot(), 'M', ModItems.mechanism_revolver_1 }); addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_2, 1), new Object[] { "ICI", "CMA", "IAM", 'I', ALLOY.plate(), 'C', DURA.ingot(), 'A', W.ingot(), 'M', ModItems.mechanism_revolver_2 }); addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', ModItems.bolt_tungsten, 'I', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', POLYMER.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() }); + addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_cooler), 1), new Object[] { "IPI", "IPI", "IPI", 'I', TI.ingot(), 'P', TI.plate() }); @@ -438,7 +438,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.stamp_9, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_9 }); addRecipeAuto(new ItemStack(ModItems.stamp_50, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_50 }); - addRecipeAuto(new ItemStack(ModBlocks.sat_dock, 1), new Object[] { "SSS", "PCP", 'S', STEEL.ingot(), 'P', POLYMER.ingot(), 'C', ModBlocks.crate_iron }); + addRecipeAuto(new ItemStack(ModBlocks.sat_dock, 1), new Object[] { "SSS", "PCP", 'S', STEEL.ingot(), 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.crate_iron }); addRecipeAuto(new ItemStack(ModBlocks.book_guide, 1), new Object[] { "IBI", "LBL", "IBI", 'B', Items.book, 'I', KEY_BLACK, 'L', KEY_BLUE }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.rail_highspeed), 16), new Object[] { "S S", "SIS", "S S", 'S', STEEL.ingot(), 'I', IRON.plate() }); @@ -519,15 +519,15 @@ public class CraftingManager { addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, ModItems.wire_aluminium, ModItems.wire_copper }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam), new Object[] { "PMP", "ISI", "PCP", 'P', CU.plate(), 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()), 'I', ModItems.plate_polymer }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam_large), new Object[] { "MPM", "ISI", "CPC", 'P', ModItems.board_copper, 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.WATER.getID()), 'I', POLYMER.ingot() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam_large), new Object[] { "MPM", "ISI", "CPC", 'P', ModItems.board_copper, 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.WATER.getID()), 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.battery_sc_uranium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', U238.billet(), 'P', PB.plate(), 'C', ModItems.thermo_element }); addRecipeAuto(new ItemStack(ModItems.battery_sc_technetium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', TC99.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_uranium }); addRecipeAuto(new ItemStack(ModItems.battery_sc_plutonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PU238.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_technetium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_polonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PO210.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_plutonium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_gold), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AU198.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_polonium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_lead), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', PB209.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_gold }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_americium), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AM241.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_lead }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_polonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PO210.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_plutonium }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_gold), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AU198.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_polonium }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_lead), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', PB209.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_gold }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_americium), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AM241.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_lead }); 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() }); @@ -548,9 +548,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.padlock_reinforced, 1), new Object[] { " P ", "PBP", "PDP", 'P', ALLOY.plate(), 'D', ModItems.plate_desh, 'B', ModItems.bolt_dura_steel }); addRecipeAuto(new ItemStack(ModItems.padlock_unbreakable, 1), new Object[] { " P ", "PBP", "PDP", 'P', BIGMT.plate(), 'D', DIAMOND.gem(), 'B', ModItems.bolt_dura_steel }); - addRecipeAuto(new ItemStack(ModItems.record_lc, 1), new Object[] { " S ", "SDS", " S ", 'S', POLYMER.ingot(), 'D', LAPIS.dust() }); - addRecipeAuto(new ItemStack(ModItems.record_ss, 1), new Object[] { " S ", "SDS", " S ", 'S', POLYMER.ingot(), 'D', ALLOY.dust() }); - addRecipeAuto(new ItemStack(ModItems.record_vc, 1), new Object[] { " S ", "SDS", " S ", 'S', POLYMER.ingot(), 'D', CMB.dust() }); + addRecipeAuto(new ItemStack(ModItems.record_lc, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', LAPIS.dust() }); + addRecipeAuto(new ItemStack(ModItems.record_ss, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', ALLOY.dust() }); + addRecipeAuto(new ItemStack(ModItems.record_vc, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', CMB.dust() }); addRecipeAuto(new ItemStack(ModItems.polaroid, 1), new Object[] { " C ", "RPY", " B ", 'B', LAPIS.dust(), 'C', COAL.dust(), 'R', ALLOY.dust(), 'Y', GOLD.dust(), 'P', Items.paper }); @@ -591,7 +591,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); addRecipeAuto(new ItemStack(ModBlocks.machine_telelinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', ALLOY.ingot(), 'C', ModItems.turret_biometry }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); - addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'I', POLYMER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.sat_mapper), new Object[] { "H", "B", 'H', ModItems.sat_head_mapper, 'B', ModItems.sat_base }); addRecipeAuto(new ItemStack(ModItems.sat_scanner), new Object[] { "H", "B", 'H', ModItems.sat_head_scanner, 'B', ModItems.sat_base }); addRecipeAuto(new ItemStack(ModItems.sat_radar), new Object[] { "H", "B", 'H', ModItems.sat_head_radar, 'B', ModItems.sat_base }); @@ -621,7 +621,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fwatz_conductor, 'C', ModItems.circuit_targeting_tier6 }); addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt_20), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fusion_conductor, 'C', ModItems.circuit_targeting_tier6 }); addRecipeAuto(new ItemStack(ModBlocks.radiobox), new Object[] { "PLP", "PSP", "PLP", 'P', STEEL.plate(), 'S', ModItems.ring_starmetal, 'C', ModItems.fusion_core, 'L', getReflector() }); - addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', ModItems.wire_copper, 'P', STEEL.plate(), 'C', ModItems.circuit_red_copper, 'I', POLYMER.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', ModItems.wire_copper, 'P', STEEL.plate(), 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.leather, 'I', ModItems.plate_polymer }); addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.leather, 'I', ModItems.plate_polymer }); addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.pellet_gas, 'D', Blocks.dispenser }); @@ -635,7 +635,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.absorber, 1), new Object[] { "ICI", "CPC", "ICI", 'I', CU.ingot(), 'C', COAL.dust(), 'P', PB.dust() }); addRecipeAuto(new ItemStack(ModBlocks.absorber_red, 1), new Object[] { "ICI", "CPC", "ICI", 'I', TI.ingot(), 'C', COAL.dust(), 'P', ModBlocks.absorber }); - addRecipeAuto(new ItemStack(ModBlocks.absorber_green, 1), new Object[] { "ICI", "CPC", "ICI", 'I', POLYMER.ingot(), 'C', ModItems.powder_desh_mix, 'P', ModBlocks.absorber_red }); + addRecipeAuto(new ItemStack(ModBlocks.absorber_green, 1), new Object[] { "ICI", "CPC", "ICI", 'I', ANY_PLASTIC.ingot(), 'C', ModItems.powder_desh_mix, 'P', ModBlocks.absorber_red }); addRecipeAuto(new ItemStack(ModBlocks.absorber_pink, 1), new Object[] { "ICI", "CPC", "ICI", 'I', BIGMT.ingot(), 'C', ModItems.powder_nitan_mix, 'P', ModBlocks.absorber_green }); addRecipeAuto(new ItemStack(ModBlocks.decon, 1), new Object[] { "BGB", "SAS", "BSB", 'B', BE.ingot(), 'G', Blocks.iron_bars, 'S', STEEL.ingot(), 'A', ModBlocks.absorber }); addRecipeAuto(new ItemStack(ModBlocks.machine_amgen, 1), new Object[] { "ITI", "TAT", "ITI", 'I', ALLOY.ingot(), 'T', ModItems.thermo_element, 'A', ModBlocks.absorber }); @@ -653,6 +653,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.assembly_template, 1, OreDictionary.WILDCARD_VALUE) }); addShapelessAuto(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.chemistry_template, 1, OreDictionary.WILDCARD_VALUE) }); + addShapelessAuto(new ItemStack(ModItems.plate_iron, 1), new Object[] { new ItemStack(ModItems.fluid_identifier, 1, OreDictionary.WILDCARD_VALUE) }); for(int i = 1; i < Fluids.getAll().length; ++i) { addShapelessAuto(new ItemStack(ModItems.fluid_duct, 1, i), new Object[] { new ItemStack(ModBlocks.fluid_duct, 1), new ItemStack(ModItems.fluid_identifier, 1, i) }); @@ -735,7 +736,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "ITI", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot(), 'T', ANY_TAR.any() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); - addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', POLYMER.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); + addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); addShapelessAuto(new ItemStack(ModItems.circuit_red_copper, 48), new Object[] { ModBlocks.fusion_core }); addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch }); @@ -744,7 +745,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.upgrade_nullifier, 1), new Object[] { "SPS", "PUP", "SPS", 'S', STEEL.plate(), 'P', ModItems.powder_fire, 'U', ModItems.upgrade_template }); addRecipeAuto(new ItemStack(ModItems.upgrade_smelter, 1), new Object[] { "PHP", "CUC", "DTD", 'P', CU.plate(), 'H', Blocks.hopper, 'C', ModItems.coil_tungsten, 'U', ModItems.upgrade_template, 'D', ModItems.coil_copper, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_shredder, 1), new Object[] { "PHP", "CUC", "DTD", 'P', ModItems.motor, 'H', Blocks.hopper, 'C', ModItems.blades_advanced_alloy, 'U', ModItems.upgrade_smelter, 'D', TI.plate(), 'T', ModBlocks.machine_transformer }); - addRecipeAuto(new ItemStack(ModItems.upgrade_centrifuge, 1), new Object[] { "PHP", "PUP", "DTD", 'P', ModItems.centrifuge_element, 'H', Blocks.hopper, 'U', ModItems.upgrade_shredder, 'D', POLYMER.ingot(), 'T', ModBlocks.machine_transformer }); + addRecipeAuto(new ItemStack(ModItems.upgrade_centrifuge, 1), new Object[] { "PHP", "PUP", "DTD", 'P', ModItems.centrifuge_element, 'H', Blocks.hopper, 'U', ModItems.upgrade_shredder, 'D', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.ACID.getID()), 'H', ModItems.circuit_targeting_tier4, 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_screm, 1), new Object[] { "SUS", "SCS", "SUS", 'S', STEEL.plate(), 'U', ModItems.upgrade_template, 'C', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"TCT", "HUH", "TCT", 'T', ModItems.nugget_bismuth, 'C', ModItems.coil_copper, 'H', ModItems.coil_tungsten, 'U', ModItems.upgrade_template}); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java b/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java index 7fb1b4339..1bd1ac83d 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java @@ -2,6 +2,8 @@ package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; +import com.hbm.entity.mob.siege.EntitySiegeTunneler; +import com.hbm.entity.mob.siege.SiegeTier; import com.hbm.lib.RefStrings; import com.hbm.render.loader.HFRWavefrontObject; @@ -17,7 +19,6 @@ public class RenderSiegeTunneler extends Render { } public static final IModelCustom body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/tunneler.obj")); - public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/siege_drill.png"); @Override public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { @@ -41,7 +42,12 @@ public class RenderSiegeTunneler extends Render { } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return texture; + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntitySiegeTunneler) entity); + } + + protected ResourceLocation getEntityTexture(EntitySiegeTunneler entity) { + SiegeTier tier = entity.getTier(); + return new ResourceLocation(RefStrings.MODID + ":textures/entity/siege_drill_" + tier.name + ".png"); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java index 959d39a73..e6605700f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java @@ -126,7 +126,7 @@ public class TileEntityCoreAdvanced extends TileEntity implements ISidedInventor @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return null; + return new int[0]; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java index d75c780ae..0c5ec6e28 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java @@ -127,7 +127,7 @@ public class TileEntityCoreTitanium extends TileEntity implements ISidedInventor @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return null; + return new int[0]; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java index d941a46f7..73769b3b3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java @@ -185,43 +185,9 @@ public class TileEntityMachineKeyForge extends TileEntity implements ISidedInven } //DEBUG, remove later - if(slots[2] != null && slots[2].getItem() == Items.wheat_seeds) { - //slots[2] = new ItemStack(ModItems.nuke_starter_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); + if(slots[2] != null && slots[2].getItem() == ModItems.ammo_4gauge) { + slots[2] = new ItemStack(ModItems.ammo_4gauge_titan, slots[2].stackSize); } - if(slots[2] != null && slots[2].getItem() == Items.bone) { - //slots[2] = new ItemStack(ModItems.nuke_advanced_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.feather) { - //slots[2] = new ItemStack(ModItems.nuke_commercially_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.apple) { - //slots[2] = new ItemStack(ModItems.nuke_electric_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.clay_ball) { - //slots[2] = new ItemStack(ModItems.t45_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.stick) { - //slots[2] = new ItemStack(ModItems.missile_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.string) { - //slots[2] = new ItemStack(ModItems.grenade_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.reeds) { - //slots[2] = new ItemStack(ModItems.man_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == ModItems.battery_generic) { - //slots[2] = new ItemStack(ModItems.memory); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - // } } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java index 0227a6e65..e8b89018a 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java @@ -21,7 +21,7 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto this.connect(); if(this.getPowerNet() == null) { - new PowerNet().joinLink(this); + this.setPowerNet(new PowerNet().joinLink(this)); } } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java index df95c0dce..7d20f531b 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java @@ -1,14 +1,10 @@ package com.hbm.tileentity.network; import com.hbm.calc.Location; -import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyConnector; -import api.hbm.energy.IEnergyUser; -import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyReceiver; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; @@ -73,7 +69,8 @@ public class TileEntityConverterHeRf extends TileEntity implements IEnergyConnec // we have to limit the transfer amount because otherwise FEnSUs would overflow the RF output, twice long out = Math.min(power, Long.MAX_VALUE / 4); int toRF = (int) Math.min(Integer.MAX_VALUE, out * 4); - int energyTransferred = 0; + int rfTransferred = 0; + int totalTransferred = 0; for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { @@ -81,16 +78,17 @@ public class TileEntityConverterHeRf extends TileEntity implements IEnergyConnec TileEntity entity = loc.getTileEntity(); if(entity != null && entity instanceof IEnergyReceiver) { - - IEnergyReceiver receiver = (IEnergyReceiver) entity; - energyTransferred = receiver.receiveEnergy(dir.getOpposite(), toRF, false); - toRF -= energyTransferred; //to prevent energy duping + IEnergyReceiver receiver = (IEnergyReceiver) entity; + rfTransferred = receiver.receiveEnergy(dir.getOpposite(), toRF, false); + totalTransferred += rfTransferred; + + toRF -= rfTransferred; //to prevent energy duping } } recursionBrake = false; - return power - (energyTransferred / 4); + return power - (totalTransferred / 4); } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 9f8f6ac4b..bdfdb065c 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1364,6 +1364,7 @@ item.gas_mask_mono.name=Halbmaske item.gas_mask_olde.name=Ledergasmaske item.gas_petroleum.name=Petroleumgastank item.geiger_counter.name=Mobiler Geigerzähler +item.gem_alexandrite.name=Alexandrit item.gem_tantalium.name=Tantal-Polykristall item.gem_volcanic.name=Vulkanischer Edelstein item.generator_front.name=Generatorfront @@ -2464,6 +2465,10 @@ item.rod_zirnox_u233_fuel_depleted.name= Erschöpfte ZIRNOX Uran-233-Kernbrennst item.rod_zirnox_u235_fuel_depleted.name= Erschöpfte ZIRNOX Uran-235-Kernbrennstoffzelle item.rod_zirnox_les_fuel_depleted.name= Erschöpfte ZIRNOX LES-Kernbrennstoffzelle item.rotor_steel.name=Großer Stahlrotor +item.rpa_boots.name=Powerrüstung der Versprengten - Stiefel +item.rpa_helmet.name=Powerrüstung der Versprengten - Helm +item.rpa_legs.name=Powerrüstung der Versprengten - Beinschutz +item.rpa_plate.name=Powerrüstung der Versprengten - Brustpanzer item.rtg_unit.name=RTG Einheit item.rune_blank.name=Blank Catalyst Matrix item.rune_dagaz.name=Balanced Catalyst Matrix @@ -3340,6 +3345,7 @@ tile.nuke_tsar.name=Tsar Bombe tile.oil_duct.name=Ölrohr tile.oil_duct_solid.name=Verstärktes Ölrohr tile.oil_pipe.name=Rohölrohr +tile.ore_alexandrite.name=Alexandriterz tile.ore_aluminium.name=Aluminiumerz tile.ore_asbestos.name=Asbesterz tile.ore_australium.name=Australisches Erz diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 89639ea87..aa9505381 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1547,6 +1547,7 @@ item.gas_mask_mono.name=Half Mask item.gas_mask_olde.name=Leather Gas Mask item.gas_petroleum.name=Petroleum Gas Tank item.geiger_counter.name=Handheld Geiger Counter +item.gem_alexandrite.name=Alexandrite item.gem_tantalium.name=Tantalium Polycrystal item.gem_tantalium.desc='Tantalum' item.gem_tantalium.desc.P11=AKA Tantalum. @@ -2777,6 +2778,10 @@ item.rod_zirnox_u233_fuel_depleted.name= Depleted ZIRNOX Uranium-233 Fuel Rod item.rod_zirnox_u235_fuel_depleted.name= Depleted ZIRNOX Uranium-235 Fuel Rod item.rod_zirnox_les_fuel_depleted.name= Depleted ZIRNOX LES Fuel Rod item.rotor_steel.name=Large Steel Rotor +item.rpa_boots.name=Remnants Power Armor Boots +item.rpa_helmet.name=Remnants Power Armor Helmet +item.rpa_legs.name=Remnants Power Armor Leggings +item.rpa_plate.name=Remnants Power Armor Chestplate item.rtg_unit.name=RTG Unit item.rubber_gloves.name=Thick Rubber Gloves item.rune_blank.name=Blank Catalyst Matrix @@ -3667,6 +3672,7 @@ tile.nuke_tsar.name=Tsar Bomba tile.oil_duct.name=Oil Pipe tile.oil_duct_solid.name=Coated Oil Pipe tile.oil_pipe.name=Crude Oil Extraction Pipe +tile.ore_alexandrite.name=Alexandrite Ore tile.ore_aluminium.name=Aluminium Ore tile.ore_asbestos.name=Asbestos Ore tile.ore_australium.name=Australian Ore diff --git a/src/main/resources/assets/hbm/textures/armor/rpa_arm.png b/src/main/resources/assets/hbm/textures/armor/rpa_arm.png index 7372622f2d97e038bb5b0d680143932d17891648..cbaa905600c0352d7cea009692c64229fa55a4c8 100644 GIT binary patch literal 968 zcmeAS@N?(olHy`uVBq!ia0vp^9zYz z7*Y}UcBWz96$cTQS{6Nr4h2Q`s6vJyfu^Zq(;7Mi1saZUsZ6jq;G)73)4)7oLLr-y zUh=ou@r&brPrrLVIda+W>0eCB*6+R+dRy*%#q4PF{4KspH{-ds%4EDrpB-$^^KH6Q zE`QSF*`fA6yY`FR)!#M6)NI*h_wUiiZoX{(cD7r6+4=eR_eb$toeitHl%3T2%^+;T z39Um;{LeS})$yu4Fq|{rHs}7kd3;PtKhDeF-#kO-l-1AV9o0qY4W)N>Pk-)S`0>^K z)yFJ28u!=!opkgS>(fj8Z(O;m{{M>HuB+{-XRfI05ocfj%V1Y;=#o;N)VY5QpR7}O zz3HRE^choBPM952UDI+e$8l#w{vNp{JZsc$9^0{9VG2a0)RM&KAMT4ysqS2w_}m~& zpy|1Y$n+c6xK7173cZrJF?&mjlcUChcrPox^|69J*G{fy{P(LkaeL*-EBcLZo7Zuu zy?%0if&7hb5ta2)kGlk7!g{ALrL5WiUTejEa8QI;O^eejPKY;En4+lqwfmHwyNOs5 z=ap{?JzQRSMo zV4}5S)$A`y#f9mb7ni@Rzwqgh-G<7WtNgb&r5vbIKI8c8k$%`Be-W1kvak)m(t+jC zj?q<3+fC=EZNI&hQ5|UK&f33G(Z;{->#yrS|9-3KV$*`iwbxp%9Z208B^>2EZ%v!- zmk+;EOmh~tUtj#U?*2K)<f286nEx-X8CdCvjS7iqfRA8yFdX{ zTqv##w)fYaji&Q8IvD2fIKuIvv;Mb_0ITnXH*)j0m@f9u-?7HibRp30$yrX>4>qY? z1-Za?73bQ<)3ZW^qnM|go@~A~MO%9d`&P~HunhjJ;B{**$X!_$6S>fKh40QyPSpXk xi&9&^Eiij}itDXo?y0Gww@A{!6?*v(>xmDR0$)^D*8y`KgQu&X%Q~loCIBeGs5t-t literal 839 zcmeAS@N?(olHy`uVBq!ia0vp^9zYzanMprAyFYeY$Kep*R+Vo@qXL1JcJiC$i6iGqoq zp`K}qdj!xLrX8Lxjv*CsZ)X~=6E+laP3O#M5OQ?x|8kTmBeUUO`AueT4_D`dX%Wn# zvnBT}{;hO;-#qKGHHw?=Pwg`?-WXrgKk3nbo%i?lMNZdvxKCVSX6oy$?cPzx-c>hl zygp@~eabpi49?=+SG2k|$t8*0G00cy7$z-QH*O=7alzQ(qOPm@=wre%#6k(IB`lDXeP! zf&zXJx4&WPYe$W2Ca<7N5CitN|NqO$HFr&okB;h7r9~oTKa>-mRtZ=|e$>@86c=2& z;jlcT_I0MLJ4d>1Uss=Y@POI89~WMNJvr%zr1otlxAcvl)HGA4&zZ1R$o9aE>^GJ` z!DDHLjB1+u`VW38x+D~~fE^rC7Cs(a)6x=+BqHMcqE78R%F0<*+mn8bl{03-0V0V6 z%ej85gMnJ6eP18H*0?!-|EZt<{$$RT%+P3$oXZI%Z-}SOXngv)RWdE%r;X+O^V!@t z?8>6Nm;ZJH+8Hw;Vb-FxKjJ?#iK`SiVkQ3Hbbrvqa{A@#%T~re-uqhST=sEr#!UwE zN*L!wyp%FXyR+evX~LNuiA%E&%qTqUb-lsxaof~&jLFA%wPTr&^+<>9V(XDKUsFPw d29wjD_~V~Wi?~vjqYg~x44$rjF6*2UngFu{U3dTh diff --git a/src/main/resources/assets/hbm/textures/armor/rpa_chest.png b/src/main/resources/assets/hbm/textures/armor/rpa_chest.png index 778f284b2c0b83917eade275cfb91c11bbf1681e..d08fc73dbecc2e015e312be0c45212f1b1af65c4 100644 GIT binary patch literal 4316 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 diff --git a/src/main/resources/assets/hbm/textures/armor/rpa_helmet.png b/src/main/resources/assets/hbm/textures/armor/rpa_helmet.png index 6bef49e0dc20a62ad307e88c05b8919962b6068e..f4aea0d05978cc8d954044ea3ec93fdc180573e0 100644 GIT binary patch delta 1571 zcmY*XdpOf;9M>A*pCqe^# zLxV73p_qseEb+8EF~*Y^gHDPIPR50#;X{eB-o#iRVw`yYNyPaQaTsE}A0Z+1K~W_L zOsjpZ)$F!gZI=vNLPDOsOZAXjRxu822-LWu9DNBPi{*tGgU*W1NLQzEW!n}{$c<{W zdk!ofMB4a)j)|Gx!Vi^=O*iAxT}ohGDGCnQ!jcH)tMMsBDbr66dhqW%y zA!tAOBjSQ+bH3~ZlQXjV`@!ieE;9`|PL%#_EMMXJ<8=pSBoDYi`1bZ$WA?Iwq&IeW zjj1mCAYG$0pOfzu3Pk$N3FmJq1c>LPgbM>-XrN997rskMsuwgHC zTW@wp_WwsUdmhc8`RH7-q4T9~)PFlBQ(QN{oN;m6%qQTHJjY$|MH@O2j`GWH)nWTX z#XfBq*QVA|y@a4^ho5kOL-2uznmnYnc6%kdRQ|gR0&2Yx43d=cv2cu_bJ>&bpM~1) z?YDW8kkX#jqZ0?#`wb%tKBG<--gw{^A&}3mu7EJxD2FL^<*dM>gZ$YKY9xOpS1ZU; z+{ssMy=%bPpuaPZbProONu3*!>ONMW_nsiQe8s9JE{AKxT;>8;3xU=yrSp1q&qGG7 z+AidMYA+*yb5BqfH5C`aU7O65r=)ue?npmYRW%4+C%bOqaS=EqWp-GfVrk()@1Y(M z>7QkrJ6v=S8Vv?95?>tJtMU*vFpPiKXAIu_-EC0OHPWTujecO+8rtZ ziqD(RsVf(Uw?hS%vEy7M^KLx}ju_>nKM$89K;6}xg*5;E zVk@9swa-XN#ToEb9Woz`fz6T;I_zm_IY~lUSb+X1_A8&D{%Fm6n0-d)=`3$YU)9^y zFZPH6!JVX+CJ=s9P87XB`sP`BnWFtu2Z51>vACNN?8!Gtn`;*u9%PkDmtbn#^29UJ z%Yg3()0nct?lnW}$PcU(2BQ(&3f`$i94oMsE6RGZmu-?eQ68pYVoaG)Z;l=X3^Zjq z9(iPWA;lJM7R7i<1ta!RNhwg-F3My(CCoGJtGAaQ6I?~>+Y7S;)sC6&U+PF%6=b1J zl~Y~d#}!g9<|ZquIR8vPifVgwJdnmyt(P)q3&am-P$A}_=+y6{c&?sYdqY%!BkdpvvR;zJu(+o>7EB% z2Q8hH+(Ok(8x&N~rfBv9fk{2fRVP@%_^(Ndc1@b`Dx#Hp=C<}8gPf-cYz(V+U1Kv- zrtLnJ$vva|%+e8v?peJegxNlM(pTdrv2Xb0GU5b_ivNe1z}HAC3;2}`RI~`1315_rW+hu%6D!Gwl0&%*OWR5MXNDP5+3v{Y^Iux$a7nO(n uIojhW`EVal_-7DA)sUDsO5y!xyX)+ldE|Q zc@DLOL`k}-wu^O{c?>=7wS2nVq4PPP&-t9+`TV~BbI$+A*);^Yxfdv(c+Aa3uI`oI zY(Crt9v13LIenB8?Lmq5q{I*@G2WCjvU!X`_Mwn{DY5?S;u3`dXL)T!D-Q!=)1hrz z@<5)PoElHQ|6FxML5L!fYUJ*U^+^kn+`V>j6t98Dxf{k=#azy+GQvX9^4$L}A+4L2 z*71u&a}h}c*HM9alKL{w*k*?lWUnj(qo*I3DO2cv;K(T_6>bK$ZE_vyco#Rp?b)GH zxg~IEfg&y%M;j#Cbby>LeP5d&06cn#M21fEqzkap87i!hzQ|QC<*Y7C_WCn;t?Koq zjyZ0hO0n?1qRq2{Y_Cx2uH#nkoSeEZt;WB>N*~H})xQeQ8`_lhP7h3tG})HD_5J=$ z^r6ySi&Q}-+N^4HQ-A!B%m`M#@@M*28~~8utBoVs%Tr=$Z|6Q(?!KiEJp*^)?)|KL zRJ7VNQ4_IsAYWjb#1Dyi@}D5_?*%976%%ZfdQAUc#H!zG!yb=VI94x2R? zrkp#VYiOhL(oqe;&cfPm0tx)mfn$%`aG*@dV8_g4x*QvOjR^9PBpt5P%v27@+d5=M5iN3vfbS|y!bwGG7 z_tPUWwzP0KvPEqiFIB?yyy?|oWrp2x%B5VM~?~9!8)KC(x>hI73Ghv1N zDCSrRWc=fze_IMX4-~;1t0ge2J0|0p4dNHd1+y!XT1jo#5LL+{5t{jEng}57j1CI# z01XFJ&H#;-i~+8H()wVf@y>1wlRFvxjPn(WNJSv<7YplmmcqHByggTsO~c#0PaH&BAy<>v}L5ZtktRl>BUb`98bv#188Gxqqt(3;OCX zGKF9MC)?eQ~XrmRc+7zcJE2tKN37%?!j3nOl>((EUemv4gxVPFWp z|2g?^RZK10M@Uw{U9Ef*reLPv` z7l)IA>Xn7x!qVGPXBMAI4P}2IYa7F`Sl}@lk#6~_LVx3aSC*GC+ z>b3{pe_eb0;O}iQpF;@R>ayf~+gq$F!acCo_n3ylZ6BMfhTi>rfV2@maOQ=$`xy0; z!xhcf%ZV7cSNk843Co!}O0IK>G9Q8k(g93&2r@}vl5C4yD9?XB`&O9VqDRWjoU?!e iV7hBpBM){ZOglxHBGT75)w|_n!~L+QYn@BjmHz>Hg`-&j diff --git a/src/main/resources/assets/hbm/textures/armor/rpa_leg.png b/src/main/resources/assets/hbm/textures/armor/rpa_leg.png index 7a5da8b34152061ddb95503f756fcd5e590887fa..b5aaf9b41e9a35ac9eca056ce767f20f9f9bc6df 100644 GIT binary patch delta 1011 zcmV2EYiAB#|)~3c>&Y4#EKyC`y2lQzm}{zDYzuRCr$PnM;n-KoEv~1TMf4 z*drkhz;<|P#4tgE6%hytBoIi9H2cYl4GS*70obtP46L|};qO$DcBk6ab~<)XyMF0Y z9LHVh`qIwBX>w(=*|a&Ja`i=Ob_`UmzHo!5k55M73;Of>S33kZfzp#x5F&|?pu@{g zEfG;M+c#tLFdG>vj&f|TSG z#Eqv2vQx|iZQ=2##e!HsD8=88TQ`BylT%PAA$Ff}6DU2$5QJ3&DGc_7_ZKM$VHuDV zin?}k5N_~Ls9fhXlU9-m@+9;@hu0BF$ee%Bw91Gy!4jb9&6nL|uH5ar^||Bi%cmW% z@BOQlLwYG8A5TTAgXiu_+CkHv zCfg_Nt{RpjeavI>{K{inIwpmbI=&<@sU-i&fG?)6@hJrXJhs1@j(o~-amJS;P11j7 zYC+7tq#e{&p7@3N2~*{OxdZ`U64>^!T}^wh`l0w@hBP{-Ab?}{SJPEqLB1Sm5`D}q zhzTV%D1m zz;#Se1g>L(B5)lO6oKoQpa@(i@ArS83hTHPl=GXkbW94R)@j!3b!)^iK?=>Sn>X4e zLzlDS`TXKuyJSd1Jd)KVK^o$btS$-CP=BP=(FYA%PNdb*2Mt?Rq?IB;hc7SEN|B($ zmyz(Fm7!3Xc%(tKL9HgIGuFRTGt|49y>X@edd^+vf1`=v4@k92pz$Y}n<0Wq#RMssAcdm}ssR(E;6BCh zg^1s^ZM(Z|f|PB#*qASUPu90h!|TpaDd9GisWV~I(i@(HKL${_`oaxz!;%aMUk;#h z^@SUhB&0A@kW^y`RA#zhB@9_PAv~VSsgY_7fyzu5TR}=pkPO86AvM#pReX_9k7?HwMi h`P6M`lJjxW{skoNA>T%uhyefq002ovPDHLkV1i|5=@kh>GZx^prwCn`#F9cEzQJIr`Ie?`hfH??}ETb?eCAr*0NXP%uX zY$(tw%fuA^1XE^G7W4jguc4;_q-9Oz7GoAlcB#4Yp7pOvF?U+!JCKJ1=s z=C1u$d-iT#9r||XkT9wUw`yMQ&FJzW0q4L(ws$?ye8~*lPtU(6u<;j;p=$qOO)eF z(^DO@XEpg8m@}nlj)P=juy;Vz=~?GbE}as?-7&A4BWlv5VqJx*cd8k^OR^a+1_uXp zndVROn&;)$Wm+MkQ(i28s&&eP4?n;zyC`kS-2PoqZHcOewp&D_phJD-+aR$cc^7mw zUOVmV_l;!H-lCdXtMS|Lr2m<&ZkIUiQ~TpTO;(L?6x4j}W?dRQuSHa7=BBzWq3S;m zy?Jup<=*Ml_kRW6;G8e`dig4avPJ37kL=U@r|ifl^h5y*QD8Oy{Nx$#O)`G(@9mrE z#@1iI`Pt{Uua{@0EJ(CF^UA~FaLtUX6C2w89WFaAG{emA#=8in%g4BGYx2n0#oh2r zeDJ~W(7)ZASapo$%~qOUc=hVenX~aLj+Xfnj@1(t*g1hN-$<63zayM@2uKea>l|L!= zwD*(Zn?T;b>oxa&9Or+ZzwcbF{=sWq2V(CZ-NwVVU+?|C++& z4Q*?iZb(HRFe>f$zQq|`=GS@lcu^i$q`$jtf-q;%BJVSusEnZ3Ldo{ooVTp!MOkzmvv4FO#ni3bV~pL diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_alexandrite.png b/src/main/resources/assets/hbm/textures/blocks/ore_alexandrite.png new file mode 100644 index 0000000000000000000000000000000000000000..f76de269eed7e3da3bdc889f122c2d5fee8a6f25 GIT binary patch literal 727 zcmV;|0x127P)jV>nNn*l>Q6x_t7$UV}J#{D&3oJ~Xx^_vs zbgcR(+7+o1Qz!mGD`iGCOcV)+NCpJAfy7QtaO`wQxoXdHuXN8n@1yg+Gp$x@G8&B# zLQpIg0Vos-%+JpQaB*=#yllVX5Cnu_NEn7{h;7^0 zwvFRB0RIUrE-o?{4AAmCXEK@Kx-OpQ;dvehmDe0pUMrGE<abX})jud8NV*O{H2rBEmkMUjfJVHo6j&L3*tF~`xD?SudT002ov JPDHLkV1jz+MF;=@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/stone.png b/src/main/resources/assets/hbm/textures/blocks/stone.png new file mode 100755 index 0000000000000000000000000000000000000000..87e19ff46b57f2bb86553459b2ebb2805ebbc55a GIT binary patch literal 223 zcmV<503iQ~P)`Q z@@yAK5Xrp8Ww0?B)}a6jDz5Sm3r@C%T7;e8YL1N+@fol{wcN}(?HLy(l?p1OuhjvMQQ`NCTe4yVqX4coGdI zU_8u0a}kA}dg!U(Mf?ZSBDe~IRHU&IFD)27C3?weO|7sV%C6aUlgy88W@nQREac6; zS!Uk6`R>eQHS|CTaX5L(z~1>_ zoqA&jA3lCYI+KaAZ6hJY(|H#{h~swJw(ZCoHA?g-9%9bry(yp?!T|_&I;aUQ{cPEq z5lIHr8#@4i%a_h$zuRT9Ws?$pKu`l%ZP`Sw0qIPJ$(D_90BWz^VJfZT*wJa&wvAtV zf0%692nXQC>Zazrxaaf=8mldnNTz`G_B|ZO;kIQWEP?<~xOfg%ubAAnOj05n8@KM} zRs)~D?0V&_woKf;0CNy}>nvO=z?{p2*OrN=0fZ2ZcRQ@I22gi8u85vZ=($|ZSI}%W z5iA>YPqx1(k-P;|M!RtTgwj)B>)B7SDPWvE5>;E2L|>eK-27=sR0i-c34rVd z$VOkYANos90&n{LVH0*wvj4)5+kI}*p?j|uRXHwJT@Na&?EU@ZOmM{LVNo0u*|_BMHfKI0)yA4ti{!GqQVpY)r zfL8~SkUbL(=rw3ZG)ZrcNIsPv6{SiwbkX+o@dIuh3Y`LmVT4{X>DT#T_lBW_2GDen zHwdv0087Vsf)M)v95#`QV5w4dW@qxKt#9De=`&#cEh1<P-KNCGWxSKqyL0H zk_;$Ss*cF3NG6(TnvTd`;QGy5zOwJ%zH*O#ZG8hTpRfL>0kpy8(GMjwfTm--;u-rh g!QSomVJwCJ0;Z~-nb^GC0{{R307*qoM6N<$f}^OOOaK4? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_clay.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_clay.png new file mode 100644 index 0000000000000000000000000000000000000000..a62854104041739f69f4ac84aaf456b25bc0294b GIT binary patch literal 925 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_iron.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_iron.png new file mode 100644 index 0000000000000000000000000000000000000000..72ac3298e2eedfbb758825115740c4f145972245 GIT binary patch literal 886 zcmV-+1Bv{JP)a8+iJ};I?H_5ZT!HWv{gh+f# zz;HN3qtO6>;C&xi^Jhi*2ms=HnPrum3jsvfdmz&5^#HJkoJ@byG^y*ln(MlO&2rD! z2(T;*mSr(jEQ|iE7gpi$!HqZ08^UzKK;(A!-n2&3`{~fOgO5}ijjZfmUi_8muxEFkwSW>ifTdx)3!%)P35K`Zcd-=y2N@@W2XAtsO01T{@{~! zn(Y&OIR1=$p^#1Z>r6T)#+_|EOMO+2y7tV7FSu zM!nA5K;8UV7&!&#P+QvH|67n)E_L&FT{rZ7pZLBX*{KiwN9qXJt5lHOCz#~VLh38A zje7k&;|!?wr@hYF`#?$pBC%o2xNiQe7{3pYWtsrh4N#3mcUY#fy0ary-=gcQsjSY= zOVziMTT9jF`{_HuF=GwOVp?W(^Ot4deH!l{Ms)KB&d&ra^#F47xYBP!j%_60sxNV2o3*cvuS*NB3gM;xbjoLvTa*+ z8Cfb-5}S$z0HQiD38QDK0da%1M<;3J$mCPmapA6P4&Ai*Z=MP3 z(9kJh+xE~)C8L7B=-x#bp#dxbiY7t(1n>kVk_7D&aM@%og6_&@I6LQ{b$p1Mw@Tps zSw_%An2vy9g)%!lncknB8~;C1WHJKWmCaCQDN+e>94C}H3)r`p2g<&G>j?LL>-Z3@ z#;gA{fHk=y`eB3yummP5p4z_?j32izV=Mdz1Le)6RyDl_00000NkvXXu0mjf!R@RY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_silver.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_silver.png new file mode 100644 index 0000000000000000000000000000000000000000..8584831caa0ae4df044ab192fd4967ea096ab621 GIT binary patch literal 890 zcmV-=1BLvFP)!24owLzjgwzBCL4Y6#FdB`} z?RK|b$h3d6+2jD=dET164Pgz~hHd_$q$Z#!^FK~_*G2C>kdXk{d1jlxD21;BbU7x# zbO%i1h&+O9rr+;twRghe;!tstHMQyW{c%5F$2gm^n3Y-E{B>DdLCO9xVw*qkzY6p` zPk5hD`8`3~2$LY2fT$F1G#WTNJBvOyH#e!D*=&YhuV8a^H809zu=JUDfJ{U#&HMvlUi;4pPsyeU_qvxmraYOWu z?$eVamse$X1*LRj(dPTUvJP!bK-wKPIp@=Y55H4QLLoFDD|i{7O<11*nZQ(%V0{Aa zn%omWDdnwJiv!>)$9eZ>8wWoEHa-P()V^M?V>}*%QmS<9`@ZsTtB}hGpp+UJzIi}g z*X25Efz@iYcFy;G<-0!~kAcKiJs_^`Dz!i%G(aRU)k4VnJ;C^L`z}i1e>OJSk4f9z QFaQ7m07*qoM6N<$f)QSsMF0Q* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_stone.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_stone.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd317e2d4820b0e272b685756101b1f2b99e72a GIT binary patch literal 920 zcmV;J184k+P)jGMQlI;d7;uQvm3LkJsrR z9OC_l&nT8kS+;E<6j*`}a9!6Af*y~@nKf#W=vlnP+*k{zfNF3jARcsF69STK(VCIT z2IOC>5>G~5a3?7hWGQOAYz=P(|R@$=Uo zDqA$%3AnejulcVY`%yuowMCN26!6}>gYWyywn(@|5CCe|uHe>9li3zYf#+Zo)ZPDh zfKOk(hUK)jNP@EfbrPa=?%b}y+*kvvEs{_JT-ViDkHac!0CCW=!h1KNS1OgMg5hw8 zcv;$SqWyWvWED^utfWd>Swq45kW1&*@wP7EGQ1(GB1w zzK@w_$4NX5b~>FY+qUi0hREhmO6mx(Z5xi`5Wh^6e^M`#>~a$mVB0nf!=P%MO#Y;# zUWl|>EdYSyIEXKoviVz<<$Io|d7c;Ab6<#*5nvbw)jX5UpOn-QU>F9~uoLYc^g3zp z11Sk08Im&llcM}SfR{W0q8lI@<&VSNZWjO$EPqif%L0&oZKelntEyD1Rj&Gad~Fqd zzR&Li7K}bCi)opa&7YSkaiIOjh;07AzcT?zJ%HmoLD>kBK%0PYD_pD9u)4Y$KBLhn z@i{s=!q(Q7RQ>^$WzAd?lQ{Dtr~!a!noPsL-|s75Ut_JjES&i%pqI;K(QOb)J_3%9 zk43jZDBPdP1xlz~*+-=UIwGqM4@Y^PC0l-hVJv_T&3E=HBmgck%k=&VL#} unp_tBP(lMp0%H|V>F)%i$L-VD3jYO1lfacUp@uU600001cnk&z1-Mci-&@< z2tubO(7_$LX6Vw7;ZITHkC3s8hb&o=#Z-$zoWX~5oH{rbvaM`6I5^(@-+TYx-GldD zaU55jPN&{+99MB1SHAC8Ky|414wJ{@F=bg|i~*q6>!FlFYk$pTGC9hTyMyohRgxrZ zHXE$9NGXwWd#$x*I-RyU_5k|*ewC&vqtOTeYb{|I^6$?N?(VW$e13igz{5kv%L~kw zcso1QU@$-kQHy_mHoS!sY0cH-JF_KTjUa?T2!WK6@##HD^0gHw(wbiloVoyjl#(wW z?n%=NhQncv(|--at>EN@-`Cd!LBML29Txz2dV=|U&SJ5sW6n9EDB|+w27vW?-R__b z2f!GEQVNWrEX#duvx~KM52smBDFx5ZD5VI3;MhTyy?)oneK*!xoO5;OvMgH>yrL*} zvAuDXQsSJ$Imh4ITL2y(H_VpX8ESolLmYrS&&l(g)h)`_$#5{&0N*}Qb-UYhQGim= ee79!uyR82MG^UoP*&l@f0000q&u=n|C`sw|atrAElejP1-hhsDU2lX8=KHkL>J=D*As9y#uKp(qLy5mXfbGy5wu zo4za-3tO+(s45}?fQTR>#25)7JaCZxFYLYlbA-)iV`he`GJiY)UcEe{>7m=FkE0&K zRaLn$!hAkQMDX4tB3wLQ^Wn{$5FK@&V%MFcZsE(fhTHo|gud_Tx(@F>X7*2bdwz0Q zqW7M%EHN|QU#y4*AFo@)ppA#Nx92C!GCSPB%rG;YOKR`7C3Wvu6-M1V7T(A`Twb*! zJj*5#RCO%wu75FZzh|rpV=u5O5>WS!rXR|5l=;NL5W~z^=J4!P*$V`5KvIW^?c)fl z%5Jv!r{7$-_P#sP-k{7i3Ozp$aKyC3j$nUte|D15!C9vCo>nqTuF@8(!7#}xno002ov JPDHLkV1llU$Swc? diff --git a/src/main/resources/assets/hbm/textures/items/chemistry_set_boron.png b/src/main/resources/assets/hbm/textures/items/chemistry_set_boron.png index 7bc9b9e97d52740a8cbe5f53c1a9e7937abd4bd2..586bf9feef766728914ac8c081d8a96cb7e873fe 100644 GIT binary patch delta 201 zcmV;)05<>m0rdfpG=Ho~L_t(Ijn$Gd4udcZMPDSQvT*<=Rw|F#dv5m3uyO{ru)0HK zDJdyrL-mr_`QP7m40oHm0)%DN7}s=(;XT7UPb!V}52L zqN(B(W)+dD3IOQ)UhTmWS*$dJ)X(%tG=H#3L_t(Ijn$H|4TLZZMPDQ)U;svlT+(NctFON~(o?esJ!Qlo ztl%q7mXb>j=+L=I?ELRodK40)07e-LKyuiz9Jv_0NoKejNVxV0Crwhj?-Kz zep}I#5yR+RoMwGJAMRJ_hO5XeAf00000NkvXX Hu0mjffV*3c diff --git a/src/main/resources/assets/hbm/textures/items/gem_alexandrite.png b/src/main/resources/assets/hbm/textures/items/gem_alexandrite.png new file mode 100644 index 0000000000000000000000000000000000000000..b63298620b1e42cef7b1d679862f6f9a943d081a GIT binary patch literal 2231 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 Ph%k7%`njxgN@xNA$%TC| literal 0 HcmV?d00001 diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 5f4b4f557..de29f6361 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_X4130H1", + "version":"1.0.27_X4144", "mcversion": "1.7.10", "url": "", "updateUrl": "",