From 50768cc6e779148ed71ff9e095cd72ff060d10e7 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 6 Jun 2021 19:42:20 +0200 Subject: [PATCH] RBMK console fancy display, patched up the whole thing --- src/main/java/com/hbm/blocks/ModBlocks.java | 11 +++- .../com/hbm/crafting/ConsumableRecipes.java | 1 + .../java/com/hbm/crafting/MineralRecipes.java | 11 +++- .../com/hbm/inventory/AssemblerRecipes.java | 17 +++--- .../java/com/hbm/inventory/SILEXRecipes.java | 8 +++ .../com/hbm/inventory/gui/GUIRBMKConsole.java | 17 ++---- src/main/java/com/hbm/items/ModItems.java | 2 +- .../com/hbm/items/machine/ItemRBMKLid.java | 1 - .../com/hbm/items/special/ItemCustomLore.java | 25 +++++++++ src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 8 ++- src/main/java/com/hbm/main/MainRegistry.java | 2 +- .../java/com/hbm/main/ModEventHandler.java | 37 +++++++++++++ .../tileentity/RenderRBMKControlRod.java | 2 +- .../machine/TileEntityMachineArcFurnace.java | 2 +- .../machine/rbmk/TileEntityRBMKBase.java | 4 ++ .../machine/rbmk/TileEntityRBMKConsole.java | 52 ++++++++++++++++++ .../machine/rbmk/TileEntityRBMKControl.java | 4 ++ .../machine/rbmk/TileEntityRBMKRod.java | 25 ++++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 21 +++++++ src/main/resources/assets/hbm/lang/en_US.lang | 21 +++++++ .../hbm/textures/blocks/block_bismuth.png | Bin 0 -> 664 bytes src/main/resources/mcmod.info | 2 +- 23 files changed, 243 insertions(+), 32 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_bismuth.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b05c5d070..416f9c168 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -150,6 +150,7 @@ public class ModBlocks { public static Block block_fluorite; public static Block block_steel; public static Block block_lead; + public static Block block_bismuth; public static Block block_trinitite; public static Block block_waste; public static Block block_waste_painted; @@ -331,9 +332,11 @@ public class ModBlocks { public static Block fence_metal; public static Block sand_boron; + public static Block sand_lead; public static Block sand_uranium; public static Block sand_polonium; public static Block glass_boron; + public static Block glass_lead; public static Block glass_uranium; public static Block glass_trinitite; public static Block glass_polonium; @@ -1165,7 +1168,8 @@ public class ModBlocks { block_aluminium = new BlockGeneric(Material.iron).setBlockName("block_aluminium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); block_fluorite = new BlockGeneric(Material.iron).setBlockName("block_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fluorite"); block_steel = new BlockGeneric(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); - block_lead = new BlockGeneric(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); + block_lead = new BlockGeneric(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); + block_bismuth = new BlockGeneric(Material.iron).setBlockName("block_bismuth").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_bismuth"); block_trinitite = new BlockHazard().addRadiation(ItemHazard.trn * ItemHazard.block).toBlock().setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite"); block_waste = new BlockNuclearWaste().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.block).toBlock().setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste"); block_waste_painted = new BlockNuclearWaste().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.block).toBlock().setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); @@ -1346,9 +1350,11 @@ public class ModBlocks { fence_metal = new BlockMetalFence(Material.iron).setBlockName("fence_metal").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":fence_metal"); sand_boron = new BlockFalling(Material.sand).setBlockName("sand_boron").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_boron"); + sand_lead = new BlockFalling(Material.sand).setBlockName("sand_lead").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_lead"); sand_uranium = new BlockFalling(Material.sand).setBlockName("sand_uranium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_uranium"); sand_polonium = new BlockFalling(Material.sand).setBlockName("sand_polonium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_polonium"); glass_boron = new BlockNTMGlass(0, RefStrings.MODID + ":glass_boron", Material.glass).setBlockName("glass_boron").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_lead = new BlockNTMGlass(0, RefStrings.MODID + ":glass_lead", Material.glass).setBlockName("glass_lead").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); glass_uranium = new BlockNTMGlass(1, RefStrings.MODID + ":glass_uranium", Material.glass).setBlockName("glass_uranium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); glass_trinitite = new BlockNTMGlass(1, RefStrings.MODID + ":glass_trinitite", Material.glass).setBlockName("glass_trinitite").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); glass_polonium = new BlockNTMGlass(1, RefStrings.MODID + ":glass_polonium", Material.glass).setBlockName("glass_polonium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); @@ -2019,6 +2025,7 @@ public class ModBlocks { GameRegistry.registerBlock(block_cobalt, block_cobalt.getUnlocalizedName()); GameRegistry.registerBlock(block_steel, block_steel.getUnlocalizedName()); GameRegistry.registerBlock(block_lead, block_lead.getUnlocalizedName()); + GameRegistry.registerBlock(block_bismuth, block_bismuth.getUnlocalizedName()); GameRegistry.registerBlock(block_lithium, ItemBlockHazard.class, block_lithium.getUnlocalizedName()); GameRegistry.registerBlock(block_zirconium, block_zirconium.getUnlocalizedName()); GameRegistry.registerBlock(block_white_phosphorus, ItemBlockHazard.class, block_white_phosphorus.getUnlocalizedName()); @@ -2319,9 +2326,11 @@ public class ModBlocks { //Sands, Glass GameRegistry.registerBlock(sand_boron, sand_boron.getUnlocalizedName()); + GameRegistry.registerBlock(sand_lead, sand_lead.getUnlocalizedName()); GameRegistry.registerBlock(sand_uranium, sand_uranium.getUnlocalizedName()); GameRegistry.registerBlock(sand_polonium, sand_polonium.getUnlocalizedName()); GameRegistry.registerBlock(glass_boron, glass_boron.getUnlocalizedName()); + GameRegistry.registerBlock(glass_lead, glass_lead.getUnlocalizedName()); GameRegistry.registerBlock(glass_uranium, glass_uranium.getUnlocalizedName()); GameRegistry.registerBlock(glass_trinitite, glass_trinitite.getUnlocalizedName()); GameRegistry.registerBlock(glass_polonium, glass_polonium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 36b7819dc..d4330e79d 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -51,6 +51,7 @@ public class ConsumableRecipes { GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.chocolate_milk, 1), new Object[] { "paneGlass", new ItemStack(Items.dye, 1, 3), Items.milk_bucket, ModBlocks.block_niter, ModItems.sulfur, ModItems.sulfur, ModItems.sulfur, ModItems.powder_fire })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.loops), new Object[] { ModItems.flame_pony, Items.wheat, Items.sugar }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.loop_stew), new Object[] { ModItems.loops, ModItems.can_smart, Items.bowl }); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.coffee), new Object[] { "dustCoal", Items.milk_bucket, Items.potionitem, Items.sugar })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.coffee_radium), new Object[] { ModItems.coffee, ModItems.nugget_ra226 }); //Peas diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index a0608f65c..a6674c05d 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -50,12 +50,19 @@ public class MineralRecipes { RecipesCommon.add9To1(ModItems.ingot_dineutronium, ModBlocks.block_dineutronium); RecipesCommon.add1To9(ModBlocks.block_dineutronium, ModItems.ingot_dineutronium); - + RecipesCommon.add9To1(ModItems.powder_xe135_tiny, ModItems.powder_xe135); RecipesCommon.add1To9(ModItems.powder_xe135, ModItems.powder_xe135_tiny); + RecipesCommon.add9To1(ModItems.powder_cs137_tiny, ModItems.powder_cs137); + RecipesCommon.add1To9(ModItems.powder_cs137, ModItems.powder_cs137_tiny); + RecipesCommon.add9To1(ModItems.powder_i131_tiny, ModItems.powder_i131); + RecipesCommon.add1To9(ModItems.powder_i131, ModItems.powder_i131_tiny); RecipesCommon.add9To1(ModItems.nugget_technetium, ModItems.ingot_technetium); RecipesCommon.add1To9(ModItems.ingot_technetium, ModItems.nugget_technetium); + + RecipesCommon.add9To1(ModItems.ingot_bismuth, ModBlocks.block_bismuth); + RecipesCommon.add1To9(ModBlocks.block_bismuth, ModItems.ingot_bismuth); RecipesCommon.add9To1(ModItems.nugget_bismuth, ModItems.ingot_bismuth); RecipesCommon.add1To9(ModItems.ingot_bismuth, ModItems.nugget_bismuth); @@ -174,7 +181,7 @@ public class MineralRecipes { GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_scrap), 1), new Object[] { "###", "###", "###", '#', ModItems.dust }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_beryllium), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_beryllium }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_schrabidium), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_schrabidium }); - GameRegistry.addRecipe(new ItemStack(ModBlocks.block_schrabidium_cluster, 1), new Object[] { "#S#", "S#S", "#S#", '#', ModItems.ingot_schrabidium, 'S', ModItems.ingot_starmetal }); + GameRegistry.addRecipe(new ItemStack(ModBlocks.block_schrabidium_cluster, 1), new Object[] { "#S#", "SXS", "#S#", '#', ModItems.ingot_schrabidium, 'S', ModItems.ingot_starmetal, 'X', ModItems.ingot_schrabidate }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_euphemium), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_euphemium }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_advanced_alloy), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_advanced_alloy }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_magnetized_tungsten), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_magnetized_tungsten }); diff --git a/src/main/java/com/hbm/inventory/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/AssemblerRecipes.java index 0061efbde..e918cae2d 100644 --- a/src/main/java/com/hbm/inventory/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/AssemblerRecipes.java @@ -19,6 +19,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; +import com.hbm.config.GeneralConfig; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.Untested; import com.hbm.inventory.RecipesCommon.AStack; @@ -259,13 +260,10 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack("ingotSteel", 3), new ComparableStack(ModItems.ingot_polymer, 4), new OreDictStack("ingotRedCopperAlloy", 1), new ComparableStack(Items.redstone, 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("ingotSteel", 4), new OreDictStack("ingotIron", 4), new OreDictStack("plateSteel", 2), new OreDictStack("plateCopper", 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("ingotSteel", 4), new ComparableStack(ModItems.ingot_polymer, 4), new OreDictStack("ingotDesh", 2), new OreDictStack("plateSteel", 6), new ComparableStack(ModItems.plate_advanced_alloy, 4), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.wire_gold, 4), },300); - makeRecipe(new ComparableStack(ModBlocks.machine_reactor, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack("ingotSteel", 12), new OreDictStack("plateLead", 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new ComparableStack(ModItems.ingot_asbestos, 4)},150); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack("plateLead", 6), new OreDictStack("plateDenseLead", 4), new OreDictStack("plateCopper", 2), },150); makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack("ingotSteel", 8), new OreDictStack("plateSteel", 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new ComparableStack(ModItems.ingot_starmetal, 1), new OreDictStack("dyeRed", 1), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(Blocks.piston, 4), new OreDictStack("ingotSteel", 6), new OreDictStack("ingotRedCopperAlloy", 2), new OreDictStack("plateCopper", 4), new ComparableStack(ModItems.wire_red_copper, 6), },200); makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack("ingotSteel", 4), new OreDictStack("plateTitanium", 6), new OreDictStack("plateCopper", 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_reactor_small, 1), new AStack[] {new OreDictStack("ingotSteel", 6), new ComparableStack(ModItems.ingot_polymer, 4), new OreDictStack("plateLead", 8), new OreDictStack("plateCopper", 4), new OreDictStack("ingotLead", 12), new OreDictStack("ingotRedCopperAlloy", 6), new ComparableStack(ModItems.circuit_copper, 8), new ComparableStack(ModItems.circuit_red_copper, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 5), new OreDictStack("plateSteel", 8), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.ingot_polymer, 6), },200); makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack("ingotSteel", 4), new OreDictStack("dustSulfur", 12), new OreDictStack("dustLead", 12), new OreDictStack("ingotRedCopperAlloy", 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new ComparableStack(ModItems.ingot_polymer, 4), new OreDictStack("dustCobalt", 12), new OreDictStack("dustLithium", 12), new ComparableStack(ModItems.ingot_advanced_alloy, 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); @@ -277,7 +275,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 28), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack("ingotSteel", 16), new OreDictStack("plateSteel", 20), new OreDictStack("plateCopper", 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.coil_tungsten, 8), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack("plateSteel", 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_canola, 1), },160); - makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack("ingotSteel", 8), new OreDictStack("plateCopper", 6), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.wire_red_copper, 16), new ComparableStack(ModItems.wire_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 4), new ComparableStack(ModItems.circuit_red_copper, 2), new ComparableStack(ModItems.plate_polymer, 8), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack("ingotSteel", 8), new OreDictStack("plateCopper", 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotDesh", 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack("ingotSteel", 16), new OreDictStack("plateTitanium", 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack("ingotSteel", 2), new OreDictStack("plateSteel", 6), new ComparableStack(ModItems.hull_big_steel, 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack("ingotSteel", 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.ingot_dura_steel, 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), },200); @@ -309,7 +307,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack("ingotTungsten", 6), new ComparableStack(ModItems.plate_combine_steel, 4), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new ComparableStack(ModItems.plate_combine_steel, 10), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack("dustDiamond", 6), new ComparableStack(ModItems.powder_magnetized_tungsten, 6), new OreDictStack("dustDesh", 4), },300); - makeRecipe(new ComparableStack(ModBlocks.fwatz_core, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new OreDictStack("dustDiamond", 8), new ComparableStack(ModItems.powder_magnetized_tungsten, 12), new OreDictStack("dustDesh", 8), new ComparableStack(ModItems.upgrade_power_3, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), },450); + makeRecipe(new ComparableStack(ModBlocks.fwatz_core, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new OreDictStack("dustDiamond", 8), new ComparableStack(ModItems.powder_magnetized_tungsten, 12), new OreDictStack("dustDesh", 8), new ComparableStack(ModItems.upgrade_power_3, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.circuit_bismuth, 8)},450); makeRecipe(new ComparableStack(ModBlocks.nuke_gadget, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier3, 1), new ComparableStack(ModItems.wire_gold, 6), new OreDictStack("dyeGray", 6), },300); makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 1), new ComparableStack(ModItems.wire_aluminium, 6), new OreDictStack("dyeBlue", 4), },300); makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 2), new ComparableStack(ModItems.wire_copper, 6), new OreDictStack("dyeYellow", 6), },300); @@ -463,8 +461,8 @@ public class AssemblerRecipes { new OreDictStack("plateDenseLead", 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.ingot_polymer, 8), - new ComparableStack(ModItems.circuit_red_copper, 24), - new ComparableStack(ModItems.circuit_gold, 12) + new ComparableStack(ModItems.circuit_red_copper, 8), + new ComparableStack(ModItems.circuit_bismuth, 3) }, 600); makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] { new ComparableStack(ModItems.hull_big_steel, 1), @@ -698,6 +696,11 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.block_cap_fritz, 1), new AStack[] { new ComparableStack(ModItems.cap_fritz, 128) }, 10); makeRecipe(new ComparableStack(ModBlocks.block_cap_sunset, 1), new AStack[] { new ComparableStack(ModItems.cap_sunset, 128) }, 10); makeRecipe(new ComparableStack(ModBlocks.block_cap_star, 1), new AStack[] { new ComparableStack(ModItems.cap_star, 128) }, 10); + + if(!GeneralConfig.enable528) { + makeRecipe(new ComparableStack(ModBlocks.machine_reactor, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack("ingotSteel", 12), new OreDictStack("plateLead", 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new ComparableStack(ModItems.ingot_asbestos, 4)},150); + makeRecipe(new ComparableStack(ModBlocks.machine_reactor_small, 1), new AStack[] {new OreDictStack("ingotSteel", 6), new ComparableStack(ModItems.ingot_polymer, 4), new OreDictStack("plateLead", 8), new OreDictStack("plateCopper", 4), new OreDictStack("ingotLead", 12), new OreDictStack("ingotRedCopperAlloy", 6), new ComparableStack(ModItems.circuit_copper, 8), new ComparableStack(ModItems.circuit_red_copper, 4), },300); + } if(Loader.isModLoaded("Mekanism")) { diff --git a/src/main/java/com/hbm/inventory/SILEXRecipes.java b/src/main/java/com/hbm/inventory/SILEXRecipes.java index 738dfb09c..734121bef 100644 --- a/src/main/java/com/hbm/inventory/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/SILEXRecipes.java @@ -13,6 +13,7 @@ import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; import com.hbm.util.WeightedRandomObject; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; @@ -281,6 +282,13 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_ra226), 3)) ); + + recipes.put(new ComparableStack(Blocks.gravel, 1), new SILEXRecipe(1000, 250) + .addOut(new WeightedRandomObject(new ItemStack(Items.flint), 80)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_boron), 5)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_lithium), 10)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.fluorite), 5)) + ); } public static SILEXRecipe getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 10ce6af38..3938362ca 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -2,7 +2,6 @@ package com.hbm.inventory.gui; import java.util.ArrayList; import java.util.List; -import java.util.Set; import org.apache.commons.lang3.math.NumberUtils; import org.lwjgl.input.Keyboard; @@ -71,20 +70,12 @@ public class GUIRBMKConsole extends GuiInfoContainer { if(index > 0 && index < console.columns.length) { RBMKColumn col = console.columns[index]; - if(col != null && col.data != null) { + if(col != null) { List list = new ArrayList(); - - Set keys = col.data.func_150296_c(); list.add(col.type.toString()); - - for(String key : keys) { - list.add(key + ": " + col.data.getTag(key)); - } - - if(col != null) { - this.func_146283_a(list, mouseX, mouseY); - } + list.addAll(col.getFancyStats()); + this.func_146283_a(list, mouseX, mouseY); } } } @@ -247,6 +238,8 @@ public class GUIRBMKConsole extends GuiInfoContainer { case BLANK: break; case MODERATOR: break; case REFLECTOR: break; + case OUTGASSER: break; + case BREEDER: break; case CONTROL: int color = col.data.getShort("color"); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 6846820ed..82c7e003e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2418,7 +2418,7 @@ public class ModItems { sat_base = new Item().setUnlocalizedName("sat_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_base"); thruster_nuclear = new Item().setUnlocalizedName("thruster_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_nuclear"); - undefined = new Item().setUnlocalizedName("undefined").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":undefined"); + undefined = new ItemCustomLore().setUnlocalizedName("undefined").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":undefined"); billet_uranium = new ItemHazard(ItemHazard.u * ItemHazard.billet).setUnlocalizedName("billet_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_uranium"); billet_u233 = new ItemHazard(ItemHazard.u233 * ItemHazard.billet).setUnlocalizedName("billet_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_u233"); diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKLid.java b/src/main/java/com/hbm/items/machine/ItemRBMKLid.java index 6e94aa4dc..1c1490798 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKLid.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKLid.java @@ -49,7 +49,6 @@ public class ItemRBMKLid extends Item { world.setBlockMetadataWithNotify(pos[0], pos[1], pos[2], meta + RBMKBase.offset, 3); stack.stackSize--; - player.inventoryContainer.detectAndSendChanges(); return true; } diff --git a/src/main/java/com/hbm/items/special/ItemCustomLore.java b/src/main/java/com/hbm/items/special/ItemCustomLore.java index 9b1958204..afd3a3fad 100644 --- a/src/main/java/com/hbm/items/special/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/special/ItemCustomLore.java @@ -1,6 +1,7 @@ package com.hbm.items.special; import java.util.List; +import java.util.Random; import com.hbm.config.GeneralConfig; import com.hbm.items.ModItems; @@ -415,7 +416,31 @@ public class ItemCustomLore extends Item { list.add("with the difference that Technetium is also available"); list.add("from PWRs.\" <- THAT is what I needed to hear."); } + + if(this == ModItems.undefined) { + + if(player.worldObj.rand.nextInt(10) == 0) { + list.add(EnumChatFormatting.DARK_RED + "UNDEFINED"); + } else { + Random rand = new Random(System.currentTimeMillis() / 500); + + if(setSize == 0) + setSize = Item.itemRegistry.getKeys().size(); + + int r = rand.nextInt(setSize); + + Item item = Item.getItemById(r); + + if(item != null) { + list.add(new ItemStack(item).getDisplayName()); + } else { + list.add(EnumChatFormatting.RED + "ERROR #" + r); + } + } + } } + + static int setSize = 0; @Override public EnumRarity getRarity(ItemStack p_77613_1_) { diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index eaeaa0b2f..dfd33d9bc 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 (3879)"; + public static final String VERSION = "1.0.27 BETA (3892)"; //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 2610da093..8099d46ea 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -647,6 +647,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModBlocks.sand_uranium, 8), new Object[] { "sand", "sand", "sand", "sand", "sand", "sand", "sand", "sand", "dustUranium" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModBlocks.sand_polonium, 8), new Object[] { "sand", "sand", "sand", "sand", "sand", "sand", "sand", "sand", "dustPolonium" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModBlocks.sand_boron, 8), new Object[] { "sand", "sand", "sand", "sand", "sand", "sand", "sand", "sand", "dustBoron" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModBlocks.sand_lead, 8), new Object[] { "sand", "sand", "sand", "sand", "sand", "sand", "sand", "sand", "dustLead" })); GameRegistry.addRecipe(new ItemStack(ModItems.rune_blank, 1), new Object[] { "PSP", "SDS", "PSP", 'P', ModItems.powder_magic, 'S', ModItems.ingot_starmetal, 'D', ModItems.dynosphere_dineutronium_charged }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rune_isa, 1), new Object[] { ModItems.rune_blank, ModItems.powder_spark_mix, ModItems.singularity_counter_resonant }); @@ -671,7 +672,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ams_catalyst_euphemium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_dagaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, "dustEuphemium", "dustEuphemium", "dustEuphemium", "dustEuphemium" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, "dustSchrabidium", "dustSchrabidium", "dustSchrabidium", "dustSchrabidium" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, "dustDineutronium", "dustDineutronium", "dustDineutronium", "dustDineutronium" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.plate_dineutronium, 'L', "blockLead", 'M', ModBlocks.block_meteor })); + GameRegistry.addRecipe(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', ModBlocks.block_dineutronium, 'M', ModItems.circuit_bismuth }); GameRegistry.addRecipe(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', ModItems.ingot_starmetal, 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); GameRegistry.addRecipe(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', ModItems.ingot_starmetal, 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.sellafield_core, 'L', ModItems.hull_small_steel }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', ModItems.ingot_starmetal, 'D', ModItems.plate_combine_steel, 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel })); @@ -734,6 +735,10 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.fireworks, 1), new Object[] { "PPP", "PPP", "WIW", 'P', Items.paper, 'W', "plankWood", 'I', "ingotIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.rbmk_lid, 4), new Object[] { "PPP", "CCC", "PPP", 'P', "plateSteel", 'C', ModBlocks.concrete_asbestos })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.rbmk_lid_glass, 4), new Object[] { "LLL", "BBB", "P P", 'P', "plateSteel", 'L', ModBlocks.glass_lead, 'B', ModBlocks.glass_boron })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.rbmk_lid_glass, 4), new Object[] { "BBB", "LLL", "P P", 'P', "plateSteel", 'L', ModBlocks.glass_lead, 'B', ModBlocks.glass_boron })); + GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_moderator, 1), new Object[] { " G ", "GRG", " G ", 'G', ModBlocks.block_graphite, 'R', ModBlocks.rbmk_blank }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_absorber, 1), new Object[] { " G ", "GRG", " G ", 'G', ModBlocks.block_boron, 'R', ModBlocks.rbmk_blank }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_reflector, 1), new Object[] { "GGG", "GRG", "GGG", 'G', ModItems.neutron_reflector, 'R', ModBlocks.rbmk_blank }); @@ -940,6 +945,7 @@ public class CraftingManager { GameRegistry.addSmelting(new ItemStack(ModBlocks.waste_trinitite), new ItemStack(ModBlocks.glass_trinitite), 0.25F); GameRegistry.addSmelting(new ItemStack(ModBlocks.waste_trinitite_red), new ItemStack(ModBlocks.glass_trinitite), 0.25F); GameRegistry.addSmelting(new ItemStack(ModBlocks.sand_boron), new ItemStack(ModBlocks.glass_boron), 0.25F); + GameRegistry.addSmelting(new ItemStack(ModBlocks.sand_lead), new ItemStack(ModBlocks.glass_lead), 0.25F); GameRegistry.addSmelting(ModItems.ingot_schraranium, new ItemStack(ModItems.nugget_schrabidium, 1), 2.0F); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 4429b9a57..4bf053422 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -932,7 +932,7 @@ public class MainRegistry { achStratum = new Achievement("achievement.stratum", "stratum", -4, -2, new ItemStack(ModBlocks.stone_gneiss), null).initIndependentStat().setSpecial().registerStat(); achMeltdown = new Achievement("achievement.meltdown", "meltdown", -4, 0, new ItemStack(ModBlocks.iter), null).initIndependentStat().setSpecial().registerStat(); achOmega12 = new Achievement("achievement.omega12", "omega12", -4, 2, ModItems.particle_digamma, null).initIndependentStat().setSpecial().registerStat(); - achRadium = new Achievement("achievement.radium", "radium", 0, 2, ModItems.particle_digamma, null).initIndependentStat().setSpecial().registerStat(); + achRadium = new Achievement("achievement.radium", "radium", -4, 4, ModItems.coffee_radium, null).initIndependentStat().setSpecial().registerStat(); bobMetalworks = new Achievement("achievement.metalworks", "metalworks", -2, 2, ModItems.bob_metalworks, null).initIndependentStat().registerStat(); bobAssembly = new Achievement("achievement.assembly", "assembly", 0, 2, ModItems.bob_assembly, bobMetalworks).initIndependentStat().registerStat(); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 5514aa202..a0249e3b5 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -10,6 +10,7 @@ import java.util.Map; import java.util.Random; import org.apache.commons.lang3.math.NumberUtils; +import org.apache.logging.log4j.Level; import com.google.common.collect.Multimap; import com.hbm.blocks.ModBlocks; @@ -31,6 +32,7 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.handler.BossSpawnHandler; import com.hbm.handler.EntityEffectHandler; import com.hbm.handler.RadiationWorldHandler; +import com.hbm.interfaces.IBomb; import com.hbm.handler.HTTPHandler; import com.hbm.items.IEquipReceiver; import com.hbm.items.ModItems; @@ -52,6 +54,7 @@ import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; import com.hbm.world.generator.TimedGenerator; +import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.common.gameevent.TickEvent; @@ -248,6 +251,40 @@ public class ModEventHandler { } } + @SubscribeEvent(priority = EventPriority.LOWEST) + public void onEntityDeathLast(LivingDeathEvent event) { + + if(event.entityLiving instanceof EntityPlayer) { + + EntityPlayer player = (EntityPlayer) event.entityLiving; + + for(int i = 0; i < player.inventory.getSizeInventory(); i++) { + + ItemStack stack = player.inventory.getStackInSlot(i); + + if(stack != null && stack.getItem() == ModItems.detonator_deadman) { + + if(stack.stackTagCompound != null) { + + int x = stack.stackTagCompound.getInteger("x"); + int y = stack.stackTagCompound.getInteger("y"); + int z = stack.stackTagCompound.getInteger("z"); + + if(!player.worldObj.isRemote && player.worldObj.getBlock(x, y, z) instanceof IBomb) { + + ((IBomb) player.worldObj.getBlock(x, y, z)).explode(player.worldObj, x, y, z); + + if(GeneralConfig.enableExtendedLogging) + MainRegistry.logger.log(Level.INFO, "[DET] Tried to detonate block at " + x + " / " + y + " / " + z + " by dead man's switch from " + player.getDisplayName() + "!"); + } + + player.inventory.setInventorySlotContents(i, null); + } + } + } + } + } + @SubscribeEvent public void spawnMob(LivingSpawnEvent event) { EntityLivingBase entity = event.entityLiving; diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java index 100a5b8a1..5984b1818 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java @@ -46,7 +46,7 @@ public class RenderRBMKControlRod extends TileEntitySpecialRenderer { double level = control.lastLevel + (control.level - control.lastLevel) * i; GL11.glTranslated(0, level, 0); - ResourceManager.rbmk_element.renderPart("Lid"); + ResourceManager.rbmk_rods.renderPart("Lid"); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index 946299e95..a5011fc51 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -327,7 +327,7 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv power -= 250; - if(power > 0) + if(power < 0) power = 0; if(this.dualCookTime == processingSpeed) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index 1b5fb4fba..fcb36e7e5 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -399,6 +399,10 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke return null; } + public static List getFancyStats(NBTTagCompound nbt) { + return null; + } + @Override public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 17, zCoord + 1); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index 4da5a48c2..c772fcf5c 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -1,9 +1,14 @@ package com.hbm.tileentity.machine.rbmk; +import java.util.ArrayList; +import java.util.List; import java.util.Set; +import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IControlReceiver; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -11,6 +16,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; @@ -179,6 +185,52 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.data = new NBTTagCompound(); } } + + @SuppressWarnings("incomplete-switch") + @SideOnly(Side.CLIENT) + public List getFancyStats() { + + if(this.data == null) + return null; + + /* + * Making a big switch with the values converted based on type by hand might seem "UnPrOfEsSiOnAl" and a major pain in the ass + * but my only other solution that would not have me do things in multiple places where they shouldn't be involved passing + * classes in the enum and then calling a special method from that class and quite honestly it turned out to be such a crime + * against humanity that I threw the towel. It's not fancy, I get that, please fuck off. + */ + + List stats = new ArrayList(); + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.heat", ((int)((this.data.getDouble("heat") * 10D)) / 10D) + "°C")); + switch(this.type) { + + case FUEL: + stats.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("rbmk.rod.depletion", ((int)(((1D - this.data.getDouble("enrichment")) * 100000)) / 1000D) + "%")); + stats.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("rbmk.rod.xenon", ((int)(((this.data.getDouble("xenon")) * 1000D)) / 1000D) + "%")); + stats.add(EnumChatFormatting.DARK_RED + I18nUtil.resolveKey("rbmk.rod.coreTemp", ((int)((this.data.getDouble("c_coreHeat") * 10D)) / 10D) + "°C")); + stats.add(EnumChatFormatting.RED + I18nUtil.resolveKey("rbmk.rod.skinTemp", ((int)((this.data.getDouble("c_heat") * 10D)) / 10D) + "°C", ((int)((this.data.getDouble("c_maxHeat") * 10D)) / 10D) + "°C")); + break; + case BOILER: + stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("rbmk.boiler.water", this.data.getInteger("water"), this.data.getInteger("maxWater"))); + stats.add(EnumChatFormatting.WHITE + I18nUtil.resolveKey("rbmk.boiler.steam", this.data.getInteger("steam"), this.data.getInteger("maxSteam"))); + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.boiler.type", I18nUtil.resolveKey(FluidType.values()[this.data.getShort("type")].getUnlocalizedName()))); + break; + case CONTROL: + + if(this.data.hasKey("color")) { + short col = this.data.getShort("color"); + + if(col >= 0 && col < RBMKColor.values().length) + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control." + RBMKColor.values()[col].name().toLowerCase())); + } + + case CONTROL_AUTO: + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control.level", ((int)((this.data.getDouble("level") * 100D))) + "%")); + break; + } + + return stats; + } } public static enum ColumnType { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java index abd45806c..c5873648f 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java @@ -20,6 +20,10 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase { public TileEntityRBMKControl() { super(0); } + + public boolean hasLid() { + return true; + } @Override public void updateEntity() { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 3eb649565..84f0873d8 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; @@ -42,8 +43,6 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM if(!worldObj.isRemote) { - super.updateEntity(); - if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { ItemRBMKRod rod = ((ItemRBMKRod)slots[0].getItem()); @@ -69,6 +68,12 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM hasRod = true; + if(!this.hasLid()) { + ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, (float) ((this.fluxFast + this.fluxSlow) * 0.05F)); + } + + super.updateEntity(); + } else { this.fluxFast = 0; @@ -160,6 +165,21 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM if(te instanceof TileEntityRBMKAbsorber) { break; } + + if(te instanceof TileEntityRBMKBase) { + continue; + } + + int limit = RBMKDials.getColumnHeight(worldObj); + int hits = 0; + for(int h = 0; h <= limit; h++) { + + if(!worldObj.getBlock(xCoord + dir.offsetX * i, yCoord + h, zCoord + dir.offsetZ * i).isOpaqueCube()) + hits++; + } + + if(hits > 0) + ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, (float) (flux * 0.05F * hits / (float)limit)); } } } @@ -256,6 +276,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM data.setDouble("enrichment", rod.getEnrichment(slots[0])); data.setDouble("xenon", rod.getPoison(slots[0])); data.setDouble("c_heat", rod.getHullHeat(slots[0])); + data.setDouble("c_coreHeat", rod.getCoreHeat(slots[0])); data.setDouble("c_maxHeat", rod.meltingPoint); } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c22a22b9b..475a1a259 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -709,6 +709,7 @@ item.billet_plutonium_fuel.name=Plutoniumkernbrennstoffbillet item.billet_schrabidium.name=Schrabidiumbillet item.billet_schrabidium_fuel.name=Schrabidiumkernbrennstoffbillet item.billet_solinium.name=Soliniumbillet +item.billet_technetium.name=Technetium-99-Billet item.billet_th232.name=Thorium-232-Billet item.billet_thorium_fuel.name=Thoriumkernbrennstoffbillet item.billet_u233.name=Uran-233-Billet @@ -1885,6 +1886,7 @@ item.powder_cobalt_tiny.name=Kleiner Haufen Cobaltstaub item.powder_combine_steel.name=CMB-Stahlstaub item.powder_copper.name=Kupferstaub item.powder_cs137.name=Caesium-137-Staub +item.powder_cs137_tiny.name=Kleiner Haufen Caesium-137-Staub item.powder_daffergon.name=Daffergonstaub item.powder_desh.name=Deshstaub item.powder_desh_mix.name=Deshmischung @@ -1994,6 +1996,7 @@ item.rbmk_pellet_pu238be.name=Pu238Be-Neutronenquellenpellet item.rbmk_pellet_thmeu.name=ThMEU-Kernbrennstoffpellet item.rbmk_pellet_ueu.name=NU-Kernbrennstoffpellet item.rbmk_lid.name=RBMK-Abdeckplatte +item.rbmk_lid_glass.name=RBMK-Glasabdeckung item.rbmk_tool.name=RBMK-Konsolen-Verlinkungsgerät item.rbmk_tool.desc=Schleichen und Rechtsclick auf RBMK um Position zu speichern,$Schleichen und Rechtsclick auf Konsole um zu verlinken! item.rbmk_tool.linked=Position gespeichert! @@ -2424,6 +2427,21 @@ radar.detectPlayers=Spieler erkennen radar.redMode=Redstone Mode$Ein: Redstonesignal basiert auf Nähe$Aus: Redstonesignal basiert auf Größe radar.smartMode=Smart Mode$Redstonesignal ignoriert aufsteigende Raketen +rbmk.heat=Komponententemperatur: %s +rbmk.boiler.water=Wasser: %s / %s +rbmk.boiler.steam=Dampf: %s / %s +rbmk.boiler.type=Kompressor: %s +rbmk.control.level=%s +rbmk.control.red=§cote Gruppe +rbmk.control.yellow=§eGelbe Gruppe +rbmk.control.green=§aGrüne Gruppe +rbmk.control.blue=§1Blaue Gruppe +rbmk.control.purple=§5Lila Gruppe +rbmk.rod.depletion=Erschöpfung: %s +rbmk.rod.xenon=Xenonvergiftung: %s +rbmk.rod.coreTemp=Kerntemperatur: %s +rbmk.rod.skinTemp=Außentemperatur: %s / %s + tile.absorber.name=Strahlungs-Absorber tile.absorber_green.name=Fortgeschrittener Strahlungs-Absorber tile.absorber_pink.name=Elite Strahlungs-Absorber @@ -2454,6 +2472,7 @@ tile.block_aluminium.name=Aluminiumblock tile.block_asbestos.name=Asbestblock tile.block_australium.name=Australiumblock tile.block_beryllium.name=Berylliumblock +tile.block_bismuth.name=Bismutblock tile.block_boron.name=Borblock tile.block_cap_fritz.name=Fritz-Kola Kronkorkenblock tile.block_cap_korl.name=Korl Kronkorkenblock @@ -2684,6 +2703,7 @@ tile.gas_radon_dense.name=Dichtes Radongas tile.gas_radon_tomb.name=Grabgas tile.geiger.name=Geigerzähler tile.glass_boron.name=Borglas +tile.glass_lead.name=Bleiglas tile.glass_polonium.name=Poloniumglas tile.glass_trinitite.name=Trinity-Glas tile.glass_uranium.name=Uranglas @@ -2969,6 +2989,7 @@ tile.residue.name=Wolkenrückstände tile.safe.name=Panzerschrank tile.sand_boron.name=Borsand tile.sand_boron_layer.name=Borsanddecke +tile.sand_lead.name=Bleisand tile.sand_polonium.name=Poloniumsand tile.sand_uranium.name=Uransand tile.sat_dock.name=Frachtlandeplattform diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9f16f2a69..fd17ed64e 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -777,6 +777,7 @@ item.billet_plutonium_fuel.name=Plutonium Fuel Billet item.billet_schrabidium.name=Schrabidium Billet item.billet_schrabidium_fuel.name=Schrabidium Fuel Billet item.billet_solinium.name=Solinium Billet +item.billet_technetium.name=Technetium-99 Billet item.billet_th232.name=Thorium-232 Billet item.billet_thorium_fuel.name=Thorium Fuel Billet item.billet_u233.name=Uranium-233 Billet @@ -1953,6 +1954,7 @@ item.powder_cobalt_tiny.name=Tiny Pile of Cobalt Powder item.powder_combine_steel.name=CMB Steel Powder item.powder_copper.name=Copper Powder item.powder_cs137.name=Caesium-137 Powder +item.powder_cs137_tiny.name=Tiny Pile of Caesium-137 Powder item.powder_daffergon.name=Daffergon Powder item.powder_desh.name=Desh Powder item.powder_desh_mix.name=Desh Blend @@ -2045,6 +2047,7 @@ item.rbmk_fuel_pu238be.name=Pu238Be RBMK Neutron Source item.rbmk_fuel_thmeu.name=ThMEU RBMK Fuel Rod item.rbmk_fuel_ueu.name=NU RBMK Fuel Rod item.rbmk_lid.name=RBMK Cover Panel +item.rbmk_lid_glass.name=RBMK Glass Cover Panel item.rbmk_pellet_balefire.name=Balefire Fuel Pellet item.rbmk_pellet_balefire_gold.name=Flashgold Fuel Pellet item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r @@ -2492,6 +2495,21 @@ radar.detectPlayers=Detect Players radar.redMode=Redstone Mode$On: Redstone output based on range$Off: Redstone output based on tier radar.smartMode=Smart Mode$Redstone output ignores ascending missiles +rbmk.heat=Column temperature: %s +rbmk.boiler.water=Feedwater: %s / %s +rbmk.boiler.steam=Steam: %s / %s +rbmk.boiler.type=Compressor: %s +rbmk.control.level=%s +rbmk.control.red=§cRed Group +rbmk.control.yellow=§eYellow Group +rbmk.control.green=§aGreen Group +rbmk.control.blue=§1Blue Group +rbmk.control.purple=§5Purple Group +rbmk.rod.depletion=Depletion: %s +rbmk.rod.xenon=Xenon poison: %s +rbmk.rod.coreTemp=Core temperature: %s +rbmk.rod.skinTemp=Skin temperature: %s / %s + tile.absorber.name=Radiation Absorber tile.absorber_green.name=Advanced Radiation Absorber tile.absorber_pink.name=Elite Radiation Absorber @@ -2522,6 +2540,7 @@ tile.block_aluminium.name=Block of Aluminium tile.block_asbestos.name=Block of Asbestos tile.block_australium.name=Block of Australium tile.block_beryllium.name=Block of Beryllium +tile.block_bismuth.name=Block of Bismuth tile.block_boron.name=Block of Boron tile.block_cap_fritz.name=Block of Fritz Cola Bottle Caps tile.block_cap_korl.name=Block of Korl Bottle Caps @@ -2768,6 +2787,7 @@ tile.gas_radon_dense.name=Dense Radon Gas tile.gas_radon_tomb.name=Tomb Gas tile.geiger.name=Geiger Counter tile.glass_boron.name=Boron Glass +tile.glass_lead.name=Lead Glass tile.glass_polonium.name=Polonium Glass tile.glass_trinitite.name=Trinity Glass tile.glass_uranium.name=Uranium Glass @@ -3053,6 +3073,7 @@ tile.residue.name=Cloud Residue tile.safe.name=Safe tile.sand_boron.name=Boron Sand tile.sand_boron_layer.name=Boron Sand Layer +tile.sand_lead.name=Lead Sand tile.sand_polonium.name=Polonium Sand tile.sand_uranium.name=Uranium Sand tile.sat_dock.name=Cargo Landing Pad diff --git a/src/main/resources/assets/hbm/textures/blocks/block_bismuth.png b/src/main/resources/assets/hbm/textures/blocks/block_bismuth.png new file mode 100644 index 0000000000000000000000000000000000000000..5c855e9aa4235218c019a4df34e4ade2a41f180c GIT binary patch literal 664 zcmV;J0%!e+P)1gh6h_b5o0;+7#EP8|L_ws4L;_LZE*(;8H#`Wh0k1&8 zBT#Lf2SAowP*|Y|GJ+6CS#O-#wY@XgS&EG}F}E7sJ9EGD&CK;ay#JUPW7yu_CXQo_ zF#u?-X*3#KTwJgUAq37jwAKJzdfLJJg6NWKn8d~1{=T< z;30x7%ej`bMw!6Cnh?bB@%e?C$Pj?JuM(0i}EB z1&~m!mhKzg(Bu!J`>NJDCs0xm1OY-!sJa=CLkNM8k|d64|AobJS>#P@9tiec?QwGQ znlGO}@$%Uo08&b=9d@pudwWLd^^IxRLHzd437P=@{e{XFUA7643a@@Gubl$sQH zp7$U>h4bI%D6NoE(jWA()?$po+};*MQcCHtLJhxNy0xT78{h$+h9!q0000