311 lines
No EOL
18 KiB
Java
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;
|
|
} |