diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 492812a06..71fb891c6 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -107,6 +107,7 @@ public class MineralRecipes { addBillet(ModItems.billet_australium, ModItems.ingot_australium, ModItems.nugget_australium, "nuggetAustralium"); addBillet(ModItems.billet_australium_greater, ModItems.nugget_australium_greater); addBillet(ModItems.billet_australium_lesser, ModItems.nugget_australium_lesser); + addBillet(ModItems.billet_nuclear_waste, ModItems.nuclear_waste, ModItems.nuclear_waste_tiny); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_thorium_fuel, 3), new Object[] { ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_u233 }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_thorium_fuel, 1), new Object[] { "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetUranium233", "nuggetUranium233" })); diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 0e6362ce2..3cbe9da1f 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -373,7 +373,8 @@ public class EntityEffectHandler { if(world.getTotalWorldTime() % freq == entity.getEntityId() % freq) { world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:player.cough", 1.0F, 1.0F); - if (new Random().nextInt(6) > 1) { + + if(entity.getRNG().nextInt(6) > 1) { if(coughsBlood) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index c59fd7a25..8d4e83662 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -87,6 +87,7 @@ public class HazardRegistry { public static final float trx = 25.0F; public static final float trn = 0.1F; public static final float wst = 15.0F; + public static final float wstv = 7.5F; public static final float yc = u; public static final float fo = 10F; @@ -144,7 +145,6 @@ public class HazardRegistry { HazardSystem.register(egg_balefire_shard, makeData(RADIATION, bf * nugget)); HazardSystem.register(egg_balefire, makeData(RADIATION, bf * ingot)); - HazardSystem.register(trinitite, makeData(RADIATION, trn * ingot)); HazardSystem.register(nuclear_waste_long, makeData(RADIATION, 5F)); HazardSystem.register(nuclear_waste_long_tiny, makeData(RADIATION, 0.5F)); HazardSystem.register(nuclear_waste_short, new HazardData().addEntry(RADIATION, 30F).addEntry(HOT, 5F)); @@ -153,10 +153,14 @@ public class HazardRegistry { HazardSystem.register(nuclear_waste_long_depleted_tiny, makeData(RADIATION, 0.05F)); HazardSystem.register(nuclear_waste_short_depleted, makeData(RADIATION, 3F)); HazardSystem.register(nuclear_waste_short_depleted_tiny, makeData(RADIATION, 0.3F)); - HazardSystem.register(nuclear_waste, makeData(RADIATION, 15F)); - HazardSystem.register(nuclear_waste_tiny, makeData(RADIATION, 1.5F)); - HazardSystem.register(nuclear_waste_vitrified, makeData(RADIATION, 7.5F)); - HazardSystem.register(nuclear_waste_vitrified_tiny, makeData(RADIATION, 0.75F)); + + HazardSystem.register(trinitite, makeData(RADIATION, trn * ingot)); + HazardSystem.register(nuclear_waste, makeData(RADIATION, wst * ingot)); + HazardSystem.register(billet_nuclear_waste, makeData(RADIATION, wst * billet)); + HazardSystem.register(nuclear_waste_tiny, makeData(RADIATION, wst * nugget)); + HazardSystem.register(nuclear_waste_vitrified, makeData(RADIATION, wstv * ingot)); + HazardSystem.register(nuclear_waste_vitrified_tiny, makeData(RADIATION, wstv * nugget)); + HazardSystem.register(waste_uranium, makeData(RADIATION, 15F)); HazardSystem.register(waste_thorium, makeData(RADIATION, 10F)); HazardSystem.register(waste_plutonium, makeData(RADIATION, 15F)); diff --git a/src/main/java/com/hbm/hazard/HazardSystem.java b/src/main/java/com/hbm/hazard/HazardSystem.java index 04977488a..c2452feba 100644 --- a/src/main/java/com/hbm/hazard/HazardSystem.java +++ b/src/main/java/com/hbm/hazard/HazardSystem.java @@ -5,7 +5,9 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; +import com.hbm.hazard.modifier.HazardModifier; import com.hbm.hazard.transformer.HazardTransformerBase; +import com.hbm.hazard.type.HazardTypeBase; import com.hbm.interfaces.Untested; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -141,6 +143,18 @@ public class HazardSystem { return entries; } + public static float getHazardLevelFromStack(ItemStack stack, HazardTypeBase hazard) { + List entries = getHazardsFromStack(stack); + + for(HazardEntry entry : entries) { + if(entry.type == hazard) { + return HazardModifier.evalAllModifiers(stack, null, entry.baseLevel, entry.mods); + } + } + + return 0F; + } + /** * Will grab and iterate through all assigned hazards of the given stack and apply their effects to the holder. * @param stack diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index f201b5714..84817edfd 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -459,23 +459,35 @@ public class AnvilRecipes { ).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.pile_rod_uranium), - new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.billet_uranium, 3)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 2))}).setTier(2)); - if (GeneralConfig.enable528) { + new ComparableStack(ModItems.pile_rod_uranium), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.billet_uranium, 3)), + new AnvilOutput(new ItemStack(ModItems.plate_iron, 2)) + }).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.pile_rod_plutonium), - new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.billet_pu_mix, 2)),new AnvilOutput(new ItemStack(ModItems.nuclear_waste_tiny, 6)),new AnvilOutput(new ItemStack(ModItems.plate_iron, 1))}).setTier(2)); + new ComparableStack(ModItems.pile_rod_source), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.billet_ra226be, 3)), + new AnvilOutput(new ItemStack(ModItems.plate_iron, 2)) + }).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModItems.pile_rod_boron), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.ingot_boron, 2)), + new AnvilOutput(new ItemStack(Items.stick, 2)) + }).setTier(2)); + + if(GeneralConfig.enable528) { + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModItems.pile_rod_plutonium), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.billet_pu_mix, 2)), + new AnvilOutput(new ItemStack(ModItems.billet_nuclear_waste, 1)), + new AnvilOutput(new ItemStack(ModItems.plate_iron, 1)) + }).setTier(2)); } else { - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.pile_rod_plutonium), - new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.billet_pu_mix, 3)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 2))}).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModItems.pile_rod_plutonium), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.billet_pu_mix, 3)), + new AnvilOutput(new ItemStack(ModItems.plate_iron, 2)) + }).setTier(2)); } - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.pile_rod_source), - new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.billet_ra226be, 3)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 2))}).setTier(2)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.pile_rod_boron), - new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_boron, 2)), new AnvilOutput(new ItemStack(Items.stick, 2))}).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.machine_industrial_generator), new AnvilOutput[] { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index e6f798a9a..d9a1d5939 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -206,6 +206,7 @@ public class ModItems { public static Item billet_beryllium; public static Item billet_bismuth; public static Item billet_zirconium; + public static Item billet_nuclear_waste; public static Item nugget_th232; public static Item nugget_uranium; @@ -2608,6 +2609,7 @@ public class ModItems { billet_zfb_bismuth = new Item().setUnlocalizedName("billet_zfb_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_bismuth"); billet_zfb_pu241 = new Item().setUnlocalizedName("billet_zfb_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_pu241"); billet_zfb_am_mix = new Item().setUnlocalizedName("billet_zfb_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_am_mix"); + billet_nuclear_waste = new Item().setUnlocalizedName("billet_nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_nuclear_waste"); ingot_dura_steel = new ItemCustomLore().setUnlocalizedName("ingot_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dura_steel"); ingot_polymer = new ItemCustomLore().setUnlocalizedName("ingot_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_polymer"); @@ -5526,6 +5528,7 @@ public class ModItems { GameRegistry.registerItem(billet_zfb_am_mix, billet_zfb_am_mix.getUnlocalizedName()); GameRegistry.registerItem(billet_yharonite, billet_yharonite.getUnlocalizedName()); GameRegistry.registerItem(billet_balefire_gold, billet_balefire_gold.getUnlocalizedName()); + GameRegistry.registerItem(billet_nuclear_waste, billet_nuclear_waste.getUnlocalizedName()); //Dusts & Other GameRegistry.registerItem(cinnebar, cinnebar.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 0c3ed1949..7db854b65 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -6,9 +6,10 @@ import java.util.List; import com.hbm.config.VersatileConfig; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.hazard.HazardRegistry; +import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; -import com.hbm.interfaces.IItemHazard; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; import com.hbm.items.special.ItemWasteLong; @@ -63,8 +64,8 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu Item item = slots[i].getItem(); - if(item instanceof IItemHazard && worldObj.getTotalWorldTime() % 20 == 0) { - rad += ((IItemHazard)item).getModule().radiation; + if(worldObj.getTotalWorldTime() % 20 == 0) { + rad += HazardSystem.getHazardLevelFromStack(slots[i], HazardRegistry.RADIATION); } int meta = slots[i].getItemDamage(); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 39057f212..69afb0c71 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -765,6 +765,7 @@ item.billet_les.name=Schwach angereichertes Schrabidiumkernbrennstoffbillet item.billet_mox_fuel.name=MOX-Kernbrennstoffbillet item.billet_neptunium.name=Neptuniumbillet item.billet_neptunium_fuel.name=Neptuniumkernbrennstoffbillet +item.billet_nuclear_waste.name=Atommüllbillet item.billet_po210be.name=Po210Be-Billet item.billet_polonium.name=Polonium-210-Billet item.billet_pu_mix.name=Reaktorfähiges Plutoniumbillet @@ -1958,6 +1959,7 @@ item.pile_rod_uranium.name=Chicago Pile Uranstab item.pill_iodine.name=Iodpille item.pin.name=Haarklammer item.pipes_steel.name=Stahlrohre +item.pirfenidone.name=Pirfenidon item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet. item.piston_selenium.name=Sternmotorenkolben item.plan_c.name=Plan C diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index beabe45a0..161bec7b7 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -833,6 +833,7 @@ item.billet_les.name=Low Enriched Schrabidium Fuel Billet item.billet_mox_fuel.name=MOX Fuel Billet item.billet_neptunium.name=Neptunium Billet item.billet_neptunium_fuel.name=Neptunium Fuel Billet +item.billet_nuclear_waste.name=Nuclear Waste Billet item.billet_po210be.name=Po210Be Billet item.billet_polonium.name=Polonium-210 Billet item.billet_pu_mix.name=Reactor Grade Plutonium Billet diff --git a/src/main/resources/assets/hbm/textures/items/billet_nuclear_waste.png b/src/main/resources/assets/hbm/textures/items/billet_nuclear_waste.png new file mode 100644 index 000000000..956593945 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/billet_nuclear_waste.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_nuclear_waste_base.png b/src/main/resources/assets/hbm/textures/items/billet_nuclear_waste_base.png new file mode 100644 index 000000000..5f2c5ece9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/billet_nuclear_waste_base.png differ