GT5-Unofficial/src/main/java/gregtech/api/enums/Element.java
2015-10-21 20:47:13 -04:00

311 lines
No EOL
18 KiB
Java

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 = 509;
}