From d23e44257263c29d23502c57ae6a1fc72770cc96 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 30 May 2021 22:55:59 +0200 Subject: [PATCH] storage drum, RBMK waste reprocessing --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../java/com/hbm/config/GeneralConfig.java | 7 + .../java/com/hbm/config/VersatileConfig.java | 11 + .../java/com/hbm/crafting/MineralRecipes.java | 23 ++- .../java/com/hbm/crafting/RecipesCommon.java | 8 + src/main/java/com/hbm/handler/GUIHandler.java | 14 ++ .../hbm/handler/nei/SILEXRecipeHandler.java | 4 +- .../java/com/hbm/inventory/SILEXRecipes.java | 195 +++++++++++++++++- .../container/ContainerStorageDrum.java | 71 +++++++ .../com/hbm/inventory/gui/GUIStorageDrum.java | 40 ++++ src/main/java/com/hbm/items/ModItems.java | 39 +++- .../com/hbm/items/special/ItemHazard.java | 20 +- .../com/hbm/items/special/ItemWasteLong.java | 57 +++++ .../com/hbm/items/special/ItemWasteShort.java | 57 +++++ .../java/com/hbm/main/CraftingManager.java | 3 +- .../com/hbm/modules/ItemHazardModule.java | 16 +- .../hbm/render/item/ItemRenderLibrary.java | 11 + .../machine/TileEntityStorageDrum.java | 130 ++++++++++++ .../machine/TileEntityWasteDrum.java | 2 - src/main/resources/assets/hbm/lang/de_DE.lang | 18 +- src/main/resources/assets/hbm/lang/en_US.lang | 16 +- .../textures/blocks/machine_storage_drum.png | Bin 0 -> 271 bytes .../hbm/textures/gui/processing/gui_drum.png | Bin 1804 -> 2370 bytes .../{circuit_s.png => circuit_bismuth.png} | Bin .../items/{ingot_s.png => ingot_bismuth.png} | Bin .../{nugget_s.png => nugget_bismuth.png} | Bin .../hbm/textures/items/powder_cs137_tiny.png | Bin 0 -> 218 bytes .../hbm/textures/items/powder_i131_tiny.png | Bin 0 -> 231 bytes .../hbm/textures/items/rbmk_fuel_hep.png | Bin 0 -> 536 bytes .../assets/hbm/textures/items/undefined.png | Bin 0 -> 185 bytes 30 files changed, 688 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerStorageDrum.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIStorageDrum.java create mode 100644 src/main/java/com/hbm/items/special/ItemWasteLong.java create mode 100644 src/main/java/com/hbm/items/special/ItemWasteShort.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_storage_drum.png rename src/main/resources/assets/hbm/textures/items/{circuit_s.png => circuit_bismuth.png} (100%) rename src/main/resources/assets/hbm/textures/items/{ingot_s.png => ingot_bismuth.png} (100%) rename src/main/resources/assets/hbm/textures/items/{nugget_s.png => nugget_bismuth.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/items/powder_cs137_tiny.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_i131_tiny.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_fuel_hep.png create mode 100644 src/main/resources/assets/hbm/textures/items/undefined.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index e7df9b1d7..6351b3a9f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -876,7 +876,7 @@ public class ModBlocks { public static Block machine_waste_drum; public static final int guiID_waste_drum = 79; public static Block machine_storage_drum; - public static final int guiID_storage_drum = 79; + public static final int guiID_storage_drum = 118; public static Block turret_light; public static Block turret_heavy; diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 871dca075..cfb9ec69b 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -29,6 +29,8 @@ public class GeneralConfig { public static boolean enableCrosshairs = true; public static boolean enableBabyMode = false; + public static boolean enable528 = false; + public static void loadFromConfig(Configuration config) { final String CATEGORY_GENERAL = "01_general"; @@ -56,5 +58,10 @@ public class GeneralConfig { enableVirus = config.get(CATEGORY_GENERAL, "1.21_enableVirus", false).getBoolean(false); enableCrosshairs = config.get(CATEGORY_GENERAL, "1.22_enableCrosshairs", true).getBoolean(true); enableBabyMode = config.get(CATEGORY_GENERAL, "1.23_enableBabyMode", false).getBoolean(false); + + final String CATEGORY_528 = "528"; + enable528 = config.get(CATEGORY_528, "enable528Mode", false).getBoolean(false); + + if(enable528) enableBabyMode = false; } } diff --git a/src/main/java/com/hbm/config/VersatileConfig.java b/src/main/java/com/hbm/config/VersatileConfig.java index ba8d1d340..c46bc73bd 100644 --- a/src/main/java/com/hbm/config/VersatileConfig.java +++ b/src/main/java/com/hbm/config/VersatileConfig.java @@ -39,4 +39,15 @@ public class VersatileConfig { public static boolean hasPotionSickness(EntityLivingBase entity) { return entity.isPotionActive(HbmPotion.potionsickness); } + + static int minute = 60 * 20; + static int hour = 60 * minute; + + public static int getLongDecayChance() { + return GeneralConfig.enable528 ? 15 * hour : 3 * hour; + } + + public static int getShortDecayChance() { + return GeneralConfig.enable528 ? 3 * hour : 15 * minute; + } } diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index c48cf1b5d..62932b4ff 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -2,6 +2,8 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; +import com.hbm.items.special.ItemWasteLong; +import com.hbm.items.special.ItemWasteShort; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.init.Items; @@ -52,14 +54,19 @@ public class MineralRecipes { RecipesCommon.add9To1(ModItems.powder_xe135_tiny, ModItems.powder_xe135); RecipesCommon.add1To9(ModItems.powder_xe135, ModItems.powder_xe135_tiny); - RecipesCommon.add9To1(ModItems.nuclear_waste_long_tiny, ModItems.nuclear_waste_long); - RecipesCommon.add1To9(ModItems.nuclear_waste_long, ModItems.nuclear_waste_long_tiny); - RecipesCommon.add9To1(ModItems.nuclear_waste_long_depleted_tiny, ModItems.nuclear_waste_long_depleted); - RecipesCommon.add1To9(ModItems.nuclear_waste_long_depleted, ModItems.nuclear_waste_long_depleted_tiny); - RecipesCommon.add9To1(ModItems.nuclear_waste_short_tiny, ModItems.nuclear_waste_short); - RecipesCommon.add1To9(ModItems.nuclear_waste_short, ModItems.nuclear_waste_short_tiny); - RecipesCommon.add9To1(ModItems.nuclear_waste_short_depleted_tiny, ModItems.nuclear_waste_short_depleted); - RecipesCommon.add1To9(ModItems.nuclear_waste_short_depleted, ModItems.nuclear_waste_short_depleted_tiny); + for(int i = 0; i < ItemWasteLong.WasteClass.values().length; i++) { + RecipesCommon.add9To1SameMeta(ModItems.nuclear_waste_long_tiny, ModItems.nuclear_waste_long, i); + RecipesCommon.add1To9SameMeta(ModItems.nuclear_waste_long, ModItems.nuclear_waste_long_tiny, i); + RecipesCommon.add9To1SameMeta(ModItems.nuclear_waste_long_depleted_tiny, ModItems.nuclear_waste_long_depleted, i); + RecipesCommon.add1To9SameMeta(ModItems.nuclear_waste_long_depleted, ModItems.nuclear_waste_long_depleted_tiny, i); + } + + for(int i = 0; i < ItemWasteShort.WasteClass.values().length; i++) { + RecipesCommon.add9To1SameMeta(ModItems.nuclear_waste_short_tiny, ModItems.nuclear_waste_short, i); + RecipesCommon.add1To9SameMeta(ModItems.nuclear_waste_short, ModItems.nuclear_waste_short_tiny, i); + RecipesCommon.add9To1SameMeta(ModItems.nuclear_waste_short_depleted_tiny, ModItems.nuclear_waste_short_depleted, i); + RecipesCommon.add1To9SameMeta(ModItems.nuclear_waste_short_depleted, ModItems.nuclear_waste_short_depleted_tiny, i); + } RecipesCommon.add9To1(ModItems.fallout, ModBlocks.block_fallout); RecipesCommon.add1To9(ModBlocks.block_fallout, ModItems.fallout); diff --git a/src/main/java/com/hbm/crafting/RecipesCommon.java b/src/main/java/com/hbm/crafting/RecipesCommon.java index 8f18bd67e..3bcf4fee2 100644 --- a/src/main/java/com/hbm/crafting/RecipesCommon.java +++ b/src/main/java/com/hbm/crafting/RecipesCommon.java @@ -24,6 +24,10 @@ public class RecipesCommon { add1To9(new ItemStack(one), new ItemStack(nine, 9)); } + public static void add1To9SameMeta(Item one, Item nine, int meta) { + add1To9(new ItemStack(one, 1, meta), new ItemStack(nine, 9, meta)); + } + public static void add1To9(ItemStack one, ItemStack nine) { GameRegistry.addRecipe(nine, new Object[] { "#", '#', one }); } @@ -37,6 +41,10 @@ public class RecipesCommon { add9To1(new ItemStack(nine), new ItemStack(one)); } + public static void add9To1SameMeta(Item nine, Item one, int meta) { + add9To1(new ItemStack(nine, 1, meta), new ItemStack(one, 1, meta)); + } + public static void add9To1(ItemStack nine, ItemStack one) { GameRegistry.addRecipe(one, new Object[] { "###", "###", "###", '#', nine }); } diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index a8fade80b..7afca716b 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -820,6 +820,13 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_storage_drum: { + if(entity instanceof TileEntityStorageDrum) { + return new ContainerStorageDrum(player.inventory, (TileEntityStorageDrum) entity); + } + return null; + } } // NON-TE CONTAINERS @@ -1627,6 +1634,13 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_storage_drum: { + if(entity instanceof TileEntityStorageDrum) { + return new GUIStorageDrum(player.inventory, (TileEntityStorageDrum) entity); + } + return null; + } } // ITEM GUIS diff --git a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java index 18bb6ebe1..32700a1c4 100644 --- a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java @@ -48,7 +48,7 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler { weight += obj.itemWeight; } - int sep = outputs.size() > 3 ? 3 : 2; + int sep = recipe.outputs.size() > 4 ? 3 : 2; for(int i = 0; i < recipe.outputs.size(); i++) { @@ -57,7 +57,7 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler { if(i < sep) { outputs.add(new PositionedStack(obj.asStack(), 68, 24 + i * 18 - 9 * ((Math.min(recipe.outputs.size(), sep) + 1) / 2))); } else { - outputs.add(new PositionedStack(obj.asStack(), 116, 24 + (i - sep) * 18 - 9 * ((Math.min(recipe.outputs.size() - sep, sep)) / 2))); + outputs.add(new PositionedStack(obj.asStack(), 116, 24 + (i - sep) * 18 - 9 * ((Math.min(recipe.outputs.size() - sep, sep) + 1) / 2))); } chances.add(100 * obj.itemWeight / weight); diff --git a/src/main/java/com/hbm/inventory/SILEXRecipes.java b/src/main/java/com/hbm/inventory/SILEXRecipes.java index aa2149b43..738dfb09c 100644 --- a/src/main/java/com/hbm/inventory/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/SILEXRecipes.java @@ -9,6 +9,8 @@ import java.util.Map.Entry; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.special.ItemWasteLong; +import com.hbm.items.special.ItemWasteShort; import com.hbm.util.WeightedRandomObject; import net.minecraft.init.Items; @@ -69,15 +71,110 @@ public class SILEXRecipes { ); for(int i = 0; i < 5; i++) { + + // UEU // recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i), new SILEXRecipe(600, 100) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 9 - 2 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium), 1 + 2 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 87 - i * 6)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 9 - i * 2)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM.ordinal()), 2 + 3 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM.ordinal()), 2 + 5 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i + 5), new SILEXRecipe(600, 100) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 8 - 2 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium), 1 + 2 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 87 - i * 6)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 8 - i * 2)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM.ordinal()), 2 + 3 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM.ordinal()), 2 + 5 * i)) ); + // MEU // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 90 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM.ordinal()), 4 + 8 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM.ordinal()), 6 + 12 * i)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 89 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM.ordinal()), 4 + 8 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM.ordinal()), 6 + 12 * i)) ); + + // TH232 // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 90 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 20 * i)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 89 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 20 * i)) ); + + // LEP // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 90 - i * 15)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM.ordinal()), 10 + 15 * i)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 89 - i * 15)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM.ordinal()), 10 + 15 * i)) ); + + // MEP // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 85 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM.ordinal()), 15 + 20 * i)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu_mix), 84 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM.ordinal()), 15 + 20 * i)) ); + + // MOX // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 90 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM.ordinal()), 2 + 4 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM.ordinal()), 3 + 6 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM.ordinal()), 5 + 10 * i)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 89 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM.ordinal()), 2 + 4 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM.ordinal()), 3 + 6 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM.ordinal()), 5 + 10 * i)) ); + + // LEAUS // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 10 + 20 * i)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 10 + 20 * i)) ); + + // HEAUS // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 5 + 10 * i)) + .addOut(new WeightedRandomObject(new ItemStack(Items.gold_nugget), 5 + 10 * i)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 5 + 10 * i)) + .addOut(new WeightedRandomObject(new ItemStack(Items.gold_nugget), 5 + 10 * i)) ); + + // BALEFIRE // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(400, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_greater), 90 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mercury), 10 + 20 * i)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i + 5), new SILEXRecipe(400, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_greater), 89 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mercury), 10 + 20 * i)) ); + + // FLASHGOLD // recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire_gold, 1, i), new SILEXRecipe(600, 100) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 9 - 2 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 1 + 2 * i)) ); @@ -86,7 +183,97 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 8 - 2 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 1 + 2 * i)) ); + + // FLASHGOLD // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) ); } + + recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.URANIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 40)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 15)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 15)) + ); + recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.URANIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 75)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 5)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 20)) + ); + recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.URANIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_technetium), 30)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_ra226), 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 5)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 5)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 40)) + ); + recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.URANIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 15)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 35)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 5)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 45)) + ); + + recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 15)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_ra226), 15)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 5)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 5)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 40)) + ); + recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.PLUTONIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 35)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 45)) + ); + + recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 40)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 35)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 25)) + ); + recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 85)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 5)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 10)) + ); + + recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 40)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 40)) + ); + recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 55)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 45)) + ); + recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_polonium), 10)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 25)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 15)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 5)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 5)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 40)) + ); + recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 35)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 45)) + ); recipes.put(new ComparableStack(ModItems.fallout, 1), new SILEXRecipe(100, 100) .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust), 90)) diff --git a/src/main/java/com/hbm/inventory/container/ContainerStorageDrum.java b/src/main/java/com/hbm/inventory/container/ContainerStorageDrum.java new file mode 100644 index 000000000..6c7203f32 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerStorageDrum.java @@ -0,0 +1,71 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.TileEntityStorageDrum; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerStorageDrum extends Container { + + private TileEntityStorageDrum drum; + + public ContainerStorageDrum(InventoryPlayer invPlayer, TileEntityStorageDrum drum) { + this.drum = drum; + + int index = 0; + for(int j = 0; j < 6; j++) { + for(int i = 0; i < 6; i++) { + + if(i + j > 1 && i + j < 9 && 5 - i + j > 1 && i + 5 - j > 1) { + this.addSlotToContainer(new Slot(drum, index, 35 + i * 18, 18 + j * 18)); + index++; + } + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 140 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 198)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= drum.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, drum.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, drum.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return drum.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIStorageDrum.java b/src/main/java/com/hbm/inventory/gui/GUIStorageDrum.java new file mode 100644 index 000000000..14375f824 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIStorageDrum.java @@ -0,0 +1,40 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerStorageDrum; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityStorageDrum; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIStorageDrum extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_drum.png"); + private TileEntityStorageDrum drum; + + public GUIStorageDrum(InventoryPlayer invPlayer, TileEntityStorageDrum tedf) { + super(new ContainerStorageDrum(invPlayer, tedf)); + drum = tedf; + + this.xSize = 176; + this.ySize = 222; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.drum.hasCustomInventoryName() ? this.drum.getInventoryName() : I18n.format(this.drum.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 389d0c89f..37f11bf24 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -188,6 +188,7 @@ public class ModItems { public static Item nugget_pu238; public static Item nugget_pu239; public static Item nugget_pu240; + public static Item nugget_pu241; public static Item nugget_pu_mix; public static Item nugget_neptunium; public static Item nugget_polonium; @@ -205,6 +206,8 @@ public class ModItems { public static Item plate_iron; public static Item ingot_lead; public static Item nugget_lead; + public static Item ingot_bismuth; + public static Item nugget_bismuth; public static Item plate_lead; public static Item nugget_schrabidium; public static Item plate_schrabidium; @@ -236,6 +239,8 @@ public class ModItems { public static Item sat_base; public static Item thruster_nuclear; + public static Item undefined; + public static Item ingot_dura_steel; public static Item ingot_polymer; @@ -294,9 +299,11 @@ public class ModItems { public static Item powder_co60; public static Item powder_au198; public static Item powder_i131; + public static Item powder_i131_tiny; public static Item powder_xe135; public static Item powder_xe135_tiny; public static Item powder_cs137; + public static Item powder_cs137_tiny; public static Item powder_at209; public static Item powder_schrabidium; public static Item powder_schrabidate; @@ -429,6 +436,7 @@ public class ModItems { public static Item circuit_red_copper; public static Item circuit_gold; public static Item circuit_schrabidium; + public static Item circuit_bismuth; public static Item mechanism_revolver_1; public static Item mechanism_revolver_2; @@ -2404,6 +2412,8 @@ public class ModItems { photo_panel = new Item().setUnlocalizedName("photo_panel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":photo_panel"); 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"); 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"); @@ -2502,6 +2512,7 @@ public class ModItems { nugget_pu238 = new ItemHazard(ItemHazard.pu238 * ItemHazard.nugget, true).setUnlocalizedName("nugget_pu238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu238"); nugget_pu239 = new ItemHazard(ItemHazard.pu239 * ItemHazard.nugget).setUnlocalizedName("nugget_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu239"); nugget_pu240 = new ItemHazard(ItemHazard.pu240 * ItemHazard.nugget).setUnlocalizedName("nugget_pu240").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu240"); + nugget_pu241 = new ItemHazard().addRadiation(ItemHazard.pu241 * ItemHazard.nugget).addFire(1).toItem().setUnlocalizedName("nugget_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu241"); nugget_pu_mix = new ItemHazard(ItemHazard.purg * ItemHazard.nugget).setUnlocalizedName("nugget_pu_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu_mix"); nugget_neptunium = new ItemHazard(ItemHazard.np237 * ItemHazard.nugget).setUnlocalizedName("nugget_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_neptunium"); nugget_polonium = new ItemHazard(ItemHazard.po210 * ItemHazard.nugget, true).setUnlocalizedName("nugget_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_polonium"); @@ -2515,6 +2526,8 @@ public class ModItems { wire_tungsten = new ItemCustomLore().setUnlocalizedName("wire_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_tungsten"); neutron_reflector = new Item().setUnlocalizedName("neutron_reflector").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":neutron_reflector"); nugget_lead = new Item().setUnlocalizedName("nugget_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_lead"); + ingot_bismuth = new Item().setUnlocalizedName("ingot_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bismuth"); + nugget_bismuth = new Item().setUnlocalizedName("nugget_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_bismuth"); nugget_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.nugget, false, true).setUnlocalizedName("nugget_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium"); nugget_beryllium = new Item().setUnlocalizedName("nugget_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_beryllium"); hazmat_cloth = new Item().setUnlocalizedName("hazmat_cloth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth"); @@ -2559,9 +2572,11 @@ public class ModItems { powder_polonium = new ItemHazard(ItemHazard.po210 * ItemHazard.powder, true).setUnlocalizedName("powder_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_polonium"); powder_co60 = new ItemHazard().addRadiation(ItemHazard.co60 * ItemHazard.powder).addFire(5).toItem().setUnlocalizedName("powder_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_co60"); powder_i131 = new ItemHazard().addRadiation(ItemHazard.i131 * ItemHazard.powder).addFire(15).toItem().setUnlocalizedName("powder_i131").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_i131"); + powder_i131_tiny = new ItemHazard().addRadiation(ItemHazard.i131 * ItemHazard.powder_tiny).addFire(15).toItem().setUnlocalizedName("powder_i131_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_i131_tiny"); powder_xe135 = new ItemHazard().addRadiation(ItemHazard.xe135 * ItemHazard.powder).addFire(15).toItem().setUnlocalizedName("powder_xe135").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_xe135"); powder_xe135_tiny = new ItemHazard().addRadiation(ItemHazard.xe135 * ItemHazard.powder_tiny).addFire(15).toItem().setUnlocalizedName("powder_xe135_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_xe135_tiny"); powder_cs137 = new ItemHazard().addRadiation(ItemHazard.cs137 * ItemHazard.powder).addFire(5).toItem().setUnlocalizedName("powder_cs137").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cs137"); + powder_cs137_tiny = new ItemHazard().addRadiation(ItemHazard.cs137 * ItemHazard.powder).addFire(5).toItem().setUnlocalizedName("powder_cs137_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cs137_tiny"); powder_au198 = new ItemHazard().addRadiation(ItemHazard.au198 * ItemHazard.powder).addFire(15).toItem().setUnlocalizedName("powder_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_au198"); powder_at209 = new ItemHazard().addRadiation(ItemHazard.at209 * ItemHazard.powder).addFire(15).addBlinding().toItem().setUnlocalizedName("powder_at209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_at209"); powder_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.powder, true, true).setUnlocalizedName("powder_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidium"); @@ -2763,6 +2778,7 @@ public class ModItems { circuit_red_copper = new Item().setUnlocalizedName("circuit_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_red_copper"); circuit_gold = new Item().setUnlocalizedName("circuit_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_gold"); circuit_schrabidium = new ItemCustomLore().setUnlocalizedName("circuit_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_schrabidium"); + circuit_bismuth = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_bismuth"); circuit_targeting_tier1 = new Item().setUnlocalizedName("circuit_targeting_tier1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_targeting_tier1"); circuit_targeting_tier2 = new Item().setUnlocalizedName("circuit_targeting_tier2").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_targeting_tier2"); circuit_targeting_tier3 = new Item().setUnlocalizedName("circuit_targeting_tier3").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_targeting_tier3"); @@ -3334,14 +3350,14 @@ public class ModItems { .addDigamma(0.1F).toItem().setUnlocalizedName("rbmk_fuel_drx").setTextureName(RefStrings.MODID + ":rbmk_fuel_drx"); trinitite = new ItemHazard().addRadiation(ItemHazard.trn * ItemHazard.ingot).toItem().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new"); - nuclear_waste_long = new ItemHazard(5F).setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long"); - nuclear_waste_long_tiny = new ItemHazard(0.5F).setUnlocalizedName("nuclear_waste_long_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_tiny"); - nuclear_waste_short = new ItemHazard(30F, true).setUnlocalizedName("nuclear_waste_short").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short"); - nuclear_waste_short_tiny = new ItemHazard(3F, true).setUnlocalizedName("nuclear_waste_short_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_tiny"); - nuclear_waste_long_depleted = new ItemHazard(0.5F).setUnlocalizedName("nuclear_waste_long_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_depleted"); - nuclear_waste_long_depleted_tiny = new ItemHazard(0.05F).setUnlocalizedName("nuclear_waste_long_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_depleted_tiny"); - nuclear_waste_short_depleted = new ItemHazard(3F).setUnlocalizedName("nuclear_waste_short_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted"); - nuclear_waste_short_depleted_tiny = new ItemHazard(0.3F).setUnlocalizedName("nuclear_waste_short_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted_tiny"); + nuclear_waste_long = new ItemWasteLong().addRadiation(5F).toItem().setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long"); + nuclear_waste_long_tiny = new ItemWasteLong().addRadiation(0.5F).toItem().setUnlocalizedName("nuclear_waste_long_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_tiny"); + nuclear_waste_short = new ItemWasteShort().addRadiation(30F).addFire(5).toItem().setUnlocalizedName("nuclear_waste_short").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short"); + nuclear_waste_short_tiny = new ItemWasteShort().addRadiation(3F).addFire(5).toItem().setUnlocalizedName("nuclear_waste_short_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_tiny"); + nuclear_waste_long_depleted = new ItemWasteLong().addRadiation(0.5F).toItem().setUnlocalizedName("nuclear_waste_long_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_depleted"); + nuclear_waste_long_depleted_tiny = new ItemWasteLong().addRadiation(0.05F).toItem().setUnlocalizedName("nuclear_waste_long_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_depleted_tiny"); + nuclear_waste_short_depleted = new ItemWasteShort().addRadiation(3F).toItem().setUnlocalizedName("nuclear_waste_short_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted"); + nuclear_waste_short_depleted_tiny = new ItemWasteShort().addRadiation(0.3F).toItem().setUnlocalizedName("nuclear_waste_short_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted_tiny"); nuclear_waste = new ItemHazard(15F).setUnlocalizedName("nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste"); nuclear_waste_tiny = new ItemHazard(2F).setUnlocalizedName("nuclear_waste_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_tiny"); waste_uranium = new ItemHazard(15F).setUnlocalizedName("waste_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); @@ -5013,6 +5029,7 @@ public class ModItems { GameRegistry.registerItem(ingot_aluminium, ingot_aluminium.getUnlocalizedName()); GameRegistry.registerItem(ingot_steel, ingot_steel.getUnlocalizedName()); GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName()); + GameRegistry.registerItem(ingot_bismuth, ingot_bismuth.getUnlocalizedName()); GameRegistry.registerItem(ingot_beryllium, ingot_beryllium.getUnlocalizedName()); GameRegistry.registerItem(ingot_cobalt, ingot_cobalt.getUnlocalizedName()); GameRegistry.registerItem(ingot_boron, ingot_boron.getUnlocalizedName()); @@ -5120,9 +5137,11 @@ public class ModItems { GameRegistry.registerItem(powder_polonium, powder_polonium.getUnlocalizedName()); GameRegistry.registerItem(powder_co60, powder_co60.getUnlocalizedName()); GameRegistry.registerItem(powder_i131, powder_i131.getUnlocalizedName()); + GameRegistry.registerItem(powder_i131_tiny, powder_i131_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_xe135, powder_xe135.getUnlocalizedName()); GameRegistry.registerItem(powder_xe135_tiny, powder_xe135_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_cs137, powder_cs137.getUnlocalizedName()); + GameRegistry.registerItem(powder_cs137_tiny, powder_cs137_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_au198, powder_au198.getUnlocalizedName()); GameRegistry.registerItem(powder_at209, powder_at209.getUnlocalizedName()); GameRegistry.registerItem(powder_titanium, powder_titanium.getUnlocalizedName()); @@ -5252,6 +5271,7 @@ public class ModItems { GameRegistry.registerItem(nugget_pu238, nugget_pu238.getUnlocalizedName()); GameRegistry.registerItem(nugget_pu239, nugget_pu239.getUnlocalizedName()); GameRegistry.registerItem(nugget_pu240, nugget_pu240.getUnlocalizedName()); + GameRegistry.registerItem(nugget_pu241, nugget_pu241.getUnlocalizedName()); GameRegistry.registerItem(nugget_pu_mix, nugget_pu_mix.getUnlocalizedName()); GameRegistry.registerItem(nugget_neptunium, nugget_neptunium.getUnlocalizedName()); GameRegistry.registerItem(nugget_polonium, nugget_polonium.getUnlocalizedName()); @@ -5260,6 +5280,7 @@ public class ModItems { GameRegistry.registerItem(nugget_au198, nugget_au198.getUnlocalizedName()); GameRegistry.registerItem(nugget_ra226, nugget_ra226.getUnlocalizedName()); GameRegistry.registerItem(nugget_lead, nugget_lead.getUnlocalizedName()); + GameRegistry.registerItem(nugget_bismuth, nugget_bismuth.getUnlocalizedName()); GameRegistry.registerItem(nugget_beryllium, nugget_beryllium.getUnlocalizedName()); GameRegistry.registerItem(nugget_schrabidium, nugget_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(nugget_solinium, nugget_solinium.getUnlocalizedName()); @@ -5457,6 +5478,7 @@ public class ModItems { GameRegistry.registerItem(circuit_red_copper, circuit_red_copper.getUnlocalizedName()); GameRegistry.registerItem(circuit_gold, circuit_gold.getUnlocalizedName()); GameRegistry.registerItem(circuit_schrabidium, circuit_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(circuit_bismuth, circuit_bismuth.getUnlocalizedName()); //Military Circuits GameRegistry.registerItem(circuit_targeting_tier1, circuit_targeting_tier1.getUnlocalizedName()); @@ -6036,6 +6058,7 @@ public class ModItems { GameRegistry.registerItem(debris_graphite, debris_graphite.getUnlocalizedName()); GameRegistry.registerItem(debris_metal, debris_metal.getUnlocalizedName()); GameRegistry.registerItem(debris_fuel, debris_fuel.getUnlocalizedName()); + GameRegistry.registerItem(undefined, undefined.getUnlocalizedName()); GameRegistry.registerItem(scrap, scrap.getUnlocalizedName()); GameRegistry.registerItem(waste_uranium_hot, waste_uranium_hot.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemHazard.java b/src/main/java/com/hbm/items/special/ItemHazard.java index afac46d7b..0a3c60b1e 100644 --- a/src/main/java/com/hbm/items/special/ItemHazard.java +++ b/src/main/java/com/hbm/items/special/ItemHazard.java @@ -14,15 +14,15 @@ import net.minecraft.world.World; public class ItemHazard extends ItemCustomLore implements IItemHazard { - //CO60 5a α 030.00Rad/s Spicy - //TC99 211,000a α 002.75Rad/s Spicy - //I181 192h α 150.00Rad/s 2 much spice :( - //XE135 9h α aaaaaaaaaaaaaaaa - //CS137 30a α 020.00Rad/s Spicy - //AU192 64h α 500.00Rad/s 2 much spice :( - //AT209 5h α like 2k or sth idk bruv + //CO60 5a β− 030.00Rad/s Spicy + //TC99 211,000a β− 002.75Rad/s Spicy + //I181 192h β− 150.00Rad/s 2 much spice :( + //XE135 9h β− aaaaaaaaaaaaaaaa + //CS137 30a β− 020.00Rad/s Spicy + //AU192 64h β− 500.00Rad/s 2 much spice :( + //AT209 5h β+ like 2k or sth idk bruv //PO210 138d α 075.00Rad/s Spicy - //RA226 1,600a α 010.00Rad/s + //RA226 1,600a α 007.50Rad/s //TH232 14,000,000,000a α 000.10Rad/s //U233 160,000a α 005.00Rad/s //U235 700,000,000a α 001.00Rad/s @@ -31,6 +31,7 @@ public class ItemHazard extends ItemCustomLore implements IItemHazard { //PU238 88a α 010.00Rad/s Spicy //PU239 24,000a α 005.00Rad/s //PU240 6,600a α 007.50Rad/s + //PU241 14a β− 025.00Rad/s Spicy public static final float co60 = 30.0F; public static final float tc99 = 2.75F; @@ -40,7 +41,7 @@ public class ItemHazard extends ItemCustomLore implements IItemHazard { public static final float au198 = 500.0F; public static final float at209 = 2000.0F; public static final float po210 = 75.0F; - public static final float ra226 = 10.0F; + public static final float ra226 = 7.5F; public static final float th232 = 0.1F; public static final float thf = 1.75F; public static final float u = 0.35F; @@ -55,6 +56,7 @@ public class ItemHazard extends ItemCustomLore implements IItemHazard { public static final float pu238 = 10.0F; public static final float pu239 = 5.0F; public static final float pu240 = 7.5F; + public static final float pu241 = 25.0F; public static final float puf = 4.25F; public static final float mox = 2.5F; public static final float sa326 = 15.0F; diff --git a/src/main/java/com/hbm/items/special/ItemWasteLong.java b/src/main/java/com/hbm/items/special/ItemWasteLong.java new file mode 100644 index 000000000..9f32d090b --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemWasteLong.java @@ -0,0 +1,57 @@ +package com.hbm.items.special; + +import java.util.List; + +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemWasteLong extends ItemHazard { + + public ItemWasteLong() { + super(); + this.setHasSubtypes(true); + this.setMaxDamage(0); + this.setCreativeTab(MainRegistry.controlTab); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for(int i = 0; i < WasteClass.values().length; ++i) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + list.add(EnumChatFormatting.ITALIC + WasteClass.values()[rectify(stack.getItemDamage())].name); + + super.addInformation(stack, player, list, bool); + } + + private int rectify(int meta) { + return Math.abs(meta) % WasteClass.values().length; + } + + public enum WasteClass { + + //all decayed versions include lead-types and classic nuclear waste + URANIUM("Uranium"), //plutonium 239 and 240, neptunium 237 / - + NEPTUNIUM("Neptunium"), //plutonium 239 and uranium 238 / - + THORIUM("Thorium"); //uranium 233 and uranium 235 / - + + String name; + + private WasteClass(String name) { + this.name = name; + } + } +} diff --git a/src/main/java/com/hbm/items/special/ItemWasteShort.java b/src/main/java/com/hbm/items/special/ItemWasteShort.java new file mode 100644 index 000000000..c33cba1b9 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemWasteShort.java @@ -0,0 +1,57 @@ +package com.hbm.items.special; + +import java.util.List; + +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemWasteShort extends ItemHazard { + + public ItemWasteShort() { + super(); + this.setHasSubtypes(true); + this.setMaxDamage(0); + this.setCreativeTab(MainRegistry.controlTab); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for(int i = 0; i < WasteClass.values().length; ++i) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + list.add(EnumChatFormatting.ITALIC + WasteClass.values()[rectify(stack.getItemDamage())].name); + + super.addInformation(stack, player, list, bool); + } + + private int rectify(int meta) { + return Math.abs(meta) % WasteClass.values().length; + } + + public enum WasteClass { + + //all decayed versions include lead-types and classic nuclear waste + URANIUM("Uranium"), //fresh recycling makes iodine, caesium and technetium, depleted turns into neptunium + PLUTONIUM("Plutonium"), //funny fission fragments + pu240 and 241 / am241 + u238 (actually u236 but fuck you) + NEPTUNIUM("Neptunium"); //funny fission fragments + polonium and pu238 and 239 / u235 + + String name; + + private WasteClass(String name) { + this.name = name; + } + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 4e551847b..33b639519 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -41,7 +41,6 @@ public class CraftingManager { ConsumableRecipes.register(); PowderRecipes.register(); - GameRegistry.addRecipe(new TestCraftingHandler(new ItemStack(ModItems.lignite), new ItemStack(ModItems.powder_coal, 1))); GameRegistry.addRecipe(new RBMKFuelCraftingHandler()); } @@ -755,6 +754,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_steel, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_tungsten, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotTungsten" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_storage_drum), new Object[] { "LLL", "L#L", "LLL", 'L', "plateLead", '#', ModItems.tank_steel })); + GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe, 6), new Object[] { "PPP", 'P', ModItems.hull_small_steel }); GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_rim }); GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_framed }); diff --git a/src/main/java/com/hbm/modules/ItemHazardModule.java b/src/main/java/com/hbm/modules/ItemHazardModule.java index 6735ec2fb..06cc97a2e 100644 --- a/src/main/java/com/hbm/modules/ItemHazardModule.java +++ b/src/main/java/com/hbm/modules/ItemHazardModule.java @@ -28,15 +28,15 @@ public class ItemHazardModule { * -it makes the system truly centralized and I don't have to add new cases to 5 different classes when adding a new hazard */ - float radiation; - float digamma; - int fire; - boolean blinding; - boolean asbestos; - boolean hydro; - float explosive; + public float radiation; + public float digamma; + public int fire; + public boolean blinding; + public boolean asbestos; + public boolean hydro; + public float explosive; - float tempMod = 1F; + public float tempMod = 1F; public void setMod(float tempMod) { this.tempMod = tempMod; diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 5aeb23d83..19b5db5b3 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -951,6 +951,17 @@ public class ItemRenderLibrary { RenderDemonLamp.demon_lamp.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.machine_storage_drum), new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glScaled(2, 2, 2); + bindTexture(ResourceManager.waste_drum_tex); + ResourceManager.waste_drum.renderAll(); + }}); } private static void bindTexture(ResourceLocation res) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 180d699cd..e6c46bd26 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -1,8 +1,25 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.config.VersatileConfig; +import com.hbm.interfaces.IItemHazard; +import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; public class TileEntityStorageDrum extends TileEntityMachineBase { + + private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; public TileEntityStorageDrum() { super(24); @@ -16,5 +33,118 @@ public class TileEntityStorageDrum extends TileEntityMachineBase { @Override public void updateEntity() { + if(!worldObj.isRemote) { + + float rad = 0; + + for(int i = 0; i < 24; i++) { + + if(slots[i] != null) { + + Item item = slots[i].getItem(); + + if(item instanceof IItemHazard && worldObj.getTotalWorldTime() % 20 == 0) { + rad += ((IItemHazard)item).getModule().radiation; + } + + if(item == ModItems.nuclear_waste_long && worldObj.rand.nextInt(VersatileConfig.getLongDecayChance()) == 0) { + slots[i] = new ItemStack(ModItems.nuclear_waste_long_depleted, 1, slots[i].getItemDamage()); + } + + if(item == ModItems.nuclear_waste_long_tiny && worldObj.rand.nextInt(VersatileConfig.getLongDecayChance() / 10) == 0) { + slots[i] = new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, slots[i].getItemDamage()); + } + + if(item == ModItems.nuclear_waste_short && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance()) == 0) { + slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted, 1, slots[i].getItemDamage()); + } + + if(item == ModItems.nuclear_waste_short_tiny && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { + slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, slots[i].getItemDamage()); + } + } + } + + if(rad > 0) { + radiate(worldObj, xCoord, yCoord, zCoord, rad); + } + } + } + + private void radiate(World world, int x, int y, int z, float rads) { + + double range = 32D; + + List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x + 0.5, y + 0.5, z + 0.5, x + 0.5, y + 0.5, z + 0.5).expand(range, range, range)); + + for(EntityLivingBase e : entities) { + + Vec3 vec = Vec3.createVectorHelper(e.posX - (x + 0.5), (e.posY + e.getEyeHeight()) - (y + 0.5), e.posZ - (z + 0.5)); + double len = vec.lengthVector(); + vec = vec.normalize(); + + float res = 0; + + for(int i = 1; i < len; i++) { + + int ix = (int)Math.floor(x + 0.5 + vec.xCoord * i); + int iy = (int)Math.floor(y + 0.5 + vec.yCoord * i); + int iz = (int)Math.floor(z + 0.5 + vec.zCoord * i); + + res += world.getBlock(ix, iy, iz).getExplosionResistance(null); + } + + if(res < 1) + res = 1; + + float eRads = rads; + eRads /= (float)res; + eRads /= (float)(len * len); + + ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads); + } + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + + Item item = itemStack.getItem(); + + if(item == ModItems.nuclear_waste_long || + item == ModItems.nuclear_waste_long_tiny || + item == ModItems.nuclear_waste_short || + item == ModItems.nuclear_waste_short_tiny) + return true; + + return false; + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + + Item item = itemStack.getItem(); + + if(item == ModItems.nuclear_waste_long_depleted || + item == ModItems.nuclear_waste_long_depleted_tiny || + item == ModItems.nuclear_waste_short_depleted || + item == ModItems.nuclear_waste_short_depleted_tiny) + return true; + + return false; + } + + @Override + public int getInventoryStackLimit() { + return 1; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return slots_arr; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java index 6891453db..9e5c739c6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java @@ -18,8 +18,6 @@ public class TileEntityWasteDrum extends TileEntity implements ISidedInventory { private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; - public boolean lock = false; - private String customName; public TileEntityWasteDrum() { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0394f2072..787c85ac6 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -258,6 +258,7 @@ container.satLinker=SatLink-Gerät container.siren=Sirene container.soyuzCapsule=Landekapsel container.soyuzLauncher=Soyuz-Startplatform +container.storageDrum=Atommüll-Lagertrommel container.teleLinker=TelLink-Gerät container.teleporter=Teleporter container.turretChekhov=Tschechows Gewehr @@ -1723,10 +1724,11 @@ item.nugget_neptunium_fuel.name=Neptuniumkernbrennstoffnugget item.nugget_plutonium.name=Plutoniumnugget item.nugget_plutonium_fuel.name=Plutoniumkernbrennstoffnugget item.nugget_polonium.name=Polonium-210-Nugget -item.nugget_pu_mix.name=Reactorfähiges Plutoniumnugget -item.nugget_pu238.name=Pu238-Nugget -item.nugget_pu239.name=Pu239-Nugget -item.nugget_pu240.name=Pu240-Nugget +item.nugget_pu_mix.name=Reaktorfähiges Plutoniumnugget +item.nugget_pu238.name=Plutonium-238-Nugget +item.nugget_pu239.name=Plutonium-239-Nugget +item.nugget_pu240.name=Plutonium-240-Nugget +item.nugget_pu241.name=Plutonium-241-Nugget item.nugget_ra226.name=Radium-226-Nugget item.nugget_reiium.name=Reiiumnugget item.nugget_schrabidium.name=Schrabidiumnugget @@ -1735,9 +1737,9 @@ item.nugget_solinium.name=Soliniumnugget item.nugget_technetium.name=Technetium-99-Nugget item.nugget_th232.name=Th232-Nugget item.nugget_thorium_fuel.name=Thoriumkernbrennstoffnugget -item.nugget_u233.name=U233-Nugget -item.nugget_u235.name=U235-Nugget -item.nugget_u238.name=U238-Nugget +item.nugget_u233.name=Uran-233-Nugget +item.nugget_u235.name=Uran-235-Nugget +item.nugget_u238.name=Uran-238-Nugget item.nugget_unobtainium.name=Unobtainiumnugget item.nugget_uranium.name=Urannugget item.nugget_uranium_fuel.name=Urankernbrennstoffnugget @@ -2300,6 +2302,7 @@ item.turret_spitfire_ammo.name=AA-Geschoss item.turret_tau_ammo.name=Tauonengeschütz-Uranmunition item.twinkie.name=Twinkie item.ullapool_caber.name=Ullapool'sche Stiel +item.undefined.name=Undefined item.upgrade_afterburn_1.name=Nachbrennerupgrade Mk.I item.upgrade_afterburn_2.name=Nachbrennerupgrade Mk.II item.upgrade_afterburn_3.name=Nachbrennerupgrade Mk.III @@ -2801,6 +2804,7 @@ tile.machine_siren.name=Sirene tile.machine_solar_boiler.name=Solarturmboiler tile.machine_spp_bottom.name=NPE-Potentialgenerator (Unterteil) tile.machine_spp_top.name=NPE-Potentialgenerator (Oberteil) +tile.machine_storage_drum.name=Atommüll-Lagertrommel tile.machine_telelinker.name=Geschütz-Telemetrie-Manager tile.machine_teleporter.name=Teleporter tile.machine_transformer.name=10k-20Hz-Transformator diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9c0195c88..1f0a04ca3 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -326,6 +326,7 @@ container.satLinker=SatLink Device container.siren=Siren container.soyuzCapsule=Cargo Landing Capsule container.soyuzLauncher=Soyuz Launch Platform +container.storageDrum=Nuclear Waste Storage Drum container.teleLinker=TelLink Device container.teleporter=Teleporter container.turretChekhov=Chekhov's Gun @@ -1792,9 +1793,10 @@ item.nugget_plutonium.name=Plutonium Nugget item.nugget_plutonium_fuel.name=Nugget of Plutonium Fuel item.nugget_polonium.name=Polonium-210 Nugget item.nugget_pu_mix.name=Reactor Grade Plutonium Nugget -item.nugget_pu238.name=Pu238 Nugget -item.nugget_pu239.name=Pu239 Nugget -item.nugget_pu240.name=Pu240 Nugget +item.nugget_pu238.name=Plutonium-238 Nugget +item.nugget_pu239.name=Plutonium-239 Nugget +item.nugget_pu240.name=Plutonium-240 Nugget +item.nugget_pu241.name=Plutonium-241 Nugget item.nugget_ra226.name=Radium-226 Nugget item.nugget_reiium.name=Reiium Nugget item.nugget_schrabidium.name=Schrabidium Nugget @@ -1803,9 +1805,9 @@ item.nugget_solinium.name=Solinium Nugget item.nugget_technetium.name=Technetium-99 Nugget item.nugget_th232.name=Th232 Nugget item.nugget_thorium_fuel.name=Nugget of Thorium Fuel -item.nugget_u233.name=U233 Nugget -item.nugget_u235.name=U235 Nugget -item.nugget_u238.name=U238 Nugget +item.nugget_u233.name=Uranium-233 Nugget +item.nugget_u235.name=Uranium-235 Nugget +item.nugget_u238.name=Uranium-238 Nugget item.nugget_unobtainium.name=Unobtainium Nugget item.nugget_uranium.name=Uranium Nugget item.nugget_uranium_fuel.name=Nugget of Uranium Fuel @@ -2368,6 +2370,7 @@ item.turret_spitfire_ammo.name=AA-Shell item.turret_tau_ammo.name=Tau Turret Uranium Ammo item.twinkie.name=Twinkie item.ullapool_caber.name=Ullapool Caber +item.undefined.name=Undefined item.upgrade_afterburn_1.name=Afterburner Upgrade Mk.I item.upgrade_afterburn_2.name=Afterburner Upgrade Mk.II item.upgrade_afterburn_3.name=Afterburner Upgrade Mk.III @@ -2885,6 +2888,7 @@ tile.machine_siren.name=Siren tile.machine_solar_boiler.name=Solar Tower Boiler tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom) tile.machine_spp_top.name=ZPE Potential Generator (Top) +tile.machine_storage_drum.name=Nuclear Waste Disposal Drum tile.machine_telelinker.name=Turret Telemetry Linker tile.machine_teleporter.name=Teleporter tile.machine_transformer.name=10k-20Hz Transformer diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_storage_drum.png b/src/main/resources/assets/hbm/textures/blocks/machine_storage_drum.png new file mode 100644 index 0000000000000000000000000000000000000000..1b4994153ad64dc84b4782e8fa6c6c08ec3ee044 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfq3hvj_Wp{CnmA|NpZKc3V6TaS;&Q^WA*8Mpw7_8@4Bvb{eNA?OG=&xMr(FGDC-< zkkgBk;f(bUH!_~H^u0Vq#q+~GVJC%S91VtS*}9R_GOxe<%lzT5<@M@ zE&F!gqLoso*3a60^Vg}Ly}z;+wwJAJVA}O}#;dfib@!_8)E?Z-&i~@z-8l>_EsNIA T_S1*~`iQ~P)z4*}Q$iB}=S*>x literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_drum.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_drum.png index 56db1aacf5d019bc237eca49c7e247fc47ef97dc..303794e68a33a38366d71b8fd2148dd153876ed7 100644 GIT binary patch literal 2370 zcmb7GdsLEX8vj5_N{m?DQY&whT25(csG*6IG>(@6H#KuCA+1PDO${k;K-1!-Qa8;L zDPWxvGSe={OREVpR9co+YN%yI-cUnGOc6o$bGF@SXJ$LQ??3PRT+Z)#zwbQ1=lA9Y zqB3R431r4ppdIPf@q=NIjLj&nr(~bz@s2;*jvcgZk%{R-)iDw#`U=Z|_JL zcEyFZ(<=qJJ~mkMtRGZT5piO-k$FEt_~8TZ&)%z#_Z-8V&B+moe5uet&FEMn0y{X_ zDWbv593k}kFyK!nz;{7__2$owTikFR5Z9gA7`w5qzCK*H+{_wsVIPM5@XedKFzlJb zsZ>cW@L-A1xL+xrPC=!oD|XP|!QSRw7ZKmt35SOdmT@>MA{@5E))9bt*Kw9$Rnv}p znRDd#6U|@WZU^t>;XS_=YC5!+&Y!8Hl{i6b<9EKOu%7_xi1=zCJJ8agVqiM9e&d*k43qo9=nMCqfm^^SH>rBf)&xJFI znF%p2`5%t2_Vg?=r=@srMACTo+ZfF?u9WL;KzMx9JVqrxZSk{`8Zfb>xVgQn<}q-r zBY^E}B__|O{f*4CF{Y89!>3NLV|~v<3Z__2;tPA^*gPs zujSyIiyW(M>L^NuRPkgLeT2zt@oOB6lEOOEfhd)8I|o1+8w!=q1lS=LfGJpwYQ1q6Fq@ymS=UrR zN$R<;pj*)}zZpFlFi@Hfq`t>->))vf6O^hu2QrBRCLC^m)|2k5(mxb)k@_i zC#UAK94!RV`d9(v7hoTNT)d3pj}Dggyg=m|04~SJ z2%%Son$Y1WK1*sv< zfA=C0*YD$ki??5$5^D>fY?Y=6n)g$f^>&yBbj3M>u4jfKZg|Q<);R<%;rqp4EMSv% z%c=zcrqto`Nfl5+QF$@?@a@;)*>F(@@@p)LUwnzXVautajDRHD;H^(3kYmiO+l56L zGGDOA+0JM?*&YM{RbL4^q`9R$6o844!TCJj=1_ z*Swa^K7Y{>;G5%{Q0olg>b`O zGX1s#TCA>@Q>l`O1^2*+i)O$MSZfayUI2Wep+N4E|G}8y7zU3?>gw|;{LVx1^4=j( z19KX5$Y>0z6@#uyQQ^ub#wS1VrDVQf?J&-IJXDZx!qCJZ|4{9|KwbxE1W!Ye6__xp zLUb5BZ0xhsw%_aK7mz@CErai8kBKi~XE<;eIvH&JDCobwI#pp`9>Ta0BEq;67FDd~ zK_kJkNANQ(f&X`rrAK}#f?rgz6~D;o-vH(7?Uq#zWpkauDH7GBmQRYZ1@DwfMHtrd z?Ghc$;K0JKEOk%ZHM^UX;0Clcq(a2tpsF5Y2xH8$z<17JSKJqN8WMpS|al9v6(1usGgGegzOE~T;7^D)vgA$ zsVwsM^=!PM^g5P@@8<^|yLsO$wGN!Vc~S7sv*r)W!~b1<|2{_i22*&r_+DRm=kPCH zKmVPrultvI`8d=5CpR~XD_xl2zVGKvv-kJ+7azSf;oe(@nm<3jv+=Xn<(bW%8ss(e z{PT4z*S@@XX1(vH;_1cn|EoKMb26|9GjOOe2>384%wTXZU~EWWVmQdc&;*xw^Klvf zg0SxU7SYEGEOgS-(|gw#OZ8rhW6u+AsOD)uyw&dihY!A%R#mr8Sk(njHrv74kPuzS z`k|_R&zFC1zEn87U&{Sv>3@}RhR?C5zlt@Vo;GwVdEenoc;Je}c&Q*I^ zfwHLv5>xhmd~hzi`mv)V4_m5{_9=H(>io|kk_|^AGasIA zzdJSG+IsDAyWmuYu$$IDo~`-9@TPd0mON8ky~5Vthp*?)n|tc%btCKC|1)--0IQ1p zm9)h4o2B>E?F^eQKMvCKpJuo1)1@z;j+|e0Jz@SzBZlpjR(}oN6wk|I-e6(6%? zm21C$ITE>2@tbAz)$6X{An9h}}R=BG0d(P@t3_3rSui!sy_k86yF@}u$ zVKIz3hkyaq-k!fIlKs|&oeUxD{9wW9O z#~BxEia#@C&3+Pm+o~XV{r&qp?d<=Dcxg(@id}r7BL8~J{&Q;T+`9Y1o_(&|xog*p z+&2zZ3sz}2%u;(E@%&$@kJu}=^SELeyOm*QZ5nO?b+@yqF-1P_zh)@7LVDFsCXJ&m z3v#25yDZ52z=M=hu$zIBwyvIGUXlB#x6~uxtjmIBGjvM+Tg{&H_-w!o;#a8;P#U_x2`qLwlWu7p}Eyp?A0Na`O9W-T$yt&meJ&-iu|r~ z#tan#>w z1mB7V$+9&&-jwElw`ZHV+?0a}0cw*!cAbAxe&c!0RkjDq_BQ8h-(MC9OyyGbpfH&)*zU$!%b5tM~L%%FASJeP4b5KWnOZzs=NQE||UiGB}x;F?4SZe*g01-0M~T z{&S{ECC%R)`j;o6tSV;N<)Y{A0heEHWDnxq1k6=@2b$`;eu2|-K4ZhT+@qog)Mh+! zW@7x&croM334y+4*BZh36)nqSkI1t3`OJF%_s=uxg0E}MuICW^B7^p=yy976VV%1rfZ6;wG7T0 z0-0CWKYmzJeTRvpEPo~>;dRJ=h3GZ5>{IFJBkGw`%Ljt=BG2_UkTf57%D=Me$ za(ONE_ohvm+wpUA+G>KHEi>e4W?ryrk688W#WAcx)mtY2oq~#qy52N3#FcZD3e6*MRd_N8Vwe P;}|?${an^LB{Ts5f1pu| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/powder_i131_tiny.png b/src/main/resources/assets/hbm/textures/items/powder_i131_tiny.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad4e079a7f036fe97e70c7c6dbc3c6dc04e7053 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU$h>-`l8TG z1}=La6xbNnmfYGV@N9Lf8uJuBr!}o@IhS{GX4tMc`el8}K`y2V75O5{SDqNB@MLu+ d|M=A^Uf*rB?@hpeKA=k(JYD@<);T3K0RR^dT*LqX literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_fuel_hep.png b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_hep.png new file mode 100644 index 0000000000000000000000000000000000000000..73fc44341b322d990d0f31aba0314a7b8d3937c2 GIT binary patch literal 536 zcmV+z0_XjSP)@D|pl6Cta!4YNTmOnx` zG#U-^JYV6V2okW@ZHd+zr4(gZA|fpFy>3fFawZ{*^E~Gk$J79kJBSEMDU?$D%sy6Y zq6q-#bUHMfO@_l^6}x#Bx7IQmjp7RM==FL`CKCXxwdpHmbCNs=&~P7x7Af;#Xt zU+4zkcE0bId2|8Z0e|CV9$mntJD`+8YhB%VnMW7!w{Jmo0p4;Ep)AW49$moIBfN58 z{?W|~*oXsuB-2_iwBbCDK9X_#1%PYKdkbxNGS0ZphDWj+z_0H=s`!67k|h8FRo&D- z{4K2m