aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/enums/Element.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/enums/Element.java')
-rw-r--r--src/main/java/gregtech/api/enums/Element.java310
1 files changed, 310 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..d9459306b8
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/Element.java
@@ -0,0 +1,310 @@
+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 = 509;
+ 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 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;
+ }
+} \ No newline at end of file