mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
604 lines
34 KiB
Java
604 lines
34 KiB
Java
package com.hbm.hazard;
|
||
|
||
import static com.hbm.blocks.ModBlocks.*;
|
||
import static com.hbm.items.ModItems.*;
|
||
import static com.hbm.inventory.OreDictManager.*;
|
||
|
||
import com.hbm.blocks.ModBlocks;
|
||
import com.hbm.config.GeneralConfig;
|
||
import com.hbm.hazard.modifier.*;
|
||
import com.hbm.hazard.transformer.*;
|
||
import com.hbm.hazard.type.*;
|
||
import com.hbm.inventory.material.MaterialShapes;
|
||
import com.hbm.items.ModItems;
|
||
import com.hbm.items.machine.ItemBreedingRod.BreedingRodType;
|
||
import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial;
|
||
import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType;
|
||
import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage;
|
||
import com.hbm.util.Compat;
|
||
import com.hbm.util.Compat.ReikaIsotope;
|
||
|
||
import net.minecraft.init.Blocks;
|
||
import net.minecraft.init.Items;
|
||
import net.minecraft.item.Item;
|
||
import net.minecraft.item.ItemStack;
|
||
|
||
public class HazardRegistry {
|
||
|
||
//CO60 5a β− 030.00Rad/s Spicy
|
||
//SR90 29a β− 015.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
|
||
//AU198 64h β− 500.00Rad/s 2 much spice :(
|
||
//PB209 3h β− 10,000.00Rad/s mama mia my face is melting off
|
||
//AT209 5h β+ like 7.5k or sth idk bruv
|
||
//PO210 138d α 075.00Rad/s Spicy
|
||
//RA226 1,600a α 007.50Rad/s
|
||
//AC227 22a β− 030.00Rad/s Spicy
|
||
//TH232 14,000,000,000a α 000.10Rad/s
|
||
//U233 160,000a α 005.00Rad/s
|
||
//U235 700,000,000a α 001.00Rad/s
|
||
//U238 4,500,000,000a α 000.25Rad/s
|
||
//NP237 2,100,000a α 002.50Rad/s
|
||
//PU238 88a α 010.00Rad/s Spicy
|
||
//PU239 24,000a α 005.00Rad/s
|
||
//PU240 6,600a α 007.50Rad/s
|
||
//PU241 14a β− 025.00Rad/s Spicy
|
||
//AM241 432a α 008.50Rad/s
|
||
//AM242 141a β− 009.50Rad/s
|
||
|
||
//simplified groups for ReC compat
|
||
public static final float gen_S = 10_000F;
|
||
public static final float gen_H = 2_000F;
|
||
public static final float gen_10D = 100F;
|
||
public static final float gen_100D = 80F;
|
||
public static final float gen_1Y = 50F;
|
||
public static final float gen_10Y = 30F;
|
||
public static final float gen_100Y = 10F;
|
||
public static final float gen_1K = 7.5F;
|
||
public static final float gen_10K = 6.25F;
|
||
public static final float gen_100K = 5F;
|
||
public static final float gen_1M = 2.5F;
|
||
public static final float gen_10M = 1.5F;
|
||
public static final float gen_100M = 1F;
|
||
public static final float gen_1B = 0.5F;
|
||
public static final float gen_10B = 0.1F;
|
||
|
||
public static final float co60 = 30.0F;
|
||
public static final float sr90 = 15.0F;
|
||
public static final float tc99 = 2.75F;
|
||
public static final float i131 = 150.0F;
|
||
public static final float xe135 = 1250.0F;
|
||
public static final float cs137 = 20.0F;
|
||
public static final float au198 = 500.0F;
|
||
public static final float pb209 = 10000.0F;
|
||
public static final float at209 = 7500.0F;
|
||
public static final float po210 = 75.0F;
|
||
public static final float ra226 = 7.5F;
|
||
public static final float ac227 = 30.0F;
|
||
public static final float th232 = 0.1F;
|
||
public static final float thf = 1.75F;
|
||
public static final float u = 0.35F;
|
||
public static final float u233 = 5.0F;
|
||
public static final float u235 = 1.0F;
|
||
public static final float u238 = 0.25F;
|
||
public static final float uf = 0.5F;
|
||
public static final float np237 = 2.5F;
|
||
public static final float npf = 1.5F;
|
||
public static final float pu = 7.5F;
|
||
public static final float purg = 6.25F;
|
||
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 am241 = 8.5F;
|
||
public static final float am242 = 9.5F;
|
||
public static final float amrg = 9.0F;
|
||
public static final float amf = 4.75F;
|
||
public static final float mox = 2.5F;
|
||
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 gh336 = 5.0F;
|
||
public static final float radsource_mult = 3.0F;
|
||
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;
|
||
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;
|
||
|
||
public static final float nugget = 0.1F;
|
||
public static final float ingot = 1.0F;
|
||
public static final float gem = 1.0F;
|
||
public static final float plate = 1.0F;
|
||
public static final float plateCast = 3.0F;
|
||
public static final float powder_mult = 3.0F;
|
||
public static final float powder = ingot * powder_mult;
|
||
public static final float powder_tiny = nugget * powder_mult;
|
||
public static final float ore = ingot;
|
||
public static final float block = 10.0F;
|
||
public static final float crystal = block;
|
||
public static final float billet = 0.5F;
|
||
public static final float rtg = billet * 3;
|
||
public static final float rod = 0.5F;
|
||
public static final float rod_dual = rod * 2;
|
||
public static final float rod_quad = rod * 4;
|
||
public static final float rod_rbmk = rod * 8;
|
||
|
||
public static final HazardTypeBase RADIATION = new HazardTypeRadiation();
|
||
public static final HazardTypeBase DIGAMMA = new HazardTypeDigamma();
|
||
public static final HazardTypeBase HOT = new HazardTypeHot();
|
||
public static final HazardTypeBase BLINDING = new HazardTypeBlinding();
|
||
public static final HazardTypeBase ASBESTOS = new HazardTypeAsbestos();
|
||
public static final HazardTypeBase COAL = new HazardTypeCoal();
|
||
public static final HazardTypeBase HYDROACTIVE = new HazardTypeHydroactive();
|
||
public static final HazardTypeBase EXPLOSIVE = new HazardTypeExplosive();
|
||
|
||
public static void registerItems() {
|
||
|
||
HazardSystem.register(Items.gunpowder, makeData(EXPLOSIVE, 1F));
|
||
HazardSystem.register(Blocks.tnt, makeData(EXPLOSIVE, 4F));
|
||
HazardSystem.register(Items.pumpkin_pie, makeData(EXPLOSIVE, 1F));
|
||
|
||
HazardSystem.register(ball_dynamite, makeData(EXPLOSIVE, 2F));
|
||
HazardSystem.register(stick_dynamite, makeData(EXPLOSIVE, 1F));
|
||
HazardSystem.register(stick_tnt, makeData(EXPLOSIVE, 1.5F));
|
||
HazardSystem.register(stick_semtex, makeData(EXPLOSIVE, 2.5F));
|
||
HazardSystem.register(stick_c4, makeData(EXPLOSIVE, 2.5F));
|
||
|
||
HazardSystem.register(cordite, makeData(EXPLOSIVE, 2F));
|
||
HazardSystem.register(ballistite, makeData(EXPLOSIVE, 1F));
|
||
|
||
HazardSystem.register("dustCoal", makeData(COAL, powder));
|
||
HazardSystem.register("dustTinyCoal", makeData(COAL, powder_tiny));
|
||
HazardSystem.register("dustLignite", makeData(COAL, powder));
|
||
HazardSystem.register("dustTinyLignite", makeData(COAL, powder_tiny));
|
||
|
||
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(lamp_demon, makeData(RADIATION, 100_000F));
|
||
|
||
HazardSystem.register(cell_tritium, makeData(RADIATION, 0.001F));
|
||
HazardSystem.register(cell_sas3, makeData().addEntry(RADIATION, sas3).addEntry(BLINDING, 10F));
|
||
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(solid_fuel_bf, makeData(RADIATION, 1000)); //roughly the amount of the balefire shard diluted in 250mB of rocket fuel
|
||
HazardSystem.register(solid_fuel_presto_bf, makeData(RADIATION, 2000));
|
||
HazardSystem.register(solid_fuel_presto_triplet_bf, makeData(RADIATION, 6000));
|
||
|
||
HazardSystem.register(nuclear_waste_long, makeData(RADIATION, 5F));
|
||
HazardSystem.register(nuclear_waste_long_tiny, makeData(RADIATION, 0.5F));
|
||
HazardSystem.register(nuclear_waste_short, makeData().addEntry(RADIATION, 30F).addEntry(HOT, 5F));
|
||
HazardSystem.register(nuclear_waste_short_tiny, makeData().addEntry(RADIATION, 3F).addEntry(HOT, 5F));
|
||
HazardSystem.register(nuclear_waste_long_depleted, makeData(RADIATION, 0.5F));
|
||
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(scrap_nuclear, makeData(RADIATION, 1F));
|
||
HazardSystem.register(trinitite, makeData(RADIATION, trn * ingot));
|
||
HazardSystem.register(block_trinitite, makeData(RADIATION, trn * block));
|
||
HazardSystem.register(nuclear_waste, makeData(RADIATION, wst * ingot));
|
||
HazardSystem.register(yellow_barrel, makeData(RADIATION, wst * ingot * 10));
|
||
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(block_waste, makeData(RADIATION, wst * block));
|
||
HazardSystem.register(block_waste_painted, makeData(RADIATION, wst * block));
|
||
HazardSystem.register(block_waste_vitrified, makeData(RADIATION, wstv * block));
|
||
HazardSystem.register(ancient_scrap, makeData(RADIATION, 150F));
|
||
HazardSystem.register(block_corium, makeData(RADIATION, 150F));
|
||
HazardSystem.register(block_corium_cobble, makeData(RADIATION, 150F));
|
||
HazardSystem.register(sand_gold198, makeData(RADIATION, au198 * block * powder_mult));
|
||
|
||
HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 0), makeData(RADIATION, 0.5F));
|
||
HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 1), makeData(RADIATION, 1F));
|
||
HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 2), makeData(RADIATION, 2.5F));
|
||
HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 3), makeData(RADIATION, 4F));
|
||
HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 4), makeData(RADIATION, 5F));
|
||
HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 5), makeData(RADIATION, 10F));
|
||
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.NATURAL_URANIUM_FUEL.ordinal(), u * rod_dual, wst * rod_dual * 11.5F, false);
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), uf * rod_dual, wst * rod_dual * 10F, false);
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.TH232.ordinal(), th232 * rod_dual, thf * rod_dual, false);
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.THORIUM_FUEL.ordinal(), thf * rod_dual, wst * rod_dual * 7.5F, false);
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.MOX_FUEL.ordinal(), mox * rod_dual, wst * rod_dual * 10F, false);
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.PLUTONIUM_FUEL.ordinal(), puf * rod_dual, wst * rod_dual * 12.5F, false);
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.U233_FUEL.ordinal(), u233 * rod_dual, wst * rod_dual * 10F, false);
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.U235_FUEL.ordinal(), u235 * rod_dual, wst * rod_dual * 11F, false);
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.LES_FUEL.ordinal(), saf * rod_dual, wst * rod_dual * 15F, false);
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.LITHIUM.ordinal(), 0, 0.001F * rod_dual, false);
|
||
registerOtherFuel(rod_zirnox, EnumZirnoxType.ZFB_MOX.ordinal(), mox * rod_dual, wst * rod_dual * 5F, false);
|
||
|
||
HazardSystem.register(rod_zirnox_natural_uranium_fuel_depleted, makeData(RADIATION, wst * rod_dual * 11.5F));
|
||
HazardSystem.register(rod_zirnox_uranium_fuel_depleted, makeData(RADIATION, wst * rod_dual * 10F));
|
||
HazardSystem.register(rod_zirnox_thorium_fuel_depleted, makeData(RADIATION, wst * rod_dual * 7.5F));
|
||
HazardSystem.register(rod_zirnox_mox_fuel_depleted, makeData(RADIATION, wst * rod_dual * 10F));
|
||
HazardSystem.register(rod_zirnox_plutonium_fuel_depleted, makeData(RADIATION, wst * rod_dual * 12.5F));
|
||
HazardSystem.register(rod_zirnox_u233_fuel_depleted, makeData(RADIATION, wst * rod_dual * 10F));
|
||
HazardSystem.register(rod_zirnox_u235_fuel_depleted, makeData(RADIATION, wst * rod_dual * 11F));
|
||
HazardSystem.register(rod_zirnox_les_fuel_depleted, makeData().addEntry(RADIATION, wst * rod_dual * 15F).addEntry(BLINDING, 20F));
|
||
HazardSystem.register(rod_zirnox_tritium, makeData(RADIATION, 0.001F * rod_dual));
|
||
HazardSystem.register(rod_zirnox_zfb_mox_depleted, makeData(RADIATION, wst * rod_dual * 5F));
|
||
|
||
registerOtherWaste(waste_natural_uranium, wst * billet * 11.5F);
|
||
registerOtherWaste(waste_uranium, wst * billet * 10F);
|
||
registerOtherWaste(waste_thorium, wst * billet * 7.5F);
|
||
registerOtherWaste(waste_mox, wst * billet * 10F);
|
||
registerOtherWaste(waste_plutonium, wst * billet * 12.5F);
|
||
registerOtherWaste(waste_u233, wst * billet * 10F);
|
||
registerOtherWaste(waste_u235, wst * billet * 11F);
|
||
registerOtherWaste(waste_schrabidium, wst * billet * 15F);
|
||
registerOtherWaste(waste_zfb_mox, wst * billet * 5F);
|
||
|
||
registerOtherFuel(pellet_schrabidium, sa326 * ingot * 5, wst * ingot * 100, true);
|
||
registerOtherFuel(pellet_hes, saf * ingot * 5, wst * ingot * 75, true);
|
||
registerOtherFuel(pellet_mes, saf * ingot * 5, wst * ingot * 50, true);
|
||
registerOtherFuel(pellet_les, saf * ingot * 5, wst * ingot * 20, false);
|
||
registerOtherFuel(pellet_beryllium, 0F, 10F, false);
|
||
registerOtherFuel(pellet_neptunium, np237 * ingot * 5, wst * ingot * 10, false);
|
||
registerOtherFuel(pellet_lead, 0F, 15F, false);
|
||
registerOtherFuel(pellet_advanced, 0F, 20F, false);
|
||
|
||
registerOtherFuel(plate_fuel_u233, u233 * ingot, wst * ingot * 13F, false);
|
||
registerOtherFuel(plate_fuel_u235, u235 * ingot, wst * ingot * 10F, false);
|
||
registerOtherFuel(plate_fuel_mox, mox * ingot, wst * ingot * 16F, false);
|
||
registerOtherFuel(plate_fuel_pu239, pu239 * ingot, wst * ingot * 13.5F, false);
|
||
registerOtherFuel(plate_fuel_sa326, sa326 * ingot, wst * ingot * 10F, true);
|
||
registerOtherFuel(plate_fuel_ra226be, rabe * billet, pobe * nugget * 3, false);
|
||
registerOtherFuel(plate_fuel_pu238be, pube * billet, pube * nugget * 1, false);
|
||
|
||
registerOtherWaste(waste_plate_u233, wst * ingot * 13F);
|
||
registerOtherWaste(waste_plate_u235, wst * ingot * 10F);
|
||
registerOtherWaste(waste_plate_mox, wst * ingot * 16F);
|
||
registerOtherWaste(waste_plate_pu239, wst * ingot * 13.5F);
|
||
registerOtherWaste(waste_plate_sa326, wst * ingot * 10F);
|
||
registerRadSourceWaste(waste_plate_ra226be, pobe * nugget * 3);
|
||
registerRadSourceWaste(waste_plate_pu238be, pube * nugget * 1);
|
||
|
||
HazardSystem.register(debris_graphite, makeData().addEntry(RADIATION, 70F).addEntry(HOT, 5F));
|
||
HazardSystem.register(debris_metal, makeData(RADIATION, 5F));
|
||
HazardSystem.register(debris_fuel, makeData().addEntry(RADIATION, 500F).addEntry(HOT, 5F));
|
||
HazardSystem.register(debris_concrete, makeData(RADIATION, 30F));
|
||
HazardSystem.register(debris_exchanger, makeData(RADIATION, 25F));
|
||
HazardSystem.register(debris_shrapnel, makeData(RADIATION, 2.5F));
|
||
HazardSystem.register(debris_element, makeData(RADIATION, 100F));
|
||
|
||
HazardSystem.register(nugget_uranium_fuel, makeData(RADIATION, uf * nugget));
|
||
HazardSystem.register(billet_uranium_fuel, makeData(RADIATION, uf * billet));
|
||
HazardSystem.register(ingot_uranium_fuel, makeData(RADIATION, uf * ingot));
|
||
HazardSystem.register(block_uranium_fuel, makeData(RADIATION, uf * block));
|
||
|
||
HazardSystem.register(nugget_plutonium_fuel, makeData(RADIATION, puf * nugget));
|
||
HazardSystem.register(billet_plutonium_fuel, makeData(RADIATION, puf * billet));
|
||
HazardSystem.register(ingot_plutonium_fuel, makeData(RADIATION, puf * ingot));
|
||
HazardSystem.register(block_plutonium_fuel, makeData(RADIATION, puf * block));
|
||
|
||
HazardSystem.register(nugget_thorium_fuel, makeData(RADIATION, thf * nugget));
|
||
HazardSystem.register(billet_thorium_fuel, makeData(RADIATION, thf * billet));
|
||
HazardSystem.register(ingot_thorium_fuel, makeData(RADIATION, thf * ingot));
|
||
HazardSystem.register(block_thorium_fuel, makeData(RADIATION, thf * block));
|
||
|
||
HazardSystem.register(nugget_neptunium_fuel, makeData(RADIATION, npf * nugget));
|
||
HazardSystem.register(billet_neptunium_fuel, makeData(RADIATION, npf * billet));
|
||
HazardSystem.register(ingot_neptunium_fuel, makeData(RADIATION, npf * ingot));
|
||
|
||
HazardSystem.register(nugget_mox_fuel, makeData(RADIATION, mox * nugget));
|
||
HazardSystem.register(billet_mox_fuel, makeData(RADIATION, mox * billet));
|
||
HazardSystem.register(ingot_mox_fuel, makeData(RADIATION, mox * ingot));
|
||
HazardSystem.register(block_mox_fuel, makeData(RADIATION, mox * block));
|
||
|
||
HazardSystem.register(nugget_americium_fuel, makeData(RADIATION, amf * nugget));
|
||
HazardSystem.register(billet_americium_fuel, makeData(RADIATION, amf * billet));
|
||
HazardSystem.register(ingot_americium_fuel, makeData(RADIATION, amf * ingot));
|
||
|
||
HazardSystem.register(nugget_schrabidium_fuel, makeData().addEntry(RADIATION, saf * nugget).addEntry(BLINDING, 5F * nugget));
|
||
HazardSystem.register(billet_schrabidium_fuel, makeData().addEntry(RADIATION, saf * billet).addEntry(BLINDING, 5F * billet));
|
||
HazardSystem.register(ingot_schrabidium_fuel, makeData().addEntry(RADIATION, saf * ingot).addEntry(BLINDING, 5F * ingot));
|
||
HazardSystem.register(block_schrabidium_fuel, makeData().addEntry(RADIATION, saf * block).addEntry(BLINDING, 5F * block));
|
||
|
||
HazardSystem.register(nugget_hes, makeData(RADIATION, saf * nugget));
|
||
HazardSystem.register(billet_hes, makeData(RADIATION, saf * billet));
|
||
HazardSystem.register(ingot_hes, makeData(RADIATION, saf * ingot));
|
||
|
||
HazardSystem.register(nugget_les, makeData(RADIATION, saf * nugget));
|
||
HazardSystem.register(billet_les, makeData(RADIATION, saf * billet));
|
||
HazardSystem.register(ingot_les, makeData(RADIATION, saf * ingot));
|
||
|
||
HazardSystem.register(billet_balefire_gold, makeData(RADIATION, au198 * billet));
|
||
HazardSystem.register(billet_flashlead, makeData().addEntry(RADIATION, pb209 * 1.25F * billet).addEntry(HOT, 7F));
|
||
HazardSystem.register(billet_po210be, makeData(RADIATION, pobe * billet));
|
||
HazardSystem.register(billet_ra226be, makeData(RADIATION, rabe * billet));
|
||
HazardSystem.register(billet_pu238be, makeData(RADIATION, pube * billet));
|
||
|
||
registerRTGPellet(pellet_rtg, pu238 * rtg, 0, 3F);
|
||
registerRTGPellet(pellet_rtg_radium, ra226 * rtg, 0);
|
||
registerRTGPellet(pellet_rtg_weak, (pu238 + (u238 * 2)) * billet, 0);
|
||
registerRTGPellet(pellet_rtg_strontium, sr90 * rtg, 0);
|
||
registerRTGPellet(pellet_rtg_cobalt, co60 * rtg, 0);
|
||
registerRTGPellet(pellet_rtg_actinium, ac227 * rtg, 0);
|
||
registerRTGPellet(pellet_rtg_polonium, po210 * rtg, 0, 3F);
|
||
registerRTGPellet(pellet_rtg_lead, pb209 * rtg, 0, 7F, 50F);
|
||
registerRTGPellet(pellet_rtg_gold, au198 * rtg, 0, 5F);
|
||
registerRTGPellet(pellet_rtg_americium, am241 * rtg, 0);
|
||
HazardSystem.register(new ItemStack(pellet_rtg_depleted, 1, DepletedRTGMaterial.NEPTUNIUM.ordinal()), makeData(RADIATION, np237 * rtg));
|
||
|
||
HazardSystem.register(pile_rod_uranium, makeData(RADIATION, u * billet * 3));
|
||
HazardSystem.register(pile_rod_pu239, makeData(RADIATION, !GeneralConfig.enable528 ? purg * billet + pu239 * billet + u * billet : purg * billet + pu239 * billet + wst * billet));
|
||
HazardSystem.register(pile_rod_plutonium, makeData(RADIATION, !GeneralConfig.enable528 ? purg * billet * 2 + u * billet : purg * billet * 2 + wst * billet));
|
||
HazardSystem.register(pile_rod_source, makeData(RADIATION, rabe * billet * 3));
|
||
|
||
registerBreedingRodRadiation(BreedingRodType.TRITIUM, 0.001F);
|
||
registerBreedingRodRadiation(BreedingRodType.CO60, co60);
|
||
registerBreedingRodRadiation(BreedingRodType.RA226, ra226);
|
||
registerBreedingRodRadiation(BreedingRodType.AC227, ac227);
|
||
registerBreedingRodRadiation(BreedingRodType.TH232, th232);
|
||
registerBreedingRodRadiation(BreedingRodType.THF, thf);
|
||
registerBreedingRodRadiation(BreedingRodType.U235, u235);
|
||
registerBreedingRodRadiation(BreedingRodType.NP237, np237);
|
||
registerBreedingRodRadiation(BreedingRodType.U238, u238);
|
||
registerBreedingRodRadiation(BreedingRodType.PU238, pu238); //it's in a container :)
|
||
registerBreedingRodRadiation(BreedingRodType.PU239, pu239);
|
||
registerBreedingRodRadiation(BreedingRodType.RGP, purg);
|
||
registerBreedingRodRadiation(BreedingRodType.WASTE, wst);
|
||
registerBreedingRodRadiation(BreedingRodType.URANIUM, u);
|
||
|
||
registerRBMKRod(rbmk_fuel_ueu, u * rod_rbmk, wst * rod_rbmk * 20F);
|
||
registerRBMKRod(rbmk_fuel_meu, uf * rod_rbmk, wst * rod_rbmk * 21.5F);
|
||
registerRBMKRod(rbmk_fuel_heu233, u233 * rod_rbmk, wst * rod_rbmk * 31F);
|
||
registerRBMKRod(rbmk_fuel_heu235, u235 * rod_rbmk, wst * rod_rbmk * 30F);
|
||
registerRBMKRod(rbmk_fuel_thmeu, thf * rod_rbmk, wst * rod_rbmk * 17.5F);
|
||
registerRBMKRod(rbmk_fuel_lep, puf * rod_rbmk, wst * rod_rbmk * 25F);
|
||
registerRBMKRod(rbmk_fuel_mep, purg * rod_rbmk, wst * rod_rbmk * 30F);
|
||
registerRBMKRod(rbmk_fuel_hep239, pu239 * rod_rbmk, wst * rod_rbmk * 32.5F);
|
||
registerRBMKRod(rbmk_fuel_hep241, pu241 * rod_rbmk, wst * rod_rbmk * 35F);
|
||
registerRBMKRod(rbmk_fuel_lea, amf * rod_rbmk, wst * rod_rbmk * 26F);
|
||
registerRBMKRod(rbmk_fuel_mea, amrg * rod_rbmk, wst * rod_rbmk * 30.5F);
|
||
registerRBMKRod(rbmk_fuel_hea241, am241 * rod_rbmk, wst * rod_rbmk * 33.5F);
|
||
registerRBMKRod(rbmk_fuel_hea242, am242 * rod_rbmk, wst * rod_rbmk * 34F);
|
||
registerRBMKRod(rbmk_fuel_men, npf * rod_rbmk, wst * rod_rbmk * 22.5F);
|
||
registerRBMKRod(rbmk_fuel_hen, np237 * rod_rbmk, wst * rod_rbmk * 30F);
|
||
registerRBMKRod(rbmk_fuel_mox, mox * rod_rbmk, wst * rod_rbmk * 25.5F);
|
||
registerRBMKRod(rbmk_fuel_les, saf * rod_rbmk, wst * rod_rbmk * 24.5F);
|
||
registerRBMKRod(rbmk_fuel_mes, saf * rod_rbmk, wst * rod_rbmk * 30F);
|
||
registerRBMKRod(rbmk_fuel_hes, saf * rod_rbmk, wst * rod_rbmk * 50F);
|
||
registerRBMKRod(rbmk_fuel_leaus, 0F, wst * rod_rbmk * 37.5F);
|
||
registerRBMKRod(rbmk_fuel_heaus, 0F, wst * rod_rbmk * 32.5F);
|
||
registerRBMKRod(rbmk_fuel_po210be, pobe * rod_rbmk, pobe * rod_rbmk * 0.1F, true);
|
||
registerRBMKRod(rbmk_fuel_ra226be, rabe * rod_rbmk, rabe * rod_rbmk * 0.4F, true);
|
||
registerRBMKRod(rbmk_fuel_pu238be, pube * rod_rbmk, wst * rod_rbmk * 2.5F);
|
||
registerRBMKRod(rbmk_fuel_balefire_gold, au198 * rod_rbmk, bf * rod_rbmk * 0.5F, true);
|
||
registerRBMKRod(rbmk_fuel_flashlead, pb209 * 1.25F * rod_rbmk, pb209 * nugget * 0.05F * rod_rbmk, true);
|
||
registerRBMKRod(rbmk_fuel_balefire, bf * rod_rbmk, bf * rod_rbmk * 100F, true);
|
||
registerRBMKRod(rbmk_fuel_zfb_bismuth, pu241 * rod_rbmk * 0.1F, wst * rod_rbmk * 5F);
|
||
registerRBMKRod(rbmk_fuel_zfb_pu241, pu239 * rod_rbmk * 0.1F, wst * rod_rbmk * 7.5F);
|
||
registerRBMKRod(rbmk_fuel_zfb_am_mix, pu241 * rod_rbmk * 0.1F, wst * rod_rbmk * 10F);
|
||
registerRBMK(rbmk_fuel_drx, bf * rod_rbmk, bf * rod_rbmk * 100F, true, true, 0, 1F/3F);
|
||
|
||
registerRBMKPellet(rbmk_pellet_ueu, u * billet, wst * billet * 20F);
|
||
registerRBMKPellet(rbmk_pellet_meu, uf * billet, wst * billet * 21.5F);
|
||
registerRBMKPellet(rbmk_pellet_heu233, u233 * billet, wst * billet * 31F);
|
||
registerRBMKPellet(rbmk_pellet_heu235, u235 * billet, wst * billet * 30F);
|
||
registerRBMKPellet(rbmk_pellet_thmeu, thf * billet, wst * billet * 17.5F);
|
||
registerRBMKPellet(rbmk_pellet_lep, puf * billet, wst * billet * 25F);
|
||
registerRBMKPellet(rbmk_pellet_mep, purg * billet, wst * billet * 30F);
|
||
registerRBMKPellet(rbmk_pellet_hep239, pu239 * billet, wst * billet * 32.5F);
|
||
registerRBMKPellet(rbmk_pellet_hep241, pu241 * billet, wst * billet * 35F);
|
||
registerRBMKPellet(rbmk_pellet_lea, amf * billet, wst * billet * 26F);
|
||
registerRBMKPellet(rbmk_pellet_mea, amrg * billet, wst * billet * 30.5F);
|
||
registerRBMKPellet(rbmk_pellet_hea241, am241 * billet, wst * billet * 33.5F);
|
||
registerRBMKPellet(rbmk_pellet_hea242, am242 * billet, wst * billet * 34F);
|
||
registerRBMKPellet(rbmk_pellet_men, npf * billet, wst * billet * 22.5F);
|
||
registerRBMKPellet(rbmk_pellet_hen, np237 * billet, wst * billet * 30F);
|
||
registerRBMKPellet(rbmk_pellet_mox, mox * billet, wst * billet * 25.5F);
|
||
registerRBMKPellet(rbmk_pellet_les, saf * billet, wst * billet * 24.5F);
|
||
registerRBMKPellet(rbmk_pellet_mes, saf * billet, wst * billet * 30F);
|
||
registerRBMKPellet(rbmk_pellet_hes, saf * billet, wst * billet * 50F);
|
||
registerRBMKPellet(rbmk_pellet_leaus, 0F, wst * billet * 37.5F);
|
||
registerRBMKPellet(rbmk_pellet_heaus, 0F, wst * billet * 32.5F);
|
||
registerRBMKPellet(rbmk_pellet_po210be, pobe * billet, pobe * billet * 0.1F, true);
|
||
registerRBMKPellet(rbmk_pellet_ra226be, rabe * billet, rabe * billet * 0.4F, true);
|
||
registerRBMKPellet(rbmk_pellet_pu238be, pube * billet, wst * 1.5F);
|
||
registerRBMKPellet(rbmk_pellet_balefire_gold, au198 * billet, bf * billet * 0.5F, true);
|
||
registerRBMKPellet(rbmk_pellet_flashlead, pb209 * 1.25F * billet, pb209 * nugget * 0.05F, true);
|
||
registerRBMKPellet(rbmk_pellet_balefire, bf * billet, bf * billet * 100F, true);
|
||
registerRBMKPellet(rbmk_pellet_zfb_bismuth, pu241 * billet * 0.1F, wst * billet * 5F);
|
||
registerRBMKPellet(rbmk_pellet_zfb_pu241, pu239 * billet * 0.1F, wst * billet * 7.5F);
|
||
registerRBMKPellet(rbmk_pellet_zfb_am_mix, pu241 * billet * 0.1F, wst * billet * 10F);
|
||
registerRBMKPellet(rbmk_pellet_drx, bf * billet, bf * billet * 100F, true, 0F, 1F/24F);
|
||
|
||
HazardSystem.register(powder_yellowcake, makeData(RADIATION, yc * powder));
|
||
HazardSystem.register(block_yellowcake, makeData(RADIATION, yc * block * powder_mult));
|
||
HazardSystem.register(ModItems.fallout, makeData(RADIATION, fo * powder));
|
||
HazardSystem.register(ModBlocks.fallout, makeData(RADIATION, fo * powder * 2));
|
||
HazardSystem.register(ModBlocks.block_fallout, makeData(RADIATION, yc * block * powder_mult));
|
||
HazardSystem.register(powder_caesium, makeData().addEntry(HYDROACTIVE, 1F).addEntry(HOT, 3F));
|
||
|
||
HazardSystem.register(wire_schrabidium, makeData(RADIATION, sa326 * nugget));
|
||
|
||
HazardSystem.register(brick_asbestos, makeData(ASBESTOS, 1F));
|
||
HazardSystem.register(tile_lab_broken, makeData(ASBESTOS, 1F));
|
||
HazardSystem.register(powder_coltan_ore, makeData(ASBESTOS, 3F));
|
||
|
||
//crystals
|
||
HazardSystem.register(crystal_uranium, makeData(RADIATION, u * crystal));
|
||
HazardSystem.register(crystal_thorium, makeData(RADIATION, th232 * crystal));
|
||
HazardSystem.register(crystal_plutonium, makeData(RADIATION, pu * crystal));
|
||
HazardSystem.register(crystal_schraranium, makeData(RADIATION, sr * crystal));
|
||
HazardSystem.register(crystal_schrabidium, makeData(RADIATION, sa326 * crystal));
|
||
HazardSystem.register(crystal_phosphorus, makeData(HOT, 2F * crystal));
|
||
HazardSystem.register(crystal_lithium, makeData(HYDROACTIVE, 1F * crystal));
|
||
HazardSystem.register(ModItems.crystal_trixite, makeData(RADIATION, trx * crystal));
|
||
|
||
//nuke parts
|
||
HazardSystem.register(boy_propellant, makeData(EXPLOSIVE, 2F));
|
||
|
||
HazardSystem.register(gadget_core, makeData(RADIATION, pu239 * nugget * 10));
|
||
HazardSystem.register(boy_target, makeData(RADIATION, u235 * ingot * 2));
|
||
HazardSystem.register(boy_bullet, makeData(RADIATION, u235 * ingot));
|
||
HazardSystem.register(man_core, makeData(RADIATION, pu239 * nugget * 10));
|
||
HazardSystem.register(mike_core, makeData(RADIATION, u238 * nugget * 10));
|
||
HazardSystem.register(tsar_core, makeData(RADIATION, pu239 * nugget * 15));
|
||
|
||
HazardSystem.register(fleija_propellant, makeData().addEntry(RADIATION, 15F).addEntry(EXPLOSIVE, 8F).addEntry(BLINDING, 50F));
|
||
HazardSystem.register(fleija_core, makeData(RADIATION, 10F));
|
||
|
||
HazardSystem.register(solinium_propellant, makeData(EXPLOSIVE, 10F));
|
||
HazardSystem.register(solinium_core, makeData().addEntry(RADIATION, sa327 * nugget * 8).addEntry(BLINDING, 45F));
|
||
|
||
HazardSystem.register(nuke_fstbmb, makeData(DIGAMMA, 0.01F));
|
||
HazardSystem.register(DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), makeData(DIGAMMA, 1F));
|
||
HazardSystem.register(holotape_damaged, makeData(DIGAMMA, 1_000F));
|
||
|
||
/*
|
||
* Blacklist
|
||
*/
|
||
for(String ore : TH232.ores()) HazardSystem.blacklist(ore);
|
||
for(String ore : U.ores()) HazardSystem.blacklist(ore);
|
||
|
||
|
||
/*
|
||
* ReC compat
|
||
*/
|
||
Item recWaste = Compat.tryLoadItem(Compat.MOD_REC, "reactorcraft_item_waste");
|
||
if(recWaste != null) {
|
||
for(ReikaIsotope i : ReikaIsotope.values()) {
|
||
if(i.getRad() > 0) {
|
||
HazardSystem.register(new ItemStack(recWaste, 1, i.ordinal()), makeData(RADIATION, i.getRad()));
|
||
}
|
||
}
|
||
}
|
||
|
||
if(Compat.isModLoaded(Compat.MOD_GT6)) {
|
||
|
||
Object[][] data = new Object[][] {
|
||
{"Naquadah", u},
|
||
{"Naquadah-Enriched", u235},
|
||
{"Naquadria", pu239},
|
||
};
|
||
|
||
for(MaterialShapes shape : MaterialShapes.allShapes) {
|
||
for(String prefix : shape.prefixes) {
|
||
for(Object[] o : data) {
|
||
HazardSystem.register(prefix + o[0], new HazardData().setMutex(0b1).addEntry(new HazardEntry(RADIATION, (float) o[1] * shape.q(1) / MaterialShapes.INGOT.q(1))));
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
public static void registerTrafos() {
|
||
HazardSystem.trafos.add(new HazardTransformerRadiationNBT());
|
||
HazardSystem.trafos.add(new HazardTransformerRadiationContainer());
|
||
|
||
if(!(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSafeMEDrives)) {
|
||
HazardSystem.trafos.add(new HazardTransformerRadiationME());
|
||
}
|
||
}
|
||
|
||
private static HazardData makeData() { return new HazardData(); }
|
||
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 registerRBMKPellet(Item pellet, float base, float dep) { registerRBMKPellet(pellet, base, dep, false, 0F, 0F); }
|
||
private static void registerRBMKPellet(Item pellet, float base, float dep, boolean linear) { registerRBMKPellet(pellet, base, dep, linear, 0F, 0F); }
|
||
private static void registerRBMKPellet(Item pellet, float base, float dep, boolean linear, float blinding, float digamma) {
|
||
|
||
HazardData data = new HazardData();
|
||
data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRBMKRadiation(dep, linear)));
|
||
if(blinding > 0) data.addEntry(new HazardEntry(BLINDING, blinding));
|
||
if(digamma > 0) data.addEntry(new HazardEntry(DIGAMMA, digamma));
|
||
HazardSystem.register(pellet, data);
|
||
}
|
||
|
||
private static void registerRBMKRod(Item rod, float base, float dep) { registerRBMK(rod, base, dep, true, false, 0F, 0F); }
|
||
private static void registerRBMKRod(Item rod, float base, float dep, float blinding) { registerRBMK(rod, base, dep, true, false, blinding, 0F); }
|
||
private static void registerRBMKRod(Item rod, float base, float dep, boolean linear) { registerRBMK(rod, base, dep, true, linear, 0F, 0F); }
|
||
|
||
private static void registerRBMK(Item rod, float base, float dep, boolean hot, boolean linear, float blinding, float digamma) {
|
||
|
||
HazardData data = new HazardData();
|
||
data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRBMKRadiation(dep, linear)));
|
||
if(hot) data.addEntry(new HazardEntry(HOT, 0).addMod(new HazardModifierRBMKHot()));
|
||
if(blinding > 0) data.addEntry(new HazardEntry(BLINDING, blinding));
|
||
if(digamma > 0) data.addEntry(new HazardEntry(DIGAMMA, digamma));
|
||
HazardSystem.register(rod, data);
|
||
}
|
||
|
||
private static void registerBreedingRodRadiation(BreedingRodType type, float base) {
|
||
HazardSystem.register(new ItemStack(ModItems.rod, 1, type.ordinal()), makeData(RADIATION, base));
|
||
HazardSystem.register(new ItemStack(ModItems.rod_dual, 1, type.ordinal()), makeData(RADIATION, base * rod_dual));
|
||
HazardSystem.register(new ItemStack(ModItems.rod_quad, 1, type.ordinal()), makeData(RADIATION, base * rod_quad));
|
||
}
|
||
|
||
private static void registerOtherFuel(Item fuel, float base, float target, boolean blinding) {
|
||
|
||
HazardData data = new HazardData();
|
||
data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierFuelRadiation(target)));
|
||
if(blinding)
|
||
data.addEntry(BLINDING, 20F);
|
||
HazardSystem.register(fuel, data);
|
||
}
|
||
|
||
private static void registerOtherFuel(Item fuel, int meta, float base, float target, boolean blinding) {
|
||
|
||
HazardData data = new HazardData();
|
||
data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierFuelRadiation(target)));
|
||
if(blinding)
|
||
data.addEntry(BLINDING, 20F);
|
||
HazardSystem.register(new ItemStack(fuel, 1, meta), data);
|
||
}
|
||
|
||
private static void registerRTGPellet(Item pellet, float base, float target) { registerRTGPellet(pellet, base, target, 0, 0); }
|
||
private static void registerRTGPellet(Item pellet, float base, float target, float hot) { registerRTGPellet(pellet, base, target, hot, 0); }
|
||
|
||
private static void registerRTGPellet(Item pellet, float base, float target, float hot, float blinding) {
|
||
HazardData data = new HazardData();
|
||
data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRTGRadiation(target)));
|
||
if(hot > 0) data.addEntry(new HazardEntry(HOT, hot));
|
||
if(blinding > 0) data.addEntry(new HazardEntry(BLINDING, blinding));
|
||
HazardSystem.register(pellet, data);
|
||
}
|
||
|
||
private static void registerOtherWaste(Item waste, float base) {
|
||
HazardSystem.register(new ItemStack(waste, 1, 0), makeData(RADIATION, base * 0.075F));
|
||
|
||
HazardData data = new HazardData();
|
||
data.addEntry(new HazardEntry(RADIATION, base));
|
||
data.addEntry(new HazardEntry(HOT, 5F));
|
||
HazardSystem.register(new ItemStack(waste, 1, 1), data);
|
||
}
|
||
|
||
private static void registerRadSourceWaste(Item waste, float base) {
|
||
HazardSystem.register(new ItemStack(waste, 1, 0), makeData(RADIATION, base));
|
||
|
||
HazardData data = new HazardData();
|
||
data.addEntry(new HazardEntry(RADIATION, base));
|
||
data.addEntry(new HazardEntry(HOT, 5F));
|
||
HazardSystem.register(new ItemStack(waste, 1, 1), data);
|
||
}
|
||
}
|