Skip to content

Commit

Permalink
De-enum elements
Browse files Browse the repository at this point in the history
  • Loading branch information
TechLord22 committed Jun 24, 2021
1 parent 8dcbf49 commit 1c072e5
Show file tree
Hide file tree
Showing 6 changed files with 318 additions and 286 deletions.
2 changes: 2 additions & 0 deletions src/main/java/gregtech/GregTechMod.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import gregtech.api.model.ResourcePackHook;
import gregtech.api.net.NetworkHandler;
import gregtech.api.recipes.RecipeMap;
import gregtech.api.unification.Elements;
import gregtech.api.unification.OreDictUnifier;
import gregtech.api.unification.material.Materials;
import gregtech.api.unification.material.type.Material;
Expand Down Expand Up @@ -81,6 +82,7 @@ public void onConstruction(FMLConstructionEvent event) {
public void onPreInit(FMLPreInitializationEvent event) {
GTLog.init(event.getModLog());
NetworkHandler.init();
Elements.register();
MetaTileEntityUIFactory.INSTANCE.init();
PlayerInventoryUIFactory.INSTANCE.init();
CoverBehaviorUIFactory.INSTANCE.init();
Expand Down
154 changes: 10 additions & 144 deletions src/main/java/gregtech/api/unification/Element.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,142 +11,10 @@
*/
@ZenClass("mods.gregtech.material.Element")
@ZenRegister
public enum Element {

H(1, 0, -1, null, "Hydrogen", false),
D(1, 1, -1, "H", "Deuterium", true),
T(1, 2, -1, "D", "Tritium", true),
He(2, 2, -1, null, "Helium", false),
He_3(2, 1, -1, "H&D", "Helium-3", true),
Li(3, 4, -1, null, "Lithium", false),
Be(4, 5, -1, null, "Beryllium", false),
B(5, 5, -1, null, "Boron", false),
C(6, 6, -1, null, "Carbon", false),
N(7, 7, -1, null, "Nitrogen", false),
O(8, 8, -1, null, "Oxygen", false),
F(9, 9, -1, null, "Fluorine", false),
Ne(10, 10, -1, null, "Neon", false),
Na(11, 11, -1, null, "Sodium", false),
Mg(12, 12, -1, null, "Magnesium", false),
Al(13, 13, -1, null, "Aluminium", false),
Si(14, 14, -1, null, "Silicon", false),
P(15, 15, -1, null, "Phosphor", false),
S(16, 16, -1, null, "Sulfur", false),
Cl(17, 18, -1, null, "Chlorine", false),
Ar(18, 22, -1, null, "Argon", false),
K(19, 20, -1, null, "Potassium", false),
Ca(20, 20, -1, null, "Calcium", false),
Sc(21, 24, -1, null, "Scandium", false),
Ti(22, 26, -1, null, "Titanium", false),
V(23, 28, -1, null, "Vanadium", false),
Cr(24, 28, -1, null, "Chrome", false),
Mn(25, 30, -1, null, "Manganese", false),
Fe(26, 30, -1, null, "Iron", false),
Co(27, 32, -1, null, "Cobalt", false),
Ni(28, 30, -1, null, "Nickel", false),
Cu(29, 34, -1, null, "Copper", false),
Zn(30, 35, -1, null, "Zinc", false),
Ga(31, 39, -1, null, "Gallium", false),
Ge(32, 40, -1, null, "Germanium", false),
As(33, 42, -1, null, "Arsenic", false),
Se(34, 45, -1, null, "Selenium", false),
Br(35, 45, -1, null, "Bromine", false),
Kr(36, 48, -1, null, "Krypton", false),
Rb(37, 48, -1, null, "Rubidium", false),
Sr(38, 49, -1, null, "Strontium", false),
Y(39, 50, -1, null, "Yttrium", false),
Zr(40, 51, -1, null, "Zirconium", false),
Nb(41, 53, -1, null, "Niobium", false),
Mo(42, 53, -1, null, "Molybdenum", false),
Tc(43, 55, -1, null, "Technetium", false),
Ru(44, 57, -1, null, "Ruthenium", false),
Rh(45, 58, -1, null, "Rhodium", false),
Pd(46, 60, -1, null, "Palladium", false),
Ag(47, 60, -1, null, "Silver", false),
Cd(48, 64, -1, null, "Cadmium", false),
In(49, 65, -1, null, "Indium", false),
Sn(50, 68, -1, null, "Tin", false),
Sb(51, 70, -1, null, "Antimony", false),
Te(52, 75, -1, null, "Tellurium", false),
I(53, 74, -1, null, "Iodine", false),
Xe(54, 77, -1, null, "Xenon", false),
Cs(55, 77, -1, null, "Caesium", false),
Ba(56, 81, -1, null, "Barium", false),
La(57, 81, -1, null, "Lantanium", false),
Ce(58, 82, -1, null, "Cerium", false),
Pr(59, 81, -1, null, "Praseodymium", false),
Nd(60, 84, -1, null, "Neodymium", false),
Pm(61, 83, -1, null, "Promethium", false),
Sm(62, 88, -1, null, "Samarium", false),
Eu(63, 88, -1, null, "Europium", false),
Gd(64, 93, -1, null, "Gadolinium", false),
Tb(65, 93, -1, null, "Terbium", false),
Dy(66, 96, -1, null, "Dysprosium", false),
Ho(67, 97, -1, null, "Holmium", false),
Er(68, 99, -1, null, "Erbium", false),
Tm(69, 99, -1, null, "Thulium", false),
Yb(70, 103, -1, null, "Ytterbium", false),
Lu(71, 103, -1, null, "Lutetium", false),
Hf(72, 106, -1, null, "Hafnium", false),
Ta(73, 107, -1, null, "Tantalum", false),
W(74, 109, -1, null, "Wolframium", false),
Re(75, 111, -1, null, "Rhenium", false),
Os(76, 114, -1, null, "Osmium", false),
Ir(77, 115, -1, null, "Iridium", false),
Pt(78, 117, -1, null, "Platinum", false),
Au(79, 117, -1, null, "Gold", false),
Hg(80, 120, -1, null, "Mercury", false),
Tl(81, 123, -1, null, "Thallium", false),
Pb(82, 125, -1, null, "Lead", false),
Bi(83, 125, -1, null, "Bismuth", false),
Po(84, 124, -1, null, "Polonium", false),
At(85, 124, -1, null, "Astatine", false),
Rn(86, 134, -1, null, "Radon", false),
Fr(87, 134, -1, null, "Francium", false),
Ra(88, 136, -1, null, "Radium", false),
Ac(89, 136, -1, null, "Actinium", false),
Th(90, 140, -1, null, "Thorium", false),
Pa(91, 138, -1, null, "Protactinium", false),
U(92, 146, -1, null, "Uranium", false),
U_235(92, 143, -1, null, "Uranium-235", true),
Np(93, 144, -1, null, "Neptunium", false),
Pu(94, 152, -1, null, "Plutonium", false),
Pu_241(94, 149, -1, null, "Plutonium-241", true),
Am(95, 150, -1, null, "Americium", false),
Cm(96, 153, -1, null, "Curium", false),
Bk(97, 152, -1, null, "Berkelium", false),
Cf(98, 153, -1, null, "Californium", false),
Es(99, 153, -1, null, "Einsteinium", false),
Fm(100, 157, -1, null, "Fermium", false),
Md(101, 157, -1, null, "Mendelevium", false),
No(102, 157, -1, null, "Nobelium", false),
Lr(103, 159, -1, null, "Lawrencium", false),
Rf(104, 161, -1, null, "Rutherfordium", false),
Db(105, 163, -1, null, "Dubnium", false),
Sg(106, 165, -1, null, "Seaborgium", false),
Bh(107, 163, -1, null, "Bohrium", false),
Hs(108, 169, -1, null, "Hassium", false),
Mt(109, 167, -1, null, "Meitnerium", false),
Ds(110, 171, -1, null, "Darmstadtium", false),
Rg(111, 169, -1, null, "Roentgenium", false),
Cn(112, 173, -1, null, "Copernicium", false),
Nh(113, 171, -1, null, "Nihonium", false),
Fl(114, 175, -1, null, "Flerovium", false),
Mc(115, 173, -1, null, "Moscovium", false),
Lv(116, 177, -1, null, "Livermorium", false),
Ts(117, 177, -1, null, "Tennessine", false),
Og(118, 176, -1, null, "Oganesson", false),
//fantasy
Tr(119, 178, -1, null, "Tritanium", false),
Dr(120, 180, -1, null, "Duranium", false),
Nq(121, 172, 140, null, "Naquadah", true),
Nt(0, 5000, -1, null, "Neutronium", false),
Ke(1000, 1000, -1, null, "Trinium", false),
Ad(750, 1000, -1, null, "Adamantium", false),
Vb(850, 900, -1, null, "Vibranium", false),
Tn(550, 670, -1, null, "Taranium", false);
public class Element {

public final String name;
public final String symbol;
public final long protons;
public final long neutrons;

Expand All @@ -163,30 +31,28 @@ public enum Element {
* @param halfLifeSeconds Amount of Half Life this Material has in Seconds. -1 for stable Materials
* @param decayTo String representing the Elements it decays to. Separated by an '&' Character
* @param name Name of the Element
* @param symbol Symbol of the Element
*/
Element(long protons, long neutrons, long halfLifeSeconds, String decayTo, String name, boolean isIsotope) {
public Element(long protons, long neutrons, long halfLifeSeconds, String decayTo, String name, String symbol, boolean isIsotope) {
this.protons = protons;
this.neutrons = neutrons;
this.halfLifeSeconds = halfLifeSeconds;
this.decayTo = decayTo;
this.name = name;
this.symbol = symbol;
this.isIsotope = isIsotope;
}

@ZenMethod
public static Element get(String materialName) {
try {
return Element.valueOf(materialName);
} catch (IllegalArgumentException notFound) {
return H;
}
}

@ZenGetter("name")
public String getName() {
return name;
}

@ZenGetter("symbol")
public String getSymbol() {
return symbol;
}

@ZenGetter("protons")
public long getProtons() {
return protons;
Expand Down
164 changes: 164 additions & 0 deletions src/main/java/gregtech/api/unification/Elements.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
package gregtech.api.unification;

import crafttweaker.annotations.ZenRegister;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;
import stanhebben.zenscript.annotations.ZenMethod;

import java.util.HashMap;
import java.util.Map;

@ZenClass("mods.gregtech.material.Elements")
@ZenRegister
public class Elements {

private static Map<String, Element> elements = new HashMap<>();

public Elements() { }

public static void register() {
add(1, 0, -1, null, "Hydrogen", "H", false);
add(1, 1, -1, "H", "Deuterium", "D", true);
add(1, 2, -1, "D", "Tritium", "T", true);
add(2, 2, -1, null, "Helium", "He", false);
add(2, 1, -1, "H&D", "Helium-3", "He_3", true);
add(3, 4, -1, null, "Lithium", "Li", false);
add(4, 5, -1, null, "Beryllium", "Be", false);
add(5, 5, -1, null, "Boron", "B", false);
add(6, 6, -1, null, "Carbon", "C", false);
add(7, 7, -1, null, "Nitrogen", "N", false);
add(8, 8, -1, null, "Oxygen", "O", false);
add(9, 9, -1, null, "Fluorine", "F", false);
add(10, 10, -1, null, "Neon", "Ne", false);
add(11, 11, -1, null, "Sodium", "Na", false);
add(12, 12, -1, null, "Magnesium", "Mg", false);
add(13, 13, -1, null, "Aluminium", "Al", false);
add(14, 14, -1, null, "Silicon", "Si", false);
add(15, 15, -1, null, "Phosphor", "P", false);
add(16, 16, -1, null, "Sulfur", "S", false);
add(17, 18, -1, null, "Chlorine", "Cl", false);
add(18, 22, -1, null, "Argon", "Ar", false);
add(19, 20, -1, null, "Potassium", "K", false);
add(20, 20, -1, null, "Calcium", "Ca", false);
add(21, 24, -1, null, "Scandium", "Sc", false);
add(22, 26, -1, null, "Titanium", "Ti", false);
add(23, 28, -1, null, "Vanadium", "Va", false);
add(24, 28, -1, null, "Chrome", "Cr", false);
add(25, 30, -1, null, "Manganese", "Mn", false);
add(26, 30, -1, null, "Iron", "Fe", false);
add(27, 32, -1, null, "Cobalt", "Cp", false);
add(28, 30, -1, null, "Nickel", "Ni", false);
add(29, 34, -1, null, "Copper", "Cu", false);
add(30, 35, -1, null, "Zinc", "Zn", false);
add(31, 39, -1, null, "Gallium", "Ga", false);
add(32, 40, -1, null, "Germanium", "Ge", false);
add(33, 42, -1, null, "Arsenic", "As", false);
add(34, 45, -1, null, "Selenium", "Se", false);
add(35, 45, -1, null, "Bromine", "Br", false);
add(36, 48, -1, null, "Krypton", "Kr", false);
add(37, 48, -1, null, "Rubidium", "Rb", false);
add(38, 49, -1, null, "Strontium", "Sr", false);
add(39, 50, -1, null, "Yttrium", "Yt", false);
add(40, 51, -1, null, "Zirconium", "Zr", false);
add(41, 53, -1, null, "Niobium", "Nb", false);
add(42, 53, -1, null, "Molybdenum", "Mo", false);
add(43, 55, -1, null, "Technetium", "Tc", false);
add(44, 57, -1, null, "Ruthenium", "Ru", false);
add(45, 58, -1, null, "Rhodium", "Rh", false);
add(46, 60, -1, null, "Palladium", "Pd", false);
add(47, 60, -1, null, "Silver", "Ag", false);
add(48, 64, -1, null, "Cadmium", "Cd", false);
add(49, 65, -1, null, "Indium", "I", false);
add(50, 68, -1, null, "Tin", "Sn", false);
add(51, 70, -1, null, "Antimony", "Sb", false);
add(52, 75, -1, null, "Tellurium", "Te", false);
add(53, 74, -1, null, "Iodine", "I", false);
add(54, 77, -1, null, "Xenon", "Xe", false);
add(55, 77, -1, null, "Caesium", "Cs", false);
add(56, 81, -1, null, "Barium", "Ba", false);
add(57, 81, -1, null, "Lanthanum", "La", false);
add(58, 82, -1, null, "Cerium", "Ce", false);
add(59, 81, -1, null, "Praseodymium", "Pr", false);
add(60, 84, -1, null, "Neodymium", "Nd", false);
add(61, 83, -1, null, "Promethium", "Pm", false);
add(62, 88, -1, null, "Samarium", "Sm", false);
add(63, 88, -1, null, "Europium", "Eu", false);
add(64, 93, -1, null, "Gadolinium", "Gd", false);
add(65, 93, -1, null, "Terbium", "Tb", false);
add(66, 96, -1, null, "Dysprosium", "Ds", false);
add(67, 97, -1, null, "Holmium", "Ho", false);
add(68, 99, -1, null, "Erbium", "Er", false);
add(69, 99, -1, null, "Thulium", "Tm", false);
add(70, 103, -1, null, "Ytterbium", "Yb", false);
add(71, 103, -1, null, "Lutetium", "Lu", false);
add(72, 106, -1, null, "Hafnium", "Hf", false);
add(73, 107, -1, null, "Tantalum", "Ta", false);
add(74, 109, -1, null, "Tungsten", "W", false);
add(75, 111, -1, null, "Rhenium", "Re", false);
add(76, 114, -1, null, "Osmium", "Os", false);
add(77, 115, -1, null, "Iridium", "Ir", false);
add(78, 117, -1, null, "Platinum", "Pt", false);
add(79, 117, -1, null, "Gold", "Au", false);
add(80, 120, -1, null, "Mercury", "Hg", false);
add(81, 123, -1, null, "Thallium", "Tl", false);
add(82, 125, -1, null, "Lead", "Pb", false);
add(83, 125, -1, null, "Bismuth", "Bi", false);
add(84, 124, -1, null, "Polonium", "Po", false);
add(85, 124, -1, null, "Astatine", "At", false);
add(86, 134, -1, null, "Radon", "Rn", false);
add(87, 134, -1, null, "Francium", "Fr", false);
add(88, 136, -1, null, "Radium", "Ra", false);
add(89, 136, -1, null, "Actinium", "Ac", false);
add(90, 140, -1, null, "Thorium", "Th", false);
add(91, 138, -1, null, "Protactinium", "Pa", false);
add(92, 146, -1, null, "Uranium", "U", false);
add(92, 143, -1, null, "Uranium-235", "U_235", true);
add(93, 144, -1, null, "Neptunium", "Np", false);
add(94, 152, -1, null, "Plutonium", "Pu", false);
add(94, 149, -1, null, "Plutonium-241", "Pu_241", true);
add(95, 150, -1, null, "Americium", "Am", false);
add(96, 153, -1, null, "Curium", "Cm", false);
add(97, 152, -1, null, "Berkelium", "Bk", false);
add(98, 153, -1, null, "Californium", "Cf", false);
add(99, 153, -1, null, "Einsteinium", "Es", false);
add(100, 157, -1, null, "Fermium", "Fm", false);
add(101, 157, -1, null, "Mendelevium", "Md", false);
add(102, 157, -1, null, "Nobelium", "No", false);
add(103, 159, -1, null, "Lawrencium", "Lr", false);
add(104, 161, -1, null, "Rutherfordium", "Rf", false);
add(105, 163, -1, null, "Dubnium", "Db", false);
add(106, 165, -1, null, "Seaborgium", "Sg", false);
add(107, 163, -1, null, "Bohrium", "Bh", false);
add(108, 169, -1, null, "Hassium", "Hs", false);
add(109, 167, -1, null, "Meitnerium", "Mt", false);
add(110, 171, -1, null, "Darmstadtium", "Ds", false);
add(111, 169, -1, null, "Roentgenium", "Rg", false);
add(112, 173, -1, null, "Copernicium", "Cn", false);
add(113, 171, -1, null, "Nihonium", "Nh", false);
add(114, 175, -1, null, "Flerovium", "Fl", false);
add(115, 173, -1, null, "Moscovium", "Mc", false);
add(116, 177, -1, null, "Livermorium", "Lv", false);
add(117, 177, -1, null, "Tennessine", "Ts", false);
add(118, 176, -1, null, "Oganesson", "Og", false);

//fantasy
add(119, 178, -1, null, "Tritanium", "Tr", false);
add(120, 180, -1, null, "Duranium", "Dr", false);
add(121, 172, 140, null, "Naquadah", "Nq", true);
add(0, 5000, -1, null, "Neutronium", "Nt", false);
add(1000, 1000, -1, null, "Trinium", "Ke", false);
add(750, 1000, -1, null, "Adamantium", "Ad", false);
add(850, 900, -1, null, "Vibranium", "Vb", false);
add(550, 670, -1, null, "Taranium", "Tn", false);
}

@ZenMethod
public static void add(long protons, long neutrons, long halfLifeSeconds, String decayTo, String name, String symbol, boolean isIsotope) {
elements.put(name, new Element(protons, neutrons, halfLifeSeconds, decayTo, name, symbol, isIsotope));
}

@ZenGetter
public static Element get(String name) {
return elements.get(name);
}
}
Loading

0 comments on commit 1c072e5

Please sign in to comment.