package gregtech.api.enums; import gregtech.api.util.GT_Utility; import java.util.ArrayList; /** * This is some kind of Periodic Table, which I use to determine Properties of the Materials. */ public enum Element { _NULL(0, 0, 0, -1, null, "", false), H(1, 0, 0, -1, null, "Hydrogen", false), D(1, 1, 0, -1, "H", "Deuterium", true), T(1, 2, 0, -1, "D", "Tritium", true), He(2, 2, 0, -1, null, "Helium", false), He_3(2, 1, 0, -1, "H&D", "Helium-3", true), Li(3, 4, 0, -1, null, "Lithium", false), Be(4, 5, 0, -1, null, "Beryllium", false), B(5, 5, 0, -1, null, "Boron", false), C(6, 6, 0, -1, null, "Carbon", false), N(7, 7, 0, -1, null, "Nitrogen", false), O(8, 8, 0, -1, null, "Oxygen", false), F(9, 9, 0, -1, null, "Fluorine", false), Ne(10, 10, 0, -1, null, "Neon", false), Na(11, 11, 0, -1, null, "Sodium", false), Mg(12, 12, 0, -1, null, "Magnesium", false), Al(13, 13, 0, -1, null, "Aluminium", false), Si(14, 14, 0, -1, null, "Silicon", false), P(15, 15, 0, -1, null, "Phosphorus", false), S(16, 16, 0, -1, null, "Sulfur", false), Cl(17, 18, 0, -1, null, "Chlorine", false), Ar(18, 22, 0, -1, null, "Argon", false), K(19, 20, 0, -1, null, "Potassium", false), Ca(20, 20, 0, -1, null, "Calcium", false), Sc(21, 24, 0, -1, null, "Scandium", false), Ti(22, 26, 0, -1, null, "Titanium", false), V(23, 28, 0, -1, null, "Vanadium", false), Cr(24, 28, 0, -1, null, "Chrome", false), Mn(25, 30, 0, -1, null, "Manganese", false), Fe(26, 30, 0, -1, null, "Iron", false), Co(27, 32, 0, -1, null, "Cobalt", false), Ni(28, 30, 0, -1, null, "Nickel", false), Cu(29, 34, 0, -1, null, "Copper", false), Zn(30, 35, 0, -1, null, "Zinc", false), Ga(31, 39, 0, -1, null, "Gallium", false), Ge(32, 40, 0, -1, null, "Germanium", false), As(33, 42, 0, -1, null, "Arsenic", false), Se(34, 45, 0, -1, null, "Selenium", false), Br(35, 45, 0, -1, null, "Bromine", false), Kr(36, 48, 0, -1, null, "Krypton", false), Rb(37, 48, 0, -1, null, "Rubidium", false), Sr(38, 49, 0, -1, null, "Strontium", false), Y(39, 50, 0, -1, null, "Yttrium", false), Zr(40, 51, 0, -1, null, "Zirconium", false), Nb(41, 53, 0, -1, null, "Niobium", false), Mo(42, 53, 0, -1, null, "Molybdenum", false), Tc(43, 55, 0, -1, null, "Technetium", false), Ru(44, 57, 0, -1, null, "Ruthenium", false), Rh(45, 58, 0, -1, null, "Rhodium", false), Pd(46, 60, 0, -1, null, "Palladium", false), Ag(47, 60, 0, -1, null, "Silver", false), Cd(48, 64, 0, -1, null, "Cadmium", false), In(49, 65, 0, -1, null, "Indium", false), Sn(50, 68, 0, -1, null, "Tin", false), Sb(51, 70, 0, -1, null, "Antimony", false), Te(52, 75, 0, -1, null, "Tellurium", false), I(53, 74, 0, -1, null, "Iodine", false), Xe(54, 77, 0, -1, null, "Xenon", false), Cs(55, 77, 0, -1, null, "Caesium", false), Ba(56, 81, 0, -1, null, "Barium", false), La(57, 81, 0, -1, null, "Lantanium", false), Ce(58, 82, 0, -1, null, "Cerium", false), Pr(59, 81, 0, -1, null, "Praseodymium", false), Nd(60, 84, 0, -1, null, "Neodymium", false), Pm(61, 83, 0, -1, null, "Promethium", false), Sm(62, 88, 0, -1, null, "Samarium", false), Eu(63, 88, 0, -1, null, "Europium", false), Gd(64, 93, 0, -1, null, "Gadolinium", false), Tb(65, 93, 0, -1, null, "Terbium", false), Dy(66, 96, 0, -1, null, "Dysprosium", false), Ho(67, 97, 0, -1, null, "Holmium", false), Er(68, 99, 0, -1, null, "Erbium", false), Tm(69, 99, 0, -1, null, "Thulium", false), Yb(70, 103, 0, -1, null, "Ytterbium", false), Lu(71, 103, 0, -1, null, "Lutetium", false), Hf(72, 106, 0, -1, null, "Hafnium", false), Ta(73, 107, 0, -1, null, "Tantalum", false), W(74, 109, 0, -1, null, "Wolframium", false), Re(75, 111, 0, -1, null, "Rhenium", false), Os(76, 114, 0, -1, null, "Osmium", false), Ir(77, 115, 0, -1, null, "Iridium", false), Pt(78, 117, 0, -1, null, "Platinum", false), Au(79, 117, 0, -1, null, "Gold", false), Hg(80, 120, 0, -1, null, "Mercury", false), Tl(81, 123, 0, -1, null, "Thallium", false), Pb(82, 125, 0, -1, null, "Lead", false), Bi(83, 125, 0, -1, null, "Bismuth", false), Po(84, 124, 0, -1, null, "Polonium", false), At(85, 124, 0, -1, null, "Astatine", false), Rn(86, 134, 0, -1, null, "Radon", false), Fr(87, 134, 0, -1, null, "Francium", false), Ra(88, 136, 0, -1, null, "Radium", false), Ac(89, 136, 0, -1, null, "Actinium", false), Th(90, 140, 0, -1, null, "Thorium", false), Pa(91, 138, 0, -1, null, "Protactinium", false), U(92, 146, 0, -1, null, "Uranium", false), U_235(92, 143, 0, -1, null, "Uranium-235", true), Np(93, 144, 0, -1, null, "Neptunium", false), Pu(94, 152, 0, -1, null, "Plutonium", false), Pu_241(94, 149, 0, -1, null, "Plutonium-241", true), Am(95, 150, 0, -1, null, "Americium", false), Cm(96, 153, 0, -1, null, "Curium", false), Bk(97, 152, 0, -1, null, "Berkelium", false), Cf(98, 153, 0, -1, null, "Californium", false), Es(99, 153, 0, -1, null, "Einsteinium", false), Fm(100, 157, 0, -1, null, "Fermium", false), Md(101, 157, 0, -1, null, "Mendelevium", false), No(102, 157, 0, -1, null, "Nobelium", false), Lr(103, 159, 0, -1, null, "Lawrencium", false), Rf(104, 161, 0, -1, null, "Rutherfordium", false), Db(105, 163, 0, -1, null, "Dubnium", false), Sg(106, 165, 0, -1, null, "Seaborgium", false), Bh(107, 163, 0, -1, null, "Bohrium", false), Hs(108, 169, 0, -1, null, "Hassium", false), Mt(109, 167, 0, -1, null, "Meitnerium", false), Ds(110, 171, 0, -1, null, "Darmstadtium", false), Rg(111, 169, 0, -1, null, "Roentgenium", false), Cn(112, 173, 0, -1, null, "Copernicium", false), Uut(113, 171, 0, -1, null, "Ununtrium", false), Fl(114, 175, 0, -1, null, "Flerovium", false), Uup(115, 173, 0, -1, null, "Ununpentium", false), Lv(116, 177, 0, -1, null, "Livermorium", false), Fa(117, 177, 0, -1, null, "Farnsium", false), // Uus, Ununseptium Uuo(118, 176, 0, -1, null, "Ununoctium", false), Ma(0, 0, 100, -1, null, "Magic", false), Nt(0, 100000, 0, -1, null, "Neutronium", false), $H(-1, -0, 0, -1, null, "Anti-Hydrogen", false), $D(-1, -1, 0, -1, "H", "Anti-Deuterium", true), $T(-1, -2, 0, -1, "D", "Anti-Tritium", true), $He(-2, -2, 0, -1, null, "Anti-Helium", false), $He_3(-2, -1, 0, -1, "H&D", "Anti-Helium-3", true), $Li(-3, -4, 0, -1, null, "Anti-Lithium", false), $Be(-4, -5, 0, -1, null, "Anti-Beryllium", false), $B(-5, -5, 0, -1, null, "Anti-Boron", false), $C(-6, -6, 0, -1, null, "Anti-Carbon", false), $N(-7, -7, 0, -1, null, "Anti-Nitrogen", false), $O(-8, -8, 0, -1, null, "Anti-Oxygen", false), $F(-9, -9, 0, -1, null, "Anti-Fluorine", false), $Ne(-10, -10, 0, -1, null, "Anti-Neon", false), $Na(-11, -11, 0, -1, null, "Anti-Sodium", false), $Mg(-12, -12, 0, -1, null, "Anti-Magnesium", false), $Al(-13, -13, 0, -1, null, "Anti-Aluminium", false), $Si(-14, -14, 0, -1, null, "Anti-Silicon", false), $P(-15, -15, 0, -1, null, "Anti-Phosphorus", false), $S(-16, -16, 0, -1, null, "Anti-Sulfur", false), $Cl(-17, -18, 0, -1, null, "Anti-Chlorine", false), $Ar(-18, -22, 0, -1, null, "Anti-Argon", false), $K(-19, -20, 0, -1, null, "Anti-Potassium", false), $Ca(-20, -20, 0, -1, null, "Anti-Calcium", false), $Sc(-21, -24, 0, -1, null, "Anti-Scandium", false), $Ti(-22, -26, 0, -1, null, "Anti-Titanium", false), $V(-23, -28, 0, -1, null, "Anti-Vanadium", false), $Cr(-24, -28, 0, -1, null, "Anti-Chrome", false), $Mn(-25, -30, 0, -1, null, "Anti-Manganese", false), $Fe(-26, -30, 0, -1, null, "Anti-Iron", false), $Co(-27, -32, 0, -1, null, "Anti-Cobalt", false), $Ni(-28, -30, 0, -1, null, "Anti-Nickel", false), $Cu(-29, -34, 0, -1, null, "Anti-Copper", false), $Zn(-30, -35, 0, -1, null, "Anti-Zinc", false), $Ga(-31, -39, 0, -1, null, "Anti-Gallium", false), $Ge(-32, -40, 0, -1, null, "Anti-Germanium", false), $As(-33, -42, 0, -1, null, "Anti-Arsenic", false), $Se(-34, -45, 0, -1, null, "Anti-Selenium", false), $Br(-35, -45, 0, -1, null, "Anti-Bromine", false), $Kr(-36, -48, 0, -1, null, "Anti-Krypton", false), $Rb(-37, -48, 0, -1, null, "Anti-Rubidium", false), $Sr(-38, -49, 0, -1, null, "Anti-Strontium", false), $Y(-39, -50, 0, -1, null, "Anti-Yttrium", false), $Zr(-40, -51, 0, -1, null, "Anti-Zirconium", false), $Nb(-41, -53, 0, -1, null, "Anti-Niobium", false), $Mo(-42, -53, 0, -1, null, "Anti-Molybdenum", false), $Tc(-43, -55, 0, -1, null, "Anti-Technetium", false), $Ru(-44, -57, 0, -1, null, "Anti-Ruthenium", false), $Rh(-45, -58, 0, -1, null, "Anti-Rhodium", false), $Pd(-46, -60, 0, -1, null, "Anti-Palladium", false), $Ag(-47, -60, 0, -1, null, "Anti-Silver", false), $Cd(-48, -64, 0, -1, null, "Anti-Cadmium", false), $In(-49, -65, 0, -1, null, "Anti-Indium", false), $Sn(-50, -68, 0, -1, null, "Anti-Tin", false), $Sb(-51, -70, 0, -1, null, "Anti-Antimony", false), $Te(-52, -75, 0, -1, null, "Anti-Tellurium", false), $I(-53, -74, 0, -1, null, "Anti-Iodine", false), $Xe(-54, -77, 0, -1, null, "Anti-Xenon", false), $Cs(-55, -77, 0, -1, null, "Anti-Caesium", false), $Ba(-56, -81, 0, -1, null, "Anti-Barium", false), $La(-57, -81, 0, -1, null, "Anti-Lantanium", false), $Ce(-58, -82, 0, -1, null, "Anti-Cerium", false), $Pr(-59, -81, 0, -1, null, "Anti-Praseodymium", false), $Nd(-60, -84, 0, -1, null, "Anti-Neidymium", false), $Pm(-61, -83, 0, -1, null, "Anti-Promethium", false), $Sm(-62, -88, 0, -1, null, "Anti-Samarium", false), $Eu(-63, -88, 0, -1, null, "Anti-Europium", false), $Gd(-64, -93, 0, -1, null, "Anti-Gadolinium", false), $Tb(-65, -93, 0, -1, null, "Anti-Terbium", false), $Dy(-66, -96, 0, -1, null, "Anti-Dysprosium", false), $Ho(-67, -97, 0, -1, null, "Anti-Holmium", false), $Er(-68, -99, 0, -1, null, "Anti-Erbium", false), $Tm(-69, -99, 0, -1, null, "Anti-Thulium", false), $Yb(-70, -103, 0, -1, null, "Anti-Ytterbium", false), $Lu(-71, -103, 0, -1, null, "Anti-Lutetium", false), $Hf(-72, -106, 0, -1, null, "Anti-Hafnium", false), $Ta(-73, -107, 0, -1, null, "Anti-Tantalum", false), $W(-74, -109, 0, -1, null, "Anti-Wolframium", false), $Re(-75, -111, 0, -1, null, "Anti-Rhenium", false), $Os(-76, -114, 0, -1, null, "Anti-Osmium", false), $Ir(-77, -115, 0, -1, null, "Anti-Iridium", false), $Pt(-78, -117, 0, -1, null, "Anti-Platinum", false), $Au(-79, -117, 0, -1, null, "Anti-Gold", false), $Hg(-80, -120, 0, -1, null, "Anti-Mercury", false), $Tl(-81, -123, 0, -1, null, "Anti-Thallium", false), $Pb(-82, -125, 0, -1, null, "Anti-Lead", false), $Bi(-83, -125, 0, -1, null, "Anti-Bismuth", false), $Po(-84, -124, 0, -1, null, "Anti-Polonium", false), $At(-85, -124, 0, -1, null, "Anti-Astatine", false), $Rn(-86, -134, 0, -1, null, "Anti-Radon", false), $Fr(-87, -134, 0, -1, null, "Anti-Francium", false), $Ra(-88, -136, 0, -1, null, "Anti-Radium", false), $Ac(-89, -136, 0, -1, null, "Anti-Actinium", false), $Th(-90, -140, 0, -1, null, "Anti-Thorium", false), $Pa(-91, -138, 0, -1, null, "Anti-Protactinium", false), $U(-92, -146, 0, -1, null, "Anti-Uranium", false), $U_235(-92, -143, 0, -1, null, "Anti-Uranium-235", true), $Np(-93, -144, 0, -1, null, "Anti-Neptunium", false), $Pu(-94, -152, 0, -1, null, "Anti-Plutonium", false), $Pu_241(-94, -149, 0, -1, null, "Anti-Plutonium-241", true), $Am(-95, -150, 0, -1, null, "Anti-Americum", false), $Cm(-96, -153, 0, -1, null, "Anti-Curium", false), $Bk(-97, -152, 0, -1, null, "Anti-Berkelium", false), $Cf(-98, -153, 0, -1, null, "Anti-Californium", false), $Es(-99, -153, 0, -1, null, "Anti-Einsteinium", false), $Fm(-100, -157, 0, -1, null, "Anti-Fermium", false), $Md(-101, -157, 0, -1, null, "Anti-Mendelevium", false), $No(-102, -157, 0, -1, null, "Anti-Nobelium", false), $Lr(-103, -159, 0, -1, null, "Anti-Lawrencium", false), $Rf(-104, -161, 0, -1, null, "Anti-Rutherfordium", false), $Db(-105, -163, 0, -1, null, "Anti-Dubnium", false), $Sg(-106, -165, 0, -1, null, "Anti-Seaborgium", false), $Bh(-107, -163, 0, -1, null, "Anti-Bohrium", false), $Hs(-108, -169, 0, -1, null, "Anti-Hassium", false), $Mt(-109, -167, 0, -1, null, "Anti-Meitnerium", false), $Ds(-110, -171, 0, -1, null, "Anti-Darmstadtium", false), $Rg(-111, -169, 0, -1, null, "Anti-Roentgenium", false), $Cn(-112, -173, 0, -1, null, "Anti-Copernicium", false), $Uut(-113, -171, 0, -1, null, "Anti-Ununtrium", false), $Fl(-114, -175, 0, -1, null, "Anti-Flerovium", false), $Uup(-115, -173, 0, -1, null, "Anti-Ununpentium", false), $Lv(-116, -177, 0, -1, null, "Anti-Livermorium", false), $Uus(-117, -177, 0, -1, null, "Anti-Ununseptium", false), $Uuo(-118, -176, 0, -1, null, "Anti-Ununoctium", false), $Ma(0, 0, -100, -1, null, "Anti-Magic", false), $Nt(0, -10000, 0, -1, null, "Anti-Neutronium", false); public static volatile int VERSION = 508; public final long mProtons, mNeutrons, mAdditionalMass, mHalfLifeSeconds; public final String mName, mDecayTo; public final boolean mIsIsotope; /** * Links to every pure Material containing just this Element. */ public ArrayList mLinkedMaterials = new ArrayList(); /** * @param aProtons Amount of Protons. Antiprotons if negative. * @param aNeutrons Amount of Neutrons. Antineutrons if negative. (I could have made mistakes with the Neutron amount calculation, please tell me if I did something wrong) * @param aHalfLifeSeconds Amount of Half Life this Material has in Seconds. -1 for stable Materials. * @param aDecayTo String representing the Elements it decays to. Separated by an '&' Character. * @param aName Name of the Element */ private Element(long aProtons, long aNeutrons, long aAdditionalMass, long aHalfLifeSeconds, String aDecayTo, String aName, boolean aIsIsotope) { mProtons = aProtons; mNeutrons = aNeutrons; mAdditionalMass = aAdditionalMass; mHalfLifeSeconds = aHalfLifeSeconds; mDecayTo = aDecayTo; mName = aName; mIsIsotope = aIsIsotope; } public static Element get(String aMaterialName) { Object tObject = GT_Utility.getFieldContent(Element.class, aMaterialName, false, false); if (tObject != null && tObject instanceof Element) return (Element) tObject; return _NULL; } public long getProtons() { return mProtons; } public long getNeutrons() { return mNeutrons; } public long getMass() { return mProtons + mNeutrons + mAdditionalMass; } }