diff --git a/src/main/java/com/hbm/hazard/HazardEntry.java b/src/main/java/com/hbm/hazard/HazardEntry.java index 1bdf2ad0f..358500973 100644 --- a/src/main/java/com/hbm/hazard/HazardEntry.java +++ b/src/main/java/com/hbm/hazard/HazardEntry.java @@ -3,6 +3,7 @@ package com.hbm.hazard; import java.util.ArrayList; import java.util.List; +import com.hbm.hazard.modifier.HazardModifier; import com.hbm.hazard.type.HazardTypeBase; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 67a98d0e8..31b71a097 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -3,6 +3,7 @@ package com.hbm.hazard; import static com.hbm.blocks.ModBlocks.*; import static com.hbm.items.ModItems.*; +import com.hbm.hazard.modifier.*; import com.hbm.hazard.transformer.HazardTransformerRadiationNBT; import com.hbm.hazard.type.*; import com.hbm.items.special.ItemWasteLong; @@ -12,6 +13,7 @@ import com.hbm.main.MainRegistry; import net.minecraft.init.Blocks; import net.minecraft.init.Items; +import net.minecraft.item.Item; public class HazardRegistry { @@ -20,7 +22,7 @@ public class HazardRegistry { //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 :( + //AU198 64h β− 500.00Rad/s 2 much spice :( //AT209 5h β+ like 2k or sth idk bruv //PO210 138d α 075.00Rad/s Spicy //RA226 1,600a α 007.50Rad/s @@ -69,10 +71,16 @@ public class HazardRegistry { public static final float sa326 = 15.0F; public static final float sa327 = 17.5F; public static final float saf = 5.85F; + public static final float sas3 = 5F; public static final float radsource_mult = 0.5F; public static final float pobe = po210 * radsource_mult; public static final float rabe = ra226 * radsource_mult; public static final float pube = pu238 * radsource_mult; + public static final float zfb_bi = u235 * 0.35F; + public static final float zfb_pu241 = pu241 * 0.5F; + public static final float zfb_am_mix = amrg * 0.5F; + public static final float bf = 300_000.0F; + public static final float bfb = 500_000.0F; public static final float sr = sa326 * 0.1F; public static final float sb = sa326 * 0.1F; @@ -121,6 +129,20 @@ public class HazardRegistry { HazardSystem.register(ingot_semtex, makeData(EXPLOSIVE, 10F)); HazardSystem.register(block_semtex, makeData(EXPLOSIVE, 40F)); + HazardSystem.register(cordite, makeData(EXPLOSIVE, 2F)); + HazardSystem.register(ballistite, makeData(EXPLOSIVE, 1F)); + + HazardSystem.register(insert_polonium, makeData(RADIATION, 100F)); + + HazardSystem.register(demon_core_open, makeData(RADIATION, 5F)); + HazardSystem.register(demon_core_closed, makeData(RADIATION, 100_000F)); + + HazardSystem.register(cell_tritium, makeData(RADIATION, 0.001F)); + HazardSystem.register(cell_sas3, new HazardData().addEntry(RADIATION, sas3).addEntry(BLINDING, 3F)); + HazardSystem.register(cell_balefire, makeData(RADIATION, 50F)); + HazardSystem.register(powder_balefire, makeData(RADIATION, 500F)); + 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)); @@ -174,10 +196,10 @@ public class HazardRegistry { HazardSystem.register(billet_americium_fuel, makeData(RADIATION, amf * billet)); HazardSystem.register(ingot_americium_fuel, makeData(RADIATION, amf * ingot)); - HazardSystem.register(nugget_schrabidium_fuel, makeData(RADIATION, saf * nugget)); - HazardSystem.register(billet_schrabidium_fuel, makeData(RADIATION, saf * billet)); - HazardSystem.register(ingot_schrabidium_fuel, makeData(RADIATION, saf * ingot)); - HazardSystem.register(block_schrabidium_fuel, makeData(RADIATION, saf * block)); + HazardSystem.register(nugget_schrabidium_fuel, new HazardData().addEntry(RADIATION, saf * nugget).addEntry(BLINDING, 5F * nugget)); + HazardSystem.register(billet_schrabidium_fuel, new HazardData().addEntry(RADIATION, saf * billet).addEntry(BLINDING, 5F * billet)); + HazardSystem.register(ingot_schrabidium_fuel, new HazardData().addEntry(RADIATION, saf * ingot).addEntry(BLINDING, 5F * ingot)); + HazardSystem.register(block_schrabidium_fuel, new HazardData().addEntry(RADIATION, saf * block).addEntry(BLINDING, 5F * block)); HazardSystem.register(nugget_hes, makeData(RADIATION, saf * nugget)); HazardSystem.register(billet_hes, makeData(RADIATION, saf * billet)); @@ -191,8 +213,32 @@ public class HazardRegistry { HazardSystem.register(billet_po210be, makeData(RADIATION, pobe * billet)); HazardSystem.register(billet_ra226be, makeData(RADIATION, rabe * billet)); HazardSystem.register(billet_pu238be, makeData(RADIATION, pube * billet)); + + registerRodRadiation(rod_th232, rod_dual_th232, rod_quad_th232, th232); + registerRodRadiation(rod_uranium, rod_dual_uranium, rod_quad_uranium, u); + registerRodRadiation(rod_u233, rod_dual_u233, rod_quad_u233, u233); + registerRodRadiation(rod_u235, rod_dual_u235, rod_quad_u235, u235); + registerRodRadiation(rod_u238, rod_dual_u238, rod_quad_u238, u238); + registerRodRadiation(rod_plutonium, rod_dual_plutonium, rod_quad_plutonium, pu); + registerRodRadiation(rod_pu238, rod_dual_pu238, rod_quad_pu238, pu238); + registerRodRadiation(rod_pu239, rod_dual_pu239, rod_quad_pu239, pu239); + registerRodRadiation(rod_pu240, rod_dual_pu240, rod_quad_pu240, pu240); + registerRodRadiation(rod_neptunium, rod_dual_neptunium, rod_quad_neptunium, np237); + registerRodRadiation(rod_polonium, rod_dual_polonium, rod_quad_polonium, po210); + registerRodRadiationExtra(rod_schrabidium, rod_dual_schrabidium, rod_quad_schrabidium, sa326, BLINDING, 3F); + registerRodRadiationExtra(rod_solinium, rod_dual_solinium, rod_quad_solinium, sa327, BLINDING, 3F); + registerRodRadiation(rod_balefire, rod_dual_balefire, rod_quad_balefire, bf); + registerRodRadiationExtra(rod_balefire_blazing, rod_dual_balefire_blazing, rod_quad_balefire_blazing, bfb, HOT, 5F); + + registerRBMKRod(rbmk_fuel_ueu, u * rod_rbmk, u * rod_rbmk * 100); + registerRBMKRod(rbmk_fuel_meu, uf * rod_rbmk, uf * rod_rbmk * 100); + registerRBMKRod(rbmk_fuel_heu233, u233 * rod_rbmk, u233 * rod_rbmk * 100); + registerRBMKRod(rbmk_fuel_heu235, u235 * rod_rbmk, u235 * rod_rbmk * 100); - //TODO: move this into its own method + //TODO + } + + public static void registerTrafos() { HazardSystem.trafos.add(new HazardTransformerRadiationNBT()); } @@ -200,4 +246,33 @@ public class HazardRegistry { private static HazardData makeData(HazardTypeBase hazard) { return new HazardData().addEntry(hazard); } private static HazardData makeData(HazardTypeBase hazard, float level) { return new HazardData().addEntry(hazard, level); } private static HazardData makeData(HazardTypeBase hazard, float level, boolean override) { return new HazardData().addEntry(hazard, level, override); } + + private static void registerRodRadiation(Item single, Item dual, Item quad, float base) { + HazardSystem.register(single, makeData(RADIATION, base * rod)); + HazardSystem.register(dual, makeData(RADIATION, base * rod_dual)); + HazardSystem.register(quad, makeData(RADIATION, base * rod_quad)); + } + + private static void registerRodRadiationExtra(Item single, Item dual, Item quad, float base, HazardTypeBase extra, float base2) { + HazardSystem.register(single, new HazardData().addEntry(RADIATION, base * rod).addEntry(extra, base2 * rod)); + HazardSystem.register(dual, new HazardData().addEntry(RADIATION, base * rod_dual).addEntry(extra, base2 * rod_dual)); + HazardSystem.register(quad, new HazardData().addEntry(RADIATION, base * rod_quad).addEntry(extra, base2 * rod_quad)); + } + + private static void registerRBMKPellet(Item rod, float base, float dep) { registerRBMKPellet(rod, base, dep, 0F); } + private static void registerRBMKPellet(Item rod, float base, float dep, float blinding) { + + } + + private static void registerRBMKRod(Item rod, float base, float dep) { registerRBMK(rod, base, dep, true, 0F); } + private static void registerRBMKRod(Item rod, float base, float dep, float blinding) { registerRBMK(rod, base, dep, true, blinding); } + + private static void registerRBMK(Item rod, float base, float dep, boolean hot, float blinding) { + + HazardData data = new HazardData(); + data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRBMKRadiation(dep))); + if(hot) data.addEntry(new HazardEntry(HOT, 0).addMod(new HazardModifierRBMKHot())); + if(blinding > 0) data.addEntry(new HazardEntry(BLINDING, blinding)); + HazardSystem.register(rod, data); + } } diff --git a/src/main/java/com/hbm/hazard/HazardModifier.java b/src/main/java/com/hbm/hazard/modifier/HazardModifier.java similarity index 95% rename from src/main/java/com/hbm/hazard/HazardModifier.java rename to src/main/java/com/hbm/hazard/modifier/HazardModifier.java index 4f9eb3f37..3bcf26669 100644 --- a/src/main/java/com/hbm/hazard/HazardModifier.java +++ b/src/main/java/com/hbm/hazard/modifier/HazardModifier.java @@ -1,4 +1,4 @@ -package com.hbm.hazard; +package com.hbm.hazard.modifier; import java.util.List; diff --git a/src/main/java/com/hbm/hazard/modifier/HazardModifierRBMKHot.java b/src/main/java/com/hbm/hazard/modifier/HazardModifierRBMKHot.java new file mode 100644 index 000000000..669e9d64a --- /dev/null +++ b/src/main/java/com/hbm/hazard/modifier/HazardModifierRBMKHot.java @@ -0,0 +1,24 @@ +package com.hbm.hazard.modifier; + +import com.hbm.items.machine.ItemRBMKRod; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +public class HazardModifierRBMKHot extends HazardModifier { + + @Override + public float modify(ItemStack stack, EntityLivingBase holder, float level) { + + level = 0; + + if(stack.getItem() instanceof ItemRBMKRod) { + double heat = ItemRBMKRod.getHullHeat(stack); + int fire = (int)Math.min(Math.ceil((heat - 100) / 10D), 60); + level = fire; + } + + return level; + } + +} diff --git a/src/main/java/com/hbm/hazard/modifier/HazardModifierRBMKRadiation.java b/src/main/java/com/hbm/hazard/modifier/HazardModifierRBMKRadiation.java new file mode 100644 index 000000000..e864c5480 --- /dev/null +++ b/src/main/java/com/hbm/hazard/modifier/HazardModifierRBMKRadiation.java @@ -0,0 +1,39 @@ +package com.hbm.hazard.modifier; + +import com.hbm.hazard.HazardRegistry; +import com.hbm.items.machine.ItemRBMKPellet; +import com.hbm.items.machine.ItemRBMKRod; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +public class HazardModifierRBMKRadiation extends HazardModifier { + + float target; + + public HazardModifierRBMKRadiation(float target) { + this.target = target; + } + + @Override + public float modify(ItemStack stack, EntityLivingBase holder, float level) { + + if(stack.getItem() instanceof ItemRBMKRod) { + double depletion = 1D - ItemRBMKRod.getEnrichment(stack); + double xenon = ItemRBMKRod.getPoisonLevel(stack); + + level = (float) (level + (this.target - level) * depletion); + level += HazardRegistry.xe135 * xenon; + + } else if(stack.getItem() instanceof ItemRBMKPellet) { + + level = level + (target - level) * (ItemRBMKPellet.rectify(stack.getItemDamage()) / 4F); + + if(ItemRBMKPellet.hasXenon(stack.getItemDamage())) + level += HazardRegistry.xe135 * HazardRegistry.nugget; + } + + return level; + } + +} diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeAsbestos.java b/src/main/java/com/hbm/hazard/type/HazardTypeAsbestos.java index 8e2acdc1d..22c077bf7 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeAsbestos.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeAsbestos.java @@ -3,7 +3,7 @@ package com.hbm.hazard.type; import java.util.List; import com.hbm.extprop.HbmLivingProps; -import com.hbm.hazard.HazardModifier; +import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeBase.java b/src/main/java/com/hbm/hazard/type/HazardTypeBase.java index 7c7a96b63..b8f7e30c4 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeBase.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeBase.java @@ -2,7 +2,7 @@ package com.hbm.hazard.type; import java.util.List; -import com.hbm.hazard.HazardModifier; +import com.hbm.hazard.modifier.HazardModifier; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java b/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java index 223bd3e45..6a5f207db 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java @@ -2,7 +2,7 @@ package com.hbm.hazard.type; import java.util.List; -import com.hbm.hazard.HazardModifier; +import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.ArmorRegistry; import com.hbm.util.I18nUtil; import com.hbm.util.ArmorRegistry.HazardClass; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeCoal.java b/src/main/java/com/hbm/hazard/type/HazardTypeCoal.java index 0fd78aeab..36c10f172 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeCoal.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeCoal.java @@ -3,7 +3,7 @@ package com.hbm.hazard.type; import java.util.List; import com.hbm.extprop.HbmLivingProps; -import com.hbm.hazard.HazardModifier; +import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeDigamma.java b/src/main/java/com/hbm/hazard/type/HazardTypeDigamma.java index 02ecef58e..a32c1d0d8 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeDigamma.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeDigamma.java @@ -2,7 +2,7 @@ package com.hbm.hazard.type; import java.util.List; -import com.hbm.hazard.HazardModifier; +import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.ContaminationUtil; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeExplosive.java b/src/main/java/com/hbm/hazard/type/HazardTypeExplosive.java index dca6fa10a..b2279c2fa 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeExplosive.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeExplosive.java @@ -2,7 +2,7 @@ package com.hbm.hazard.type; import java.util.List; -import com.hbm.hazard.HazardModifier; +import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeHot.java b/src/main/java/com/hbm/hazard/type/HazardTypeHot.java index e20d9e278..f00d3ef77 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeHot.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeHot.java @@ -3,7 +3,7 @@ package com.hbm.hazard.type; import java.util.List; import com.hbm.config.GeneralConfig; -import com.hbm.hazard.HazardModifier; +import com.hbm.hazard.modifier.HazardModifier; import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; @@ -23,7 +23,7 @@ public class HazardTypeHot extends HazardTypeBase { if(target instanceof EntityPlayer && !GeneralConfig.enable528) reacher = ((EntityPlayer) target).inventory.hasItem(ModItems.reacher); - if(!reacher && !target.isWet()) + if(!reacher && !target.isWet() && level > 0) target.setFire((int) Math.ceil(level)); } @@ -32,7 +32,11 @@ public class HazardTypeHot extends HazardTypeBase { @Override public void addHazardInformation(EntityPlayer player, List list, float level, ItemStack stack, List modifiers) { - list.add(EnumChatFormatting.GOLD + "[" + I18nUtil.resolveKey("trait.hot") + "]"); + + level = HazardModifier.evalAllModifiers(stack, player, level, modifiers); + + if(level > 0) + list.add(EnumChatFormatting.GOLD + "[" + I18nUtil.resolveKey("trait.hot") + "]"); } } diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java index 5c6f8c52f..43d7507e2 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java @@ -2,7 +2,7 @@ package com.hbm.hazard.type; import java.util.List; -import com.hbm.hazard.HazardModifier; +import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java index c6e4c7a76..3b633494d 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java @@ -3,7 +3,7 @@ package com.hbm.hazard.type; import java.util.List; import com.hbm.config.GeneralConfig; -import com.hbm.hazard.HazardModifier; +import com.hbm.hazard.modifier.HazardModifier; import com.hbm.items.ModItems; import com.hbm.util.ContaminationUtil; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index e62311748..f876e1947 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -81,7 +81,7 @@ public class OreDictManager { new DictFrame("Tantalum") .nugget(nugget_tantalium) .gem(gem_tantalium) .ingot(ingot_tantalium) .dust(powder_tantalium) .block(block_tantalium); new DictFrame("Coltan") .ingot(fragment_coltan) .dust(powder_coltan_ore) .block(block_coltan) .ore(ore_coltan); new DictFrame("Niobium") .nugget(fragment_niobium) .ingot(ingot_niobium) .dustSmall(powder_niobium_tiny) .dust(powder_niobium) .block(block_niobium); - new DictFrame("Beryllium") .nugget(nugget_beryllium) .ingot(ingot_beryllium) .dust(powder_beryllium) .block(block_beryllium) .ore(ore_beryllium); + new DictFrame("Beryllium") .nugget(nugget_beryllium) .billet(billet_beryllium) .ingot(ingot_beryllium) .dust(powder_beryllium) .block(block_beryllium) .ore(ore_beryllium); new DictFrame("Cobalt") .nugget(fragment_cobalt) .ingot(ingot_cobalt) .dustSmall(powder_cobalt_tiny) .dust(powder_cobalt) .block(block_cobalt) .ore(ore_cobalt, ore_nether_cobalt); new DictFrame("Boron") .nugget(fragment_boron) .ingot(ingot_boron) .dustSmall(powder_boron_tiny) .dust(powder_boron) .block(block_boron); new DictFrame("Graphite") .ingot(ingot_graphite) .block(block_graphite); @@ -131,11 +131,11 @@ public class OreDictManager { /* * RARE EARTHS */ - new DictFrame("Lanthanum") .nugget(fragment_lanthanium) .ingot(ingot_lanthanium) .dustSmall(powder_lanthanium_tiny) .dust(powder_lanthanium) .block(block_lanthanium); - new DictFrame("Actinium") .nugget(fragment_actinium) .ingot(ingot_actinium) .dustSmall(powder_actinium_tiny) .dust(powder_actinium) .block(block_actinium); - new DictFrame("Zirconium") .nugget(nugget_zirconium) .ingot(ingot_zirconium) .dust(powder_zirconium) .block(block_zirconium) .ore(ore_depth_zirconium); - new DictFrame("Neodymium") .nugget(fragment_neodymium) .dustSmall(powder_neodymium_tiny) .dust(powder_neodymium) .ore(ore_depth_nether_neodymium); - new DictFrame("Cerium") .nugget(fragment_cerium) .dustSmall(powder_cerium_tiny) .dust(powder_cerium); + new DictFrame("Lanthanum") .nugget(fragment_lanthanium) .ingot(ingot_lanthanium) .dustSmall(powder_lanthanium_tiny) .dust(powder_lanthanium) .block(block_lanthanium); + new DictFrame("Actinium") .nugget(fragment_actinium) .ingot(ingot_actinium) .dustSmall(powder_actinium_tiny) .dust(powder_actinium) .block(block_actinium); + new DictFrame("Zirconium") .nugget(nugget_zirconium) .ingot(ingot_zirconium) .billet(billet_zirconium) .dust(powder_zirconium) .block(block_zirconium) .ore(ore_depth_zirconium); + new DictFrame("Neodymium") .nugget(fragment_neodymium) .dustSmall(powder_neodymium_tiny) .dust(powder_neodymium) .ore(ore_depth_nether_neodymium); + new DictFrame("Cerium") .nugget(fragment_cerium) .dustSmall(powder_cerium_tiny) .dust(powder_cerium); /* * NITAN diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index 05f7d4814..53db4b189 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -153,7 +153,7 @@ public class SILEXRecipes { // 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.nugget_pu_mix), 85 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i)) ); @@ -245,13 +245,13 @@ public class SILEXRecipes { // 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)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 90 - 20 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 10 + 20 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire_gold, 1, i + 5), new SILEXRecipe(600, 100) .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)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 89 - 20 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 10 + 20 * i)) ); // POBE // recipes.put(new ComparableStack(ModItems.rbmk_pellet_po210be, 1, i), new SILEXRecipe(600, 100) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0e6fe9b28..05baecd8e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -200,6 +200,9 @@ public class ModItems { public static Item billet_pu238be; public static Item billet_yharonite; public static Item billet_balefire_gold; + public static Item billet_beryllium; + public static Item billet_bismuth; + public static Item billet_zirconium; public static Item nugget_th232; public static Item nugget_uranium; @@ -2586,6 +2589,9 @@ public class ModItems { billet_po210be = new ItemHazard().addRadiation(ItemHazard.pobe * ItemHazard.billet).toItem().setUnlocalizedName("billet_po210be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_po210be"); billet_ra226be = new ItemHazard().addRadiation(ItemHazard.rabe * ItemHazard.billet).toItem().setUnlocalizedName("billet_ra226be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_ra226be"); billet_pu238be = new ItemHazard().addRadiation(ItemHazard.pube * ItemHazard.billet).toItem().setUnlocalizedName("billet_pu238be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu238be"); + billet_beryllium = new Item().setUnlocalizedName("billet_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_beryllium"); + billet_bismuth = new Item().setUnlocalizedName("billet_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_bismuth"); + billet_zirconium = new Item().setUnlocalizedName("billet_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zirconium"); billet_yharonite = new Item().setUnlocalizedName("billet_yharonite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_yharonite"); billet_balefire_gold = new ItemHazard().addRadiation(ItemHazard.au198 * ItemHazard.billet).toItem().setUnlocalizedName("billet_balefire_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_balefire_gold"); @@ -3198,7 +3204,7 @@ public class ModItems { insert_xsapi = new ItemModInsert(2500, 0.9F, 0.75F, 1F, 1F).setUnlocalizedName("insert_xsapi").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_xsapi"); insert_steel = new ItemModInsert(1000, 1F, 0.95F, 0.75F, 0.95F).setUnlocalizedName("insert_steel").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_steel"); insert_du = new ItemModInsert(1500, 0.9F, 0.85F, 0.5F, 0.9F).setUnlocalizedName("insert_du").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_du"); - insert_polonium = new ItemModInsert(500, 0.9F, 1F, 0.95F, 0.9F).addRadiation(100F).toItem().setUnlocalizedName("insert_polonium").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_polonium"); + insert_polonium = new ItemModInsert(500, 0.9F, 1F, 0.95F, 0.9F).setUnlocalizedName("insert_polonium").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_polonium"); insert_era = new ItemModInsert(25, 0.5F, 1F, 0.25F, 1F).setUnlocalizedName("insert_era").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_era"); insert_yharonite = new ItemModInsert(9999, 0.01F, 1F, 1F, 1F).setUnlocalizedName("insert_yharonite").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_yharonite"); insert_doxium = new ItemModInsert(9999, 5.0F, 1F, 1F, 1F).setUnlocalizedName("insert_doxium").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_doxium"); @@ -3439,7 +3445,7 @@ public class ModItems { rbmk_pellet_balefire = (ItemRBMKPellet) new ItemRBMKPellet("Draconic Flames").setUnlocalizedName("rbmk_pellet_balefire").setTextureName(RefStrings.MODID + ":rbmk_pellet_balefire"); rbmk_pellet_drx = (ItemRBMKPellet) new ItemRBMKPellet(EnumChatFormatting.OBFUSCATED + "can't you hear, can't you hear the thunder?").setUnlocalizedName("rbmk_pellet_drx").setTextureName(RefStrings.MODID + ":rbmk_pellet_drx"); - rbmk_fuel_empty = new Item().setUnlocalizedName("rbmk_fuel_empty").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_fuel_empty"); + rbmk_fuel_empty = new Item().setUnlocalizedName("rbmk_fuel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_fuel_empty"); rbmk_fuel_ueu = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_ueu) .setYield(100000000D) .setStats(15) @@ -5473,6 +5479,9 @@ public class ModItems { GameRegistry.registerItem(billet_po210be, billet_po210be.getUnlocalizedName()); GameRegistry.registerItem(billet_ra226be, billet_ra226be.getUnlocalizedName()); GameRegistry.registerItem(billet_pu238be, billet_pu238be.getUnlocalizedName()); + GameRegistry.registerItem(billet_beryllium, billet_beryllium.getUnlocalizedName()); + GameRegistry.registerItem(billet_bismuth, billet_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(billet_zirconium, billet_zirconium.getUnlocalizedName()); GameRegistry.registerItem(billet_yharonite, billet_yharonite.getUnlocalizedName()); GameRegistry.registerItem(billet_balefire_gold, billet_balefire_gold.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java b/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java index dd3715d6d..72a77098e 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java @@ -103,11 +103,11 @@ public class ItemRBMKPellet extends ItemNuclearWaste { return this.enrichmentOverlays[rectify(meta) % 5]; } - private boolean hasXenon(int meta) { + public static boolean hasXenon(int meta) { return rectify(meta) >= 5; } - private int rectify(int meta) { + public static int rectify(int meta) { return Math.abs(meta) % 10; } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 59b038aa3..c9a62c984 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -263,6 +263,7 @@ public class MainRegistry { AssemblerRecipes.preInit(PreEvent.getModConfigurationDirectory()); SiegeTier.registerTiers(); HazardRegistry.registerItems(); + HazardRegistry.registerTrafos(); Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8"); Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e"); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index a92445a76..7aead8abd 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -472,6 +472,7 @@ public class ModEventHandler { if(mod != null && mod.getItem() instanceof ItemArmorMod) { ((ItemArmorMod)mod.getItem()).modUpdate(event.entityLiving, armor); + HazardSystem.applyHazards(mod, event.entityLiving); if(reapply) { diff --git a/src/main/resources/assets/hbm/textures/items/billet_bismuth.png b/src/main/resources/assets/hbm/textures/items/billet_bismuth.png new file mode 100644 index 000000000..252c5dac9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/billet_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_zfb_am_mix.png b/src/main/resources/assets/hbm/textures/items/billet_zfb_am_mix.png new file mode 100644 index 000000000..c36e24092 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/billet_zfb_am_mix.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_zfb_bismuth.png b/src/main/resources/assets/hbm/textures/items/billet_zfb_bismuth.png new file mode 100644 index 000000000..9ff7b2e60 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/billet_zfb_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_zfb_pu241.png b/src/main/resources/assets/hbm/textures/items/billet_zfb_pu241.png new file mode 100644 index 000000000..d1827b223 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/billet_zfb_pu241.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_zirconium.png b/src/main/resources/assets/hbm/textures/items/billet_zirconium.png new file mode 100644 index 000000000..aba613fec Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/billet_zirconium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_am_mix.png b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_am_mix.png new file mode 100644 index 000000000..6303477cb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_am_mix.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_base.png b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_base.png new file mode 100644 index 000000000..eceda3f70 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_bismuth.png b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_bismuth.png new file mode 100644 index 000000000..79d5931d6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_pu241.png b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_pu241.png new file mode 100644 index 000000000..941243a1b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/rbmk_fuel_zfb_pu241.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zfb_am_mix.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zfb_am_mix.png new file mode 100644 index 000000000..dd0737899 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zfb_am_mix.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zfb_bismuth.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zfb_bismuth.png new file mode 100644 index 000000000..7d385d0bd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zfb_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zfb_pu241.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zfb_pu241.png new file mode 100644 index 000000000..29725c07a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zfb_pu241.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zirconium.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zirconium.png new file mode 100644 index 000000000..a3681aae6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zirconium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zirconium_overlay.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zirconium_overlay.png new file mode 100644 index 000000000..636a5a815 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_zirconium_overlay.png differ