diff options
Diffstat (limited to 'src/main/java/gregtech/api/enums/Element.java')
-rw-r--r-- | src/main/java/gregtech/api/enums/Element.java | 311 |
1 files changed, 311 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/enums/Element.java b/src/main/java/gregtech/api/enums/Element.java new file mode 100644 index 0000000000..b9ff795320 --- /dev/null +++ b/src/main/java/gregtech/api/enums/Element.java @@ -0,0 +1,311 @@ +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 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 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<Materials> mLinkedMaterials = new ArrayList<Materials>(); + + /** + * @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 long getProtons() { + return mProtons; + } + + public long getNeutrons() { + return mNeutrons; + } + + public long getMass() { + return mProtons + mNeutrons + mAdditionalMass; + } + + public static volatile int VERSION = 508; +}
\ No newline at end of file |