aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/enums
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/enums')
-rw-r--r--src/main/java/gregtech/api/enums/ConfigCategories.java65
-rw-r--r--src/main/java/gregtech/api/enums/Dyes.java126
-rw-r--r--src/main/java/gregtech/api/enums/Element.java341
-rw-r--r--src/main/java/gregtech/api/enums/FluidState.java17
-rw-r--r--src/main/java/gregtech/api/enums/GTNH_ExtraMaterials.java626
-rw-r--r--src/main/java/gregtech/api/enums/GTVoltageIndex.java22
-rw-r--r--src/main/java/gregtech/api/enums/GT_HatchElement.java112
-rw-r--r--src/main/java/gregtech/api/enums/GT_Values.java658
-rw-r--r--src/main/java/gregtech/api/enums/HeatingCoilLevel.java101
-rw-r--r--src/main/java/gregtech/api/enums/InventoryType.java7
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java2238
-rw-r--r--src/main/java/gregtech/api/enums/MachineType.java136
-rw-r--r--src/main/java/gregtech/api/enums/MaterialBuilder.java276
-rw-r--r--src/main/java/gregtech/api/enums/Materials.java3307
-rw-r--r--src/main/java/gregtech/api/enums/MaterialsBotania.java238
-rw-r--r--src/main/java/gregtech/api/enums/MaterialsKevlar.java604
-rw-r--r--src/main/java/gregtech/api/enums/MaterialsOreAlum.java80
-rw-r--r--src/main/java/gregtech/api/enums/MaterialsUEVplus.java600
-rw-r--r--src/main/java/gregtech/api/enums/MetaTileEntityIDs.java688
-rw-r--r--src/main/java/gregtech/api/enums/Mods.java387
-rw-r--r--src/main/java/gregtech/api/enums/OreDictNames.java77
-rw-r--r--src/main/java/gregtech/api/enums/OrePrefixes.java1417
-rw-r--r--src/main/java/gregtech/api/enums/ParticleFX.java53
-rw-r--r--src/main/java/gregtech/api/enums/SoundResource.java373
-rw-r--r--src/main/java/gregtech/api/enums/SteamVariant.java16
-rw-r--r--src/main/java/gregtech/api/enums/SubTag.java274
-rw-r--r--src/main/java/gregtech/api/enums/TC_Aspects.java112
-rw-r--r--src/main/java/gregtech/api/enums/TextureSet.java132
-rw-r--r--src/main/java/gregtech/api/enums/Textures.java1895
-rw-r--r--src/main/java/gregtech/api/enums/TickTime.java10
-rw-r--r--src/main/java/gregtech/api/enums/Tier.java500
-rw-r--r--src/main/java/gregtech/api/enums/TierEU.java40
-rw-r--r--src/main/java/gregtech/api/enums/ToolDictNames.java44
-rw-r--r--src/main/java/gregtech/api/enums/ToolModes.java18
-rw-r--r--src/main/java/gregtech/api/enums/VoidingMode.java112
35 files changed, 15702 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/enums/ConfigCategories.java b/src/main/java/gregtech/api/enums/ConfigCategories.java
new file mode 100644
index 0000000000..83deec4f58
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/ConfigCategories.java
@@ -0,0 +1,65 @@
+package gregtech.api.enums;
+
+public enum ConfigCategories {
+
+ news,
+ general,
+ machineconfig,
+ specialunificationtargets;
+
+ public enum IDs {
+ crops,
+ enchantments
+ }
+
+ public enum Materials {
+ heatdamage,
+ oreprocessingoutputmultiplier,
+ blastfurnacerequirements,
+ blastinductionsmelter,
+ }
+
+ public enum Recipes {
+ harderrecipes,
+ gregtechrecipes,
+ disabledrecipes,
+ recipereplacements,
+ storageblockcrafting,
+ storageblockdecrafting
+ }
+
+ public enum Machines {
+ smelting,
+ squeezer,
+ liquidtransposer,
+ liquidtransposerfilling,
+ liquidtransposeremptying,
+ extractor,
+ sawmill,
+ compression,
+ thermalcentrifuge,
+ orewashing,
+ inductionsmelter,
+ rcblastfurnace,
+ scrapboxdrops,
+ massfabamplifier,
+ maceration,
+ rockcrushing,
+ pulverization
+ }
+
+ public enum Fuels {
+ boilerfuels
+ }
+
+ public enum Tools {
+ mortar,
+ hammerplating,
+ hammermultiingot,
+ hammerdoubleplate,
+ hammertripleplate,
+ hammerquadrupleplate,
+ hammerquintupleplate,
+ scoop
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/Dyes.java b/src/main/java/gregtech/api/enums/Dyes.java
new file mode 100644
index 0000000000..3f1bc31c21
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/Dyes.java
@@ -0,0 +1,126 @@
+package gregtech.api.enums;
+
+import java.util.ArrayList;
+
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+
+import gregtech.api.interfaces.IColorModulationContainer;
+import gregtech.api.objects.GT_ArrayList;
+import gregtech.api.util.GT_Utility;
+
+public enum Dyes implements IColorModulationContainer {
+
+ /**
+ * The valid Colors, see VALUES Array below
+ */
+ dyeBlack(0, 32, 32, 32, "Black", EnumChatFormatting.BLACK),
+ dyeRed(1, 255, 0, 0, "Red", EnumChatFormatting.RED),
+ dyeGreen(2, 0, 255, 0, "Green", EnumChatFormatting.DARK_GREEN),
+ dyeBrown(3, 96, 64, 0, "Brown", EnumChatFormatting.GOLD),
+ dyeBlue(4, 0, 32, 255, "Blue", EnumChatFormatting.DARK_BLUE),
+ dyePurple(5, 128, 0, 128, "Purple", EnumChatFormatting.DARK_PURPLE),
+ dyeCyan(6, 0, 255, 255, "Cyan", EnumChatFormatting.DARK_AQUA),
+ dyeLightGray(7, 192, 192, 192, "Light Gray", EnumChatFormatting.GRAY),
+ dyeGray(8, 128, 128, 128, "Gray", EnumChatFormatting.DARK_GRAY),
+ dyePink(9, 255, 192, 192, "Pink", EnumChatFormatting.LIGHT_PURPLE),
+ dyeLime(10, 128, 255, 128, "Lime", EnumChatFormatting.GREEN),
+ dyeYellow(11, 255, 255, 0, "Yellow", EnumChatFormatting.YELLOW),
+ dyeLightBlue(12, 96, 128, 255, "Light Blue", EnumChatFormatting.AQUA),
+ dyeMagenta(13, 255, 0, 255, "Magenta", EnumChatFormatting.LIGHT_PURPLE),
+ dyeOrange(14, 255, 128, 0, "Orange", EnumChatFormatting.GOLD),
+ dyeWhite(15, 255, 255, 255, "White", EnumChatFormatting.WHITE),
+ /**
+ * The NULL Color
+ */
+ _NULL(-1, 255, 255, 255, "INVALID COLOR"),
+ /**
+ * Additional Colors only used for direct Color referencing
+ */
+ CABLE_INSULATION(-1, 64, 64, 64, "Cable Insulation"),
+ CONSTRUCTION_FOAM(-1, 64, 64, 64, "Construction Foam"),
+ MACHINE_METAL(-1, 210, 220, 255, "Machine Metal");
+
+ public static final Dyes[] VALUES = { dyeBlack, dyeRed, dyeGreen, dyeBrown, dyeBlue, dyePurple, dyeCyan,
+ dyeLightGray, dyeGray, dyePink, dyeLime, dyeYellow, dyeLightBlue, dyeMagenta, dyeOrange, dyeWhite };
+
+ public final byte mIndex;
+ public final String mName;
+ public final short[] mRGBa;
+ public final short[] mOriginalRGBa;
+ public final EnumChatFormatting formatting;
+ private final ArrayList<Fluid> mFluidDyes = new GT_ArrayList<>(false, 1);
+
+ Dyes(int aIndex, int aR, int aG, int aB, String aName) {
+ this(aIndex, aR, aG, aB, aName, EnumChatFormatting.GRAY);
+ }
+
+ Dyes(int aIndex, int aR, int aG, int aB, String aName, EnumChatFormatting formatting) {
+ mIndex = (byte) aIndex;
+ mName = aName;
+ mRGBa = new short[] { (short) aR, (short) aG, (short) aB, 0 };
+ mOriginalRGBa = mRGBa.clone();
+ this.formatting = formatting;
+ }
+
+ public static Dyes get(int aColor) {
+ if (aColor >= 0 && aColor < 16) return VALUES[aColor];
+ return _NULL;
+ }
+
+ public static short[] getModulation(int aColor, short[] aDefaultModulation) {
+ if (aColor >= 0 && aColor < 16) return VALUES[aColor].mRGBa;
+ return aDefaultModulation;
+ }
+
+ public static Dyes get(String aColor) {
+ Object tObject = GT_Utility.getFieldContent(Dyes.class, aColor, false, false);
+ if (tObject instanceof Dyes) return (Dyes) tObject;
+ return _NULL;
+ }
+
+ public static boolean isAnyFluidDye(FluidStack aFluid) {
+ return aFluid != null && isAnyFluidDye(aFluid.getFluid());
+ }
+
+ public static boolean isAnyFluidDye(Fluid aFluid) {
+ if (aFluid != null) for (Dyes tDye : VALUES) if (tDye.isFluidDye(aFluid)) return true;
+ return false;
+ }
+
+ public boolean isFluidDye(FluidStack aFluid) {
+ return aFluid != null && isFluidDye(aFluid.getFluid());
+ }
+
+ public boolean isFluidDye(Fluid aFluid) {
+ return aFluid != null && mFluidDyes.contains(aFluid);
+ }
+
+ public boolean addFluidDye(Fluid aDye) {
+ if (aDye == null || mFluidDyes.contains(aDye)) return false;
+ mFluidDyes.add(aDye);
+ return true;
+ }
+
+ public int getSizeOfFluidList() {
+ return mFluidDyes.size();
+ }
+
+ /**
+ * @param aAmount 1 Fluid Material Unit (144) = 1 Dye Item
+ */
+ public FluidStack getFluidDye(int aIndex, long aAmount) {
+ if (aIndex >= mFluidDyes.size() || aIndex < 0) return null;
+ return new FluidStack(mFluidDyes.get(aIndex), (int) aAmount);
+ }
+
+ @Override
+ public short[] getRGBA() {
+ return mRGBa;
+ }
+
+ public static Dyes getDyeFromIndex(short index) {
+ return index != -1 ? Dyes.get(index) : Dyes.MACHINE_METAL;
+ }
+}
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..0931663b0b
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/Element.java
@@ -0,0 +1,341 @@
+package gregtech.api.enums;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Nonnull;
+
+/**
+ * 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, 44, 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),
+ Nh(113, 171, 0, -1, null, "Nihonium", false),
+ Fl(114, 175, 0, -1, null, "Flerovium", false),
+ Mc(115, 173, 0, -1, null, "Moscovium", false),
+ Lv(116, 177, 0, -1, null, "Livermorium", false),
+ Ts(117, 177, 0, -1, null, "Teness", false),
+ Og(118, 176, 0, -1, null, "Oganesson", false),
+ Tn(125, 198, 0, -1, null, "Tritanium", false),
+
+ SpFe(26, 42, 0, -1, null, "Meteoric Iron", false),
+ De(22, 27, 0, -1, null, "Desh", false),
+ Oh(76, 125, 0, -1, null, "Oriharukon", false),
+ Di(500, 500, 0, -1, null, "Dimensionally Transcendent Matter", false),
+
+ Ma(0, 0, 100, -1, null, "Magic", false),
+ Nq(130, 200, 0, -1, null, "Naquadah", false),
+ Nt(0, 100, 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, -44, 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-Americium", 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),
+ $Nh(-113, -171, 0, -1, null, "Anti-Nihonium", false),
+ $Fl(-114, -175, 0, -1, null, "Anti-Flerovium", false),
+ $Mc(-115, -173, 0, -1, null, "Anti-Moscovium", false),
+ $Lv(-116, -177, 0, -1, null, "Anti-Livermorium", false),
+ $Ts(-117, -177, 0, -1, null, "Anti-Tenness", false),
+ $Og(-118, -176, 0, -1, null, "Anti-Oganesson", false),
+ $Tn(-125, -198, 0, -1, null, "Anti-Tritanium", false),
+
+ $SpFe(-26, -42, 0, -1, null, "Anti-Meteoric Iron", true),
+ $De(-22, -27, 0, -1, null, "Anti-Desh", true),
+ $Oh(-76, -125, 0, -1, null, "Anti-Oriharukon", true),
+
+ $Ma(0, 0, -100, -1, null, "Anti-Magic", false),
+ $Nq(-130, -200, 0, -1, null, "Anti-Naquadah", false),
+ $Nt(0, -10000, 0, -1, null, "Anti-Neutronium", false);
+
+ 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.
+ */
+ // bartworks.system.material.werkstoff_loaders.registration.BridgeMaterialsLoader reassigns it, so no final here
+ @SuppressWarnings("NonFinalFieldInEnum")
+ public ArrayList<Materials> mLinkedMaterials = new ArrayList<>();
+
+ /**
+ * @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
+ */
+ 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;
+ Companion.VALUES.put(name(), this);
+ }
+
+ @Nonnull
+ public static Element get(String aMaterialName) {
+ return Companion.VALUES.getOrDefault(aMaterialName, _NULL);
+ }
+
+ public long getProtons() {
+ return mProtons;
+ }
+
+ public long getNeutrons() {
+ return mNeutrons;
+ }
+
+ public long getMass() {
+ return mProtons + mNeutrons + mAdditionalMass;
+ }
+
+ /**
+ * A companion object to workaround java limitations
+ */
+ private static final class Companion {
+
+ /**
+ * Why is this a separate map and populated by enum constructor instead of a Map prepoluated with values()?
+ * Because apparently there are people hacking into this enum via EnumHelper.
+ */
+ private static final Map<String, Element> VALUES = new HashMap<>();
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/FluidState.java b/src/main/java/gregtech/api/enums/FluidState.java
new file mode 100644
index 0000000000..5f6f8824f5
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/FluidState.java
@@ -0,0 +1,17 @@
+package gregtech.api.enums;
+
+public enum FluidState {
+
+ GAS,
+ LIQUID,
+ MOLTEN,
+ PLASMA,
+ SLURRY;
+
+ public static final FluidState[] VALID_STATES = new FluidState[] { SLURRY, LIQUID, GAS, PLASMA, MOLTEN };
+
+ public static FluidState fromValue(int stateValue) {
+ return stateValue >= 0 && stateValue < FluidState.VALID_STATES.length ? FluidState.VALID_STATES[stateValue]
+ : FluidState.LIQUID;
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/GTNH_ExtraMaterials.java b/src/main/java/gregtech/api/enums/GTNH_ExtraMaterials.java
new file mode 100644
index 0000000000..b65ac53499
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/GTNH_ExtraMaterials.java
@@ -0,0 +1,626 @@
+package gregtech.api.enums;
+
+import static gregtech.GT_Mod.GT_FML_LOGGER;
+
+import gregtech.api.interfaces.IMaterialHandler;
+
+public class GTNH_ExtraMaterials implements IMaterialHandler {
+
+ public GTNH_ExtraMaterials() {
+ GT_FML_LOGGER.info("Registering GTNH-Materials (post Java 64kb limit)");
+ Materials.add(this);
+ }
+
+ /**
+ * This Class is for adding new Materials since Java has a Limiation of 64kb per Method / Class header
+ */
+ public static Materials Signalum = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 1 | 2,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Signalum",
+ "Signalum",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+
+ public static Materials Lumium = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 1 | 2,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Lumium",
+ "Lumium",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials EnrichedCopper = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 1 | 2,
+ 255,
+ 255,
+ 255,
+ 0,
+ "EnrichedCopper",
+ "Enriched Copper",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials DiamondCopper = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 1 | 2,
+ 255,
+ 255,
+ 255,
+ 0,
+ "DiamondCopper",
+ "Diamond Copper",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials TarPitch = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 1 | 2,
+ 255,
+ 255,
+ 255,
+ 0,
+ "TarPitch",
+ "Tar Pitch",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials LimePure = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 0,
+ 0,
+ 255,
+ 255,
+ 255,
+ 0,
+ "LimePure",
+ "Pure Lime",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeLime);
+ public static Materials Wimalite = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 8,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Wimalite",
+ "Wimalite",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes.dyeYellow);
+ public static Materials Yellorite = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 8,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Yellorite",
+ "Yellorite",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes.dyeYellow);
+ public static Materials Quantum = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 0,
+ 0,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Quantum",
+ "Quantum",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeWhite);
+ public static Materials Turquoise = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 1,
+ 1,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Turquoise",
+ "Turquoise",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Tapazite = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 1,
+ 1,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Tapazite",
+ "Tapazite",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes.dyeGreen);
+ public static Materials Thyrium = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 1,
+ 1 | 2 | 8,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Thyrium",
+ "Thyrium",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Tourmaline = new Materials(
+ -1,
+ TextureSet.SET_RUBY,
+ 1.0F,
+ 0,
+ 1,
+ 1,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Tourmaline",
+ "Tourmaline",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Spinel = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 1,
+ 0,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Spinel",
+ "Spinel",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Starconium = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 1,
+ 1 | 2 | 8,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Starconium",
+ "Starconium",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Sugilite = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 1,
+ 1,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Sugilite",
+ "Sugilite",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Prismarine = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 1 | 4,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Prismarine",
+ "Prismarine",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials GraveyardDirt = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 1,
+ 255,
+ 255,
+ 255,
+ 0,
+ "GraveyardDirt",
+ "Graveyard Dirt",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Tennantite = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 1,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Tennantite",
+ "Tennantite",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Fairy = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 1 | 2,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Fairy",
+ "Fairy",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Ludicrite = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 1 | 2,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Ludicrite",
+ "Ludicrite",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials AquaRegia = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 0,
+ 255,
+ 255,
+ 255,
+ 0,
+ "AquaRegia",
+ "Aqua Regia",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials SolutionBlueVitriol = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 0,
+ 255,
+ 255,
+ 255,
+ 0,
+ "SolutionBlueVitriol",
+ "Blue Vitriol Solution",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials SolutionNickelSulfate = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 2,
+ 0,
+ 255,
+ 255,
+ 255,
+ 0,
+ "SolutionNickelSulfate",
+ "Nickel Sulfate Solution",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Lodestone = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 1,
+ 1 | 8,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Lodestone",
+ "Lodestone",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 1,
+ 1,
+ 1,
+ Dyes._NULL);
+ public static Materials Luminite = new Materials(
+ -1,
+ TextureSet.SET_NONE,
+ 1.0F,
+ 0,
+ 1,
+ 1 | 8,
+ 250,
+ 250,
+ 250,
+ 0,
+ "Luminite",
+ "Luminite",
+ 0,
+ 0,
+ -1,
+ 0,
+ false,
+ false,
+ 3,
+ 1,
+ 1,
+ Dyes.dyeWhite);
+
+ private static void initSubTags() {
+ SubTag.METAL.addTo(Signalum, Lumium, EnrichedCopper, DiamondCopper);
+ SubTag.NO_SMASHING.addTo(TarPitch);
+ }
+
+ @Override
+ public void onMaterialsInit() {
+ initSubTags();
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/GTVoltageIndex.java b/src/main/java/gregtech/api/enums/GTVoltageIndex.java
new file mode 100644
index 0000000000..c5c2c215b0
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/GTVoltageIndex.java
@@ -0,0 +1,22 @@
+package gregtech.api.enums;
+
+public class GTVoltageIndex {
+
+ public final static int ULV = 0;
+ public final static int LV = 1;
+ public final static int MV = 2;
+ public final static int HV = 3;
+ public final static int EV = 4;
+ public final static int IV = 5;
+ public final static int LuV = 6;
+ public final static int ZPM = 7;
+ public final static int UV = 8;
+ public final static int UHV = 9;
+ public final static int UEV = 10;
+ public final static int UIV = 11;
+ public final static int UMV = 12;
+ public final static int UXV = 13;
+ public final static int MAX = 14;
+
+ private GTVoltageIndex() {}
+}
diff --git a/src/main/java/gregtech/api/enums/GT_HatchElement.java b/src/main/java/gregtech/api/enums/GT_HatchElement.java
new file mode 100644
index 0000000000..3a21d5a2eb
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/GT_HatchElement.java
@@ -0,0 +1,112 @@
+package gregtech.api.enums;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import gregtech.api.interfaces.IHatchElement;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
+import gregtech.api.util.GT_ExoticEnergyInputHelper;
+import gregtech.api.util.IGT_HatchAdder;
+
+public enum GT_HatchElement implements IHatchElement<GT_MetaTileEntity_MultiBlockBase> {
+
+ Muffler(GT_MetaTileEntity_MultiBlockBase::addMufflerToMachineList, GT_MetaTileEntity_Hatch_Muffler.class) {
+
+ @Override
+ public long count(GT_MetaTileEntity_MultiBlockBase t) {
+ return t.mMufflerHatches.size();
+ }
+ },
+ Maintenance(GT_MetaTileEntity_MultiBlockBase::addMaintenanceToMachineList,
+ GT_MetaTileEntity_Hatch_Maintenance.class) {
+
+ @Override
+ public long count(GT_MetaTileEntity_MultiBlockBase t) {
+ return t.mMaintenanceHatches.size();
+ }
+ },
+ InputHatch(GT_MetaTileEntity_MultiBlockBase::addInputHatchToMachineList, GT_MetaTileEntity_Hatch_Input.class) {
+
+ @Override
+ public long count(GT_MetaTileEntity_MultiBlockBase t) {
+ return t.mInputHatches.size();
+ }
+ },
+ InputBus(GT_MetaTileEntity_MultiBlockBase::addInputBusToMachineList, GT_MetaTileEntity_Hatch_InputBus.class) {
+
+ @Override
+ public long count(GT_MetaTileEntity_MultiBlockBase t) {
+ return t.mInputBusses.size();
+ }
+ },
+ OutputHatch(GT_MetaTileEntity_MultiBlockBase::addOutputHatchToMachineList, GT_MetaTileEntity_Hatch_Output.class) {
+
+ @Override
+ public long count(GT_MetaTileEntity_MultiBlockBase t) {
+ return t.mOutputHatches.size();
+ }
+ },
+ OutputBus(GT_MetaTileEntity_MultiBlockBase::addOutputBusToMachineList, GT_MetaTileEntity_Hatch_OutputBus.class) {
+
+ @Override
+ public long count(GT_MetaTileEntity_MultiBlockBase t) {
+ return t.mOutputBusses.size();
+ }
+ },
+ Energy(GT_MetaTileEntity_MultiBlockBase::addEnergyInputToMachineList, GT_MetaTileEntity_Hatch_Energy.class) {
+
+ @Override
+ public long count(GT_MetaTileEntity_MultiBlockBase t) {
+ return t.mEnergyHatches.size();
+ }
+ },
+ Dynamo(GT_MetaTileEntity_MultiBlockBase::addDynamoToMachineList, GT_MetaTileEntity_Hatch_Dynamo.class) {
+
+ @Override
+ public long count(GT_MetaTileEntity_MultiBlockBase t) {
+ return t.mDynamoHatches.size();
+ }
+ },
+ ExoticEnergy(GT_MetaTileEntity_MultiBlockBase::addExoticEnergyInputToMachineList) {
+
+ @Override
+ public List<? extends Class<? extends IMetaTileEntity>> mteClasses() {
+ return GT_ExoticEnergyInputHelper.getAllClasses();
+ }
+
+ @Override
+ public long count(GT_MetaTileEntity_MultiBlockBase t) {
+ return t.getExoticEnergyHatches()
+ .size();
+ }
+ },;
+
+ private final List<Class<? extends IMetaTileEntity>> mteClasses;
+ private final IGT_HatchAdder<GT_MetaTileEntity_MultiBlockBase> adder;
+
+ @SafeVarargs
+ GT_HatchElement(IGT_HatchAdder<GT_MetaTileEntity_MultiBlockBase> adder,
+ Class<? extends IMetaTileEntity>... mteClasses) {
+ this.mteClasses = Collections.unmodifiableList(Arrays.asList(mteClasses));
+ this.adder = adder;
+ }
+
+ @Override
+ public List<? extends Class<? extends IMetaTileEntity>> mteClasses() {
+ return mteClasses;
+ }
+
+ public IGT_HatchAdder<? super GT_MetaTileEntity_MultiBlockBase> adder() {
+ return adder;
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java
new file mode 100644
index 0000000000..64e1907507
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/GT_Values.java
@@ -0,0 +1,658 @@
+package gregtech.api.enums;
+
+import static gregtech.api.enums.Mods.GregTech;
+import static gregtech.api.enums.Mods.IndustrialCraft2;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.fluids.FluidTankInfo;
+import net.minecraftforge.fluids.IFluidTank;
+import net.minecraftforge.oredict.OreDictionary;
+
+import gregtech.api.fluid.FluidTankGT;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.interfaces.internal.IGT_Mod;
+import gregtech.api.interfaces.internal.IGT_RecipeAdder;
+import gregtech.api.net.IGT_NetworkHandler;
+
+/**
+ * Made for static imports, this Class is just a Helper.
+ * <p/>
+ * I am doing this to have a better Table alike view on my Code, so I can change things faster using the Block Selection
+ * Mode of eclipse.
+ * <p/>
+ * Go to "Window > Preferences > Java > Editor > Content Assist > Favorites" to set static importable Constant Classes
+ * such as this one as AutoCompleteable.
+ */
+@SuppressWarnings("unused") // API Legitimately has unused fields and methods
+public class GT_Values {
+ // unused: A, C, D, G, H, I, J, K, N, O, Q, R, S, T
+
+ // TODO: Rename Material Units to 'U'
+ // TODO: Rename OrePrefixes Class to 'P'
+ // TODO: Rename Materials Class to 'M'
+
+ /**
+ * Empty String for an easier Call Hierarchy
+ */
+ public static final String E = "";
+
+ /**
+ * The first 32 Bits
+ */
+ @SuppressWarnings("PointlessBitwiseExpression") // Nicer source layout this way
+ public static final int[] B = new int[] { 1 << 0, 1 << 1, 1 << 2, 1 << 3, 1 << 4, 1 << 5, 1 << 6, 1 << 7, 1 << 8,
+ 1 << 9, 1 << 10, 1 << 11, 1 << 12, 1 << 13, 1 << 14, 1 << 15, 1 << 16, 1 << 17, 1 << 18, 1 << 19, 1 << 20,
+ 1 << 21, 1 << 22, 1 << 23, 1 << 24, 1 << 25, 1 << 26, 1 << 27, 1 << 28, 1 << 29, 1 << 30, 1 << 31 };
+
+ /**
+ * Renamed from "MATERIAL_UNIT" to just "M"
+ * <p/>
+ * This is worth exactly one normal Item. This Constant can be divided by many commonly used Numbers such as 1, 2,
+ * 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, ... 64 or 81 without losing precision and is for that
+ * reason used as Unit of Amount. But it is also small enough to be multiplied with larger Numbers.
+ * <p/>
+ * This is used to determine the amount of Material contained inside a prefixed Ore. For example Nugget = M / 9 as
+ * it contains out of 1/9 of an Ingot.
+ */
+ public static final long M = 3628800;
+
+ /**
+ * Renamed from "FLUID_MATERIAL_UNIT" to just "L"
+ * <p/>
+ * Fluid per Material Unit (Prime Factors: 3 * 3 * 2 * 2 * 2 * 2)
+ */
+ public static final long L = 144;
+
+ /**
+ * The Item WildCard Tag. Even shorter than the "-1" of the past
+ */
+ public static final short W = OreDictionary.WILDCARD_VALUE;
+
+ /**
+ * The Voltage Tiers. Use this Array instead of the old named Voltage Variables
+ */
+ public static final long[] V = new long[] { 8L, 32L, 128L, 512L, 2048L, 8192L, 32_768L, 131_072L, 524_288L,
+ 2_097_152L, 8_388_608L, 33_554_432L, 134_217_728L, 536_870_912L, Integer.MAX_VALUE - 7,
+ // Error tier to prevent out of bounds errors. Not really a real tier (for now).
+ 8_589_934_592L };
+
+ /**
+ * The Voltage Practical. These are recipe voltage you should use if you expect the recipe to use a full amp of that
+ * tier. These leave a bit of headroom for cable and transformer losses, but not enough to make it a great gain.
+ */
+ // this will correctly map ULV to 7.
+ public static final long[] VP = Arrays.stream(V)
+ .map(
+ i -> BigInteger.valueOf(i)
+ .multiply(BigInteger.valueOf(30))
+ .divide(BigInteger.valueOf(32))
+ .longValueExact())
+ .toArray();
+ // TODO:Adding that in coremod!!!
+ // TODO:tier 14,15 wires and transformers only (not even cables !!!)
+ // TODO:tier 12,13 the above + batteries, battery buffers, (maybe cables,12 also works for machines)
+ // TODO:tier 10,11 the above + chargers and other machines, (cables would be nice)
+ // TODO:tier 9 machines and batteries
+
+ // TODO:AND ALL THE MATERIALS... for that
+ // TODO:LIST OF MACHINES WITH POINTLESS TIERS (unless you implement some other tiering mechanism like reducing eu
+ // cost if time=1tick)
+ // Macerator/Compressor/Furnace... and for cheap recipes any
+
+ /**
+ * Array of Maximum Amperes at given Tier index
+ * <p>
+ * keeping Voltage*Amps < Integer.MAX_VALUE-7 for machines (and tier logic 4x EUt 2/ time)
+ * </p>
+ * <p>
+ * AMV[4]= max amps at tier 4
+ * </p>
+ */
+ public static final long[] AatV = new long[] { 268435455, 67108863, 16777215, 4194303, 1048575, 262143, 65535,
+ 16383, 4095, 1023, 255, 63, 15, 3, 1, 1 };
+ /**
+ * The short Names for the Voltages
+ */
+ public static final String[] VN = new String[] { "ULV", // 0
+ "LV", // 1
+ "MV", // 2
+ "HV", // 3
+ "EV", // 4
+ "IV", // 5
+ "LuV", // 6
+ "ZPM", // 7
+ "UV", // 8
+ "UHV", // 9
+ "UEV", // 10
+ "UIV", // 11
+ "UMV", // 12
+ "UXV", // 13
+ "MAX", // 14
+ "MAX+" // 15
+ };
+
+ /**
+ * The long Names for the Voltages
+ */
+ public static final String[] VOLTAGE_NAMES = new String[] { "Ultra Low Voltage", // 0
+ "Low Voltage", // 1
+ "Medium Voltage", // 2
+ "High Voltage", // 3
+ "Extreme Voltage", // 4
+ "Insane Voltage", // 5
+ "Ludicrous Voltage", // 6
+ "ZPM Voltage", // 7
+ "Ultimate Voltage", // 8
+ "Ultimate High Voltage", // 9
+ "Ultimate Extreme Voltage", // 10
+ "Ultimate Insane Voltage", // 11
+ "Ultimate Mega Voltage", // 12
+ "Ultimate Extended Mega Voltage", // 13
+ "Maximum Voltage", // 14
+ "Error Voltage, report this" // 15
+ };
+
+ public static final String[] TIER_COLORS = new String[] { EnumChatFormatting.RED.toString(), // ULV, 0
+ EnumChatFormatting.GRAY.toString(), // LV, 1
+ EnumChatFormatting.GOLD.toString(), // MV, 2
+ EnumChatFormatting.YELLOW.toString(), // HV, 3
+ EnumChatFormatting.DARK_GRAY.toString(), // EV, 4
+ EnumChatFormatting.GREEN.toString(), // IV, 5
+ EnumChatFormatting.LIGHT_PURPLE.toString(), // LuV, 6
+ EnumChatFormatting.AQUA.toString(), // ZPM, 7
+ EnumChatFormatting.DARK_GREEN.toString(), // UV, 8
+ EnumChatFormatting.DARK_RED.toString(), // UHV, 9
+ EnumChatFormatting.DARK_PURPLE.toString(), // UEV, 10
+ EnumChatFormatting.DARK_BLUE.toString() + EnumChatFormatting.BOLD, // UIV, 11
+ EnumChatFormatting.RED.toString() + EnumChatFormatting.BOLD + EnumChatFormatting.UNDERLINE, // UMV, 12
+ EnumChatFormatting.DARK_RED.toString() + EnumChatFormatting.BOLD + EnumChatFormatting.UNDERLINE, // UXV, 13
+ EnumChatFormatting.WHITE.toString() + EnumChatFormatting.BOLD + EnumChatFormatting.UNDERLINE, // MAX, 14
+ EnumChatFormatting.WHITE.toString() + EnumChatFormatting.BOLD
+ + EnumChatFormatting.UNDERLINE
+ + EnumChatFormatting.ITALIC, // MAX+, 15
+ };
+
+ /**
+ * This way it is possible to have a Call Hierarchy of NullPointers in ItemStack based Functions, and also because
+ * most of the time I don't know what kind of Data Type the "null" stands for
+ */
+ public static final ItemStack NI = null;
+ /**
+ * This way it is possible to have a Call Hierarchy of NullPointers in FluidStack based Functions, and also because
+ * most of the time I don't know what kind of Data Type the "null" stands for
+ */
+ public static final FluidStack NF = null;
+ /**
+ * MOD ID Strings, since they are very common Parameters.
+ */
+ @Deprecated
+ public static final String MOD_ID = "gregtech";
+ @Deprecated
+ public static final String MOD_ID_IC2 = "IC2";
+ @Deprecated
+ public static final String MOD_ID_NC = "IC2NuclearControl";
+ @Deprecated
+ public static final String MOD_ID_TC = "Thaumcraft";
+ @Deprecated
+ public static final String MOD_ID_TF = "TwilightForest";
+ @Deprecated
+ public static final String MOD_ID_RC = "Railcraft";
+ @Deprecated
+ public static final String MOD_ID_TE = "ThermalExpansion";
+ @Deprecated
+ public static final String MOD_ID_AE = "appliedenergistics2";
+ @Deprecated
+ public static final String MOD_ID_TFC = "terrafirmacraft";
+ @Deprecated
+ public static final String MOD_ID_PFAA = "PFAAGeologica";
+ @Deprecated
+ public static final String MOD_ID_FR = "Forestry";
+ @Deprecated
+ public static final String MOD_ID_HaC = "harvestcraft";
+ @Deprecated
+ public static final String MOD_ID_APC = "AppleCore";
+ @Deprecated
+ public static final String MOD_ID_MaCr = "magicalcrops";
+ @Deprecated
+ public static final String MOD_ID_GaEn = "ganysend";
+ @Deprecated
+ public static final String MOD_ID_GaSu = "ganyssurface";
+ @Deprecated
+ public static final String MOD_ID_GaNe = "ganysnether";
+ @Deprecated
+ public static final String MOD_ID_BC_SILICON = "BuildCraft|Silicon";
+ @Deprecated
+ public static final String MOD_ID_BC_TRANSPORT = "BuildCraft|Transport";
+ @Deprecated
+ public static final String MOD_ID_BC_FACTORY = "BuildCraft|Factory";
+ @Deprecated
+ public static final String MOD_ID_BC_ENERGY = "BuildCraft|Energy";
+ @Deprecated
+ public static final String MOD_ID_BC_BUILDERS = "BuildCraft|Builders";
+ @Deprecated
+ public static final String MOD_ID_BC_CORE = "BuildCraft|Core";
+ @Deprecated
+ public static final String MOD_ID_GC_CORE = "GalacticraftCore";
+ @Deprecated
+ public static final String MOD_ID_GC_MARS = "GalacticraftMars";
+ @Deprecated
+ public static final String MOD_ID_GC_PLANETS = "GalacticraftPlanets";
+ @Deprecated
+ public static final String MOD_ID_DC = "dreamcraft";
+ @Deprecated
+ public static final String MOD_ID_GTPP = "miscutils";
+ /**
+ * File Paths and Resource Paths
+ */
+ @Deprecated
+ public static final String TEX_DIR = "textures/";
+ @Deprecated
+ public static final String TEX_DIR_GUI = TEX_DIR + "gui/";
+ @Deprecated
+ public static final String TEX_DIR_ITEM = TEX_DIR + "items/";
+ @Deprecated
+ public static final String TEX_DIR_BLOCK = TEX_DIR + "blocks/";
+ @Deprecated
+ public static final String TEX_DIR_ENTITY = TEX_DIR + "entity/";
+ @Deprecated
+ public static final String TEX_DIR_ASPECTS = TEX_DIR + "aspects/";
+ @Deprecated
+ public static final String RES_PATH = GregTech.getResourcePath(TEX_DIR);
+ @Deprecated
+ public static final String RES_PATH_GUI = GregTech.getResourcePath("textures", "gui/");
+ @Deprecated
+ public static final String RES_PATH_ITEM = GregTech.getResourcePath();
+ @Deprecated
+ public static final String RES_PATH_BLOCK = GregTech.getResourcePath();
+ @Deprecated
+ public static final String RES_PATH_ENTITY = GregTech.getResourcePath("textures", "entity/");
+ @Deprecated
+ public static final String RES_PATH_ASPECTS = GregTech.getResourcePath("textures", "aspects/");
+ @Deprecated
+ public static final String RES_PATH_MODEL = GregTech.getResourcePath("textures", "models/");
+ @Deprecated
+ public static final String RES_PATH_IC2 = IndustrialCraft2.getResourcePath();
+
+ /**
+ * NBT String Keys
+ */
+ public static final class NBT {
+
+ public static final String COLOR = "gt.color", // Integer
+ COVERS = "gt.covers", // String
+ CUSTOM_NAME = "name", // String
+ DISPLAY = "gt.display", // String
+ TIER = "gt.tier", // Number
+ FACING = "gt.facing", // Byte
+ LOCK_UPGRADE = "gt.locked", // Boolean
+ MATERIAL = "gt.material", // String containing the Material Name.
+ MODE = "gt.mode", // Number
+ ALLOWED_MODES = "gt.amode", // Number
+ MTE_ID = "gt.mte.id", // Containing the MTE ID
+ MTE_REG = "gt.mte.reg", // Containing the MTE Registry ID
+ OWNER = "gt.owner", // String
+ OWNER_UUID = "gt.ownerUuid", // UUID (String)
+
+ // Machines
+ ACTIVE = "gt.active", // Boolean
+ FLUID_OUT = "gt.fluidout", // Output Fluid
+ ITEM_OUT = "gt.itemout", // Output Item
+ PARALLEL = "gt.parallel", // Number
+ TANK_CAPACITY = "gt.tankcap", // Number
+ TANK_IN = "gt.tank.in.", // FluidStack
+ TANK_OUT = "gt.tank.out.", // FluidStack
+ TEXTURE_FOLDER = "gt.texture.folder", // String
+ INV_INPUT_SIZE = "gt.invsize.in", // Number
+ INV_OUTPUT_SIZE = "gt.invsize.out", // Number
+ INV_INPUT_LIST = "gt.invlist.in", // NBT List
+ INV_OUTPUT_LIST = "gt.invlist.out", // NBT List
+ VOLTAGE = "gt.voltage", // Number
+ AMPERAGE = "gt.amperage", // Number
+ STORED_ENERGY = "gt.stored.energy", // Number
+ MAXIMUM_ENERGY = "gt.maximum.energy", // Number
+ EUT_CONSUMPTION = "gt.eut.consumption", // Number
+ BURN_TIME_LEFT = "gt.burn.time.left", // Number
+ TOTAL_BURN_TIME = "gt.total.burn.time", // Number
+ ALLOWED_WORK = "gt.allowed.work", // Boolean
+ TASKS = "gt.tasks", // Compound
+
+ // MultiBlock
+ STRUCTURE_OK = "gt.structure.ok", ROTATION = "gt.eRotation", FLIP = "gt.eFlip", TARGET = "gt.target", // Boolean
+ TARGET_X = "gt.target.x", // Number
+ TARGET_Y = "gt.target.y", // Number
+ TARGET_Z = "gt.target.z", // Number
+ LOCKED_FLUID = "gt.locked.fluid", // String
+ LOCKED_INVENTORY = "gt.locked.inv", // String
+ LOCKED_INVENTORY_INDEX = "gt.locked.inv.index", // Number
+ UPGRADE_INVENTORY_SIZE = "gt.invsize.upg", // String
+ UPGRADE_INVENTORY_UUID = "gt.invuuid.upg", // String
+ UPGRADE_INVENTORY_NAME = "gt.invname.upg", // String
+ UPGRADE_INVENTORIES_INPUT = "gt.invlist.upg.in", // NBT List
+ UPGRADE_INVENTORIES_OUTPUT = "gt.invlist.upg.out", // NBT List
+ UPGRADE_TANK_CAPACITY = "gt.tank.cap.upg", // Long
+ UPGRADE_TANK_COUNT = "gt.tank.ct.upg", // Int
+ UPGRADE_TANK_CAPACITY_MULTIPLIER = "gt.tank.cap.mult.upg", // Long
+ UPGRADE_TANK_UUID = "gt.tankuuid.upg", // String
+ UPGRADE_TANK_NAME = "gt.tankname.upg", // String
+ UPGRADE_TANKS_INPUT = "gt.tanklist.upg.in", // NBT List
+ UPGRADE_TANKS_OUTPUT = "gt.tanklist.upg.out", // NBT List
+ UPGRADE_TANKS_PREFIX = "gt.tank.upg", // NBT Tag
+ UPGRADE_AMPERAGE = "gt.amp.upg", // Long
+ SEPARATE_INPUTS = "gt.separate.inputs", // Boolean
+ VOIDING_MODE = "gt.voiding.mode", // String
+ BATCH_MODE = "gt.batch.mode", // Boolean
+ RECIPE_LOCK = "gt.recipe.lock", // Boolean
+
+ // Logic
+ POWER_LOGIC = "gt.pow.logic", // NBT Tag
+ POWER_LOGIC_STORED_ENERGY = "gt.pow.energy", // Number
+ POWER_LOGIC_ENERGY_CAPACITY = "gt.pow.energy.cap", // Number
+ POWER_LOGIC_VOLTAGE = "gt.pow.volt", // Number
+ POWER_LOGIC_AMPERAGE = "gt.pow.amp", // Number
+ POWER_LOGIC_TYPE = "gt.pow.type", // Number
+ empty_ = "";
+ }
+
+ /** The Color White as RGB Short Array. */
+ public static final short[] UNCOLORED_RGBA = { 255, 255, 255, 255 };
+ /** The Color White as simple Integer (0x00ffffff). */
+ public static final int UNCOLORED = 0x00ffffff;
+
+ /**
+ * Sides
+ */
+ public static final byte SIDE_BOTTOM = 0, SIDE_DOWN = 0, SIDE_TOP = 1, SIDE_UP = 1, SIDE_NORTH = 2, // Also a Side
+ // with a
+ // stupidly
+ // mirrored
+ // Texture
+ SIDE_SOUTH = 3, SIDE_WEST = 4, SIDE_EAST = 5, // Also a Side with a stupidly mirrored Texture
+ SIDE_ANY = 6, SIDE_UNKNOWN = 6, SIDE_INVALID = 6, SIDE_INSIDE = 6, SIDE_UNDEFINED = 6;
+
+ /** Compass alike Array for the proper ordering of North, East, South and West. */
+ public static final byte[] COMPASS_DIRECTIONS = { SIDE_NORTH, SIDE_EAST, SIDE_SOUTH, SIDE_WEST };
+
+ /**
+ * An Array containing all Sides which follow the Condition, in order to iterate over them for example.
+ */
+ public static final byte[] ALL_SIDES = { 0, 1, 2, 3, 4, 5, 6 }, ALL_VALID_SIDES = { 0, 1, 2, 3, 4, 5 };
+
+ /**
+ * For Facing Checks.
+ */
+ public static final boolean[] INVALID_SIDES = { false, false, false, false, false, false, true },
+ VALID_SIDES = { true, true, true, true, true, true, false };
+
+ /**
+ * Side->Offset Mappings.
+ */
+ public static final byte[] OFFX = { 0, 0, 0, 0, -1, +1, 0 }, OFFY = { -1, +1, 0, 0, 0, 0, 0 },
+ OFFZ = { 0, 0, -1, +1, 0, 0, 0 };
+
+ /**
+ * Side->Opposite Mappings.
+ **/
+ public static final byte[] OPOS = { 1, 0, 3, 2, 5, 4, 6 };
+
+ /**
+ * [Facing,Side]->Side Mappings for Blocks, which don't face up- and downwards. 0 = bottom, 1 = top, 2 = left, 3 =
+ * front, 4 = right, 5 = back, 6 = undefined.
+ */
+ public static final byte[][] FACING_ROTATIONS = { { 0, 1, 2, 3, 4, 5, 6 }, { 0, 1, 2, 3, 4, 5, 6 },
+ { 0, 1, 3, 5, 4, 2, 6 }, { 0, 1, 5, 3, 2, 4, 6 }, { 0, 1, 2, 4, 3, 5, 6 }, { 0, 1, 4, 2, 5, 3, 6 },
+ { 0, 1, 2, 3, 4, 5, 6 } };
+
+ /**
+ * The Mod Object itself. That is the GT_Mod-Object. It's needed to open GUI's and similar.
+ */
+ public static IGT_Mod GT;
+ /**
+ * Use this Object to add Recipes. (Recipe Adder)
+ */
+ public static IGT_RecipeAdder RA;
+ /**
+ * For Internal Usage (Network)
+ */
+ public static IGT_NetworkHandler NW;
+ /**
+ * Control percentage of filled 3x3 chunks. Lower number means less oreveins spawn
+ */
+ public static int oreveinPercentage;
+ /**
+ * Control number of attempts to find a valid orevein. Generally this maximum limit isn't hit, selecting a vein is
+ * cheap
+ */
+ public static int oreveinAttempts;
+ /**
+ * Control number of attempts to place a valid ore vein.
+ * <p>
+ * If a vein wasn't placed due to height restrictions, completely in the water, etc, another attempt is tried.
+ * </p>
+ */
+ public static int oreveinMaxPlacementAttempts;
+ /**
+ * Whether to place small ores as placer ores for an orevein
+ */
+ public static boolean oreveinPlacerOres;
+ /**
+ * Multiplier to control how many placer ores get generated.
+ */
+ public static int oreveinPlacerOresMultiplier;
+ /**
+ * Not really Constants, but they set using the Config and therefore should be constant (those are for the Debug
+ * Mode)
+ */
+ public static boolean D1 = false, D2 = false;
+ /**
+ * Debug parameter for cleanroom testing.
+ */
+ public static boolean debugCleanroom = false;
+ /**
+ * Debug parameter for driller testing.
+ */
+ public static boolean debugDriller = false;
+ /**
+ * Debug parameter for world generation. Tracks chunks added/removed from run queue.
+ */
+ public static boolean debugWorldGen = false;
+ /**
+ * Debug parameter for orevein generation.
+ */
+ public static boolean debugOrevein = false;
+ /**
+ * Debug parameter for small ore generation.
+ */
+ public static boolean debugSmallOres = false;
+ /**
+ * Debug parameter for stones generation.
+ */
+ public static boolean debugStones = false;
+ /**
+ * Debug parameter for single block pump
+ */
+ public static boolean debugBlockPump = false;
+ /**
+ * Debug parameter for single block miner
+ */
+ public static boolean debugBlockMiner = false;
+ /**
+ * Debug parameter for entity cramming reduction
+ */
+ public static boolean debugEntityCramming = false;
+ /**
+ * Debug parameter for {@link gregtech.api.util.GT_ChunkAssociatedData}
+ */
+ public static boolean debugWorldData = false;
+ /**
+ * Parameter if multi tile entities (MuTEs) should be enabled in the pack. Turned off by default until
+ * implementation is done.
+ */
+ public static boolean enableMultiTileEntities = false;
+ /**
+ * Number of ticks between sending sound packets to clients for electric machines. Default is 1.5 seconds. Trying to
+ * mitigate lag and FPS drops.
+ */
+ public static int ticksBetweenSounds = 30;
+ /**
+ * If you have to give something a World Parameter but there is no World... (Dummy World)
+ */
+ public static World DW;
+
+ /**
+ * This will prevent NEI from crashing but spams the Log.
+ */
+ public static boolean allow_broken_recipemap = false;
+ /**
+ * This will set the percentage how much ReinforcedGlass is Allowed in Cleanroom Walls.
+ */
+ public static float cleanroomGlass = 5.0f;
+ /**
+ * This will let machines such as drills and pumps chunkload their work area.
+ */
+ public static boolean enableChunkloaders = true;
+ /**
+ * This will make all chunkloading machines act as World Anchors (true) or Passive Anchors (false)
+ */
+ public static boolean alwaysReloadChunkloaders = false;
+
+ public static boolean debugChunkloaders = false;
+ public static boolean cls_enabled;
+ public static final Set<String> mCTMEnabledBlock = new HashSet<>();
+ public static final Set<String> mCTMDisabledBlock = new HashSet<>();
+
+ public static final int STEAM_PER_WATER = 160;
+ /**
+ * If true, then digital chest with AE2 storage bus will be accessible only through AE2
+ */
+ public static boolean disableDigitalChestsExternalAccess = false;
+
+ public static boolean lateConfigSave = true;
+ public static boolean worldTickHappened = false;
+
+ public static final int[] emptyIntArray = new int[0];
+
+ public static final IFluidTank[] emptyFluidTank = new IFluidTank[0];
+ public static final FluidTankGT[] emptyFluidTankGT = new FluidTankGT[0];
+ public static final FluidTankInfo[] emptyFluidTankInfo = new FluidTankInfo[0];
+ public static final FluidStack[] emptyFluidStack = new FluidStack[0];
+ public static final ItemStack[] emptyItemStackArray = new ItemStack[0];
+ public static final IIconContainer[] emptyIconContainerArray = new IIconContainer[3];
+
+ /**
+ * Pretty formatting for author names.
+ */
+ public static final String Colen = "" + EnumChatFormatting.DARK_RED
+ + EnumChatFormatting.BOLD
+ + EnumChatFormatting.ITALIC
+ + EnumChatFormatting.UNDERLINE
+ + "C"
+ + EnumChatFormatting.GOLD
+ + EnumChatFormatting.BOLD
+ + EnumChatFormatting.ITALIC
+ + EnumChatFormatting.UNDERLINE
+ + "o"
+ + EnumChatFormatting.GREEN
+ + EnumChatFormatting.BOLD
+ + EnumChatFormatting.ITALIC
+ + EnumChatFormatting.UNDERLINE
+ + "l"
+ + EnumChatFormatting.DARK_AQUA
+ + EnumChatFormatting.BOLD
+ + EnumChatFormatting.ITALIC
+ + EnumChatFormatting.UNDERLINE
+ + "e"
+ + EnumChatFormatting.DARK_PURPLE
+ + EnumChatFormatting.BOLD
+ + EnumChatFormatting.ITALIC
+ + EnumChatFormatting.UNDERLINE
+ + "n";
+
+ public static final String AuthorColen = "Author: " + Colen;
+ public static final String AuthorKuba = "Author: " + EnumChatFormatting.DARK_RED
+ + EnumChatFormatting.BOLD
+ + "k"
+ + EnumChatFormatting.RED
+ + EnumChatFormatting.BOLD
+ + "u"
+ + EnumChatFormatting.GOLD
+ + EnumChatFormatting.BOLD
+ + "b"
+ + EnumChatFormatting.YELLOW
+ + EnumChatFormatting.BOLD
+ + "a"
+ + EnumChatFormatting.DARK_GREEN
+ + EnumChatFormatting.BOLD
+ + "6"
+ + EnumChatFormatting.GREEN
+ + EnumChatFormatting.BOLD
+ + "0"
+ + EnumChatFormatting.AQUA
+ + EnumChatFormatting.BOLD
+ + "0"
+ + EnumChatFormatting.DARK_AQUA
+ + EnumChatFormatting.BOLD
+ + "0";
+
+ public static final String AuthorBlueWeabo = "Author: " + EnumChatFormatting.BLUE
+ + EnumChatFormatting.BOLD
+ + "Blue"
+ + EnumChatFormatting.AQUA
+ + EnumChatFormatting.BOLD
+ + "Weabo";
+
+ public static final String Authorminecraft7771 = "Author: " + EnumChatFormatting.BLUE
+ + EnumChatFormatting.LIGHT_PURPLE
+ + "minecraft7771";
+
+ public static final String AuthorQuerns = "Author: " + EnumChatFormatting.RED + "Querns";
+ public static final String AuthorSilverMoon = "Author: " + EnumChatFormatting.AQUA + "SilverMoon";
+ public static final String AuthorTheEpicGamer274 = "Author: " + "TheEpicGamer274";
+
+ // 7.5F comes from GT_Tool_Turbine_Large#getBaseDamage() given huge turbines are the most efficient now.
+ public static double getMaxPlasmaTurbineEfficiencyFromMaterial(Materials material) {
+ return (5F + (7.5F + material.mToolQuality)) / 10.0;
+ }
+
+ // Called once in GT_Client on world load, has to be called late so that Materials is populated.
+ public static void calculateMaxPlasmaTurbineEfficiency() {
+
+ ArrayList<Double> effArray = new ArrayList<>();
+
+ // Iteration seems to work but need to check turbine as all items appear null.
+ for (Materials material : Materials.values()) {
+ effArray.add(getMaxPlasmaTurbineEfficiencyFromMaterial(material));
+ }
+
+ maxPlasmaTurbineEfficiency = Collections.max(effArray);
+ }
+
+ private static double maxPlasmaTurbineEfficiency;
+
+ public static double getMaxPlasmaTurbineEfficiency() {
+ return maxPlasmaTurbineEfficiency;
+ }
+
+ private static final long[] EXPLOSION_LOOKUP_V = new long[] { V[0], V[1], V[2], V[3], V[4], V[4] * 2, V[5], V[6],
+ V[7], V[8], V[8] * 2, V[9], V[10], V[11], V[12], V[12] * 2, V[13], V[14], V[15] };
+ private static final float[] EXPLOSION_LOOKUP_POWER = new float[] { 1.0F, 2.0F, 3.0F, 4.0F, 5.0F, 6.0F, 7.0F, 8.0F,
+ 9.0F, 10.0F, 11.0F, 12.0F, 13.0F, 14.0F, 15.0F, 16.0F, 17.0F, 18.0F, 19.0F, 20.0F };
+
+ public static float getExplosionPowerForVoltage(long voltage) {
+ for (int i = 0; i < EXPLOSION_LOOKUP_V.length; i++) {
+ if (voltage < EXPLOSION_LOOKUP_V[i]) {
+ return EXPLOSION_LOOKUP_POWER[i];
+ }
+ }
+ return EXPLOSION_LOOKUP_POWER[EXPLOSION_LOOKUP_POWER.length - 1];
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java
new file mode 100644
index 0000000000..f281695d5a
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java
@@ -0,0 +1,101 @@
+package gregtech.api.enums;
+
+import javax.annotation.Nonnull;
+
+import net.minecraft.util.StatCollector;
+
+public enum HeatingCoilLevel {
+
+ None, // 0
+ ULV, // Not implemented 901
+ LV, // Cupronickel 1801
+ MV, // KANTHAL 2701
+ HV, // NICHROME 3601
+ EV, // TPVALLOY 4501
+ IV, // HSSG 5401
+ LuV, // HSSS 6301
+ ZPM, // NAQUADAH 7201
+ UV, // NAQUADAHALLOY 8101
+ UHV, // TRINIUM 9001
+ UEV, // ELECTRUMFLUX 9901
+ UIV, // AWAKENEDDRACONIUM 10801
+ UMV, // INFINITY 11701
+ UXV, // HYPOGEN 12601
+ MAX, // ETERNAL 13501
+ ;
+
+ private static final HeatingCoilLevel[] VALUES = values();
+
+ /**
+ * @return the coil heat, used for recipes in the Electronic Blast Furnace for example.
+ */
+ public long getHeat() {
+ return this == None ? 0 : 1L + (900L * this.ordinal());
+ }
+
+ /**
+ * @return the coil tier, used for discount in the Pyrolyse Oven for example. LV == 0
+ */
+ public byte getTier() {
+ return (byte) (this.ordinal() - 2);
+ }
+
+ /**
+ * @return the coil Level, used for Parallels in the Multi Furnace for example.
+ */
+ public byte getLevel() {
+ return (byte) (1 << Math.min(Math.max(0, this.ordinal() - 2), 4));
+ }
+
+ /**
+ * @return the coil Discount, used for discount in the Multi Furnace for example
+ */
+ public int getCostDiscount() {
+ return 1 << Math.max(0, this.ordinal() - 5);
+ }
+
+ /**
+ * @return Translated name of this coil
+ */
+ public String getName() {
+ return StatCollector.translateToLocal("GT5U.coil." + this);
+ }
+
+ @Nonnull
+ public static HeatingCoilLevel getFromTier(byte tier) {
+ if (tier < 0 || tier > getMaxTier()) return HeatingCoilLevel.None;
+
+ return VALUES[tier + 2];
+ }
+
+ /**
+ * @param applyColor Whether to apply tiered color
+ * @return Translated coil name. Heat exceeding MAX is represented as "Eternal+".
+ */
+ @Nonnull
+ public static String getDisplayNameFromHeat(int heat, boolean applyColor) {
+ for (HeatingCoilLevel heatLevel : VALUES) {
+ if (heatLevel == HeatingCoilLevel.None || heatLevel == HeatingCoilLevel.ULV) continue;
+ if (heatLevel.getHeat() >= heat) {
+ String name = heatLevel.getName();
+ if (applyColor) {
+ name = GT_Values.TIER_COLORS[heatLevel.getTier() + 1] + name;
+ }
+ return name;
+ }
+ }
+ String name = HeatingCoilLevel.MAX.getName() + "+";
+ if (applyColor) {
+ name = GT_Values.TIER_COLORS[HeatingCoilLevel.MAX.getTier() + 1] + name;
+ }
+ return name;
+ }
+
+ public static int size() {
+ return VALUES.length;
+ }
+
+ public static int getMaxTier() {
+ return VALUES.length - 1 - 2;
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/InventoryType.java b/src/main/java/gregtech/api/enums/InventoryType.java
new file mode 100644
index 0000000000..f8e3c47741
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/InventoryType.java
@@ -0,0 +1,7 @@
+package gregtech.api.enums;
+
+public enum InventoryType {
+ Input,
+ Output,
+ Both;
+}
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
new file mode 100644
index 0000000000..0773afa693
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -0,0 +1,2238 @@
+package gregtech.api.enums;
+
+import static gregtech.api.enums.GT_Values.NI;
+import static gregtech.api.enums.GT_Values.W;
+
+import java.util.Locale;
+
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+
+import gregtech.api.interfaces.IItemContainer;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Log;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
+
+/**
+ * Class containing all non-OreDict Items of GregTech.
+ */
+public enum ItemList implements IItemContainer {
+
+ Display_ITS_FREE,
+ Display_Fluid,
+ FR_Lemon,
+ FR_Mulch,
+ FR_Fertilizer,
+ FR_Compost,
+ FR_Silk,
+ FR_Wax,
+ FR_RefractoryWax,
+ FR_WaxCapsule,
+ FR_RefractoryCapsule,
+ FR_Stick,
+ FR_Casing_Impregnated,
+ FR_Casing_Sturdy,
+ FR_Casing_Hardened,
+ FR_Bee_Drone,
+ FR_Bee_Princess,
+ FR_Bee_Queen,
+ FR_Tree_Sapling,
+ FR_Butterfly,
+ FR_Larvae,
+ FR_Serum,
+ FR_Caterpillar,
+ FR_PollenFertile,
+ TF_LiveRoot,
+ TF_Vial_FieryBlood,
+ TF_Vial_FieryTears,
+ RC_ShuntingWire,
+ RC_ShuntingWireFrame,
+ RC_Rail_Reinforced,
+ RC_Rail_Electric,
+ RC_Rail_Standard,
+ RC_Rail_Wooden,
+ RC_Rail_Adv,
+ RC_Rail_HS,
+ RC_Tie_Wood,
+ RC_Tie_Stone,
+ RC_Bed_Wood,
+ RC_Bed_Stone,
+ RC_Rebar,
+ TC_Thaumometer,
+ IC2_Item_Casing_Tin,
+ IC2_Item_Casing_Copper,
+ IC2_Item_Casing_Iron,
+ IC2_Item_Casing_Steel,
+ IC2_Item_Casing_Lead,
+ IC2_Item_Casing_Bronze,
+ IC2_Item_Casing_Gold,
+ IC2_Spray_WeedEx,
+ IC2_Scrap,
+ IC2_Scrapbox,
+ IC2_Fertilizer,
+ IC2_Mixed_Metal_Ingot,
+ IC2_Hops,
+ IC2_Resin,
+ IC2_Plantball,
+ IC2_PlantballCompressed,
+ IC2_CoffeeBeans,
+ IC2_CoffeePowder,
+ IC2_Crop_Seeds,
+ IC2_Grin_Powder,
+ IC2_Energium_Dust,
+ IC2_Compressed_Coal_Ball,
+ IC2_Compressed_Coal_Chunk,
+ IC2_Fuel_Rod_Empty,
+ IC2_Food_Can_Empty,
+ IC2_Food_Can_Filled,
+ IC2_Food_Can_Spoiled,
+ IC2_ShaftIron,
+ IC2_ShaftSteel,
+ IC2_Industrial_Diamond,
+ IC2_ForgeHammer,
+ IC2_WireCutter,
+ IC2_SuBattery,
+ IC2_ReBattery,
+ IC2_AdvBattery,
+ IC2_EnergyCrystal,
+ IC2_LapotronCrystal,
+ Arrow_Head_Glass_Emtpy,
+ Arrow_Head_Glass_Poison,
+ Arrow_Head_Glass_Poison_Long,
+ Arrow_Head_Glass_Poison_Strong,
+ Arrow_Head_Glass_Slowness,
+ Arrow_Head_Glass_Slowness_Long,
+ Arrow_Head_Glass_Weakness,
+ Arrow_Head_Glass_Weakness_Long,
+ Arrow_Head_Glass_Holy_Water,
+ Arrow_Wooden_Glass_Emtpy,
+ Arrow_Wooden_Glass_Poison,
+ Arrow_Wooden_Glass_Poison_Long,
+ Arrow_Wooden_Glass_Poison_Strong,
+ Arrow_Wooden_Glass_Slowness,
+ Arrow_Wooden_Glass_Slowness_Long,
+ Arrow_Wooden_Glass_Weakness,
+ Arrow_Wooden_Glass_Weakness_Long,
+ Arrow_Wooden_Glass_Holy_Water,
+ Arrow_Plastic_Glass_Emtpy,
+ Arrow_Plastic_Glass_Poison,
+ Arrow_Plastic_Glass_Poison_Long,
+ Arrow_Plastic_Glass_Poison_Strong,
+ Arrow_Plastic_Glass_Slowness,
+ Arrow_Plastic_Glass_Slowness_Long,
+ Arrow_Plastic_Glass_Weakness,
+ Arrow_Plastic_Glass_Weakness_Long,
+ Arrow_Plastic_Glass_Holy_Water,
+ Shape_Empty,
+
+ Shape_Mold_Bottle,
+ Shape_Mold_Plate,
+ Shape_Mold_Ingot,
+ Shape_Mold_Casing,
+ Shape_Mold_Gear,
+ Shape_Mold_Gear_Small,
+ Shape_Mold_Credit,
+ Shape_Mold_Nugget,
+ Shape_Mold_Block,
+ Shape_Mold_Ball,
+ Shape_Mold_Bun,
+ Shape_Mold_Bread,
+ Shape_Mold_Baguette,
+ Shape_Mold_Cylinder,
+ Shape_Mold_Anvil,
+ Shape_Mold_Arrow,
+ Shape_Mold_Name,
+ Shape_Mold_Rod,
+ Shape_Mold_Bolt,
+ Shape_Mold_Round,
+ Shape_Mold_Screw,
+ Shape_Mold_Ring,
+ Shape_Mold_Rod_Long,
+ Shape_Mold_Rotor,
+ Shape_Mold_Turbine_Blade,
+ Shape_Mold_Pipe_Tiny,
+ Shape_Mold_Pipe_Small,
+ Shape_Mold_Pipe_Medium,
+ Shape_Mold_Pipe_Large,
+ Shape_Mold_Pipe_Huge,
+ Shape_Mold_ToolHeadDrill,
+ Shape_Slicer_Flat,
+ Shape_Slicer_Stripes,
+ Shape_Extruder_Bottle,
+ Shape_Extruder_Plate,
+ Shape_Extruder_Cell,
+ Shape_Extruder_Ring,
+ Shape_Extruder_Rod,
+ Shape_Extruder_Bolt,
+ Shape_Extruder_Ingot,
+ Shape_Extruder_Wire,
+ Shape_Extruder_Casing,
+ Shape_Extruder_Pipe_Tiny,
+ Shape_Extruder_Pipe_Small,
+ Shape_Extruder_Pipe_Medium,
+ Shape_Extruder_Pipe_Large,
+ Shape_Extruder_Pipe_Huge,
+ Shape_Extruder_Block,
+ Shape_Extruder_Sword,
+ Shape_Extruder_Pickaxe,
+ Shape_Extruder_Shovel,
+ Shape_Extruder_Axe,
+ Shape_Extruder_Hoe,
+ Shape_Extruder_Hammer,
+ Shape_Extruder_File,
+ Shape_Extruder_Saw,
+ Shape_Extruder_Gear,
+ Shape_Extruder_Rotor,
+ Shape_Extruder_Turbine_Blade,
+ Shape_Extruder_Small_Gear,
+ Shape_Extruder_ToolHeadDrill,
+
+ White_Dwarf_Shape_Extruder_Bottle,
+ White_Dwarf_Shape_Extruder_Plate,
+ White_Dwarf_Shape_Extruder_Cell,
+ White_Dwarf_Shape_Extruder_Ring,
+ White_Dwarf_Shape_Extruder_Rod,
+ White_Dwarf_Shape_Extruder_Bolt,
+ White_Dwarf_Shape_Extruder_Ingot,
+ White_Dwarf_Shape_Extruder_Wire,
+ White_Dwarf_Shape_Extruder_Casing,
+ White_Dwarf_Shape_Extruder_Pipe_Tiny,
+ White_Dwarf_Shape_Extruder_Pipe_Small,
+ White_Dwarf_Shape_Extruder_Pipe_Medium,
+ White_Dwarf_Shape_Extruder_Pipe_Large,
+ White_Dwarf_Shape_Extruder_Pipe_Huge,
+ White_Dwarf_Shape_Extruder_Block,
+ White_Dwarf_Shape_Extruder_Sword,
+ White_Dwarf_Shape_Extruder_Pickaxe,
+ White_Dwarf_Shape_Extruder_Shovel,
+ White_Dwarf_Shape_Extruder_Axe,
+ White_Dwarf_Shape_Extruder_Hoe,
+ White_Dwarf_Shape_Extruder_Hammer,
+ White_Dwarf_Shape_Extruder_File,
+ White_Dwarf_Shape_Extruder_Saw,
+ White_Dwarf_Shape_Extruder_Gear,
+ White_Dwarf_Shape_Extruder_Rotor,
+ White_Dwarf_Shape_Extruder_Turbine_Blade,
+ White_Dwarf_Shape_Extruder_Small_Gear,
+ White_Dwarf_Shape_Extruder_ToolHeadDrill,
+
+ Crate_Empty,
+ Credit_Copper,
+ Credit_Iron,
+ Credit_Silver,
+ Credit_Gold,
+ Credit_Platinum,
+ Credit_Osmium,
+ Credit_Greg_Copper,
+ Credit_Greg_Cupronickel,
+ Credit_Greg_Silver,
+ Credit_Greg_Gold,
+ Credit_Greg_Platinum,
+ Credit_Greg_Osmium,
+ Credit_Greg_Naquadah,
+ Credit_Greg_Neutronium,
+ Coin_Gold_Ancient,
+ Coin_Doge,
+ Coin_Chocolate,
+ Cell_Universal_Fluid,
+ Cell_Empty,
+ Cell_Water,
+ Cell_Lava,
+ Cell_Air,
+ Large_Fluid_Cell_Steel,
+ Large_Fluid_Cell_TungstenSteel,
+ Large_Fluid_Cell_Aluminium,
+ Large_Fluid_Cell_StainlessSteel,
+ Large_Fluid_Cell_Titanium,
+ Large_Fluid_Cell_Chrome,
+ Large_Fluid_Cell_Iridium,
+ Large_Fluid_Cell_Osmium,
+ Large_Fluid_Cell_Neutronium,
+ ThermosCan_Empty,
+ ThermosCan_Dark_Coffee,
+ ThermosCan_Dark_Cafe_au_lait,
+ ThermosCan_Coffee,
+ ThermosCan_Cafe_au_lait,
+ ThermosCan_Lait_au_cafe,
+ ThermosCan_Dark_Chocolate_Milk,
+ ThermosCan_Chocolate_Milk,
+ ThermosCan_Tea,
+ ThermosCan_Sweet_Tea,
+ ThermosCan_Ice_Tea,
+ Bottle_Empty,
+ Bottle_Milk,
+ Bottle_Holy_Water,
+ Bottle_Purple_Drink,
+ Bottle_Grape_Juice,
+ Bottle_Wine,
+ Bottle_Vinegar,
+ Bottle_Potato_Juice,
+ Bottle_Vodka,
+ Bottle_Leninade,
+ Bottle_Mineral_Water,
+ Bottle_Salty_Water,
+ Bottle_Reed_Water,
+ Bottle_Rum,
+ Bottle_Pirate_Brew,
+ Bottle_Hops_Juice,
+ Bottle_Dark_Beer,
+ Bottle_Dragon_Blood,
+ Bottle_Wheaty_Juice,
+ Bottle_Scotch,
+ Bottle_Glen_McKenner,
+ Bottle_Wheaty_Hops_Juice,
+ Bottle_Beer,
+ Bottle_Chilly_Sauce,
+ Bottle_Hot_Sauce,
+ Bottle_Diabolo_Sauce,
+ Bottle_Diablo_Sauce,
+ Bottle_Snitches_Glitch_Sauce,
+ Bottle_Apple_Juice,
+ Bottle_Cider,
+ Bottle_Golden_Apple_Juice,
+ Bottle_Golden_Cider,
+ Bottle_Iduns_Apple_Juice,
+ Bottle_Notches_Brew,
+ Bottle_Lemon_Juice,
+ Bottle_Limoncello,
+ Bottle_Lemonade,
+ Bottle_Alcopops,
+ Bottle_Cave_Johnsons_Grenade_Juice,
+ Food_Potato_On_Stick,
+ Food_Potato_On_Stick_Roasted,
+ Food_Fries,
+ Food_ChiliChips,
+ Food_PotatoChips,
+ Food_Baked_Potato,
+ Food_Poisonous_Potato,
+ Food_Cheese,
+ Food_Chum,
+ Food_Chum_On_Stick,
+ Food_Dough,
+ Food_Dough_Sugar,
+ Food_Dough_Chocolate,
+ Food_Raw_Cookie,
+ Food_Flat_Dough,
+ Food_Burger_Veggie,
+ Food_Burger_Cheese,
+ Food_Burger_Meat,
+ Food_Burger_Chum,
+ Food_Sandwich_Veggie,
+ Food_Sandwich_Cheese,
+ Food_Sandwich_Bacon,
+ Food_Sandwich_Steak,
+ Food_Large_Sandwich_Veggie,
+ Food_Large_Sandwich_Cheese,
+ Food_Large_Sandwich_Bacon,
+ Food_Large_Sandwich_Steak,
+ Food_Sliced_Lemon,
+ Food_Sliced_Tomato,
+ Food_Sliced_Onion,
+ Food_Sliced_Cucumber,
+ Food_Sliced_Cheese,
+ Food_Sliced_Bread,
+ Food_Sliced_Bun,
+ Food_Sliced_Baguette,
+ Food_Sliced_Breads,
+ Food_Sliced_Buns,
+ Food_Sliced_Baguettes,
+ Food_Packaged_Fries,
+ Food_Packaged_PotatoChips,
+ Food_Packaged_ChiliChips,
+ Food_Raw_Potato,
+ Food_Raw_Fries,
+ Food_Raw_PotatoChips,
+ Food_Raw_Bread,
+ Food_Raw_Bun,
+ Food_Raw_Baguette,
+ Food_Raw_Cake,
+ Food_Raw_Pizza_Veggie,
+ Food_Raw_Pizza_Cheese,
+ Food_Raw_Pizza_Meat,
+ Food_Baked_Bread,
+ Food_Baked_Bun,
+ Food_Baked_Baguette,
+ Food_Baked_Cake,
+ Food_Baked_Pizza_Veggie,
+ Food_Baked_Pizza_Cheese,
+ Food_Baked_Pizza_Meat,
+ Crop_Drop_Argentia,
+ Crop_Drop_Plumbilia,
+ Crop_Drop_Indigo,
+ Crop_Drop_Ferru,
+ Crop_Drop_Aurelia,
+ Crop_Drop_OilBerry,
+ Crop_Drop_MilkWart,
+ Crop_Drop_BobsYerUncleRanks,
+ Crop_Drop_Coppon,
+ Crop_Drop_Tine,
+ Crop_Drop_Chilly,
+ Crop_Drop_Lemon,
+ Crop_Drop_Onion,
+ Crop_Drop_Tomato,
+ Crop_Drop_MTomato,
+ Crop_Drop_Grapes,
+ Crop_Drop_TeaLeaf,
+ Crop_Drop_Cucumber,
+ Crop_Drop_Rape,
+ Schematic,
+ Schematic_Crafting,
+ Schematic_1by1,
+ Schematic_2by2,
+ Schematic_3by3,
+ Schematic_Dust,
+
+ GigaChad,
+
+ Circuit_Integrated,
+ Circuit_Board_Basic,
+ Circuit_Board_Advanced,
+ Circuit_Board_Elite,
+ Circuit_Parts_Advanced,
+ Circuit_Parts_Wiring_Basic,
+ Circuit_Parts_Wiring_Advanced,
+ Circuit_Parts_Wiring_Elite,
+ Circuit_Parts_Crystal_Chip_Elite,
+ Circuit_Parts_Crystal_Chip_Master,
+ Circuit_Parts_Crystal_Chip_Wetware,
+ Circuit_Primitive,
+ Circuit_Basic,
+ Circuit_Good,
+ Circuit_Advanced,
+ Circuit_Data,
+ Circuit_Elite,
+ Circuit_Master,
+ Circuit_Ultimate,
+ Circuit_Biowarecomputer,
+ Circuit_Biowaresupercomputer,
+
+ Rotor_LV, // these aren't actually used
+ Rotor_MV,
+ Rotor_HV,
+ Rotor_EV,
+ Rotor_IV,
+
+ Electric_Motor_LV,
+ Electric_Motor_MV,
+ Electric_Motor_HV,
+ Electric_Motor_EV,
+ Electric_Motor_IV,
+ Electric_Motor_LuV,
+ Electric_Motor_ZPM,
+ Electric_Motor_UV,
+ Electric_Motor_UHV,
+ Electric_Motor_UEV,
+ Electric_Motor_UIV,
+ Electric_Motor_UMV,
+ Electric_Motor_UXV,
+ Electric_Motor_MAX,
+
+ Electric_Pump_LV,
+ Electric_Pump_MV,
+ Electric_Pump_HV,
+ Electric_Pump_EV,
+ Electric_Pump_IV,
+ Electric_Pump_LuV,
+ Electric_Pump_ZPM,
+ Electric_Pump_UV,
+ Electric_Pump_UHV,
+ Electric_Pump_UEV,
+ Electric_Pump_UIV,
+ Electric_Pump_UMV,
+ Electric_Pump_UXV,
+ Electric_Pump_MAX,
+
+ Tesseract,
+ EnergisedTesseract,
+ Timepiece,
+
+ Steam_Valve_LV,
+ Steam_Valve_MV,
+ Steam_Valve_HV,
+ Steam_Valve_EV,
+ Steam_Valve_IV,
+
+ Steam_Regulator_LV,
+ Steam_Regulator_MV,
+ Steam_Regulator_HV,
+ Steam_Regulator_EV,
+ Steam_Regulator_IV,
+
+ FluidRegulator_LV,
+ FluidRegulator_MV,
+ FluidRegulator_HV,
+ FluidRegulator_EV,
+ FluidRegulator_IV,
+ FluidRegulator_LuV,
+ FluidRegulator_ZPM,
+ FluidRegulator_UV,
+
+ Conveyor_Module_LV,
+ Conveyor_Module_MV,
+ Conveyor_Module_HV,
+ Conveyor_Module_EV,
+ Conveyor_Module_IV,
+ Conveyor_Module_LuV,
+ Conveyor_Module_ZPM,
+ Conveyor_Module_UV,
+ Conveyor_Module_UHV,
+ Conveyor_Module_UEV,
+ Conveyor_Module_UIV,
+ Conveyor_Module_UMV,
+ Conveyor_Module_UXV,
+ Conveyor_Module_MAX,
+
+ Electric_Piston_LV,
+ Electric_Piston_MV,
+ Electric_Piston_HV,
+ Electric_Piston_EV,
+ Electric_Piston_IV,
+ Electric_Piston_LuV,
+ Electric_Piston_ZPM,
+ Electric_Piston_UV,
+ Electric_Piston_UHV,
+ Electric_Piston_UEV,
+ Electric_Piston_UIV,
+ Electric_Piston_UMV,
+ Electric_Piston_UXV,
+ Electric_Piston_MAX,
+
+ Robot_Arm_LV,
+ Robot_Arm_MV,
+ Robot_Arm_HV,
+ Robot_Arm_EV,
+ Robot_Arm_IV,
+ Robot_Arm_LuV,
+ Robot_Arm_ZPM,
+ Robot_Arm_UV,
+ Robot_Arm_UHV,
+ Robot_Arm_UEV,
+ Robot_Arm_UIV,
+ Robot_Arm_UMV,
+ Robot_Arm_UXV,
+ Robot_Arm_MAX,
+
+ Emitter_LV,
+ Emitter_MV,
+ Emitter_HV,
+ Emitter_EV,
+ Emitter_IV,
+ Emitter_LuV,
+ Emitter_ZPM,
+ Emitter_UV,
+ Emitter_UHV,
+ Emitter_UEV,
+ Emitter_UIV,
+ Emitter_UMV,
+ Emitter_UXV,
+ Emitter_MAX,
+
+ Sensor_LV,
+ Sensor_MV,
+ Sensor_HV,
+ Sensor_EV,
+ Sensor_IV,
+ Sensor_LuV,
+ Sensor_ZPM,
+ Sensor_UV,
+ Sensor_UHV,
+ Sensor_UEV,
+ Sensor_UIV,
+ Sensor_UMV,
+ Sensor_UXV,
+ Sensor_MAX,
+
+ Field_Generator_LV,
+ Field_Generator_MV,
+ Field_Generator_HV,
+ Field_Generator_EV,
+ Field_Generator_IV,
+ Field_Generator_LuV,
+ Field_Generator_ZPM,
+ Field_Generator_UV,
+ Field_Generator_UHV,
+ Field_Generator_UEV,
+ Field_Generator_UIV,
+ Field_Generator_UMV,
+ Field_Generator_UXV,
+ Field_Generator_MAX,
+
+ StableAdhesive,
+ SuperconductorComposite,
+ NaquadriaSupersolid,
+
+ Battery_Hull_LV,
+ Battery_Hull_MV,
+ Battery_Hull_HV,
+
+ Battery_SU_LV_SulfuricAcid,
+ Battery_SU_LV_Mercury,
+ Battery_SU_MV_SulfuricAcid,
+ Battery_SU_MV_Mercury,
+ Battery_SU_HV_SulfuricAcid,
+ Battery_SU_HV_Mercury,
+ Battery_RE_ULV_Tantalum,
+ Battery_RE_LV_Cadmium,
+ Battery_RE_LV_Lithium,
+ Battery_RE_LV_Sodium,
+ Battery_RE_MV_Cadmium,
+ Battery_RE_MV_Lithium,
+ Battery_RE_MV_Sodium,
+ Battery_RE_HV_Cadmium,
+ Battery_RE_HV_Lithium,
+ Battery_RE_HV_Sodium,
+ ZPM,
+ Fuel_Can_Plastic_Empty,
+ Fuel_Can_Plastic_Filled,
+ Upgrade_Battery,
+ Upgrade_Overclocker,
+ Upgrade_Muffler,
+ Upgrade_SteamEngine,
+ Upgrade_Lock,
+ Cover_FluidLimiter,
+ Cover_Controller,
+ Cover_ActivityDetector,
+ Cover_FluidDetector,
+ Cover_ItemDetector,
+ Cover_EnergyDetector,
+ Cover_FluidStorageMonitor,
+ Cover_Drain,
+ Cover_Shutter,
+ Cover_Crafting,
+ Cover_Screen,
+ Cover_SolarPanel,
+ Cover_SolarPanel_8V,
+ Cover_SolarPanel_LV,
+ Cover_SolarPanel_MV,
+ Cover_SolarPanel_HV,
+ Cover_SolarPanel_EV,
+ Cover_SolarPanel_IV,
+ Cover_SolarPanel_LuV,
+ Cover_SolarPanel_ZPM,
+ Cover_SolarPanel_UV,
+ Cover_SolarPanel_UHV,
+ Cover_SolarPanel_UEV,
+ Cover_SolarPanel_UIV,
+ Ingot_IridiumAlloy,
+ Plank_Oak,
+ Plank_Spruce,
+ Plank_Birch,
+ Plank_Jungle,
+ Plank_Acacia,
+ Plank_DarkOak,
+ Plank_Larch,
+ Plank_Teak,
+ Plank_Acacia_Green,
+ Plank_Lime,
+ Plank_Chestnut,
+ Plank_Wenge,
+ Plank_Baobab,
+ Plank_Sequoia,
+ Plank_Kapok,
+ Plank_Ebony,
+ Plank_Mahagony,
+ Plank_Balsa,
+ Plank_Willow,
+ Plank_Walnut,
+ Plank_Greenheart,
+ Plank_Cherry,
+ Plank_Mahoe,
+ Plank_Poplar,
+ Plank_Palm,
+ Plank_Papaya,
+ Plank_Pine,
+ Plank_Plum,
+ Plank_Maple,
+ Plank_Citrus,
+ Dye_Indigo,
+ Dye_SquidInk,
+ Dye_Bonemeal,
+ Dye_Cocoa,
+ Duct_Tape,
+ Book_Written_00,
+ Book_Written_01,
+ Book_Written_02,
+ Book_Written_03,
+ Paper_Printed_Pages,
+ Paper_Magic_Empty,
+ Paper_Magic_Page,
+ Paper_Magic_Pages,
+ Paper_Punch_Card_Empty,
+ Paper_Punch_Card_Encoded,
+ McGuffium_239,
+ Tool_Cover_Copy_Paste,
+ NC_SensorCard,
+ NC_SensorKit,
+ Tool_Matches,
+ Tool_MatchBox_Used,
+ Tool_MatchBox_Full,
+ Tool_Lighter_Invar_Empty,
+ Tool_Lighter_Invar_Used,
+ Tool_Lighter_Invar_Full,
+ Tool_Lighter_Platinum_Empty,
+ Tool_Lighter_Platinum_Used,
+ Tool_Lighter_Platinum_Full,
+ Tool_Cheat,
+ Tool_Scanner,
+ Tool_DataOrb,
+ Tool_DataStick,
+ Tool_Sonictron,
+ Tool_Sword_Bronze,
+ Tool_Pickaxe_Bronze,
+ Tool_Shovel_Bronze,
+ Tool_Axe_Bronze,
+ Tool_Hoe_Bronze,
+ Tool_Sword_Steel,
+ Tool_Pickaxe_Steel,
+ Tool_Shovel_Steel,
+ Tool_Axe_Steel,
+ Tool_Hoe_Steel,
+
+ Spray_Empty,
+ Spray_Bug,
+ Spray_Ice,
+ Spray_Hardener,
+ Spray_CFoam,
+ Spray_Pepper,
+ Spray_Hydration,
+
+ Color_00,
+ Color_01,
+ Color_02,
+ Color_03,
+ Color_04,
+ Color_05,
+ Color_06,
+ Color_07,
+ Color_08,
+ Color_09,
+ Color_10,
+ Color_11,
+ Color_12,
+ Color_13,
+ Color_14,
+ Color_15,
+
+ Spray_Color_00,
+ Spray_Color_01,
+ Spray_Color_02,
+ Spray_Color_03,
+ Spray_Color_04,
+ Spray_Color_05,
+ Spray_Color_06,
+ Spray_Color_07,
+ Spray_Color_08,
+ Spray_Color_09,
+ Spray_Color_10,
+ Spray_Color_11,
+ Spray_Color_12,
+ Spray_Color_13,
+ Spray_Color_14,
+ Spray_Color_15,
+ Spray_Color_Remover,
+
+ Spray_Color_Used_00,
+ Spray_Color_Used_01,
+ Spray_Color_Used_02,
+ Spray_Color_Used_03,
+ Spray_Color_Used_04,
+ Spray_Color_Used_05,
+ Spray_Color_Used_06,
+ Spray_Color_Used_07,
+ Spray_Color_Used_08,
+ Spray_Color_Used_09,
+ Spray_Color_Used_10,
+ Spray_Color_Used_11,
+ Spray_Color_Used_12,
+ Spray_Color_Used_13,
+ Spray_Color_Used_14,
+ Spray_Color_Used_15,
+ Spray_Color_Used_Remover,
+
+ Spray_Color_Remover_Empty,
+
+ Armor_Cheat,
+ Armor_Cloaking,
+ Armor_Lamp,
+ Armor_LithiumPack,
+ Armor_LapotronicPack,
+ Armor_ForceField,
+ Energy_LapotronicOrb,
+ Reactor_NeutronReflector,
+ Component_Turbine_Bronze,
+ Component_Turbine_Steel,
+ Component_Turbine_Magnalium,
+ Component_Turbine_TungstenSteel,
+ Component_Turbine_Carbon,
+ Component_LavaFilter,
+ Component_Sawblade_Diamond,
+ Component_Grinder_Diamond,
+ Component_Grinder_Tungsten,
+ Component_Filter,
+ Component_Minecart_Wheels_Iron,
+ Component_Minecart_Wheels_Steel,
+
+ Generator_Diesel_LV,
+ Generator_Diesel_MV,
+ Generator_Diesel_HV,
+ Generator_Gas_Turbine_LV,
+ Generator_Gas_Turbine_MV,
+ Generator_Gas_Turbine_HV,
+ Generator_Gas_Turbine_EV,
+ Generator_Gas_Turbine_IV,
+ Generator_Steam_Turbine_LV,
+ Generator_Steam_Turbine_MV,
+ Generator_Steam_Turbine_HV,
+ Generator_Naquadah_Mark_I,
+ Generator_Naquadah_Mark_II,
+ Generator_Naquadah_Mark_III,
+ Generator_Naquadah_Mark_IV,
+ Generator_Naquadah_Mark_V,
+ // Generator_Naquadah_Mark_VI,
+ Machine_Bronze_Boiler,
+ Machine_Bronze_Boiler_Solar,
+ Machine_HP_Solar,
+ Machine_Bronze_CraftingTable,
+ Machine_Bronze_Furnace,
+ Machine_Bronze_Macerator,
+ Machine_Bronze_Extractor,
+ Machine_Bronze_Hammer,
+ Machine_Bronze_Compressor,
+ Machine_Bronze_AlloySmelter,
+ Machine_Bricked_BlastFurnace,
+ Machine_Steel_Boiler_Lava,
+ Machine_Steel_Boiler,
+ Machine_HP_Furnace,
+ Machine_HP_Macerator,
+ Machine_HP_Extractor,
+ Machine_HP_Hammer,
+ Machine_HP_Compressor,
+ Machine_HP_AlloySmelter,
+
+ Hull_Bronze,
+ Hull_HP,
+ Hull_Bronze_Bricks,
+ Hull_HP_Bricks,
+
+ Transformer_LV_ULV,
+ Transformer_MV_LV,
+ Transformer_HV_MV,
+ Transformer_EV_HV,
+ Transformer_IV_EV,
+ Transformer_LuV_IV,
+ Transformer_ZPM_LuV,
+ Transformer_UV_ZPM,
+ Transformer_MAX_UV,
+
+ Casing_ULV,
+ Casing_LV,
+ Casing_MV,
+ Casing_HV,
+ Casing_EV,
+ Casing_IV,
+ Casing_LuV,
+ Casing_ZPM,
+ Casing_UV,
+ Casing_MAX,
+ Casing_BronzePlatedBricks,
+ Casing_HeatProof,
+ Casing_Dim_Trans,
+ Casing_Dim_Injector,
+ Casing_Dim_Bridge,
+ Casing_Coil_Superconductor,
+
+ Casing_SolidSteel,
+ Casing_FrostProof,
+ Casing_Gearbox_Bronze,
+ Casing_Gearbox_Steel,
+ Casing_Gearbox_Titanium,
+ Casing_Gearbox_TungstenSteel,
+ Casing_Processor,
+ Casing_DataDrive,
+ Casing_ContainmentField,
+ Casing_Assembler,
+ Casing_Pump,
+ Casing_Motor,
+ Casing_Pipe_Bronze,
+ Casing_Pipe_Steel,
+ Casing_Pipe_Titanium,
+ Casing_Pipe_TungstenSteel,
+ Casing_Pipe_Polytetrafluoroethylene,
+ Casing_Pipe_Polybenzimidazole,
+
+ Casing_Stripes_A,
+ Casing_Stripes_B,
+ Casing_RadioactiveHazard,
+ Casing_BioHazard,
+ Casing_ExplosionHazard,
+ Casing_FireHazard,
+ Casing_AcidHazard,
+ Casing_MagicHazard,
+ Casing_FrostHazard,
+ Casing_NoiseHazard,
+ Casing_Grate,
+ Casing_Vent,
+ Casing_Vent_T2,
+ Casing_RadiationProof,
+ Casing_AdvancedRadiationProof,
+ Casing_Firebox_Bronze,
+ Casing_Firebox_Steel,
+ Casing_Firebox_TungstenSteel,
+ Casing_Chemically_Inert,
+
+ Casing_MiningOsmiridium,
+ Casing_RobustTungstenSteel,
+ Casing_CleanStainlessSteel,
+ Casing_StableTitanium,
+ Casing_Firebox_Titanium,
+ Casing_MiningNeutronium,
+ Casing_MiningBlackPlutonium,
+ Casing_Advanced_Rhodium_Palladium,
+ Casing_Advanced_Iridium,
+ Casing_Magical,
+
+ Hull_ULV,
+ Hull_LV,
+ Hull_MV,
+ Hull_HV,
+ Hull_EV,
+ Hull_IV,
+ Hull_LuV,
+ Hull_ZPM,
+ Hull_UV,
+ Hull_MAX,
+
+ CompressedFireclay,
+ Firebrick,
+ Casing_Firebricks,
+
+ Automation_Filter_ULV,
+ Automation_Filter_LV,
+ Automation_Filter_MV,
+ Automation_Filter_HV,
+ Automation_Filter_EV,
+ Automation_Filter_IV,
+ Automation_Filter_LuV,
+ Automation_Filter_ZPM,
+ Automation_Filter_UV,
+ Automation_Filter_MAX,
+
+ Automation_TypeFilter_ULV,
+ Automation_TypeFilter_LV,
+ Automation_TypeFilter_MV,
+ Automation_TypeFilter_HV,
+ Automation_TypeFilter_EV,
+ Automation_TypeFilter_IV,
+ Automation_TypeFilter_LuV,
+ Automation_TypeFilter_ZPM,
+ Automation_TypeFilter_UV,
+ Automation_TypeFilter_MAX,
+
+ Automation_ChestBuffer_ULV,
+ Automation_ChestBuffer_LV,
+ Automation_ChestBuffer_MV,
+ Automation_ChestBuffer_HV,
+ Automation_ChestBuffer_EV,
+ Automation_ChestBuffer_IV,
+ Automation_ChestBuffer_LuV,
+ Automation_ChestBuffer_ZPM,
+ Automation_ChestBuffer_UV,
+ Automation_ChestBuffer_MAX,
+
+ Automation_SuperBuffer_ULV,
+ Automation_SuperBuffer_LV,
+ Automation_SuperBuffer_MV,
+ Automation_SuperBuffer_HV,
+ Automation_SuperBuffer_EV,
+ Automation_SuperBuffer_IV,
+ Automation_SuperBuffer_LuV,
+ Automation_SuperBuffer_ZPM,
+ Automation_SuperBuffer_UV,
+ Automation_SuperBuffer_MAX,
+
+ Automation_Regulator_ULV,
+ Automation_Regulator_LV,
+ Automation_Regulator_MV,
+ Automation_Regulator_HV,
+ Automation_Regulator_EV,
+ Automation_Regulator_IV,
+ Automation_Regulator_LuV,
+ Automation_Regulator_ZPM,
+ Automation_Regulator_UV,
+ Automation_Regulator_MAX,
+
+ Automation_ItemDistributor_ULV,
+ Automation_ItemDistributor_LV,
+ Automation_ItemDistributor_MV,
+ Automation_ItemDistributor_HV,
+ Automation_ItemDistributor_EV,
+ Automation_ItemDistributor_IV,
+ Automation_ItemDistributor_LuV,
+ Automation_ItemDistributor_ZPM,
+ Automation_ItemDistributor_UV,
+ Automation_ItemDistributor_MAX,
+
+ Automation_RecipeFilter_ULV,
+ Automation_RecipeFilter_LV,
+ Automation_RecipeFilter_MV,
+ Automation_RecipeFilter_HV,
+ Automation_RecipeFilter_EV,
+ Automation_RecipeFilter_IV,
+ Automation_RecipeFilter_LuV,
+ Automation_RecipeFilter_ZPM,
+ Automation_RecipeFilter_UV,
+ Automation_RecipeFilter_MAX,
+
+ Hatch_Dynamo_ULV,
+ Hatch_Dynamo_LV,
+ Hatch_Dynamo_MV,
+ Hatch_Dynamo_HV,
+ Hatch_Dynamo_EV,
+ Hatch_Dynamo_IV,
+ Hatch_Dynamo_LuV,
+ Hatch_Dynamo_ZPM,
+ Hatch_Dynamo_UV,
+ Hatch_Dynamo_MAX,
+
+ Hatch_Energy_ULV,
+ Hatch_Energy_LV,
+ Hatch_Energy_MV,
+ Hatch_Energy_HV,
+ Hatch_Energy_EV,
+ Hatch_Energy_IV,
+ Hatch_Energy_LuV,
+ Hatch_Energy_ZPM,
+ Hatch_Energy_UV,
+ Hatch_Energy_MAX,
+
+ Wireless_Hatch_Energy_ULV,
+ Wireless_Hatch_Energy_LV,
+ Wireless_Hatch_Energy_MV,
+ Wireless_Hatch_Energy_HV,
+ Wireless_Hatch_Energy_EV,
+ Wireless_Hatch_Energy_IV,
+ Wireless_Hatch_Energy_LuV,
+ Wireless_Hatch_Energy_ZPM,
+ Wireless_Hatch_Energy_UV,
+ Wireless_Hatch_Energy_UHV,
+ Wireless_Hatch_Energy_UEV,
+ Wireless_Hatch_Energy_UIV,
+ Wireless_Hatch_Energy_UMV,
+ Wireless_Hatch_Energy_UXV,
+ Wireless_Hatch_Energy_MAX,
+
+ Wireless_Dynamo_Energy_ULV,
+ Wireless_Dynamo_Energy_LV,
+ Wireless_Dynamo_Energy_MV,
+ Wireless_Dynamo_Energy_HV,
+ Wireless_Dynamo_Energy_EV,
+ Wireless_Dynamo_Energy_IV,
+ Wireless_Dynamo_Energy_LuV,
+ Wireless_Dynamo_Energy_ZPM,
+ Wireless_Dynamo_Energy_UV,
+ Wireless_Dynamo_Energy_UHV,
+ Wireless_Dynamo_Energy_UEV,
+ Wireless_Dynamo_Energy_UIV,
+ Wireless_Dynamo_Energy_UMV,
+ Wireless_Dynamo_Energy_UXV,
+ Wireless_Dynamo_Energy_MAX,
+
+ Hatch_Input_ULV,
+ Hatch_Input_LV,
+ Hatch_Input_MV,
+ Hatch_Input_HV,
+ Hatch_Input_EV,
+ Hatch_Input_IV,
+ Hatch_Input_LuV,
+ Hatch_Input_ZPM,
+ Hatch_Input_UV,
+ Hatch_Input_MAX,
+
+ Hatch_Input_Multi_2x2_EV,
+ Hatch_Input_Multi_2x2_IV,
+ Hatch_Input_Multi_2x2_LuV,
+ Hatch_Input_Multi_2x2_ZPM,
+ Hatch_Input_Multi_2x2_UV,
+ Hatch_Input_Multi_2x2_UHV,
+ Hatch_Input_Multi_2x2_UEV,
+ Hatch_Input_Multi_2x2_UIV,
+ Hatch_Input_Multi_2x2_UMV,
+ Hatch_Input_Multi_2x2_UXV,
+ Hatch_Input_Multi_2x2_Humongous,
+
+ Hatch_Input_Bus_ULV,
+ Hatch_Input_Bus_LV,
+ Hatch_Input_Bus_MV,
+ Hatch_Input_Bus_HV,
+ Hatch_Input_Bus_EV,
+ Hatch_Input_Bus_IV,
+ Hatch_Input_Bus_LuV,
+ Hatch_Input_Bus_ZPM,
+ Hatch_Input_Bus_UV,
+ Hatch_Input_Bus_MAX,
+
+ Hatch_Output_ULV,
+ Hatch_Output_LV,
+ Hatch_Output_MV,
+ Hatch_Output_HV,
+ Hatch_Output_EV,
+ Hatch_Output_IV,
+ Hatch_Output_LuV,
+ Hatch_Output_ZPM,
+ Hatch_Output_UV,
+ Hatch_Output_MAX,
+
+ Hatch_Output_Bus_ULV,
+ Hatch_Output_Bus_LV,
+ Hatch_Output_Bus_MV,
+ Hatch_Output_Bus_HV,
+ Hatch_Output_Bus_EV,
+ Hatch_Output_Bus_IV,
+ Hatch_Output_Bus_LuV,
+ Hatch_Output_Bus_ZPM,
+ Hatch_Output_Bus_UV,
+ Hatch_Output_Bus_MAX,
+
+ Hatch_Muffler_LV,
+ Hatch_Muffler_MV,
+ Hatch_Muffler_HV,
+ Hatch_Muffler_EV,
+ Hatch_Muffler_IV,
+ Hatch_Muffler_LuV,
+ Hatch_Muffler_ZPM,
+ Hatch_Muffler_UV,
+ Hatch_Muffler_MAX,
+
+ Hatch_Maintenance,
+ Hatch_DataAccess_EV,
+ Hatch_DataAccess_LuV,
+ Hatch_DataAccess_UV,
+
+ Battery_Buffer_1by1_ULV,
+ Battery_Buffer_1by1_LV,
+ Battery_Buffer_1by1_MV,
+ Battery_Buffer_1by1_HV,
+ Battery_Buffer_1by1_EV,
+ Battery_Buffer_1by1_IV,
+ Battery_Buffer_1by1_LuV,
+ Battery_Buffer_1by1_ZPM,
+ Battery_Buffer_1by1_UV,
+ Battery_Buffer_1by1_MAX,
+
+ Battery_Buffer_2by2_ULV,
+ Battery_Buffer_2by2_LV,
+ Battery_Buffer_2by2_MV,
+ Battery_Buffer_2by2_HV,
+ Battery_Buffer_2by2_EV,
+ Battery_Buffer_2by2_IV,
+ Battery_Buffer_2by2_LuV,
+ Battery_Buffer_2by2_ZPM,
+ Battery_Buffer_2by2_UV,
+ Battery_Buffer_2by2_MAX,
+
+ Battery_Buffer_3by3_ULV,
+ Battery_Buffer_3by3_LV,
+ Battery_Buffer_3by3_MV,
+ Battery_Buffer_3by3_HV,
+ Battery_Buffer_3by3_EV,
+ Battery_Buffer_3by3_IV,
+ Battery_Buffer_3by3_LuV,
+ Battery_Buffer_3by3_ZPM,
+ Battery_Buffer_3by3_UV,
+ Battery_Buffer_3by3_MAX,
+
+ Battery_Buffer_4by4_ULV,
+ Battery_Buffer_4by4_LV,
+ Battery_Buffer_4by4_MV,
+ Battery_Buffer_4by4_HV,
+ Battery_Buffer_4by4_EV,
+ Battery_Buffer_4by4_IV,
+ Battery_Buffer_4by4_LuV,
+ Battery_Buffer_4by4_ZPM,
+ Battery_Buffer_4by4_UV,
+ Battery_Buffer_4by4_MAX,
+
+ Locker_ULV,
+ Locker_LV,
+ Locker_MV,
+ Locker_HV,
+ Locker_EV,
+ Locker_IV,
+ Locker_LuV,
+ Locker_ZPM,
+ Locker_UV,
+ Locker_MAX,
+
+ Machine_Multi_LargeBoiler_Bronze,
+ Machine_Multi_LargeBoiler_Steel,
+ Machine_Multi_LargeBoiler_Titanium,
+ Machine_Multi_LargeBoiler_TungstenSteel,
+ Machine_Multi_BlastFurnace,
+ Machine_Multi_PlasmaForge,
+ Machine_Multi_ImplosionCompressor,
+ Machine_Multi_VacuumFreezer,
+ Machine_Multi_Furnace,
+
+ Machine_LV_AlloySmelter,
+ Machine_MV_AlloySmelter,
+ Machine_HV_AlloySmelter,
+ Machine_EV_AlloySmelter,
+ Machine_IV_AlloySmelter,
+
+ Machine_LV_Assembler,
+ Machine_MV_Assembler,
+ Machine_HV_Assembler,
+ Machine_EV_Assembler,
+ Machine_IV_Assembler,
+
+ Machine_LV_Bender,
+ Machine_MV_Bender,
+ Machine_HV_Bender,
+ Machine_EV_Bender,
+ Machine_IV_Bender,
+
+ Machine_LV_Canner,
+ Machine_MV_Canner,
+ Machine_HV_Canner,
+ Machine_EV_Canner,
+ Machine_IV_Canner,
+
+ Machine_LV_Compressor,
+ Machine_MV_Compressor,
+ Machine_HV_Compressor,
+ Machine_EV_Compressor,
+ Machine_IV_Compressor,
+
+ Machine_LV_Cutter,
+ Machine_MV_Cutter,
+ Machine_HV_Cutter,
+ Machine_EV_Cutter,
+ Machine_IV_Cutter,
+
+ Machine_LV_Slicer,
+ Machine_MV_Slicer,
+ Machine_HV_Slicer,
+ Machine_EV_Slicer,
+ Machine_IV_Slicer,
+
+ Machine_LV_Sifter,
+ Machine_MV_Sifter,
+ Machine_HV_Sifter,
+ Machine_EV_Sifter,
+ Machine_IV_Sifter,
+
+ Machine_LV_ArcFurnace,
+ Machine_MV_ArcFurnace,
+ Machine_HV_ArcFurnace,
+ Machine_EV_ArcFurnace,
+ Machine_IV_ArcFurnace,
+
+ Machine_LV_PlasmaArcFurnace,
+ Machine_MV_PlasmaArcFurnace,
+ Machine_HV_PlasmaArcFurnace,
+ Machine_EV_PlasmaArcFurnace,
+ Machine_IV_PlasmaArcFurnace,
+
+ Machine_LV_Oven,
+ Machine_MV_Oven,
+ Machine_HV_Oven,
+ Machine_EV_Oven,
+ Machine_IV_Oven,
+
+ Machine_LV_E_Furnace,
+ Machine_MV_E_Furnace,
+ Machine_HV_E_Furnace,
+ Machine_EV_E_Furnace,
+ Machine_IV_E_Furnace,
+
+ Machine_LV_Extractor,
+ Machine_MV_Extractor,
+ Machine_HV_Extractor,
+ Machine_EV_Extractor,
+ Machine_IV_Extractor,
+
+ Machine_LV_Extruder,
+ Machine_MV_Extruder,
+ Machine_HV_Extruder,
+ Machine_EV_Extruder,
+ Machine_IV_Extruder,
+
+ Machine_LV_Lathe,
+ Machine_MV_Lathe,
+ Machine_HV_Lathe,
+ Machine_EV_Lathe,
+ Machine_IV_Lathe,
+
+ Machine_LV_Macerator,
+ Machine_MV_Macerator,
+ Machine_HV_Macerator,
+ Machine_EV_Macerator,
+ Machine_IV_Macerator,
+
+ Machine_LV_Microwave,
+ Machine_MV_Microwave,
+ Machine_HV_Microwave,
+ Machine_EV_Microwave,
+ Machine_IV_Microwave,
+
+ Machine_LV_Printer,
+ Machine_MV_Printer,
+ Machine_HV_Printer,
+ Machine_EV_Printer,
+ Machine_IV_Printer,
+ Machine_LuV_Printer,
+ Machine_ZPM_Printer,
+ Machine_UV_Printer,
+
+ Machine_LV_Recycler,
+ Machine_MV_Recycler,
+ Machine_HV_Recycler,
+ Machine_EV_Recycler,
+ Machine_IV_Recycler,
+
+ Machine_LV_Scanner,
+ Machine_MV_Scanner,
+ Machine_HV_Scanner,
+ Machine_EV_Scanner,
+ Machine_IV_Scanner,
+
+ Machine_LV_Wiremill,
+ Machine_MV_Wiremill,
+ Machine_HV_Wiremill,
+ Machine_EV_Wiremill,
+ Machine_IV_Wiremill,
+
+ Machine_LV_Electrolyzer,
+ Machine_MV_Electrolyzer,
+ Machine_HV_Electrolyzer,
+ Machine_EV_Electrolyzer,
+ Machine_IV_Electrolyzer,
+
+ Machine_LV_Centrifuge,
+ Machine_MV_Centrifuge,
+ Machine_HV_Centrifuge,
+ Machine_EV_Centrifuge,
+ Machine_IV_Centrifuge,
+
+ Machine_LV_ThermalCentrifuge,
+ Machine_MV_ThermalCentrifuge,
+ Machine_HV_ThermalCentrifuge,
+ Machine_EV_ThermalCentrifuge,
+ Machine_IV_ThermalCentrifuge,
+
+ Machine_LV_OreWasher,
+ Machine_MV_OreWasher,
+ Machine_HV_OreWasher,
+ Machine_EV_OreWasher,
+ Machine_IV_OreWasher,
+
+ Machine_LV_RockBreaker,
+ Machine_MV_RockBreaker,
+ Machine_HV_RockBreaker,
+ Machine_EV_RockBreaker,
+ Machine_IV_RockBreaker,
+
+ Machine_LV_Boxinator,
+ Machine_MV_Boxinator,
+ Machine_HV_Boxinator,
+ Machine_EV_Boxinator,
+ Machine_IV_Boxinator,
+ Machine_LuV_Boxinator,
+ Machine_ZPM_Boxinator,
+ Machine_UV_Boxinator,
+
+ Machine_LV_Unboxinator,
+ Machine_MV_Unboxinator,
+ Machine_HV_Unboxinator,
+ Machine_EV_Unboxinator,
+ Machine_IV_Unboxinator,
+ Machine_LuV_Unboxinator,
+ Machine_ZPM_Unboxinator,
+ Machine_UV_Unboxinator,
+
+ Machine_LV_ChemicalReactor,
+ Machine_MV_ChemicalReactor,
+ Machine_HV_ChemicalReactor,
+ Machine_EV_ChemicalReactor,
+ Machine_IV_ChemicalReactor,
+
+ Machine_LV_FluidCanner,
+ Machine_MV_FluidCanner,
+ Machine_HV_FluidCanner,
+ Machine_EV_FluidCanner,
+ Machine_IV_FluidCanner,
+
+ Machine_LV_Bundler,
+ Machine_MV_Bundler,
+ Machine_HV_Bundler,
+ Machine_EV_Bundler,
+ Machine_IV_Bundler,
+
+ Machine_LV_Massfab,
+ Machine_MV_Massfab,
+ Machine_HV_Massfab,
+ Machine_EV_Massfab,
+ Machine_IV_Massfab,
+
+ Machine_LV_Amplifab,
+ Machine_MV_Amplifab,
+ Machine_HV_Amplifab,
+ Machine_EV_Amplifab,
+ Machine_IV_Amplifab,
+
+ Machine_LV_Replicator,
+ Machine_MV_Replicator,
+ Machine_HV_Replicator,
+ Machine_EV_Replicator,
+ Machine_IV_Replicator,
+
+ Machine_LV_Brewery,
+ Machine_MV_Brewery,
+ Machine_HV_Brewery,
+ Machine_EV_Brewery,
+ Machine_IV_Brewery,
+
+ Machine_LV_Fermenter,
+ Machine_MV_Fermenter,
+ Machine_HV_Fermenter,
+ Machine_EV_Fermenter,
+ Machine_IV_Fermenter,
+
+ Machine_LV_FluidExtractor,
+ Machine_MV_FluidExtractor,
+ Machine_HV_FluidExtractor,
+ Machine_EV_FluidExtractor,
+ Machine_IV_FluidExtractor,
+
+ Machine_LV_FluidSolidifier,
+ Machine_MV_FluidSolidifier,
+ Machine_HV_FluidSolidifier,
+ Machine_EV_FluidSolidifier,
+ Machine_IV_FluidSolidifier,
+
+ Machine_LV_Distillery,
+ Machine_MV_Distillery,
+ Machine_HV_Distillery,
+ Machine_EV_Distillery,
+ Machine_IV_Distillery,
+
+ Machine_LV_ChemicalBath,
+ Machine_MV_ChemicalBath,
+ Machine_HV_ChemicalBath,
+ Machine_EV_ChemicalBath,
+ Machine_IV_ChemicalBath,
+
+ Machine_LV_Polarizer,
+ Machine_MV_Polarizer,
+ Machine_HV_Polarizer,
+ Machine_EV_Polarizer,
+ Machine_IV_Polarizer,
+
+ Machine_LV_ElectromagneticSeparator,
+ Machine_MV_ElectromagneticSeparator,
+ Machine_HV_ElectromagneticSeparator,
+ Machine_EV_ElectromagneticSeparator,
+ Machine_IV_ElectromagneticSeparator,
+
+ Machine_LV_Autoclave,
+ Machine_MV_Autoclave,
+ Machine_HV_Autoclave,
+ Machine_EV_Autoclave,
+ Machine_IV_Autoclave,
+
+ Machine_LV_Mixer,
+ Machine_MV_Mixer,
+ Machine_HV_Mixer,
+ Machine_EV_Mixer,
+ Machine_IV_Mixer,
+
+ Machine_LV_LaserEngraver,
+ Machine_MV_LaserEngraver,
+ Machine_HV_LaserEngraver,
+ Machine_EV_LaserEngraver,
+ Machine_IV_LaserEngraver,
+
+ Machine_LV_Press,
+ Machine_MV_Press,
+ Machine_HV_Press,
+ Machine_EV_Press,
+ Machine_IV_Press,
+
+ Machine_LV_Hammer,
+ Machine_MV_Hammer,
+ Machine_HV_Hammer,
+ Machine_EV_Hammer,
+ Machine_IV_Hammer,
+
+ Machine_LV_FluidHeater,
+ Machine_MV_FluidHeater,
+ Machine_HV_FluidHeater,
+ Machine_EV_FluidHeater,
+ Machine_IV_FluidHeater,
+
+ Machine_Multi_LargeChemicalReactor,
+
+ Machine_LV_Miner,
+ Machine_MV_Miner,
+ Machine_HV_Miner,
+
+ Machine_IndustrialApiary,
+ IndustrialApiary_Upgrade_Frame,
+ IndustrialApiary_Upgrade_Acceleration_1,
+ IndustrialApiary_Upgrade_Acceleration_2,
+ IndustrialApiary_Upgrade_Acceleration_3,
+ IndustrialApiary_Upgrade_Acceleration_4,
+ IndustrialApiary_Upgrade_Acceleration_5,
+ IndustrialApiary_Upgrade_Acceleration_6,
+ IndustrialApiary_Upgrade_Acceleration_7,
+ IndustrialApiary_Upgrade_Acceleration_8,
+ IndustrialApiary_Upgrade_Acceleration_8_Upgraded,
+ IndustrialApiary_Upgrade_PRODUCTION,
+ IndustrialApiary_Upgrade_PLAINS,
+ IndustrialApiary_Upgrade_LIGHT,
+ IndustrialApiary_Upgrade_FLOWERING,
+ IndustrialApiary_Upgrade_WINTER,
+ IndustrialApiary_Upgrade_DRYER,
+ IndustrialApiary_Upgrade_AUTOMATION,
+ IndustrialApiary_Upgrade_HUMIDIFIER,
+ IndustrialApiary_Upgrade_HELL,
+ IndustrialApiary_Upgrade_POLLEN,
+ IndustrialApiary_Upgrade_DESERT,
+ IndustrialApiary_Upgrade_COOLER,
+ IndustrialApiary_Upgrade_LIFESPAN,
+ IndustrialApiary_Upgrade_SEAL,
+ IndustrialApiary_Upgrade_STABILIZER,
+ IndustrialApiary_Upgrade_JUNGLE,
+ IndustrialApiary_Upgrade_TERRITORY,
+ IndustrialApiary_Upgrade_OCEAN,
+ IndustrialApiary_Upgrade_SKY,
+ IndustrialApiary_Upgrade_HEATER,
+ IndustrialApiary_Upgrade_SIEVE,
+ IndustrialApiary_Upgrade_UNLIGHT,
+
+ Neutron_Reflector,
+
+ Reactor_Coolant_He_1,
+ Reactor_Coolant_He_3,
+ Reactor_Coolant_He_6,
+ Reactor_Coolant_NaK_1,
+ Reactor_Coolant_NaK_3,
+ Reactor_Coolant_NaK_6,
+ neutroniumHeatCapacitor,
+
+ GlowstoneCell,
+ SunnariumCell,
+
+ ThoriumCell_1,
+ ThoriumCell_2,
+ ThoriumCell_4,
+
+ Reactor_Coolant_Sp_1,
+ Reactor_Coolant_Sp_2,
+ Reactor_Coolant_Sp_3,
+ Reactor_Coolant_Sp_6,
+
+ FusionComputer_LuV,
+ FusionComputer_ZPMV,
+ FusionComputer_UV,
+
+ Casing_Fusion_Coil,
+ Casing_Fusion,
+ Casing_Fusion2,
+
+ Generator_Plasma_IV,
+ Generator_Plasma_LuV,
+ Generator_Plasma_ZPMV,
+
+ MagicEnergyConverter_LV,
+ MagicEnergyConverter_MV,
+ MagicEnergyConverter_HV,
+
+ MagicEnergyAbsorber_LV,
+ MagicEnergyAbsorber_MV,
+ MagicEnergyAbsorber_HV,
+ MagicEnergyAbsorber_EV,
+
+ Depleted_Thorium_1,
+ Depleted_Thorium_2,
+ Depleted_Thorium_4,
+
+ Processing_Array,
+ Distillation_Tower,
+ Energy_LapotronicOrb2,
+ Ore_Processor,
+ ZPM6,
+ ZPM5,
+ ZPM4,
+ ZPM3,
+ ZPM2,
+ Energy_Module,
+ Energy_Cluster,
+
+ Quantum_Tank_LV,
+ Quantum_Tank_MV,
+ Quantum_Tank_HV,
+ Quantum_Tank_EV,
+ Quantum_Tank_IV,
+ Quantum_Chest_LV,
+ Quantum_Chest_MV,
+ Quantum_Chest_HV,
+ Quantum_Chest_EV,
+ Quantum_Chest_IV,
+
+ Super_Tank_LV,
+ Super_Tank_MV,
+ Super_Tank_HV,
+ Super_Tank_EV,
+ Super_Tank_IV,
+ Super_Chest_LV,
+ Super_Chest_MV,
+ Super_Chest_HV,
+ Super_Chest_EV,
+ Super_Chest_IV,
+
+ Long_Distance_Pipeline_Fluid,
+ Long_Distance_Pipeline_Item,
+
+ Long_Distance_Pipeline_Fluid_Pipe,
+ Long_Distance_Pipeline_Item_Pipe,
+
+ Hatch_Output_Bus_ME,
+ Hatch_Output_ME,
+
+ NULL,
+ Cover_AdvancedRedstoneTransmitterExternal,
+ Cover_AdvancedRedstoneTransmitterInternal,
+ Cover_AdvancedRedstoneReceiverExternal,
+ Cover_AdvancedRedstoneReceiverInternal,
+
+ Cover_WirelessFluidDetector,
+ Cover_WirelessItemDetector,
+ Cover_WirelessNeedsMaintainance,
+ Cover_WirelessActivityDetector,
+
+ Cover_RedstoneTransmitterExternal,
+ Cover_RedstoneTransmitterInternal,
+ Cover_RedstoneReceiverExternal,
+ Cover_RedstoneReceiverInternal,
+
+ LargeSteamTurbine,
+ LargeGasTurbine,
+ LargeHPSteamTurbine,
+ LargeAdvancedGasTurbine,
+ LargePlasmaTurbine,
+
+ Ingot_Heavy1,
+ Ingot_Heavy2,
+ Ingot_Heavy3,
+
+ Pump_LV,
+ Pump_MV,
+ Pump_HV,
+ Pump_EV,
+ Pump_IV,
+ Pump_LuV,
+ Pump_ZPM,
+ Pump_UV,
+
+ Teleporter,
+ Cover_NeedsMaintainance,
+ Casing_Turbine,
+ Casing_Turbine1,
+ Casing_Turbine2,
+ Casing_Turbine3,
+ Casing_EngineIntake,
+ Casing_ExtremeEngineIntake,
+ Casing_TurbineGasAdvanced,
+
+ Casing_Coil_Cupronickel,
+ Casing_Coil_Kanthal,
+ Casing_Coil_Nichrome,
+ Casing_Coil_TungstenSteel,
+ Casing_Coil_HSSG,
+ Casing_Coil_HSSS,
+ Casing_Coil_Naquadah,
+ Casing_Coil_Trinium,
+ Casing_Coil_NaquadahAlloy,
+ Casing_Coil_ElectrumFlux,
+ Casing_Coil_AwakenedDraconium,
+ Casing_Coil_CosmicNeutronium,
+ Casing_Coil_Infinity,
+ Casing_Coil_Hypogen,
+ Casing_Coil_Eternal,
+
+ Casing_Tank_1,
+ Casing_Tank_2,
+ Casing_Tank_3,
+ Casing_Tank_4,
+ Casing_Tank_5,
+ Casing_Tank_6,
+ Casing_Tank_7,
+ Casing_Tank_8,
+ Casing_Tank_9,
+ Casing_Tank_10,
+ Casing_Tank_11,
+ Casing_Tank_12,
+ Casing_Tank_13,
+ Casing_Tank_14,
+ Casing_Tank_15,
+ Casing_Tank_0,
+
+ MobRep_LV,
+ MobRep_MV,
+ MobRep_HV,
+ MobRep_EV,
+ MobRep_IV,
+ MobRep_LuV,
+ MobRep_ZPM,
+ MobRep_UV,
+ Cover_PlayerDetector,
+ Machine_Multi_HeatExchanger,
+
+ Block_BronzePlate,
+ Block_SteelPlate,
+ Block_TitaniumPlate,
+ Block_IridiumTungstensteel,
+ Block_Plascrete,
+ Block_TungstenSteelReinforced,
+ Block_NaquadahPlate,
+ Block_NeutroniumPlate,
+ Block_BedrockiumCompressed,
+
+ Honeycomb,
+ Charcoal_Pile,
+ Block_BrittleCharcoal,
+ Seismic_Prospector_Adv_LV,
+ Seismic_Prospector_Adv_MV,
+ Seismic_Prospector_Adv_HV,
+ Seismic_Prospector_Adv_EV,
+ OilDrill1,
+ OilDrill2,
+ OilDrill3,
+
+ OilDrill4,
+ OilDrillInfinite,
+ ConcreteBackfiller1,
+ ConcreteBackfiller2,
+ OreDrill1,
+ OreDrill2,
+ OreDrill3,
+ OreDrill4,
+ PyrolyseOven,
+ OilCracker,
+ NanoForge,
+ Crop_Drop_UUMBerry,
+ Crop_Drop_UUABerry,
+ Empty_Board_Basic,
+ Empty_Board_Elite,
+
+ Battery_Charger_4by4_ULV,
+ Battery_Charger_4by4_LV,
+ Battery_Charger_4by4_MV,
+ Battery_Charger_4by4_HV,
+ Battery_Charger_4by4_EV,
+ Battery_Charger_4by4_IV,
+ Battery_Charger_4by4_LuV,
+ Battery_Charger_4by4_ZPM,
+ Battery_Charger_4by4_UV,
+ Battery_Charger_4by4_MAX,
+
+ MicroTransmitter_HV,
+ MicroTransmitter_EV,
+ MicroTransmitter_IV,
+ MicroTransmitter_LUV,
+ MicroTransmitter_ZPM,
+ MicroTransmitter_UV,
+
+ Crop_Drop_Bauxite,
+ Crop_Drop_Ilmenite,
+ Crop_Drop_Pitchblende,
+ Crop_Drop_Uraninite,
+ Crop_Drop_Thorium,
+ Crop_Drop_Nickel,
+ Crop_Drop_Zinc,
+ Crop_Drop_Manganese,
+ Crop_Drop_Scheelite,
+ Crop_Drop_Platinum,
+ Crop_Drop_Iridium,
+ Crop_Drop_Osmium,
+ Crop_Drop_Naquadah,
+ Crop_Drop_Mica,
+ Uraniumcell_1,
+ Uraniumcell_2,
+ Uraniumcell_4,
+ Moxcell_1,
+ Moxcell_2,
+ Moxcell_4,
+
+ Block_Powderbarrel,
+ GelledToluene,
+
+ FluidFilter,
+ ItemFilter_Export,
+ ItemFilter_Import,
+ CuringOven,
+ Machine_Multi_Assemblyline,
+ Machine_Multi_DieselEngine,
+ Machine_Multi_ExtremeDieselEngine,
+ QuantumEye,
+ QuantumStar,
+ Gravistar,
+ NuclearStar,
+ Block_SSFUEL,
+ Block_MSSFUEL,
+ SFMixture,
+ MSFMixture,
+
+ Depleted_Naquadah_1,
+ Depleted_Naquadah_2,
+ Depleted_Naquadah_4,
+ NaquadahCell_1,
+ NaquadahCell_2,
+ NaquadahCell_4,
+ Depleted_MNq_1,
+ Depleted_MNq_2,
+ Depleted_MNq_4,
+ MNqCell_1,
+ MNqCell_2,
+ MNqCell_4,
+
+ Hatch_AutoMaintenance,
+ Machine_Multi_Cleanroom,
+
+ Circuit_Board_Coated,
+ Circuit_Board_Coated_Basic,
+ Circuit_Board_Phenolic,
+ Circuit_Board_Phenolic_Good,
+ Circuit_Board_Epoxy,
+ Circuit_Board_Epoxy_Advanced,
+ Circuit_Board_Fiberglass,
+ Circuit_Board_Fiberglass_Advanced,
+ Circuit_Board_Multifiberglass_Elite,
+ Circuit_Board_Multifiberglass,
+ Circuit_Board_Wetware,
+ Circuit_Board_Wetware_Extreme,
+ Circuit_Board_Plastic,
+ Circuit_Board_Plastic_Advanced,
+ Circuit_Board_Bio,
+ Circuit_Board_Bio_Ultra,
+ Circuit_Board_Optical,
+
+ Circuit_Parts_Resistor,
+ Circuit_Parts_ResistorSMD,
+ Circuit_Parts_Glass_Tube,
+ Circuit_Parts_Reinforced_Glass_Tube,
+ Circuit_Parts_Vacuum_Tube,
+ NandChip,
+ Circuit_Parts_Coil,
+ Circuit_Parts_Diode,
+ Circuit_Parts_DiodeSMD,
+ Circuit_Parts_Transistor,
+ Circuit_Parts_TransistorSMD,
+ Circuit_Parts_Capacitor,
+ Circuit_Parts_CapacitorSMD,
+ Circuit_Parts_GlassFiber,
+ Circuit_Parts_PetriDish,
+
+ Circuit_Parts_ResistorASMD,
+ Circuit_Parts_DiodeASMD,
+ Circuit_Parts_TransistorASMD,
+ Circuit_Parts_CapacitorASMD,
+
+ Circuit_Silicon_Ingot,
+ Circuit_Silicon_Ingot2,
+ Circuit_Silicon_Ingot3,
+ Circuit_Silicon_Ingot4,
+ Circuit_Silicon_Ingot5,
+ Circuit_Silicon_Ingot6,
+ Circuit_Silicon_Wafer,
+ Circuit_Silicon_Wafer2,
+ Circuit_Silicon_Wafer3,
+ Circuit_Silicon_Wafer4,
+ Circuit_Silicon_Wafer5,
+ Circuit_Silicon_Wafer6,
+ Circuit_Silicon_Wafer7,
+ Circuit_Wafer_ILC,
+ Circuit_Chip_ILC,
+ Circuit_Wafer_Ram,
+ Circuit_Chip_Ram,
+
+ Circuit_Wafer_NAND,
+ Circuit_Chip_NAND,
+ Circuit_Wafer_NOR,
+ Circuit_Chip_NOR,
+ Circuit_Wafer_CPU,
+ Circuit_Chip_CPU,
+ Circuit_Wafer_SoC,
+ Circuit_Chip_SoC,
+ Circuit_Wafer_SoC2,
+ Circuit_Chip_SoC2,
+ Circuit_Wafer_PIC,
+ Circuit_Chip_PIC,
+ Circuit_Wafer_Simple_SoC,
+ Circuit_Chip_Simple_SoC,
+
+ Circuit_Wafer_HPIC,
+ Circuit_Wafer_UHPIC,
+ Circuit_Chip_HPIC,
+ Circuit_Chip_UHPIC,
+ Circuit_Chip_ULPIC,
+ Circuit_Chip_LPIC,
+ Circuit_Chip_NPIC,
+ Circuit_Chip_PPIC,
+ Circuit_Chip_QPIC,
+ Circuit_Wafer_ULPIC,
+ Circuit_Wafer_NPIC,
+ Circuit_Wafer_PPIC,
+ Circuit_Wafer_QPIC,
+ Circuit_Wafer_LPIC,
+ Circuit_Wafer_NanoCPU,
+ Circuit_Chip_NanoCPU,
+ Circuit_Wafer_QuantumCPU,
+ Circuit_Chip_QuantumCPU,
+ Circuit_Wafer_Bioware,
+
+ Circuit_Chip_CrystalCPU,
+ Circuit_Chip_CrystalSoC,
+ Circuit_Chip_CrystalSoC2,
+ Circuit_Chip_NeuroCPU,
+ Circuit_Chip_BioCPU,
+ Circuit_Chip_Stemcell,
+ Circuit_Parts_RawCrystalParts,
+ Circuit_Chip_Biocell,
+ Circuit_Chip_Optical,
+ Circuit_Parts_Chip_Bioware,
+
+ Tube_Wires,
+ KevlarFiber,
+ WovenKevlar,
+ Spinneret,
+ GalliumArsenideCrystal,
+ GalliumArsenideCrystalSmallPart,
+
+ Circuit_Microprocessor,
+ Circuit_Processor,
+ Circuit_Computer,
+ Circuit_Nanoprocessor,
+ Circuit_Nanocomputer,
+ Circuit_Elitenanocomputer,
+ Circuit_Quantumprocessor,
+ Circuit_Quantumcomputer,
+ Circuit_Masterquantumcomputer,
+
+ Circuit_Quantummainframe,
+ Circuit_Crystalprocessor,
+ Circuit_Crystalcomputer,
+ Circuit_Ultimatecrystalcomputer,
+ Circuit_Crystalmainframe,
+ Circuit_Neuroprocessor,
+ Circuit_Wetwarecomputer,
+ Circuit_Wetwaresupercomputer,
+ Circuit_Wetwaremainframe,
+ Circuit_Parts_RawCrystalChip,
+ Circuit_Bioprocessor,
+ Circuit_Biomainframe,
+
+ Circuit_OpticalProcessor,
+ Circuit_OpticalAssembly,
+ Circuit_OpticalComputer,
+ Circuit_OpticalMainframe,
+ Optical_Cpu_Containment_Housing,
+ Optically_Perfected_CPU,
+ Optically_Compatible_Memory,
+
+ Circuit_ExoticProcessor,
+ Circuit_ExoticAssembly,
+ Circuit_ExoticComputer,
+ Circuit_ExoticMainframe,
+
+ Circuit_CosmicProcessor,
+ Circuit_CosmicAssembly,
+ Circuit_CosmicComputer,
+ Circuit_CosmicMainframe,
+
+ Circuit_TranscendentProcessor,
+ Circuit_TranscendentAssembly,
+ Circuit_TranscendentComputer,
+ Circuit_TranscendentMainframe,
+
+ Machine_LV_CircuitAssembler,
+ Machine_MV_CircuitAssembler,
+ Machine_HV_CircuitAssembler,
+ Machine_EV_CircuitAssembler,
+ Machine_IV_CircuitAssembler,
+ Machine_LuV_CircuitAssembler,
+ Machine_ZPM_CircuitAssembler,
+ Machine_UV_CircuitAssembler,
+
+ Circuit_Integrated_Good,
+ Machine_IV_LightningRod,
+ Machine_HV_LightningRod,
+ Machine_EV_LightningRod,
+
+ ULV_Coil,
+ LV_Coil,
+ MV_Coil,
+ HV_Coil,
+ EV_Coil,
+ IV_Coil,
+ LuV_Coil,
+ ZPM_Coil,
+ UV_Coil,
+ UHV_Coil,
+
+ Circuit_Parts_ResistorXSMD,
+ Circuit_Parts_DiodeXSMD,
+ Circuit_Parts_TransistorXSMD,
+ Circuit_Parts_CapacitorXSMD,
+
+ Circuit_Parts_InductorSMD,
+ Circuit_Parts_InductorASMD,
+ Circuit_Parts_InductorXSMD,
+
+ VOLUMETRIC_FLASK,
+
+ Hatch_Input_Bus_ME,
+ Hatch_Input_Bus_ME_Advanced,
+ Hatch_Input_ME,
+ Hatch_Input_ME_Advanced,
+ Hatch_CraftingInput_Bus_ME,
+ Hatch_CraftingInput_Bus_ME_ItemOnly,
+ Hatch_CraftingInput_Bus_Slave,
+ AdvDebugStructureWriter,
+
+ Superconducting_Magnet_Solenoid_MV,
+ Superconducting_Magnet_Solenoid_HV,
+ Superconducting_Magnet_Solenoid_EV,
+ Superconducting_Magnet_Solenoid_IV,
+ Superconducting_Magnet_Solenoid_LuV,
+ Superconducting_Magnet_Solenoid_ZPM,
+ Superconducting_Magnet_Solenoid_UV,
+ Superconducting_Magnet_Solenoid_UHV,
+ Superconducting_Magnet_Solenoid_UEV,
+ Superconducting_Magnet_Solenoid_UIV,
+ Superconducting_Magnet_Solenoid_UMV,
+ RadiantNaquadahAlloyCasing,
+ PCBFactory,
+ BasicPhotolithographicFrameworkCasing,
+ ReinforcedPhotolithographicFrameworkCasing,
+ RadiationProofPhotolithographicFrameworkCasing,
+ InfinityCooledCasing,
+ Machine_Multi_TranscendentPlasmaMixer,
+ Cover_Metrics_Transmitter,
+ NC_AdvancedSensorCard,
+ Machine_Multi_DroneCentre,
+ TierdDrone0,
+ TierdDrone1,
+ TierdDrone2,
+ Hatch_DroneDownLink;
+
+ public static final ItemList[] DYE_ONLY_ITEMS = { Color_00, Color_01, Color_02, Color_03, Color_04, Color_05,
+ Color_06, Color_07, Color_08, Color_09, Color_10, Color_11, Color_12, Color_13, Color_14, Color_15 },
+ SPRAY_CAN_DYES = { Spray_Color_00, Spray_Color_01, Spray_Color_02, Spray_Color_03, Spray_Color_04,
+ Spray_Color_05, Spray_Color_06, Spray_Color_07, Spray_Color_08, Spray_Color_09, Spray_Color_10,
+ Spray_Color_11, Spray_Color_12, Spray_Color_13, Spray_Color_14, Spray_Color_15 },
+ SPRAY_CAN_DYES_USED = { Spray_Color_Used_00, Spray_Color_Used_01, Spray_Color_Used_02, Spray_Color_Used_03,
+ Spray_Color_Used_04, Spray_Color_Used_05, Spray_Color_Used_06, Spray_Color_Used_07, Spray_Color_Used_08,
+ Spray_Color_Used_09, Spray_Color_Used_10, Spray_Color_Used_11, Spray_Color_Used_12, Spray_Color_Used_13,
+ Spray_Color_Used_14, Spray_Color_Used_15 },
+ TRANSFORMERS = { Transformer_LV_ULV, Transformer_MV_LV, Transformer_HV_MV, Transformer_EV_HV, Transformer_IV_EV,
+ Transformer_LuV_IV, Transformer_ZPM_LuV, Transformer_UV_ZPM, Transformer_MAX_UV },
+ MACHINE_HULLS = { Hull_ULV, Hull_LV, Hull_MV, Hull_HV, Hull_EV, Hull_IV, Hull_LuV, Hull_ZPM, Hull_UV,
+ Hull_MAX },
+ HATCHES_DYNAMO = { Hatch_Dynamo_ULV, Hatch_Dynamo_LV, Hatch_Dynamo_MV, Hatch_Dynamo_HV, Hatch_Dynamo_EV,
+ Hatch_Dynamo_IV, Hatch_Dynamo_LuV, Hatch_Dynamo_ZPM, Hatch_Dynamo_UV, Hatch_Dynamo_MAX },
+ HATCHES_ENERGY = { Hatch_Energy_ULV, Hatch_Energy_LV, Hatch_Energy_MV, Hatch_Energy_HV, Hatch_Energy_EV,
+ Hatch_Energy_IV, Hatch_Energy_LuV, Hatch_Energy_ZPM, Hatch_Energy_UV, Hatch_Energy_MAX },
+ HATCHES_INPUT = { Hatch_Input_ULV, Hatch_Input_LV, Hatch_Input_MV, Hatch_Input_HV, Hatch_Input_EV,
+ Hatch_Input_IV, Hatch_Input_LuV, Hatch_Input_ZPM, Hatch_Input_UV, Hatch_Input_MAX },
+ HATCHES_INPUT_BUS = { Hatch_Input_Bus_ULV, Hatch_Input_Bus_LV, Hatch_Input_Bus_MV, Hatch_Input_Bus_HV,
+ Hatch_Input_Bus_EV, Hatch_Input_Bus_IV, Hatch_Input_Bus_LuV, Hatch_Input_Bus_ZPM, Hatch_Input_Bus_UV,
+ Hatch_Input_Bus_MAX },
+ HATCHES_OUTPUT = { Hatch_Output_ULV, Hatch_Output_LV, Hatch_Output_MV, Hatch_Output_HV, Hatch_Output_EV,
+ Hatch_Output_IV, Hatch_Output_LuV, Hatch_Output_ZPM, Hatch_Output_UV, Hatch_Output_MAX },
+ HATCHES_OUTPUT_BUS = { Hatch_Output_Bus_ULV, Hatch_Output_Bus_LV, Hatch_Output_Bus_MV, Hatch_Output_Bus_HV,
+ Hatch_Output_Bus_EV, Hatch_Output_Bus_IV, Hatch_Output_Bus_LuV, Hatch_Output_Bus_ZPM, Hatch_Output_Bus_UV,
+ Hatch_Output_Bus_MAX },
+ HATCHES_MUFFLER = { Hatch_Muffler_LV, Hatch_Muffler_LV, Hatch_Muffler_MV, Hatch_Muffler_HV, Hatch_Muffler_EV,
+ Hatch_Muffler_IV, Hatch_Muffler_LuV, Hatch_Muffler_ZPM, Hatch_Muffler_UV, Hatch_Muffler_MAX };
+ public static Fluid sOilExtraHeavy, sEpichlorhydrin, sDrillingFluid, sBlueVitriol, sNickelSulfate, sGreenVitriol,
+ sToluene, sNitrationMixture, sRocketFuel, sHydricSulfur, sIndiumConcentrate, sLeadZincSolution,
+ sHydrochloricAcid;
+ private ItemStack mStack;
+ private boolean mHasNotBeenSet;
+ private boolean mDeprecated;
+ private boolean mWarned;
+
+ ItemList() {
+ mHasNotBeenSet = true;
+ }
+
+ ItemList(boolean aDeprecated) {
+ if (aDeprecated) {
+ mDeprecated = true;
+ mHasNotBeenSet = true;
+ }
+ }
+
+ @Override
+ public IItemContainer set(Item aItem) {
+ mHasNotBeenSet = false;
+ if (aItem == null) return this;
+ ItemStack aStack = new ItemStack(aItem, 1, 0);
+ mStack = GT_Utility.copyAmount(1, aStack);
+ return this;
+ }
+
+ @Override
+ public IItemContainer set(ItemStack aStack) {
+ mHasNotBeenSet = false;
+ mStack = GT_Utility.copyAmount(1, aStack);
+ return this;
+ }
+
+ @Override
+ public Item getItem() {
+ sanityCheck();
+ if (GT_Utility.isStackInvalid(mStack)) return null;
+ return mStack.getItem();
+ }
+
+ @Override
+ public Block getBlock() {
+ sanityCheck();
+ return GT_Utility.getBlockFromItem(getItem());
+ }
+
+ @Override
+ public final boolean hasBeenSet() {
+ return !mHasNotBeenSet;
+ }
+
+ @Override
+ public boolean isStackEqual(Object aStack) {
+ return isStackEqual(aStack, false, false);
+ }
+
+ @Override
+ public boolean isStackEqual(Object aStack, boolean aWildcard, boolean aIgnoreNBT) {
+ if (mDeprecated && !mWarned) {
+ new Exception(this + " is now deprecated").printStackTrace(GT_Log.err);
+ // warn only once
+ mWarned = true;
+ }
+ if (GT_Utility.isStackInvalid(aStack)) return false;
+ return GT_Utility.areUnificationsEqual((ItemStack) aStack, aWildcard ? getWildcard(1) : get(1), aIgnoreNBT);
+ }
+
+ @Override
+ public ItemStack get(long aAmount, Object... aReplacements) {
+ sanityCheck();
+ if (GT_Utility.isStackInvalid(mStack)) {
+ GT_Log.out.println("Object in the ItemList is null at:");
+ new NullPointerException().printStackTrace(GT_Log.out);
+ return GT_Utility.copyAmount(aAmount, aReplacements);
+ }
+ return GT_Utility.copyAmount(aAmount, GT_OreDictUnificator.get(mStack));
+ }
+
+ @Override
+ public ItemStack getWildcard(long aAmount, Object... aReplacements) {
+ sanityCheck();
+ if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements);
+ return GT_Utility.copyAmountAndMetaData(aAmount, W, GT_OreDictUnificator.get(mStack));
+ }
+
+ @Override
+ public ItemStack getUndamaged(long aAmount, Object... aReplacements) {
+ sanityCheck();
+ if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements);
+ return GT_Utility.copyAmountAndMetaData(aAmount, 0, GT_OreDictUnificator.get(mStack));
+ }
+
+ @Override
+ public ItemStack getAlmostBroken(long aAmount, Object... aReplacements) {
+ sanityCheck();
+ if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements);
+ return GT_Utility.copyAmountAndMetaData(aAmount, mStack.getMaxDamage() - 1, GT_OreDictUnificator.get(mStack));
+ }
+
+ @Override
+ public ItemStack getWithName(long aAmount, String aDisplayName, Object... aReplacements) {
+ ItemStack rStack = get(1, aReplacements);
+ if (GT_Utility.isStackInvalid(rStack)) return NI;
+
+ // CamelCase alphanumeric words from aDisplayName
+ StringBuilder tCamelCasedDisplayNameBuilder = new StringBuilder();
+ final String[] tDisplayNameWords = aDisplayName.split("\\W");
+ for (String tWord : tDisplayNameWords) {
+ if (tWord.length() > 0) tCamelCasedDisplayNameBuilder.append(
+ tWord.substring(0, 1)
+ .toUpperCase(Locale.US));
+ if (tWord.length() > 1) tCamelCasedDisplayNameBuilder.append(
+ tWord.substring(1)
+ .toLowerCase(Locale.US));
+ }
+ if (tCamelCasedDisplayNameBuilder.length() == 0) {
+ // CamelCased DisplayName is empty, so use hash of aDisplayName
+ tCamelCasedDisplayNameBuilder.append(((Long) (long) aDisplayName.hashCode()));
+ }
+
+ // Construct a translation key from UnlocalizedName and CamelCased DisplayName
+ final String tKey = rStack.getUnlocalizedName() + ".with." + tCamelCasedDisplayNameBuilder + ".name";
+
+ rStack.setStackDisplayName(GT_LanguageManager.addStringLocalization(tKey, aDisplayName));
+ return GT_Utility.copyAmount(aAmount, rStack);
+ }
+
+ @Override
+ public ItemStack getWithCharge(long aAmount, int aEnergy, Object... aReplacements) {
+ ItemStack rStack = get(1, aReplacements);
+ if (GT_Utility.isStackInvalid(rStack)) return null;
+ GT_ModHandler.chargeElectricItem(rStack, aEnergy, Integer.MAX_VALUE, true, false);
+ return GT_Utility.copyAmount(aAmount, rStack);
+ }
+
+ @Override
+ public ItemStack getWithDamage(long aAmount, long aMetaValue, Object... aReplacements) {
+ sanityCheck();
+ if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements);
+ return GT_Utility.copyAmountAndMetaData(aAmount, aMetaValue, GT_OreDictUnificator.get(mStack));
+ }
+
+ @Override
+ public IItemContainer registerOre(Object... aOreNames) {
+ sanityCheck();
+ for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, get(1));
+ return this;
+ }
+
+ @Override
+ public IItemContainer registerWildcardAsOre(Object... aOreNames) {
+ sanityCheck();
+ for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, getWildcard(1));
+ return this;
+ }
+
+ /**
+ * Returns the internal stack. This method is unsafe. It's here only for quick operations. DON'T CHANGE THE RETURNED
+ * VALUE!
+ */
+ public ItemStack getInternalStack_unsafe() {
+ return mStack;
+ }
+
+ private void sanityCheck() {
+ if (mHasNotBeenSet)
+ throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!");
+ if (mDeprecated && !mWarned) {
+ new Exception(this + " is now deprecated").printStackTrace(GT_Log.err);
+ // warn only once
+ mWarned = true;
+ }
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/MachineType.java b/src/main/java/gregtech/api/enums/MachineType.java
new file mode 100644
index 0000000000..14e1781350
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/MachineType.java
@@ -0,0 +1,136 @@
+package gregtech.api.enums;
+
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StatCollector;
+
+public enum MachineType {
+
+ ALLOY_SMELTER(FunnyTexts.ALLOY_SMELTER, "gt.recipe.alloysmelter"),
+ ARC_FURNACE(FunnyTexts.ARC_FURNACE, "gt.recipe.arcfurnace"),
+ ASSEMBLER(FunnyTexts.ASSEMBLER, "gt.recipe.assembler"),
+ AUTOCLAVE(FunnyTexts.AUTOCLAVE, "gt.recipe.autoclave"),
+ BENDING_MACHINE(FunnyTexts.BENDING_MACHINE, "gt.recipe.metalbender"),
+ BREWERY(FunnyTexts.BREWERY, "gt.recipe.brewer"),
+ CANNER(FunnyTexts.CANNER, "gt.recipe.canner"),
+ CENTRIFUGE(FunnyTexts.CENTRIFUGE, "gt.recipe.centrifuge"),
+ CHEMICAL_BATH(FunnyTexts.CHEMICAL_BATH, "gt.recipe.chemicalbath"),
+ CHEMICAL_REACTOR(FunnyTexts.CHEMICAL_REACTOR, "gt.recipe.chemicalreactor"),
+ CIRCUIT_ASSEMBLER(FunnyTexts.CIRCUIT_ASSEMBLER, "gt.recipe.circuitassembler"),
+ COMPRESSOR(FunnyTexts.COMPRESSOR, "gt.recipe.compressor"),
+ CUTTING_MACHINE(FunnyTexts.CUTTING_MACHINE, "gt.recipe.cuttingsaw"),
+ DISTILLERY(FunnyTexts.DISTILLERY, "gt.recipe.distillery"),
+ ELECTRIC_FURNACE(FunnyTexts.ELECTRIC_FURNACE, "gt.recipe.furnace"),
+ ELECTROLYZER(FunnyTexts.ELECTROLYZER, "gt.recipe.electrolyzer"),
+ ELECTROMAGNETIC_SEPARATOR(FunnyTexts.ELECTROMAGNETIC_SEPARATOR, "gt.recipe.electromagneticseparator"),
+ EXTRACTOR(FunnyTexts.EXTRACTOR, "gt.recipe.extractor"),
+ EXTRUDER(FunnyTexts.EXTRUDER, "gt.recipe.extruder"),
+ FERMENTER(FunnyTexts.FERMENTER, "gt.recipe.fermenter"),
+ FLUID_CANNER(FunnyTexts.FLUID_CANNER, "gt.recipe.fluidcanner"),
+ FLUID_EXTRACTOR(FunnyTexts.FLUID_EXTRACTOR, "gt.recipe.fluidextractor"),
+ FLUID_SOLIDIFIER(FunnyTexts.FLUID_SOLIDIFIER, "gt.recipe.fluidsolidifier"),
+ FORGE_HAMMER(FunnyTexts.FORGE_HAMMER, "gt.recipe.hammer"),
+ FORMING_PRESS(FunnyTexts.FORMING_PRESS, "gt.recipe.press"),
+ FLUID_HEATER(FunnyTexts.FLUID_HEATER, "gt.recipe.fluidheater"),
+ LASER_ENGRAVER(FunnyTexts.LASER_ENGRAVER, "gt.recipe.laserengraver"),
+ LATHE(FunnyTexts.LATHE, "gt.recipe.lathe"),
+ MACERATOR(FunnyTexts.MACERATOR, "gt.recipe.macerator"),
+ MACERATOR_PULVERIZER(FunnyTexts.MACERATOR_PULVERIZER, "gt.recipe.macerator_pulverizer"),
+ MATTER_AMPLIFIER(FunnyTexts.MATTER_AMPLIFIER, "gt.recipe.uuamplifier"),
+ MATTER_FABRICATOR(FunnyTexts.MATTER_FABRICATOR, "gt.recipe.massfab"),
+ MICROWAVE(FunnyTexts.MICROWAVE, "gt.recipe.microwave"),
+ MIXER(FunnyTexts.MIXER, "gt.recipe.mixer"),
+ ORE_WASHER(FunnyTexts.ORE_WASHER, "gt.recipe.orewasher"),
+ OVEN(FunnyTexts.OVEN, "gt.recipe.oven"),
+ PACKAGER(FunnyTexts.PACKAGER, "gt.recipe.packager"),
+ PLASMA_ARC_FURNACE(FunnyTexts.PLASMA_ARC_FURNACE, "gt.recipe.plasmaarcfurnace"),
+ POLARIZER(FunnyTexts.POLARIZER, "gt.recipe.polarizer"),
+ PRINTER(FunnyTexts.PRINTER, "gt.recipe.printer"),
+ RECYCLER(FunnyTexts.RECYCLER, "ic.recipe.recycler"),
+ REPLICATOR(FunnyTexts.REPLICATOR, "gt.recipe.replicator"),
+ SCANNER(FunnyTexts.SCANNER, "gt.recipe.scanner"),
+ ROCKBREAKER(FunnyTexts.ROCKBREAKER, "gt.recipe.rockbreaker"),
+ SIFTER(FunnyTexts.SIFTER, "gt.recipe.sifter"),
+ SLICER(FunnyTexts.SLICER, "gt.recipe.slicer"),
+ THERMAL_CENTRIFUGE(FunnyTexts.THERMAL_CENTRIFUGE, "gt.recipe.thermalcentrifuge"),
+ UNPACKAGER(FunnyTexts.UNPACKAGER, "gt.recipe.unpackager"),
+ WIREMILL(FunnyTexts.WIREMILL, "gt.recipe.wiremill");
+
+ private static class FunnyTexts {
+
+ static final String ALLOY_SMELTER = "gt.recipe.alloysmelter.description";
+ static final String ARC_FURNACE = "gt.recipe.arcfurnace.description";
+ static final String ASSEMBLER = "gt.recipe.assembler.description";
+ static final String AUTOCLAVE = "gt.recipe.autoclave.description";
+ static final String BENDING_MACHINE = "gt.recipe.metalbender.description";
+ static final String BREWERY = "gt.recipe.brewer.description";
+ static final String CANNER = "gt.recipe.canner.description";
+ static final String CENTRIFUGE = "gt.recipe.centrifuge.description";
+ static final String CHEMICAL_BATH = "gt.recipe.chemicalbath.description";
+ static final String CHEMICAL_REACTOR = "gt.recipe.chemicalreactor.description";
+ static final String CIRCUIT_ASSEMBLER = "gt.recipe.circuitassembler.description";
+ static final String COMPRESSOR = "gt.recipe.compressor.description";
+ static final String CUTTING_MACHINE = "gt.recipe.cuttingsaw.description";
+ static final String DISTILLERY = "gt.recipe.distillery.description";
+ static final String ELECTRIC_FURNACE = "gt.recipe.furnace.description";
+ static final String ELECTROLYZER = "gt.recipe.electrolyzer.description";
+ static final String ELECTROMAGNETIC_SEPARATOR = "gt.recipe.electromagneticseparator.description";
+ static final String EXTRACTOR = "gt.recipe.extractor.description";
+ static final String EXTRUDER = "gt.recipe.extruder.description";
+ static final String FERMENTER = "gt.recipe.fermenter.description";
+ static final String FLUID_CANNER = "gt.recipe.fluidcanner.description";
+ static final String FLUID_EXTRACTOR = "gt.recipe.fluidextractor.description";
+ static final String FLUID_HEATER = "gt.recipe.fluidheater.description";
+ static final String FLUID_SOLIDIFIER = "gt.recipe.fluidsolidifier.description";
+ static final String FORGE_HAMMER = "gt.recipe.hammer.description";
+ static final String FORMING_PRESS = "gt.recipe.press.description";
+ static final String LASER_ENGRAVER = "gt.recipe.laserengraver.description";
+ static final String LATHE = "gt.recipe.lathe.description";
+ static final String MACERATOR = "gt.recipe.macerator.description";
+ static final String MACERATOR_PULVERIZER = "gt.recipe.macerator_pulverizer.description";
+ static final String MATTER_AMPLIFIER = "gt.recipe.uuamplifier.description";
+ static final String MATTER_FABRICATOR = "gt.recipe.massfab.description";
+ static final String MICROWAVE = "gt.recipe.microwave.description";
+ static final String MIXER = "gt.recipe.mixer.description";
+ static final String ORE_WASHER = "gt.recipe.orewasher.description";
+ static final String OVEN = "gt.recipe.oven.description";
+ static final String PACKAGER = "gt.recipe.packager.description";
+ static final String PLASMA_ARC_FURNACE = "gt.recipe.plasmaarcfurnace.description";
+ static final String POLARIZER = "gt.recipe.polarizer.description";
+ static final String PRINTER = "gt.recipe.printer.description";
+ static final String RECYCLER = "ic.recipe.recycler.description";
+ static final String REPLICATOR = "gt.recipe.replicator.description";
+ static final String ROCKBREAKER = "gt.recipe.rockbreaker.description";
+ static final String SIFTER = "gt.recipe.sifter.description";
+ static final String SCANNER = "gt.recipe.scanner.description";
+ static final String SLICER = "gt.recipe.slicer.description";
+ static final String THERMAL_CENTRIFUGE = "gt.recipe.thermalcentrifuge.description";
+ static final String UNPACKAGER = "gt.recipe.unpackager.description";
+ static final String WIREMILL = "gt.recipe.wiremill.description";
+ }
+
+ private static final String TT_machineType = "GT5U.MBTT.MachineType";
+
+ private final String name;
+ private final String description;
+
+ MachineType(String machineDescription, String machineType) {
+ this.description = machineDescription;
+ this.name = machineType;
+ }
+
+ public String type() {
+ return StatCollector.translateToLocal(this.name);
+ }
+
+ public String description() {
+ return StatCollector.translateToLocal(this.description);
+ }
+
+ public String[] tooltipDescription() {
+ return new String[] { description(),
+ StatCollector.translateToLocal(TT_machineType) + ": "
+ + EnumChatFormatting.YELLOW
+ + type()
+ + EnumChatFormatting.RESET };
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/MaterialBuilder.java b/src/main/java/gregtech/api/enums/MaterialBuilder.java
new file mode 100644
index 0000000000..98ed5fa3f7
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/MaterialBuilder.java
@@ -0,0 +1,276 @@
+package gregtech.api.enums;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import gregtech.api.objects.MaterialStack;
+
+public class MaterialBuilder {
+
+ public static final int DIESEL = 0, GAS = 1, THERMAL = 2, SEMIFLUID = 3, PLASMA = 4, MAGIC = 5;
+
+ private final int metaItemSubID;
+ private final TextureSet iconSet;
+ private float toolSpeed = 1.0f;
+ private int durability = 0;
+ private int toolQuality = 0;
+ private int types = 0;
+ private int r = 255, g = 255, b = 255, a = 0;
+ private String name;
+ private final String defaultLocalName;
+ private int fuelType = 0;
+ private int fuelPower = 0;
+ private int meltingPoint = 0;
+ private int blastFurnaceTemp = 0;
+ private boolean blastFurnaceRequired = false;
+ private boolean transparent = false;
+ private int oreValue = 1;
+ private int densityMultiplier = 1;
+ private int densityDivider = 1;
+ private Dyes color = Dyes._NULL;
+ private int extraData = 0;
+ private List<MaterialStack> materialList = new ArrayList<>();
+ private List<TC_Aspects.TC_AspectStack> aspects = new ArrayList<>();
+ private boolean hasCorrespondingFluid = false;
+ private boolean hasCorrespondingGas = false;
+ private boolean canBeCracked = false;
+ private int liquidTemperature = 300;
+ private int gasTemperature = 300;
+
+ public MaterialBuilder(int metaItemSubID, TextureSet iconSet, String defaultLocalName) {
+ this.metaItemSubID = metaItemSubID;
+ this.iconSet = iconSet;
+ this.name = defaultLocalName.replace(" ", "")
+ .replace("-", "");
+ this.defaultLocalName = defaultLocalName;
+ }
+
+ public Materials constructMaterial() {
+ return new Materials(
+ metaItemSubID,
+ iconSet,
+ toolSpeed,
+ durability,
+ toolQuality,
+ types,
+ r,
+ g,
+ b,
+ a,
+ name,
+ defaultLocalName,
+ fuelType,
+ fuelPower,
+ meltingPoint,
+ blastFurnaceTemp,
+ blastFurnaceRequired,
+ transparent,
+ oreValue,
+ densityMultiplier,
+ densityDivider,
+ color,
+ extraData,
+ materialList,
+ aspects).setHasCorrespondingFluid(hasCorrespondingFluid)
+ .setHasCorrespondingGas(hasCorrespondingGas)
+ .setCanBeCracked(canBeCracked);
+ }
+
+ public MaterialBuilder setName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public MaterialBuilder setTypes(int types) {
+ this.types = types;
+ return this;
+ }
+
+ public MaterialBuilder addDustItems() {
+ types = types | 1;
+ return this;
+ }
+
+ public MaterialBuilder addMetalItems() {
+ types = types | 2;
+ return this;
+ }
+
+ public MaterialBuilder addGemItems() {
+ types = types | 4;
+ return this;
+ }
+
+ public MaterialBuilder addOreItems() {
+ types = types | 8;
+ return this;
+ }
+
+ public MaterialBuilder addCell() {
+ types = types | 16;
+ return this;
+ }
+
+ public MaterialBuilder addPlasma() {
+ types = types | 32;
+ return this;
+ }
+
+ public MaterialBuilder addToolHeadItems() {
+ types = types | 64;
+ return this;
+ }
+
+ public MaterialBuilder addGearItems() {
+ types = types | 128;
+ return this;
+ }
+
+ public MaterialBuilder addFluid() {
+ this.hasCorrespondingFluid = true;
+ return this;
+ }
+
+ public MaterialBuilder addGas() {
+ this.hasCorrespondingGas = true;
+ return this;
+ }
+
+ public MaterialBuilder setRGBA(int r, int g, int b, int a) {
+ this.r = r;
+ this.g = g;
+ this.b = b;
+ this.a = a;
+ return this;
+ }
+
+ public MaterialBuilder setRGB(int r, int g, int b) {
+ this.r = r;
+ this.g = g;
+ this.b = b;
+ return this;
+ }
+
+ public MaterialBuilder setTransparent(boolean transparent) {
+ this.transparent = transparent;
+ return this;
+ }
+
+ public MaterialBuilder setColor(Dyes color) {
+ this.color = color;
+ return this;
+ }
+
+ public MaterialBuilder setToolSpeed(float toolSpeed) {
+ this.toolSpeed = toolSpeed;
+ return this;
+ }
+
+ public MaterialBuilder setDurability(int durability) {
+ this.durability = durability;
+ return this;
+ }
+
+ public MaterialBuilder setToolQuality(int toolQuality) {
+ this.toolQuality = toolQuality;
+ return this;
+ }
+
+ public MaterialBuilder setFuelType(int fuelType) {
+ this.fuelType = fuelType;
+ return this;
+ }
+
+ public MaterialBuilder setFuelPower(int fuelPower) {
+ this.fuelPower = fuelPower;
+ return this;
+ }
+
+ public MaterialBuilder setMeltingPoint(int meltingPoint) {
+ this.meltingPoint = meltingPoint;
+ return this;
+ }
+
+ public MaterialBuilder setBlastFurnaceTemp(int blastFurnaceTemp) {
+ this.blastFurnaceTemp = blastFurnaceTemp;
+ return this;
+ }
+
+ public MaterialBuilder setBlastFurnaceRequired(boolean blastFurnaceRequired) {
+ this.blastFurnaceRequired = blastFurnaceRequired;
+ return this;
+ }
+
+ public MaterialBuilder setOreValue(int oreValue) {
+ this.oreValue = oreValue;
+ return this;
+ }
+
+ public MaterialBuilder setDensityMultiplier(int densityMultiplier) {
+ this.densityMultiplier = densityMultiplier;
+ return this;
+ }
+
+ public MaterialBuilder setDensityDivider(int densityDivider) {
+ this.densityDivider = densityDivider;
+ return this;
+ }
+
+ public MaterialBuilder setExtraData(int extraData) {
+ this.extraData = extraData;
+ return this;
+ }
+
+ public MaterialBuilder addElectrolyzerRecipe() {
+ extraData = extraData | 1;
+ return this;
+ }
+
+ public MaterialBuilder addCentrifugeRecipe() {
+ extraData = extraData | 2;
+ return this;
+ }
+
+ public MaterialBuilder setMaterialList(List<MaterialStack> materialList) {
+ this.materialList = materialList;
+ return this;
+ }
+
+ public MaterialBuilder setMaterialList(MaterialStack... materials) {
+ this.materialList = Arrays.asList(materials);
+ return this;
+ }
+
+ public MaterialBuilder setAspects(List<TC_Aspects.TC_AspectStack> aspects) {
+ this.aspects = aspects;
+ return this;
+ }
+
+ public int getLiquidTemperature() {
+ return liquidTemperature;
+ }
+
+ public MaterialBuilder setLiquidTemperature(int liquidTemperature) {
+ this.liquidTemperature = liquidTemperature;
+ return this;
+ }
+
+ public int getGasTemperature() {
+ return gasTemperature;
+ }
+
+ public MaterialBuilder setGasTemperature(int gasTemperature) {
+ this.gasTemperature = gasTemperature;
+ return this;
+ }
+
+ public boolean canBeCracked() {
+ return canBeCracked;
+ }
+
+ public MaterialBuilder setCanBeCracked(boolean canBeCracked) {
+ this.canBeCracked = canBeCracked;
+ return this;
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java
new file mode 100644
index 0000000000..0bede04846
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/Materials.java
@@ -0,0 +1,3307 @@
+package gregtech.api.enums;
+
+import static gregtech.api.enums.FluidState.GAS;
+import static gregtech.api.enums.GT_Values.M;
+import static gregtech.api.enums.Mods.Thaumcraft;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+
+import javax.annotation.Nonnull;
+
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+
+import gregtech.GT_Mod;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.TC_Aspects.TC_AspectStack;
+import gregtech.api.fluid.GT_FluidFactory;
+import gregtech.api.interfaces.IColorModulationContainer;
+import gregtech.api.interfaces.IMaterialHandler;
+import gregtech.api.interfaces.ISubTagContainer;
+import gregtech.api.objects.MaterialStack;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.render.items.CosmicNeutroniumRenderer;
+import gregtech.common.render.items.GT_GeneratedMaterial_Renderer;
+import gregtech.common.render.items.GaiaSpiritRenderer;
+import gregtech.common.render.items.InfinityRenderer;
+import gregtech.common.render.items.TranscendentMetalRenderer;
+import gregtech.common.render.items.UniversiumRenderer;
+import gregtech.loaders.materialprocessing.ProcessingConfig;
+import gregtech.loaders.materialprocessing.ProcessingModSupport;
+
+@SuppressWarnings("unused") // API Legitimately has unused Members and Methods
+public class Materials implements IColorModulationContainer, ISubTagContainer {
+
+ public static final List<IMaterialHandler> mMaterialHandlers = new ArrayList<>();
+ private static final Map<String, Materials> MATERIALS_MAP = new LinkedHashMap<>();
+
+ public static final Map<Fluid, Materials> FLUID_MAP = new LinkedHashMap<>();
+
+ /**
+ * This is for keeping compatibility with addons mods (Such as TinkersGregworks etc.) that looped over the old
+ * materials enum
+ */
+ @Deprecated
+ public static Collection<Materials> VALUES = new LinkedHashSet<>();
+ /**
+ * This is the Default Material returned in case no Material has been found or a NullPointer has been inserted at a
+ * location where it shouldn't happen.
+ */
+
+ // Spotless breaks the table below into many, many lines
+ // spotless:off
+ public static Materials _NULL = new Materials(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "NULL", "NULL", 0, 0, 0, 0, false, false, 1, 1, 1, Dyes._NULL, Element._NULL, Collections.singletonList(new TC_AspectStack(TC_Aspects.VACUOS, 1)));
+ /**
+ * Direct Elements
+ */
+ public static Materials Aluminium = new Materials( 19, TextureSet.SET_DULL , 10.0F, 128, 2, 1|2 |8 |32|64|128 , 128, 200, 240, 0, "Aluminium" , "Aluminium" , 0, 0, 933, 1700, true, false, 3, 1, 1, Dyes.dyeLightBlue , Element.Al , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VOLATUS, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Americium = new Materials( 103, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 |8 |32 , 200, 200, 200, 0, "Americium" , "Americium" , 0, 0, 1449, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Am , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Antimony = new Materials( 58, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 220, 220, 240, 0, "Antimony" , "Antimony" , 0, 0, 903, 0, false, false, 2, 1, 1, Dyes.dyeLightGray , Element.Sb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.AQUA, 1)));
+ public static Materials Argon = new Materials( 24, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 255, 0, 240, "Argon" , "Argon" , 0, 0, 83, 0, false, true, 5, 1, 1, Dyes.dyeGreen , Element.Ar , Collections.singletonList(new TC_AspectStack(TC_Aspects.AER, 2)));
+ public static Materials Arsenic = new Materials( 39, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8|16|32 , 255, 255, 255, 0, "Arsenic" , "Arsenic" , 0, 0, 1090, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.As , Collections.singletonList(new TC_AspectStack(TC_Aspects.VENENUM, 3)));
+ public static Materials Barium = new Materials( 63, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Barium" , "Barium" , 0, 0, 1000, 0, false, false, 1, 1, 1, Dyes._NULL , Element.Ba , Collections.singletonList(new TC_AspectStack(TC_Aspects.VINCULUM, 3)));
+ public static Materials Beryllium = new Materials( 8, TextureSet.SET_METALLIC , 14.0F, 64, 2, 1|2 |8 |32|64 , 100, 180, 100, 0, "Beryllium" , "Beryllium" , 0, 0, 1560, 0, false, false, 6, 1, 1, Dyes.dyeGreen , Element.Be , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1)));
+ public static Materials Bismuth = new Materials( 90, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |8 |32|64|128 , 100, 160, 160, 0, "Bismuth" , "Bismuth" , 0, 0, 544, 0, false, false, 2, 1, 1, Dyes.dyeCyan , Element.Bi , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1)));
+ public static Materials Boron = new Materials( 9, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |32 , 210, 250, 210, 0, "Boron" , "Boron" , 0, 0, 2349, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Element.B , Collections.singletonList(new TC_AspectStack(TC_Aspects.VITREUS, 3)));
+ public static Materials Caesium = new Materials( 62, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 176, 196, 222, 0, "Caesium" , "Caesium" , 0, 0, 301, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Cs , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Calcium = new Materials( 26, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 255, 245, 245, 0, "Calcium" , "Calcium" , 0, 0, 1115, 1115, true, false, 4, 1, 1, Dyes.dyePink , Element.Ca , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 1), new TC_AspectStack(TC_Aspects.TUTAMEN, 1)));
+ public static Materials Carbon = new Materials( 10, TextureSet.SET_DULL , 1.0F, 64, 2, 1|2 |16|32|64|128 , 20, 20, 20, 0, "Carbon" , "Carbon" , 0, 0, 3800, 0, false, false, 2, 1, 1, Dyes.dyeBlack , Element.C , Arrays.asList(new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1)));
+ public static Materials Cadmium = new Materials( 55, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 |32 , 50, 50, 60, 0, "Cadmium" , "Cadmium" , 0, 0, 594, 0, false, false, 3, 1, 1, Dyes.dyeGray , Element.Cd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1)));
+ public static Materials Cerium = new Materials( 65, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 123, 212, 144, 0, "Cerium" , "Cerium" , 0, 0, 1068, 1068, true, false, 4, 1, 1, Dyes._NULL , Element.Ce , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Chlorine = new Materials( 23, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 0, "Chlorine" , "Chlorine" , 0, 0, 171, 0, false, false, 2, 1, 1, Dyes.dyeCyan , Element.Cl , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.PANNUS, 1)));
+ public static Materials Chrome = new Materials( 30, TextureSet.SET_SHINY , 11.0F, 256, 3, 1|2 |8 |32|64|128 , 255, 230, 230, 0, "Chrome" , "Chrome" , 0, 0, 2180, 1700, true, false, 5, 1, 1, Dyes.dyePink , Element.Cr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1)));
+ public static Materials Cobalt = new Materials( 33, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |8 |32|64|128 , 80, 80, 250, 0, "Cobalt" , "Cobalt" , 0, 0, 1768, 1700, true, false, 3, 1, 1, Dyes.dyeBlue , Element.Co , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Copper = new Materials( 35, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 |8 |32 |128 , 255, 100, 0, 0, "Copper" , "Copper" , 0, 0, 1357, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.Cu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PERMUTATIO, 1)));
+ public static Materials Deuterium = new Materials( 2, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Deuterium" , "Deuterium" , 0, 0, 14, 0, false, true, 10, 1, 1, Dyes.dyeYellow , Element.D , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 3)));
+ public static Materials Dysprosium = new Materials( 73, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 105, 209, 80, 0, "Dysprosium" , "Dysprosium" , 0, 0, 1680, 1680, true, false, 4, 1, 1, Dyes._NULL , Element.Dy , Collections.singletonList(new TC_AspectStack(TC_Aspects.METALLUM, 3)));
+ public static Materials Empty = new Materials( 0, TextureSet.SET_NONE , 1.0F, 0, 2, 256/*Only when needed*/ , 255, 255, 255, 255, "Empty" , "Empty" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL , Element._NULL , Collections.singletonList(new TC_AspectStack(TC_Aspects.VACUOS, 2)));
+ public static Materials Erbium = new Materials( 75, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 176, 152, 81, 0, "Erbium" , "Erbium" , 0, 0, 1802, 1802, true, false, 4, 1, 1, Dyes._NULL , Element.Er , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Europium = new Materials( 70, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 246, 181, 255, 0, "Europium" , "Europium" , 0, 0, 1099, 1099, true, false, 4, 1, 1, Dyes._NULL , Element.Eu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Fluorine = new Materials( 14, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 127, "Fluorine" , "Fluorine" , 0, 0, 53, 0, false, true, 2, 1, 1, Dyes.dyeGreen , Element.F , Collections.singletonList(new TC_AspectStack(TC_Aspects.PERDITIO, 2)));
+ public static Materials Gadolinium = new Materials( 71, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 59, 186, 28, 0, "Gadolinium" , "Gadolinium" , 0, 0, 1585, 1585, true, false, 4, 1, 1, Dyes._NULL , Element.Gd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Gallium = new Materials( 37, TextureSet.SET_SHINY , 1.0F, 64, 2, 1|2 |8 |32 , 220, 220, 255, 0, "Gallium" , "Gallium" , 0, 0, 302, 0, false, false, 5, 1, 1, Dyes.dyeLightGray , Element.Ga , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1)));
+ public static Materials Gold = new Materials( 86, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 30, 0, "Gold" , "Gold" , 0, 0, 1337, 0, false, false, 4, 1, 1, Dyes.dyeYellow , Element.Au , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 2)));
+ public static Materials Holmium = new Materials( 74, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 22, 8, 166, 0, "Holmium" , "Holmium" , 0, 0, 1734, 1734, true, false, 4, 1, 1, Dyes._NULL , Element.Ho , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Hydrogen = new Materials( 1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 0, 255, 240, "Hydrogen" , "Hydrogen" , 1, 20, 14, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Element.H , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1)));
+ public static Materials Helium = new Materials( 4, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium" , "Helium" , 0, 0, 1, 0, false, true, 5, 1, 1, Dyes.dyeYellow , Element.He , Collections.singletonList(new TC_AspectStack(TC_Aspects.AER, 2)));
+ public static Materials Helium_3 = new Materials( 5, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium_3" , "Helium-3" , 0, 0, 1, 0, false, true, 10, 1, 1, Dyes.dyeYellow , Element.He_3 , Collections.singletonList(new TC_AspectStack(TC_Aspects.AER, 3)));
+ public static Materials Indium = new Materials( 56, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 64, 0, 128, 0, "Indium" , "Indium" , 0, 0, 429, 0, false, false, 4, 1, 1, Dyes.dyeGray , Element.In , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Iridium = new Materials( 84, TextureSet.SET_DULL , 6.0F, 2560, 3, 1|2 |8 |32|64|128 , 240, 240, 245, 0, "Iridium" , "Iridium" , 0, 0, 2719, 4500, true, false, 10, 1, 1, Dyes.dyeWhite , Element.Ir , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Iron = new Materials( 32, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |8 |32|64|128 , 200, 200, 200, 0, "Iron" , "Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Fe , Collections.singletonList(new TC_AspectStack(TC_Aspects.METALLUM, 3)));
+ public static Materials Lanthanum = new Materials( 64, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 138, 138, 138, 0, "Lanthanum" , "Lanthanum" , 0, 0, 1193, 1193, true, false, 4, 1, 1, Dyes._NULL , Element.La , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Lead = new Materials( 89, TextureSet.SET_DULL , 8.0F, 64, 1, 1|2 |8 |32|64|128 , 140, 100, 140, 0, "Lead" , "Lead" , 0, 0, 600, 0, false, false, 3, 1, 1, Dyes.dyePurple , Element.Pb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1)));
+ public static Materials Lithium = new Materials( 6, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |32 , 225, 220, 255, 0, "Lithium" , "Lithium" , 0, 0, 454, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , Element.Li , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2)));
+ public static Materials Lutetium = new Materials( 78, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 188, 62, 199, 0, "Lutetium" , "Lutetium" , 0, 0, 1925, 1925, true, false, 4, 1, 1, Dyes._NULL , Element.Lu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Magic = new Materials(-128, TextureSet.SET_SHINY , 8.0F, 5120, 5, 1|2|4|8|16|32|64|128 , 100, 0, 200, 0, "Magic" , "Magic" , 5, 32, 5000, 0, false, false, 7, 1, 1, Dyes.dyePurple , Element.Ma , Collections.singletonList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 4)));
+ public static Materials Magnesium = new Materials( 18, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 200, 200, 0, "Magnesium" , "Magnesium" , 0, 0, 923, 0, false, false, 3, 1, 1, Dyes.dyePink , Element.Mg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1)));
+ public static Materials Manganese = new Materials( 31, TextureSet.SET_DULL , 7.0F, 512, 2, 1|2 |8 |32|64 , 250, 250, 250, 0, "Manganese" , "Manganese" , 0, 0, 1519, 0, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Mn , Collections.singletonList(new TC_AspectStack(TC_Aspects.METALLUM, 3)));
+ public static Materials Mercury = new Materials( 87, TextureSet.SET_SHINY , 1.0F, 0, 0, 16|32 , 255, 220, 220, 0, "Mercury" , "Mercury" , 5, 32, 234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Hg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1)));
+ public static Materials Molybdenum = new Materials( 48, TextureSet.SET_SHINY , 7.0F, 512, 2, 1|2 |8 |32|64 , 180, 180, 220, 0, "Molybdenum" , "Molybdenum" , 0, 0, 2896, 0, false, false, 1, 1, 1, Dyes.dyeBlue , Element.Mo , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1)));
+ public static Materials Neodymium = new Materials( 67, TextureSet.SET_METALLIC , 7.0F, 512, 2, 1|2 |8 |32|64|128 , 100, 100, 100, 0, "Neodymium" , "Neodymium" , 0, 0, 1297, 1297, true, false, 4, 1, 1, Dyes._NULL , Element.Nd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 2)));
+ public static Materials Neutronium = new Materials( 129, TextureSet.SET_DULL , 24.0F, 655360, 6, 1|2 |8 |32|64|128 , 250, 250, 250, 0, "Neutronium" , "Neutronium" , 0, 0, 10000, 10000, true, false, 20, 1, 1, Dyes.dyeWhite , Element.Nt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.ALIENIS, 2))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe().setProcessingMaterialTierEU(TierEU.RECIPE_LuV);
+ public static Materials Nickel = new Materials( 34, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |32|64|128 , 200, 200, 250, 0, "Nickel" , "Nickel" , 0, 0, 1728, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , Element.Ni , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1)));
+ public static Materials Niobium = new Materials( 47, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 190, 180, 200, 0, "Niobium" , "Niobium" , 0, 0, 2750, 2750, true, false, 5, 1, 1, Dyes._NULL , Element.Nb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1)));
+ public static Materials Nitrogen = new Materials( 12, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 150, 200, 240, "Nitrogen" , "Nitrogen" , 0, 0, 63, 0, false, true, 2, 1, 1, Dyes.dyeCyan , Element.N , Collections.singletonList(new TC_AspectStack(TC_Aspects.AER, 2)));
+ public static Materials Osmium = new Materials( 83, TextureSet.SET_METALLIC , 16.0F, 1280, 4, 1|2 |8 |32|64|128 , 50, 50, 255, 0, "Osmium" , "Osmium" , 0, 0, 3306, 4500, true, false, 10, 1, 1, Dyes.dyeBlue , Element.Os , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Oxygen = new Materials( 13, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 100, 200, 240, "Oxygen" , "Oxygen" , 0, 0, 54, 0, false, true, 1, 1, 1, Dyes.dyeWhite , Element.O , Collections.singletonList(new TC_AspectStack(TC_Aspects.AER, 1)));
+ public static Materials Palladium = new Materials( 52, TextureSet.SET_SHINY , 8.0F, 512, 4, 1|2 |8 |32|64|128 , 128, 128, 128, 0, "Palladium" , "Palladium" , 0, 0, 1828, 1828, true, false, 4, 1, 1, Dyes.dyeGray , Element.Pd , Collections.singletonList(new TC_AspectStack(TC_Aspects.METALLUM, 3))).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Phosphorus = new Materials( 21, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |32 , 255, 255, 0, 0, "Phosphorus" , "Phosphorus" , 0, 0, 317, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.P , Arrays.asList(new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2), new TC_AspectStack(TC_Aspects.POTENTIA, 1)));
+ public static Materials Platinum = new Materials( 85, TextureSet.SET_SHINY , 12.0F, 64, 4, 1|2 |8 |32|64|128 , 255, 255, 200, 0, "Platinum" , "Platinum" , 0, 0, 2041, 0, false, false, 6, 1, 1, Dyes.dyeOrange , Element.Pt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 1)));
+ public static Materials Plutonium = new Materials( 100, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 240, 50, 50, 0, "Plutonium" , "Plutonium 239" , 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime , Element.Pu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2)));
+ public static Materials Plutonium241 = new Materials( 101, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 250, 70, 70, 0, "Plutonium241" , "Plutonium 241" , 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime , Element.Pu_241 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 3)));
+ public static Materials Potassium = new Materials( 25, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |32 , 154, 172, 223, 0, "Potassium" , "Potassium" , 0, 0, 336, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.K , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1)));
+ public static Materials Praseodymium = new Materials( 66, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |32 , 117, 214, 129, 0, "Praseodymium" , "Praseodymium" , 0, 0, 1208, 1208, true, false, 4, 1, 1, Dyes._NULL , Element.Pr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Promethium = new Materials( 68, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 36, 181, 53, 0, "Promethium" , "Promethium" , 0, 0, 1315, 1315, true, false, 4, 1, 1, Dyes._NULL , Element.Pm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Radon = new Materials( 93, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 0, 255, 240, "Radon" , "Radon" , 0, 0, 202, 0, false, true, 5, 1, 1, Dyes.dyePurple , Element.Rn , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Rubidium = new Materials( 43, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 240, 30, 30, 0, "Rubidium" , "Rubidium" , 0, 0, 312, 0, false, false, 4, 1, 1, Dyes.dyeRed , Element.Rb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1)));
+ public static Materials Samarium = new Materials( 69, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 204, 0, "Samarium" , "Samarium" , 0, 0, 1345, 1345, true, false, 4, 1, 1, Dyes.dyeWhite , Element.Sm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.MAGNETO,10)));
+ public static Materials Scandium = new Materials( 27, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 204, 204, 204, 0, "Scandium" , "Scandium" , 0, 0, 1814, 1814, true, false, 2, 1, 1, Dyes.dyeYellow , Element.Sc , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Silicon = new Materials( 20, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 60, 60, 80, 0, "Silicon" , "Raw Silicon" , 0, 0, 2273, 2273, true, false, 1, 1, 1, Dyes.dyeBlack , Element.Si , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TENEBRAE, 1)));
+ public static Materials Silver = new Materials( 54, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |32|64|128 , 220, 220, 255, 0, "Silver" , "Silver" , 0, 0, 1234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Ag , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1)));
+ public static Materials Sodium = new Materials( 17, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16|32 , 0, 0, 150, 0, "Sodium" , "Sodium" , 0, 0, 370, 0, false, false, 1, 1, 1, Dyes.dyeBlue , Element.Na , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.LUX, 1)));
+ public static Materials Strontium = new Materials( 44, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 200, 0, "Strontium" , "Strontium" , 0, 0, 1050, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Element.Sr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.STRONTIO, 1)));
+ public static Materials Sulfur = new Materials( 22, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 0, 0, "Sulfur" , "Sulfur" , 0, 0, 388, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.S , Collections.singletonList(new TC_AspectStack(TC_Aspects.IGNIS, 1)));
+ public static Materials Tantalum = new Materials( 80, TextureSet.SET_SHINY , 6.0F, 2560, 3, 1|2 |8 |32 , 105, 183, 255, 0, "Tantalum" , "Tantalum" , 0, 0, 3290, 3290, true, false, 4, 1, 1, Dyes._NULL , Element.Ta , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VINCULUM, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Tellurium = new Materials( 59, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |32 , 206, 277, 86, 0, "Tellurium" , "Tellurium" , 0, 0, 722, 0, false, false, 4, 1, 1, Dyes.dyeGray , Element.Te , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Terbium = new Materials( 72, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Terbium" , "Terbium" , 0, 0, 1629, 1629, true, false, 4, 1, 1, Dyes._NULL , Element.Tb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Thorium = new Materials( 96, TextureSet.SET_SHINY , 6.0F, 512, 2, 1|2 |8 |32|64 , 0, 30, 0, 0, "Thorium" , "Thorium" , 0, 0, 2115, 0, false, false, 4, 1, 1, Dyes.dyeBlack , Element.Th , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Thulium = new Materials( 76, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 89, 107, 194, 0, "Thulium" , "Thulium" , 0, 0, 1818, 1818, true, false, 4, 1, 1, Dyes._NULL , Element.Tm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Tin = new Materials( 57, TextureSet.SET_DULL , 1.0F, 0, 3, 1|2 |8 |32 |128 , 220, 220, 220, 0, "Tin" , "Tin" , 0, 0, 505, 505, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Sn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1)));
+ public static Materials Titanium = new Materials( 28, TextureSet.SET_METALLIC , 7.0F, 1600, 3, 1|2 |8 |32|64|128 , 220, 160, 240, 0, "Titanium" , "Titanium" , 0, 0, 1941, 1940, true, false, 5, 1, 1, Dyes.dyePurple , Element.Ti , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Tritanium = new Materials( 329, TextureSet.SET_METALLIC , 20.0F,1435392, 6, 1|2 |8 |32|64 , 96, 0, 0, 0, "Tritanium" , "Tritanium" , 0, 0, 9900, 9900, true, false, 1, 1, 1, Dyes.dyeWhite , Element.Tn ,Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 2))).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Tritium = new Materials( 3, TextureSet.SET_METALLIC , 1.0F, 0, 2, 16|32 , 255, 0, 0, 240, "Tritium" , "Tritium" , 0, 0, 14, 0, false, true, 10, 1, 1, Dyes.dyeRed , Element.T , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 4)));
+ public static Materials Tungsten = new Materials( 81, TextureSet.SET_METALLIC , 7.0F, 2560, 3, 1|2 |8 |32|64|128 , 50, 50, 50, 0, "Tungsten" , "Tungsten" , 0, 0, 3695, 3000, true, false, 4, 1, 1, Dyes.dyeBlack , Element.W , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Uranium = new Materials( 98, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 50, 240, 50, 0, "Uranium" , "Uranium 238" , 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen , Element.U , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Uranium235 = new Materials( 97, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 70, 250, 70, 0, "Uranium235" , "Uranium 235" , 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen , Element.U_235 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2)));
+ public static Materials Vanadium = new Materials( 29, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 50, 50, 50, 0, "Vanadium" , "Vanadium" , 0, 0, 2183, 2183, true, false, 2, 1, 1, Dyes.dyeBlack , Element.V , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Ytterbium = new Materials( 77, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 44, 199, 80, 0, "Ytterbium" , "Ytterbium" , 0, 0, 1097, 1097, true, false, 4, 1, 1, Dyes._NULL , Element.Yb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Yttrium = new Materials( 45, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 220, 250, 220, 0, "Yttrium" , "Yttrium" , 0, 0, 1799, 1799, true, false, 4, 1, 1, Dyes._NULL , Element.Y , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1)));
+ public static Materials Zinc = new Materials( 36, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |8 |32 , 250, 240, 240, 0, "Zinc" , "Zinc" , 0, 0, 692, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.Zn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1)));
+ public static Materials Grade1PurifiedWater = new Materials( 554, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 0, 0, 255, 0, "Grade1PurifiedWater" , "Grade 1 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true);
+ public static Materials Grade2PurifiedWater = new Materials( 555, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 0, 0, 250, 0, "Grade2PurifiedWater" , "Grade 2 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true);
+ public static Materials Grade3PurifiedWater = new Materials( 556, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 0, 0, 245, 0, "Grade3PurifiedWater" , "Grade 3 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true);
+ public static Materials Grade4PurifiedWater = new Materials( 557, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 0, 0, 240, 0, "Grade4PurifiedWater" , "Grade 4 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true);
+ public static Materials Grade5PurifiedWater = new Materials( 558, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 0, 0, 235, 0, "Grade5PurifiedWater" , "Grade 5 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true);
+ public static Materials Grade6PurifiedWater = new Materials( 559, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 0, 0, 230, 0, "Grade6PurifiedWater" , "Grade 6 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true);
+ public static Materials Grade7PurifiedWater = new Materials( 560, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 0, 0, 225, 0, "Grade7PurifiedWater" , "Grade 7 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true);
+ public static Materials Grade8PurifiedWater = new Materials( 561, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 0, 0, 220, 0, "Grade8PurifiedWater" , "Grade 8 Purified Water" , 0, 0, 273, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).setHasCorrespondingFluid(true);
+
+ //GT++ materials
+
+ public static Materials Flerovium = new Materials( 984, TextureSet.SET_SHINY , 1.0F, 0, 0, 1|2 |8 |32|64|128 , 255,255, 255, 0, "Flerovium_GT5U" , "Flerovium" , 0, 0, 0, 0, false, false, 1 , 1, 1, Dyes.dyeWhite , Element.Fl , Arrays.asList(new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 3))).disableAutoGeneratedBlastFurnaceRecipes();
+
+ /**
+ * The "Random Material" ones.
+ */
+ public static Materials Organic = new Materials( -1, TextureSet.SET_LEAF , 1.0F, 0, 1, false, "Organic" , "Organic" );
+ public static Materials AnyCopper = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false, "AnyCopper" , "AnyCopper" );
+ public static Materials AnyBronze = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false, "AnyBronze" , "AnyBronze" );
+ public static Materials AnyIron = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false, "AnyIron" , "AnyIron" );
+ public static Materials AnyRubber = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false, "AnyRubber" , "AnyRubber" );
+ public static Materials AnySyntheticRubber = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false, "AnySyntheticRubber" , "AnySyntheticRubber" );
+ public static Materials Crystal = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false, "Crystal" , "Crystal" );
+ public static Materials Quartz = new Materials( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 2, false, "Quartz" , "Quartz" );
+ public static Materials Metal = new Materials( -1, TextureSet.SET_METALLIC , 1.0F, 0, 2, false, "Metal" , "Metal" );
+ public static Materials Unknown = new Materials( -1, TextureSet.SET_DULL , 1.0F, 0, 2, false, "Unknown" , "Unknown" );
+ public static Materials Cobblestone = new Materials( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false, "Cobblestone" , "Cobblestone" );
+ public static Materials BrickNether = new Materials( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false, "BrickNether" , "BrickNether" );
+
+ /**
+ * The "I don't care" Section, everything I don't want to do anything with right now, is right here. Just to make the Material Finder shut up about them.
+ * But I do see potential uses in some of these Materials.
+ */
+ public static Materials Serpentine = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Serpentine" , "Serpentine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Flux = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Flux" , "Flux" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials OsmiumTetroxide = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "OsmiumTetroxide" , "Osmium Tetroxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials RubberTreeSap = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "RubberTreeSap" , "Rubber Tree Sap" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials PhasedIron = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "PhasedIron" , "Phased Iron" , 0, 0, 3300, 3300, true, false, 3, 1, 1, Dyes._NULL );
+ public static Materials PhasedGold = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "PhasedGold" , "Phased Gold" , 0, 0, -1, 1800, true, false, 3, 1, 1, Dyes._NULL );
+ public static Materials HeeEndium = new Materials( 770, TextureSet.SET_DULL , 16.0F, 1024, 4, 1|2 |8 |64|128 , 165, 220, 250, 0, "HeeEndium" , "Endium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightBlue );
+ public static Materials Teslatite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 60, 180, 200, 0, "Teslatite" , "Teslatite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Fluix = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Fluix" , "Fluix" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials DarkThaumium = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "DarkThaumium" , "Dark Thaumium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Alfium = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Alfium" , "Alfium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Mutation = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Mutation" , "Mutation" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Aquamarine = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Aquamarine" , "Aquamarine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Ender = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ender" , "Ender" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials SodiumPeroxide = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "SodiumPeroxide" , "Sodium Peroxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials IridiumSodiumOxide = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "IridiumSodiumOxide" , "Iridium Sodium Oxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials PlatinumGroupSludge = new Materials( 241, TextureSet.SET_POWDER , 1.0F, 0, 2, 1 , 0, 30, 0, 0, "PlatinumGroupSludge" , "Platinum Group Sludge" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Draconium = new Materials( 975, TextureSet.SET_SHINY , 20.0F, 32768, 7, 1|2| 8| 32|64|128 , 122, 68, 176, 0, "Draconium" , "Draconium" , 0, 0, 5000, 7200, true, false, 3, 1, 1, Dyes.dyePink ).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe().setHasCorrespondingPlasma(true);
+ public static Materials DraconiumAwakened = new Materials( 976, TextureSet.SET_SHINY , 40.0F, 65536, 9, 1|2| 8| 32|64|128 , 244, 78, 0, 0, "DraconiumAwakened" , "Awakened Draconium" , 0, 0, 9900, 9900, true, false, 3, 1, 1, Dyes.dyeOrange ).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe().setHasCorrespondingPlasma(true);
+ public static Materials PurpleAlloy = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "PurpleAlloy" , "Purple Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials InfusedTeslatite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "InfusedTeslatite" , "Infused Teslatite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+
+ /**
+ * Unknown Material Components. Dead End Section.
+ */
+ public static Materials Adamantium = new Materials( 319, TextureSet.SET_SHINY , 32.0F, 8192, 10, 1|2 |8 |64|128 , 255, 255, 255, 0, "Adamantium" , "Adamantium" , 0, 0, 7200, 7200, true, false, 1, 1, 1, Dyes.dyeLightGray ).setTurbineMultipliers(1, 5, 1).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Adamite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 3, 1 |8 , 255, 255, 255, 0, "Adamite" , "Adamite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray );
+ public static Materials Adluorite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 |64|128 , 255, 255, 255, 0, "Adluorite" , "Adluorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue );
+ public static Materials Agate = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Agate" , "Agate" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Alduorite = new Materials( 485, TextureSet.SET_SHINY , 32.0F, 8192, 1, 1|2 |8 |64|128 , 159, 180, 180, 0, "Alduorite" , "Alduorite" , 0, 0, 6600, 6600, true, false, 1, 1, 1, Dyes._NULL ).disableAutoGeneratedBlastFurnaceRecipes().setTurbineMultipliers(6, 1, 1);
+ public static Materials Amber = new Materials( 514, TextureSet.SET_RUBY , 4.0F, 128, 2, 1 |4|8 |64 , 255, 128, 0, 127, "Amber" , "Amber" , 5, 3, -1, 0, false, true, 1, 1, 1, Dyes.dyeOrange ,1, Arrays.asList(new MaterialStack(Carbon, 10), new MaterialStack(Hydrogen, 10), new MaterialStack(Oxygen, 16)), Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1)));
+ public static Materials Ammonium = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ammonium" , "Ammonium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Amordrine = new Materials( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Amordrine" , "Amordrine" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Andesite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Andesite" , "Andesite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Angmallen = new Materials( 958, TextureSet.SET_METALLIC , 10.0F, 128, 2, 1|2 |8 |64 , 215, 225, 138, 0, "Angmallen" , "Angmallen" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Ardite = new Materials( 382, TextureSet.SET_METALLIC , 18.0F, 1024, 4, 1|2 |8 |32|64|128 , 250, 129, 0, 0, "Ardite" , "Ardite" , 0, 0, 1600, 1600, true, false, 1, 1, 1, Dyes.dyeRed ).disableAutoGeneratedBlastFurnaceRecipes().setHasCorrespondingPlasma(true);
+ public static Materials Aredrite = new Materials( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Aredrite" , "Aredrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow );
+ public static Materials Atlarus = new Materials( 965, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Atlarus" , "Atlarus" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Bitumen = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Bitumen" , "Bitumen" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Black = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 0, 0, 0, 0, "Black" , "Black" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack );
+ public static Materials Blizz = new Materials( 851, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 , 220, 233, 255, 0, "Blizz" , "Blizz" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Blueschist = new Materials( 852, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Blueschist" , "Blueschist" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightBlue );
+ public static Materials Bluestone = new Materials( 813, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bluestone" , "Bluestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue );
+ public static Materials Bloodstone = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bloodstone" , "Bloodstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed );
+ public static Materials Blutonium = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 , 0, 0, 255, 0, "Blutonium" , "Blutonium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue );
+ public static Materials Carmot = new Materials( 962, TextureSet.SET_METALLIC , 16.0F, 128, 1, 1|2 |8 |64 , 217, 205, 140, 0, "Carmot" , "Carmot" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Celenegil = new Materials( 964, TextureSet.SET_METALLIC , 10.0F, 4096, 2, 1|2 |8 |64 , 148, 204, 72, 0, "Celenegil" , "Celenegil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials CertusQuartz = new Materials( 516, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "CertusQuartz" , "Certus Quartz" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1)));
+ public static Materials CertusQuartzCharged = new Materials( 517, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 8 , 221, 221, 236, 0, "ChargedCertusQuartz" , "Charged Certus Quartz" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ELECTRUM, 1)));
+ public static Materials Ceruclase = new Materials( 952, TextureSet.SET_METALLIC , 32.0F, 1280, 2, 1|2 |8 |64|128 , 140, 189, 208, 0, "Ceruclase" , "Ceruclase" , 0, 0, 6600, 6600, true, false, 1, 1, 1, Dyes.dyeBlue ).disableAutoGeneratedBlastFurnaceRecipes().setTurbineMultipliers(1, 22, 1);
+ public static Materials Citrine = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Citrine" , "Citrine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials CobaltHexahydrate = new Materials( 853, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 80, 80, 250, 0, "CobaltHexahydrate" , "Cobalt Hexahydrate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue );
+ public static Materials ConstructionFoam = new Materials( 854, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |16 |64|128 , 128, 128, 128, 0, "ConstructionFoam" , "Construction Foam" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray );
+ public static Materials Chert = new Materials( 857, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chert" , "Chert" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL );
+ public static Materials Chimerite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chimerite" , "Chimerite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Coral = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 128, 255, 0, "Coral" , "Coral" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials CrudeOil = new Materials( 858, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 10, 10, 10, 0, "CrudeOil" , "Crude Oil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack );
+ public static Materials Chrysocolla = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chrysocolla" , "Chrysocolla" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials CrystalFlux = new Materials( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 3, 1 |4 , 100, 50, 100, 0, "CrystalFlux" , "Flux Crystal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Cyanite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Cyanite" , "Cyanite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan );
+ public static Materials Dacite = new Materials( 859, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dacite" , "Dacite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightGray );
+ public static Materials DarkIron = new Materials( 342, TextureSet.SET_DULL , 7.0F, 384, 3, 1|2 |8 |64 , 55, 40, 60, 0, "DarkIron" , "Dark Iron" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyePurple );
+ public static Materials DarkStone = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "DarkStone" , "Dark Stone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack );
+ public static Materials Demonite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Demonite" , "Demonite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed );
+ public static Materials Desh = new Materials( 884, TextureSet.SET_DULL , 20.0F, 1280, 4, 1|2 |8 |32|64|128 , 40, 40, 40, 0, "Desh" , "Desh" , 0, 0, 2500, 2500, true, false, 1, 1, 1, Dyes.dyeBlack ,Element.De, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Desichalkos = new Materials( -1, TextureSet.SET_NONE , 6.0F, 1280, 3, 1|2 |8 |64 , 255, 255, 255, 0, "Desichalkos" , "Desichalkos" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Dilithium = new Materials( 515, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 255, 250, 250, 127, "Dilithium" , "Dilithium" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite );
+ public static Materials Draconic = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Draconic" , "Draconic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed );
+ public static Materials Drulloy = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|16 , 255, 255, 255, 0, "Drulloy" , "Drulloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed );
+ public static Materials Duranium = new Materials( 328, TextureSet.SET_METALLIC , 32.0F, 40960, 11, 1|2 |64 , 255, 255, 255, 0, "Duranium" , "Duranium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ).setTurbineMultipliers(16, 16, 1);
+ public static Materials Eclogite = new Materials( 860, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Eclogite" , "Eclogite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials ElectrumFlux = new Materials( 320, TextureSet.SET_SHINY , 16.0F, 512, 3, 1|2 |8 |64|128 , 255, 255, 120, 0, "ElectrumFlux" , "Fluxed Electrum" , 0, 0, 9000, 9000, true, false, 1, 1, 1, Dyes.dyeYellow ).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Emery = new Materials( 861, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Emery" , "Emery" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials EnderiumBase = new Materials( 380, TextureSet.SET_DULL , 16.0F, 768, 4, 1|2 |64|128 , 72, 119, 153, 0, "EnderiumBase" , "Enderium Base" , 0, 0, 3600, 3600, true, false, 1, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Tin, 2), new MaterialStack(Silver, 1), new MaterialStack(Platinum, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Energized = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Energized" , "Energized" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Epidote = new Materials( 862, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Epidote" , "Epidote" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL );
+ public static Materials Eximite = new Materials( 959, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |8 |64 , 124, 90, 150, 0, "Eximite" , "Eximite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials FierySteel = new Materials( 346, TextureSet.SET_FIERY , 8.0F, 256, 3, 1|2 |64|128 , 64, 0, 0, 0, "FierySteel" , "Fiery Steel" , 5, 2048, 1811, 1800, true, false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 3), new TC_AspectStack(TC_Aspects.CORPUS, 3))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Firestone = new Materials( 347, TextureSet.SET_QUARTZ , 6.0F, 1280, 3, 1 |4|8 |64 , 200, 20, 0, 0, "Firestone" , "Firestone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed );
+ public static Materials Fluorite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Fluorite" , "Fluorite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen );
+ public static Materials FoolsRuby = new Materials( 512, TextureSet.SET_RUBY , 1.0F, 0, 2, 1 |4|8 , 255, 100, 100, 127, "FoolsRuby" , "Spinel" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 2)));
+ public static Materials Force = new Materials( 521, TextureSet.SET_DIAMOND , 10.0F, 128, 3, 1|2|4|8 |64|128 , 255, 255, 0, 0, "Force" , "Force" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , Collections.singletonList(new TC_AspectStack(TC_Aspects.POTENTIA, 5)));
+ public static Materials Forcicium = new Materials( 518, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcicium" , "Forcicium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , Collections.singletonList(new TC_AspectStack(TC_Aspects.POTENTIA, 2)));
+ public static Materials Forcillium = new Materials( 519, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcillium" , "Forcillium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , Collections.singletonList(new TC_AspectStack(TC_Aspects.POTENTIA, 2)));
+ public static Materials Gabbro = new Materials( 863, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gabbro" , "Gabbro" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL );
+ public static Materials Glowstone = new Materials( 811, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |16 , 255, 255, 0, 0, "Glowstone" , "Glowstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.LUX, 2), new TC_AspectStack(TC_Aspects.SENSUS, 1)));
+ public static Materials Gneiss = new Materials( 864, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gneiss" , "Gneiss" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL );
+ public static Materials Graphite = new Materials( 865, TextureSet.SET_DULL , 5.0F, 32, 2, 1 |8|16 |64 , 128, 128, 128, 0, "Graphite" , "Graphite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray , 0, Collections.singletonList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1)));
+ public static Materials Graphene = new Materials( 819, TextureSet.SET_DULL , 6.0F, 32, 1, 1 |64 , 128, 128, 128, 0, "Graphene" , "Graphene" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray , 0, Collections.singletonList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1)));
+ public static Materials Greenschist = new Materials( 866, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greenschist" , "Green Schist" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen );
+ public static Materials Greenstone = new Materials( 867, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greenstone" , "Greenstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen );
+ public static Materials Greywacke = new Materials( 897, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greywacke" , "Greywacke" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray );
+ public static Materials Haderoth = new Materials( 963, TextureSet.SET_METALLIC , 10.0F, 3200, 3, 1|2 |8 |64 , 119, 52, 30, 0, "Haderoth" , "Haderoth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Hematite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Hematite" , "Hematite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Hepatizon = new Materials( 957, TextureSet.SET_METALLIC , 12.0F, 128, 2, 1|2 |8 |64 , 117, 94, 117, 0, "Hepatizon" , "Hepatizon" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials HSLA = new Materials( 322, TextureSet.SET_METALLIC , 6.0F, 500, 3, 1|2 |64|128 , 128, 128, 128, 0, "HSLA" , "HSLA Steel" , 0, 0, 1811, 1000, true, false, 3, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1)));
+ public static Materials Ignatius = new Materials( 950, TextureSet.SET_METALLIC , 12.0F, 512, 2, 1|2 , 255, 169, 83, 0, "Ignatius" , "Ignatius" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Infernal = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Infernal" , "Infernal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Infuscolium = new Materials( 490, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |64 , 146, 33, 86, 0, "Infuscolium" , "Infuscolium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials InfusedGold = new Materials( 323, TextureSet.SET_SHINY , 12.0F, 64, 3, 1|2 |8 |64|128 , 255, 200, 60, 0, "InfusedGold" , "Infused Gold" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow );
+ public static Materials InfusedAir = new Materials( 540, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 255, 0, 0, "InfusedAir" , "Aer" , 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.AER, 2)));
+ public static Materials InfusedFire = new Materials( 541, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 0, 0, "InfusedFire" , "Ignis" , 5, 320, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.IGNIS, 2)));
+ public static Materials InfusedEarth = new Materials( 542, TextureSet.SET_SHARDS , 8.0F, 256, 3, 1 |4|8 |64|128 , 0, 255, 0, 0, "InfusedEarth" , "Terra" , 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.TERRA, 2)));
+ public static Materials InfusedWater = new Materials( 543, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 0, 0, 255, 0, "InfusedWater" , "Aqua" , 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.AQUA, 2)));
+ public static Materials InfusedEntropy = new Materials( 544, TextureSet.SET_SHARDS , 32.0F, 64, 4, 1 |4|8 |64|128 , 62, 62, 62, 0, "InfusedEntropy" , "Perditio" , 5, 320, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 2)));
+ public static Materials InfusedOrder = new Materials( 545, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 252, 252, 252, 0, "InfusedOrder" , "Ordo" , 5, 240, -1, 0, false, true, 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.ORDO, 2)));
+ public static Materials InfusedVis = new Materials( -1, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 255, 0, "InfusedVis" , "Auram" , 5, 240, -1, 0, false, true, 3, 1, 1, Dyes.dyePurple , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.AURAM, 2)));
+ public static Materials InfusedDull = new Materials( -1, TextureSet.SET_SHARDS , 32.0F, 64, 3, 1 |4|8 |64|128 , 100, 100, 100, 0, "InfusedDull" , "Vacuus" , 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.VACUOS, 2)));
+ public static Materials Inolashite = new Materials( 954, TextureSet.SET_NONE , 8.0F, 2304, 3, 1|2 |8 |64 , 148, 216, 187, 0, "Inolashite" , "Inolashite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen );
+ public static Materials Invisium = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Invisium" , "Invisium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Jade = new Materials( 537, TextureSet.SET_SHINY , 1.0F, 16, 2, 1 |4|8 |64 , 0, 100, 0, 0, "Jade" , "Jade" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeGreen ,0, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 3)));
+ public static Materials Kalendrite = new Materials( 953, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 , 170, 91, 189, 0, "Kalendrite" , "Kalendrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Komatiite = new Materials( 869, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Komatiite" , "Komatiite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow );
+ public static Materials Lava = new Materials( 700, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 64, 0, 0, "Lava" , "Lava" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange );
+ public static Materials Lemurite = new Materials( 486, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 , 219, 219, 219, 0, "Lemurite" , "Lemurite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Limestone = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Limestone" , "Limestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Magma = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 64, 0, 0, "Magma" , "Magma" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange );
+ public static Materials Mawsitsit = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Mawsitsit" , "Mawsitsit" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Mercassium = new Materials( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Mercassium" , "Mercassium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials MeteoricIron = new Materials( 340, TextureSet.SET_METALLIC , 6.0F, 384, 3, 1|2 |8 |32|64 , 100, 50, 80, 0, "MeteoricIron" , "Meteoric Iron" , 0, 0, 1811, 1000, true, false, 1, 1, 1, Dyes.dyeGray ,Element.SpFe, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1)));
+ public static Materials MeteoricSteel = new Materials( 341, TextureSet.SET_METALLIC , 6.0F, 768, 4, 1|2 |64 , 50, 25, 40, 0, "MeteoricSteel" , "Meteoric Steel" , 0, 0, 1811, 1000, true, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(MeteoricIron, 50), new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ORDO, 1)));
+ public static Materials Meteorite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 80, 35, 60, 0, "Meteorite" , "Meteorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple );
+ public static Materials Meutoite = new Materials( 487, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 95, 82, 105, 0, "Meutoite" , "Meutoite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Migmatite = new Materials( 872, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Migmatite" , "Migmatite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Mimichite = new Materials( -1, TextureSet.SET_GEM_VERTICAL , 1.0F, 0, 1, 1 |4|8 , 255, 255, 255, 0, "Mimichite" , "Mimichite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Moonstone = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Moonstone" , "Moonstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1)));
+ public static Materials Naquadah = new Materials( 324, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8 |32|64|128 , 50, 50, 50, 0, "Naquadah" , "Naquadah" , 0, 0, 5400, 5400, true, false, 10, 1, 1, Dyes.dyeBlack , Element.Nq, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials NaquadahAlloy = new Materials( 325, TextureSet.SET_METALLIC , 8.0F, 5120, 5, 1|2 |64|128 , 40, 40, 40, 0, "NaquadahAlloy" , "Naquadah Alloy" , 0, 0, 7200, 7200, true, false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials NaquadahEnriched = new Materials( 326, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8 |64 , 50, 50, 50, 0, "NaquadahEnriched" , "Enriched Naquadah" , 0, 0, 4500, 4500, true, false, 15, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 2))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Naquadria = new Materials( 327, TextureSet.SET_SHINY , 1.0F, 512, 4, 1|2 |8 |64 , 30, 30, 30, 0, "Naquadria" , "Naquadria" , 0, 0, 9000, 9000, true, false, 20, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.RADIO, 3), new TC_AspectStack(TC_Aspects.NEBRISUM, 3))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Nether = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Nether" , "Nether" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials NetherBrick = new Materials( 814, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 100, 0, 0, 0, "NetherBrick" , "Nether Brick" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , Collections.singletonList(new TC_AspectStack(TC_Aspects.IGNIS, 1)));
+ public static Materials NetherQuartz = new Materials( 522, TextureSet.SET_QUARTZ , 1.0F, 32, 1, 1 |4|8 |64 , 230, 210, 210, 0, "NetherQuartz" , "Nether Quartz" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1)));
+ public static Materials NetherStar = new Materials( 506, TextureSet.SET_NETHERSTAR , 6.0F, 5120, 4, 1| 4|8 |64 , 255, 255, 255, 0, "NetherStar" , "Nether Star" , 5, 50000, -1, 0, false, false, 15, 1, 1, Dyes.dyeWhite );
+ public static Materials ObsidianFlux = new Materials( -1, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "ObsidianFlux" , "Fluxed Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple );
+ public static Materials Oilsands = new Materials( 878, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 10, 10, 10, 0, "Oilsands" , "Oilsands" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Onyx = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Onyx" , "Onyx" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Orichalcum = new Materials( 966, TextureSet.SET_METALLIC , 32.0F, 20480, 1, 1|2 |8 |64|128 , 84, 122, 56, 0, "Orichalcum" , "Orichalcum" , 0, 0, 6000, 6000, true, false, 1, 1, 1, Dyes._NULL ).disableAutoGeneratedBlastFurnaceRecipes().setTurbineMultipliers(1, 6, 1);
+ public static Materials Osmonium = new Materials( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Osmonium" , "Osmonium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue );
+ public static Materials Oureclase = new Materials( 961, TextureSet.SET_METALLIC , 6.0F, 1920, 3, 1|2 |8 |64 , 183, 98, 21, 0, "Oureclase" , "Oureclase" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Painite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Painite" , "Painite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Peanutwood = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Peanutwood" , "Peanut Wood" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Petroleum = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Petroleum" , "Petroleum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Pewter = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Pewter" , "Pewter" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Phoenixite = new Materials( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Phoenixite" , "Phoenixite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL );
+ public static Materials Prometheum = new Materials( 960, TextureSet.SET_METALLIC , 8.0F, 512, 1, 1|2 |8 |64 , 90, 129, 86, 0, "Prometheum" , "Prometheum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Quartzite = new Materials( 523, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |4|8 , 210, 230, 210, 0, "Quartzite" , "Quartzite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite );
+ public static Materials Randomite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Randomite" , "Randomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Rhyolite = new Materials( 875, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Rhyolite" , "Rhyolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Rubracium = new Materials( 488, TextureSet.SET_METALLIC , 1.0F, 128, 1, 1|2 |8 |64|128 , 151, 45, 45, 0, "Rubracium" , "Rubracium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed );
+ public static Materials Sand = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Sand" , "Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow );
+ public static Materials Sanguinite = new Materials( 955, TextureSet.SET_METALLIC , 3.0F, 4480, 4, 1|2 |8 , 185, 0, 0, 0, "Sanguinite" , "Sanguinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Siltstone = new Materials( 876, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Siltstone" , "Siltstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL );
+ public static Materials Sunstone = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sunstone" , "Sunstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1)));
+ public static Materials Tar = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 10, 10, 10, 0, "Tar" , "Tar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack );
+ public static Materials Tartarite = new Materials( 956, TextureSet.SET_METALLIC , 32.0F, 20480, 3, 1|2 |8 , 255, 118, 60, 0, "Tartarite" , "Tartarite" , 0, 0, 10400, 10400, true, false, 1, 1, 1, Dyes._NULL ).disableAutoGeneratedBlastFurnaceRecipes().setTurbineMultipliers(1120, 1120, 1);
+ public static Materials UUAmplifier = new Materials( 721, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 96, 0, 128, 0, "UUAmplifier" , "UU-Amplifier" , 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink );
+ public static Materials UUMatter = new Materials( 703, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 128, 0, 196, 0, "UUMatter" , "UU-Matter" , 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink );
+ public static Materials Void = new Materials( 970, TextureSet.SET_METALLIC , 32.0F, 512, 4, 1|2 |64|128 , 28, 6, 57, 0, "Void" , "Void" , 5, 1500, -1, 0, false, true, 5, 2, 1, Dyes.dyeBlack , Collections.singletonList(new TC_AspectStack(TC_Aspects.VACUOS, 1)));
+ public static Materials Voidstone = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Voidstone" , "Voidstone" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.VACUOS, 1)));
+ public static Materials Vulcanite = new Materials( 489, TextureSet.SET_METALLIC , 32.0F, 20480, 2, 1|2 |8 |64|128 , 255, 132, 72, 0, "Vulcanite" , "Vulcanite" , 0, 0, 8400, 8400, true, false, 1, 1, 1, Dyes._NULL ).disableAutoGeneratedBlastFurnaceRecipes().setTurbineMultipliers(40, 1, 1);
+ public static Materials Vyroxeres = new Materials( 951, TextureSet.SET_METALLIC , 32.0F, 7680, 1, 1|2 |8 |64 , 85, 224, 1, 0, "Vyroxeres" , "Vyroxeres" , 0, 0, 5400, 5400, true, false, 1, 1, 1, Dyes._NULL ).disableAutoGeneratedBlastFurnaceRecipes().setTurbineMultipliers(1, 3, 1);
+ public static Materials Yellorium = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Yellorium" , "Yellorium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow );
+ public static Materials Zectium = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Zectium" , "Zectium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack );
+
+ /**
+ * Circuitry, Batteries and other Technical things
+ */
+ public static Materials Primitive = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Primitive" , "Primitive" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.MACHINA, 1)));
+ public static Materials Basic = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Basic" , "Basic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.MACHINA, 2)));
+ public static Materials Good = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Good" , "Good" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.MACHINA, 3)));
+ public static Materials Advanced = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Advanced" , "Advanced" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.MACHINA, 4)));
+ public static Materials Data = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Data" , "Data" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.MACHINA, 5)));
+ public static Materials Elite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Elite" , "Elite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.MACHINA, 6)));
+ public static Materials Master = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Master" , "Master" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.MACHINA, 7)));
+ public static Materials Ultimate = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Ultimate" , "Ultimate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.MACHINA, 8)));
+ public static Materials Infinite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Infinite" , "Infinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 9)));
+ public static Materials Bio = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Bio" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 10)));
+ public static Materials Nano = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Nano" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 11)));
+ public static Materials Piko = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Piko" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 12)));
+ public static Materials Quantum = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Quantum" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 13)));
+ public static Materials Optical = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Optical" , "Optical" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 13)));
+ public static Materials Exotic = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Exotic" , "Exotic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 14)));
+ public static Materials Cosmic = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Cosmic" , "Cosmic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 15)));
+ public static Materials Transcendent = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Transcendent" , "Transcendent" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 16)));
+ public static Materials Resistor = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Resistor" , "Resistor" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 1)));
+ public static Materials Diode = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Diode" , "Diode" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 1)));
+ public static Materials Transistor = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Transistor" , "Transistor" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 1)));
+ public static Materials Capacitor = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Capacitor" , "Capacitor" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 1)));
+ public static Materials Inductor = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Inductor" , "Inductor" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 1)));
+
+ /**
+ * Not possible to determine exact Components
+ */
+ public static Materials Antimatter = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Antimatter" , "Antimatter" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 9), new TC_AspectStack(TC_Aspects.PERFODIO, 8)));
+ public static Materials AdvancedGlue = new MaterialBuilder(567, TextureSet.SET_FLUID , "Advanced Glue").setName("AdvancedGlue").addCell().addFluid().setRGB(255, 255, 185).setColor(Dyes.dyeYellow).setAspects(Collections.singletonList(new TC_AspectStack(TC_Aspects.LIMUS, 5))).constructMaterial();
+ public static Materials BioFuel = new Materials( 705, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "BioFuel" , "Biofuel" , 0, 6, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange );
+ public static Materials Biomass = new Materials( 704, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 255, 0, 0, "Biomass" , "Forestry Biomass" , 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen );
+ public static Materials CharcoalByproducts = new MaterialBuilder(675, TextureSet.SET_FLUID , "Charcoal Byproducts").addCell().setRGB(120, 68, 33).setColor(Dyes.dyeBrown).constructMaterial();
+ public static Materials Cheese = new Materials( 894, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |8 , 255, 255, 0, 0, "Cheese" , "Cheese" , 0, 0, 320, 0, false, false, 1, 1, 1, Dyes.dyeYellow );
+ public static Materials Chili = new Materials( 895, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Chili" , "Chili" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed );
+ public static Materials Chocolate = new Materials( 886, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Chocolate" , "Chocolate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown );
+ public static Materials Cluster = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 127, "Cluster" , "Cluster" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite );
+ public static Materials CoalFuel = new Materials( 710, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 50, 50, 70, 0, "CoalFuel" , "Coalfuel" , 0, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack );
+ public static Materials Cocoa = new Materials( 887, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Cocoa" , "Cocoa" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown );
+ public static Materials Coffee = new Materials( 888, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 75, 0, 0, "Coffee" , "Coffee" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown );
+ public static Materials Creosote = new Materials( 712, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 128, 64, 0, 0, "Creosote" , "Creosote" , 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown );
+ public static Materials Ethanol = new Materials( 706, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Ethanol" , "Ethanol" , 0, 192, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VENENUM, 1), new TC_AspectStack(TC_Aspects.AQUA, 1)));
+ public static Materials FishOil = new Materials( 711, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "FishOil" , "Fish Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Collections.singletonList(new TC_AspectStack(TC_Aspects.CORPUS, 2)));
+ public static Materials FermentedBiomass = new MaterialBuilder(691, TextureSet.SET_FLUID , "Fermented Biomass").addCell().addFluid().setRGB(68, 85, 0).setColor(Dyes.dyeBrown).constructMaterial();
+ public static Materials Fuel = new Materials( 708, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Fuel" , "Diesel" , 0, 480, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow );
+ public static Materials Glue = new Materials( 726, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "Glue" , "Refined Glue" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Collections.singletonList(new TC_AspectStack(TC_Aspects.LIMUS, 2)));
+ public static Materials Gunpowder = new Materials( 800, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 128, 128, 128, 0, "Gunpowder" , "Gunpowder" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 4)));
+ public static Materials FryingOilHot = new Materials( 727, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "FryingOilHot" , "Hot Frying Oil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1)));
+ public static Materials Honey = new Materials( 725, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 210, 200, 0, 0, "Honey" , "Honey" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow );
+ public static Materials Leather = new Materials( -1, TextureSet.SET_ROUGH , 1.0F, 0, 0, 1 , 150, 150, 80, 127, "Leather" , "Leather" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange );
+ public static Materials Lubricant = new Materials( 724, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "Lubricant" , "Lubricant" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1)));
+ public static Materials McGuffium239 = new Materials( 999, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 50, 150, 0, "McGuffium239" , "Mc Guffium 239" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 8), new TC_AspectStack(TC_Aspects.PERMUTATIO, 8), new TC_AspectStack(TC_Aspects.SPIRITUS, 8), new TC_AspectStack(TC_Aspects.AURAM, 8), new TC_AspectStack(TC_Aspects.VITIUM, 8), new TC_AspectStack(TC_Aspects.RADIO, 8), new TC_AspectStack(TC_Aspects.MAGNETO, 8), new TC_AspectStack(TC_Aspects.ELECTRUM, 8), new TC_AspectStack(TC_Aspects.NEBRISUM, 8), new TC_AspectStack(TC_Aspects.STRONTIO, 8)));
+ public static Materials MeatRaw = new Materials( 892, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 255, 100, 100, 0, "MeatRaw" , "Raw Meat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink );
+ public static Materials MeatCooked = new Materials( 893, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 60, 20, 0, "MeatCooked" , "Cooked Meat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink );
+ public static Materials Milk = new Materials( 885, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |16 , 254, 254, 254, 0, "Milk" , "Milk" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Collections.singletonList(new TC_AspectStack(TC_Aspects.SANO, 2)));
+ public static Materials Mud = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Mud" , "Mud" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown );
+ public static Materials Oil = new Materials( 707, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Oil" , "Oil" , 3, 20, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack );
+ public static Materials Paper = new Materials( 879, TextureSet.SET_PAPER , 1.0F, 0, 0, 1 , 250, 250, 250, 0, "Paper" , "Paper" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Collections.singletonList(new TC_AspectStack(TC_Aspects.COGNITIO, 1)));
+ public static Materials Peat = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Peat" , "Peat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2)));
+ public static Materials RareEarth = new Materials( 891, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 128, 128, 100, 0, "RareEarth" , "Rare Earth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.LUCRUM, 1)));
+ public static Materials Red = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 0, 0, 0, "Red" , "Red" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed );
+ public static Materials Reinforced = new Materials( 383, TextureSet.SET_METALLIC , 7.0F, 480, 4, 1|2 |64|128 , 105, 141, 165, 0, "Reinforced" , "Reinforced" , 0, 0, -1, 1700, true, false, 1, 1, 1, Dyes.dyeBlue ).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials SeedOil = new Materials( 713, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "SeedOil" , "Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Collections.singletonList(new TC_AspectStack(TC_Aspects.GRANUM, 2)));
+ public static Materials SeedOilHemp = new Materials( 722, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "SeedOilHemp" , "Hemp Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Collections.singletonList(new TC_AspectStack(TC_Aspects.GRANUM, 2)));
+ public static Materials SeedOilLin = new Materials( 723, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "SeedOilLin" , "Lin Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Collections.singletonList(new TC_AspectStack(TC_Aspects.GRANUM, 2)));
+ public static Materials Stone = new Materials( 299, TextureSet.SET_ROUGH , 4.0F, 32, 1, 1 |64|128 , 205, 205, 205, 0, "Stone" , "Stone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.TERRA, 1)));
+ public static Materials TNT = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "TNT" , "TNT" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 7), new TC_AspectStack(TC_Aspects.IGNIS, 4)));
+ public static Materials Unstable = new Materials( 396, TextureSet.SET_SHINY , 1.0F, 0, 4, 1 , 220, 220, 220, 127, "Unstable" , "Unstable" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite , Collections.singletonList(new TC_AspectStack(TC_Aspects.PERDITIO, 4)));
+ public static Materials Unstableingot = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 4, 0 , 255, 255, 255, 127, "Unstableingot" , "Unstable" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite , Collections.singletonList(new TC_AspectStack(TC_Aspects.PERDITIO, 4)));
+ public static Materials Vinegar = new MaterialBuilder(690, TextureSet.SET_FLUID , "Vinegar").setColor(Dyes.dyeBrown).constructMaterial();
+ public static Materials Wheat = new Materials( 881, TextureSet.SET_POWDER , 1.0F, 0, 0, 1 , 255, 255, 196, 0, "Wheat" , "Wheat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Collections.singletonList(new TC_AspectStack(TC_Aspects.MESSIS, 2)));
+ public static Materials WoodGas = new MaterialBuilder(660, TextureSet.SET_FLUID , "Wood Gas").addCell().addGas().setRGB(222, 205, 135).setColor(Dyes.dyeBrown).setFuelType(MaterialBuilder.GAS).setFuelPower(24).constructMaterial();
+ public static Materials WoodTar = new MaterialBuilder(662, TextureSet.SET_FLUID , "Wood Tar").addCell().addFluid().setRGB(40, 23, 11).setColor(Dyes.dyeBrown).constructMaterial();
+ public static Materials WoodVinegar = new MaterialBuilder(661, TextureSet.SET_FLUID , "Wood Vinegar").addCell().addFluid().setRGB(212, 85, 0).setColor(Dyes.dyeBrown).constructMaterial();
+ public static Materials WeedEX9000 = new MaterialBuilder(242, TextureSet.SET_FLUID , "Weed-EX 9000").addFluid().setRGB(64, 224, 86).setColor(Dyes.dyeGreen).constructMaterial();
+
+ /**
+ * TODO: This
+ */
+ public static Materials AluminiumBrass = new Materials( -1, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 255, 255, 255, 0, "AluminiumBrass" , "Aluminium Brass" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow );
+ public static Materials Osmiridium = new Materials( 317, TextureSet.SET_METALLIC , 7.0F, 1600, 3, 1|2 |64|128 , 100, 100, 255, 0, "Osmiridium" , "Osmiridium" , 0, 0, 3500, 4500, true, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Iridium, 3), new MaterialStack(Osmium, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Sunnarium = new Materials( 318, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 |64|128 , 255, 255, 0, 0, "Sunnarium" , "Sunnarium" , 0, 0, 4200, 4200, true, false, 1, 1, 1, Dyes.dyeYellow ).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Endstone = new Materials( 808, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Endstone" , "Endstone" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeYellow );
+ public static Materials Netherrack = new Materials( 807, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Netherrack" , "Netherrack" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeRed );
+ public static Materials SoulSand = new Materials( -1, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 255, 255, 255, 0, "SoulSand" , "Soulsand" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBrown );
+ /**
+ * First Degree Compounds
+ */
+ public static Materials Methane = new Materials( 715, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Methane" , "Methane" , 1, 104, -1, 0, false, false, 3, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4)));
+ public static Materials CarbonDioxide = new Materials( 497, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "CarbonDioxide" , "Carbon Dioxide" , 0, 0, 25, 1, false, true, 1, 1, 1, Dyes.dyeLightBlue , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 2))).setHasCorrespondingGas(true);
+ public static Materials NobleGases = new Materials( 496, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "NobleGases" , "Noble Gases" , 0, 0, 4, 0, false, true, 1, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(CarbonDioxide,21),new MaterialStack(Helium, 9), new MaterialStack(Methane, 3), new MaterialStack(Deuterium, 1))).setHasCorrespondingGas(true);
+ public static Materials Air = new Materials( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "Air" , "Air" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeLightBlue , 0, Arrays.asList(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1),new MaterialStack(NobleGases,1)));
+ public static Materials LiquidAir = new Materials( 495, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "LiquidAir" , "Liquid Air" , 0, 0, 4, 0, false, true, 1, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1),new MaterialStack(NobleGases,1)));
+ public static Materials LiquidNitrogen = new Materials( 494, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "LiquidNitrogen" , "Liquid Nitrogen" , 0, 0, 4, 0, false, true, 1, 1, 1, Dyes.dyeLightBlue , 1, Collections.singletonList(new MaterialStack(Nitrogen, 1)));
+ public static Materials LiquidOxygen = new Materials( 493, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "LiquidOxygen" , "Liquid Oxygen" , 0, 0, 4, 0, false, true, 1, 1, 1, Dyes.dyeLightBlue , 1, Collections.singletonList(new MaterialStack(Oxygen, 1)));
+ public static Materials SiliconDioxide = new MaterialBuilder(837, TextureSet.SET_QUARTZ, "Silicon Dioxide").setToolSpeed(1.0F).setDurability(0).setToolQuality(1).addDustItems().setRGB(255, 255, 255).setColor(Dyes.dyeLightGray).setOreValue(1).setExtraData(0).setMaterialList(new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 2)).constructMaterial();
+ public static Materials Jasper = new Materials( 511, TextureSet.SET_EMERALD , 1.0F, 0, 2, 1 |4|8 |64 , 200, 80, 80, 100, "Jasper" , "Jasper" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed , 1, Collections.singletonList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2)));
+ public static Materials Almandine = new Materials( 820, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 255, 0, 0, 0, "Almandine" , "Almandine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Iron, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12)));
+ public static Materials Andradite = new Materials( 821, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 0, 0, "Andradite" , "Andradite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Iron, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12)));
+ public static Materials AnnealedCopper = new Materials( 345, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |128 , 255, 120, 20, 0, "AnnealedCopper" , "Annealed Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 2, Collections.singletonList(new MaterialStack(Copper, 1)));
+ public static Materials Asbestos = new Materials( 946, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "Asbestos" , "Asbestos" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))); // Mg3Si2O5(OH)4
+ public static Materials Ash = new Materials( 815, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 150, 150, 150, 0, "Ash" , "Ashes" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 2, Collections.singletonList(new MaterialStack(Carbon, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.PERDITIO, 1)));
+ public static Materials BandedIron = new Materials( 917, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 145, 90, 90, 0, "BandedIron" , "Banded Iron" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Oxygen, 3)));
+ public static Materials BatteryAlloy = new Materials( 315, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 156, 124, 160, 0, "BatteryAlloy" , "Battery Alloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Lead, 4), new MaterialStack(Antimony, 1)));
+ public static Materials BlueTopaz = new Materials( 513, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 0, 0, 255, 127, "BlueTopaz" , "Blue Topaz" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4)));
+ public static Materials Bone = new Materials( 806, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Bone" , "Bone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Collections.singletonList(new MaterialStack(Calcium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MORTUUS, 2), new TC_AspectStack(TC_Aspects.CORPUS, 1)));
+ public static Materials Brass = new Materials( 301, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 255, 180, 0, 0, "Brass" , "Brass" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1)));
+ public static Materials Bronze = new Materials( 300, TextureSet.SET_METALLIC , 6.0F, 192, 2, 1|2 |64|128 , 255, 128, 0, 0, "Bronze" , "Bronze" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1)));
+ public static Materials BrownLimonite = new Materials( 930, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "BrownLimonite" , "Brown Limonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))); // FeO(OH)
+ public static Materials Calcite = new Materials( 823, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 250, 230, 220, 0, "Calcite" , "Calcite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3)));
+ public static Materials Cassiterite = new Materials( 824, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 220, 220, 220, 0, "Cassiterite" , "Cassiterite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2)));
+ public static Materials CassiteriteSand = new Materials( 937, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 220, 220, 220, 0, "CassiteriteSand" , "Cassiterite Sand" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2)));
+ public static Materials Chalcopyrite = new Materials( 855, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 160, 120, 40, 0, "Chalcopyrite" , "Chalcopyrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2)));
+ public static Materials Charcoal = new Materials( 536, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |4 , 100, 70, 70, 0, "Charcoal" , "Charcoal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Collections.singletonList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2)));
+ public static Materials Chromite = new Materials( 825, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 35, 20, 15, 0, "Chromite" , "Chromite" , 0, 0, 1700, 1700, true, false, 6, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Chrome, 2), new MaterialStack(Oxygen, 4)));
+ public static Materials ChromiumDioxide = new Materials( 361, TextureSet.SET_DULL , 11.0F, 256, 3, 1|2 , 230, 200, 200, 0, "ChromiumDioxide" , "Chromium Dioxide" , 0, 0, 650, 650, false, false, 5, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Oxygen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1)));
+ public static Materials Cinnabar = new Materials( 826, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 0, 0, 0, "Cinnabar" , "Cinnabar" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Mercury, 1), new MaterialStack(Sulfur, 1)));
+ public static Materials Water = new Materials( 701, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Water" , "Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 2)));
+ public static Materials Clay = new Materials( 805, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 200, 200, 220, 0, "Clay" , "Clay" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeLightBlue , 0, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2),new MaterialStack(Oxygen,7),new MaterialStack(Water,2)));
+ public static Materials Coal = new Materials( 535, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |4|8 , 70, 70, 70, 0, "Coal" , "Coal" , 0, 0, -1, 0, false, false, 2, 2, 1, Dyes.dyeBlack , 1, Collections.singletonList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2)));
+ public static Materials Cobaltite = new Materials( 827, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 80, 80, 250, 0, "Cobaltite" , "Cobaltite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Arsenic, 1), new MaterialStack(Sulfur, 1)));
+ public static Materials Cooperite = new Materials( 828, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 255, 255, 200, 0, "Cooperite" , "Sheldonite" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Platinum, 3), new MaterialStack(Nickel, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Palladium, 1)));
+ public static Materials Cupronickel = new Materials( 310, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |64 , 227, 150, 128, 0, "Cupronickel" , "Cupronickel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Nickel, 1)));
+ public static Materials DarkAsh = new Materials( 816, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 50, 50, 50, 0, "DarkAsh" , "Dark Ashes" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyeGray , 1, Collections.singletonList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 1)));
+ public static Materials DeepIron = new Materials( 829, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 150, 140, 140, 0, "DeepIron" , "Deep Iron" , 0, 0, 7500, 7500, true, false, 3, 1, 1, Dyes.dyePink , 2, Collections.singletonList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Diamond = new Materials( 500, TextureSet.SET_DIAMOND , 8.0F, 1280, 4, 1 |4|8 |64|128 , 200, 255, 255, 127, "Diamond" , "Diamond" , 0, 0, -1, 0, false, true, 5, 64, 1, Dyes.dyeWhite , 1, Collections.singletonList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 4)));
+ public static Materials Electrum = new Materials( 303, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64|128 , 255, 255, 100, 0, "Electrum" , "Electrum" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Gold, 1)));
+ public static Materials Emerald = new Materials( 501, TextureSet.SET_EMERALD , 7.0F, 256, 4, 1 |4|8 |64 , 80, 255, 80, 127, "Emerald" , "Emerald" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeGreen , 0, Arrays.asList(new MaterialStack(Beryllium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 6), new MaterialStack(Oxygen, 18)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 5)));
+ public static Materials FreshWater = new Materials( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "FreshWater" , "Fresh Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 2)));
+ public static Materials Galena = new Materials( 830, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 100, 60, 100, 0, "Galena" , "Galena" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Lead, 1), new MaterialStack(Sulfur, 1)));
+ public static Materials Garnierite = new Materials( 906, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 50, 200, 70, 0, "Garnierite" , "Garnierite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(Oxygen, 1)));
+ public static Materials Glyceryl = new Materials( 714, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 150, 150, 0, "Glyceryl" , "Glyceryl Trinitrate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Nitrogen, 3), new MaterialStack(Oxygen, 9)));
+ public static Materials GreenSapphire = new MaterialBuilder(504, TextureSet.SET_GEM_HORIZONTAL, "Green Sapphire").setToolSpeed(7.0F).setDurability(256).setToolQuality(2).addDustItems().addGemItems().setTransparent(true).addOreItems().addToolHeadItems().setRGBA(100, 200, 130, 127).setColor(Dyes.dyeCyan).setOreValue(5).setExtraData(0).setMaterialList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)).setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))).constructMaterial().disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Grossular = new Materials( 831, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Grossular" , "Grossular" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 0, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12)));
+ public static Materials HolyWater = new Materials( 729, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "HolyWater" , "Holy Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.AURAM, 1)));
+ public static Materials Ice = new Materials( 702, TextureSet.SET_SHINY , 1.0F, 0, 0, 1| 16 , 200, 200, 255, 0, "Ice" , "Ice" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.GELUM, 2)));
+ public static Materials Ilmenite = new Materials( 918, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 70, 55, 50, 0, "Ilmenite" , "Ilmenite" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyePurple , 0, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Titanium, 1), new MaterialStack(Oxygen, 3)));
+ public static Materials Rutile = new Materials( 375, TextureSet.SET_GEM_HORIZONTAL , 1.0F, 0, 2, 1 |8 , 212, 13, 92, 0, "Rutile" , "Rutile" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Oxygen, 2)));
+ public static Materials Bauxite = new Materials( 822, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Bauxite" , "Bauxite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Rutile, 2), new MaterialStack(Aluminium, 16), new MaterialStack(Hydrogen, 10), new MaterialStack(Oxygen, 11)));
+ public static Materials Titaniumtetrachloride = new Materials( 376, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 212, 13, 92, 0, "Titaniumtetrachloride" , "Titaniumtetrachloride" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Chlorine, 4)));
+ public static Materials Magnesiumchloride = new Materials( 377, TextureSet.SET_DULL , 1.0F, 0, 2, 1|16 , 212, 13, 92, 0, "Magnesiumchloride" , "Magnesiumchloride" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Chlorine, 2)));
+ public static Materials Invar = new Materials( 302, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |64|128 , 180, 180, 120, 0, "Invar" , "Invar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Nickel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.GELUM, 1)));
+ public static Materials Kanthal = new Materials( 312, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 194, 210, 223, 0, "Kanthal" , "Kanthal" , 0, 0, 1800, 1800, true, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Chrome, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Lazurite = new Materials( 524, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 100, 120, 255, 0, "Lazurite" , "Lazurite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Aluminium, 6), new MaterialStack(Silicon, 6), new MaterialStack(Calcium, 8), new MaterialStack(Sodium, 8)));
+ public static Materials Magnalium = new Materials( 313, TextureSet.SET_DULL , 6.0F, 256, 2, 1|2 |64|128 , 200, 190, 255, 0, "Magnalium" , "Magnalium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Aluminium, 2)));
+ public static Materials Magnesite = new Materials( 908, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 250, 250, 180, 0, "Magnesite" , "Magnesite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3)));
+ public static Materials Magnetite = new Materials( 870, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 30, 30, 30, 0, "Magnetite" , "Magnetite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Oxygen, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1)));
+ public static Materials Molybdenite = new Materials( 942, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 25, 25, 25, 0, "Molybdenite" , "Molybdenite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Molybdenum, 1), new MaterialStack(Sulfur, 2))); // MoS2 (also source of Re)
+ public static Materials Nichrome = new Materials( 311, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 205, 206, 246, 0, "Nichrome" , "Nichrome" , 0, 0, 2700, 2700, true, false, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Nickel, 4), new MaterialStack(Chrome, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials NiobiumNitride = new Materials( 359, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 41, 29, 0, "NiobiumNitride" , "Niobium Nitride" , 0, 0, 2573, 2573, true, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Nitrogen, 1))); // Anti-Reflective Material
+ public static Materials NiobiumTitanium = new Materials( 360, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 29, 41, 0, "NiobiumTitanium" , "Niobium-Titanium" , 0, 0, 4500, 4500, true, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Titanium, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials NitroCarbon = new Materials( 716, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 75, 100, 0, "NitroCarbon" , "Nitro-Carbon" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Carbon, 1)));
+ public static Materials NitrogenDioxide = new Materials( 717, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 100, 175, 255, 0, "NitrogenDioxide" , "Nitrogen Dioxide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2)));
+ public static Materials Obsidian = new Materials( 804, TextureSet.SET_DULL , 1.0F, 0, 3, 1|2 , 80, 50, 100, 0, "Obsidian" , "Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Iron, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 8)));
+ public static Materials Phosphate = new Materials( 833, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8|16 , 255, 255, 0, 0, "Phosphate" , "Phosphate" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Phosphorus, 1), new MaterialStack(Oxygen, 4)));
+ public static Materials PigIron = new Materials( 307, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 200, 180, 180, 0, "PigIron" , "Pig Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink , 2, Collections.singletonList(new MaterialStack(Iron, 1)));
+ public static Materials Plastic = new Materials( 874, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 200, 200, 200, 0, "Plastic" , "Polyethylene" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2)), Collections.singletonList(new TC_AspectStack(TC_Aspects.MOTUS, 2)));
+ public static Materials Epoxid = new Materials( 470, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 200, 140, 20, 0, "Epoxid" , "Epoxid" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 21), new MaterialStack(Hydrogen, 24), new MaterialStack(Oxygen, 4)), Collections.singletonList(new TC_AspectStack(TC_Aspects.MOTUS, 2)));
+ public static Materials Polydimethylsiloxane = new MaterialBuilder(633, TextureSet.SET_FLUID , "Polydimethylsiloxane").addDustItems().setRGB(245, 245, 245).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1), new MaterialStack(Silicon, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Silicone = new Materials( 471, TextureSet.SET_DULL , 3.0F, 128, 1, 1|2 |64|128 , 220, 220, 220, 0, "Silicone" , "Silicone Rubber" , 0, 0, 900, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1), new MaterialStack(Silicon, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.MOTUS, 2)));
+ public static Materials Polycaprolactam = new Materials( 472, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 50, 50, 50, 0, "Polycaprolactam" , "Polycaprolactam" , 0, 0, 500, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 11), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.MOTUS, 2)));
+ public static Materials Polytetrafluoroethylene = new Materials( 473, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 100, 100, 100, 0, "Polytetrafluoroethylene" , "Polytetrafluoroethylene" , 0, 0, 1400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Fluorine, 4)), Collections.singletonList(new TC_AspectStack(TC_Aspects.MOTUS, 2)));
+ public static Materials Powellite = new Materials( 883, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 0, 0, "Powellite" , "Powellite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4)));
+ public static Materials Pumice = new Materials( 926, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 185, 185, 0, "Pumice" , "Pumice" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Collections.singletonList(new MaterialStack(Stone, 1)));
+ public static Materials Pyrite = new Materials( 834, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 40, 0, "Pyrite" , "Pyrite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2)));
+ public static Materials Pyrolusite = new Materials( 943, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 150, 150, 170, 0, "Pyrolusite" , "Pyrolusite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Oxygen, 2)));
+ public static Materials Pyrope = new Materials( 835, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 120, 50, 100, 0, "Pyrope" , "Pyrope" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePurple , 0, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12)));
+ public static Materials RockSalt = new Materials( 944, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 240, 200, 200, 0, "RockSalt" , "Rock Salt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Chlorine, 1)));
+ public static Materials Rubber = new Materials( 880, TextureSet.SET_SHINY , 1.5F, 32, 0, 1|2 |64|128 , 0, 0, 0, 0, "Rubber" , "Rubber" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Collections.singletonList(new TC_AspectStack(TC_Aspects.MOTUS, 2)));
+ public static Materials RawRubber = new Materials( 896, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 204, 199, 137, 0, "RawRubber" , "Raw Rubber" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Collections.singletonList(new TC_AspectStack(TC_Aspects.MOTUS, 2)));
+ public static Materials Ruby = new Materials( 502, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 255, 100, 100, 127, "Ruby" , "Ruby" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Salt = new Materials( 817, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Salt" , "Salt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Chlorine, 1)));
+ public static Materials Saltpeter = new Materials( 836, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "Saltpeter" , "Saltpeter" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3)));
+ public static Materials Sapphire = new MaterialBuilder(503, TextureSet.SET_GEM_VERTICAL, "Sapphire").setToolSpeed(7.0F).setDurability(256).setToolQuality(2).addDustItems().addGemItems().setTransparent(true).addOreItems().addToolHeadItems().setRGBA(100, 100, 200, 127).setColor(Dyes.dyeBlue).setOreValue(5).setExtraData(0).setMaterialList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)).setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))).constructMaterial().disableAutoGeneratedBlastFurnaceRecipes();
+ //public static Materials Sapphire = new Materials( 503, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 100, 200, 127, "Sapphire" , "Sapphire" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3)));
+ public static Materials Scheelite = new Materials( 910, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 140, 20, 0, "Scheelite" , "Scheelite" , 0, 0, 2500, 2500, false, false, 4, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Calcium, 1), new MaterialStack(Oxygen, 4)));
+ public static Materials Snow = new Materials( 728, TextureSet.SET_FINE , 1.0F, 0, 0, 1| 16 , 250, 250, 250, 0, "Snow" , "Snow" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.GELUM, 1)));
+ public static Materials Sodalite = new Materials( 525, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 20, 20, 255, 0, "Sodalite" , "Sodalite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Sodium, 4), new MaterialStack(Chlorine, 1)));
+ public static Materials SodiumPersulfate = new Materials( 718, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "SodiumPersulfate" , "Sodium Persulfate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 2), new MaterialStack(Oxygen, 8)));
+ public static Materials SodiumSulfide = new Materials( 719, TextureSet.SET_FLUID , 1.0F, 0, 2, 1 , 255, 230, 128, 0, "SodiumSulfide" , "Sodium Sulfide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1)));
+ public static Materials HydricSulfide = new Materials( 460, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "HydricSulfide" , "Hydrogen Sulfide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1)));
+
+ public static Materials OilHeavy = new Materials( 730, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "OilHeavy" , "Heavy Oil" , 3, 40, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack );
+ public static Materials OilMedium = new Materials( 731, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "OilMedium" , "Raw Oil" , 3, 30, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack );
+ public static Materials OilLight = new Materials( 732, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "OilLight" , "Light Oil" , 3, 20, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack );
+
+ public static Materials NatruralGas = new Materials( 733, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "NatruralGas" , "Natural Gas" , 1, 20, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite );
+ public static Materials SulfuricGas = new Materials( 734, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "SulfuricGas" , "Sulfuric Gas" , 1, 25, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite );
+ public static Materials Gas = new Materials( 735, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Gas" , "Refinery Gas" , 1, 160, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite).setCanBeCracked(true);
+ public static Materials SulfuricNaphtha = new Materials( 736, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "SulfuricNaphtha" , "Sulfuric Naphtha" , 1, 40, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow );
+ public static Materials SulfuricLightFuel = new Materials( 737, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "SulfuricLightFuel" , "Sulfuric Light Fuel" , 0, 40, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow );
+ public static Materials SulfuricHeavyFuel = new Materials( 738, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "SulfuricHeavyFuel" , "Sulfuric Heavy Fuel" , 3, 40, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack );
+ public static Materials Naphtha = new Materials( 739, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Naphtha" , "Naphtha" , 1, 320, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow).setCanBeCracked(true);
+ public static Materials LightFuel = new Materials( 740, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "LightFuel" , "Light Fuel" , 0, 305, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow).setCanBeCracked(true);
+ public static Materials HeavyFuel = new Materials( 741, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "HeavyFuel" , "Heavy Fuel" , 3, 240, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack).setCanBeCracked(true);
+ public static Materials LPG = new Materials( 742, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "LPG" , "LPG" , 1, 320, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow );
+
+ public static Materials FluidNaquadahFuel = new MaterialBuilder(600, TextureSet.SET_FLUID , "Naquadah Fuel").setName("FluidNaqudahFuel").addCell().addFluid().setRGB(62, 62, 62).setColor(Dyes.dyeBlack).constructMaterial();
+ public static Materials EnrichedNaquadria = new MaterialBuilder(601, TextureSet.SET_FLUID , "Enriched Naquadria").setName("EnrichedNaquadria").addCell().addFluid().setRGB(52, 52, 52).setColor(Dyes.dyeBlack).constructMaterial();
+
+ public static Materials ReinforceGlass = new MaterialBuilder(602, TextureSet.SET_FLUID , "Reinforced Glass").setName("ReinforcedGlass").setRGB(192, 245, 254).setColor(Dyes.dyeWhite).setMeltingPoint(2000).constructMaterial().disableAutoGeneratedRecycleRecipes();
+ public static Materials BioMediumRaw = new MaterialBuilder(603, TextureSet.SET_FLUID , "Raw Bio Catalyst Medium").setName("BioMediumRaw").addCell().addFluid().setRGB(97, 147, 46).setColor(Dyes.dyeLime).constructMaterial();
+ public static Materials BioMediumSterilized = new MaterialBuilder(604, TextureSet.SET_FLUID , "Sterilized Bio Catalyst Medium").setName("BiohMediumSterilized").addCell().addFluid().setRGB(162, 253, 53).setColor(Dyes.dyeLime).constructMaterial();
+
+ public static Materials Chlorobenzene = new MaterialBuilder(605, TextureSet.SET_FLUID , "Chlorobenzene").addCell().addFluid().setRGB(0, 50, 65).setColor(Dyes.dyeGray).setMaterialList(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 5), new MaterialStack(Chlorine, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials DilutedHydrochloricAcid = new MaterialBuilder(606, TextureSet.SET_FLUID , "Diluted Hydrochloric Acid").setName("DilutedHydrochloricAcid_GT5U").addCell().addFluid().setRGB(153, 167, 163).setColor(Dyes.dyeLightGray).setMaterialList(new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 1)).constructMaterial();
+ public static Materials Pyrochlore = new MaterialBuilder(607, TextureSet.SET_METALLIC , "Pyrochlore").addDustItems().addOreItems().setRGB(43, 17, 0).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Calcium, 2), new MaterialStack(Niobium, 2), new MaterialStack(Oxygen, 7)).addElectrolyzerRecipe().constructMaterial();
+
+ public static Materials GrowthMediumRaw = new MaterialBuilder(608, TextureSet.SET_FLUID , "Raw Growth Catalyst Medium").setName("GrowthMediumRaw").addCell().addFluid().setRGB(211, 141, 95).setColor(Dyes.dyeOrange).constructMaterial();
+ public static Materials GrowthMediumSterilized = new MaterialBuilder(609, TextureSet.SET_FLUID , "Growth Catalyst Medium").setName("GrowthMediumSterilized").addCell().addFluid().setRGB(222, 170, 135).setColor(Dyes.dyeOrange).constructMaterial();
+
+ public static Materials FerriteMixture = new MaterialBuilder(612, TextureSet.SET_METALLIC , "Ferrite Mixture").addDustItems().setRGB(180, 180, 180).setColor(Dyes.dyeGray).setMaterialList(new MaterialStack(Nickel, 1), new MaterialStack(Zinc, 1), new MaterialStack(Iron, 4)).constructMaterial();
+ public static Materials NickelZincFerrite = new MaterialBuilder(613, TextureSet.SET_ROUGH , "Nickel-Zinc Ferrite").addDustItems().addMetalItems().addToolHeadItems().addGearItems().setToolSpeed(3.0f).setDurability(32).setRGB(60, 60, 60).setColor(Dyes.dyeBlack).setBlastFurnaceRequired(true).setBlastFurnaceTemp(1500).setMaterialList(new MaterialStack(Nickel, 1), new MaterialStack(Zinc, 1), new MaterialStack(Iron, 4), new MaterialStack(Oxygen, 8)).constructMaterial();
+
+ public static Materials Massicot = new MaterialBuilder(614, TextureSet.SET_DULL , "Massicot").addDustItems().setRGB(255, 221, 85).setColor(Dyes.dyeYellow).setMaterialList(new MaterialStack(Lead, 1), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials ArsenicTrioxide = new MaterialBuilder(615, TextureSet.SET_SHINY , "Arsenic Trioxide").addDustItems().setRGB(255, 255, 255).setColor(Dyes.dyeGreen).setMaterialList(new MaterialStack(Arsenic, 2), new MaterialStack(Oxygen, 3)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials CobaltOxide = new MaterialBuilder(616, TextureSet.SET_DULL , "Cobalt Oxide").addDustItems().setRGB(102, 128, 0).setColor(Dyes.dyeGreen).setMaterialList(new MaterialStack(Cobalt, 1), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Zincite = new MaterialBuilder(617, TextureSet.SET_DULL , "Zincite").addDustItems().setRGB(255, 255, 245).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Zinc, 1), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials AntimonyTrioxide = new MaterialBuilder(618, TextureSet.SET_DULL , "Antimony Trioxide").addDustItems().setRGB(230, 230, 240).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Antimony, 2), new MaterialStack(Oxygen, 3)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials CupricOxide = new MaterialBuilder(619, TextureSet.SET_DULL , "Cupric Oxide").addDustItems().setRGB(15, 15, 15).setColor(Dyes.dyeBlack).setMeltingPoint(1599).setMaterialList(new MaterialStack(Copper, 1), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Ferrosilite = new MaterialBuilder(620, TextureSet.SET_DULL , "Ferrosilite").addDustItems().setRGB(151, 99, 42).setColor(Dyes.dyeBrown).setMaterialList(new MaterialStack(Iron, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3)).addElectrolyzerRecipe().constructMaterial();
+
+ public static Materials Magnesia = new MaterialBuilder(621, TextureSet.SET_DULL , "Magnesia").addDustItems().setRGB(255, 225, 225).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Magnesium, 1), new MaterialStack(Oxygen, 1)).constructMaterial();
+ public static Materials Quicklime = new MaterialBuilder(622, TextureSet.SET_DULL , "Quicklime").addDustItems().setRGB(240, 240, 240).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Calcium, 1), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Potash = new MaterialBuilder(623, TextureSet.SET_DULL , "Potash").addDustItems().setRGB(120, 66, 55).setColor(Dyes.dyeBrown).setMaterialList(new MaterialStack(Potassium, 2), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials SodaAsh = new MaterialBuilder(624, TextureSet.SET_DULL , "Soda Ash").addDustItems().setRGB(220, 220, 255).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Sodium, 2), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3)).addElectrolyzerRecipe().constructMaterial();
+
+ public static Materials BioDiesel = new MaterialBuilder(627, TextureSet.SET_FLUID , "Bio Diesel").addCell().addFluid().setRGB(255, 128, 0).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.DIESEL).setFuelPower(320).constructMaterial();
+ public static Materials NitrationMixture = new MaterialBuilder(628, TextureSet.SET_FLUID , "Nitration Mixture").addCell().setRGB(230, 226, 171).setColor(Dyes.dyeBrown).constructMaterial();
+ public static Materials Glycerol = new MaterialBuilder(629, TextureSet.SET_FLUID , "Glycerol").addCell().addFluid().setRGB(135, 222, 135).setColor(Dyes.dyeLime).setFuelType(MaterialBuilder.SEMIFLUID).setFuelPower(164).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 8), new MaterialStack(Oxygen, 3)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials SodiumBisulfate = new MaterialBuilder(630, TextureSet.SET_FLUID , "Sodium Bisulfate").addDustItems().setRGB(0, 68, 85).setColor(Dyes.dyeBlue).setMaterialList(new MaterialStack(Sodium, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)).constructMaterial();
+ public static Materials PolyphenyleneSulfide = new MaterialBuilder(631, TextureSet.SET_DULL , "Polyphenylene Sulfide").addDustItems().addMetalItems().addToolHeadItems().addGearItems().setToolSpeed(3.0f).setDurability(32).setToolQuality(1).setRGB(170, 136, 0).setColor(Dyes.dyeBrown).setMaterialList(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Sulfur, 1)).constructMaterial();
+ public static Materials Dichlorobenzene = new MaterialBuilder(632, TextureSet.SET_FLUID , "Dichlorobenzene").addCell().addFluid().setRGB(0, 68, 85).setColor(Dyes.dyeBlue).setMaterialList(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Chlorine, 2)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Polystyrene = new MaterialBuilder(636, TextureSet.SET_DULL , "Polystyrene").addDustItems().addMetalItems().addToolHeadItems().addGearItems().setToolSpeed(3.0f).setDurability(32).setToolQuality(1).setRGB(190, 180, 170).setColor(Dyes.dyeLightGray).setMaterialList(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8)).constructMaterial();
+ public static Materials Styrene = new MaterialBuilder(637, TextureSet.SET_FLUID , "Styrene").addCell().addFluid().setRGB(210, 200, 190).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Isoprene = new MaterialBuilder(638, TextureSet.SET_FLUID , "Isoprene").addCell().addFluid().setRGB(20, 20, 20).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Tetranitromethane = new MaterialBuilder(639, TextureSet.SET_FLUID , "Tetranitromethane").addCell().addFluid().setRGB(15, 40, 40).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Carbon, 1), new MaterialStack(Nitrogen, 4), new MaterialStack(Oxygen, 8)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Ethenone = new MaterialBuilder(641, TextureSet.SET_FLUID , "Ethenone").addCell().addGas().setRGB(20, 20, 70).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Ethane = new MaterialBuilder(642, TextureSet.SET_FLUID , "Ethane").addCell().addGas().setRGB(200, 200, 255).setColor(Dyes.dyeLightBlue).setFuelType(MaterialBuilder.GAS).setFuelPower(168).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
+ public static Materials Propane = new MaterialBuilder(643, TextureSet.SET_FLUID , "Propane").addCell().addGas().setRGB(250, 226, 80).setColor(Dyes.dyeYellow).setFuelType(MaterialBuilder.GAS).setFuelPower(232).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
+ public static Materials Butane = new MaterialBuilder(644, TextureSet.SET_FLUID , "Butane").addCell().addGas().setRGB(182, 55, 30).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.GAS).setFuelPower(296).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 10)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
+ public static Materials Butene = new MaterialBuilder(645, TextureSet.SET_FLUID , "Butene").addCell().addGas().setRGB(207, 80, 5).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.GAS).setFuelPower(256).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
+ public static Materials Butadiene = new MaterialBuilder(646, TextureSet.SET_FLUID , "Butadiene").addCell().addGas().setRGB(232, 105, 0).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.GAS).setFuelPower(206).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
+ public static Materials RawStyreneButadieneRubber = new MaterialBuilder(634, TextureSet.SET_SHINY , "Raw Styrene-Butadiene Rubber").addDustItems().setRGB(84, 64, 61).setColor(Dyes.dyeGray).setMaterialList(new MaterialStack(Styrene, 1), new MaterialStack(Butadiene, 3)).constructMaterial();
+ public static Materials StyreneButadieneRubber = new MaterialBuilder(635, TextureSet.SET_SHINY , "Styrene-Butadiene Rubber").addDustItems().addMetalItems().addToolHeadItems().addGearItems().setToolSpeed(3.0f).setDurability(128).setToolQuality(1).setRGB(33, 26, 24).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Styrene, 1), new MaterialStack(Butadiene, 3)).constructMaterial();
+ public static Materials Toluene = new MaterialBuilder(647, TextureSet.SET_FLUID , "Toluene").addCell().setRGB(80, 29, 5).setColor(Dyes.dyeBrown).setFuelType(MaterialBuilder.GAS).setFuelPower(328).setMaterialList(new MaterialStack(Carbon, 7), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Epichlorohydrin = new MaterialBuilder(648, TextureSet.SET_FLUID , "Epichlorohydrin").addCell().setRGB(80, 29, 5).setColor(Dyes.dyeBrown).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Chlorine, 1), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials PolyvinylChloride = new MaterialBuilder(649, TextureSet.SET_DULL , "Polyvinyl Chloride").addDustItems().addMetalItems().addToolHeadItems().addGearItems().setToolSpeed(3.0f).setDurability(32).setToolQuality(1).setRGB(215, 230, 230).setColor(Dyes.dyeLightGray).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 3), new MaterialStack(Chlorine, 1)).constructMaterial();
+ public static Materials VinylChloride = new MaterialBuilder(650, TextureSet.SET_FLUID , "Vinyl Chloride").addCell().addGas().setRGB(225, 240, 240).setColor(Dyes.dyeLightGray).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 3), new MaterialStack(Chlorine, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials SulfurDioxide = new MaterialBuilder(651, TextureSet.SET_FLUID , "Sulfur Dioxide").addCell().addGas().setRGB(200, 200, 25).setColor(Dyes.dyeYellow).setMaterialList(new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 2)).constructMaterial();
+ public static Materials SulfurTrioxide = new MaterialBuilder(652, TextureSet.SET_FLUID , "Sulfur Trioxide").addCell().addGas().setGasTemperature(344).setRGB(160, 160, 20).setColor(Dyes.dyeYellow).setMaterialList(new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 3)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials NitricAcid = new MaterialBuilder(653, TextureSet.SET_FLUID , "Nitric Acid").addCell().addFluid().setRGB(230, 226, 171).setMaterialList(new MaterialStack(Hydrogen, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Dimethylhydrazine = new MaterialBuilder(654, TextureSet.SET_FLUID , "1,1-Dimethylhydrazine").addCell().addFluid().setRGB(0, 0, 85).setColor(Dyes.dyeBlue).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 8), new MaterialStack(Nitrogen, 2)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Chloramine = new MaterialBuilder(655, TextureSet.SET_FLUID , "Chloramine").addCell().addFluid().setRGB(63, 159, 128).setColor(Dyes.dyeCyan).setMaterialList(new MaterialStack(Nitrogen, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Chlorine, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Dimethylamine = new MaterialBuilder(656, TextureSet.SET_FLUID , "Dimethylamine").addCell().addGas().setRGB(85, 68, 105).setColor(Dyes.dyeGray).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 7), new MaterialStack(Nitrogen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials DinitrogenTetroxide = new MaterialBuilder(657, TextureSet.SET_FLUID , "Dinitrogen Tetroxide").addCell().addGas().setRGB(0, 65, 132).setColor(Dyes.dyeBlue).setMaterialList(new MaterialStack(Nitrogen, 2), new MaterialStack(Oxygen, 4)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials NitricOxide = new MaterialBuilder(658, TextureSet.SET_FLUID , "Nitric Oxide").addCell().addGas().setRGB(125, 200, 240).setColor(Dyes.dyeCyan).setMaterialList(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Ammonia = new MaterialBuilder(659, TextureSet.SET_FLUID , "Ammonia").addCell().addGas().setRGB(63, 52, 128).setColor(Dyes.dyeBlue).setMaterialList(new MaterialStack(Nitrogen, 1), new MaterialStack(Hydrogen, 3)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Dimethyldichlorosilane = new MaterialBuilder(663, TextureSet.SET_FLUID , "Dimethyldichlorosilane").addCell().addFluid().setRGB(68, 22, 80).setColor(Dyes.dyePurple).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Chlorine, 2), new MaterialStack(Silicon, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Chloromethane = new MaterialBuilder(664, TextureSet.SET_FLUID , "Chloromethane").addCell().addGas().setRGB(200, 44, 160).setColor(Dyes.dyeMagenta).setMaterialList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 3), new MaterialStack(Chlorine, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials PhosphorousPentoxide = new MaterialBuilder(665, TextureSet.SET_FLUID , "Phosphorous Pentoxide").addCell().addDustItems().setRGB(220, 220, 0).setColor(Dyes.dyeYellow).setMaterialList(new MaterialStack(Phosphorus, 4), new MaterialStack(Oxygen, 10)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Tetrafluoroethylene = new MaterialBuilder(666, TextureSet.SET_FLUID , "Tetrafluoroethylene").addCell().addGas().setRGB(125, 125, 125).setColor(Dyes.dyeGray).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Fluorine, 4)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials HydrofluoricAcid = new MaterialBuilder(667, TextureSet.SET_FLUID , "Hydrofluoric Acid").setName("HydrofluoricAcid_GT5U").addCell().addFluid().setRGB(0, 136, 170).setColor(Dyes.dyeLightBlue).setMaterialList(new MaterialStack(Hydrogen, 1), new MaterialStack(Fluorine, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Chloroform = new MaterialBuilder(668, TextureSet.SET_FLUID , "Chloroform").addCell().addFluid().setRGB(137, 44, 160).setColor(Dyes.dyePurple).setMaterialList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 3)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials BisphenolA = new MaterialBuilder(669, TextureSet.SET_FLUID , "Bisphenol A").addCell().setRGB(212, 170, 0).setColor(Dyes.dyeBrown).setMaterialList(new MaterialStack(Carbon, 15), new MaterialStack(Hydrogen, 16), new MaterialStack(Oxygen, 2)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials AceticAcid = new MaterialBuilder(670, TextureSet.SET_FLUID , "Acetic Acid").addCell().addFluid().setRGB(200, 180, 160).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 2)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials CalciumAcetateSolution = new MaterialBuilder(671, TextureSet.SET_RUBY , "Calcium Acetate Solution").addCell().addFluid().setRGB(220, 200, 180).setColor(Dyes.dyeCyan).setMaterialList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 4), new MaterialStack(Oxygen, 4), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Acetone = new MaterialBuilder(672, TextureSet.SET_FLUID , "Acetone").addCell().addFluid().setRGB(175, 175, 175).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Methanol = new MaterialBuilder(673, TextureSet.SET_FLUID , "Methanol").addCell().addFluid().setRGB(170, 136, 0).setColor(Dyes.dyeBrown).setFuelPower(84).setMaterialList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials CarbonMonoxide = new MaterialBuilder(674, TextureSet.SET_FLUID , "Carbon Monoxide").addCell().addGas().setRGB(14, 72, 128).setColor(Dyes.dyeBrown).setFuelType(MaterialBuilder.GAS).setFuelPower(24).setMaterialList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials MetalMixture = new MaterialBuilder(676, TextureSet.SET_METALLIC , "Metal Mixture").addDustItems().setRGB(80, 45, 22).setColor(Dyes.dyeBrown).constructMaterial();
+ public static Materials Ethylene = new MaterialBuilder(677, TextureSet.SET_FLUID , "Ethylene").addCell().addGas().setRGB(225, 225, 225).setColor(Dyes.dyeWhite).setFuelType(MaterialBuilder.GAS).setFuelPower(128).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
+ public static Materials Propene = new MaterialBuilder(678, TextureSet.SET_FLUID , "Propene").addCell().addGas().setRGB(255, 221, 85).setColor(Dyes.dyeYellow).setFuelType(MaterialBuilder.GAS).setFuelPower(192).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
+ public static Materials VinylAcetate = new MaterialBuilder(679, TextureSet.SET_FLUID , "Vinyl Acetate").addCell().addFluid().setRGB(255, 179, 128).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials PolyvinylAcetate = new MaterialBuilder(680, TextureSet.SET_FLUID , "Polyvinyl Acetate").addCell().addFluid().setRGB(255, 153, 85).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)).constructMaterial();
+ public static Materials MethylAcetate = new MaterialBuilder(681, TextureSet.SET_FLUID , "Methyl Acetate").addCell().addFluid().setRGB(238, 198, 175).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials AllylChloride = new MaterialBuilder(682, TextureSet.SET_FLUID , "Allyl Chloride").addCell().addFluid().setRGB(135, 222, 170).setColor(Dyes.dyeCyan).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Chlorine, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials HydrochloricAcid = new MaterialBuilder(683, TextureSet.SET_FLUID , "Hydrochloric Acid").setName("HydrochloricAcid_GT5U").addCell().addFluid().setRGB(183, 200, 196).setColor(Dyes.dyeLightGray).setMaterialList(new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 1)).constructMaterial();
+ public static Materials HypochlorousAcid = new MaterialBuilder(684, TextureSet.SET_FLUID , "Hypochlorous Acid").addCell().addFluid().setRGB(111, 138, 145).setColor(Dyes.dyeGray).setMaterialList(new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 1), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials SodiumOxide = new MaterialBuilder(744, TextureSet.SET_DULL , "Sodium Oxide").setName("SodiumOxide").addDustItems().setRGB(255, 255, 235).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Sodium, 2), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials SodiumHydroxide = new MaterialBuilder(685, TextureSet.SET_DULL , "Sodium Hydroxide").setName("SodiumHydroxide_GT5U").addDustItems().setRGB(0, 51, 128).setColor(Dyes.dyeBlue).setMaterialList(new MaterialStack(Sodium, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)).constructMaterial();
+ public static Materials Benzene = new MaterialBuilder(686, TextureSet.SET_FLUID , "Benzene").addCell().addFluid().setRGB(26, 26, 26).setColor(Dyes.dyeGray).setFuelType(MaterialBuilder.GAS).setFuelPower(360).setMaterialList(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Phenol = new MaterialBuilder(687, TextureSet.SET_FLUID , "Phenol").addCell().addFluid().setRGB(120, 68, 33).setColor(Dyes.dyeBrown).setFuelType(MaterialBuilder.GAS).setFuelPower(288).setMaterialList(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Cumene = new MaterialBuilder(688, TextureSet.SET_FLUID , "Isopropylbenzene").addCell().addFluid().setRGB(85, 34, 0).setColor(Dyes.dyeBrown).setMaterialList(new MaterialStack(Carbon, 9), new MaterialStack(Hydrogen, 12)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials PhosphoricAcid = new MaterialBuilder(689, TextureSet.SET_FLUID , "Phosphoric Acid").setName("PhosphoricAcid_GT5U").addCell().addFluid().setRGB(220, 220, 0).setColor(Dyes.dyeYellow).setMaterialList(new MaterialStack(Hydrogen, 3), new MaterialStack(Phosphorus, 1), new MaterialStack(Oxygen, 4)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials SaltWater = new MaterialBuilder(692, TextureSet.SET_FLUID , "Salt Water").addCell().addFluid().setRGB(0, 0, 200).setColor(Dyes.dyeBlue).constructMaterial();
+ public static Materials IronIIIChloride = new MaterialBuilder(693, TextureSet.SET_FLUID , "Iron III Chloride").setName("IronIIIChloride").addCell().addFluid().setRGB(22, 21, 14).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Chlorine, 3), new MaterialStack(Iron, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials LifeEssence = new MaterialBuilder(694, TextureSet.SET_FLUID , "Life").setName("lifeessence").addCell().addFluid().setFuelPower(100).setFuelType(5).setRGB(110, 3, 3).setColor(Dyes.dyeRed).setMaterialList().constructMaterial();
+
+ //Roasted Ore Dust
+ public static Materials RoastedCopper = new MaterialBuilder(546, TextureSet.SET_DULL , "Roasted Copper").setName("RoastedCopper").addDustItems().setRGB(77, 18, 18).constructMaterial();
+ public static Materials RoastedAntimony = new MaterialBuilder(547, TextureSet.SET_DULL , "Roasted Antimony").setName("RoastedAntimony").addDustItems().setRGB(196, 178, 194).constructMaterial();
+ public static Materials RoastedIron = new MaterialBuilder(548, TextureSet.SET_DULL , "Roasted Iron").setName("RoastedIron").addDustItems().setRGB(148, 98, 98).addOreItems().constructMaterial();
+ public static Materials RoastedNickel = new MaterialBuilder(549, TextureSet.SET_METALLIC, "Roasted Nickel").setName("RoastedNickel").addDustItems().setRGB(70, 140, 45).addOreItems().constructMaterial();
+ public static Materials RoastedZinc = new MaterialBuilder(550, TextureSet.SET_DULL , "Roasted Zinc").setName("RoastedZinc").addDustItems().setRGB(209, 209, 209).constructMaterial();
+ public static Materials RoastedCobalt = new MaterialBuilder(551, TextureSet.SET_METALLIC, "Roasted Cobalt").setName("RoastedCobalt").addDustItems().setRGB(8, 64, 9).constructMaterial();
+ public static Materials RoastedArsenic = new MaterialBuilder(552, TextureSet.SET_SHINY , "Roasted Arsenic").setName("RoastedArsenic").addDustItems().setRGB(240, 240, 240).constructMaterial();
+ public static Materials RoastedLead = new MaterialBuilder(553, TextureSet.SET_SHINY , "Roasted Lead").setName("RoastedLead").addDustItems().setRGB(168, 149, 43).constructMaterial();
+
+ //Silicon Line
+ public static Materials SiliconSG = new Materials( 856, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 80, 80, 100, 0, "SiliconSolarGrade" , "Silicon Solar Grade (Poly SI)" , 0, 0, 2273, 2273, true, false, 1, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.TENEBRAE, 2))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials CalciumDisilicide = new Materials( 971, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 180, 180, 180, 0, "CalciumDisilicide" , "Calcium Disilicide" , 0, 0, 1313, -1, false, false, 1, 1, 1, Dyes.dyeGray ,1 , Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Silicon, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.ORDO, 1)));//CaSi2
+ public static Materials SiliconTetrafluoride = new MaterialBuilder( 967, TextureSet.SET_FLUID , "Silicon Tetrafluoride" ).setName("SiliconTetrafluoride").addCell().addGas().setTransparent(true).setRGB(200, 200, 200).setColor(Dyes.dyeWhite).setMeltingPoint(178).setMaterialList(new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 4)).setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))).constructMaterial();//SIF4
+ public static Materials SiliconTetrachloride = new MaterialBuilder( 968, TextureSet.SET_FLUID , "Silicon Tetrachloride").setName("SiliconTetrachloride").addCell().addFluid().setRGB(220, 220, 220).setColor(Dyes.dyeWhite).setMeltingPoint(204).setMaterialList(new MaterialStack(Silicon, 1), new MaterialStack(Chlorine, 4)).setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))).constructMaterial();//SICL4
+ public static Materials Trichlorosilane = new MaterialBuilder( 972, TextureSet.SET_FLUID , "Trichlorosilane" ).setName("Trichlorosilane" ).addCell().addFluid().setRGB( 255, 255, 255).setColor(Dyes.dyeWhite).setMeltingPoint(139).setMaterialList(new MaterialStack(Hydrogen, 1), new MaterialStack(Silicon, 1), new MaterialStack(Chlorine, 3)).setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))).constructMaterial();//HSICL3
+ public static Materials Hexachlorodisilane = new MaterialBuilder( 973, TextureSet.SET_FLUID , "Hexachlorodisilane").setName("Hexachlorodisilane" ).addCell().addFluid().setRGB( 255, 255, 255).setColor(Dyes.dyeWhite).setMeltingPoint(272).setExtraData(1).setMaterialList(new MaterialStack(Silicon, 2), new MaterialStack(Chlorine, 6)).setAspects(Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).constructMaterial();//SI2CL6
+ public static Materials Dichlorosilane = new MaterialBuilder( 799, TextureSet.SET_FLUID , "Dichlorosilane").setName("Dichlorosilane").addCell().addGas().setTransparent(true).setRGB( 255, 255, 255).setColor(Dyes.dyeWhite).setMeltingPoint(151).setExtraData(1).setMaterialList(new MaterialStack(Silicon, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Chlorine, 2)).setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))).constructMaterial();//SIH2CL2
+ public static Materials Silane = new MaterialBuilder( 798, TextureSet.SET_FLUID , "Silane").setName( "Silane").addCell().addGas().setRGB( 255, 255, 255).setColor(Dyes.dyeWhite).setMeltingPoint(88).setMaterialList(new MaterialStack(Silicon, 1), new MaterialStack(Hydrogen, 4)).setAspects(Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).constructMaterial();//SIH4
+ public static Materials Calciumhydride = new Materials( 797, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 220, 220, 220, 0, "CalciumHydride" , "Calcium Hydride" , 0, 0, 1089, -1, false, false, 1, 1, 1, Dyes.dyeGray ,1 , Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Hydrogen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.ORDO, 1)));//CaH2
+ public static Materials AluminiumFluoride = new Materials( 969, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Aluminiumfluoride" , "Aluminium Fluoride" , 0, 0, 1533, -1, false, false, 1, 1, 1, Dyes.dyeWhite ,1 , Arrays.asList(new MaterialStack(Aluminium, 1), new MaterialStack(Fluorine, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.ORDO, 1)));//ALF3
+
+ public static Materials SolderingAlloy = new Materials( 314, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 220, 220, 230, 0, "SolderingAlloy" , "Soldering Alloy" , 0, 0, 400, 400, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 9), new MaterialStack(Antimony, 1)));
+ public static Materials GalliumArsenide = new Materials( 980, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 160, 160, 160, 0, "GalliumArsenide" , "Gallium Arsenide" , 0, 0, -1, 1200, true, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Arsenic, 1), new MaterialStack(Gallium, 1)));
+ public static Materials IndiumGalliumPhosphide = new Materials( 981, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 160, 140, 190, 0, "IndiumGalliumPhosphide" , "Indium Gallium Phosphide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Indium, 1), new MaterialStack(Gallium, 1), new MaterialStack(Phosphorus, 1)));
+ public static Materials Spessartine = new Materials( 838, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 100, 100, 0, "Spessartine" , "Spessartine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Manganese, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12)));
+ public static Materials Sphalerite = new Materials( 839, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sphalerite" , "Sphalerite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Sulfur, 1)));
+ public static Materials StainlessSteel = new Materials( 306, TextureSet.SET_SHINY , 7.0F, 480, 4, 1|2 |64|128 , 200, 200, 220, 0, "StainlessSteel" , "Stainless Steel" , 0, 0, -1, 1700, true, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Iron, 6), new MaterialStack(Chrome, 1), new MaterialStack(Manganese, 1), new MaterialStack(Nickel, 1)));
+ public static Materials Steel = new Materials( 305, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |64|128 , 128, 128, 128, 0, "Steel" , "Steel" , 0, 0, 1811, 1000, true, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 50), new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1)));
+ public static Materials Stibnite = new Materials( 945, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 70, 70, 70, 0, "Stibnite" , "Stibnite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Antimony, 2), new MaterialStack(Sulfur, 3)));
+ public static Materials SulfuricAcid = new Materials( 720, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 128, 0, 0, "SulfuricAcid" , "Sulfuric Acid" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)));
+ public static Materials Tanzanite = new Materials( 508, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 64, 0, 200, 127, "Tanzanite" , "Tanzanite" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyePurple , 0, Arrays.asList(new MaterialStack(Calcium, 2), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 13)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3)));
+ public static Materials Tetrahedrite = new Materials( 840, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 200, 32, 0, 0, "Tetrahedrite" , "Tetrahedrite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Copper, 3), new MaterialStack(Antimony, 1), new MaterialStack(Sulfur, 3), new MaterialStack(Iron, 1))); //Cu3SbS3 + x(Fe,Zn)6Sb2S9
+ public static Materials TinAlloy = new Materials( 363, TextureSet.SET_METALLIC , 6.5F, 96, 2, 1|2 |64|128 , 200, 200, 200, 0, "TinAlloy" , "Tin Alloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1)));
+ public static Materials Topaz = new Materials( 507, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 255, 128, 0, 127, "Topaz" , "Topaz" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeOrange , 0, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4)));
+ public static Materials Tungstate = new Materials( 841, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 55, 50, 35, 0, "Tungstate" , "Tungstate" , 0, 0, 2500, 2500, true, false, 4, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Lithium, 2), new MaterialStack(Oxygen, 4)));
+ public static Materials Ultimet = new Materials( 344, TextureSet.SET_SHINY , 9.0F, 2048, 4, 1|2 |64|128 , 180, 180, 230, 0, "Ultimet" , "Ultimet" , 0, 0, 2700, 2700, true, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Cobalt, 5), new MaterialStack(Chrome, 2), new MaterialStack(Nickel, 1), new MaterialStack(Molybdenum, 1))); // 54% Cobalt, 26% Chromium, 9% Nickel, 5% Molybdenum, 3% Iron, 2% Tungsten, 0.8% Manganese, 0.3% Silicon, 0.08% Nitrogen and 0.06% Carbon
+ public static Materials Uraninite = new Materials( 922, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 35, 35, 35, 0, "Uraninite" , "Uraninite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Uranium, 1), new MaterialStack(Oxygen, 2)));
+ public static Materials Uvarovite = new Materials( 842, TextureSet.SET_DIAMOND , 1.0F, 0, 2, 1 |8 , 180, 255, 180, 0, "Uvarovite" , "Uvarovite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Chrome, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12)));
+ public static Materials VanadiumGallium = new Materials( 357, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |128 , 128, 128, 140, 0, "VanadiumGallium" , "Vanadium-Gallium" , 0, 0, 4500, 4500, true, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Vanadium, 3), new MaterialStack(Gallium, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Wood = new Materials( 809, TextureSet.SET_WOOD , 2.0F, 16, 0, 1|2 |64|128 , 100, 50, 0, 0, "Wood" , "Wood" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ARBOR, 2)));
+ public static Materials WroughtIron = new Materials( 304, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |64|128 , 200, 180, 180, 0, "WroughtIron" , "Wrought Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , 2, Collections.singletonList(new MaterialStack(Iron, 1)));
+ public static Materials Wulfenite = new Materials( 882, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 255, 128, 0, 0, "Wulfenite" , "Wulfenite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Lead, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4)));
+ public static Materials YellowLimonite = new Materials( 931, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 200, 0, 0, "YellowLimonite" , "Yellow Limonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))); // FeO(OH) + a bit of Ni and Co
+ public static Materials YttriumBariumCuprate = new Materials( 358, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 , 80, 64, 70, 0, "YttriumBariumCuprate" , "Yttrium Barium Cuprate" , 0, 0, 4500, 4500, true, false, 1, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Yttrium, 1), new MaterialStack(Barium, 2), new MaterialStack(Copper, 3), new MaterialStack(Oxygen, 7))).disableAutoGeneratedVacuumFreezerRecipe();
+
+ /**
+ * Second Degree Compounds
+ */
+ public static Materials WoodSealed = new Materials( 889, TextureSet.SET_WOOD , 3.0F, 24, 0, 1|2 |64|128 , 80, 40, 0, 0, "WoodSealed" , "Sealed Wood" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 0, Collections.singletonList(new MaterialStack(Wood, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.FABRICO, 1)));
+ public static Materials LiveRoot = new Materials( 832, TextureSet.SET_WOOD , 1.0F, 0, 1, 1 , 220, 200, 0, 0, "LiveRoot" , "Liveroot" , 5, 16, -1, 0, false, false, 2, 4, 3, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Wood, 3), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.VICTUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1)));
+ public static Materials IronWood = new Materials( 338, TextureSet.SET_WOOD , 6.0F, 384, 2, 1|2 |64|128 , 150, 140, 110, 0, "IronWood" , "Ironwood" , 5, 8, -1, 0, false, false, 2, 19, 18, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 9), new MaterialStack(LiveRoot, 9), new MaterialStack(Gold, 1)));
+ public static Materials Glass = new Materials( 890, TextureSet.SET_GLASS , 1.0F, 4, 0, 1 |4 , 250, 250, 250, 220, "Glass" , "Glass" , 0, 0, 1500, 0, false, true, 1, 1, 1, Dyes.dyeWhite , 2, Collections.singletonList(new MaterialStack(SiliconDioxide, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.VITREUS, 2)));
+ public static Materials BorosilicateGlass = new MaterialBuilder(611, TextureSet.SET_GLASS , "Borosilicate Glass").addDustItems().addMetalItems().setRGB(230, 243, 230).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Boron, 1), new MaterialStack(Glass, 7)).addCentrifugeRecipe().constructMaterial();
+ public static Materials Perlite = new Materials( 925, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 30, 20, 30, 0, "Perlite" , "Perlite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1)));
+ public static Materials Borax = new Materials( 941, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Borax" , "Borax" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Boron, 4), new MaterialStack(Oxygen, 7), new MaterialStack(Water, 10)));
+ public static Materials Lignite = new Materials( 538, TextureSet.SET_LIGNITE , 1.0F, 0, 0, 1 |4|8 , 100, 70, 70, 0, "Lignite" , "Lignite Coal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 3), new MaterialStack(Water, 1)));
+ public static Materials Olivine = new Materials( 505, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 150, 255, 150, 127, "Olivine" , "Olivine" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(Magnesium, 2), new MaterialStack(Iron, 1), new MaterialStack(SiliconDioxide, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2)));
+ public static Materials Opal = new Materials( 510, TextureSet.SET_OPAL , 7.0F, 256, 2, 1 |4|8 |64 , 0, 0, 255, 0, "Opal" , "Opal" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue , 1, Collections.singletonList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3)));
+ public static Materials Amethyst = new Materials( 509, TextureSet.SET_FLINT , 7.0F, 256, 3, 1 |4|8 |64 , 210, 50, 210, 127, "Amethyst" , "Amethyst" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4)));
+ public static Materials Redstone = new Materials( 810, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 200, 0, 0, 0, "Redstone" , "Redstone" , 0, 0, 500, 0, false, false, 3, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Pyrite, 5), new MaterialStack(Ruby, 1), new MaterialStack(Mercury, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2)));
+ public static Materials Lapis = new Materials( 526, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 70, 70, 220, 0, "Lapis" , "Lapis" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Lazurite, 12), new MaterialStack(Sodalite, 2), new MaterialStack(Pyrite, 1), new MaterialStack(Calcite, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.SENSUS, 1)));
+ public static Materials Blaze = new Materials( 801, TextureSet.SET_POWDER , 2.0F, 16, 1, 1 |64 , 255, 200, 0, 0, "Blaze" , "Blaze" , 0, 0, 6400, 0, false, false, 2, 3, 2, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(DarkAsh, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 4)));
+ public static Materials EnderPearl = new Materials( 532, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 108, 220, 200, 0, "EnderPearl" , "Enderpearl" , 0, 0, -1, 0, false, false, 1, 16, 10, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Beryllium, 1), new MaterialStack(Potassium, 4), new MaterialStack(Nitrogen, 5), new MaterialStack(Magic, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2)));
+ public static Materials EnderEye = new Materials( 533, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 160, 250, 230, 0, "EnderEye" , "Endereye" , 5, 10, -1, 0, false, false, 1, 2, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(EnderPearl, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 4), new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 2)));
+ public static Materials Flint = new Materials( 802, TextureSet.SET_FLINT , 2.5F, 128, 1, 1 |64 , 0, 32, 64, 0, "Flint" , "Flint" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Collections.singletonList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1)));
+ public static Materials Diatomite = new Materials( 948, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 225, 225, 225, 0, "Diatomite" , "Diatomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Flint, 8), new MaterialStack(BandedIron, 1), new MaterialStack(Sapphire, 1)));
+ public static Materials VolcanicAsh = new Materials( 940, TextureSet.SET_FLINT , 1.0F, 0, 0, 1 , 60, 50, 50, 0, "VolcanicAsh" , "Volcanic Ashes" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Flint, 6), new MaterialStack(Iron, 1), new MaterialStack(Magnesium, 1)));
+ public static Materials Niter = new Materials( 531, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |4|8 , 255, 200, 200, 0, "Niter" , "Niter" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Collections.singletonList(new MaterialStack(Saltpeter, 1)));
+ public static Materials Pyrotheum = new Materials( 843, TextureSet.SET_FIERY , 1.0F, 0, 1, 1 , 255, 128, 0, 0, "Pyrotheum" , "Pyrotheum" , 2, 62, -1, 0, false, false, 2, 3, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Coal, 1), new MaterialStack(Redstone, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1)));
+ public static Materials Cryotheum = new Materials( 898, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 , 0, 148, 203, 0, "Cryotheum" , "Cryotheum" , 2, 62, -1, 0, false, false, 2, 3, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Saltpeter, 1), new MaterialStack(Redstone, 1), new MaterialStack(Snow, 1), new MaterialStack(Blizz, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1), new TC_AspectStack(TC_Aspects.GELUM, 1)));
+ public static Materials HydratedCoal = new Materials( 818, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 70, 70, 100, 0, "HydratedCoal" , "Hydrated Coal" , 0, 0, -1, 0, false, false, 1, 9, 8, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Coal, 8), new MaterialStack(Water, 1)));
+ public static Materials Apatite = new Materials( 530, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 200, 200, 255, 0, "Apatite" , "Apatite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Calcium, 5), new MaterialStack(Phosphate, 3), new MaterialStack(Chlorine, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.MESSIS, 2)));
+ public static Materials Alumite = new Materials( 400, TextureSet.SET_METALLIC , 5.0F, 768, 2, 1|2 |64|128 , 255, 105, 180, 0, "Alumite" , "Alumite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Aluminium, 5), new MaterialStack(Steel, 2), new MaterialStack(Obsidian, 2)), Collections.singletonList(new TC_AspectStack(TC_Aspects.STRONTIO, 2)));
+ public static Materials Manyullyn = new Materials( 386, TextureSet.SET_SHINY , 25.0F, 2048, 5, 1|2 |8 |64|128 , 154, 76, 185, 0, "Manyullyn" , "Manyullyn" , 0, 0, 3600, 3600, true, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Ardite, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Steeleaf = new Materials( 339, TextureSet.SET_LEAF , 8.0F, 768, 3, 1|2 |64|128 , 50, 127, 50, 0, "Steeleaf" , "Steeleaf" , 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 2), new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1)));
+ public static Materials Knightmetal = new Materials( 362, TextureSet.SET_METALLIC , 8.0F, 1024, 3, 1|2 |64|128 , 210, 240, 200, 0, "Knightmetal" , "Knightmetal" , 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Steel, 2), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 1), new TC_AspectStack(TC_Aspects.METALLUM, 2)));
+ public static Materials SterlingSilver = new Materials( 350, TextureSet.SET_SHINY , 13.0F, 128, 2, 1|2 |64|128 , 250, 220, 225, 0, "SterlingSilver" , "Sterling Silver" , 0, 0, -1, 1700, true, false, 4, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Silver, 4)));
+ public static Materials RoseGold = new Materials( 351, TextureSet.SET_SHINY , 14.0F, 128, 2, 1|2 |64|128 , 255, 230, 30, 0, "RoseGold" , "Rose Gold" , 0, 0, -1, 1600, true, false, 4, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Gold, 4)));
+ public static Materials BlackBronze = new Materials( 352, TextureSet.SET_DULL , 12.0F, 256, 2, 1|2 |64|128 , 100, 50, 125, 0, "BlackBronze" , "Black Bronze" , 0, 0, -1, 2000, true, false, 4, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Gold, 1), new MaterialStack(Silver, 1), new MaterialStack(Copper, 3)));
+ public static Materials BismuthBronze = new Materials( 353, TextureSet.SET_DULL , 8.0F, 256, 2, 1|2 |64|128 , 100, 125, 125, 0, "BismuthBronze" , "Bismuth Bronze" , 0, 0, -1, 1100, true, false, 4, 1, 1, Dyes.dyeCyan , 2, Arrays.asList(new MaterialStack(Bismuth, 1), new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3)));
+ public static Materials BlackSteel = new Materials( 334, TextureSet.SET_METALLIC , 6.5F, 768, 3, 1|2 |64|128 , 100, 100, 100, 0, "BlackSteel" , "Black Steel" , 0, 0, -1, 1200, true, false, 4, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(BlackBronze, 1), new MaterialStack(Steel, 3))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials RedSteel = new Materials( 348, TextureSet.SET_METALLIC , 7.0F, 896, 4, 1|2 |64|128 , 140, 100, 100, 0, "RedSteel" , "Red Steel" , 0, 0, -1, 1300, true, false, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(SterlingSilver, 1), new MaterialStack(BismuthBronze, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4)));
+ public static Materials BlueSteel = new Materials( 349, TextureSet.SET_METALLIC , 7.5F, 1024, 4, 1|2 |64|128 , 100, 100, 140, 0, "BlueSteel" , "Blue Steel" , 0, 0, -1, 1400, true, false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(RoseGold, 1), new MaterialStack(Brass, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4)));
+ public static Materials DamascusSteel = new Materials( 335, TextureSet.SET_METALLIC , 8.0F, 1280, 3, 1|2 |64|128 , 110, 110, 110, 0, "DamascusSteel" , "Damascus Steel" , 0, 0, 2000, 1500, true, false, 4, 1, 1, Dyes.dyeGray , 2, Collections.singletonList(new MaterialStack(Steel, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials TungstenSteel = new Materials( 316, TextureSet.SET_METALLIC , 8.0F, 2560, 4, 1|2 |64|128 , 100, 100, 160, 0, "TungstenSteel" , "Tungstensteel" , 0, 0, 4000, 4000, true, false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials NitroCoalFuel = new Materials( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 50, 70, 50, 0, "NitroCoalFuel" , "Nitro-Coalfuel" , 0, 48, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(CoalFuel, 4)));
+ public static Materials NitroFuel = new Materials( 709, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 200, 255, 0, 0, "NitroFuel" , "Cetane-Boosted Diesel" , 0, 1000, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime );
+ public static Materials RedAlloy = new Materials( 308, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 200, 0, 0, 0, "RedAlloy" , "Red Alloy" , 0, 0, 500, 0, false, false, 3, 5, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Redstone, 4)), Collections.singletonList(new TC_AspectStack(TC_Aspects.MACHINA, 3)));
+ public static Materials CobaltBrass = new Materials( 343, TextureSet.SET_METALLIC , 8.0F, 256, 2, 1|2 |64|128 , 180, 180, 160, 0, "CobaltBrass" , "Cobalt Brass" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Brass, 7), new MaterialStack(Aluminium, 1), new MaterialStack(Cobalt, 1)));
+ public static Materials TricalciumPhosphate = new Materials( 534, TextureSet.SET_FLINT , 1.0F, 0, 2, 1|4|8|16 , 255, 255, 0, 0, "TricalciumPhosphate" , "Tricalcium Phosphate" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Phosphate, 2)));
+ public static Materials Basalt = new Materials( 844, TextureSet.SET_ROUGH , 1.0F, 64, 1, 1 |64|128 , 30, 20, 20, 0, "Basalt" , "Basalt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Olivine, 1), new MaterialStack(Calcite, 3), new MaterialStack(Flint, 8), new MaterialStack(DarkAsh, 4)), Collections.singletonList(new TC_AspectStack(TC_Aspects.TENEBRAE, 1))).disableAutoGeneratedRecycleRecipes();
+ public static Materials GarnetRed = new Materials( 527, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 80, 80, 127, "GarnetRed" , "Red Garnet" , 0, 0, -1, 0, false, true, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Pyrope, 3), new MaterialStack(Almandine, 5), new MaterialStack(Spessartine, 8)), Collections.singletonList(new TC_AspectStack(TC_Aspects.VITREUS, 3)));
+ public static Materials GarnetYellow = new Materials( 528, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 200, 80, 127, "GarnetYellow" , "Yellow Garnet" , 0, 0, -1, 0, false, true, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Andradite, 5), new MaterialStack(Grossular, 8), new MaterialStack(Uvarovite, 3)), Collections.singletonList(new TC_AspectStack(TC_Aspects.VITREUS, 3)));
+ public static Materials Marble = new Materials( 845, TextureSet.SET_FINE , 1.0F, 16, 1, 1 |64|128 , 200, 200, 200, 0, "Marble" , "Marble" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Calcite, 7)), Collections.singletonList(new TC_AspectStack(TC_Aspects.PERFODIO, 1)));
+ public static Materials Sugar = new Materials( 803, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Sugar" , "Sugar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 25)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.AER, 1)));
+ public static Materials Thaumium = new Materials( 330, TextureSet.SET_METALLIC , 12.0F, 256, 3, 1|2 |64|128 , 150, 100, 200, 0, "Thaumium" , "Thaumium" , 0, 0, -1, 0, false, false, 5, 2, 1, Dyes.dyePurple , 0, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1)));
+ public static Materials Vinteum = new Materials( 529, TextureSet.SET_METALLIC , 10.0F, 128, 3, 1|2|4|8 |64|128 , 100, 200, 255, 0, "Vinteum" , "Vinteum" , 5, 32, -1, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , 2, Collections.singletonList(new MaterialStack(Thaumium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1)));
+ public static Materials Vis = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, 0 , 128, 0, 255, 0, "Vis" , "Vis" , 5, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Collections.singletonList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AURAM, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1)));
+ public static Materials Redrock = new Materials( 846, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 255, 80, 50, 0, "Redrock" , "Redrock" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Calcite, 2), new MaterialStack(Flint, 1), new MaterialStack(Clay, 1)));
+ public static Materials PotassiumFeldspar = new Materials( 847, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 120, 40, 40, 0, "PotassiumFeldspar" , "Potassium Feldspar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 0, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 8)));
+ public static Materials Biotite = new Materials( 848, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 , 20, 30, 20, 0, "Biotite" , "Biotite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 3), new MaterialStack(Aluminium, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 10)));
+ public static Materials GraniteBlack = new Materials( 849, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 10, 10, 10, 0, "GraniteBlack" , "Black Granite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1)));
+ public static Materials GraniteRed = new Materials( 850, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 255, 0, 128, 0, "GraniteRed" , "Red Granite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeMagenta , 0, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), Collections.singletonList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1)));
+ public static Materials Chrysotile = new Materials( 912, TextureSet.SET_DULL , 32.0F, 10240, 3, 1|2 |8 |64|128 , 110, 140, 110, 0, "Chrysotile" , "Chrysotile" , 0, 0, 9400, 9400, true, false, 1, 1, 1, Dyes.dyeWhite , 2, Collections.singletonList(new MaterialStack(Asbestos, 1))).disableAutoGeneratedBlastFurnaceRecipes().setTurbineMultipliers(280, 280, 1);
+ public static Materials Realgar = new Materials( 913, TextureSet.SET_DULL , 1.0F, 32, 1, 1|2 |8 |64|128 , 140, 100, 100, 0, "Realgar" , "Realgar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur,4)));
+ public static Materials VanadiumMagnetite = new Materials( 923, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 35, 35, 60, 0, "VanadiumMagnetite" , "Vanadium Magnetite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Vanadium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))); // Mixture of Fe3O4 and V2O5
+ public static Materials BasalticMineralSand = new Materials( 935, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 50, 40, 0, "BasalticMineralSand" , "Basaltic Mineral Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Basalt, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1)));
+ public static Materials GraniticMineralSand = new Materials( 936, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 60, 60, 0, "GraniticMineralSand" , "Granitic Mineral Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(GraniteBlack, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1)));
+ public static Materials GarnetSand = new Materials( 938, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "GarnetSand" , "Garnet Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(GarnetRed, 1), new MaterialStack(GarnetYellow, 1)));
+ public static Materials QuartzSand = new Materials( 939, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 194, 178, 128, 0, "QuartzSand" , "Quartz Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(CertusQuartz, 1), new MaterialStack(Quartzite, 1)));
+ public static Materials Bastnasite = new Materials( 905, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 200, 110, 45, 0, "Bastnasite" , "Bastnasite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Cerium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Fluorine, 1), new MaterialStack(Oxygen, 3))); // (Ce, La, Y)CO3F
+ public static Materials Pentlandite = new Materials( 909, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 165, 150, 5, 0, "Pentlandite" , "Pentlandite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Nickel, 9), new MaterialStack(Sulfur, 8))); // (Fe,Ni)9S8
+ public static Materials Spodumene = new Materials( 920, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 190, 170, 170, 0, "Spodumene" , "Spodumene" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6))); // LiAl(SiO3)2
+ public static Materials Pollucite = new Materials( 919, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 210, 210, 0, "Pollucite" , "Pollucite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Caesium, 2), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 4), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 12))); // (Cs,Na)2Al2Si4O12 2H2O (also a source of Rb)
+ public static Materials Tantalite = new Materials( 921, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 145, 80, 40, 0, "Tantalite" , "Tantalite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Tantalum, 2), new MaterialStack(Oxygen, 6))); // (Fe, Mn)Ta2O6 (also source of Nb)
+ public static Materials Lepidolite = new Materials( 907, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 240, 50, 140, 0, "Lepidolite" , "Lepidolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Lithium, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))); // K(Li,Al,Rb)3(Al,Si)4O10(F,OH)2
+ public static Materials Glauconite = new Materials( 933, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite" , "Glauconite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))); // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2
+ public static Materials GlauconiteSand = new Materials( 949, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "GlauconiteSand" , "Glauconite Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))); // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2
+ public static Materials Vermiculite = new Materials( 932, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 180, 15, 0, "Vermiculite" , "Vermiculite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 12))); // (Mg+2, Fe+2, Fe+3)3 [(AlSi)4O10] (OH)2 4H2O)
+ public static Materials Bentonite = new Materials( 927, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 245, 215, 210, 0, "Bentonite" , "Bentonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Magnesium, 6), new MaterialStack(Silicon, 12), new MaterialStack(Hydrogen, 6), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 36))); // (Na,Ca)0.33(Al,Mg)2(Si4O10)(OH)2 nH2O
+ public static Materials FullersEarth = new Materials( 928, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 160, 160, 120, 0, "FullersEarth" , "Fullers Earth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 11))); // (Mg,Al)2Si4O10(OH) 4(H2O)
+ public static Materials Pitchblende = new Materials( 873, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 210, 0, 0, "Pitchblende" , "Pitchblende" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Uraninite, 3), new MaterialStack(Thorium, 1), new MaterialStack(Lead, 1)));
+ public static Materials Monazite = new Materials( 520, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 50, 70, 50, 0, "Monazite" , "Monazite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(RareEarth, 1), new MaterialStack(Phosphate, 1))); // Wikipedia: (Ce, La, Nd, Th, Sm, Gd)PO4 Monazite also smelt-extract to Helium, it is brown like the rare earth Item Monazite sand deposits are inevitably of the monazite-(Ce) composition. Typically, the lanthanides in such monazites contain about 45.8% cerium, about 24% lanthanum, about 17% neodymium, about 5% praseodymium, and minor quantities of samarium, gadolinium, and yttrium. Europium concentrations tend to be low, about 0.05% Thorium content of monazite is variable.
+ public static Materials Malachite = new Materials( 871, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 5, 95, 5, 0, "Malachite" , "Malachite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Copper, 2), new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 5))); // Cu2CO3(OH)2
+ public static Materials Mirabilite = new Materials( 900, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 250, 210, 0, "Mirabilite" , "Mirabilite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 4))); // Na2SO4 10H2O
+ public static Materials Mica = new Materials( 901, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 195, 195, 205, 0, "Mica" , "Mica" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))); // KAl2(AlSi3O10)(F,OH)2
+ public static Materials Trona = new Materials( 903, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 135, 135, 95, 0, "Trona" , "Trona" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 3), new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 6))); // Na3(CO3)(HCO3) 2H2O
+ public static Materials Barite = new Materials( 904, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 235, 255, 0, "Barite" , "Barite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Barium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)));
+ public static Materials Gypsum = new Materials( 934, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 250, 0, "Gypsum" , "Gypsum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4), new MaterialStack(Water, 2))); // CaSO4 2H2O
+ public static Materials Alunite = new Materials( 911, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 225, 180, 65, 0, "Alunite" , "Alunite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 14))); // KAl3(SO4)2(OH)6
+ public static Materials Dolomite = new Materials( 914, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |8 , 225, 205, 205, 0, "Dolomite" , "Dolomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Oxygen, 6))); // CaMg(CO3)2
+ public static Materials Wollastonite = new Materials( 915, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 240, 240, 0, "Wollastonite" , "Wollastonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3))); // CaSiO3
+ public static Materials Zeolite = new Materials( 916, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 230, 230, 0, "Zeolite" , "Zeolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Oxygen, 72))); // NaCa4(Si27Al9)O72
+ public static Materials Kyanite = new Materials( 924, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |8 , 110, 110, 250, 0, "Kyanite" , "Kyanite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 5))); // Al2SiO5
+ public static Materials Kaolinite = new Materials( 929, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 245, 235, 235, 0, "Kaolinite" , "Kaolinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 0, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))); // Al2Si2O5(OH)4
+ public static Materials Talc = new Materials( 902, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 90, 180, 90, 0, "Talc" , "Talc" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))); // H2Mg3(SiO3)4
+ public static Materials Soapstone = new Materials( 877, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 95, 145, 95, 0, "Soapstone" , "Soapstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))); // H2Mg3(SiO3)4
+ public static Materials Concrete = new Materials( 947, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 100, 100, 100, 0, "Concrete" , "Concrete" , 0, 0, 300, 0, false, false, 0, 1, 1, Dyes.dyeGray , 0, Collections.singletonList(new MaterialStack(Stone, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.TERRA, 1)));
+ public static Materials IronMagnetic = new Materials( 354, TextureSet.SET_MAGNETIC , 6.0F, 256, 2, 1|2 |64|128 , 200, 200, 200, 0, "IronMagnetic" , "Magnetic Iron" , 0, 0, -1, 0, false, false, 4, 51, 50, Dyes.dyeGray , 1, Collections.singletonList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1)));
+ public static Materials SteelMagnetic = new Materials( 355, TextureSet.SET_MAGNETIC , 6.0F, 512, 3, 1|2 |64|128 , 128, 128, 128, 0, "SteelMagnetic" , "Magnetic Steel" , 0, 0, 1000, 1000, true, false, 4, 51, 50, Dyes.dyeGray , 1, Collections.singletonList(new MaterialStack(Steel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 1)));
+ public static Materials NeodymiumMagnetic = new Materials( 356, TextureSet.SET_MAGNETIC , 7.0F, 512, 2, 1|2 |64|128 , 100, 100, 100, 0, "NeodymiumMagnetic" , "Magnetic Neodymium" , 0, 0, 1297, 1297, true, false, 4, 51, 50, Dyes.dyeGray , 1, Collections.singletonList(new MaterialStack(Neodymium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 3)));
+ public static Materials SamariumMagnetic = new Materials( 399, TextureSet.SET_MAGNETIC , 1.0F, 0, 2, 1|2 |64|128 , 255, 255, 204, 0, "SamariumMagnetic" , "Magnetic Samarium" , 0, 0, 1345, 1345, true, false, 4, 1, 1, Dyes.dyeWhite , 1, Collections.singletonList(new MaterialStack(Samarium, 1)),Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.MAGNETO,10)));
+ public static Materials TungstenCarbide = new Materials( 370, TextureSet.SET_METALLIC , 14.0F, 1280, 4, 1|2 |64|128 , 51, 0, 102, 0, "TungstenCarbide" , "Tungstencarbide" , 0, 0, 2460, 2460, true, false, 4, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Carbon, 1))).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials VanadiumSteel = new Materials( 371, TextureSet.SET_METALLIC , 3.0F, 1920, 3, 1|2 |64|128 , 192, 192, 192, 0, "VanadiumSteel" , "Vanadiumsteel" , 0, 0, 1453, 1453, true, false, 4, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Vanadium, 1), new MaterialStack(Chrome, 1), new MaterialStack(Steel, 7))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials HSSG = new Materials( 372, TextureSet.SET_METALLIC , 10.0F, 4000, 3, 1|2 |64|128 , 153, 153, 0, 0, "HSSG" , "HSS-G" , 0, 0, 4500, 4500, true, false, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(TungstenSteel, 5), new MaterialStack(Chrome, 1), new MaterialStack(Molybdenum, 2), new MaterialStack(Vanadium, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials HSSE = new Materials( 373, TextureSet.SET_METALLIC , 32.0F, 10240, 7, 1|2 |64|128 , 51, 102, 0, 0, "HSSE" , "HSS-E" , 0, 0, 5400, 5400, true, false, 4, 1, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(HSSG, 6), new MaterialStack(Cobalt, 1),new MaterialStack(Manganese, 1), new MaterialStack(Silicon, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials HSSS = new Materials( 374, TextureSet.SET_METALLIC , 32.0F, 10240, 8, 1|2 |64|128 , 102, 0, 51, 0, "HSSS" , "HSS-S" , 0, 0, 5400, 5400, true, false, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(HSSG, 6), new MaterialStack(Iridium, 2), new MaterialStack(Osmium, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials TPV = new Materials( 576, TextureSet.SET_METALLIC , 16.0F, 4000, 5, 1|2 |64|128 , 250, 170,250, 0, "TPVAlloy" , "TPV-Alloy" , 0, 0, 3000, 3000, true, false, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Titanium, 3), new MaterialStack(Platinum, 3), new MaterialStack(Vanadium, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials DilutedSulfuricAcid = new MaterialBuilder(640, TextureSet.SET_FLUID , "Diluted Sulfuric Acid").addCell().addFluid().setRGB(192, 120, 32).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(SulfuricAcid, 1)).constructMaterial();
+ public static Materials EpoxidFiberReinforced = new Materials( 610, TextureSet.SET_DULL ,3.0F, 64, 1, 1|2 |64|128 , 160, 112, 16, 0, "EpoxidFiberReinforced" , "Fiber-Reinforced Epoxy Resin" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 2, Collections.singletonList(new MaterialStack(Epoxid, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.MOTUS, 2)));
+ public static Materials SodiumCarbonate = new MaterialBuilder(695, TextureSet.SET_QUARTZ, "Sodium Carbonate").setToolSpeed(1.0F).setDurability(64).setToolQuality(1).addDustItems().setRGB(255, 255, 235).setColor(Dyes.dyeWhite).setBlastFurnaceTemp(851 ).setMeltingPoint(851 ).setBlastFurnaceRequired(false).setOreValue(1).setExtraData(1).setMaterialList(new MaterialStack(Sodium, 2), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3)).constructMaterial().disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials SodiumAluminate = new MaterialBuilder(696, TextureSet.SET_QUARTZ, "Sodium Aluminate").setToolSpeed(1.0F).setDurability(64).setToolQuality(1).addDustItems().setRGB(255, 235, 255).setColor(Dyes.dyeWhite).setBlastFurnaceTemp(1800).setMeltingPoint(1800).setBlastFurnaceRequired(false).setOreValue(1).setExtraData(0).setMaterialList(new MaterialStack(Sodium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Oxygen, 2)).constructMaterial().disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Aluminiumoxide = new MaterialBuilder(697, TextureSet.SET_QUARTZ, "Alumina").setToolSpeed(1.0F).setDurability(64).setToolQuality(1).addDustItems().setRGB(235, 255, 255).setColor(Dyes.dyeWhite).setBlastFurnaceTemp(2054).setMeltingPoint(2054).setBlastFurnaceRequired(true).setOreValue(1).setExtraData(0).setMaterialList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)).setAspects(Collections.singletonList(new TC_AspectStack(TC_Aspects.GELUM, 2))).constructMaterial().disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Aluminiumhydroxide = new MaterialBuilder(698, TextureSet.SET_QUARTZ, "Aluminium Hydroxide").setToolSpeed(1.0F).setDurability(64).setToolQuality(1).addDustItems().setRGB(235, 235, 255).setColor(Dyes.dyeWhite).setBlastFurnaceTemp(1200).setMeltingPoint(1200).setBlastFurnaceRequired(true).setOreValue(1).setExtraData(0).setMaterialList(new MaterialStack(Aluminium, 1), new MaterialStack(Oxygen, 3), new MaterialStack(Hydrogen, 3)).setAspects(Collections.singletonList(new TC_AspectStack(TC_Aspects.GELUM, 2))).constructMaterial().disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Cryolite = new MaterialBuilder(699, TextureSet.SET_QUARTZ, "Cryolite").setToolSpeed(1.0F).setDurability(64).setToolQuality(1).addOreItems().setRGB(191, 239, 255).setColor(Dyes.dyeLightBlue).setMeltingPoint(1012).setBlastFurnaceTemp(1012).setExtraData(0).setMaterialList(new MaterialStack(Sodium, 3), new MaterialStack(Aluminium, 1), new MaterialStack(Fluorine, 6)).constructMaterial().disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials RedMud = new MaterialBuilder(743, TextureSet.SET_FLUID, "Red Mud").addCell().addFluid().setRGB(140, 22, 22).setColor(Dyes.dyeRed).constructMaterial();
+
+ public static Materials Brick = new MaterialBuilder(625, TextureSet.SET_ROUGH , "Brick").addDustItems().setRGB(155, 86, 67).setColor(Dyes.dyeBrown).setExtraData(0).setMaterialList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 4), new MaterialStack(Oxygen, 11)).constructMaterial();
+ public static Materials Fireclay = new MaterialBuilder(626, TextureSet.SET_ROUGH , "Fireclay").addDustItems().setRGB(173, 160, 155).setExtraData(2).setColor(Dyes.dyeBrown).setMaterialList(new MaterialStack(Brick, 1)).constructMaterial();
+
+ // Polybenzimidazole stuff
+ public static Materials PotassiumNitrade = new MaterialBuilder(590, TextureSet.SET_DULL , "Potassium Nitrate").setName("PotassiumNitrate").addDustItems().setRGB(129, 34, 141).setColor(Dyes.dyePurple).setMaterialList(new MaterialStack(Potassium, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials ChromiumTrioxide = new MaterialBuilder(591, TextureSet.SET_DULL , "Chromium Trioxide").setName("Chromiumtrioxide").addDustItems().setRGB(255, 228, 225).setColor(Dyes.dyePink).setMaterialList(new MaterialStack(Chrome, 1), new MaterialStack(Oxygen, 3)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Nitrochlorobenzene = new MaterialBuilder(592, TextureSet.SET_FLUID , "2-Nitrochlorobenzene").addCell().addFluid().setRGB(143, 181, 26).setColor(Dyes.dyeLime).setMaterialList(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Chlorine, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2)).constructMaterial();
+ public static Materials Dimethylbenzene = new MaterialBuilder(593, TextureSet.SET_FLUID , "1,2-Dimethylbenzene").setName("Dimethylbenzene").addCell().addFluid().setRGB(102, 156, 64).setColor(Dyes.dyeLime).setMeltingPoint(248).setMaterialList(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 10)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Potassiumdichromate = new MaterialBuilder(594, TextureSet.SET_DULL , "Potassium Dichromate").setName("PotassiumDichromate").addDustItems().setRGB(255, 8, 127).setColor(Dyes.dyePink).setMaterialList(new MaterialStack(Potassium, 2), new MaterialStack(Chrome, 2), new MaterialStack(Oxygen, 7)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials PhthalicAcid = new MaterialBuilder(595, TextureSet.SET_FLUID , "Phthalic Acid").setName("phtalicacid").addCell().addFluid().setRGB(54, 133, 71).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 4)).constructMaterial();
+ public static Materials Dichlorobenzidine = new MaterialBuilder(596, TextureSet.SET_FLUID , "3,3-Dichlorobenzidine").addCell().addFluid().setRGB(161, 222, 166).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(Carbon, 12),new MaterialStack(Hydrogen, 10), new MaterialStack(Nitrogen, 2), new MaterialStack(Chlorine, 2)).constructMaterial();
+ public static Materials Diaminobenzidin = new MaterialBuilder(597, TextureSet.SET_FLUID , "3,3-Diaminobenzidine").addCell().addFluid().setRGB(51, 125, 89).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(Carbon, 12),new MaterialStack(Hydrogen, 14),new MaterialStack(Nitrogen, 4)).constructMaterial();
+ public static Materials Diphenylisophthalate = new MaterialBuilder(598, TextureSet.SET_FLUID , "Diphenyl Isophtalate").addCell().addFluid().setRGB(36, 110, 87).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(Carbon, 20),new MaterialStack(Hydrogen, 14),new MaterialStack(Oxygen, 4)).constructMaterial();
+ public static Materials Polybenzimidazole = new Materials(599, TextureSet.SET_DULL ,3.0F, 64, 1, 1|2 |64|128 , 45, 45, 45, 0, "Polybenzimidazole" , "Polybenzimidazole" , 0, 0, 1450, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Carbon, 20), new MaterialStack(Nitrogen, 4), new MaterialStack(Hydrogen, 12)), Arrays.asList(new TC_AspectStack(TC_Aspects.ORDO, 2),new TC_AspectStack(TC_Aspects.VOLATUS, 1)));
+
+ //Gasoline
+ public static Materials MTBEMixture = new MaterialBuilder(983, TextureSet.SET_FLUID , "MTBE Reaction Mixture").addCell().addGas().setRGB(255, 255, 255).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 12), new MaterialStack(Oxygen, 1)).constructMaterial();
+ public static Materials NitrousOxide = new MaterialBuilder(993, TextureSet.SET_FLUID , "Nitrous Oxide").addCell().addGas().setRGB(125, 200, 255).setColor(Dyes.dyeBlue).setMaterialList(new MaterialStack(Nitrogen, 2), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials AntiKnock = new MaterialBuilder(994, TextureSet.SET_FLUID , "Anti-Knock Agent").setName("EthylTertButylEther").addCell().addFluid().setRGB(255, 255, 255).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 14), new MaterialStack(Oxygen, 1)).constructMaterial();
+ public static Materials Octane = new MaterialBuilder(995, TextureSet.SET_FLUID , "Octane").addCell().addFluid().setRGB(255, 255, 255).setColor(Dyes.dyeWhite).setFuelType(MaterialBuilder.DIESEL).setFuelPower(80).setMaterialList(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 18)).constructMaterial();
+ public static Materials GasolineRaw = new MaterialBuilder(996, TextureSet.SET_FLUID , "Raw Gasoline").addCell().addFluid().setRGB(255,100,0).setColor(Dyes.dyeOrange).constructMaterial();
+ public static Materials GasolineRegular = new MaterialBuilder(997, TextureSet.SET_FLUID , "Gasoline").addCell().addFluid().setRGB(255,165,0).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.DIESEL).setFuelPower(576).constructMaterial();
+ public static Materials GasolinePremium = new MaterialBuilder(998, TextureSet.SET_FLUID , "High Octane Gasoline").addCell().addFluid().setRGB(255,165,0).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.DIESEL).setFuelPower(2500).constructMaterial();
+
+ //ADDED
+ public static Materials Electrotine = new Materials( 812, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |8 , 60, 180, 200, 0, "Electrotine" , "Electrotine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan , 0, Arrays.asList(new MaterialStack(Redstone, 1), new MaterialStack(Electrum, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 2)));
+ public static Materials Galgadorian = new Materials( 384, TextureSet.SET_METALLIC , 16.0F, 3600, 3, 1|2 |64|128 , 154, 105, 119, 0, "Galgadorian" , "Galgadorian" , 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyePink ).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials EnhancedGalgadorian = new Materials( 385, TextureSet.SET_METALLIC , 32.0F, 7200, 5, 1|2| 64|128 , 152, 93, 133, 0, "EnhancedGalgadorian" , "Enhanced Galgadorian" , 0, 0, 4500, 4500, true, false, 1, 1, 1, Dyes.dyePink ).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials BloodInfusedIron = new Materials( 977, TextureSet.SET_METALLIC , 10.0F, 384, 2, 1|2 |64|128 , 69, 9, 10, 0, "BloodInfusedIron" , "Blood Infused Iron" , 0, 0, 2400, 0, false, false, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1)));
+ public static Materials Shadow = new Materials( 368, TextureSet.SET_METALLIC , 32.0F, 8192, 4, 1|2 |8 |64|128 , 16, 3, 66, 0, "Shadow" , "Shadow Metal" , 0, 0, 1800, 1800, true, false, 3, 4, 3, Dyes.dyeBlue );
+
+ /**
+ * Galaxy Space 1.10 compat from Version 2.6
+ */
+ public static Materials Ledox = new Materials( 390, TextureSet.SET_SHINY , 15.0F, 1024, 4, 1|2 |8 |64|128 , 0, 116, 255, 0, "Ledox" , "Ledox" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeBlue );
+ public static Materials Quantium = new Materials( 391, TextureSet.SET_SHINY , 18.0F, 2048, 4, 1|2 |8 |64|128 , 0, 209, 11, 0, "Quantium" , "Quantium" , 0, 0, 9900, 9900, true, false, 4, 1, 1, Dyes.dyeLime ).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Mytryl = new Materials( 387, TextureSet.SET_SHINY , 8.0F, 512, 4, 1|2 |8 |64|128 , 242, 100, 4, 0, "Mytryl" , "Mytryl" , 0, 0, 3600, 3600, true, false, 4, 1, 1, Dyes.dyeOrange );
+ public static Materials BlackPlutonium = new Materials( 388, TextureSet.SET_DULL , 36.0F, 8192, 8, 1|2 |8 |64|128 , 50, 50, 50, 0, "BlackPlutonium" , "Black Plutonium" , 0, 0, 9000, 9000, true, false, 4, 1, 1, Dyes.dyeBlack ).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials CallistoIce = new Materials( 389, TextureSet.SET_SHINY , 9.0F, 1024, 4, 1|2 |8 |64|128 , 30, 177, 255, 0, "CallistoIce" , "Callisto Ice" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue );
+ public static Materials Duralumin = new Materials( 392, TextureSet.SET_SHINY , 16.0F, 512, 3, 1|2 |8 |64|128 , 235, 209, 160, 0, "Duralumin" , "Duralumin" , 0, 0, 1600, 1600, true, false, 4, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Aluminium, 6), new MaterialStack(Copper, 1), new MaterialStack(Manganese, 1), new MaterialStack(Magnesium, 1)));
+ public static Materials Oriharukon = new Materials( 393, TextureSet.SET_SHINY , 32.0F, 10240, 5, 1|2 |8 |32|64|128 , 103, 125, 104, 0, "Oriharukon" , "Oriharukon" , 0, 0, 5400, 5400, true, false, 4, 1, 1, Dyes.dyeLime , Element.Oh, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2),new TC_AspectStack(TC_Aspects.LUCRUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials MysteriousCrystal = new Materials( 398, TextureSet.SET_SHINY , 8.0F, 256, 6, 1|2 |8 |64|128 , 22, 133, 108, 0, "MysteriousCrystal" , "Mysterious Crystal" , 0, 0, 7200, 7200, true, false, 4, 1, 1, Dyes.dyeCyan ).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+
+ //\/HAD TO MOVE DOWN SECTION
+ public static Materials RedstoneAlloy = new Materials( 381, TextureSet.SET_METALLIC , 3.0F, 128, 2, 1|2 |64|128 , 181, 51, 51, 0, "RedstoneAlloy" , "Redstone Alloy" , 0, 0, 671, 1000, true, false, 1, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Redstone, 1), new MaterialStack(Silicon, 1), new MaterialStack(Coal, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials Soularium = new Materials( 379, TextureSet.SET_METALLIC , 8.0F, 256, 2, 1|2 |64|128 , 65, 46, 29, 0, "Soularium" , "Soularium" , 0, 0, 800, 1000, true, false, 3, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(SoulSand, 1), new MaterialStack(Gold, 1), new MaterialStack(Ash, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials ConductiveIron = new Materials( 369, TextureSet.SET_METALLIC , 6.0F, 256, 3, 1|2 |64|128 , 217, 178, 171, 0, "ConductiveIron" , "Conductive Iron" , 0, 0, -1, 1200, true, false, 4, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(RedstoneAlloy, 1), new MaterialStack(Iron, 1), new MaterialStack(Silver, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials ElectricalSteel = new Materials( 365, TextureSet.SET_METALLIC , 6.0F, 512, 2, 1|2 |64|128 , 185, 185, 185, 0, "ElectricalSteel" , "Electrical Steel" , 0, 0, 1811, 1000, true, false, 4, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Coal, 1), new MaterialStack(Silicon, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials EnergeticAlloy = new Materials( 366, TextureSet.SET_METALLIC , 12.0F, 1024, 3, 1|2 |64|128 , 255, 170, 81, 0, "EnergeticAlloy" , "Energetic Alloy" , 0, 0, -1, 2200, true, false, 3, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(ConductiveIron, 1), new MaterialStack(Gold, 1), new MaterialStack(BlackSteel, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials VibrantAlloy = new Materials( 367, TextureSet.SET_METALLIC , 18.0F, 4048, 4, 1|2 |64|128 , 157, 188, 53, 0, "VibrantAlloy" , "Vibrant Alloy" , 0, 0, 3300, 3300, true, false, 4, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(EnergeticAlloy, 1), new MaterialStack(EnderEye, 1), new MaterialStack(Chrome, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials PulsatingIron = new Materials( 378, TextureSet.SET_METALLIC , 6.0F, 256, 3, 1|2 |64|128 , 128, 246, 155, 0, "PulsatingIron" , "Pulsating Iron" , 0, 0, -1, 1800, true, false, 4, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(EnderPearl, 1), new MaterialStack(RedstoneAlloy, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials DarkSteel = new Materials( 364, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |64|128 , 80, 70, 80, 0, "DarkSteel" , "Dark Steel" , 0, 0, -1, 1800, true, false, 3, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(ElectricalSteel, 1), new MaterialStack(Coal, 1), new MaterialStack(Obsidian, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials EndSteel = new Materials( 401, TextureSet.SET_METALLIC , 12.0F, 2000, 4, 1|2 |64|128 , 223, 217, 165, 0, "EndSteel" , "End Steel" , 0, 0, 940, 3600, true, false, 3, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(DarkSteel, 1), new MaterialStack(Tungsten, 1), new MaterialStack(Endstone, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials CrudeSteel = new Materials( 402, TextureSet.SET_METALLIC , 2.0F, 64, 2, 1|2 |64|128 , 163, 158, 154, 0, "CrudeSteel" , "Clay Compound" , 0, 0, -1, 1000, false, false, 4, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Stone, 1), new MaterialStack(Clay, 1), new MaterialStack(Flint, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials CrystallineAlloy = new Materials( 403, TextureSet.SET_METALLIC , 18.0F, 768, 4, 1|2 |64|128 , 114, 197, 197, 0, "CrystallineAlloy" , "Crystalline Alloy" , 0, 0, 4500, 4500, true, false, 4, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Gold, 1), new MaterialStack(Diamond, 1), new MaterialStack(PulsatingIron, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials MelodicAlloy = new Materials( 404, TextureSet.SET_METALLIC , 24.0F, 1024, 5, 1|2 |64|128 , 136, 98, 136, 0, "MelodicAlloy" , "Melodic Alloy" , 0, 0, 5400, 5400, true, false, 4, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(EndSteel, 1), new MaterialStack(EnderEye, 1), new MaterialStack(Oriharukon, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials StellarAlloy = new Materials( 405, TextureSet.SET_METALLIC , 96.0F, 10240, 7, 1|2 |64|128 , 217, 220, 203, 0, "StellarAlloy" , "Stellar Alloy" , 0, 0, 7200, 7200, true, false, 4, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(NetherStar, 1), new MaterialStack(MelodicAlloy, 1), new MaterialStack(Naquadah, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials CrystallinePinkSlime = new Materials( 406, TextureSet.SET_METALLIC , 6.0F, 128, 3, 1|2 |64|128 , 231, 158, 219, 0, "CrystallinePinkSlime" , "Crystalline Pink Slime" , 0, 0, 5000, 5000, true, false, 4, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(CrystallineAlloy, 1), new MaterialStack(Diamond, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials EnergeticSilver = new Materials( 407, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |64|128 , 149, 183, 205, 0, "EnergeticSilver" , "Energetic Silver" , 0, 0, -1, 2200, true, false, 4, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(ConductiveIron, 1), new MaterialStack(BlackSteel, 1))).disableAutoGeneratedBlastFurnaceRecipes();
+ public static Materials VividAlloy = new Materials( 408, TextureSet.SET_METALLIC , 12.0F, 768, 4, 1|2 |64|128 , 70, 188, 219, 0, "VividAlloy" , "Vivid Alloy" , 0, 0, 3300, 3300, true, false, 4, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(EnergeticSilver, 1), new MaterialStack(EnderEye, 1), new MaterialStack(Chrome, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Enderium = new Materials( 321, TextureSet.SET_DULL , 8.0F, 1500, 3, 1|2 |64|128 , 89, 145, 135, 0, "Enderium" , "Enderium" , 0, 0, 4500, 4500, true, false, 1, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(EnderiumBase, 2), new MaterialStack(Thaumium, 1), new MaterialStack(EnderPearl, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Mithril = new Materials( 331, TextureSet.SET_SHINY , 32.0F, 64, 2, 1|2 |8 |64 , 255, 255, 210, 0, "Mithril" , "Mithril" , 0, 0, 6600, 6600, true, false, 4, 3, 2, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Platinum, 2), new MaterialStack(Thaumium, 1))).disableAutoGeneratedBlastFurnaceRecipes().setTurbineMultipliers(22, 1, 1);
+ public static Materials BlueAlloy = new Materials( 309, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 100, 180, 255, 0, "BlueAlloy" , "Blue Alloy" , 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Electrotine, 4)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3)));
+ public static Materials ShadowIron = new Materials( 336, TextureSet.SET_METALLIC , 32.0F, 10240, 2, 1|2 |8 |64 , 120, 120, 120, 0, "ShadowIron" , "Shadow Iron" , 0, 0, 8400, 8400, true, false, 3, 4, 3, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Thaumium, 3))).disableAutoGeneratedBlastFurnaceRecipes().setTurbineMultipliers(1, 76, 1);
+ public static Materials ShadowSteel = new Materials( 337, TextureSet.SET_METALLIC , 6.0F, 768, 4, 1|2 |64 , 90, 90, 90, 0, "ShadowSteel" , "Shadow Steel" , 0, 0, -1, 1700, true, false, 4, 4, 3, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Thaumium, 3)));
+ public static Materials AstralSilver = new Materials( 333, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |64 , 230, 230, 255, 0, "AstralSilver" , "Astral Silver" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Silver, 2), new MaterialStack(Thaumium, 1)));
+
+ /**
+ * Op materials (draconic evolution above)
+ */
+ public static Materials InfinityCatalyst = new Materials( 394, TextureSet.SET_SHINY , 64.0F,1310720, 10, 1|2 |8 |64|128 , 255, 255, 255, 0, "InfinityCatalyst" , "Infinity Catalyst" , 5, 500000, 10800, 10800, true, false, 20, 1, 1, Dyes.dyeLightGray ).setProcessingMaterialTierEU(TierEU.RECIPE_UV).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Infinity = new Materials( 397, new TextureSet("infinity", true), 256.0F,2621440, 17, 1|2 |64|128 , 255, 255, 255, 0, "Infinity" , "Infinity" , 5, 5000000, 10800, 10800, true, false, 40, 1, 1, Dyes.dyeLightGray ).setProcessingMaterialTierEU(TierEU.RECIPE_UV).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Bedrockium = new MaterialBuilder(395,TextureSet.SET_DULL, "Bedrockium").addOreItems().addDustItems().addMetalItems().setDurability(327680).setToolSpeed(8f).setToolQuality(9).setRGB(50,50,50).setName("Bedrockium").setBlastFurnaceRequired(true).setBlastFurnaceTemp(9900).setMeltingPoint(9900).setColor(Dyes.dyeBlack).setOreValue(4).setDensityDivider(1).setDensityMultiplier(1).constructMaterial().setProcessingMaterialTierEU(TierEU.RECIPE_EV).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Trinium = new Materials( 868, TextureSet.SET_SHINY , 128.0F, 51200, 8, 1|2 |8 |64|128 , 200, 200, 210, 0, "Trinium" , "Trinium" , 0, 0, 7200, 7200, true, false, 4, 1, 1, Dyes.dyeLightGray ).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Ichorium = new Materials( 978, TextureSet.SET_SHINY , 32.0F, 850000, 12, 1|2 |8 |32|64|128 , 211, 120, 6, 0, "Ichorium" , "Ichorium" , 5, 250000, 9000, 9000, true, false, 4, 1, 1, Dyes.dyeOrange ).setTurbineMultipliers(30, 30, 3).setHasCorrespondingPlasma(true);
+ public static Materials CosmicNeutronium = new Materials( 982, TextureSet.SET_SHINY , 96.0F, 163840, 12, 1|2 |8 |32|64|128 , 50, 50, 50, 0, "CosmicNeutronium" , "Cosmic Neutronium" , 0, 0, 9900, 9900, true, false, 4, 1, 1, Dyes.dyeBlack ).setProcessingMaterialTierEU(TierEU.RECIPE_ZPM).disableAutoGeneratedVacuumFreezerRecipe().setHasCorrespondingPlasma(true);
+
+ // Superconductor base.
+ public static Materials Pentacadmiummagnesiumhexaoxid = new Materials( 987, TextureSet.SET_SHINY , 1.0F, 0, 3, 1|2 , 85, 85, 85, 0, "Pentacadmiummagnesiumhexaoxid" , "Superconductor Base MV" , 0, 0, 2500, 2500, true, false, 1, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Cadmium, 5), new MaterialStack(Magnesium, 1), new MaterialStack(Oxygen, 6)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3))).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Titaniumonabariumdecacoppereikosaoxid = new Materials( 988, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 , 51, 25, 0, 0, "Titaniumonabariumdecacoppereikosaoxid" , "Superconductor Base HV" , 0, 0, 3300, 3300, true, false, 1, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Barium, 9), new MaterialStack(Copper, 10), new MaterialStack(Oxygen, 20)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 6))).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Uraniumtriplatinid = new Materials( 989, TextureSet.SET_SHINY , 1.0F, 0, 3, 1|2 , 0,135, 0, 0, "Uraniumtriplatinid" , "Superconductor Base EV" , 0, 0, 4400, 4400, true, false, 1, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(Uranium, 1), new MaterialStack(Platinum, 3)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 9))).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Vanadiumtriindinid = new Materials( 990, TextureSet.SET_SHINY , 1.0F, 0, 3, 1|2 , 51, 0, 51, 0, "Vanadiumtriindinid" , "Superconductor Base IV" , 0, 0, 5200, 5200, true, false, 1, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Vanadium , 1), new MaterialStack(Indium, 3)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 12))).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid = new Materials( 991, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 , 153, 76, 0, 0, "Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid" , "Superconductor Base LuV" , 0, 0, 6000, 6000, true, false, 1, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Indium, 4), new MaterialStack(Tin, 2), new MaterialStack(Barium, 2), new MaterialStack(Titanium, 1), new MaterialStack(Copper, 7), new MaterialStack(Oxygen, 14)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 15))).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Tetranaquadahdiindiumhexaplatiumosminid = new Materials( 992, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 , 10, 10, 10, 0, "Tetranaquadahdiindiumhexaplatiumosminid" , "Superconductor Base ZPM" , 0, 0, 9000, 9000, true, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Naquadah, 4), new MaterialStack(Indium, 2), new MaterialStack(Palladium, 6), new MaterialStack(Osmium, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 18))).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Longasssuperconductornameforuvwire = new Materials( 986, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 , 224,210, 7, 0, "Longasssuperconductornameforuvwire" , "Superconductor Base UV" , 0, 0, 9900, 9900, true, false, 1, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Naquadria, 4), new MaterialStack(Osmiridium, 3), new MaterialStack(Europium, 1), new MaterialStack(Samarium, 1)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 21))).setProcessingMaterialTierEU(TierEU.RECIPE_LuV).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials Longasssuperconductornameforuhvwire = new Materials( 985, TextureSet.SET_SHINY , 1.0F, 0, 3, 1|2 , 38,129, 189, 0, "Longasssuperconductornameforuhvwire" , "Superconductor Base UHV" , 0, 0, 10800, 10800, true, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Draconium, 6), new MaterialStack(CosmicNeutronium, 7), new MaterialStack(Tritanium, 5), new MaterialStack(Americium, 6)), Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 24))).setProcessingMaterialTierEU(TierEU.RECIPE_ZPM).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials SuperconductorUEVBase = new Materials( 974, TextureSet.SET_SHINY , 1.0F, 0, 3, 1|2 , 174, 8, 8, 0, "SuperconductorUEVBase" , "Superconductor Base UEV" , 0, 0, 11700, 11800, true, false, 1, 1, 1, Dyes.dyeWhite, Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 27))).setProcessingMaterialTierEU(TierEU.RECIPE_UV).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials SuperconductorUIVBase = new Materials( 131, TextureSet.SET_SHINY , 1.0F, 0, 3, 1|2 , 229, 88, 177, 0, "SuperconductorUIVBase" , "Superconductor Base UIV" , 0, 0, 12700, 12700, true, false, 1, 1, 1, Dyes.dyeWhite, Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 34))).setProcessingMaterialTierEU(TierEU.RECIPE_UHV).disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials SuperconductorUMVBase = new Materials( 134, TextureSet.SET_SHINY , 1.0F, 0, 3, 1|2 , 181, 38, 205, 0, "SuperconductorUMVBase" , "Superconductor Base UMV" , 0, 0, 13600, 13600, true, false, 1, 1, 1, Dyes.dyeWhite, Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 40))).setProcessingMaterialTierEU(TierEU.RECIPE_UEV).disableAutoGeneratedVacuumFreezerRecipe();
+
+ // Superconductors.
+ public static Materials SuperconductorMV = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 85, 85, 85, 0, "SuperconductorMV" , "Superconductor MV" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeGray , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 6)));
+ public static Materials SuperconductorHV = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 51, 25, 0, 0, "SuperconductorHV" , "Superconductor HV" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeBrown , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 12)));
+ public static Materials SuperconductorEV = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 0,135, 0, 0, "SuperconductorEV" , "Superconductor EV" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeLime , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 18)));
+ public static Materials SuperconductorIV = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 51, 0, 51, 0, "SuperconductorIV" , "Superconductor IV" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeMagenta , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 24)));
+ public static Materials SuperconductorLuV = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 153, 76, 0, 0, "SuperconductorLuV" , "Superconductor LuV" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeBrown , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 30)));
+ public static Materials SuperconductorZPM = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 10, 10, 10, 0, "SuperconductorZPM" , "Superconductor ZPM" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeBlack , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 36)));
+ public static Materials SuperconductorUV = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 224,210, 7, 0, "SuperconductorUV" , "Superconductor UV" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeYellow , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 42)));
+ public static Materials SuperconductorUHV = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 38,129, 189, 0, "Superconductor" , "Superconductor UHV" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeWhite , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 48)));
+ public static Materials SuperconductorUEV = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 174, 8, 8, 0, "SuperconductorUEV" , "Superconductor UEV" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeWhite , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 54)));
+ public static Materials SuperconductorUIV = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 229, 88, 177, 0, "SuperconductorUIV" , "Superconductor UIV" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeWhite , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 60)));
+ public static Materials SuperconductorUMV = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 181, 38, 205, 0, "SuperconductorUMV" , "Superconductor UMV" , 0, 0, -1, -1, false, false, 1, 1, 1, Dyes.dyeWhite , Collections.singletonList(new TC_AspectStack(TC_Aspects.ELECTRUM, 66)));
+
+ public static Materials SuperCoolant = new MaterialBuilder( 140, TextureSet.SET_DULL,"Super Coolant").setRGB(2, 91, 111).addCell().addFluid().constructMaterial().setLiquidTemperature(1);
+
+ public static Materials EnrichedHolmium = new Materials(582, TextureSet.SET_METALLIC , 1.0F, 0, 2, 2 , 18, 100, 255, 0, "EnrichedHolmium" , "Enriched Holmium" , -1, -1, 0, 3000, true, false,200, 1, 1, Dyes.dyePurple);
+
+ public static Materials TengamPurified = new MaterialBuilder(111, TextureSet.SET_METALLIC, "Purified Tengam").addDustItems().addGearItems().addMetalItems().addToolHeadItems().setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.MAGNETO, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 2))).setColor(Dyes.dyeLime).setName("TengamPurified").setRGB(186, 223, 112).constructMaterial().setProcessingMaterialTierEU(TierEU.RECIPE_UV);
+ public static Materials TengamAttuned = new MaterialBuilder(112, TextureSet.SET_MAGNETIC, "Attuned Tengam") .addDustItems().addGearItems().addMetalItems().addToolHeadItems().setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.MAGNETO, 4), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))).setColor(Dyes.dyeLime).setName("TengamAttuned") .setRGB(213, 255, 128).constructMaterial().setProcessingMaterialTierEU(TierEU.RECIPE_UV);
+ public static Materials TengamRaw = new MaterialBuilder(110, TextureSet.SET_ROUGH, "Raw Tengam") .addOreItems() .setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ELECTRUM, 4))).setColor(Dyes.dyeLime).setName("TengamRaw") .setRGB(160, 191, 96).constructMaterial().setProcessingMaterialTierEU(TierEU.RECIPE_UV);
+
+ // spotless:on
+
+ static {
+ MaterialsBotania.init();
+ }
+
+ static {
+ MaterialsKevlar.init();
+ }
+
+ static {
+ MaterialsOreAlum.init();
+ }
+
+ static {
+ MaterialsUEVplus.init();
+ }
+
+ /**
+ * Superconductor re-routed for mod compatibility. Circuits are re-routed into SuperconductorUHV as well.
+ * <p>
+ * Internal name is now Superconductor while translated name is SuperconductorUHV.
+ * </p>
+ *
+ * @deprecated Use {@link #SuperconductorUHV} instead
+ */
+ @Deprecated
+ public static Materials Superconductor = new Materials(SuperconductorUHV, true); // new Materials( -1,
+ // TextureSet.SET_NONE , 1.0F, 0,
+ // 0, 0
+ // , 255, 255, 255, 0, "Superconductor" , "Superconductor" , 0,
+ // 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new
+ // TC_AspectStack(TC_Aspects.ELECTRUM, 9)));
+
+ @Deprecated
+ public static Materials Nikolite = new Materials(Electrotine, false);
+
+ @Deprecated
+ public static Materials Phosphor = new Materials(Phosphorus, false);
+
+ private static Materials[] MATERIALS_ARRAY = new Materials[] {};
+
+ static {
+ initSubTags();
+
+ setReRegistration();
+ setMaceratingInto();
+ setSmeltingInto();
+ setDirectSmelting();
+ setOthers();
+ setMultipliers();
+ setEnchantments();
+ setHeatDamage();
+ setByProducts();
+ setColors();
+
+ overrideChemicalFormulars();
+ }
+
+ public final short[] mRGBa = new short[] { 255, 255, 255, 0 }, mMoltenRGBa = new short[] { 255, 255, 255, 0 };
+ public TextureSet mIconSet;
+ public GT_GeneratedMaterial_Renderer renderer;
+ public List<MaterialStack> mMaterialList = new ArrayList<>();
+ public List<Materials> mOreByProducts = new ArrayList<>(), mOreReRegistrations = new ArrayList<>();
+ public List<TC_Aspects.TC_AspectStack> mAspects = new ArrayList<>();
+ public ArrayList<ItemStack> mMaterialItems = new ArrayList<>();
+ public Collection<SubTag> mSubTags = new LinkedHashSet<>();
+ public Enchantment mEnchantmentTools = null, mEnchantmentArmors = null;
+ public boolean mUnificatable, mBlastFurnaceRequired = false, mAutoGenerateBlastFurnaceRecipes = true,
+ mAutoGenerateVacuumFreezerRecipes = true, mAutoGenerateRecycleRecipes = true, mTransparent = false,
+ mHasParentMod = true, mHasPlasma = false, mHasGas = false, mCustomOre = false;
+ public byte mEnchantmentToolsLevel = 0, mEnchantmentArmorsLevel = 0, mToolQuality = 0;
+ public short mBlastFurnaceTemp = 0;
+ public int mMeltingPoint = 0;
+ public int mGasTemp = 0;
+ public int mMetaItemSubID;
+ public int mTypes = 0;
+ public int mDurability = 16;
+ public int mFuelPower = 0;
+ public int mFuelType = 0;
+ public int mExtraData = 0;
+ public int mOreValue = 0;
+ public int mOreMultiplier = 1;
+ public int mByProductMultiplier = 1;
+ public int mSmeltingMultiplier = 1;
+ public int mDensityMultiplier = 1;
+ public int mDensityDivider = 1;
+
+ public int getProcessingMaterialTierEU() {
+ return processingMaterialTierEU;
+ }
+
+ public Materials setProcessingMaterialTierEU(final long processingMaterialTierEU) {
+ this.processingMaterialTierEU = (int) processingMaterialTierEU;
+ return this;
+ }
+
+ public int processingMaterialTierEU = 0;
+ public long mDensity = M;
+ public float mToolSpeed = 1.0F, mHeatDamage = 0.0F, mSteamMultiplier = 1.0F, mGasMultiplier = 1.0F,
+ mPlasmaMultiplier = 1.0F;
+ public String mChemicalFormula = "?", mName, mDefaultLocalName, mCustomID = "null", mConfigSection = "null",
+ mLocalizedName = "null";
+ public Dyes mColor = Dyes._NULL;
+ public Element mElement = null;
+ public Materials mDirectSmelting = this, mOreReplacement = this, mMacerateInto = this, mSmeltInto = this,
+ mArcSmeltInto = this, mHandleMaterial = this, mMaterialInto;
+ public Fluid mSolid = null, mFluid = null, mGas = null, mPlasma = null;
+ /**
+ * This Fluid is used as standard Unit for Molten Materials. 1296 is a Molten Block, that means 144 is one Material
+ * Unit worth of fluid.
+ */
+ public Fluid mStandardMoltenFluid = null;
+
+ private boolean hasCorrespondingFluid = false, hasCorrespondingGas = false, canBeCracked = false;
+ private Fluid[] hydroCrackedFluids = new Fluid[3], steamCrackedFluids = new Fluid[3];
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality,
+ boolean aUnificatable, String aName, String aDefaultLocalName) {
+ this(
+ aMetaItemSubID,
+ aIconSet,
+ aToolSpeed,
+ aDurability,
+ aToolQuality,
+ aUnificatable,
+ aName,
+ aDefaultLocalName,
+ "ore",
+ false,
+ "null");
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality,
+ boolean aUnificatable, String aName, String aDefaultLocalName, String aConfigSection, boolean aCustomOre,
+ String aCustomID) {
+ mMetaItemSubID = aMetaItemSubID;
+ mDefaultLocalName = aDefaultLocalName;
+ mName = aName;
+ MATERIALS_MAP.put(mName, this);
+ mCustomOre = aCustomOre;
+ mCustomID = aCustomID;
+ mConfigSection = aConfigSection;
+ mUnificatable = aUnificatable;
+ mDurability = aDurability;
+ mToolSpeed = aToolSpeed;
+ mToolQuality = (byte) aToolQuality;
+ mMaterialInto = this;
+ mIconSet = aIconSet;
+ }
+
+ public Materials(Materials aMaterialInto, boolean aReRegisterIntoThis) {
+ mUnificatable = false;
+ mDefaultLocalName = aMaterialInto.mDefaultLocalName;
+ mName = aMaterialInto.mName;
+ mMaterialInto = aMaterialInto.mMaterialInto;
+ if (aReRegisterIntoThis) mMaterialInto.mOreReRegistrations.add(this);
+ mChemicalFormula = aMaterialInto.mChemicalFormula;
+ mMetaItemSubID = -1;
+ mIconSet = TextureSet.SET_NONE;
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality,
+ int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType,
+ int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent,
+ int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor) {
+ this(
+ aMetaItemSubID,
+ aIconSet,
+ aToolSpeed,
+ aDurability,
+ aToolQuality,
+ aTypes,
+ aR,
+ aG,
+ aB,
+ aA,
+ aName,
+ aDefaultLocalName,
+ aFuelType,
+ aFuelPower,
+ aMeltingPoint,
+ aBlastFurnaceTemp,
+ aBlastFurnaceRequired,
+ aTransparent,
+ aOreValue,
+ aDensityMultiplier,
+ aDensityDivider,
+ aColor,
+ "ore",
+ false,
+ "null");
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality,
+ int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType,
+ int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent,
+ int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, String aConfigSection) {
+ this(
+ aMetaItemSubID,
+ aIconSet,
+ aToolSpeed,
+ aDurability,
+ aToolQuality,
+ aTypes,
+ aR,
+ aG,
+ aB,
+ aA,
+ aName,
+ aDefaultLocalName,
+ aFuelType,
+ aFuelPower,
+ aMeltingPoint,
+ aBlastFurnaceTemp,
+ aBlastFurnaceRequired,
+ aTransparent,
+ aOreValue,
+ aDensityMultiplier,
+ aDensityDivider,
+ aColor,
+ aConfigSection,
+ false,
+ "null");
+ }
+
+ /**
+ * @param aMetaItemSubID the Sub-ID used in my own MetaItems. Range 0-1000. -1 for no Material
+ * @param aTypes which kind of Items should be generated. Bitmask as follows: 1 = Dusts of all kinds.
+ * 2 = Dusts, Ingots, Plates, Rods/Sticks, Machine Components and other Metal specific
+ * things. 4 = Dusts, Gems, Plates, Lenses (if transparent). 8 = Dusts, Impure Dusts,
+ * crushed Ores, purified Ores, centrifuged Ores etc. 16 = Cells 32 = Plasma Cells 64 =
+ * Tool Heads 128 = Gears 256 = Designates something as empty (only used for the Empty
+ * material)
+ * @param aR, aG, aB Color of the Material 0-255 each.
+ * @param aA transparency of the Material Texture. 0 = fully visible, 255 = Invisible.
+ * @param aName The Name used as Default for localization.
+ * @param aFuelType Type of Generator to get Energy from this Material.
+ * @param aFuelPower EU generated. Will be multiplied by 1000, also additionally multiplied by 2 for
+ * Gems.
+ * @param aMeltingPoint Used to determine the smelting Costs in furnace. >>>>**ADD 20000 to remove EBF
+ * recipes to add them MANUALLY ! :D**<<<<
+ * @param aBlastFurnaceTemp Used to determine the needed Heat capacity Costs in Blast Furnace.
+ * @param aBlastFurnaceRequired If this requires a Blast Furnace.
+ * @param aColor Vanilla MC Wool Color which comes the closest to this.
+ */
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality,
+ int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType,
+ int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent,
+ int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, String aConfigSection,
+ boolean aCustomOre, String aCustomID) {
+ this(
+ aMetaItemSubID,
+ aIconSet,
+ aToolSpeed,
+ aDurability,
+ aToolQuality,
+ true,
+ aName,
+ aDefaultLocalName,
+ aConfigSection,
+ aCustomOre,
+ aCustomID);
+ mMeltingPoint = aMeltingPoint;
+ mBlastFurnaceRequired = aBlastFurnaceRequired;
+ mBlastFurnaceTemp = (short) aBlastFurnaceTemp;
+ mTransparent = aTransparent;
+ mFuelPower = aFuelPower;
+ mFuelType = aFuelType;
+ mOreValue = aOreValue;
+ mDensityMultiplier = aDensityMultiplier;
+ mDensityDivider = aDensityDivider;
+ mDensity = (M * aDensityMultiplier) / aDensityDivider;
+ mColor = aColor;
+ mRGBa[0] = mMoltenRGBa[0] = (short) aR;
+ mRGBa[1] = mMoltenRGBa[1] = (short) aG;
+ mRGBa[2] = mMoltenRGBa[2] = (short) aB;
+ mRGBa[3] = mMoltenRGBa[3] = (short) aA;
+ mTypes = aTypes;
+ if (mColor != null) add(SubTag.HAS_COLOR);
+ if (mTransparent) add(SubTag.TRANSPARENT);
+ if ((mTypes & 2) != 0) add(SubTag.SMELTING_TO_FLUID);
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality,
+ int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType,
+ int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent,
+ int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor,
+ List<TC_Aspects.TC_AspectStack> aAspects) {
+ this(
+ aMetaItemSubID,
+ aIconSet,
+ aToolSpeed,
+ aDurability,
+ aToolQuality,
+ aTypes,
+ aR,
+ aG,
+ aB,
+ aA,
+ aName,
+ aDefaultLocalName,
+ aFuelType,
+ aFuelPower,
+ aMeltingPoint,
+ aBlastFurnaceTemp,
+ aBlastFurnaceRequired,
+ aTransparent,
+ aOreValue,
+ aDensityMultiplier,
+ aDensityDivider,
+ aColor);
+ mAspects.addAll(aAspects);
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality,
+ int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType,
+ int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent,
+ int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, Element aElement,
+ List<TC_Aspects.TC_AspectStack> aAspects) {
+ this(
+ aMetaItemSubID,
+ aIconSet,
+ aToolSpeed,
+ aDurability,
+ aToolQuality,
+ aTypes,
+ aR,
+ aG,
+ aB,
+ aA,
+ aName,
+ aDefaultLocalName,
+ aFuelType,
+ aFuelPower,
+ aMeltingPoint,
+ aBlastFurnaceTemp,
+ aBlastFurnaceRequired,
+ aTransparent,
+ aOreValue,
+ aDensityMultiplier,
+ aDensityDivider,
+ aColor);
+ mElement = aElement;
+ mElement.mLinkedMaterials.add(this);
+ if (aElement == Element._NULL) {
+ mChemicalFormula = "Empty";
+ } else {
+ mChemicalFormula = aElement.toString();
+ mChemicalFormula = mChemicalFormula.replaceAll("_", "-");
+ }
+ mAspects.addAll(aAspects);
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality,
+ int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType,
+ int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent,
+ int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData,
+ List<MaterialStack> aMaterialList) {
+ this(
+ aMetaItemSubID,
+ aIconSet,
+ aToolSpeed,
+ aDurability,
+ aToolQuality,
+ aTypes,
+ aR,
+ aG,
+ aB,
+ aA,
+ aName,
+ aDefaultLocalName,
+ aFuelType,
+ aFuelPower,
+ aMeltingPoint,
+ aBlastFurnaceTemp,
+ aBlastFurnaceRequired,
+ aTransparent,
+ aOreValue,
+ aDensityMultiplier,
+ aDensityDivider,
+ aColor,
+ aExtraData,
+ aMaterialList,
+ null);
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality,
+ int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType,
+ int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent,
+ int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData,
+ List<MaterialStack> aMaterialList, List<TC_Aspects.TC_AspectStack> aAspects) {
+ this(
+ aMetaItemSubID,
+ aIconSet,
+ aToolSpeed,
+ aDurability,
+ aToolQuality,
+ aTypes,
+ aR,
+ aG,
+ aB,
+ aA,
+ aName,
+ aDefaultLocalName,
+ aFuelType,
+ aFuelPower,
+ aMeltingPoint,
+ aBlastFurnaceTemp,
+ aBlastFurnaceRequired,
+ aTransparent,
+ aOreValue,
+ aDensityMultiplier,
+ aDensityDivider,
+ aColor);
+ mExtraData = aExtraData;
+ mMaterialList.addAll(aMaterialList);
+ if (mMaterialList.size() == 1) mChemicalFormula = mMaterialList.get(0)
+ .toString(true);
+ else mChemicalFormula = mMaterialList.stream()
+ .map(MaterialStack::toString)
+ .collect(Collectors.joining())
+ .replaceAll("_", "-");
+
+ int tAmountOfComponents = 0, tMeltingPoint = 0;
+ for (MaterialStack tMaterial : mMaterialList) {
+ tAmountOfComponents += tMaterial.mAmount;
+ if (tMaterial.mMaterial.mMeltingPoint > 0)
+ tMeltingPoint += tMaterial.mMaterial.mMeltingPoint * tMaterial.mAmount;
+ if (aAspects == null) for (TC_Aspects.TC_AspectStack tAspect : tMaterial.mMaterial.mAspects)
+ tAspect.addToAspectList(mAspects);
+ }
+
+ if (mMeltingPoint < 0) mMeltingPoint = (short) (tMeltingPoint / tAmountOfComponents);
+
+ tAmountOfComponents *= aDensityMultiplier;
+ tAmountOfComponents /= aDensityDivider;
+ if (aAspects == null) for (TC_Aspects.TC_AspectStack tAspect : mAspects)
+ tAspect.mAmount = Math.max(1, tAspect.mAmount / Math.max(1, tAmountOfComponents));
+ else mAspects.addAll(aAspects);
+ }
+
+ private static void setSmeltingInto() {
+ SamariumMagnetic.setSmeltingInto(Samarium)
+ .setMaceratingInto(Samarium)
+ .setArcSmeltingInto(Samarium);
+ NeodymiumMagnetic.setSmeltingInto(Neodymium)
+ .setMaceratingInto(Neodymium)
+ .setArcSmeltingInto(Neodymium);
+ SteelMagnetic.setSmeltingInto(Steel)
+ .setMaceratingInto(Steel)
+ .setArcSmeltingInto(Steel);
+ Iron.setSmeltingInto(Iron)
+ .setMaceratingInto(Iron)
+ .setArcSmeltingInto(WroughtIron);
+ AnyIron.setSmeltingInto(Iron)
+ .setMaceratingInto(Iron)
+ .setArcSmeltingInto(WroughtIron);
+ PigIron.setSmeltingInto(Iron)
+ .setMaceratingInto(Iron)
+ .setArcSmeltingInto(WroughtIron);
+ WroughtIron.setSmeltingInto(WroughtIron)
+ .setMaceratingInto(WroughtIron)
+ .setArcSmeltingInto(WroughtIron);
+ IronMagnetic.setSmeltingInto(Iron)
+ .setMaceratingInto(Iron)
+ .setArcSmeltingInto(WroughtIron);
+ Copper.setSmeltingInto(Copper)
+ .setMaceratingInto(Copper)
+ .setArcSmeltingInto(AnnealedCopper);
+ AnyCopper.setSmeltingInto(Copper)
+ .setMaceratingInto(Copper)
+ .setArcSmeltingInto(AnnealedCopper);
+ AnnealedCopper.setSmeltingInto(AnnealedCopper)
+ .setMaceratingInto(AnnealedCopper)
+ .setArcSmeltingInto(AnnealedCopper);
+ Netherrack.setSmeltingInto(NetherBrick);
+ MeatRaw.setSmeltingInto(MeatCooked);
+ Sand.setSmeltingInto(Glass);
+ Ice.setSmeltingInto(Water);
+ Snow.setSmeltingInto(Water);
+ TengamAttuned.setSmeltingInto(TengamPurified)
+ .setMaceratingInto(TengamPurified)
+ .setArcSmeltingInto(TengamPurified);
+ }
+
+ private static void setOthers() {
+ Mercury.add(SubTag.SMELTING_TO_GEM);
+ BandedIron.setOreReplacement(RoastedIron);
+ Garnierite.setOreReplacement(RoastedNickel);
+ }
+
+ private static void setDirectSmelting() {
+ Cinnabar.setDirectSmelting(Mercury)
+ .add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT)
+ .add(SubTag.SMELTING_TO_GEM);
+ Tetrahedrite.setDirectSmelting(Copper)
+ .add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT)
+ .add(SubTag.DONT_ADD_DEFAULT_BBF_RECIPE);
+ Chalcopyrite.setDirectSmelting(Copper)
+ .add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT)
+ .add(SubTag.DONT_ADD_DEFAULT_BBF_RECIPE);
+ Malachite.setDirectSmelting(Copper)
+ .add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT);
+ Pentlandite.setDirectSmelting(Nickel)
+ .add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT);
+ Sphalerite.setDirectSmelting(Zinc)
+ .add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT);
+ Pyrite.setDirectSmelting(Iron)
+ .add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT);
+ BasalticMineralSand.setDirectSmelting(Iron)
+ .add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT);
+ GraniticMineralSand.setDirectSmelting(Iron)
+ .add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT);
+ YellowLimonite.setDirectSmelting(Iron)
+ .add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT);
+ BrownLimonite.setDirectSmelting(Iron);
+ BandedIron.setDirectSmelting(Iron);
+ Magnetite.setDirectSmelting(Iron);
+ Cassiterite.setDirectSmelting(Tin);
+ CassiteriteSand.setDirectSmelting(Tin);
+ Chromite.setDirectSmelting(Chrome);
+ Garnierite.setDirectSmelting(Nickel);
+ Cobaltite.setDirectSmelting(Cobalt);
+ Stibnite.setDirectSmelting(Antimony);
+ Cooperite.setDirectSmelting(Platinum)
+ .add(SubTag.DONT_ADD_DEFAULT_BBF_RECIPE);
+ Molybdenite.setDirectSmelting(Molybdenum)
+ .add(SubTag.DONT_ADD_DEFAULT_BBF_RECIPE);
+ Galena.setDirectSmelting(Lead);
+ RoastedIron.setDirectSmelting(Iron);
+ RoastedAntimony.setDirectSmelting(Antimony);
+ RoastedLead.setDirectSmelting(Lead);
+ RoastedArsenic.setDirectSmelting(Arsenic);
+ RoastedCobalt.setDirectSmelting(Cobalt);
+ RoastedZinc.setDirectSmelting(Zinc);
+ RoastedNickel.setDirectSmelting(Nickel);
+ RoastedCopper.setDirectSmelting(Copper);
+ }
+
+ private static void setMultipliers() {
+ Amber.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ InfusedAir.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ InfusedFire.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ InfusedEarth.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ InfusedWater.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ InfusedEntropy.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ InfusedOrder.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ InfusedVis.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ InfusedDull.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ Salt.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ RockSalt.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ Scheelite.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ Tungstate.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ Cassiterite.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ CassiteriteSand.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ NetherQuartz.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ CertusQuartz.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ CertusQuartzCharged.setOreMultiplier(2)
+ .setSmeltingMultiplier(2);
+ TricalciumPhosphate.setOreMultiplier(3)
+ .setSmeltingMultiplier(3);
+ Saltpeter.setOreMultiplier(4)
+ .setSmeltingMultiplier(4);
+ Apatite.setOreMultiplier(4)
+ .setSmeltingMultiplier(4)
+ .setByProductMultiplier(2);
+ Electrotine.setOreMultiplier(5)
+ .setSmeltingMultiplier(5);
+ Teslatite.setOreMultiplier(5)
+ .setSmeltingMultiplier(5);
+ Redstone.setOreMultiplier(5)
+ .setSmeltingMultiplier(5);
+ Glowstone.setOreMultiplier(5)
+ .setSmeltingMultiplier(5);
+ Lapis.setOreMultiplier(6)
+ .setSmeltingMultiplier(6)
+ .setByProductMultiplier(4);
+ Sodalite.setOreMultiplier(6)
+ .setSmeltingMultiplier(6)
+ .setByProductMultiplier(4);
+ Lazurite.setOreMultiplier(6)
+ .setSmeltingMultiplier(6)
+ .setByProductMultiplier(4);
+ Monazite.setOreMultiplier(8)
+ .setSmeltingMultiplier(8)
+ .setByProductMultiplier(2);
+ Cryolite.setOreMultiplier(4)
+ .setByProductMultiplier(4);
+ }
+
+ private static void setEnchantmentKnockbackTools() {
+ Plastic.setEnchantmentForTools(Enchantment.knockback, 1);
+ PolyvinylChloride.setEnchantmentForTools(Enchantment.knockback, 1);
+ Polystyrene.setEnchantmentForTools(Enchantment.knockback, 1);
+ Rubber.setEnchantmentForTools(Enchantment.knockback, 2);
+ StyreneButadieneRubber.setEnchantmentForTools(Enchantment.knockback, 2);
+ InfusedAir.setEnchantmentForTools(Enchantment.knockback, 2);
+ }
+
+ private static void setEnchantmentFortuneTools() {
+ IronWood.setEnchantmentForTools(Enchantment.fortune, 1);
+ Steeleaf.setEnchantmentForTools(Enchantment.fortune, 2);
+ Mithril.setEnchantmentForTools(Enchantment.fortune, 3);
+ Vinteum.setEnchantmentForTools(Enchantment.fortune, 1);
+ Thaumium.setEnchantmentForTools(Enchantment.fortune, 2);
+ InfusedWater.setEnchantmentForTools(Enchantment.fortune, 3);
+ }
+
+ private static void setEnchantmentFireAspectTools() {
+ Flint.setEnchantmentForTools(Enchantment.fireAspect, 1);
+ DarkIron.setEnchantmentForTools(Enchantment.fireAspect, 2);
+ Firestone.setEnchantmentForTools(Enchantment.fireAspect, 3);
+ FierySteel.setEnchantmentForTools(Enchantment.fireAspect, 3);
+ Pyrotheum.setEnchantmentForTools(Enchantment.fireAspect, 3);
+ Blaze.setEnchantmentForTools(Enchantment.fireAspect, 3);
+ InfusedFire.setEnchantmentForTools(Enchantment.fireAspect, 3);
+ }
+
+ private static void setEnchantmentSilkTouchTools() {
+ Force.setEnchantmentForTools(Enchantment.silkTouch, 1);
+ Amber.setEnchantmentForTools(Enchantment.silkTouch, 1);
+ EnderPearl.setEnchantmentForTools(Enchantment.silkTouch, 1);
+ Enderium.setEnchantmentForTools(Enchantment.silkTouch, 1);
+ NetherStar.setEnchantmentForTools(Enchantment.silkTouch, 1);
+ InfusedOrder.setEnchantmentForTools(Enchantment.silkTouch, 1);
+ }
+
+ private static void setEnchantmentSmiteTools() {
+ BlackBronze.setEnchantmentForTools(Enchantment.smite, 2);
+ Gold.setEnchantmentForTools(Enchantment.smite, 3);
+ RoseGold.setEnchantmentForTools(Enchantment.smite, 4);
+ Platinum.setEnchantmentForTools(Enchantment.smite, 5);
+ InfusedVis.setEnchantmentForTools(Enchantment.smite, 5);
+ Ichorium.setEnchantmentForTools(Enchantment.smite, 8);
+ }
+
+ private static void setEnchantmentBaneOfArthropodsTools() {
+ Lead.setEnchantmentForTools(Enchantment.baneOfArthropods, 2);
+ Nickel.setEnchantmentForTools(Enchantment.baneOfArthropods, 2);
+ Invar.setEnchantmentForTools(Enchantment.baneOfArthropods, 3);
+ Antimony.setEnchantmentForTools(Enchantment.baneOfArthropods, 3);
+ BatteryAlloy.setEnchantmentForTools(Enchantment.baneOfArthropods, 4);
+ Bismuth.setEnchantmentForTools(Enchantment.baneOfArthropods, 4);
+ BismuthBronze.setEnchantmentForTools(Enchantment.baneOfArthropods, 5);
+ InfusedEarth.setEnchantmentForTools(Enchantment.baneOfArthropods, 5);
+ }
+
+ private static void setEnchantmentSharpnessTools() {
+ Iron.setEnchantmentForTools(Enchantment.sharpness, 1);
+ Bronze.setEnchantmentForTools(Enchantment.sharpness, 1);
+ Brass.setEnchantmentForTools(Enchantment.sharpness, 2);
+ HSLA.setEnchantmentForTools(Enchantment.sharpness, 2);
+ Steel.setEnchantmentForTools(Enchantment.sharpness, 2);
+ WroughtIron.setEnchantmentForTools(Enchantment.sharpness, 2);
+ StainlessSteel.setEnchantmentForTools(Enchantment.sharpness, 3);
+ Knightmetal.setEnchantmentForTools(Enchantment.sharpness, 3);
+ ShadowIron.setEnchantmentForTools(Enchantment.sharpness, 3);
+ ShadowSteel.setEnchantmentForTools(Enchantment.sharpness, 4);
+ BlackSteel.setEnchantmentForTools(Enchantment.sharpness, 4);
+ RedSteel.setEnchantmentForTools(Enchantment.sharpness, 4);
+ BlueSteel.setEnchantmentForTools(Enchantment.sharpness, 5);
+ DamascusSteel.setEnchantmentForTools(Enchantment.sharpness, 5);
+ InfusedEntropy.setEnchantmentForTools(Enchantment.sharpness, 5);
+ TungstenCarbide.setEnchantmentForTools(Enchantment.sharpness, 5);
+ HSSE.setEnchantmentForTools(Enchantment.sharpness, 5);
+ HSSG.setEnchantmentForTools(Enchantment.sharpness, 4);
+ HSSS.setEnchantmentForTools(Enchantment.sharpness, 5);
+ }
+
+ /**
+ * DO NOT ADD MORE THAN 1 TOOL AND ARMOR ENCHANTMENT PER MATERIAL! It will get overwritten!
+ */
+ private static void setEnchantments() {
+ setToolEnchantments();
+ setArmorEnchantments();
+ }
+
+ private static void setToolEnchantments() {
+ setEnchantmentKnockbackTools();
+ setEnchantmentFortuneTools();
+ setEnchantmentFireAspectTools();
+ setEnchantmentSilkTouchTools();
+ setEnchantmentSmiteTools();
+ setEnchantmentBaneOfArthropodsTools();
+ setEnchantmentSharpnessTools();
+ }
+
+ private static void setArmorEnchantments() {
+ InfusedAir.setEnchantmentForArmors(Enchantment.respiration, 3);
+
+ InfusedFire.setEnchantmentForArmors(Enchantment.featherFalling, 4);
+
+ Steeleaf.setEnchantmentForArmors(Enchantment.protection, 2);
+ Knightmetal.setEnchantmentForArmors(Enchantment.protection, 1);
+ InfusedEarth.setEnchantmentForArmors(Enchantment.protection, 4);
+
+ InfusedEntropy.setEnchantmentForArmors(Enchantment.thorns, 3);
+
+ InfusedWater.setEnchantmentForArmors(Enchantment.aquaAffinity, 1);
+ IronWood.setEnchantmentForArmors(Enchantment.aquaAffinity, 1);
+
+ InfusedOrder.setEnchantmentForArmors(Enchantment.projectileProtection, 4);
+
+ InfusedDull.setEnchantmentForArmors(Enchantment.blastProtection, 4);
+
+ InfusedVis.setEnchantmentForArmors(Enchantment.protection, 4);
+ }
+
+ private static void setMaceratingInto() {
+ Peanutwood.setMaceratingInto(Wood);
+ WoodSealed.setMaceratingInto(Wood);
+ NetherBrick.setMaceratingInto(Netherrack);
+ AnyRubber.setMaceratingInto(Rubber);
+ }
+
+ private static void setReRegistration() {
+ Iron.mOreReRegistrations.add(AnyIron);
+ PigIron.mOreReRegistrations.add(AnyIron);
+ WroughtIron.mOreReRegistrations.add(AnyIron);
+ Copper.mOreReRegistrations.add(AnyCopper);
+ AnnealedCopper.mOreReRegistrations.add(AnyCopper);
+ Bronze.mOreReRegistrations.add(AnyBronze);
+ Rubber.mOreReRegistrations.add(AnyRubber);
+ StyreneButadieneRubber.mOreReRegistrations.add(AnyRubber);
+ Silicone.mOreReRegistrations.add(AnyRubber);
+ StyreneButadieneRubber.mOreReRegistrations.add(AnySyntheticRubber);
+ Silicone.mOreReRegistrations.add(AnySyntheticRubber);
+ }
+
+ private static void setHeatDamage() {
+ FryingOilHot.setHeatDamage(1.0F);
+ Lava.setHeatDamage(3.0F);
+ Firestone.setHeatDamage(5.0F);
+ Pyrotheum.setHeatDamage(5.0F);
+ }
+
+ private static void setByProducts() {
+ Mytryl.addOreByProducts(Samarium, Samarium, Zinc, Zinc);
+ Rubracium.addOreByProducts(Samarium, Samarium, Samarium, Samarium);
+ Chalcopyrite.addOreByProducts(Pyrite, Cobalt, Cadmium, Gold);
+ Sphalerite.addOreByProducts(GarnetYellow, Cadmium, Gallium, Zinc);
+ MeteoricIron.addOreByProducts(Iron, Nickel, Iridium, Platinum);
+ GlauconiteSand.addOreByProducts(Sodium, Aluminiumoxide, Iron);
+ Glauconite.addOreByProducts(Sodium, Aluminiumoxide, Iron);
+ Vermiculite.addOreByProducts(Iron, Aluminiumoxide, Magnesium);
+ FullersEarth.addOreByProducts(Aluminiumoxide, SiliconDioxide, Magnesium);
+ Bentonite.addOreByProducts(Aluminiumoxide, Calcium, Magnesium);
+ Uraninite.addOreByProducts(Uranium, Thorium, Uranium235);
+ Pitchblende.addOreByProducts(Thorium, Uranium, Lead);
+ Galena.addOreByProducts(Sulfur, Silver, Lead);
+ Lapis.addOreByProducts(Lazurite, Sodalite, Pyrite);
+ Pyrite.addOreByProducts(Sulfur, TricalciumPhosphate, Iron);
+ Copper.addOreByProducts(Cobalt, Gold, Nickel);
+ Nickel.addOreByProducts(Cobalt, Platinum, Iron);
+ GarnetRed.addOreByProducts(Spessartine, Pyrope, Almandine);
+ GarnetYellow.addOreByProducts(Andradite, Grossular, Uvarovite);
+ Cooperite.addOreByProducts(Palladium, Nickel, Iridium);
+ Cinnabar.addOreByProducts(Redstone, Sulfur, Glowstone);
+ Tantalite.addOreByProducts(Manganese, Niobium, Tantalum);
+ Pollucite.addOreByProducts(Caesium, Aluminiumoxide, Rubidium);
+ Chrysotile.addOreByProducts(Asbestos, SiliconDioxide, Magnesium);
+ Asbestos.addOreByProducts(Asbestos, SiliconDioxide, Magnesium);
+ Pentlandite.addOreByProducts(Iron, Sulfur, Cobalt);
+ Uranium.addOreByProducts(Lead, Uranium235, Thorium);
+ Scheelite.addOreByProducts(Manganese, Molybdenum, Calcium);
+ Tungstate.addOreByProducts(Manganese, Silver, Lithium);
+ Bauxite.addOreByProducts(Grossular, Rutile, Gallium);
+ QuartzSand.addOreByProducts(CertusQuartz, Quartzite, Barite);
+ Redstone.addOreByProducts(Cinnabar, RareEarth, Glowstone);
+ Monazite.addOreByProducts(Thorium, Neodymium, RareEarth);
+ Forcicium.addOreByProducts(Thorium, Neodymium, RareEarth);
+ Forcillium.addOreByProducts(Thorium, Neodymium, RareEarth);
+ Malachite.addOreByProducts(Copper, BrownLimonite, Calcite);
+ YellowLimonite.addOreByProducts(Nickel, BrownLimonite, Cobalt);
+ Lepidolite.addOreByProducts(Lithium, Caesium);
+ Andradite.addOreByProducts(GarnetYellow, Iron);
+ Pyrolusite.addOreByProducts(Manganese, Tantalite, Niobium)
+ .add(SubTag.DONT_ADD_DEFAULT_BBF_RECIPE);
+ TricalciumPhosphate.addOreByProducts(Apatite, Phosphate, Pyrochlore);
+ Apatite.addOreByProducts(TricalciumPhosphate, Phosphate, Pyrochlore);
+ Pyrochlore.addOreByProducts(Apatite, Calcite, Niobium);
+ Quartzite.addOreByProducts(CertusQuartz, Barite);
+ CertusQuartz.addOreByProducts(Quartzite, Barite);
+ CertusQuartzCharged.addOreByProducts(CertusQuartz, Quartzite, Barite);
+ BrownLimonite.addOreByProducts(Malachite, YellowLimonite);
+ Neodymium.addOreByProducts(Monazite, RareEarth);
+ Bastnasite.addOreByProducts(Neodymium, RareEarth);
+ Glowstone.addOreByProducts(Redstone, Gold);
+ Zinc.addOreByProducts(Tin, Gallium);
+ Tungsten.addOreByProducts(Manganese, Molybdenum);
+ Diatomite.addOreByProducts(BandedIron, Sapphire);
+ Iron.addOreByProducts(Nickel, Tin);
+ Gold.addOreByProducts(Copper, Nickel);
+ Tin.addOreByProducts(Iron, Zinc);
+ Antimony.addOreByProducts(Zinc, Iron);
+ Silver.addOreByProducts(Lead, Sulfur);
+ Lead.addOreByProducts(Silver, Sulfur);
+ Thorium.addOreByProducts(Uranium, Lead);
+ Plutonium.addOreByProducts(Uranium, Lead);
+ Electrum.addOreByProducts(Gold, Silver);
+ Electrotine.addOreByProducts(Redstone, Electrum);
+ Bronze.addOreByProducts(Copper, Tin);
+ Brass.addOreByProducts(Copper, Zinc);
+ Coal.addOreByProducts(Lignite, Thorium);
+ Ilmenite.addOreByProducts(Iron, Rutile);
+ Manganese.addOreByProducts(Chrome, Iron);
+ Sapphire.addOreByProducts(Aluminiumoxide, GreenSapphire);
+ GreenSapphire.addOreByProducts(Aluminiumoxide, Sapphire);
+ Platinum.addOreByProducts(Nickel, Iridium);
+ Emerald.addOreByProducts(Beryllium, Aluminiumoxide);
+ Olivine.addOreByProducts(Pyrope, Magnesium);
+ Chrome.addOreByProducts(Iron, Magnesium);
+ Chromite.addOreByProducts(Iron, Magnesium);
+ Tetrahedrite.addOreByProducts(Antimony, Zinc);
+ GarnetSand.addOreByProducts(GarnetRed, GarnetYellow);
+ Magnetite.addOreByProducts(Iron, Gold);
+ GraniticMineralSand.addOreByProducts(GraniteBlack, Magnetite);
+ BasalticMineralSand.addOreByProducts(Basalt, Magnetite);
+ Basalt.addOreByProducts(Olivine, DarkAsh);
+ VanadiumMagnetite.addOreByProducts(Magnetite, Vanadium);
+ Lazurite.addOreByProducts(Sodalite, Lapis);
+ Sodalite.addOreByProducts(Lazurite, Lapis);
+ Spodumene.addOreByProducts(Aluminiumoxide, Lithium);
+ Ruby.addOreByProducts(Chrome, GarnetRed);
+ Iridium.addOreByProducts(Platinum, Osmium);
+ Pyrope.addOreByProducts(GarnetRed, Magnesium);
+ Almandine.addOreByProducts(GarnetRed, Aluminiumoxide);
+ Spessartine.addOreByProducts(GarnetRed, Manganese);
+ Grossular.addOreByProducts(GarnetYellow, Calcium);
+ Uvarovite.addOreByProducts(GarnetYellow, Chrome);
+ Calcite.addOreByProducts(Andradite, Malachite);
+ NaquadahEnriched.addOreByProducts(Naquadah, Naquadria);
+ Salt.addOreByProducts(RockSalt, Borax);
+ RockSalt.addOreByProducts(Salt, Borax);
+ Naquadah.addOreByProducts(NaquadahEnriched);
+ Molybdenite.addOreByProducts(Molybdenum);
+ Stibnite.addOreByProducts(Antimony);
+ Garnierite.addOreByProducts(Nickel);
+ Lignite.addOreByProducts(Coal);
+ Diamond.addOreByProducts(Graphite);
+ Beryllium.addOreByProducts(Emerald);
+ Electrotine.addOreByProducts(Diamond);
+ Teslatite.addOreByProducts(Diamond);
+ Magnesite.addOreByProducts(Magnesium);
+ NetherQuartz.addOreByProducts(Netherrack);
+ PigIron.addOreByProducts(Iron);
+ DeepIron.addOreByProducts(Trinium, Iron, Trinium);
+ ShadowIron.addOreByProducts(Iron);
+ DarkIron.addOreByProducts(Iron);
+ MeteoricIron.addOreByProducts(Iron);
+ Steel.addOreByProducts(Iron);
+ HSLA.addOreByProducts(Iron);
+ Mithril.addOreByProducts(Platinum);
+ AstralSilver.addOreByProducts(Silver);
+ Graphite.addOreByProducts(Carbon);
+ Netherrack.addOreByProducts(Sulfur);
+ Flint.addOreByProducts(Obsidian);
+ Cobaltite.addOreByProducts(Cobalt);
+ Cobalt.addOreByProducts(Cobaltite);
+ Sulfur.addOreByProducts(Sulfur);
+ Saltpeter.addOreByProducts(Saltpeter);
+ Endstone.addOreByProducts(Helium_3);
+ Osmium.addOreByProducts(Iridium);
+ Magnesium.addOreByProducts(Olivine);
+ Aluminium.addOreByProducts(Bauxite);
+ Titanium.addOreByProducts(Almandine);
+ Obsidian.addOreByProducts(Olivine);
+ Ash.addOreByProducts(Carbon);
+ DarkAsh.addOreByProducts(Carbon);
+ Redrock.addOreByProducts(Clay);
+ Marble.addOreByProducts(Calcite);
+ Clay.addOreByProducts(Clay);
+ Cassiterite.addOreByProducts(Tin);
+ CassiteriteSand.addOreByProducts(Tin);
+ GraniteBlack.addOreByProducts(Biotite);
+ GraniteRed.addOreByProducts(PotassiumFeldspar);
+ Phosphate.addOreByProducts(Phosphorus);
+ Phosphorus.addOreByProducts(Phosphate);
+ Tanzanite.addOreByProducts(Opal);
+ Opal.addOreByProducts(Tanzanite);
+ Amethyst.addOreByProducts(Amethyst);
+ FoolsRuby.addOreByProducts(Jasper);
+ Amber.addOreByProducts(Amber);
+ Topaz.addOreByProducts(BlueTopaz);
+ BlueTopaz.addOreByProducts(Topaz);
+ Niter.addOreByProducts(Saltpeter);
+ Vinteum.addOreByProducts(Vinteum);
+ Force.addOreByProducts(Force);
+ Dilithium.addOreByProducts(Dilithium);
+ Neutronium.addOreByProducts(Neutronium);
+ Lithium.addOreByProducts(Lithium);
+ Silicon.addOreByProducts(SiliconDioxide);
+ InfusedGold.addOreByProduct(Gold);
+ Cryolite.addOreByProducts(Aluminiumoxide, Sodium);
+ Naquadria.addOreByProduct(Naquadria);
+ RoastedNickel.addOreByProduct(Nickel);
+ TengamRaw.addOreByProducts(NeodymiumMagnetic, SamariumMagnetic);
+ }
+
+ private static void setColors() {
+ Naquadah.mMoltenRGBa[0] = 0;
+ Naquadah.mMoltenRGBa[1] = 255;
+ Naquadah.mMoltenRGBa[2] = 0;
+ Naquadah.mMoltenRGBa[3] = 0;
+ NaquadahEnriched.mMoltenRGBa[0] = 64;
+ NaquadahEnriched.mMoltenRGBa[1] = 255;
+ NaquadahEnriched.mMoltenRGBa[2] = 64;
+ NaquadahEnriched.mMoltenRGBa[3] = 0;
+ Naquadria.mMoltenRGBa[0] = 128;
+ Naquadria.mMoltenRGBa[1] = 255;
+ Naquadria.mMoltenRGBa[2] = 128;
+ Naquadria.mMoltenRGBa[3] = 0;
+ }
+
+ private static void overrideChemicalFormulars() {
+ Glue.mChemicalFormula = "No Horses were harmed for the Production";
+ AdvancedGlue.mChemicalFormula = "A chemically approved glue!";
+ UUAmplifier.mChemicalFormula = "Accelerates the Mass Fabricator";
+ LiveRoot.mChemicalFormula = "";
+ WoodSealed.mChemicalFormula = "";
+ Wood.mChemicalFormula = "";
+ Electrotine.mChemicalFormula = "Rp";
+ Trinium.mChemicalFormula = "Ke";
+ Naquadah.mChemicalFormula = "Nq";
+ NaquadahEnriched.mChemicalFormula = "Nq+";
+ Naquadria.mChemicalFormula = "Nq*";
+ NaquadahAlloy.mChemicalFormula = "Nq\u2082KeC";
+ Sunnarium.mChemicalFormula = "Su";
+ Adamantium.mChemicalFormula = "Ad";
+ InfusedGold.mChemicalFormula = "AuMa*";
+ MeteoricIron.mChemicalFormula = "SpFe";
+ MeteoricSteel.mChemicalFormula = "SpFe\u2085\u2080C";
+ Duranium.mChemicalFormula = "Du";
+ Tritanium.mChemicalFormula = "Tn";
+ Ardite.mChemicalFormula = "Ai";
+ Manyullyn.mChemicalFormula = "AiCo";
+ Mytryl.mChemicalFormula = "SpPt\u2082FeMa";
+ BlackPlutonium.mChemicalFormula = "SpPu";
+ Ledox.mChemicalFormula = "SpPb";
+ CallistoIce.mChemicalFormula = "SpH\u2082O";
+ Quantium.mChemicalFormula = "Qt";
+ Desh.mChemicalFormula = "De";
+ Oriharukon.mChemicalFormula = "Oh";
+ Draconium.mChemicalFormula = "D";
+ DraconiumAwakened.mChemicalFormula = "D*";
+ BlueAlloy.mChemicalFormula = "AgRp\u2084";
+ RedAlloy.mChemicalFormula = "Cu(" + Redstone.mChemicalFormula + ")\u2084";
+ AnyIron.mChemicalFormula = "Fe";
+ AnyCopper.mChemicalFormula = "Cu";
+ ElectrumFlux.mChemicalFormula = "The formula is too long...";
+ DeepIron.mChemicalFormula = "Sp\u2082Fe";
+ Ichorium.mChemicalFormula = "IcMa";
+ Infinity.mChemicalFormula = "If*";
+ InfinityCatalyst.mChemicalFormula = "If";
+ CosmicNeutronium.mChemicalFormula = "SpNt";
+ Aluminiumhydroxide.mChemicalFormula = "Al\u0028OH\u0029\u2083";
+ MaterialsKevlar.LiquidCrystalKevlar.mChemicalFormula = "[-CO-C\u2086H\u2084-CO-NH-C\u2086H\u2084-NH-]n";
+ MaterialsKevlar.RhodiumChloride.mChemicalFormula = "RhCl\u2083";
+ MaterialsKevlar.OrganorhodiumCatalyst.mChemicalFormula = "RhHCO(P(C\u2086H\u2085)\u2083)\u2083";
+ MaterialsKevlar.CobaltIINitrate.mChemicalFormula = "Co(NO\u2083)\u2082";
+ MaterialsKevlar.CobaltIIHydroxide.mChemicalFormula = "Co(OH)\u2082";
+ SiliconSG.mChemicalFormula = "Si*";
+ NetherQuartz.mChemicalFormula = "SiO\u2082";
+ Quartzite.mChemicalFormula = "SiO\u2082";
+ CertusQuartz.mChemicalFormula = "SiO\u2082";
+ CertusQuartzCharged.mChemicalFormula = "SiO\u2082";
+ MaterialsUEVplus.SpaceTime.mChemicalFormula = "Reality itself distilled into physical form";
+ MaterialsUEVplus.Universium.mChemicalFormula = "A tear into the space beyond space";
+ MaterialsUEVplus.Eternity.mChemicalFormula = "En\u29BC";
+ MaterialsUEVplus.MagMatter.mChemicalFormula = "M\u238B";
+ Longasssuperconductornameforuvwire.mChemicalFormula = "Nq*\u2084(Ir\u2083Os)\u2083EuSm";
+ Longasssuperconductornameforuhvwire.mChemicalFormula = "D\u2086(SpNt)\u2087Tn\u2085Am\u2086";
+ SuperconductorUEVBase.mChemicalFormula = "D*\u2085If*\u2085(\u2726\u25C6\u2726)(\u26B7\u2699\u26B7 Ni4Ti6)";
+ SuperconductorUIVBase.mChemicalFormula = "(C\u2081\u2084Os\u2081\u2081O\u2087Ag\u2083SpH\u2082O)\u2084?\u2081\u2080(Fs\u26B6)\u2086(\u2318\u262F\u262F\u2318)\u2085";
+ SuperconductorUMVBase.mChemicalFormula = "?\u2086Or\u2083(Hy\u26B6)\u2081\u2081(((CW)\u2087Ti\u2083)\u2083???)\u2085\u06DE\u2082";
+ Diatomite.mChemicalFormula = "(SiO\u2082)\u2088Fe\u2082O\u2083(Al\u2082O\u2083)";
+ EnrichedHolmium.mChemicalFormula = "Nq+\u2088Ho\u2082";
+ Grade1PurifiedWater.mChemicalFormula = "H\u2082O";
+ Grade2PurifiedWater.mChemicalFormula = "H\u2082O";
+ Grade3PurifiedWater.mChemicalFormula = "H\u2082O";
+ Grade4PurifiedWater.mChemicalFormula = "H\u2082O";
+ Grade5PurifiedWater.mChemicalFormula = "H\u2082O";
+ Grade6PurifiedWater.mChemicalFormula = "H\u2082O";
+ Grade7PurifiedWater.mChemicalFormula = "H\u2082O";
+ Grade8PurifiedWater.mChemicalFormula = "H\u2082O";
+ TengamRaw.mChemicalFormula = "";
+ TengamPurified.mChemicalFormula = "M";
+ TengamAttuned.mChemicalFormula = "M";
+ MaterialsUEVplus.ExcitedDTSC.mChemicalFormula = "[-Stellar-Stellar-]";
+ MaterialsUEVplus.DimensionallyTranscendentStellarCatalyst.mChemicalFormula = "Stellar";
+ }
+
+ private static void initSubTags() {
+ SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM.addTo(Bastnasite, Monazite, Forcicium, Forcillium);
+
+ SubTag.ELECTROMAGNETIC_SEPERATION_GOLD
+ .addTo(Magnetite, VanadiumMagnetite, BasalticMineralSand, GraniticMineralSand);
+
+ SubTag.NO_RECIPES.addTo(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+
+ SubTag.ELECTROMAGNETIC_SEPERATION_IRON.addTo(
+ YellowLimonite,
+ BrownLimonite,
+ Pyrite,
+ BandedIron,
+ Nickel,
+ Vermiculite,
+ Glauconite,
+ GlauconiteSand,
+ Pentlandite,
+ Tin,
+ Antimony,
+ Ilmenite,
+ Manganese,
+ Chrome,
+ Chromite,
+ Andradite);
+
+ SubTag.BLASTFURNACE_CALCITE_DOUBLE
+ .addTo(Pyrite, BrownLimonite, YellowLimonite, BasalticMineralSand, GraniticMineralSand, Magnetite);
+
+ SubTag.BLASTFURNACE_CALCITE_TRIPLE.addTo(Iron, PigIron, DeepIron, ShadowIron, WroughtIron, MeteoricIron);
+
+ SubTag.WASHING_MERCURY.addTo(Gold, Osmium, Mithril, Platinum, Cooperite, AstralSilver);
+
+ SubTag.WASHING_MERCURY_99_PERCENT.addTo(Silver);
+
+ SubTag.WASHING_SODIUMPERSULFATE.addTo(Zinc, Nickel, Copper, Cobalt, Cobaltite, Tetrahedrite);
+ SubTag.METAL.addTo(
+ AnyIron,
+ AnyCopper,
+ AnyBronze,
+ Metal,
+ Aluminium,
+ Americium,
+ Antimony,
+ Beryllium,
+ Bismuth,
+ Caesium,
+ Cerium,
+ Chrome,
+ Cobalt,
+ Copper,
+ Dysprosium,
+ Erbium,
+ Europium,
+ Gadolinium,
+ Gallium,
+ Gold,
+ Holmium,
+ Indium,
+ Iridium,
+ Iron,
+ Lanthanum,
+ Lead,
+ Lutetium,
+ Magnesium,
+ Manganese,
+ Mercury,
+ Niobium,
+ Molybdenum,
+ Neodymium,
+ Neutronium,
+ Nickel,
+ Osmium,
+ Palladium,
+ Platinum,
+ Plutonium,
+ Plutonium241,
+ Praseodymium,
+ Promethium,
+ Rubidium,
+ Samarium,
+ Scandium,
+ Silicon,
+ Silver,
+ Tantalum,
+ Tellurium,
+ Terbium,
+ Thorium,
+ Thulium,
+ Tin,
+ Titanium,
+ Tungsten,
+ Uranium,
+ Uranium235,
+ Vanadium,
+ Ytterbium,
+ Yttrium,
+ Zinc,
+ Flerovium,
+ PhasedIron,
+ PhasedGold,
+ DarkSteel,
+ TinAlloy,
+ ConductiveIron,
+ ElectricalSteel,
+ EnergeticAlloy,
+ VibrantAlloy,
+ MelodicAlloy,
+ StellarAlloy,
+ VividAlloy,
+ EnergeticSilver,
+ CrystallinePinkSlime,
+ CrystallineAlloy,
+ CrudeSteel,
+ EndSteel,
+ PulsatingIron,
+ DarkThaumium,
+ Adamantium,
+ Amordrine,
+ Angmallen,
+ Ardite,
+ Aredrite,
+ Atlarus,
+ Carmot,
+ Celenegil,
+ Ceruclase,
+ DarkIron,
+ Desh,
+ Desichalkos,
+ Duranium,
+ ElectrumFlux,
+ Enderium,
+ EnderiumBase,
+ Eximite,
+ FierySteel,
+ Force,
+ Haderoth,
+ Hematite,
+ Hepatizon,
+ HSLA,
+ Infuscolium,
+ InfusedGold,
+ Inolashite,
+ Mercassium,
+ MeteoricIron,
+ BloodInfusedIron,
+ MaterialsUEVplus.Universium,
+ MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter,
+ MeteoricSteel,
+ Naquadah,
+ NaquadahAlloy,
+ NaquadahEnriched,
+ Naquadria,
+ ObsidianFlux,
+ Orichalcum,
+ Osmonium,
+ Oureclase,
+ Phoenixite,
+ Prometheum,
+ Sanguinite,
+ CosmicNeutronium,
+ Tartarite,
+ Ichorium,
+ Tritanium,
+ Vulcanite,
+ Vyroxeres,
+ Yellorium,
+ Zectium,
+ AluminiumBrass,
+ Osmiridium,
+ Sunnarium,
+ AnnealedCopper,
+ BatteryAlloy,
+ Brass,
+ Bronze,
+ ChromiumDioxide,
+ Cupronickel,
+ DeepIron,
+ Electrum,
+ Invar,
+ Kanthal,
+ Magnalium,
+ Nichrome,
+ NiobiumNitride,
+ NiobiumTitanium,
+ PigIron,
+ SolderingAlloy,
+ StainlessSteel,
+ Steel,
+ Ultimet,
+ VanadiumGallium,
+ WroughtIron,
+ YttriumBariumCuprate,
+ IronWood,
+ Alumite,
+ Manyullyn,
+ ShadowIron,
+ Shadow,
+ ShadowSteel,
+ Steeleaf,
+ SterlingSilver,
+ RoseGold,
+ BlackBronze,
+ BismuthBronze,
+ BlackSteel,
+ RedSteel,
+ BlueSteel,
+ DamascusSteel,
+ TungstenSteel,
+ TPV,
+ AstralSilver,
+ Mithril,
+ BlueAlloy,
+ RedAlloy,
+ CobaltBrass,
+ Thaumium,
+ Void,
+ IronMagnetic,
+ SteelMagnetic,
+ NeodymiumMagnetic,
+ SamariumMagnetic,
+ Knightmetal,
+ HSSG,
+ HSSE,
+ HSSS,
+ TungstenCarbide,
+ HeeEndium,
+ VanadiumSteel,
+ Kalendrite,
+ Ignatius,
+ Trinium,
+ Infinity,
+ InfinityCatalyst,
+ Realgar,
+ Chrysotile,
+ BlackPlutonium,
+ Alduorite,
+ Adluorite,
+ Vinteum,
+ Rubracium,
+ Draconium,
+ DraconiumAwakened,
+ Pentacadmiummagnesiumhexaoxid,
+ Titaniumonabariumdecacoppereikosaoxid,
+ Uraniumtriplatinid,
+ Vanadiumtriindinid,
+ Tetraindiumditindibariumtitaniumheptacoppertetrakaidekaoxid,
+ Tetranaquadahdiindiumhexaplatiumosminid,
+ Longasssuperconductornameforuvwire,
+ Longasssuperconductornameforuhvwire,
+ SuperconductorUEVBase,
+ SuperconductorUIVBase,
+ SuperconductorUMVBase,
+ Quantium,
+ RedstoneAlloy,
+ Bedrockium,
+ EnrichedHolmium,
+ TengamPurified,
+ TengamAttuned,
+ MaterialsUEVplus.Eternity,
+ MaterialsUEVplus.MagMatter);
+
+ SubTag.FOOD.addTo(
+ MeatRaw,
+ MeatCooked,
+ Ice,
+ Water,
+ Salt,
+ Chili,
+ Cocoa,
+ Cheese,
+ Coffee,
+ Chocolate,
+ Milk,
+ Honey,
+ FryingOilHot,
+ FishOil,
+ SeedOil,
+ SeedOilLin,
+ SeedOilHemp,
+ Wheat,
+ Sugar,
+ FreshWater);
+
+ Wood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
+ WoodSealed.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.NO_WORKING);
+ Peanutwood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
+ LiveRoot.add(
+ SubTag.WOOD,
+ SubTag.FLAMMABLE,
+ SubTag.NO_SMELTING,
+ SubTag.NO_SMASHING,
+ SubTag.MAGICAL,
+ SubTag.MORTAR_GRINDABLE);
+ IronWood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE);
+ Steeleaf.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE, SubTag.NO_SMELTING);
+
+ MeatRaw.add(SubTag.NO_SMASHING);
+ MeatCooked.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Snow.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING);
+ Ice.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING);
+ Water.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING);
+ Sulfur.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE);
+ Saltpeter.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE);
+ Graphite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.NO_SMELTING);
+
+ Wheat.add(SubTag.FLAMMABLE, SubTag.MORTAR_GRINDABLE);
+ Paper.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE, SubTag.PAPER);
+ Coal.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE);
+ Charcoal.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE);
+ Lignite.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE);
+
+ Rubber.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY);
+ StyreneButadieneRubber.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY);
+ Plastic.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY);
+ PolyvinylChloride.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY);
+ Polystyrene.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY);
+ Silicone.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY);
+ Polytetrafluoroethylene.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.STRETCHY);
+ Polybenzimidazole.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.STRETCHY);
+ PolyphenyleneSulfide.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.STRETCHY);
+ MaterialsKevlar.Kevlar.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.STRETCHY);
+
+ TNT.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
+ Gunpowder.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
+ Glyceryl.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
+ NitroCoalFuel.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
+ NitroFuel.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
+ NitroCarbon.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
+
+ Lead.add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL, SubTag.SOLDERING_MATERIAL_BAD);
+ Tin.add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL);
+ SolderingAlloy.add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL, SubTag.SOLDERING_MATERIAL_GOOD);
+
+ Cheese.add(SubTag.SMELTING_TO_FLUID);
+ Sugar.add(SubTag.SMELTING_TO_FLUID);
+
+ Concrete.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.SMELTING_TO_FLUID);
+ ConstructionFoam.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.EXPLOSIVE, SubTag.NO_SMELTING);
+ ReinforceGlass.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.SMELTING_TO_FLUID);
+ Redstone.add(
+ SubTag.STONE,
+ SubTag.NO_SMASHING,
+ SubTag.UNBURNABLE,
+ SubTag.SMELTING_TO_FLUID,
+ SubTag.PULVERIZING_CINNABAR);
+ Glowstone.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID);
+ Electrotine.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID);
+ Teslatite.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID);
+ Netherrack.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.FLAMMABLE);
+ Stone.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.NO_RECYCLING);
+ Brick.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ NetherBrick.add(SubTag.STONE, SubTag.NO_SMASHING);
+ Endstone.add(SubTag.STONE, SubTag.NO_SMASHING);
+ Marble.add(SubTag.STONE, SubTag.NO_SMASHING);
+ Basalt.add(SubTag.STONE, SubTag.NO_SMASHING);
+ Redrock.add(SubTag.STONE, SubTag.NO_SMASHING);
+ Obsidian.add(SubTag.STONE, SubTag.NO_SMASHING);
+ Flint.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE);
+ GraniteRed.add(SubTag.STONE, SubTag.NO_SMASHING);
+ GraniteBlack.add(SubTag.STONE, SubTag.NO_SMASHING);
+ Salt.add(SubTag.STONE, SubTag.NO_SMASHING);
+ RockSalt.add(SubTag.STONE, SubTag.NO_SMASHING);
+
+ Sand.add(SubTag.NO_RECYCLING);
+
+ Gold.add(SubTag.MORTAR_GRINDABLE);
+ Silver.add(SubTag.MORTAR_GRINDABLE);
+ Iron.add(SubTag.MORTAR_GRINDABLE);
+ IronMagnetic.add(SubTag.MORTAR_GRINDABLE);
+ HSLA.add(SubTag.MORTAR_GRINDABLE);
+ Steel.add(SubTag.MORTAR_GRINDABLE);
+ SteelMagnetic.add(SubTag.MORTAR_GRINDABLE);
+ Zinc.add(SubTag.MORTAR_GRINDABLE);
+ Antimony.add(SubTag.MORTAR_GRINDABLE);
+ Copper.add(SubTag.MORTAR_GRINDABLE);
+ AnnealedCopper.add(SubTag.MORTAR_GRINDABLE);
+ Bronze.add(SubTag.MORTAR_GRINDABLE);
+ Nickel.add(SubTag.MORTAR_GRINDABLE);
+ Invar.add(SubTag.MORTAR_GRINDABLE);
+ Brass.add(SubTag.MORTAR_GRINDABLE);
+ WroughtIron.add(SubTag.MORTAR_GRINDABLE);
+ Electrum.add(SubTag.MORTAR_GRINDABLE);
+ Clay.add(SubTag.MORTAR_GRINDABLE);
+
+ Glass.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_RECYCLING, SubTag.SMELTING_TO_FLUID);
+ Diamond.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE);
+ Emerald.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Amethyst.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Tanzanite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Topaz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ BlueTopaz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Amber.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ GreenSapphire.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Sapphire.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Ruby.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ FoolsRuby.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Opal.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Olivine.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Jasper.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ GarnetRed.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ GarnetYellow.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Mimichite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ CrystalFlux.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Crystal.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Niter.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Apatite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE);
+ Lapis.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE);
+ Sodalite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE);
+ Lazurite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE);
+ Monazite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE);
+ Quartzite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ);
+ Quartz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ);
+ SiliconDioxide
+ .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ);
+ Dilithium.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ);
+ NetherQuartz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ);
+ CertusQuartz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ);
+ CertusQuartzCharged
+ .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ);
+ Fluix.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ);
+ TricalciumPhosphate
+ .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.EXPLOSIVE);
+ Phosphate.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.EXPLOSIVE);
+ InfusedAir.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE);
+ InfusedFire.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE);
+ InfusedEarth.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE);
+ InfusedWater.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE);
+ InfusedEntropy.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE);
+ InfusedOrder.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE);
+ InfusedVis.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE);
+ InfusedDull.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE);
+ NetherStar.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE);
+ EnderPearl.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.PEARL);
+ EnderEye.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.PEARL);
+ Firestone.add(
+ SubTag.CRYSTAL,
+ SubTag.NO_SMASHING,
+ SubTag.NO_SMELTING,
+ SubTag.CRYSTALLISABLE,
+ SubTag.MAGICAL,
+ SubTag.QUARTZ,
+ SubTag.UNBURNABLE,
+ SubTag.BURNING);
+ Forcicium.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL);
+ Forcillium.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL);
+ Force.add(SubTag.CRYSTAL, SubTag.MAGICAL, SubTag.UNBURNABLE);
+ Magic.add(SubTag.CRYSTAL, SubTag.MAGICAL, SubTag.UNBURNABLE);
+
+ Primitive.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Basic.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Good.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Advanced.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Data.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Elite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Master.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Ultimate.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Superconductor.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); // Todo: remove this once it will be fully
+ // deprecated
+ Infinite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Bio.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ SuperconductorMV.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ SuperconductorHV.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ SuperconductorEV.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ SuperconductorIV.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ SuperconductorLuV.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ SuperconductorZPM.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ // SuperconductorUV .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ SuperconductorUHV.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+
+ Blaze.add(SubTag.MAGICAL, SubTag.SMELTING_TO_FLUID, SubTag.MORTAR_GRINDABLE, SubTag.UNBURNABLE, SubTag.BURNING);
+ FierySteel.add(SubTag.MAGICAL, SubTag.UNBURNABLE, SubTag.BURNING);
+ DarkThaumium.add(SubTag.MAGICAL);
+ Thaumium.add(SubTag.MAGICAL);
+ Void.add(SubTag.MAGICAL);
+ Enderium.add(SubTag.MAGICAL);
+ AstralSilver.add(SubTag.MAGICAL);
+ Mithril.add(SubTag.MAGICAL);
+
+ Carbon.add(SubTag.NO_SMELTING);
+ Boron.add(SubTag.SMELTING_TO_FLUID);
+ }
+
+ public static void init() {
+ new ProcessingConfig();
+ if (!GT_Mod.gregtechproxy.mEnableAllMaterials) new ProcessingModSupport();
+ mMaterialHandlers.forEach(IMaterialHandler::onMaterialsInit); // This is where addon mods can add/manipulate
+ // materials
+ initMaterialProperties(); // No more material addition or manipulation should be done past this point!
+ MATERIALS_ARRAY = MATERIALS_MAP.values()
+ .toArray(new Materials[0]); // Generate standard object array. This is a
+ // lot faster to loop over.
+ VALUES = Arrays.asList(MATERIALS_ARRAY);
+
+ disableUnusedHotIngots();
+ fillGeneratedMaterialsMap();
+ }
+
+ private static void disableUnusedHotIngots() {
+ OrePrefixes.ingotHot.mDisabledItems.addAll(
+ Arrays.stream(Materials.values())
+ .parallel()
+ .filter(OrePrefixes.ingotHot::doGenerateItem)
+ .filter(m -> m.mBlastFurnaceTemp < 1750 && m.mAutoGenerateBlastFurnaceRecipes)
+ .collect(Collectors.toSet()));
+ OrePrefixes.ingotHot.disableComponent(Materials.Reinforced);
+ OrePrefixes.ingotHot.disableComponent(Materials.ConductiveIron);
+ OrePrefixes.ingotHot.disableComponent(Materials.FierySteel);
+ OrePrefixes.ingotHot.disableComponent(Materials.ElectricalSteel);
+ OrePrefixes.ingotHot.disableComponent(Materials.EndSteel);
+ OrePrefixes.ingotHot.disableComponent(Materials.Soularium);
+ OrePrefixes.ingotHot.disableComponent(Materials.EnergeticSilver);
+ OrePrefixes.ingotHot.disableComponent(Materials.Cheese);
+ OrePrefixes.ingotHot.disableComponent(Materials.Calcium);
+ OrePrefixes.ingotHot.disableComponent(Materials.Flerovium);
+ OrePrefixes.ingotHot.disableComponent(Materials.Cobalt);
+ OrePrefixes.ingotHot.disableComponent(Materials.RedstoneAlloy);
+ OrePrefixes.ingotHot.disableComponent(Materials.Ardite);
+ OrePrefixes.ingotHot.disableComponent(Materials.DarkSteel);
+ OrePrefixes.ingotHot.disableComponent(Materials.BlackSteel);
+ OrePrefixes.ingotHot.disableComponent(Materials.EnergeticAlloy);
+ OrePrefixes.ingotHot.disableComponent(Materials.PulsatingIron);
+ OrePrefixes.ingotHot.disableComponent(Materials.CrudeSteel);
+ }
+
+ /**
+ * Init rendering properties. Will be called at pre init by GT client proxy.
+ */
+ public static void initClient() {
+ MaterialsUEVplus.TranscendentMetal.renderer = new TranscendentMetalRenderer();
+ MaterialsBotania.GaiaSpirit.renderer = new GaiaSpiritRenderer();
+ Infinity.renderer = new InfinityRenderer();
+ CosmicNeutronium.renderer = new CosmicNeutroniumRenderer();
+ MaterialsUEVplus.Universium.renderer = new UniversiumRenderer();
+ MaterialsUEVplus.Eternity.renderer = new InfinityRenderer();
+ MaterialsUEVplus.MagMatter.renderer = new InfinityRenderer();
+ }
+
+ private static void fillGeneratedMaterialsMap() {
+ for (Materials aMaterial : MATERIALS_ARRAY) {
+ if (aMaterial.mMetaItemSubID >= 0) {
+ if (aMaterial.mMetaItemSubID < 1000) {
+ if (aMaterial.mHasParentMod) {
+ if (GregTech_API.sGeneratedMaterials[aMaterial.mMetaItemSubID] == null) {
+ GregTech_API.sGeneratedMaterials[aMaterial.mMetaItemSubID] = aMaterial;
+ } else throw new IllegalArgumentException(
+ "The Material Index " + aMaterial.mMetaItemSubID
+ + " for "
+ + aMaterial.mName
+ + " is already used!");
+ }
+ } else throw new IllegalArgumentException(
+ "The Material Index " + aMaterial.mMetaItemSubID
+ + " for "
+ + aMaterial.mName
+ + " is/over the maximum of 1000");
+ }
+ }
+ }
+
+ private static void addFuelValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mFuelPower = GregTech_API.sMaterialProperties.get(aConfigPath, "FuelPower", aMaterial.mFuelPower);
+ aMaterial.mFuelType = GregTech_API.sMaterialProperties.get(aConfigPath, "FuelType", aMaterial.mFuelType);
+ }
+
+ private static void addTemperatureValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mMeltingPoint = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "MeltingPoint", aMaterial.mMeltingPoint);
+ aMaterial.mBlastFurnaceRequired = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "BlastFurnaceRequired", aMaterial.mBlastFurnaceRequired);
+ aMaterial.mBlastFurnaceTemp = (short) GregTech_API.sMaterialProperties
+ .get(aConfigPath, "BlastFurnaceTemp", aMaterial.mBlastFurnaceTemp);
+ aMaterial.mGasTemp = GregTech_API.sMaterialProperties.get(aConfigPath, "GasTemp", aMaterial.mGasTemp);
+ aMaterial.setHeatDamage(
+ (float) GregTech_API.sMaterialProperties.get(aConfigPath, "HeatDamage", aMaterial.mHeatDamage));
+ }
+
+ private static void addDensityValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mDensityMultiplier = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "DensityMultiplier", aMaterial.mDensityMultiplier);
+ aMaterial.mDensityDivider = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "DensityDivider", aMaterial.mDensityDivider);
+ aMaterial.mDensity = (long) GregTech_API.sMaterialProperties.get(
+ aConfigPath,
+ "Density",
+ ((double) M * aMaterial.mDensityMultiplier)
+ / (aMaterial.mDensityDivider != 0 ? aMaterial.mDensityDivider : 1));
+ }
+
+ private static void addColorValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mTransparent = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "Transparent", aMaterial.mTransparent);
+ String aColor = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "DyeColor", aMaterial.mColor == Dyes._NULL ? "None" : aMaterial.mColor.toString());
+ aMaterial.mColor = aColor.equals("None") ? Dyes._NULL : Dyes.get(aColor);
+ String[] aRGBA = GregTech_API.sMaterialProperties.get(
+ aConfigPath,
+ "MatRGBA",
+ aMaterial.mRGBa[0] + "," + aMaterial.mRGBa[1] + "," + aMaterial.mRGBa[2] + "," + aMaterial.mRGBa[3] + ",")
+ .split(",");
+ aMaterial.mRGBa[0] = Short.parseShort(aRGBA[0]);
+ aMaterial.mRGBa[1] = Short.parseShort(aRGBA[1]);
+ aMaterial.mRGBa[2] = Short.parseShort(aRGBA[2]);
+ aMaterial.mRGBa[3] = Short.parseShort(aRGBA[3]);
+ }
+
+ private static void addToolValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mDurability = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "ToolDurability", aMaterial.mDurability);
+ aMaterial.mToolSpeed = (float) GregTech_API.sMaterialProperties
+ .get(aConfigPath, "ToolSpeed", aMaterial.mToolSpeed);
+ aMaterial.mToolQuality = (byte) GregTech_API.sMaterialProperties
+ .get(aConfigPath, "ToolQuality", aMaterial.mToolQuality);
+ // Moved from GT_Proxy? (Not sure)
+ aMaterial.mHandleMaterial = (aMaterial == Desh ? aMaterial.mHandleMaterial
+ : aMaterial == Diamond || aMaterial == Thaumium ? Wood
+ : aMaterial.contains(SubTag.BURNING) ? Blaze
+ : aMaterial.contains(SubTag.MAGICAL) && aMaterial.contains(SubTag.CRYSTAL)
+ && Thaumcraft.isModLoaded() ? Thaumium
+ : aMaterial.getMass() > Element.Tc.getMass() * 2 ? TungstenSteel
+ : aMaterial.getMass() > Element.Tc.getMass() ? Steel : Wood);
+
+ if (aMaterial == MaterialsUEVplus.SpaceTime) {
+ aMaterial.mHandleMaterial = Materials.Infinity;
+ }
+
+ if (aMaterial == MaterialsUEVplus.TranscendentMetal) {
+ aMaterial.mHandleMaterial = Materials.DraconiumAwakened;
+ }
+
+ if (aMaterial == MaterialsUEVplus.Eternity) {
+ aMaterial.mHandleMaterial = MaterialsUEVplus.SpaceTime;
+ }
+
+ if (aMaterial == MaterialsUEVplus.MagMatter) {
+ aMaterial.mHandleMaterial = MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter;
+ }
+ }
+
+ private static void addEnchantmentValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mEnchantmentToolsLevel = (byte) GregTech_API.sMaterialProperties
+ .get(aConfigPath, "EnchantmentLevel", aMaterial.mEnchantmentToolsLevel);
+ String aEnchantmentName = GregTech_API.sMaterialProperties.get(
+ aConfigPath,
+ "Enchantment",
+ aMaterial.mEnchantmentTools != null ? aMaterial.mEnchantmentTools.getName() : "");
+ if (aMaterial.mEnchantmentTools != null && !aEnchantmentName.equals(aMaterial.mEnchantmentTools.getName()))
+ IntStream.range(0, Enchantment.enchantmentsList.length)
+ .filter(i -> aEnchantmentName.equals(Enchantment.enchantmentsList[i].getName()))
+ .forEach(i -> aMaterial.mEnchantmentTools = Enchantment.enchantmentsList[i]);
+ }
+
+ private static void addProcessingIntoValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mSmeltInto = MATERIALS_MAP
+ .get(GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialSmeltInto", aMaterial.mSmeltInto.mName));
+ aMaterial.mMacerateInto = MATERIALS_MAP.get(
+ GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialMacerateInto", aMaterial.mMacerateInto.mName));
+ aMaterial.mArcSmeltInto = MATERIALS_MAP.get(
+ GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialArcSmeltInto", aMaterial.mArcSmeltInto.mName));
+ aMaterial.mDirectSmelting = MATERIALS_MAP.get(
+ GregTech_API.sMaterialProperties
+ .get(aConfigPath, "MaterialDirectSmeltInto", aMaterial.mDirectSmelting.mName));
+ aMaterial.mAutoGenerateBlastFurnaceRecipes = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "AutoGenerateBlastFurnaceRecipes", aMaterial.mAutoGenerateBlastFurnaceRecipes);
+ }
+
+ private static void addMultiplierValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mOreValue = GregTech_API.sMaterialProperties.get(aConfigPath, "OreValue", aMaterial.mOreValue);
+ aMaterial.setOreMultiplier(
+ GregTech_API.sMaterialProperties.get(aConfigPath, "OreMultiplier", aMaterial.mOreMultiplier));
+ aMaterial.setSmeltingMultiplier(
+ GregTech_API.sMaterialProperties.get(aConfigPath, "OreSmeltingMultiplier", aMaterial.mSmeltingMultiplier));
+ aMaterial.setByProductMultiplier(
+ GregTech_API.sMaterialProperties
+ .get(aConfigPath, "OreByProductMultiplier", aMaterial.mByProductMultiplier));
+ }
+
+ private static void addHasGasFluid(Materials aMaterial, String aConfigPath) {
+
+ if (!aMaterial.mIconSet.is_custom) {
+ aMaterial.mHasPlasma = GregTech_API.sMaterialProperties.get(aConfigPath, "AddPlasma", aMaterial.mHasPlasma);
+ if (aMaterial.mHasPlasma) {
+ GT_Mod.gregtechproxy.addAutogeneratedPlasmaFluid(aMaterial);
+ }
+ aMaterial.mHasGas = GregTech_API.sMaterialProperties.get(aConfigPath, "AddGas", aMaterial.mHasGas);
+ if (aMaterial.mHasGas) {
+ GT_FluidFactory
+ .of(aMaterial.mName.toLowerCase(), aMaterial.mDefaultLocalName, aMaterial, GAS, aMaterial.mGasTemp);
+ }
+ }
+ }
+
+ private static void addInternalStuff(Materials aMaterial, String aConfigPath) {
+ aMaterial.mMetaItemSubID = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "MaterialID", aMaterial.mCustomOre ? -1 : aMaterial.mMetaItemSubID);
+ aMaterial.mTypes = GregTech_API.sMaterialProperties.get(
+ aConfigPath,
+ "MaterialTypes",
+ aMaterial.mCustomOre ? 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 : aMaterial.mTypes);
+ aMaterial.mUnificatable = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "Unificatable", aMaterial.mUnificatable);
+ aMaterial.mHasParentMod = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "HasParentMod", aMaterial.mHasParentMod);
+ }
+
+ private static void addLocalisation(Materials aMaterial, String aConfigPath) {
+ aMaterial.mDefaultLocalName = GregTech_API.sMaterialProperties.get(
+ aConfigPath,
+ "MaterialName",
+ aMaterial.mCustomOre ? "CustomOre" + aMaterial.mCustomID : aMaterial.mDefaultLocalName);
+ aMaterial.mChemicalFormula = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "ChemicalFormula", aMaterial.mChemicalFormula);
+ }
+
+ private static String getConfigPath(Materials aMaterial) {
+ String cOre = aMaterial.mCustomOre ? aMaterial.mCustomID : aMaterial.mName;
+ return "materials." + aMaterial.mConfigSection + "." + cOre;
+ }
+
+ private static void addHarvestLevelNerfs(Materials aMaterial, String aConfigPath) {
+ /* Moved the harvest level changes from GT_Mod to have fewer things iterating over MATERIALS_ARRAY */
+ if (GT_Mod.gregtechproxy.mChangeHarvestLevels && aMaterial.mToolQuality > 0
+ && aMaterial.mMetaItemSubID < GT_Mod.gregtechproxy.mHarvestLevel.length
+ && aMaterial.mMetaItemSubID >= 0) {
+ GT_Mod.gregtechproxy.mHarvestLevel[aMaterial.mMetaItemSubID] = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "HarvestLevel", aMaterial.mToolQuality);
+ }
+ }
+
+ private static void addHarvestLevels() {
+ GT_Mod.gregtechproxy.mChangeHarvestLevels = GregTech_API.sMaterialProperties
+ .get("harvestlevel", "ActivateHarvestLevelChange", false);
+ GT_Mod.gregtechproxy.mMaxHarvestLevel = Math
+ .min(15, GregTech_API.sMaterialProperties.get("harvestlevel", "MaxHarvestLevel", 7));
+ GT_Mod.gregtechproxy.mGraniteHavestLevel = GregTech_API.sMaterialProperties
+ .get("harvestlevel", "GraniteHarvestLevel", 3);
+ }
+
+ public static void initMaterialProperties() {
+ addHarvestLevels();
+ for (Materials aMaterial : MATERIALS_MAP.values()) {
+ if (aMaterial != null && aMaterial != Materials._NULL && aMaterial != Materials.Empty) {
+
+ String aConfigPath = getConfigPath(aMaterial);
+
+ addFuelValues(aMaterial, aConfigPath);
+ addTemperatureValues(aMaterial, aConfigPath);
+ addDensityValues(aMaterial, aConfigPath);
+ addColorValues(aMaterial, aConfigPath);
+ addToolValues(aMaterial, aConfigPath);
+ addEnchantmentValues(aMaterial, aConfigPath);
+ addProcessingIntoValues(aMaterial, aConfigPath);
+ addMultiplierValues(aMaterial, aConfigPath);
+ addHasGasFluid(aMaterial, aConfigPath);
+ addInternalStuff(aMaterial, aConfigPath);
+ addLocalisation(aMaterial, aConfigPath);
+ SubTagCalculation(aMaterial, aConfigPath);
+ OreByProductsCalculation(aMaterial, aConfigPath);
+ OreReRegistrationsCalculation(aMaterial, aConfigPath);
+ aspectCalculation(aMaterial, aConfigPath);
+ addHarvestLevelNerfs(aMaterial, aConfigPath);
+ }
+ }
+ }
+
+ private static void aspectCalculation(Materials aMaterial, String aConfigPath) {
+
+ String aDefaultAspectString = aMaterial.mAspects.stream()
+ .map(aAspectStack -> aAspectStack.mAspect.toString())
+ .collect(Collectors.joining(",", ",", ""));
+ String aDefaultAspectAmountString = aMaterial.mAspects.stream()
+ .map(aAspectStack -> String.valueOf(aAspectStack.mAmount))
+ .collect(Collectors.joining(",", ",", ""));
+
+ String aConfigAspectString = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "ListTCAspects", aDefaultAspectString);
+ String aConfigAspectAmountString = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "ListTCAspectAmounts", aDefaultAspectAmountString);
+
+ if (!aConfigAspectString.equals(aDefaultAspectString)
+ || !aConfigAspectAmountString.equals(aDefaultAspectAmountString)) {
+ aMaterial.mAspects.clear();
+ if (aConfigAspectString.length() > 0) {
+ String[] aAspects = aConfigAspectString.split(",");
+ String[] aAspectAmounts = aConfigAspectAmountString.split(",");
+ for (int i = 0; i < aAspects.length; i++) {
+ String aAspectString = aAspects[i];
+ long aAspectAmount = Long.parseLong(aAspectAmounts[i]);
+ TC_AspectStack aAspectStack = new TC_AspectStack(TC_Aspects.valueOf(aAspectString), aAspectAmount);
+ aMaterial.mAspects.add(aAspectStack);
+ }
+ }
+ }
+ }
+
+ private static void OreReRegistrationsCalculation(Materials aMaterial, String aConfigPath) {
+ String aDefaultMatReRegString = aMaterial.mOreReRegistrations.stream()
+ .map(aTag -> aTag.mName)
+ .collect(Collectors.joining(",", ",", ""));
+ String aConfigMatMatReRegString = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "ListMaterialReRegistrations", aDefaultMatReRegString);
+ if (!aConfigMatMatReRegString.equals(aDefaultMatReRegString)) {
+ aMaterial.mOreReRegistrations.clear();
+ if (aConfigMatMatReRegString.length() > 0) {
+ Arrays.stream(aConfigMatMatReRegString.split(","))
+ .map(MATERIALS_MAP::get)
+ .filter(Objects::nonNull)
+ .forEach(aMat -> aMaterial.mOreReRegistrations.add(aMat));
+ }
+ }
+ }
+
+ private static void OreByProductsCalculation(Materials aMaterial, String aConfigPath) {
+ String aDefaultMatByProString = aMaterial.mOreByProducts.stream()
+ .map(aTag -> aTag.mName)
+ .collect(Collectors.joining(",", ",", ""));
+ String aConfigMatByProString = GregTech_API.sMaterialProperties
+ .get(aConfigPath, "ListMaterialByProducts", aDefaultMatByProString);
+ if (!aConfigMatByProString.equals(aDefaultMatByProString)) {
+ aMaterial.mOreByProducts.clear();
+ if (aConfigMatByProString.length() > 0) {
+ Arrays.stream(aConfigMatByProString.split(","))
+ .map(MATERIALS_MAP::get)
+ .filter(Objects::nonNull)
+ .forEach(aMat -> aMaterial.mOreByProducts.add(aMat));
+ }
+ }
+ }
+
+ /**
+ * Converts the pre-defined list of SubTags from a material into a list of SubTag names for setting/getting to/from
+ * the config. It is then converted to a String[] and finally to a singular String for insertion into the config If
+ * the config string is different from the default, we then want to clear the Materials SubTags and insert new ones
+ * from the config string.
+ */
+ private static void SubTagCalculation(Materials aMaterial, String aConfigPath) {
+ String aDefaultTagString = aMaterial.mSubTags.stream()
+ .map(aTag -> aTag.mName)
+ .collect(Collectors.joining(",", ",", ""));
+ String aConfigTagString = GregTech_API.sMaterialProperties.get(aConfigPath, "ListSubTags", aDefaultTagString);
+ if (!aConfigTagString.equals(aDefaultTagString)) {
+ aMaterial.mSubTags.clear();
+ if (aConfigTagString.length() > 0) {
+ Arrays.stream(aConfigTagString.split(","))
+ .map(SubTag.sSubTags::get)
+ .filter(Objects::nonNull)
+ .forEach(aTag -> aMaterial.mSubTags.add(aTag));
+ }
+ }
+ }
+
+ /**
+ * This is for keeping compatibility with addons mods (Such as TinkersGregworks etc.) that looped over the old
+ * materials enum
+ */
+ @Deprecated
+ public static Materials valueOf(String aMaterialName) {
+ return getMaterialsMap().get(aMaterialName);
+ }
+
+ /**
+ * This is for keeping compatibility with addons mods (Such as TinkersGregworks etc.) that looped over the old
+ * materials enum
+ */
+ public static Materials[] values() {
+ return MATERIALS_ARRAY;
+ }
+
+ /**
+ * This should only be used for getting a Material by its name as a String. Do not loop over this map, use values().
+ */
+ public static Map<String, Materials> getMaterialsMap() {
+ return MATERIALS_MAP;
+ }
+
+ @Nonnull
+ public static Materials get(String aMaterialName) {
+ return getWithFallback(aMaterialName, Materials._NULL);
+ }
+
+ @Nonnull
+ public static Materials getWithFallback(String name, @Nonnull Materials fallback) {
+ Materials material = getMaterialsMap().get(name);
+ if (material != null) {
+ return material;
+ }
+ return fallback;
+ }
+
+ public static Materials getRealMaterial(String aMaterialName) {
+ return get(aMaterialName).mMaterialInto;
+ }
+
+ /**
+ * Adds a Class implementing IMaterialRegistrator to the master list
+ */
+ public static boolean add(IMaterialHandler aRegistrator) {
+ if (aRegistrator == null) return false;
+ return mMaterialHandlers.add(aRegistrator);
+ }
+
+ public static String getLocalizedNameForItem(String aFormat, int aMaterialID) {
+ if (aMaterialID >= 0 && aMaterialID < 1000) {
+ Materials aMaterial = GregTech_API.sGeneratedMaterials[aMaterialID];
+ if (aMaterial != null) return aMaterial.getLocalizedNameForItem(aFormat);
+ }
+ return aFormat;
+ }
+
+ public static Collection<Materials> getAll() {
+ return MATERIALS_MAP.values();
+ }
+
+ public Materials disableAutoGeneratedBlastFurnaceRecipes() {
+ mAutoGenerateBlastFurnaceRecipes = false;
+ return this;
+ }
+
+ public Materials disableAutoGeneratedVacuumFreezerRecipe() {
+ mAutoGenerateVacuumFreezerRecipes = false;
+ return this;
+ }
+
+ public Materials setTurbineMultipliers(float steamMultiplier, float gasMultiplier, float plasmaMultiplier) {
+ mSteamMultiplier = steamMultiplier;
+ mGasMultiplier = gasMultiplier;
+ mPlasmaMultiplier = plasmaMultiplier;
+ return this;
+ }
+
+ public Materials disableAutoGeneratedRecycleRecipes() {
+ mAutoGenerateRecycleRecipes = false;
+ return this;
+ }
+
+ /**
+ * This is for keeping compatibility with addons mods (Such as TinkersGregworks etc.) that looped over the old
+ * materials enum
+ */
+ @Deprecated
+ public String name() {
+ return mName;
+ }
+
+ public boolean isRadioactive() {
+ if (mElement != null) return mElement.mHalfLifeSeconds >= 0;
+
+ return mMaterialList.stream()
+ .map(stack -> stack.mMaterial)
+ .anyMatch(Materials::isRadioactive);
+ }
+
+ public long getProtons() {
+ if (mElement != null) return mElement.getProtons();
+ if (mMaterialList.size() == 0) return Element.Tc.getProtons();
+ long rAmount = 0, tAmount = 0;
+ for (MaterialStack tMaterial : mMaterialList) {
+ tAmount += tMaterial.mAmount;
+ rAmount += tMaterial.mAmount * tMaterial.mMaterial.getProtons();
+ }
+ return (getDensity() * rAmount) / (tAmount * M);
+ }
+
+ public long getNeutrons() {
+ if (mElement != null) return mElement.getNeutrons();
+ if (mMaterialList.size() == 0) return Element.Tc.getNeutrons();
+ long rAmount = 0, tAmount = 0;
+ for (MaterialStack tMaterial : mMaterialList) {
+ tAmount += tMaterial.mAmount;
+ rAmount += tMaterial.mAmount * tMaterial.mMaterial.getNeutrons();
+ }
+ return (getDensity() * rAmount) / (tAmount * M);
+ }
+
+ public long getMass() {
+ if (mElement != null) return mElement.getMass();
+ if (mMaterialList.size() == 0) return Element.Tc.getMass();
+ long rAmount = 0, tAmount = 0;
+ for (MaterialStack tMaterial : mMaterialList) {
+ tAmount += tMaterial.mAmount;
+ rAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass();
+ }
+ return (getDensity() * rAmount) / (tAmount * M);
+ }
+
+ public long getDensity() {
+ return mDensity;
+ }
+
+ public String getToolTip() {
+ return getToolTip(1, false);
+ }
+
+ public String getToolTip(boolean aShowQuestionMarks) {
+ return getToolTip(1, aShowQuestionMarks);
+ }
+
+ public String getToolTip(long aMultiplier) {
+ return getToolTip(aMultiplier, false);
+ }
+
+ public String getToolTip(long aMultiplier, boolean aShowQuestionMarks) {
+ if (!aShowQuestionMarks && mChemicalFormula.equals("?")) return "";
+ if (aMultiplier >= M * 2 && !mMaterialList.isEmpty()) {
+ return ((mElement != null || (mMaterialList.size() < 2 && mMaterialList.get(0).mAmount == 1))
+ ? mChemicalFormula
+ : "(" + mChemicalFormula + ")") + aMultiplier;
+ }
+ return mChemicalFormula;
+ }
+
+ /**
+ * Adds an ItemStack to this Material.
+ */
+ public Materials add(ItemStack aStack) {
+ if (aStack != null && !contains(aStack)) mMaterialItems.add(aStack);
+ return this;
+ }
+
+ /**
+ * This is used to determine if any of the ItemStacks belongs to this Material.
+ */
+ public boolean contains(ItemStack... aStacks) {
+ if (aStacks == null || aStacks.length == 0) return false;
+ return mMaterialItems.stream()
+ .anyMatch(
+ tStack -> Arrays.stream(aStacks)
+ .anyMatch(aStack -> GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())));
+ }
+
+ /**
+ * This is used to determine if an ItemStack belongs to this Material.
+ */
+ public boolean remove(ItemStack aStack) {
+ if (aStack == null) return false;
+ boolean temp = false;
+ int mMaterialItems_sS = mMaterialItems.size();
+ for (int i = 0; i < mMaterialItems_sS; i++) if (GT_Utility.areStacksEqual(aStack, mMaterialItems.get(i))) {
+ mMaterialItems.remove(i--);
+ temp = true;
+ }
+ return temp;
+ }
+
+ /**
+ * Adds a SubTag to this Material
+ */
+ @Override
+ public ISubTagContainer add(SubTag... aTags) {
+ if (aTags != null) for (SubTag aTag : aTags) if (aTag != null && !contains(aTag)) {
+ aTag.addContainerToList(this);
+ mSubTags.add(aTag);
+ }
+ return this;
+ }
+
+ /**
+ * If this Material has this exact SubTag
+ */
+ @Override
+ public boolean contains(SubTag aTag) {
+ return mSubTags.contains(aTag);
+ }
+
+ /**
+ * Removes a SubTag from this Material
+ */
+ @Override
+ public boolean remove(SubTag aTag) {
+ return mSubTags.remove(aTag);
+ }
+
+ /**
+ * Sets the Heat Damage for this Material (negative = frost)
+ */
+ @SuppressWarnings("UnusedReturnValue") // Maintains signature
+ public Materials setHeatDamage(float aHeatDamage) {
+ mHeatDamage = aHeatDamage;
+ return this;
+ }
+
+ /**
+ * Adds a Material to the List of Byproducts when grinding this Ore. Is used for more precise Ore grinding, so that
+ * it is possible to choose between certain kinds of Materials.
+ */
+ @SuppressWarnings("UnusedReturnValue") // Maintains signature
+ public Materials addOreByProduct(Materials aMaterial) {
+ if (!mOreByProducts.contains(aMaterial.mMaterialInto)) mOreByProducts.add(aMaterial.mMaterialInto);
+ return this;
+ }
+
+ /**
+ * Adds multiple Materials to the List of Byproducts when grinding this Ore. Is used for more precise Ore grinding,
+ * so that it is possible to choose between certain kinds of Materials.
+ */
+ public Materials addOreByProducts(Materials... aMaterials) {
+ for (Materials tMaterial : aMaterials) if (tMaterial != null) addOreByProduct(tMaterial);
+ return this;
+ }
+
+ /**
+ * If this Ore gives multiple drops of its Main Material. Lapis Ore for example gives about 6 drops.
+ */
+ public Materials setOreMultiplier(int aOreMultiplier) {
+ if (aOreMultiplier > 0) mOreMultiplier = aOreMultiplier;
+ return this;
+ }
+
+ /**
+ * If this Ore gives multiple drops of its Byproduct Material.
+ */
+ @SuppressWarnings("UnusedReturnValue") // Maintains signature
+ public Materials setByProductMultiplier(int aByProductMultiplier) {
+ if (aByProductMultiplier > 0) mByProductMultiplier = aByProductMultiplier;
+ return this;
+ }
+
+ /**
+ * If this Ore gives multiple drops of its Main Material. Lapis Ore for example gives about 6 drops.
+ */
+ public Materials setSmeltingMultiplier(int aSmeltingMultiplier) {
+ if (aSmeltingMultiplier > 0) mSmeltingMultiplier = aSmeltingMultiplier;
+ return this;
+ }
+
+ /**
+ * This Ore should be molten directly into an Ingot of this Material instead of an Ingot of itself.
+ */
+ public Materials setDirectSmelting(Materials aMaterial) {
+ if (aMaterial != null) mDirectSmelting = aMaterial.mMaterialInto.mDirectSmelting;
+ return this;
+ }
+
+ /**
+ * This Material should be the Main Material this Ore gets ground into. Example, Chromite giving Chrome or Tungstate
+ * giving Tungsten.
+ */
+ @SuppressWarnings("UnusedReturnValue") // Maintains signature
+ public Materials setOreReplacement(Materials aMaterial) {
+ if (aMaterial != null) mOreReplacement = aMaterial.mMaterialInto.mOreReplacement;
+ return this;
+ }
+
+ /**
+ * This Material smelts always into an instance of aMaterial. Used for Magnets.
+ */
+ public Materials setSmeltingInto(Materials aMaterial) {
+ if (aMaterial != null) mSmeltInto = aMaterial.mMaterialInto.mSmeltInto;
+ return this;
+ }
+
+ /**
+ * This Material arc smelts always into an instance of aMaterial. Used for Wrought Iron.
+ */
+ @SuppressWarnings("UnusedReturnValue") // Maintains signature
+ public Materials setArcSmeltingInto(Materials aMaterial) {
+ if (aMaterial != null) mArcSmeltInto = aMaterial.mMaterialInto.mArcSmeltInto;
+ return this;
+ }
+
+ /**
+ * This Material macerates always into an instance of aMaterial.
+ */
+ public Materials setMaceratingInto(Materials aMaterial) {
+ if (aMaterial != null) mMacerateInto = aMaterial.mMaterialInto.mMacerateInto;
+ return this;
+ }
+
+ public Materials setEnchantmentForTools(Enchantment aEnchantment, int aEnchantmentLevel) {
+ mEnchantmentTools = aEnchantment;
+ mEnchantmentToolsLevel = (byte) aEnchantmentLevel;
+ return this;
+ }
+
+ @SuppressWarnings("UnusedReturnValue") // Maintains signature
+ public Materials setEnchantmentForArmors(Enchantment aEnchantment, int aEnchantmentLevel) {
+ mEnchantmentArmors = aEnchantment;
+ mEnchantmentArmorsLevel = (byte) aEnchantmentLevel;
+ return this;
+ }
+
+ public FluidStack getSolid(long aAmount) {
+ if (mSolid == null) return null;
+ return new FluidStack(mSolid, (int) aAmount);
+ }
+
+ public FluidStack getFluid(long aAmount) {
+ if (mFluid == null) return null;
+ return new FluidStack(mFluid, (int) aAmount);
+ }
+
+ public FluidStack getGas(long aAmount) {
+ if (mGas == null) return null;
+ return new FluidStack(mGas, (int) aAmount);
+ }
+
+ public FluidStack getPlasma(long aAmount) {
+ if (mPlasma == null) return null;
+ return new FluidStack(mPlasma, (int) aAmount);
+ }
+
+ public FluidStack getMolten(long aAmount) {
+ if (mStandardMoltenFluid == null) return null;
+ return new FluidStack(mStandardMoltenFluid, (int) aAmount);
+ }
+
+ @Override
+ public short[] getRGBA() {
+ return mRGBa;
+ }
+
+ @Override
+ public String toString() {
+ return this.mName;
+ }
+
+ public String getDefaultLocalizedNameForItem(String aFormat) {
+ return String.format(
+ aFormat.replace("%s", "%temp")
+ .replace("%material", "%s"),
+ this.mDefaultLocalName)
+ .replace("%temp", "%s");
+ }
+
+ public String getLocalizedNameForItem(String aFormat) {
+ return String.format(
+ aFormat.replace("%s", "%temp")
+ .replace("%material", "%s"),
+ this.mLocalizedName)
+ .replace("%temp", "%s");
+ }
+
+ public boolean hasCorrespondingFluid() {
+ return hasCorrespondingFluid;
+ }
+
+ public Materials setHasCorrespondingFluid(boolean hasCorrespondingFluid) {
+ this.hasCorrespondingFluid = hasCorrespondingFluid;
+ return this;
+ }
+
+ public boolean hasCorrespondingGas() {
+ return hasCorrespondingGas;
+ }
+
+ public Materials setHasCorrespondingGas(boolean hasCorrespondingGas) {
+ this.hasCorrespondingGas = hasCorrespondingGas;
+ return this;
+ }
+
+ public Materials setHasCorrespondingPlasma(boolean hasCorrespondingPlasma) {
+ this.mHasPlasma = hasCorrespondingPlasma;
+ return this;
+ }
+
+ public boolean canBeCracked() {
+ return canBeCracked;
+ }
+
+ public Materials setCanBeCracked(boolean canBeCracked) {
+ this.canBeCracked = canBeCracked;
+ return this;
+ }
+
+ public int getLiquidTemperature() {
+ return mMeltingPoint == 0 ? 295 : mMeltingPoint;
+ }
+
+ public Materials setLiquidTemperature(int liquidTemperature) {
+ this.mMeltingPoint = liquidTemperature;
+ return this;
+ }
+
+ public int getGasTemperature() {
+ return mGasTemp == 0 ? 295 : mMeltingPoint;
+ }
+
+ public Materials setGasTemperature(int gasTemperature) {
+ this.mGasTemp = gasTemperature;
+ return this;
+ }
+
+ public Materials setHydroCrackedFluids(Fluid[] hydroCrackedFluids) {
+ this.hydroCrackedFluids = hydroCrackedFluids;
+ return this;
+ }
+
+ public FluidStack getLightlyHydroCracked(int amount) {
+ if (hydroCrackedFluids[0] == null) {
+ return null;
+ }
+ return new FluidStack(hydroCrackedFluids[0], amount);
+ }
+
+ public FluidStack getModeratelyHydroCracked(int amount) {
+ if (hydroCrackedFluids[0] == null) {
+ return null;
+ }
+ return new FluidStack(hydroCrackedFluids[1], amount);
+ }
+
+ public FluidStack getSeverelyHydroCracked(int amount) {
+ if (hydroCrackedFluids[0] == null) {
+ return null;
+ }
+ return new FluidStack(hydroCrackedFluids[2], amount);
+ }
+
+ public Materials setSteamCrackedFluids(Fluid[] steamCrackedFluids) {
+ this.steamCrackedFluids = steamCrackedFluids;
+ return this;
+ }
+
+ public FluidStack getLightlySteamCracked(int amount) {
+ if (hydroCrackedFluids[0] == null) {
+ return null;
+ }
+ return new FluidStack(steamCrackedFluids[0], amount);
+ }
+
+ public FluidStack getModeratelySteamCracked(int amount) {
+ if (hydroCrackedFluids[0] == null) {
+ return null;
+ }
+ return new FluidStack(steamCrackedFluids[1], amount);
+ }
+
+ public FluidStack getSeverelySteamCracked(int amount) {
+ if (hydroCrackedFluids[0] == null) {
+ return null;
+ }
+ return new FluidStack(steamCrackedFluids[2], amount);
+ }
+
+ /**
+ * Check that the material is a proper soldering fluid
+ **
+ * @return true if Materials is a proper soldering fluid
+ */
+ public boolean isProperSolderingFluid() {
+ return mStandardMoltenFluid != null && contains(SubTag.SOLDERING_MATERIAL)
+ && !(GregTech_API.mUseOnlyGoodSolderingMaterials && !contains(SubTag.SOLDERING_MATERIAL_GOOD));
+ }
+
+ public ItemStack getCells(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.cell, this, amount);
+ }
+
+ public ItemStack getDust(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.dust, this, amount);
+ }
+
+ public ItemStack getDustSmall(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.dustSmall, this, amount);
+ }
+
+ public ItemStack getDustTiny(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.dustTiny, this, amount);
+ }
+
+ public ItemStack getGems(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.gem, this, amount);
+ }
+
+ public ItemStack getIngots(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.ingot, this, amount);
+ }
+
+ public ItemStack getNuggets(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.nugget, this, amount);
+ }
+
+ public ItemStack getBlocks(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.block, this, amount);
+ }
+
+ public ItemStack getPlates(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.plate, this, amount);
+ }
+
+ public static Materials getGtMaterialFromFluid(Fluid fluid) {
+ return FLUID_MAP.get(fluid);
+ }
+
+ public ItemStack getNanite(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.nanite, this, amount);
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/MaterialsBotania.java b/src/main/java/gregtech/api/enums/MaterialsBotania.java
new file mode 100644
index 0000000000..6fe538a0bc
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/MaterialsBotania.java
@@ -0,0 +1,238 @@
+package gregtech.api.enums;
+
+import static gregtech.api.enums.OrePrefixes.gem;
+import static gregtech.api.enums.OrePrefixes.ingot;
+import static gregtech.api.enums.OrePrefixes.nugget;
+import static gregtech.api.enums.OrePrefixes.plate;
+import static gregtech.api.enums.OrePrefixes.rod;
+import static gregtech.api.enums.OrePrefixes.rotor;
+
+import java.util.Arrays;
+
+import gregtech.api.enums.TC_Aspects.TC_AspectStack;
+
+public class MaterialsBotania {
+
+ // Botania materials.
+ public static Materials Manasteel = new MaterialBuilder(201, TextureSet.SET_METALLIC, "Manasteel")
+ .setName("Manasteel")
+ .setRGBA(150, 219, 252, 255)
+ .addDustItems()
+ .addMetalItems()
+ .addToolHeadItems()
+ .addGearItems()
+ .setToolSpeed(8.0F)
+ .setDurability(5120)
+ .setToolQuality(4)
+ .setMeltingPoint(1500)
+ .setBlastFurnaceTemp(1500)
+ .setBlastFurnaceRequired(true)
+ .setAspects(
+ Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1)))
+ .constructMaterial();
+ public static Materials Terrasteel = new MaterialBuilder(202, TextureSet.SET_METALLIC, "Terrasteel")
+ .setName("Terrasteel")
+ .setRGBA(76, 191, 38, 255)
+ .addDustItems()
+ .addMetalItems()
+ .addToolHeadItems()
+ .addGearItems()
+ .setToolSpeed(32.0F)
+ .setDurability(10240)
+ .setToolQuality(5)
+ .setMeltingPoint(5400)
+ .setBlastFurnaceTemp(5400)
+ .setBlastFurnaceRequired(true)
+ .setAspects(
+ Arrays.asList(
+ new TC_AspectStack(TC_Aspects.METALLUM, 2),
+ new TC_AspectStack(TC_Aspects.TERRA, 1),
+ new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1)))
+ .constructMaterial();
+ public static Materials ElvenElementium = new MaterialBuilder(203, TextureSet.SET_METALLIC, "Elven Elementium")
+ .setName("ElvenElementium")
+ .setRGBA(219, 37, 205, 255)
+ .addDustItems()
+ .addMetalItems()
+ .addToolHeadItems()
+ .addGearItems()
+ .setToolSpeed(20.0F)
+ .setDurability(32768)
+ .setToolQuality(7)
+ .setMeltingPoint(7200)
+ .setBlastFurnaceTemp(7200)
+ .setBlastFurnaceRequired(true)
+ .setAspects(
+ Arrays.asList(
+ new TC_AspectStack(TC_Aspects.METALLUM, 3),
+ new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2),
+ new TC_AspectStack(TC_Aspects.AURAM, 1)))
+ .constructMaterial();
+ public static Materials Livingrock = new MaterialBuilder(204, new TextureSet("Livingrock", true), "Livingrock")
+ .setName("Livingrock")
+ .addDustItems()
+ .addToolHeadItems()
+ .addGearItems()
+ .setToolSpeed(1.0F)
+ .setDurability(0)
+ .setToolQuality(3)
+ .setOreValue(3)
+ .setDensityMultiplier(1)
+ .setDensityDivider(1)
+ .setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 2), new TC_AspectStack(TC_Aspects.VICTUS, 2)))
+ .constructMaterial();
+ public static Materials GaiaSpirit = new Materials(
+ 205,
+ TextureSet.SET_METALLIC.withBlockTextures("GaiaSpirit"),
+ 32.0F,
+ 850000,
+ 12,
+ 1 | 2 | 64 | 128,
+ 255,
+ 255,
+ 255,
+ 0,
+ "GaiaSpirit",
+ "Gaia Spirit",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ true,
+ 2,
+ 1,
+ 1,
+ Dyes._NULL,
+ Arrays.asList(
+ new TC_AspectStack(TC_Aspects.PRAECANTATIO, 27),
+ new TC_AspectStack(TC_Aspects.AURAM, 24),
+ new TC_AspectStack(TC_Aspects.VICTUS, 24),
+ new TC_AspectStack(TC_Aspects.METALLUM, 1)));
+ public static Materials Livingwood = new MaterialBuilder(206, new TextureSet("Livingwood", true), "Livingwood")
+ .setName("Livingwood")
+ .addDustItems()
+ .addMetalItems()
+ .addToolHeadItems()
+ .addGearItems()
+ .setToolSpeed(1.0F)
+ .setDurability(0)
+ .setToolQuality(3)
+ .setOreValue(3)
+ .setDensityMultiplier(1)
+ .setDensityDivider(1)
+ .setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 4), new TC_AspectStack(TC_Aspects.VICTUS, 2)))
+ .constructMaterial();
+ public static Materials Dreamwood = new MaterialBuilder(207, new TextureSet("Dreamwood", true), "Dreamwood")
+ .setName("Dreamwood")
+ .addDustItems()
+ .addMetalItems()
+ .addToolHeadItems()
+ .addGearItems()
+ .setToolSpeed(1.0F)
+ .setDurability(0)
+ .setToolQuality(3)
+ .setOreValue(3)
+ .setDensityMultiplier(1)
+ .setDensityDivider(1)
+ .setAspects(
+ Arrays.asList(
+ new TC_AspectStack(TC_Aspects.ARBOR, 4),
+ new TC_AspectStack(TC_Aspects.AURAM, 2),
+ new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1)))
+ .constructMaterial();
+ public static Materials ManaDiamond = new Materials(
+ 208,
+ TextureSet.SET_DIAMOND,
+ 16.0F,
+ 2560,
+ 8,
+ 1 | 4,
+ 38,
+ 237,
+ 224,
+ 255,
+ "ManaDiamond",
+ "Mana Diamond",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ true,
+ 2,
+ 1,
+ 1,
+ Dyes._NULL,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 4),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 4)));
+ public static Materials BotaniaDragonstone = new Materials(
+ 209,
+ TextureSet.SET_DIAMOND,
+ 24.0F,
+ 3840,
+ 12,
+ 1 | 4,
+ 242,
+ 44,
+ 239,
+ 255,
+ "BotaniaDragonstone",
+ "Dragonstone",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ true,
+ 2,
+ 1,
+ 1,
+ Dyes._NULL,
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 4)));
+
+ public static void init() {
+ GaiaSpirit.mChemicalFormula = "Gs";
+ Manasteel.mChemicalFormula = "Ms";
+ Livingwood.mChemicalFormula = "Lw";
+ Dreamwood.mChemicalFormula = "Dw";
+ BotaniaDragonstone.mChemicalFormula = "Dg";
+ Livingrock.mChemicalFormula = "Lv";
+ Terrasteel.mChemicalFormula = "Tr";
+ ElvenElementium.mChemicalFormula = "Ef";
+
+ Livingrock.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ Livingwood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
+ Dreamwood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING);
+ ManaDiamond.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ BotaniaDragonstone.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING);
+ GaiaSpirit.add(SubTag.SOFT);
+
+ // Botania native items
+ ingot.mNotGeneratedItems.add(Manasteel);
+ ingot.mNotGeneratedItems.add(Terrasteel);
+ ingot.mNotGeneratedItems.add(ElvenElementium);
+ ingot.mNotGeneratedItems.add(GaiaSpirit);
+ nugget.mNotGeneratedItems.add(Manasteel);
+ nugget.mNotGeneratedItems.add(Terrasteel);
+ nugget.mNotGeneratedItems.add(ElvenElementium);
+ gem.mNotGeneratedItems.add(ManaDiamond);
+ gem.mNotGeneratedItems.add(BotaniaDragonstone);
+
+ // other stuff we don't want
+ ingot.mNotGeneratedItems.add(Livingwood);
+ ingot.mNotGeneratedItems.add(Dreamwood);
+ nugget.mNotGeneratedItems.add(Livingwood);
+ nugget.mNotGeneratedItems.add(Dreamwood);
+ rotor.mNotGeneratedItems.add(Livingrock);
+
+ // stuff we want
+ plate.mGeneratedItems.add(Livingrock);
+ rod.mGeneratedItems.add(Livingrock); // this is not working
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/MaterialsKevlar.java b/src/main/java/gregtech/api/enums/MaterialsKevlar.java
new file mode 100644
index 0000000000..6612bc8b65
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/MaterialsKevlar.java
@@ -0,0 +1,604 @@
+package gregtech.api.enums;
+
+import java.util.Arrays;
+
+import gregtech.api.objects.MaterialStack;
+
+public class MaterialsKevlar {
+
+ public static Materials DiphenylmethaneDiisocyanate = new MaterialBuilder(
+ 796,
+ TextureSet.SET_DULL,
+ "4,4'-Diphenylmethane Diisocyanate").setName("DiphenylmethaneDiisocyanate")
+ .addDustItems()
+ .setRGB(255, 230, 50)
+ .setColor(Dyes.dyeYellow)
+ .setMeltingPoint(310)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 15),
+ new MaterialStack(Materials.Hydrogen, 10),
+ new MaterialStack(Materials.Nitrogen, 2),
+ new MaterialStack(Materials.Oxygen, 2))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1)))
+ .constructMaterial(); // C15H10N2O2
+ public static Materials DiaminodiphenylmethanMixture = new MaterialBuilder(
+ 795,
+ TextureSet.SET_FLUID,
+ "Diaminodiphenylmethane Mixture").setName("DiaminodiphenylmethanMixture")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 243, 122)
+ .setColor(Dyes.dyeYellow)
+ .setMeltingPoint(365)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 13),
+ new MaterialStack(Materials.Hydrogen, 14),
+ new MaterialStack(Materials.Nitrogen, 2))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1)))
+ .constructMaterial(); // C13H14N2
+ public static Materials DiphenylmethaneDiisocyanateMixture = new MaterialBuilder(
+ 794,
+ TextureSet.SET_FLUID,
+ "Diphenylmethane Diisocyanate Mixture").setName("DiphenylmethaneDiisocyanateMixture")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 230, 50)
+ .setColor(Dyes.dyeYellow)
+ .setMeltingPoint(310)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 15),
+ new MaterialStack(Materials.Hydrogen, 10),
+ new MaterialStack(Materials.Nitrogen, 2),
+ new MaterialStack(Materials.Oxygen, 2))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1)))
+ .constructMaterial(); // C15H10N2O2
+ public static Materials Butyraldehyde = new MaterialBuilder(793, TextureSet.SET_FLUID, "Butyraldehyde")
+ .setName("Butyraldehyde")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(176)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 4),
+ new MaterialStack(Materials.Hydrogen, 8),
+ new MaterialStack(Materials.Oxygen, 1))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1)))
+ .constructMaterial(); // C4H8O
+ public static Materials Isobutyraldehyde = new MaterialBuilder(792, TextureSet.SET_FLUID, "Isobutyraldehyde")
+ .setName("Isobutyraldehyde")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(208)
+ .setExtraData(1)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 4),
+ new MaterialStack(Materials.Hydrogen, 8),
+ new MaterialStack(Materials.Oxygen, 1))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1)))
+ .constructMaterial(); // C4H8O
+ public static Materials NickelTetracarbonyl = new MaterialBuilder(791, TextureSet.SET_FLUID, "Nickel Tetracarbonyl")
+ .setName("NickelTetracarbonyl")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(256)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 4),
+ new MaterialStack(Materials.Nickel, 1),
+ new MaterialStack(Materials.Oxygen, 4))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1)))
+ .constructMaterial(); // C4NiO4
+ public static Materials KevlarCatalyst = new MaterialBuilder(790, TextureSet.SET_DULL, "Polyurethane Catalyst A")
+ .setName("PolyurethaneCatalystADust")
+ .addDustItems()
+ .setRGB(50, 50, 50)
+ .setColor(Dyes.dyeBlack)
+ .setMeltingPoint(300)
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1)))
+ .constructMaterial();
+ public static Materials EthyleneOxide = new MaterialBuilder(789, TextureSet.SET_FLUID, "Ethylene Oxide")
+ .setName("EthyleneOxide")
+ .addCell()
+ .addGas()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(160)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 2),
+ new MaterialStack(Materials.Hydrogen, 4),
+ new MaterialStack(Materials.Oxygen, 1))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1)))
+ .constructMaterial(); // C2H4O
+ public static Materials SiliconOil = new MaterialBuilder(788, TextureSet.SET_FLUID, "Silicon Oil")
+ .setName("SiliconOil")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(473)
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1)))
+ .constructMaterial();
+ public static Materials Ethyleneglycol = new MaterialBuilder(787, TextureSet.SET_FLUID, "Ethylene Glycol")
+ .setName("EthyleneGlycol")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(260)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 2),
+ new MaterialStack(Materials.Hydrogen, 6),
+ new MaterialStack(Materials.Oxygen, 2))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1)))
+ .constructMaterial(); // C2H6O2
+ public static Materials Acetaldehyde = new MaterialBuilder(786, TextureSet.SET_FLUID, "Acetaldehyde")
+ .setName("Acetaldehyde")
+ .addCell()
+ .addGas()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(150)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 2),
+ new MaterialStack(Materials.Hydrogen, 4),
+ new MaterialStack(Materials.Oxygen, 1))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1)))
+ .constructMaterial(); // C2H4O
+ public static Materials Pentaerythritol = new MaterialBuilder(785, TextureSet.SET_DULL, "Pentaerythritol")
+ .setName("Pentaerythritol")
+ .addDustItems()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(533)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 5),
+ new MaterialStack(Materials.Hydrogen, 12),
+ new MaterialStack(Materials.Oxygen, 4))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1)))
+ .constructMaterial(); // C5H12O4
+ public static Materials PolyurethaneResin = new MaterialBuilder(784, TextureSet.SET_FLUID, "Polyurethane Resin")
+ .setName("PolyurethaneResin")
+ .addCell()
+ .addFluid()
+ .setRGB(230, 230, 120)
+ .setColor(Dyes.dyeYellow)
+ .constructMaterial();
+ public static Materials NMethylIIPyrrolidone = new MaterialBuilder(
+ 783,
+ TextureSet.SET_FLUID,
+ "N-Methyl-2-pyrrolidone").setName("NMethylpyrolidone")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(249)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 5),
+ new MaterialStack(Materials.Hydrogen, 9),
+ new MaterialStack(Materials.Nitrogen, 1),
+ new MaterialStack(Materials.Oxygen, 1))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1)))
+ .constructMaterial(); // C5H9NO
+ public static Materials TerephthaloylChloride = new MaterialBuilder(
+ 782,
+ TextureSet.SET_POWDER,
+ "Terephthaloyl Chloride").setName("TerephthaloylChloride")
+ .addDustItems()
+ .setRGB(0, 255, 12)
+ .setColor(Dyes.dyeGreen)
+ .setMeltingPoint(355)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 8),
+ new MaterialStack(Materials.Hydrogen, 4),
+ new MaterialStack(Materials.Chlorine, 2),
+ new MaterialStack(Materials.Oxygen, 2))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1)))
+ .constructMaterial(); // C8H4Cl2O2
+ public static Materials Acetylene = new MaterialBuilder(781, TextureSet.SET_FLUID, "Acetylene").setName("Acetylene")
+ .addCell()
+ .addGas()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(192)
+ .setMaterialList(new MaterialStack(Materials.Carbon, 2), new MaterialStack(Materials.Hydrogen, 2))
+ .constructMaterial(); // C2H2
+ // TODO
+ // Add
+ // to
+ // JUPITER
+ // Athmosphere
+ // and
+ // Enceladus
+ // and
+ // to
+ // moon
+ // of
+ // Saturn
+ public static Materials IVNitroaniline = new MaterialBuilder(780, TextureSet.SET_FLUID, "4-Nitroaniline")
+ .setName("4Nitroaniline")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 135, 51)
+ .setColor(Dyes.dyeOrange)
+ .setMeltingPoint(420)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 6),
+ new MaterialStack(Materials.Hydrogen, 6),
+ new MaterialStack(Materials.Nitrogen, 2),
+ new MaterialStack(Materials.Oxygen, 2))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1)))
+ .constructMaterial(); // C6H6N2O2
+ public static Materials ParaPhenylenediamine = new MaterialBuilder(
+ 779,
+ TextureSet.SET_POWDER,
+ "para-Phenylenediamine").setName("pPhenylenediamine")
+ .addDustItems()
+ .setRGB(251, 236, 93)
+ .setColor(Dyes.dyeYellow)
+ .setMeltingPoint(293)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 6),
+ new MaterialStack(Materials.Hydrogen, 8),
+ new MaterialStack(Materials.Nitrogen, 2))
+ .setAspects(
+ Arrays.asList(
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1)))
+ .constructMaterial(); // C6H6N2
+ public static Materials Methylamine = new MaterialBuilder(778, TextureSet.SET_FLUID, "Methylamine")
+ .setName("Methylamine")
+ .addCell()
+ .addGas()
+ .setRGB(65, 68, 105)
+ .setColor(Dyes.dyeGray)
+ .setMeltingPoint(180)
+ .setExtraData(1)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 1),
+ new MaterialStack(Materials.Hydrogen, 5),
+ new MaterialStack(Materials.Nitrogen, 1))
+ .constructMaterial(); // CH5N
+ public static Materials Trimethylamine = new MaterialBuilder(777, TextureSet.SET_FLUID, "Trimethylamine")
+ .setName("Trimethylamine")
+ .addCell()
+ .addGas()
+ .setRGB(105, 68, 105)
+ .setColor(Dyes.dyeGray)
+ .setMeltingPoint(156)
+ .setExtraData(1)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 3),
+ new MaterialStack(Materials.Hydrogen, 9),
+ new MaterialStack(Materials.Nitrogen, 1))
+ .constructMaterial(); // C3H9N
+ public static Materials GammaButyrolactone = new MaterialBuilder(776, TextureSet.SET_FLUID, "gamma-Butyrolactone")
+ .setName("GammaButyrolactone")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 151)
+ .setColor(Dyes.dyeYellow)
+ .setMeltingPoint(229)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 4),
+ new MaterialStack(Materials.Hydrogen, 6),
+ new MaterialStack(Materials.Oxygen, 2))
+ .constructMaterial(); // C4H6O2
+ public static Materials CalciumCarbide = new MaterialBuilder(775, TextureSet.SET_DULL, "Calcium Carbide")
+ .setName("CacliumCarbide")
+ .addDustItems()
+ .setRGB(235, 235, 235)
+ .setColor(Dyes.dyeGray)
+ .setMeltingPoint(2430)
+ .setMaterialList(new MaterialStack(Materials.Calcium, 1), new MaterialStack(Materials.Carbon, 2))
+ .constructMaterial(); // CaC2
+ public static Materials LiquidCrystalKevlar = new MaterialBuilder(
+ 774,
+ TextureSet.SET_FLUID,
+ "Liquid Crystal Kevlar").setName("LiquidCrystalKevlar")
+ .addCell()
+ .addFluid()
+ .setRGB(240, 240, 120)
+ .setColor(Dyes.dyeYellow)
+ .constructMaterial(); // [-CO-C6H4-CO-NH-C6H4-NH-]n
+ public static Materials IIButinIIVdiol = new MaterialBuilder(773, TextureSet.SET_POWDER, "2-Butin-1,4-diol")
+ .setName("2Butin14diol")
+ .addDustItems()
+ .setRGB(247, 247, 180)
+ .setColor(Dyes.dyeYellow)
+ .setMeltingPoint(331)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 4),
+ new MaterialStack(Materials.Hydrogen, 6),
+ new MaterialStack(Materials.Oxygen, 2))
+ .constructMaterial(); // C4H6O2
+ public static Materials NickelAluminide = new MaterialBuilder(772, TextureSet.SET_METALLIC, "Nickel Aluminide")
+ .setName("NickelAluminide")
+ .addDustItems()
+ .addMetalItems()
+ .setRGB(230, 230, 230)
+ .setColor(Dyes.dyeGray)
+ .setMeltingPoint(1668)
+ .setBlastFurnaceTemp(1668)
+ .setBlastFurnaceRequired(true)
+ .setMaterialList(new MaterialStack(Materials.Nickel, 1), new MaterialStack(Materials.Aluminium, 3))
+ .constructMaterial()
+ .disableAutoGeneratedBlastFurnaceRecipes(); // NiAl3
+ public static Materials RaneyNickelActivated = new MaterialBuilder(771, TextureSet.SET_POWDER, "Raney Nickel")
+ .setName("RaneyNickelActivated")
+ .addDustItems()
+ .setRGB(230, 230, 230)
+ .setColor(Dyes.dyeGray)
+ .setMeltingPoint(1955)
+ .setMaterialList(new MaterialStack(Materials.Nickel, 1), new MaterialStack(Materials.Aluminium, 1))
+ .constructMaterial(); // NiAl
+ public static Materials BismuthIIIOxide = new MaterialBuilder(769, TextureSet.SET_POWDER, "Bismuth Oxide")
+ .setName("BismuthIIIOxide")
+ .addDustItems()
+ .setRGB(50, 50, 50)
+ .setColor(Dyes.dyeBlack)
+ .setMeltingPoint(1090)
+ .setMaterialList(new MaterialStack(Materials.Bismuth, 2), new MaterialStack(Materials.Oxygen, 3))
+ .constructMaterial(); // Bi2O3
+ public static Materials ThionylChloride = new MaterialBuilder(768, TextureSet.SET_FLUID, "Thionyl Chloride")
+ .setName("ThionylChloride")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .constructMaterial(); // SOCl2
+ public static Materials SulfurDichloride = new MaterialBuilder(767, TextureSet.SET_FLUID, "Sulfur Dichloride")
+ .setName("SulfurDichloride")
+ .addCell()
+ .addFluid()
+ .setRGB(200, 0, 0)
+ .setColor(Dyes.dyeRed)
+ .constructMaterial(); // SCl2
+ public static Materials DimethylTerephthalate = new MaterialBuilder(
+ 766,
+ TextureSet.SET_FLUID,
+ "Dimethyl Terephthalate").setName("DimethylTerephthalate")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(415)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 10),
+ new MaterialStack(Materials.Hydrogen, 10),
+ new MaterialStack(Materials.Oxygen, 4))
+ .constructMaterial(); // C10H10O4
+ public static Materials Kevlar = new MaterialBuilder(765, TextureSet.SET_DULL, "Kevlar").setName("Kevlar")
+ .addDustItems()
+ .addMetalItems()
+ .addGearItems()
+ .setRGB(240, 240, 120)
+ .setColor(Dyes.dyeYellow)
+ .constructMaterial();
+ public static Materials TerephthalicAcid = new MaterialBuilder(764, TextureSet.SET_FLUID, "Terephthalic Acid")
+ .setName("TerephthalicAcid")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(480)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 8L),
+ new MaterialStack(Materials.Hydrogen, 6),
+ new MaterialStack(Materials.Oxygen, 4))
+ .constructMaterial(); // C9H6O6
+ public static Materials IIIDimethylbenzene = new MaterialBuilder(763, TextureSet.SET_FLUID, "1,3-Dimethylbenzene")
+ .addCell()
+ .addFluid()
+ .setRGB(112, 146, 74)
+ .setColor(Dyes.dyeLime)
+ .setMeltingPoint(225)
+ .setMaterialList(new MaterialStack(Materials.Carbon, 8), new MaterialStack(Materials.Hydrogen, 10))
+ .addElectrolyzerRecipe()
+ .constructMaterial(); // C8H10
+ public static Materials IVDimethylbenzene = new MaterialBuilder(762, TextureSet.SET_FLUID, "1,4-Dimethylbenzene")
+ .addCell()
+ .addFluid()
+ .setRGB(122, 136, 84)
+ .setColor(Dyes.dyeLime)
+ .setMeltingPoint(286)
+ .setMaterialList(new MaterialStack(Materials.Carbon, 8), new MaterialStack(Materials.Hydrogen, 10))
+ .addElectrolyzerRecipe()
+ .constructMaterial(); // C8H10
+ public static Materials CobaltIINaphthenate = new MaterialBuilder(761, TextureSet.SET_DULL, "Cobalt II Naphthenate")
+ .setName("Cobalt(II)Naphthenate")
+ .addDustItems()
+ .setRGB(143, 95, 39)
+ .setColor(Dyes.dyeBrown)
+ .setMeltingPoint(413)
+ .setMaterialList(
+ new MaterialStack(Materials.Cobalt, 1),
+ new MaterialStack(Materials.Carbon, 22),
+ new MaterialStack(Materials.Hydrogen, 14),
+ new MaterialStack(Materials.Oxygen, 4))
+ .constructMaterial(); // CoC22H14O4
+ public static Materials NaphthenicAcid = new MaterialBuilder(760, TextureSet.SET_FLUID, "Naphthenic Acid")
+ .setName("NaphthenicAcid")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setFuelType(MaterialBuilder.SEMIFLUID)
+ .setFuelPower(80)
+ .constructMaterial();
+ public static Materials CobaltIIHydroxide = new MaterialBuilder(759, TextureSet.SET_POWDER, "Cobalt II Hydroxide")
+ .setName("CobaltIIHydroxide")
+ .addDustItems()
+ .setRGB(229, 140, 239)
+ .setColor(Dyes.dyePurple)
+ .setMeltingPoint(441)
+ .setMaterialList(
+ new MaterialStack(Materials.Cobalt, 1),
+ new MaterialStack(Materials.Hydrogen, 2),
+ new MaterialStack(Materials.Oxygen, 2))
+ .constructMaterial(); // CoH2O2
+ public static Materials CobaltIIAcetate = new MaterialBuilder(758, TextureSet.SET_POWDER, "Cobalt II Acetate")
+ .setName("Cobalt(II)Acetate")
+ .addDustItems()
+ .setRGB(219, 162, 229)
+ .setColor(Dyes.dyePurple)
+ .setMeltingPoint(413)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 4L),
+ new MaterialStack(Materials.Hydrogen, 6),
+ new MaterialStack(Materials.Cobalt, 1),
+ new MaterialStack(Materials.Oxygen, 4))
+ .constructMaterial(); // C4H6CoO4
+ public static Materials CobaltIINitrate = new MaterialBuilder(757, TextureSet.SET_POWDER, "Cobalt II Nitrate")
+ .setName("Cobalt(II)Nitrate")
+ .addDustItems()
+ .setRGB(170, 0, 0)
+ .setColor(Dyes.dyeRed)
+ .setMeltingPoint(373)
+ .setMaterialList(
+ new MaterialStack(Materials.Cobalt, 1),
+ new MaterialStack(Materials.Nitrogen, 2),
+ new MaterialStack(Materials.Oxygen, 6))
+ .constructMaterial(); // Co(NO3)2
+ public static Materials OrganorhodiumCatalyst = new MaterialBuilder(
+ 756,
+ TextureSet.SET_POWDER,
+ "Organorhodium Catalyst").setName("OrganorhodiumCatalyst")
+ .addDustItems()
+ .setRGB(170, 0, 0)
+ .setColor(Dyes.dyeRed)
+ .setMeltingPoint(373)
+ .setMaterialList(new MaterialStack(Materials.Cobalt, 1), new MaterialStack(Materials.NitricAcid, 2))
+ .constructMaterial(); // RhHCO(P(C6H5)3)3
+ public static Materials SodiumBorohydride = new MaterialBuilder(755, TextureSet.SET_POWDER, "Sodium Borohydride")
+ .setName("SodiumBorohydride")
+ .addDustItems()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(673)
+ .setMaterialList(
+ new MaterialStack(Materials.Sodium, 1),
+ new MaterialStack(Materials.Boron, 1),
+ new MaterialStack(Materials.Hydrogen, 4))
+ .constructMaterial(); // NaBH4
+ public static Materials RhodiumChloride = new MaterialBuilder(754, TextureSet.SET_POWDER, "Rhodium Chloride")
+ .setName("RhodiumChloride")
+ .addDustItems()
+ .setRGB(128, 0, 0)
+ .setColor(Dyes.dyeRed)
+ .setMeltingPoint(723)
+ .constructMaterial(); // RHCL3
+ public static Materials Triphenylphosphene = new MaterialBuilder(753, TextureSet.SET_POWDER, "Triphenylphosphine")
+ .setName("Triphenylphosphene")
+ .addDustItems()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(353)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 18L),
+ new MaterialStack(Materials.Hydrogen, 15L),
+ new MaterialStack(Materials.Phosphorus, 1L))
+ .constructMaterial(); // C18H15P
+ public static Materials PhosphorusTrichloride = new MaterialBuilder(
+ 752,
+ TextureSet.SET_FLUID,
+ "Phosphorus Trichloride").setName("PhosphorusTrichloride")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(179)
+ .setMaterialList(new MaterialStack(Materials.Phosphorus, 1L), new MaterialStack(Materials.Chlorine, 3L))
+ .constructMaterial(); // PCL3
+ public static Materials SodiumHydride = new MaterialBuilder(751, TextureSet.SET_POWDER, "Sodium Hydride")
+ .setName("SodiumHydride")
+ .addDustItems()
+ .setRGB(192, 192, 192)
+ .setColor(Dyes.dyeLightGray)
+ .setMeltingPoint(911)
+ .setMaterialList(new MaterialStack(Materials.Sodium, 1L), new MaterialStack(Materials.Hydrogen, 1L))
+ .constructMaterial(); // NaH
+ public static Materials TrimethylBorate = new MaterialBuilder(750, TextureSet.SET_FLUID, "Trimethyl Borate")
+ .setName("TrimethylBorate")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(239)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 3L),
+ new MaterialStack(Materials.Hydrogen, 9L),
+ new MaterialStack(Materials.Boron, 1L),
+ new MaterialStack(Materials.Oxygen, 3L))
+ .constructMaterial(); // C3H9BO3
+ public static Materials SodiumMethoxide = new MaterialBuilder(749, TextureSet.SET_POWDER, "Sodium Methoxide")
+ .setName("SodiumMethoxide")
+ .addDustItems()
+ .setRGB(255, 255, 255)
+ .setColor(Dyes.dyeWhite)
+ .setMeltingPoint(400)
+ .setMaterialList(
+ new MaterialStack(Materials.Carbon, 1L),
+ new MaterialStack(Materials.Hydrogen, 3L),
+ new MaterialStack(Materials.Oxygen, 1L),
+ new MaterialStack(Materials.Sodium, 1L))
+ .constructMaterial(); // CH3NaO
+
+ // H3RhCl6
+
+ /**
+ * This method is called by Materials. It can be safely called multiple times.
+ * It exists to allow Materials ensure this class is initialized.
+ */
+ public static void init() {
+ // no-op. all work is done by <clinit>
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/MaterialsOreAlum.java b/src/main/java/gregtech/api/enums/MaterialsOreAlum.java
new file mode 100644
index 0000000000..270d794f94
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/MaterialsOreAlum.java
@@ -0,0 +1,80 @@
+package gregtech.api.enums;
+
+public class MaterialsOreAlum {
+
+ public static Materials BauxiteSlurry = new MaterialBuilder(409, TextureSet.SET_FLUID, "Bauxite Slurry")
+ .setName("BauxiteSlurry")
+ .addCell()
+ .addFluid()
+ .setRGB(37, 67, 168)
+ .setMeltingPoint(295)
+ .setColor(Dyes.dyeBlue)
+ .constructMaterial();
+ public static Materials HeatedBauxiteSlurry = new MaterialBuilder(
+ 410,
+ TextureSet.SET_FLUID,
+ "Heated Bauxite Slurry").setName("HeadedBauxiteSlurry")
+ .addCell()
+ .addFluid()
+ .setRGB(55, 92, 212)
+ .setLiquidTemperature(533)
+ .setMeltingPoint(295)
+ .setColor(Dyes.dyeBlue)
+ .constructMaterial();
+ public static Materials SluiceJuice = new MaterialBuilder(411, TextureSet.SET_FLUID, "Sluice Juice")
+ .setName("SluiceJuice")
+ .addCell()
+ .addFluid()
+ .setRGB(92, 60, 36)
+ .setLiquidTemperature(295)
+ .setMeltingPoint(295)
+ .setColor(Dyes.dyeGray)
+ .constructMaterial();
+ public static Materials SluiceSand = new MaterialBuilder(412, TextureSet.SET_FINE, "Sluice Sand")
+ .setName("SluiceSand")
+ .addDustItems()
+ .setRGB(165, 165, 120)
+ .setColor(Dyes.dyeGray)
+ .constructMaterial();
+ public static Materials BauxiteSlag = new MaterialBuilder(413, TextureSet.SET_FINE, "Bauxite Slag")
+ .setName("BauxiteSlag")
+ .addDustItems()
+ .setRGB(110, 31, 31)
+ .setColor(Dyes.dyeRed)
+ .constructMaterial();
+ public static Materials IlmeniteSlag = new MaterialBuilder(414, TextureSet.SET_FINE, "Ilmenite Slag")
+ .setName("IlmeniteSlag")
+ .addDustItems()
+ .setRGB(163, 38, 38)
+ .setColor(Dyes.dyeBrown)
+ .constructMaterial();
+ public static Materials GreenSapphireJuice = new MaterialBuilder(415, TextureSet.SET_FLUID, "Green Sapphire Juice")
+ .setName("GreenSapphireJuice")
+ .addCell()
+ .addFluid()
+ .setRGB(100, 200, 130)
+ .setColor(Dyes.dyeGreen)
+ .constructMaterial();
+ public static Materials SapphireJuice = new MaterialBuilder(416, TextureSet.SET_FLUID, "Sapphire Juice")
+ .setName("SapphireJuice")
+ .addCell()
+ .addFluid()
+ .setRGB(100, 100, 200)
+ .setColor(Dyes.dyeBlue)
+ .constructMaterial();
+ public static Materials RubyJuice = new MaterialBuilder(417, TextureSet.SET_FLUID, "Ruby Juice")
+ .setName("RubyJuice")
+ .addCell()
+ .addFluid()
+ .setRGB(255, 100, 100)
+ .setColor(Dyes.dyeRed)
+ .constructMaterial();
+
+ /**
+ * called by Materials. Can be safely called multiple times. exists to allow Materials ensure this class is
+ * initialized
+ */
+ public static void init() {
+ // no-op. all work is done by <clinit>
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/MaterialsUEVplus.java b/src/main/java/gregtech/api/enums/MaterialsUEVplus.java
new file mode 100644
index 0000000000..1ff8cc2fb0
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/MaterialsUEVplus.java
@@ -0,0 +1,600 @@
+package gregtech.api.enums;
+
+import java.util.Collections;
+
+public class MaterialsUEVplus {
+
+ public static Materials DimensionallyTranscendentCrudeCatalyst = new Materials(
+ 748,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 10,
+ 20,
+ 20,
+ 1,
+ "DimensionallyTranscendentCrudeCatalyst",
+ "Dimensionally Transcendent Crude Catalyst",
+ 0,
+ 0,
+ 25_000_000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeCyan).setHasCorrespondingFluid(true);
+ public static Materials DimensionallyTranscendentProsaicCatalyst = new Materials(
+ 747,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 10,
+ 20,
+ 20,
+ 1,
+ "DimensionallyTranscendentProsaicCatalyst",
+ "Dimensionally Transcendent Prosaic Catalyst",
+ 0,
+ 0,
+ 50_000_000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeGreen).setHasCorrespondingFluid(true);
+ public static Materials DimensionallyTranscendentResplendentCatalyst = new Materials(
+ 746,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 10,
+ 20,
+ 20,
+ 1,
+ "DimensionallyTranscendentResplendentCatalyst",
+ "Dimensionally Transcendent Resplendent Catalyst",
+ 0,
+ 0,
+ 75_000_000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeLime).setHasCorrespondingFluid(true);
+ public static Materials DimensionallyTranscendentExoticCatalyst = new Materials(
+ 745,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 10,
+ 20,
+ 20,
+ 1,
+ "DimensionallyTranscendentExoticCatalyst",
+ "Dimensionally Transcendent Exotic Catalyst",
+ 0,
+ 0,
+ 100_000_000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeMagenta).setHasCorrespondingFluid(true);
+ public static Materials DimensionallyTranscendentStellarCatalyst = new Materials(
+ 130,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 10,
+ 20,
+ 20,
+ 1,
+ "DimensionallyTranscendentStellarCatalyst",
+ "Dimensionally Transcendent Stellar Catalyst",
+ 0,
+ 0,
+ 100_000_000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeOrange).setHasCorrespondingFluid(true);
+
+ public static Materials ExcitedDTCC = new Materials(
+ 109,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 10,
+ 20,
+ 20,
+ 1,
+ "ExcitedDTCC",
+ "Excited Dimensionally Transcendent Crude Catalyst",
+ -1,
+ -1,
+ 500000000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeCyan);
+ public static Materials ExcitedDTPC = new Materials(
+ 113,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 35,
+ 59,
+ 41,
+ 1,
+ "ExcitedDTPC",
+ "Excited Dimensionally Transcendent Prosaic Catalyst",
+ -1,
+ -1,
+ 500000000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeGreen);
+ public static Materials ExcitedDTRC = new Materials(
+ 121,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 38,
+ 20,
+ 56,
+ 1,
+ "ExcitedDTRC",
+ "Excited Dimensionally Transcendent Resplendent Catalyst",
+ -1,
+ -1,
+ 500000000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeLime);
+ public static Materials ExcitedDTEC = new Materials(
+ 126,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 240,
+ 240,
+ 41,
+ 1,
+ "ExcitedDTEC",
+ "Excited Dimensionally Transcendent Exotic Catalyst",
+ -1,
+ -1,
+ 500000000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeMagenta);
+ public static Materials ExcitedDTSC = new Materials(
+ 127,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 126,
+ 75,
+ 11,
+ 1,
+ "ExcitedDTSC",
+ "Excited Dimensionally Transcendent Stellar Catalyst",
+ -1,
+ -1,
+ 500000000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeOrange);
+
+ public static Materials DimensionallyTranscendentResidue = new Materials(
+ 589,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 0,
+ 0,
+ 0,
+ 1,
+ "DimensionallyTranscendentResidue",
+ "Dimensionally Transcendent Residue",
+ -1,
+ -1,
+ 25,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeBlack);
+
+ public static Materials SpaceTime = new Materials(
+ 588,
+ new TextureSet("spacetime", true),
+ 320.0F,
+ 4 * 2621440,
+ 25,
+ 1 | 2 | 64 | 128,
+ 255,
+ 255,
+ 255,
+ 0,
+ "SpaceTime",
+ "SpaceTime",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ true,
+ 2,
+ 1,
+ 1,
+ Dyes._NULL,
+ Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1)))
+ .setProcessingMaterialTierEU(TierEU.RECIPE_UEV)
+ .disableAutoGeneratedBlastFurnaceRecipes()
+ .disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials TranscendentMetal = new Materials(
+ 581,
+ TextureSet.SET_METALLIC,
+ 290.0F,
+ 3 * 2621440,
+ 22,
+ 1 | 2 | 64 | 128,
+ 50,
+ 50,
+ 50,
+ 0,
+ "TranscendentMetal",
+ "Transcendent Metal",
+ -1,
+ -1,
+ 0,
+ 3000,
+ true,
+ true,
+ 200,
+ 1000,
+ 1000,
+ Dyes.dyeBlack,
+ Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1)))
+ .disableAutoGeneratedBlastFurnaceRecipes()
+ .disableAutoGeneratedVacuumFreezerRecipe()
+ .setProcessingMaterialTierEU(TierEU.RECIPE_UHV);
+ public static Materials MagnetohydrodynamicallyConstrainedStarMatter = new Materials(
+ 583,
+ new TextureSet("MagnetohydrodynamicallyConstrainedStarMatter", true),
+ 320.0F,
+ 4 * 2621440,
+ 25,
+ 1 | 2 | 64 | 128,
+ 255,
+ 255,
+ 255,
+ 0,
+ "MagnetohydrodynamicallyConstrainedStarMatter",
+ "Magnetohydrodynamically Constrained Star Matter",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ true,
+ 2,
+ 1,
+ 1,
+ Dyes._NULL,
+ Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1)))
+ .setProcessingMaterialTierEU(TierEU.RECIPE_UIV);
+ public static Materials RawStarMatter = new Materials(
+ 584,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16 | 32,
+ 100,
+ 1,
+ 255,
+ 255,
+ "RawStarMatter",
+ "Condensed Raw Stellar Plasma Mixture",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ false,
+ 200,
+ 1,
+ 1,
+ Dyes.dyePurple);
+ public static Materials WhiteDwarfMatter = new Materials(
+ 585,
+ new TextureSet("WhiteDwarfMatter", true),
+ 1.0F,
+ 0,
+ 2,
+ 1 | 2 | 64 | 128,
+ 255,
+ 255,
+ 255,
+ 0,
+ "WhiteDwarfMatter",
+ "White Dwarf Matter",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ false,
+ 200,
+ 1,
+ 1,
+ Dyes.dyePurple).setHasCorrespondingFluid(true)
+ .setProcessingMaterialTierEU(TierEU.RECIPE_UEV)
+ .disableAutoGeneratedBlastFurnaceRecipes()
+ .disableAutoGeneratedVacuumFreezerRecipe();
+ public static Materials BlackDwarfMatter = new Materials(
+ 586,
+ TextureSet.SET_METALLIC,
+ 1.0F,
+ 0,
+ 2,
+ 1 | 2 | 64 | 128,
+ 0,
+ 0,
+ 0,
+ 255,
+ "BlackDwarfMatter",
+ "Black Dwarf Matter",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ false,
+ 200,
+ 1,
+ 1,
+ Dyes.dyePurple).setHasCorrespondingFluid(true)
+ .setProcessingMaterialTierEU(TierEU.RECIPE_UEV)
+ .disableAutoGeneratedBlastFurnaceRecipes()
+ .disableAutoGeneratedVacuumFreezerRecipe();
+
+ public static Materials Time = new Materials(
+ 587,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16 | 32,
+ 100,
+ 1,
+ 255,
+ 255,
+ "temporalFluid",
+ "Tachyon Rich Temporal Fluid",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ false,
+ 200,
+ 1,
+ 1,
+ Dyes.dyePurple);
+ public static Materials Space = new Materials(
+ 106,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16 | 32,
+ 100,
+ 1,
+ 255,
+ 255,
+ "spatialFluid",
+ "Spatially Enlarged Fluid",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ false,
+ 200,
+ 1,
+ 1,
+ Dyes.dyePurple);
+
+ public static Materials Universium = new Materials(
+ 139,
+ new TextureSet("universium", true),
+ 1.0F,
+ 4 * 2621440,
+ 25,
+ 1 | 2 | 64 | 128,
+ 38,
+ 49,
+ 69,
+ 255,
+ "Universium",
+ "Universium",
+ -1,
+ -1,
+ 0,
+ 0,
+ false,
+ true,
+ 2,
+ 1,
+ 1,
+ Dyes._NULL,
+ Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1)))
+ .setProcessingMaterialTierEU(TierEU.RECIPE_UMV);
+
+ public static Materials Eternity = new Materials(
+ 141,
+ new TextureSet("eternity", true),
+ 1.0F,
+ 8 * 2621440,
+ 26,
+ 1 | 2 | 64 | 128,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Eternity",
+ "Eternity",
+ -1,
+ -1,
+ 0,
+ 14000,
+ true,
+ false,
+ 2,
+ 1,
+ 1,
+ Dyes._NULL,
+ Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1)))
+ .disableAutoGeneratedBlastFurnaceRecipes()
+ .disableAutoGeneratedVacuumFreezerRecipe()
+ .setProcessingMaterialTierEU(TierEU.RECIPE_UMV);
+
+ public static Materials PrimordialMatter = new Materials(
+ 142,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 255,
+ 255,
+ 255,
+ 0,
+ "PrimordialMatter",
+ "Liquid Primordial Matter",
+ -1,
+ -1,
+ 2_000_000_000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes.dyeBlue);
+
+ public static Materials MagMatter = new Materials(
+ 143,
+ new TextureSet("magmatter", true),
+ 1.0F,
+ 64 * 2621440,
+ 26,
+ 1 | 2 | 64 | 128,
+ 255,
+ 255,
+ 255,
+ 0,
+ "Magmatter",
+ "Magmatter",
+ -1,
+ -1,
+ 0,
+ 25000,
+ true,
+ false,
+ 2,
+ 1,
+ 1,
+ Dyes._NULL,
+ Collections.singletonList(new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1)))
+ .setProcessingMaterialTierEU(TierEU.RECIPE_UMV);
+
+ public static Materials QuarkGluonPlasma = new Materials(
+ 144,
+ TextureSet.SET_FLUID,
+ 1.0F,
+ 0,
+ 2,
+ 16,
+ 255,
+ 255,
+ 255,
+ 0,
+ "QuarkGluonPlasma",
+ "Degenerate Quark Gluon Plasma",
+ -1,
+ -1,
+ 2_000_000_000,
+ 1,
+ false,
+ true,
+ 1,
+ 1,
+ 1,
+ Dyes._NULL);
+
+ /**
+ * called by Materials. Can be safely called multiple times. exists to allow Materials ensure this class is
+ * initialized
+ */
+ public static void init() {
+ // no-op. all work is done by <clinit>
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java
new file mode 100644
index 0000000000..d32cb781e2
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java
@@ -0,0 +1,688 @@
+package gregtech.api.enums;
+
+/*
+ * No more magic numbers about TE's IDs. Yay!!!
+ * The entries are sorted by ID, so if you need to take one,
+ * please, pretty please, insert it at the correct place.
+ */
+public enum MetaTileEntityIDs {
+
+ HULL_BRONZE(1),
+ HULL_BRICKED_BRONZE(2),
+ HULL_STEEL(3),
+ HULL_WROUGHT_IRON(4),
+ HULL_ULV(10),
+ HULL_LV(11),
+ HULL_MV(12),
+ HULL_HV(13),
+ HULL_EV(14),
+ HULL_IV(15),
+ HULL_LuV(16),
+ HULL_ZPM(17),
+ HULL_UV(18),
+ HULL_UHV(19),
+ transformer_LV_ULV(20),
+ transformer_MV_LV(21),
+ transformer_HV_MV(22),
+ transformer_EV_HV(23),
+ transformer_IV_EV(24),
+ transformer_LuV_IV(25),
+ transformer_ZPM_LuV(26),
+ transformer_UV_ZPM(27),
+ transformer_UHV_UV(28),
+ DYNAMO_HATCH_ULV(30),
+ DYNAMO_HATCH_LV(31),
+ DYNAMO_HATCH_MV(32),
+ DYNAMO_HATCH_HV(33),
+ DYNAMO_HATCH_EV(34),
+ DYNAMO_HATCH_IV(35),
+ DYNAMO_HATCH_LuV(36),
+ DYNAMO_HATCH_ZPM(37),
+ DYNAMO_HATCH_UV(38),
+ DYNAMO_HATCH_UHV(39),
+ ENERGY_HATCH_ULV(40),
+ ENERGY_HATCH_LV(41),
+ ENERGY_HATCH_MV(42),
+ ENERGY_HATCH_HV(43),
+ ENERGY_HATCH_EV(44),
+ ENERGY_HATCH_IV(45),
+ ENERGY_HATCH_LuV(46),
+ ENERGY_HATCH_ZPM(47),
+ ENERGY_HATCH_UV(48),
+ ENERGY_HATCH_UHV(49),
+ INPUT_HATCH_ULV(50),
+ INPUT_HATCH_LV(51),
+ INPUT_HATCH_MV(52),
+ INPUT_HATCH_HV(53),
+ INPUT_HATCH_EV(54),
+ INPUT_HATCH_IV(55),
+ INPUT_HATCH_LuV(56),
+ INPUT_HATCH_ZPM(57),
+ INPUT_HATCH_UV(58),
+ INPUT_HATCH_UHV(59),
+ OUTPUT_HATCH_ULV(60),
+ OUTPUT_HATCH_LV(61),
+ OUTPUT_HATCH_MV(62),
+ OUTPUT_HATCH_HV(63),
+ OUTPUT_HATCH_EV(64),
+ OUTPUT_HATCH_IV(65),
+ OUTPUT_HATCH_LuV(66),
+ OUTPUT_HATCH_ZPM(67),
+ OUTPUT_HATCH_UV(68),
+ OUTPUT_HATCH_UHV(69),
+ INPUT_BUS_ULV(70),
+ INPUT_BUS_LV(71),
+ INPUT_BUS_MV(72),
+ INPUT_BUS_HV(73),
+ INPUT_BUS_EV(74),
+ INPUT_BUS_IV(75),
+ INPUT_BUS_LuV(76),
+ INPUT_BUS_ZPM(77),
+ INPUT_BUS_UV(78),
+ INPUT_BUS_UHV(79),
+ OUTPUT_BUS_ULV(80),
+ OUTPUT_BUS_LV(81),
+ OUTPUT_BUS_MV(82),
+ OUTPUT_BUS_HV(83),
+ OUTPUT_BUS_EV(84),
+ OUTPUT_BUS_IV(85),
+ OUTPUT_BUS_LuV(86),
+ OUTPUT_BUS_ZPM(87),
+ OUTPUT_BUS_UV(88),
+ OUTPUT_BUS_UHV(89),
+ MAINTENANCE_HATCH(90),
+ MUFFLER_HATCH_LV(91),
+ MUFFLER_HATCH_MV(92),
+ MUFFLER_HATCH_HV(93),
+ MUFFLER_HATCH_EV(94),
+ MUFFLER_HATCH_IV(95),
+ MUFFLER_HATCH_LuV(96),
+ MUFFLER_HATCH_ZPM(97),
+ MUFFLER_HATCH_UV(98),
+ MUFFLER_HATCH_UHV(99),
+ SMALL_COAL_BOILER(100),
+ HIGH_PRESSURE_COAL_BOILER(101),
+ HIGH_PRESSURE_LAVA_BOILER(102),
+ STEAM_FURNACE(103),
+ HP_STEAM_FURNACE(104),
+ SIMPLE_SOLAR_BOILER(105),
+ STEAM_MACERATOR(106),
+ HP_STEAM_MACERATOR(107),
+ STEAM_EXTRACTOR(109),
+ HP_STEAM_EXTRACTOR(110),
+ AUTO_MAINTENANCE_HATCH(111),
+ STEAM_FORGE_HAMMER(112),
+ HP_STEAM_FORGE_HAMMER(113),
+ HIGH_PRESSURE_SOLAR_BOILER(114),
+ STEAM_COMPRESSOR(115),
+ HP_STEAM_COMPRESSOR(116),
+ STEAM_ALLOY_SMELTER(118),
+ HP_STEAM_ALLOY_SMELTER(119),
+ QUANTUM_TANK_LV(120),
+ QUANTUM_TANK_MV(121),
+ QUANTUM_TANK_HV(122),
+ QUANTUM_TANK_EV(123),
+ QUANTUM_TANK_IV(124),
+ QUANTUM_CHEST_LV(125),
+ QUANTUM_CHEST_MV(126),
+ QUANTUM_CHEST_HV(127),
+ QUANTUM_CHEST_EV(128),
+ QUANTUM_CHEST_IV(129),
+ SUPER_TANK_LV(130),
+ SUPER_TANK_MV(131),
+ SUPER_TANK_HV(132),
+ SUPER_TANK_EV(133),
+ SUPER_TANK_IV(134),
+ SUPER_CHEST_LV(135),
+ SUPER_CHEST_MV(136),
+ SUPER_CHEST_HV(137),
+ SUPER_CHEST_EV(138),
+ SUPER_CHEST_IV(139),
+ BRICKED_BLAST_FURNACE_CONTROLLER(140),
+ MULTILOCK_PUMP_MKII_CONTROLLER(141),
+ MULTILOCK_PUMP_MKIII_CONTROLLER(142),
+ CONCRETE_BACKFILLER_I_CONTROLLER(143),
+ CONCRETE_BACKFILLER_II_CONTROLLER(144),
+ DATA_ACCESS_HATCH(145),
+ ADVANCED_DATA_ACCESS_HATCH(146),
+ AUTOMATABLE_DATA_ACCESS_HATCH(147),
+ MULTIBLOCK_PUMP_INFINITE_CONTROLLER(148),
+ MULTILOCK_PUMP_MKIV_CONTROLLER(149),
+ LOCKER_ULV(150),
+ LOCKER_LV(151),
+ LOCKER_MV(152),
+ LOCKER_HV(153),
+ LOCKER_EV(154),
+ LOCKER_IV(155),
+ LOCKER_LuV(156),
+ LOCKER_ZPM(157),
+ LOCKER_UV(158),
+ LOCKER_UHV(159),
+ BATTERY_BUFFER_1_BY_1_ULV(160),
+ BATTERY_BUFFER_1_BY_1_LV(161),
+ BATTERY_BUFFER_1_BY_1_MV(162),
+ BATTERY_BUFFER_1_BY_1_HV(163),
+ BATTERY_BUFFER_1_BY_1_EV(164),
+ BATTERY_BUFFER_1_BY_1_IV(165),
+ BATTERY_BUFFER_1_BY_1_LuV(166),
+ BATTERY_BUFFER_1_BY_1_ZPM(167),
+ BATTERY_BUFFER_1_BY_1_UV(168),
+ BATTERY_BUFFER_1_BY_1_UHV(169),
+ BATTERY_BUFFER_2_BY_2_ULV(170),
+ BATTERY_BUFFER_2_BY_2_LV(171),
+ BATTERY_BUFFER_2_BY_2_MV(172),
+ BATTERY_BUFFER_2_BY_2_HV(173),
+ BATTERY_BUFFER_2_BY_2_EV(174),
+ BATTERY_BUFFER_2_BY_2_IV(175),
+ BATTERY_BUFFER_2_BY_2_LuV(176),
+ BATTERY_BUFFER_2_BY_2_ZPM(177),
+ BATTERY_BUFFER_2_BY_2_UV(178),
+ BATTERY_BUFFER_2_BY_2_UHV(179),
+ BATTERY_BUFFER_3_BY_3_ULV(180),
+ BATTERY_BUFFER_3_BY_3_LV(181),
+ BATTERY_BUFFER_3_BY_3_MV(182),
+ BATTERY_BUFFER_3_BY_3_HV(183),
+ BATTERY_BUFFER_3_BY_3_EV(184),
+ BATTERY_BUFFER_3_BY_3_IV(185),
+ BATTERY_BUFFER_3_BY_3_LuV(186),
+ BATTERY_BUFFER_3_BY_3_ZPM(187),
+ BATTERY_BUFFER_3_BY_3_UV(188),
+ BATTERY_BUFFER_3_BY_3_UHV(189),
+ BATTERY_BUFFER_4_BY_4_ULV(190),
+ BATTERY_BUFFER_4_BY_4_LV(191),
+ BATTERY_BUFFER_4_BY_4_MV(192),
+ BATTERY_BUFFER_4_BY_4_HV(193),
+ BATTERY_BUFFER_4_BY_4_EV(194),
+ BATTERY_BUFFER_4_BY_4_IV(195),
+ BATTERY_BUFFER_4_BY_4_LuV(196),
+ BATTERY_BUFFER_4_BY_4_ZPM(197),
+ BATTERY_BUFFER_4_BY_4_UV(198),
+ BATTERY_BUFFER_4_BY_4_UHV(199),
+ QUADRUPLE_INPUT_HATCHES_EV(200),
+ ALLOY_SMELTER_LV(201),
+ ALLOY_SMELTER_MV(202),
+ ALLOY_SMELTER_HV(203),
+ ALLOY_SMELTER_EV(204),
+ ALLOY_SMELTER_IV(205),
+ WIRELESS_HATCH_ENERGY_ULV(206),
+ WIRELESS_HATCH_ENERGY_LV(207),
+ WIRELESS_HATCH_ENERGY_MV(208),
+ WIRELESS_HATCH_ENERGY_HV(209),
+ ASSEMBLER_LV(211),
+ ASSEMBLER_MV(212),
+ ASSEMBLER_HV(213),
+ ASSEMBLER_EV(214),
+ ASSEMBLER_IV(215),
+ WIRELESS_HATCH_ENERGY_EV(216),
+ WIRELESS_HATCH_ENERGY_IV(217),
+ WIRELESS_HATCH_ENERGY_LuV(218),
+ WIRELESS_HATCH_ENERGY_ZPM(219),
+ BENDING_MACHINE_LV(221),
+ BENDING_MACHINE_MV(222),
+ BENDING_MACHINE_HV(223),
+ BENDING_MACHINE_EV(224),
+ BENDING_MACHINE_IV(225),
+ WIRELESS_HATCH_ENERGY_UV(227),
+ WIRELESS_HATCH_ENERGY_UHV(229),
+ CANNER_LV(231),
+ CANNER_MV(232),
+ CANNER_HV(233),
+ CANNER_EV(234),
+ CANNER_IV(235),
+ COMPRESSOR_LV(241),
+ COMPRESSOR_MV(242),
+ COMPRESSOR_HV(243),
+ COMPRESSOR_EV(244),
+ COMPRESSOR_IV(245),
+ CUTTING_MACHINE_LV(251),
+ CUTTING_MACHINE_MV(252),
+ CUTTING_MACHINE_HV(253),
+ CUTTING_MACHINE_EV(254),
+ CUTTING_MACHINE_IV(255),
+ ELECTRIC_FURNACE_LV(261),
+ ELECTRIC_FURNACE_MV(262),
+ ELECTRIC_FURNACE_HV(263),
+ ELECTRIC_FURNACE_EV(264),
+ ELECTRIC_FURNACE_IV(265),
+ WIRELESS_HATCH_ENERGY_UEV(266),
+ WIRELESS_HATCH_ENERGY_UIV(267),
+ WIRELESS_HATCH_ENERGY_UMV(268),
+ WIRELESS_HATCH_ENERGY_UXV(269),
+ EXTRACTOR_LV(271),
+ EXTRACTOR_MV(272),
+ EXTRACTOR_HV(273),
+ EXTRACTOR_EV(274),
+ EXTRACTOR_IV(275),
+ EXTRUDER_LV(281),
+ EXTRUDER_MV(282),
+ EXTRUDER_HV(283),
+ EXTRUDER_EV(284),
+ EXTRUDER_IV(285),
+ WIRELESS_HATCH_ENERGY_MAX(286),
+ WIRELESS_DYNAMO_ENERGY_HATCH_ULV(287),
+ WIRELESS_DYNAMO_ENERGY_HATCH_LV(288),
+ WIRELESS_DYNAMO_ENERGY_HATCH_MV(289),
+ LATHE_LV(291),
+ LATHE_MV(292),
+ LATHE_HV(293),
+ LATHE_EV(294),
+ LATHE_IV(295),
+ WIRELESS_DYNAMO_ENERGY_HATCH_HV(296),
+ WIRELESS_DYNAMO_ENERGY_HATCH_EV(297),
+ WIRELESS_DYNAMO_ENERGY_HATCH_IV(298),
+ WIRELESS_DYNAMO_ENERGY_HATCH_LuV(299),
+ MACERATOR_LV(301),
+ MACERATOR_MV(302),
+ MACERATOR_HV(303),
+ MACERATOR_EV(304),
+ MACERATOR_IV(305),
+ WIRELESS_DYNAMO_ENERGY_HATCH_ZPM(310),
+ MICROWAVE_OVEN_LV(311),
+ MICROWAVE_OVEN_MV(312),
+ MICROWAVE_OVEN_HV(313),
+ MICROWAVE_OVEN_EV(314),
+ MICROWAVE_OVEN_IV(315),
+ WIRELESS_DYNAMO_ENERGY_HATCH_UV(316),
+ WIRELESS_DYNAMO_ENERGY_HATCH_UHV(317),
+ WIRELESS_DYNAMO_ENERGY_HATCH_UEV(318),
+ WIRELESS_DYNAMO_ENERGY_HATCH_UIV(319),
+ PRINTER_LV(321),
+ PRINTER_MV(322),
+ PRINTER_HV(323),
+ PRINTER_EV(324),
+ PRINTER_IV(325),
+ PRINTER_LuV(326),
+ PRINTER_ZPM(327),
+ PRINTER_UV(328),
+ RECYCLER_LV(331),
+ RECYCLER_MV(332),
+ RECYCLER_HV(333),
+ RECYCLER_EV(334),
+ RECYCLER_IV(335),
+ SCANNER_LV(341),
+ SCANNER_MV(342),
+ SCANNER_HV(343),
+ SCANNER_EV(344),
+ SCANNER_IV(345),
+ WIRELESS_DYNAMO_ENERGY_HATCH_UMV(346),
+ WIRELESS_DYNAMO_ENERGY_HATCH_UXV(347),
+ WIRELESS_DYNAMO_ENERGY_HATCH_MAX(348),
+ ADVANCED_DEBUG_STRUCTURE_WRITTER(349),
+ WIREMILL_LV(351),
+ WIREMILL_MV(352),
+ WIREMILL_HV(353),
+ WIREMILL_EV(354),
+ WIREMILL_IV(355),
+ PCB_FACTORY_CONTROLLER(356),
+ NANO_FORGE_CONTROLLER(357),
+ CENTRIFUGE_LV(361),
+ CENTRIFUGE_MV(362),
+ CENTRIFUGE_HV(363),
+ CENTRIFUGE_EV(364),
+ CENTRIFUGE_IV(365),
+ ELECTROLYSER_LV(371),
+ ELECTROLYSER_MV(372),
+ ELECTROLYSER_HV(373),
+ ELECTROLYSER_EV(374),
+ ELECTROLYSER_IV(375),
+ THERMAL_CENTRIFUGE_LV(381),
+ THERMAL_CENTRIFUGE_MV(382),
+ THERMAL_CENTRIFUGE_HV(383),
+ THERMAL_CENTRIFUGE_EV(384),
+ THERMAL_CENTRIFUGE_IV(385),
+ ORE_WASHER_LV(391),
+ ORE_WASHER_MV(392),
+ ORE_WASHER_HV(393),
+ ORE_WASHER_EV(394),
+ ORE_WASHER_IV(395),
+ PACKAGER_LV(401),
+ PACKAGER_MV(402),
+ PACKAGER_HV(403),
+ PACKAGER_EV(404),
+ PACKAGER_IV(405),
+ PACKAGER_LuV(406),
+ PACKAGER_ZPM(407),
+ PACKAGER_UV(408),
+ UNPACKAGER_LV(411),
+ UNPACKAGER_MV(412),
+ UNPACKAGER_HV(413),
+ UNPACKAGER_EV(414),
+ UNPACKAGER_IV(415),
+ UNPACKAGER_LuV(416),
+ UNPACKAGER_ZPM(417),
+ UNPACKAGER_UV(418),
+ CHEMICAL_REACTOR_LV(421),
+ CHEMICAL_REACTOR_MV(422),
+ CHEMICAL_REACTOR_HV(423),
+ CHEMICAL_REACTOR_EV(424),
+ CHEMICAL_REACTOR_IV(425),
+ FLUID_CANNER_LV(431),
+ FLUID_CANNER_MV(432),
+ FLUID_CANNER_HV(433),
+ FLUID_CANNER_EV(434),
+ FLUID_CANNER_IV(435),
+ ROCK_BREAKER_LV(441),
+ ROCK_BREAKER_MV(442),
+ ROCK_BREAKER_HV(443),
+ ROCK_BREAKER_EV(444),
+ ROCK_BREAKER_IV(445),
+ MASS_FABRICATOR_LV(461),
+ MASS_FABRICATOR_MV(462),
+ MASS_FABRICATOR_HV(463),
+ MASS_FABRICATOR_EV(464),
+ MASS_FABRICATOR_IV(465),
+ MATTER_AMPLIFIER_LV(471),
+ MATTER_AMPLIFIER_MV(472),
+ MATTER_AMPLIFIER_HV(473),
+ MATTER_AMPLIFIER_EV(474),
+ MATTER_AMPLIFIER_IV(475),
+ REPLICATOR_LV(481),
+ REPLICATOR_MV(482),
+ REPLICATOR_HV(483),
+ REPLICATOR_EV(484),
+ REPLICATOR_IV(485),
+ BREWERY_LV(491),
+ BREWERY_MV(492),
+ BREWERY_HV(493),
+ BREWERY_EV(494),
+ BREWERY_IV(495),
+ FERMENTER_LV(501),
+ FERMENTER_MV(502),
+ FERMENTER_HV(503),
+ FERMENTER_EV(504),
+ FERMENTER_IV(505),
+ FLUID_EXTRACTOR_LV(511),
+ FLUID_EXTRACTOR_MV(512),
+ FLUID_EXTRACTOR_HV(513),
+ FLUID_EXTRACTOR_EV(514),
+ FLUID_EXTRACTOR_IV(515),
+ FLUID_SOLIDIFIER_LV(521),
+ FLUID_SOLIDIFIER_MV(522),
+ FLUID_SOLIDIFIER_HV(523),
+ FLUID_SOLIDIFIER_EV(524),
+ FLUID_SOLIDIFIER_IV(525),
+ DISTILLERY_LV(531),
+ DISTILLERY_MV(532),
+ DISTILLERY_HV(533),
+ DISTILLERY_EV(534),
+ DISTILLERY_IV(535),
+ CHEMICAL_BATH_LV(541),
+ CHEMICAL_BATH_MV(542),
+ CHEMICAL_BATH_HV(543),
+ CHEMICAL_BATH_EV(544),
+ CHEMICAL_BATH_IV(545),
+ POLARIZER_LV(551),
+ POLARIZER_MV(552),
+ POLARIZER_HV(553),
+ POLARIZER_EV(554),
+ POLARIZER_IV(555),
+ ELECTROMAGNETIC_SEPARATOR_LV(561),
+ ELECTROMAGNETIC_SEPARATOR_MV(562),
+ ELECTROMAGNETIC_SEPARATOR_HV(563),
+ ELECTROMAGNETIC_SEPARATOR_EV(564),
+ ELECTROMAGNETIC_SEPARATOR_IV(565),
+ AUTOCLAVE_LV(571),
+ AUTOCLAVE_MV(572),
+ AUTOCLAVE_HV(573),
+ AUTOCLAVE_EV(574),
+ AUTOCLAVE_IV(575),
+ MIXER_LV(581),
+ MIXER_MV(582),
+ MIXER_HV(583),
+ MIXER_EV(584),
+ MIXER_IV(585),
+ LASER_ENGRAVER_LV(591),
+ LASER_ENGRAVER_MV(592),
+ LASER_ENGRAVER_HV(593),
+ LASER_ENGRAVER_EV(594),
+ LASER_ENGRAVER_IV(595),
+ FORMING_PRESS_LV(601),
+ FORMING_PRESS_MV(602),
+ FORMING_PRESS_HV(603),
+ FORMING_PRESS_EV(604),
+ FORMING_PRESS_IV(605),
+ FORGE_HAMMER_LV(611),
+ FORGE_HAMMER_MV(612),
+ FORGE_HAMMER_HV(613),
+ FORGE_HAMMER_EV(614),
+ FORGE_HAMMER_IV(615),
+ FLUID_HEATER_LV(621),
+ FLUID_HEATER_MV(622),
+ FLUID_HEATER_HV(623),
+ FLUID_HEATER_EV(624),
+ FLUID_HEATER_IV(625),
+ SLICER_LV(631),
+ SLICER_MV(632),
+ SLICER_HV(633),
+ SLICER_EV(634),
+ SLICER_IV(635),
+ SIFTER_LV(641),
+ SIFTER_MV(642),
+ SIFTER_HV(643),
+ SIFTER_EV(644),
+ SIFTER_IV(645),
+ ARC_FURNACE_LV(651),
+ ARC_FURNACE_MV(652),
+ ARC_FURNACE_HV(653),
+ ARC_FURNACE_EV(654),
+ ARC_FURNACE_IV(655),
+ PLASMA_ARC_FURNACE_LV(661),
+ PLASMA_ARC_FURNACE_MV(662),
+ PLASMA_ARC_FURNACE_HV(663),
+ PLASMA_ARC_FURNACE_EV(664),
+ PLASMA_ARC_FURNACE_IV(665),
+ OVEN_LV(671),
+ OVEN_MV(672),
+ OVEN_HV(673),
+ OVEN_EV(674),
+ OVEN_IV(675),
+ MINER_LV(679),
+ MINER_MV(680),
+ MINER_HV(681),
+ BATTERY_CHARGER_4_BY_4_ULV(690),
+ BATTERY_CHARGER_4_BY_4_LV(691),
+ BATTERY_CHARGER_4_BY_4_MV(692),
+ BATTERY_CHARGER_4_BY_4_HV(693),
+ BATTERY_CHARGER_4_BY_4_EV(694),
+ BATTERY_CHARGER_4_BY_4_IV(695),
+ BATTERY_CHARGER_4_BY_4_LuV(696),
+ BATTERY_CHARGER_4_BY_4_ZPM(697),
+ BATTERY_CHARGER_4_BY_4_UV(698),
+ BATTERY_CHARGER_4_BY_4_UHV(699),
+ QUADRUPLE_INPUT_HATCHES_IV(710),
+ QUADRUPLE_INPUT_HATCHES_LuV(711),
+ QUADRUPLE_INPUT_HATCHES_ZPM(712),
+ QUADRUPLE_INPUT_HATCHES_UV(713),
+ QUADRUPLE_INPUT_HATCHES_UHV(714),
+ QUADRUPLE_INPUT_HATCHES_UEV(715),
+ QUADRUPLE_INPUT_HATCHES_UIV(716),
+ QUADRUPLE_INPUT_HATCHES_UMV(717),
+ QUADRUPLE_INPUT_HATCHES_UXV(718),
+ QUADRUPLE_INPUT_HATCHES_MAX(719),
+ EBF_CONTROLLER(1000),
+ IMPLOSION_COMPRESSOR_CONTROLLER(1001),
+ VACUUM_FREEZER_CONTROLLER(1002),
+ MULTI_SMELTER_CONTROLLER(1003),
+ DTPF_CONTROLLER(1004),
+ LARGE_ADVANCED_GAS_TURBINE_CONTROLLER(1005),
+ TRANSCENDENT_PLASMA_MIXER_CONTROLLER(1006),
+ LARGE_BRONZE_BOILER_CONTROLLER(1020),
+ LARGE_STEEL_BOILER_CONTROLLER(1021),
+ LARGE_TITANIUM_BOILER_CONTROLLER(1022),
+ LARGE_TUNGSTENSTEEL_BOILER_CONTROLLER(1023),
+ COMBUSTION_GENERATOR_LV(1110),
+ COMBUSTION_GENERATOR_MV(1111),
+ COMBUSTION_GENERATOR_HV(1112),
+ GAS_TURBINE_LV(1115),
+ GAS_TURBINE_MV(1116),
+ GAS_TURBINE_HV(1117),
+ GAS_TURBINE_EV(1118),
+ GAS_TURBINE_IV(1119),
+ STEAM_TURBINE_LV(1120),
+ STEAM_TURBINE_MV(1121),
+ STEAM_TURBINE_HV(1122),
+ MAGIC_ENERGY_CONVERTER_LV(1123),
+ MAGIC_ENERGY_CONVERTER_MV(1124),
+ MAGIC_ENERGY_CONVERTER_HV(1125),
+ DISTILLATION_TOWER_CONTROLLER(1126),
+ MAGIC_ENERGY_ABSORBER_LV(1127),
+ MAGIC_ENERGY_ABSORBER_MV(1128),
+ MAGIC_ENERGY_ABSORBER_HV(1129),
+ MAGIC_ENERGY_ABSORBER_EV(1130),
+ LARGE_STEAM_TURBINE_CONTROLLER(1131),
+ INTEGRATED_ORE_FACTORY_CONTROLLER(1132),
+ MONSTER_REPELLATOR_LuV(1135),
+ MONSTER_REPELLATOR_ZPM(1136),
+ MONSTER_REPELLATOR_UV(1137),
+ PUMP_LV(1140),
+ PUMP_MV(1141),
+ PUMP_HV(1142),
+ PUMP_EV(1143),
+ PUMP_IV(1144),
+ TELEPORTER(1145),
+ MONSTER_REPELLATOR_LV(1146),
+ MONSTER_REPELLATOR_MV(1147),
+ MONSTER_REPELLATOR_HV(1148),
+ MONSTER_REPELLATOR_EV(1149),
+ MONSTER_REPELLATOR_IV(1150),
+ LARGE_GAS_TURBINE_CONTROLLER(1151),
+ LARGE_HP_STEAM_TURBINE_CONTROLLER(1152),
+ LARGE_PLASMA_TURBINE_CONTROLLER(1153),
+ LARGE_HEAT_EXCHANGER_CONTROLLER(1154),
+ CHARCOAL_PILE_IGNITER_CONTROLLER(1155),
+ MULTIBLOCK_PUMP_MKI_CONTROLLER(1157),
+ ORE_DRILL_MKI_CONTROLLER(1158),
+ PYROLYSE_OVEN_CONTROLLER(1159),
+ OIL_CRACKER_CONTROLLER(1160),
+ MICROWAVE_ENERGY_TRANSMITTER_HV(1161),
+ MICROWAVE_ENERGY_TRANSMITTER_EV(1162),
+ MICROWAVE_ENERGY_TRANSMITTER_IV(1163),
+ MICROWAVE_ENERGY_TRANSMITTER_LuV(1164),
+ MICROWAVE_ENERGY_TRANSMITTER_ZPM(1165),
+ MICROWAVE_ENERGY_TRANSMITTER_UV(1166),
+ LCR_CONTROLLER(1169),
+ ASSEMBLING_LINE_CONTROLLER(1170),
+ COMBUSTION_ENGINE_CONTROLLER(1171),
+ CLEANROOM_CONTROLLER(1172),
+ ADVANCED_SEISMIC_PROSPECTOR_EV(1173),
+ LIGHTNING_ROD_HV(1174),
+ LIGHTNING_ROD_EV(1175),
+ LIGHTNING_ROD_IV(1176),
+ ORE_DRILL_MKII_CONTROLLER(1177),
+ ORE_DRILL_MKIII_CONTROLLER(1178),
+ ORE_DRILL_MKIV_CONTROLLER(1179),
+ CIRCUIT_ASSEMBLER_LV(1180),
+ CIRCUIT_ASSEMBLER_MV(1181),
+ CIRCUIT_ASSEMBLER_HV(1182),
+ CIRCUIT_ASSEMBLER_EV(1183),
+ CIRCUIT_ASSEMBLER_IV(1184),
+ CIRCUIT_ASSEMBLER_LuV(1185),
+ CIRCUIT_ASSEMBLER_ZPM(1186),
+ CIRCUIT_ASSEMBLER_UV(1187),
+ NAQUADAH_REACTOR_ZPM(1188),
+ NAQUADAH_REACTOR_UV(1189),
+ NAQUADAH_REACTOR_EV(1190),
+ NAQUADAH_REACTOR_IV(1191),
+ NAQUADAH_REACTOR_LuV(1192),
+ FUSION_CONTROLLER_MKI(1193),
+ FUSION_CONTROLLER_MKII(1194),
+ FUSION_CONTROLLER_MKIII(1195),
+ PLASMA_GENERATOR_IV(1196),
+ PLASMA_GENERATOR_LuV(1197),
+ PLASMA_GENERATOR_ZPM(1198),
+ PROCESSING_ARRAY_CONTROLLER(1199),
+ ADVANCED_SEISMIC_PROSPECTOR_LV(2102),
+ ADVANCED_SEISMIC_PROSPECTOR_MV(2103),
+ ADVANCED_SEISMIC_PROSPECTOR_HV(2104),
+ EXTREME_COMBUSTION_ENGINE_CONTROLLER(2105),
+ LONG_DISTANCE_PIPELINE_FLUID(2700),
+ LONG_DISTANCE_PIPELINE_ITEM(2701),
+ OUTPUT_BUS_ME(2710),
+ INPUT_BUS_ME_ADVANCED(2711),
+ INPUT_HATCH_ME_ADVANCED(2712),
+ OUTPUT_HATCH_ME(2713),
+ CRAFTING_INPUT_ME(2714),
+ CRAFTING_INPUT_ME_BUS(2715),
+ CRAFTING_INPUT_SLAVE(2716),
+ INPUT_HATCH_ME(2717),
+ INPUT_BUS_ME(2718),
+ CHEST_BUFFER_ULV(9230),
+ CHEST_BUFFER_LV(9231),
+ CHEST_BUFFER_MV(9232),
+ CHEST_BUFFER_HV(9233),
+ CHEST_BUFFER_EV(9234),
+ CHEST_BUFFER_IV(9235),
+ CHEST_BUFFER_LuV(9236),
+ CHEST_BUFFER_ZPM(9237),
+ CHEST_BUFFER_UV(9238),
+ CHEST_BUFFER_UHV(9239),
+ ITEM_FILTER_ULV(9240),
+ ITEM_FILTER_LV(9241),
+ ITEM_FILTER_MV(9242),
+ ITEM_FILTER_HV(9243),
+ ITEM_FILTER_EV(9244),
+ ITEM_FILTER_IV(9245),
+ ITEM_FILTER_LuV(9246),
+ ITEM_FILTER_ZPM(9247),
+ ITEM_FILTER_UV(9248),
+ ITEM_FILTER_UHV(9249),
+ TYPE_FILTER_ULV(9250),
+ TYPE_FILTER_LV(9251),
+ TYPE_FILTER_MV(9252),
+ TYPE_FILTER_HV(9253),
+ TYPE_FILTER_EV(9254),
+ TYPE_FILTER_IV(9255),
+ TYPE_FILTER_LuV(9256),
+ TYPE_FILTER_ZPM(9257),
+ TYPE_FILTER_UV(9258),
+ TYPE_FILTER_UHV(9259),
+ VOLTAGE_REGULATOR_ULV(9270),
+ VOLTAGE_REGULATOR_LV(9271),
+ VOLTAGE_REGULATOR_MV(9272),
+ VOLTAGE_REGULATOR_HV(9273),
+ VOLTAGE_REGULATOR_EV(9274),
+ VOLTAGE_REGULATOR_IV(9275),
+ VOLTAGE_REGULATOR_LuV(9276),
+ VOLTAGE_REGULATOR_ZPM(9277),
+ VOLTAGE_REGULATOR_UV(9278),
+ VOLTAGE_REGULATOR_UHV(9279),
+ SUPER_BUFFER_ULV(9300),
+ SUPER_BUFFER_LV(9301),
+ SUPER_BUFFER_MV(9302),
+ SUPER_BUFFER_HV(9303),
+ SUPER_BUFFER_EV(9304),
+ SUPER_BUFFER_IV(9305),
+ SUPER_BUFFER_LuV(9306),
+ SUPER_BUFFER_ZPM(9307),
+ SUPER_BUFFER_UV(9308),
+ SUPER_BUFFER_UHV(9309),
+ ITEM_DISTRIBUTOR_ULV(9320),
+ ITEM_DISTRIBUTOR_LV(9321),
+ ITEM_DISTRIBUTOR_MV(9322),
+ ITEM_DISTRIBUTOR_HV(9323),
+ ITEM_DISTRIBUTOR_EV(9324),
+ ITEM_DISTRIBUTOR_IV(9325),
+ ITEM_DISTRIBUTOR_LuV(9326),
+ ITEM_DISTRIBUTOR_ZPM(9327),
+ ITEM_DISTRIBUTOR_UV(9328),
+ ITEM_DISTRIBUTOR_UHV(9329),
+ RECIPE_FILTER_ULV(9330),
+ RECIPE_FILTER_LV(9331),
+ RECIPE_FILTER_MV(9332),
+ RECIPE_FILTER_HV(9333),
+ RECIPE_FILTER_EV(9334),
+ RECIPE_FILTER_IV(9335),
+ RECIPE_FILTER_LuV(9336),
+ RECIPE_FILTER_ZPM(9337),
+ RECIPE_FILTER_UV(9338),
+ RECIPE_FILTER_UHV(9339),
+ INDUSTRIAL_APIARY(9399),
+ Drone_Centre(9400),
+ DroneDownLink(9401);
+
+ public final int ID;
+
+ private MetaTileEntityIDs(int ID) {
+ this.ID = ID;
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/Mods.java b/src/main/java/gregtech/api/enums/Mods.java
new file mode 100644
index 0000000000..ee95a98874
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/Mods.java
@@ -0,0 +1,387 @@
+package gregtech.api.enums;
+
+import java.util.Locale;
+
+import net.minecraft.util.ResourceLocation;
+
+import cpw.mods.fml.common.Loader;
+
+public enum Mods {
+
+ AE2FluidCraft(Names.A_E2_FLUID_CRAFT),
+ AE2Stuff(Names.AE2STUFF),
+ AE2WCT(Names.AE2WCT),
+ AFSU(Names.A_F_S_U),
+ AdvancedSolarPanel(Names.ADVANCED_SOLAR_PANEL),
+ AdventureBackpack(Names.ADVENTURE_BACKPACK),
+ AppleCore(Names.APPLE_CORE),
+ AppliedEnergistics2(Names.APPLIED_ENERGISTICS2),
+ ArchitectureCraft(Names.ARCHITECTURE_CRAFT),
+ Aroma1997Core(Names.AROMA1997_CORE),
+ Automagy(Names.AUTOMAGY),
+ Avaritia(Names.AVARITIA),
+ AvaritiaAddons(Names.AVARITIA_ADDONS),
+ Backpack(Names.BACKPACK),
+ BartWorks(Names.BART_WORKS),
+ Baubles(Names.BAUBLES),
+ BetterBuildersWands(Names.BETTER_BUILDERS_WANDS),
+ BetterLoadingScreen(Names.BETTER_LOADING_SCREEN),
+ BetterQuesting(Names.BETTER_QUESTING),
+ BiblioCraft(Names.BIBLIO_CRAFT),
+ BiblioWoodsBoPEdition(Names.BIBLIO_WOODS_BO_P_EDITION),
+ BiblioWoodsForestryEdition(Names.BIBLIO_WOODS_FORESTRY_EDITION),
+ BiblioWoodsNaturaEdition(Names.BIBLIO_WOODS_NATURA_EDITION),
+ BinnieCore(Names.BINNIE_CORE),
+ BiomesOPlenty(Names.BIOMES_O_PLENTY),
+ BloodArsenal(Names.BLOOD_ARSENAL),
+ BloodMagic(Names.BLOOD_MAGIC),
+ Botania(Names.BOTANIA),
+ Botany(Names.BOTANY),
+ BuildCraftBuilders(Names.BUILD_CRAFT_BUILDERS),
+ BuildCraftCompat(Names.BUILD_CRAFT_COMPAT),
+ BuildCraftCore(Names.BUILD_CRAFT_CORE),
+ BuildCraftFactory(Names.BUILD_CRAFT_FACTORY),
+ BuildCraftRobotics(Names.BUILD_CRAFT_ROBOTICS),
+ BuildCraftSilicon(Names.BUILD_CRAFT_SILICON),
+ BuildCraftTransport(Names.BUILD_CRAFT_TRANSPORT),
+ COFHCore(Names.C_O_F_H_CORE),
+ CarpentersBlocks(Names.CARPENTERS_BLOCKS),
+ CatWalks(Names.CAT_WALKS),
+ Chisel(Names.CHISEL),
+ CompactKineticGenerators(Names.COMPACT_KINETIC_GENERATORS),
+ Computronics(Names.COMPUTRONICS),
+ CraftTweaker(Names.CRAFT_TWEAKER),
+ CropLoadCore(Names.CROP_LOAD_CORE),
+ CropsPlusPlus(Names.CROPS_PLUS_PLUS),
+ DraconicEvolution(Names.DRACONIC_EVOLUTION),
+ ElectroMagicTools(Names.ELECTRO_MAGIC_TOOLS),
+ EnderIO(Names.ENDER_I_O),
+ EnderStorage(Names.ENDER_STORAGE),
+ EnderZoo(Names.ENDER_ZOO),
+ EnhancedLootBags(Names.ENHANCED_LOOT_BAGS),
+ EternalSingularity(Names.ETERNAL_SINGULARITY),
+ ExtraBees(Names.EXTRA_BEES),
+ ExtraCells2(Names.EXTRA_CELLS2),
+ ExtraTrees(Names.EXTRA_TREES),
+ ExtraUtilities(Names.EXTRA_UTILITIES),
+ FloodLights(Names.FLOOD_LIGHTS),
+ ForbiddenMagic(Names.FORBIDDEN_MAGIC),
+ Forestry(Names.FORESTRY),
+ ForgeMicroblocks(Names.FORGE_MICROBLOCKS),
+ ForgeRelocation(Names.FORGE_RELOCATION),
+ GTNHIntergalactic(Names.G_T_N_H_INTERGALACTIC),
+ GTNHLanthanides(Names.G_T_N_H_LANTHANIDES),
+ GTPlusPlus(Names.G_T_PLUS_PLUS),
+ GTPlusPlusEverglades(Names.G_T_PLUS_PLUS_EVERGLADES),
+ Gadomancy(Names.GADOMANCY),
+ GalactiGreg(Names.GALACTI_GREG),
+ GalacticraftAmunRa(Names.GALACTICRAFT_AMUN_RA),
+ GalacticraftCore(Names.GALACTICRAFT_CORE),
+ GalacticraftMars(Names.GALACTICRAFT_MARS),
+ GalaxySpace(Names.GALAXY_SPACE),
+ Gendustry(Names.GENDUSTRY),
+ Genetics(Names.GENETICS),
+ GoodGenerator(Names.GOOD_GENERATOR),
+ GraviSuite(Names.GRAVI_SUITE),
+ GraviSuiteNEO(Names.GRAVI_SUITE_NEO),
+ GregTech(Names.GREG_TECH),
+ HardcoreEnderExpansion(Names.HARDCORE_ENDER_EXPANSION),
+ HodgePodge(Names.HODGE_PODGE),
+ HoloInventory(Names.HOLO_INVENTORY),
+ IC2CropPlugin(Names.I_C2_CROP_PLUGIN),
+ IC2NuclearControl(Names.I_C2_NUCLEAR_CONTROL),
+ IguanaTweaksTinkerConstruct(Names.IGUANA_TWEAKS_TINKER_CONSTRUCT),
+ IndustrialCraft2(Names.INDUSTRIAL_CRAFT2),
+ IronChests(Names.IRON_CHESTS),
+ IronChestsMinecarts(Names.IRON_CHESTS_MINECARTS),
+ IronTanks(Names.IRON_TANKS),
+ JABBA(Names.J_A_B_B_A),
+ KekzTech(Names.KEKZ_TECH),
+ KubaTech(Names.KUBA_TECH),
+ LogisticsPipes(Names.LOGISTICS_PIPES),
+ MCFrames(Names.MC_FRAMES),
+ MagicBees(Names.MAGIC_BEES),
+ MalisisDoors(Names.MALISIS_DOORS),
+ Mantle(Names.MANTLE),
+ MineAndBladeBattleGear2(Names.MINE_AND_BLADE_BATTLE_GEAR2),
+ Minecraft(Names.MINECRAFT),
+ NEICustomDiagrams(Names.N_E_I_CUSTOM_DIAGRAMS),
+ NEIOrePlugin(Names.N_E_I_ORE_PLUGIN),
+ Natura(Names.NATURA),
+ NaturesCompass(Names.NATURES_COMPASS),
+ NewHorizonsCoreMod(Names.NEW_HORIZONS_CORE_MOD),
+ NotEnoughItems(Names.NOT_ENOUGH_ITEMS),
+ OpenBlocks(Names.OPEN_BLOCKS),
+ OpenComputers(Names.OPEN_COMPUTERS),
+ OpenGlasses(Names.OPEN_GLASSES),
+ OpenModularTurrets(Names.OPEN_MODULAR_TURRETS),
+ OpenPrinters(Names.OPEN_PRINTERS),
+ OpenSecurity(Names.OPEN_SECURITY),
+ PamsHarvestCraft(Names.PAMS_HARVEST_CRAFT),
+ PamsHarvestTheNether(Names.PAMS_HARVEST_THE_NETHER),
+ PlayerAPI(Names.PLAYER_API),
+ ProjectBlue(Names.PROJECT_BLUE),
+ ProjectRedCore(Names.PROJECT_RED_CORE),
+ ProjectRedExpansion(Names.PROJECT_RED_EXPANSION),
+ ProjectRedExploration(Names.PROJECT_RED_EXPLORATION),
+ ProjectRedFabrication(Names.PROJECT_RED_FABRICATION),
+ ProjectRedIllumination(Names.PROJECT_RED_ILLUMINATION),
+ ProjectRedIntegration(Names.PROJECT_RED_INTEGRATION),
+ ProjectRedTransmission(Names.PROJECT_RED_TRANSMISSION),
+ ProjectRedTransportation(Names.PROJECT_RED_TRANSPORTATION),
+ QuestBook(Names.QUEST_BOOK),
+ RWG(Names.RWG),
+ Railcraft(Names.RAILCRAFT),
+ RandomThings(Names.RANDOM_THINGS),
+ RemoteIO(Names.REMOTE_IO),
+ SGCraft(Names.S_G_CRAFT),
+ SleepingBags(Names.SLEEPING_BAGS),
+ SpiceOfLife(Names.SPICE_OF_LIFE),
+ StevesAddons(Names.STEVES_ADDONS),
+ StevesCarts2(Names.STEVES_CARTS2),
+ StevesFactoryManager(Names.STEVES_FACTORY_MANAGER),
+ StorageDrawers(Names.STORAGE_DRAWERS),
+ StructureLib(Names.STRUCTURE_LIB),
+ SuperSolarPanels(Names.SUPER_SOLAR_PANELS),
+ TaintedMagic(Names.TAINTED_MAGIC),
+ TecTech(Names.TECTECH),
+ Thaumcraft(Names.THAUMCRAFT),
+ ThaumicBases(Names.THAUMIC_BASES),
+ ThaumicBoots(Names.THAUMIC_BOOTS),
+ ThaumicEnergistics(Names.THAUMIC_ENERGISTICS),
+ ThaumicExploration(Names.THAUMIC_EXPLORATION),
+ ThaumicHorizons(Names.THAUMIC_HORIZONS),
+ ThaumicMachina(Names.THAUMIC_MACHINA),
+ ThaumicTinkerer(Names.THAUMIC_TINKERER),
+ TinkerConstruct(Names.TINKER_CONSTRUCT),
+ TinkersDefence(Names.TINKERS_DEFENCE),
+ TinkersGregworks(Names.TINKERS_GREGWORKS),
+ TinkersMechworks(Names.TINKERS_MECHWORKS),
+ Translocator(Names.TRANSLOCATOR),
+ TravellersGear(Names.TRAVELLERS_GEAR),
+ TwilightForest(Names.TWILIGHT_FOREST),
+ UniversalSingularities(Names.UNIVERSAL_SINGULARITIES),
+ Waila(Names.WAILA),
+ WarpTheory(Names.WARP_THEORY),
+ WirelessRedstoneCBEAddons(Names.WIRELESS_REDSTONE_CBE_ADDONS),
+ WirelessRedstoneCBECore(Names.WIRELESS_REDSTONE_CBE_CORE),
+ WirelessRedstoneCBELogic(Names.WIRELESS_REDSTONE_CBE_LOGIC),
+ Witchery(Names.WITCHERY),
+ WitchingGadgets(Names.WITCHING_GADGETS),
+ ZTones(Names.Z_TONES),
+
+ // Do we keep compat of those?
+ ArsMagica2(Names.ARS_MAGICA2),
+ GanysSurface(Names.GANYS_SURFACE),
+ IndustrialCraft2Classic(Names.INDUSTRIAL_CRAFT2_CLASSIC),
+ MagicalCrops(Names.MAGICAL_CROPS),
+ Metallurgy(Names.METALLURGY),
+ RotaryCraft(Names.ROTARY_CRAFT),
+ ThermalExpansion(Names.THERMAL_EXPANSION),
+ ThermalFondation(Names.THERMAL_FONDATION),
+ UndergroundBiomes(Names.UNDERGROUND_BIOMES),
+
+ ;
+
+ public static class Names {
+
+ public static final String A_E2_FLUID_CRAFT = "ae2fc";
+ public static final String AE2STUFF = "ae2stuff";
+ public static final String AE2WCT = "ae2wct";
+ public static final String A_F_S_U = "AFSU";
+ public static final String ADVANCED_SOLAR_PANEL = "AdvancedSolarPanel";
+ public static final String ADVENTURE_BACKPACK = "adventurebackpack";
+ public static final String APPLE_CORE = "AppleCore";
+ public static final String APPLIED_ENERGISTICS2 = "appliedenergistics2";
+ public static final String ARCHITECTURE_CRAFT = "ArchitectureCraft";
+ public static final String AROMA1997_CORE = "Aroma1997Core";
+ public static final String AUTOMAGY = "Automagy";
+ public static final String AVARITIA = "Avaritia";
+ public static final String AVARITIA_ADDONS = "avaritiaddons";
+ public static final String BACKPACK = "Backpack";
+ public static final String BART_WORKS = "bartworks";
+ public static final String BAUBLES = "Baubles";
+ public static final String BETTER_BUILDERS_WANDS = "betterbuilderswands";
+ public static final String BETTER_LOADING_SCREEN = "betterloadingscreen";
+ public static final String BETTER_QUESTING = "betterquesting";
+ public static final String BIBLIO_CRAFT = "BiblioCraft";
+ public static final String BIBLIO_WOODS_BO_P_EDITION = "BiblioWoodsBoP";
+ public static final String BIBLIO_WOODS_FORESTRY_EDITION = "BiblioWoodsForestry";
+ public static final String BIBLIO_WOODS_NATURA_EDITION = "BiblioWoodsNatura";
+ public static final String BINNIE_CORE = "BinnieCore";
+ public static final String BIOMES_O_PLENTY = "BiomesOPlenty";
+ public static final String BLOOD_ARSENAL = "BloodArsenal";
+ public static final String BLOOD_MAGIC = "AWWayofTime";
+ public static final String BOTANIA = "Botania";
+ public static final String BOTANY = "Botany";
+ public static final String BUILD_CRAFT_BUILDERS = "BuildCraft|Builders";
+ public static final String BUILD_CRAFT_COMPAT = "BuildCraft|Compat";
+ public static final String BUILD_CRAFT_CORE = "BuildCraft|Core";
+ public static final String BUILD_CRAFT_FACTORY = "BuildCraft|Factory";
+ public static final String BUILD_CRAFT_ROBOTICS = "BuildCraft|Robotics";
+ public static final String BUILD_CRAFT_SILICON = "BuildCraft|Silicon";
+ public static final String BUILD_CRAFT_TRANSPORT = "BuildCraft|Transport";
+ public static final String C_O_F_H_CORE = "CoFHCore";
+ public static final String CARPENTERS_BLOCKS = "CarpentersBlocks";
+ public static final String CAT_WALKS = "catwalks";
+ public static final String CHISEL = "chisel";
+ public static final String COMPACT_KINETIC_GENERATORS = "compactkineticgenerators";
+ public static final String COMPUTRONICS = "computronics";
+ public static final String CRAFT_TWEAKER = "MineTweaker3";
+ public static final String CROP_LOAD_CORE = "croploadcore";
+ public static final String CROPS_PLUS_PLUS = "berriespp";
+ public static final String DRACONIC_EVOLUTION = "DraconicEvolution";
+ public static final String ELECTRO_MAGIC_TOOLS = "EMT";
+ public static final String ENDER_I_O = "EnderIO";
+ public static final String ENDER_STORAGE = "EnderStorage";
+ public static final String ENDER_ZOO = "EnderZoo";
+ public static final String ENHANCED_LOOT_BAGS = "enhancedlootbags";
+ public static final String ETERNAL_SINGULARITY = "eternalsingularity";
+ public static final String EXTRA_BEES = "ExtraBees";
+ public static final String EXTRA_CELLS2 = "extracells";
+ public static final String EXTRA_TREES = "ExtraTrees";
+ public static final String EXTRA_UTILITIES = "ExtraUtilities";
+ public static final String FLOOD_LIGHTS = "FloodLights";
+ public static final String FORBIDDEN_MAGIC = "ForbiddenMagic";
+ public static final String FORESTRY = "Forestry";
+ public static final String FORGE_MICROBLOCKS = "ForgeMicroblock";
+ public static final String FORGE_RELOCATION = "ForgeRelocation";
+ public static final String G_T_N_H_INTERGALACTIC = "gtnhintergalactic";
+ public static final String G_T_N_H_LANTHANIDES = "gtnhlanth";
+ public static final String G_T_PLUS_PLUS = "miscutils";
+ public static final String G_T_PLUS_PLUS_EVERGLADES = "ToxicEverglades";
+ public static final String GADOMANCY = "gadomancy";
+ public static final String GALACTI_GREG = "galacticgreg";
+ public static final String GALACTICRAFT_AMUN_RA = "GalacticraftAmunRa";
+ public static final String GALACTICRAFT_CORE = "GalacticraftCore";
+ public static final String GALACTICRAFT_MARS = "GalacticraftMars";
+ public static final String GALAXY_SPACE = "GalaxySpace";
+ public static final String GENDUSTRY = "gendustry";
+ public static final String GENETICS = "Genetics";
+ public static final String GOOD_GENERATOR = "GoodGenerator";
+ public static final String GRAVI_SUITE = "GraviSuite";
+ public static final String GRAVI_SUITE_NEO = "gravisuiteneo";
+ public static final String GREG_TECH = "gregtech";
+ public static final String HARDCORE_ENDER_EXPANSION = "HardcoreEnderExpansion";
+ public static final String HODGE_PODGE = "hodgepodge";
+ public static final String HOLO_INVENTORY = "holoinventory";
+ public static final String I_C2_CROP_PLUGIN = "Ic2Nei";
+ public static final String I_C2_NUCLEAR_CONTROL = "IC2NuclearControl";
+ public static final String IGUANA_TWEAKS_TINKER_CONSTRUCT = "IguanaTweaksTConstruct";
+ public static final String INDUSTRIAL_CRAFT2 = "IC2";
+ public static final String IRON_CHESTS = "IronChest";
+ public static final String IRON_CHESTS_MINECARTS = "ironchestminecarts";
+ public static final String IRON_TANKS = "irontank";
+ public static final String J_A_B_B_A = "JABBA";
+ public static final String KEKZ_TECH = "kekztech";
+ public static final String KUBA_TECH = "kubatech";
+ public static final String LOGISTICS_PIPES = "LogisticsPipes";
+ public static final String MC_FRAMES = "MCFrames";
+ public static final String MAGIC_BEES = "MagicBees";
+ public static final String MALISIS_DOORS = "malisisdoors";
+ public static final String MANTLE = "Mantle";
+ public static final String MINE_AND_BLADE_BATTLE_GEAR2 = "battlegear2";
+ public static final String MINECRAFT = "minecraft";
+ public static final String N_E_I_CUSTOM_DIAGRAMS = "neicustomdiagram";
+ public static final String N_E_I_ORE_PLUGIN = "gtneioreplugin";
+ public static final String NATURA = "Natura";
+ public static final String NATURES_COMPASS = "naturescompass";
+ public static final String NEW_HORIZONS_CORE_MOD = "dreamcraft";
+ public static final String NOT_ENOUGH_ITEMS = "NotEnoughItems";
+ public static final String OPEN_BLOCKS = "OpenBlocks";
+ public static final String OPEN_COMPUTERS = "OpenComputers";
+ public static final String OPEN_GLASSES = "openglasses";
+ public static final String OPEN_MODULAR_TURRETS = "openmodularturrets";
+ public static final String OPEN_PRINTERS = "openprinter";
+ public static final String OPEN_SECURITY = "opensecurity";
+ public static final String PAMS_HARVEST_CRAFT = "harvestcraft";
+ public static final String PAMS_HARVEST_THE_NETHER = "harvestthenether";
+ public static final String PLAYER_API = "PlayerAPI";
+ public static final String PROJECT_BLUE = "ProjectBlue";
+ public static final String PROJECT_RED_CORE = "ProjRed|Core";
+ public static final String PROJECT_RED_EXPANSION = "ProjRed|Expansion";
+ public static final String PROJECT_RED_EXPLORATION = "ProjRed|Exploration";
+ public static final String PROJECT_RED_FABRICATION = "ProjRed|Fabrication";
+ public static final String PROJECT_RED_ILLUMINATION = "ProjRed|Illumination";
+ public static final String PROJECT_RED_INTEGRATION = "ProjRed|Integration";
+ public static final String PROJECT_RED_TRANSMISSION = "ProjRed|Transmission";
+ public static final String PROJECT_RED_TRANSPORTATION = "ProjRed|Transportation";
+ public static final String QUEST_BOOK = "questbook";
+ public static final String RWG = "RWG";
+ public static final String RAILCRAFT = "Railcraft";
+ public static final String RANDOM_THINGS = "RandomThings";
+ public static final String REMOTE_IO = "RIO";
+ public static final String S_G_CRAFT = "SGCraft";
+ public static final String SLEEPING_BAGS = "sleepingbag";
+ public static final String SPICE_OF_LIFE = "SpiceOfLife";
+ public static final String STEVES_ADDONS = "StevesAddons";
+ public static final String STEVES_CARTS2 = "StevesCarts";
+ public static final String STEVES_FACTORY_MANAGER = "StevesFactoryManager";
+ public static final String STRUCTURE_LIB = "structurelib";
+ public static final String STORAGE_DRAWERS = "StorageDrawers";
+ public static final String SUPER_SOLAR_PANELS = "supersolarpanel";
+ public static final String TAINTED_MAGIC = "TaintedMagic";
+ public static final String TECTECH = "tectech";
+ public static final String THAUMCRAFT = "Thaumcraft";
+ public static final String THAUMIC_BASES = "thaumicbases";
+ public static final String THAUMIC_ENERGISTICS = "thaumicenergistics";
+ public static final String THAUMIC_EXPLORATION = "ThaumicExploration";
+ public static final String THAUMIC_HORIZONS = "ThaumicHorizons";
+ public static final String THAUMIC_BOOTS = "thaumicboots";
+ public static final String THAUMIC_MACHINA = "ThaumicMachina";
+ public static final String THAUMIC_TINKERER = "ThaumicTinkerer";
+ public static final String TINKER_CONSTRUCT = "TConstruct";
+ public static final String TINKERS_DEFENCE = "tinkersdefense";
+ public static final String TINKERS_GREGWORKS = "TGregworks";
+ public static final String TINKERS_MECHWORKS = "TMechworks";
+ public static final String TRANSLOCATOR = "Translocator";
+ public static final String TRAVELLERS_GEAR = "TravellersGear";
+ public static final String TWILIGHT_FOREST = "TwilightForest";
+ public static final String UNIVERSAL_SINGULARITIES = "universalsingularities";
+ public static final String WAILA = "Waila";
+ public static final String WARP_THEORY = "WarpTheory";
+ public static final String WIRELESS_REDSTONE_CBE_ADDONS = "WR-CBE|Addons";
+ public static final String WIRELESS_REDSTONE_CBE_CORE = "WR-CBE|Core";
+ public static final String WIRELESS_REDSTONE_CBE_LOGIC = "WR-CBE|Logic";
+ public static final String WITCHERY = "witchery";
+ public static final String WITCHING_GADGETS = "WitchingGadgets";
+ public static final String Z_TONES = "Ztones";
+
+ // Do we keep compat of those mods?
+ public static final String ARS_MAGICA2 = "arsmagica2";
+ public static final String GANYS_SURFACE = "ganyssurface";
+ public static final String INDUSTRIAL_CRAFT2_CLASSIC = "IC2-Classic-Spmod";
+ public static final String MAGICAL_CROPS = "magicalcrops";
+ public static final String METALLURGY = "Metallurgy";
+ public static final String ROTARY_CRAFT = "RotaryCraft";
+ public static final String THERMAL_EXPANSION = "ThermalExpansion";
+ public static final String THERMAL_FONDATION = "ThermalFoundation";
+ public static final String UNDERGROUND_BIOMES = "UndergroundBiomes";
+
+ }
+
+ public final String ID;
+ public final String resourceDomain;
+ private Boolean modLoaded;
+
+ Mods(String ID) {
+ this.ID = ID;
+ this.resourceDomain = ID.toLowerCase(Locale.ENGLISH);
+ }
+
+ public boolean isModLoaded() {
+ if (this.modLoaded == null) {
+ this.modLoaded = Loader.isModLoaded(ID);
+ }
+ return this.modLoaded;
+ }
+
+ public String getResourcePath(String... path) {
+ return this.getResourceLocation(path)
+ .toString();
+ }
+
+ public ResourceLocation getResourceLocation(String... path) {
+ return new ResourceLocation(this.resourceDomain, String.join("/", path));
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/OreDictNames.java b/src/main/java/gregtech/api/enums/OreDictNames.java
new file mode 100644
index 0000000000..8bb86b5249
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/OreDictNames.java
@@ -0,0 +1,77 @@
+package gregtech.api.enums;
+
+public enum OreDictNames {
+ craftingAnvil,
+ craftingBook,
+ craftingCentrifuge,
+ craftingChest,
+ craftingCompressor,
+ craftingConveyor,
+ craftingDiamondBlade,
+ craftingDrain,
+ craftingDuctTape,
+ craftingElectricFurnace,
+ craftingElectromagnet,
+ enderChest, // Vanilla OreDict Name
+ craftingEnergyCellUpgrade,
+ craftingEnergyMeter,
+ craftingExtractor,
+ craftingFeather,
+ craftingFurnace,
+ craftingFilter,
+ craftingGenerator,
+ craftingGeothermalGenerator,
+ craftingGrinder,
+ craftingInductionFurnace,
+ craftingIndustrialDiamond,
+ craftingIronFurnace,
+ craftingLensBlack,
+ craftingLensBlue,
+ craftingLensBrown,
+ craftingLensCyan,
+ craftingLensGray,
+ craftingLensGreen,
+ craftingLensLightBlue,
+ craftingLensLightGray,
+ craftingLensLime,
+ craftingLensMagenta,
+ craftingLensOrange,
+ craftingLensPink,
+ craftingLensPurple,
+ craftingLensRed,
+ craftingLensWhite,
+ craftingLensYellow,
+ craftingMacerator,
+ craftingMetalformer,
+ craftingPiston,
+ craftingPump,
+ craftingQuantumChestUpgrade,
+ craftingQuartz,
+ craftingRawMachineTier00,
+ craftingRawMachineTier01,
+ craftingRawMachineTier02,
+ craftingRawMachineTier03,
+ craftingRawMachineTier04,
+ craftingRecycler,
+ craftingRedstoneReceiver,
+ craftingRedstoneTorch,
+ craftingRedstoneTranceiver,
+ craftingRedstoneTransmitter,
+ craftingSafe,
+ craftingSteamTank,
+ craftingSteamUpgrade,
+ craftingSuperconductor,
+ craftingTank,
+ craftingTeleporter,
+ craftingThermalCentrifuge,
+ craftingTurbineBladeBronze,
+ craftingTurbineBladeCarbon,
+ craftingTurbineBladeMagnalium,
+ craftingTurbineBladeSteel,
+ craftingTurbineBladeTungstenSteel,
+ craftingWireCopper,
+ craftingWireGold,
+ craftingWireIron,
+ craftingWireTin,
+ craftingWorkBench,
+}
diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java
new file mode 100644
index 0000000000..bd30f03c3e
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/OrePrefixes.java
@@ -0,0 +1,1417 @@
+package gregtech.api.enums;
+
+import static gregtech.api.enums.GT_Values.B;
+import static gregtech.api.enums.GT_Values.D2;
+import static gregtech.api.enums.GT_Values.M;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+
+import com.google.common.collect.ImmutableList;
+
+import gregtech.api.enums.TC_Aspects.TC_AspectStack;
+import gregtech.api.interfaces.ICondition;
+import gregtech.api.interfaces.IOreRecipeRegistrator;
+import gregtech.api.interfaces.ISubTagContainer;
+import gregtech.api.objects.GT_ArrayList;
+import gregtech.api.objects.GT_ItemStack;
+import gregtech.api.objects.ItemData;
+import gregtech.api.objects.MaterialStack;
+import gregtech.api.util.GT_Log;
+import gregtech.api.util.GT_Utility;
+import gregtech.loaders.materialprocessing.ProcessingModSupport;
+import it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet;
+import it.unimi.dsi.fastutil.objects.ObjectSet;
+
+public enum OrePrefixes {
+
+ @Deprecated
+ pulp("Pulps", "", "", false, false, false, false, false, false, false, false, false, false,
+ B[0] | B[1] | B[2] | B[3], -1, 64, -1),
+ @Deprecated
+ leaves("Leaves", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ @Deprecated
+ sapling("Saplings", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ @Deprecated
+ itemDust("Dusts", "", "", false, false, false, false, false, false, false, false, false, false,
+ B[0] | B[1] | B[2] | B[3], -1, 64, -1),
+ /** In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! */
+ oreBlackgranite("Black Granite Ores", "Granite ", " Ore", true, true, false, false, false, true, false, false,
+ false, true, B[3], -1, 64, -1),
+ /** In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! */
+ oreRedgranite("Red Granite Ores", "Granite ", " Ore", true, true, false, false, false, true, false, false, false,
+ true, B[3], -1, 64, -1),
+ /** In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! */
+ oreMarble("Marble Ores", "Marble ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3],
+ -1, 64, -1),
+ /** In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! */
+ oreBasalt("Basalt Ores", "Basalt ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3],
+ -1, 64, -1),
+ /** Prefix of the Nether-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! */
+ oreNetherrack("Netherrack Ores", "Nether ", " Ore", true, true, false, false, false, true, false, false, false,
+ true, B[3], -1, 64, -1),
+ /** Prefix of the Nether-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! */
+ oreNether("Nether Ores", "Nether ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3],
+ -1, 64, -1),
+ @Deprecated
+ denseore("Dense Ores", "", "", false, false, false, false, false, true, false, false, false, true, B[3], -1, 64,
+ -1),
+ /** Prefix of the Dense-Ores Mod. Causes Ores to double. Ore -> Material is a Oneway Operation! */
+ oreDense("Dense Ores", "Dense ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1,
+ 64, -1),
+ /** Prefix of TFC */
+ oreRich("Rich Ores", "Rich ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1,
+ 64, -1),
+ /** Prefix of TFC */
+ oreNormal("Normal Ores", "Normal ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3],
+ -1, 64, -1),
+ /** Prefix of Railcraft. */
+ oreSmall("Small Ores", "Small ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1,
+ 64, 67),
+ /** Prefix of Railcraft. */
+ orePoor("Poor Ores", "Poor ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1,
+ 64, -1),
+ /** In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! */
+ oreEndstone("Endstone Ores", "End ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3],
+ -1, 64, -1),
+ /** In case of an End-Ores Mod. Ore -> Material is a Oneway Operation! */
+ oreEnd("End Ores", "End ", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64,
+ -1),
+ @Deprecated
+ oreGem("Ores", "", "", false, false, false, false, false, true, false, false, false, true, B[3], -1, 64, -1),
+ /** Regular Ore Prefix. Ore -> Material is a Oneway Operation! Introduced by Eloraam */
+ ore("Ores", "", " Ore", true, true, false, false, false, true, false, false, false, true, B[3], -1, 64, 68),
+ crushedCentrifuged("Centrifuged Ores", "Centrifuged ", " Ore", true, true, false, false, false, false, false, true,
+ false, true, B[3], -1, 64, 7),
+ crushedPurified("Purified Ores", "Purified ", " Ore", true, true, false, false, false, false, false, true, false,
+ true, B[3], -1, 64, 6),
+ crushed("Crushed Ores", "Crushed ", " Ore", true, true, false, false, false, false, false, true, false, true, B[3],
+ -1, 64, 5),
+ rawOre("Raw Ore", "Raw ", " Ore", true, true, false, false, false, false, false, false, false, true, B[3], -1, 64,
+ 64),
+
+ /** Introduced by Mekanism */
+ shard("Crystallised Shards", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1,
+ 64, -1),
+ clump("Clumps", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1, 64, -1),
+ reduced("Reduced Gravels", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1, 64,
+ -1),
+ crystalline("Crystallised Metals", "", "", true, true, false, false, false, false, false, false, false, true, B[3],
+ -1, 64, -1),
+ cleanGravel("Clean Gravels", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1,
+ 64, -1),
+ dirtyGravel("Dirty Gravels", "", "", true, true, false, false, false, false, false, false, false, true, B[3], -1,
+ 64, -1),
+ /** A quintuple Ingot. */
+ ingotQuintuple("5x Ingots", "Quintuple ", " Ingot", true, true, false, false, false, false, true, true, false,
+ false, B[1], M * 5, 64, 16),
+ /** A quadruple Ingot. */
+ ingotQuadruple("4x Ingots", "Quadruple ", " Ingot", true, true, false, false, false, false, true, true, false,
+ false, B[1], M * 4, 64, 15),
+ @Deprecated
+ ingotQuad("4x Ingots", "Quadruple ", " Ingot", false, false, false, false, false, false, false, false, false, false,
+ B[1], -1, 64, 15),
+ /** A triple Ingot. */
+ ingotTriple("3x Ingots", "Triple ", " Ingot", true, true, false, false, false, false, true, false, false, false,
+ B[1], M * 3, 64, 14),
+ /** A double Ingot. Introduced by TerraFirmaCraft */
+ ingotDouble("2x Ingots", "Double ", " Ingot", true, true, false, false, false, false, true, true, false, false,
+ B[1], M * 2, 64, 13),
+ /** A hot Ingot, which has to be cooled down by a Vacuum Freezer. */
+ ingotHot("Hot Ingots", "Hot ", " Ingot", true, true, false, false, false, false, false, true, false, false, B[1],
+ M * 1, 64, 12),
+ /** A regular Ingot. Introduced by Eloraam */
+ ingot("Ingots", "", " Ingot", true, true, false, false, false, false, false, true, false, false, B[1], M * 1, 64,
+ 11),
+ /** A regular Gem worth one small Dust. Introduced by TerraFirmaCraft */
+ gemChipped("Chipped Gemstones", "Chipped ", "", true, true, true, false, false, false, true, true, false, false,
+ B[2], M / 4, 64, 59),
+ /** A regular Gem worth two small Dusts. Introduced by TerraFirmaCraft */
+ gemFlawed("Flawed Gemstones", "Flawed ", "", true, true, true, false, false, false, true, true, false, false, B[2],
+ M / 2, 64, 60),
+ /** A regular Gem worth two Dusts. Introduced by TerraFirmaCraft */
+ gemFlawless("Flawless Gemstones", "Flawless ", "", true, true, true, false, false, false, true, true, false, false,
+ B[2], M * 2, 64, 61),
+ /** A regular Gem worth four Dusts. Introduced by TerraFirmaCraft */
+ gemExquisite("Exquisite Gemstones", "Exquisite ", "", true, true, true, false, false, false, true, true, false,
+ false, B[2], M * 4, 64, 62),
+ /** A regular Gem worth one Dust. Introduced by Eloraam */
+ gem("Gemstones", "", "", true, true, true, false, false, false, true, true, false, false, B[2], M * 1, 64, 8),
+ @Deprecated
+ dustDirty("Impure Dusts", "", "", false, false, false, false, false, false, false, false, false, true, B[3], -1, 64,
+ 3),
+ /** 1/9th of a Dust. */
+ dustTiny("Tiny Dusts", "Tiny Pile of ", " Dust", true, true, false, false, false, false, false, true, false, false,
+ B[0] | B[1] | B[2] | B[3], M / 9, 64, 0),
+ /** 1/4th of a Dust. */
+ dustSmall("Small Dusts", "Small Pile of ", " Dust", true, true, false, false, false, false, false, true, false,
+ false, B[0] | B[1] | B[2] | B[3], M / 4, 64, 1),
+ /** Dust with impurities. 1 Unit of Main Material and 1/9 - 1/4 Unit of secondary Material */
+ dustImpure("Impure Dusts", "Impure Pile of ", " Dust", true, true, false, false, false, false, false, true, false,
+ true, B[3], M * 1, 64, 3),
+ dustRefined("Refined Dusts", "Refined Pile of ", " Dust", true, true, false, false, false, false, false, true,
+ false, true, B[3], M * 1, 64, 2),
+ dustPure("Purified Dusts", "Purified Pile of ", " Dust", true, true, false, false, false, false, false, true, false,
+ true, B[3], M * 1, 64, 4),
+ /** Pure Dust worth of one Ingot or Gem. Introduced by Alblaka. */
+ dust("Dusts", "", " Dust", true, true, false, false, false, false, false, true, false, false,
+ B[0] | B[1] | B[2] | B[3], M * 1, 64, 2),
+ /** A Nugget. Introduced by Eloraam */
+ nugget("Nuggets", "", " Nugget", true, true, false, false, false, false, false, true, false, false, B[1], M / 9, 64,
+ 9),
+ /** Special Alloys have this prefix. */
+ plateAlloy("Alloy Plates", "", "", true, false, false, false, false, false, false, false, false, false, B[1], -1,
+ 64, 17),
+ plateSteamcraft("Steamcraft Plates", "", "", false, false, false, false, false, false, false, false, false, false,
+ B[1], -1, 64, 17),
+ /** 9 Plates combined in one Item. */
+ plateDense("Dense Plates", "Dense ", " Plate", true, true, false, false, false, false, true, true, false, false,
+ B[1], M * 9, 64, 22),
+ plateQuintuple("5x Plates", "Quintuple ", " Plate", true, true, false, false, false, false, true, true, false,
+ false, B[1], M * 5, 64, 21),
+ plateQuadruple("4x Plates", "Quadruple ", " Plate", true, true, false, false, false, false, true, true, false,
+ false, B[1], M * 4, 64, 20),
+ @Deprecated
+ plateQuad("4x Plates", "", "", false, false, false, false, false, false, false, false, false, false, B[1], -1, 64,
+ 20),
+ plateTriple("3x Plates", "Triple ", " Plate", true, true, false, false, false, false, true, true, false, false,
+ B[1], M * 3, 64, 19),
+ plateDouble("2x Plates", "Double ", " Plate", true, true, false, false, false, false, true, true, false, false,
+ B[1], M * 2, 64, 18),
+ plate("Plates", "", " Plate", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M * 1,
+ 64, 17),
+ /** Casing made of 1/2 Ingot/Dust */
+ itemCasing("Casings", "", " Casing", true, true, false, false, false, false, true, true, false, false, B[1] | B[2],
+ M / 2, 64, 10),
+ /** Foil made of 1/4 Ingot/Dust. */
+ foil("Foils", "", " Foil", true, true, false, false, false, false, true, true, false, false, B[1], M / 4, 64, 29),
+ /** Stick made of an Ingot. */
+ stickLong("Long Sticks/Rods", "Long ", " Rod", true, true, false, false, false, false, true, true, false, false,
+ B[1] | B[2], M * 1, 64, 54),
+ /** Stick made of half an Ingot. Introduced by Eloraam */
+ stick("Sticks/Rods", "", " Rod", true, true, false, false, false, false, true, true, false, false, B[1] | B[2],
+ M / 2, 64, 23),
+ /** consisting out of one Nugget. */
+ round("Rounds", "", " Round", true, true, false, false, false, false, true, true, false, false, B[1], M / 9, 64,
+ 25),
+ /** consisting out of 1/8 Ingot or 1/4 Stick. */
+ bolt("Bolts", "", " Bolt", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M / 8, 64,
+ 26),
+ /** contain dusts */
+ comb("Combs", "", " Comb", false, false, false, false, false, false, false, true, false, false, B[1] | B[2], M, 64,
+ 101),
+ /** consisting out of a Bolt. */
+ screw("Screws", "", " Screw", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M / 9,
+ 64, 27),
+ /** consisting out of 1/2 Stick. */
+ ring("Rings", "", " Ring", true, true, false, false, false, false, true, true, false, false, B[1], M / 4, 64, 28),
+ /** consisting out of 1 Fine Wire. */
+ springSmall("Small Springs", "Small ", " Spring", true, true, false, false, false, false, true, true, false, false,
+ B[1], M / 4, 64, 55),
+ /** consisting out of 2 Sticks. */
+ spring("Springs", "", " Spring", true, true, false, false, false, false, true, true, false, false, B[1], M * 1, 64,
+ 56),
+ /** consisting out of 1/8 Ingot or 1/4 Wire. */
+ wireFine("Fine Wires", "Fine ", " Wire", true, true, false, false, false, false, true, true, false, false, B[1],
+ M / 8, 64, 51),
+ /** consisting out of 4 Plates, 1 Ring and 1 Screw. */
+ rotor("Rotors", "", " Rotor", true, true, false, false, false, false, true, true, false, false, B[7], M * 4 + M / 4,
+ 64, 53),
+ gearGtSmall("Small Gears", "Small ", " Gear", true, true, false, false, false, false, true, true, false, false,
+ B[7], M * 1, 64, 52),
+ /** Introduced by me because BuildCraft has ruined the gear Prefix... */
+ gearGt("Gears", "", " Gear", true, true, false, false, false, false, true, true, false, false, B[7], M * 4, 16, 63),
+ /** 3/4 of a Plate or Gem used to shape a Lense. Normally only used on Transparent Materials. */
+ lens("Lenses", "", " Lens", true, true, false, false, false, false, true, true, false, false, B[2], (M * 3) / 4, 64,
+ 24),
+ /** consisting out of 16 Dusts. */
+ crateGtDust("Crates of Dust", "Crate of ", " Dust", true, true, false, true, false, false, false, true, false,
+ false, B[0] | B[1] | B[2] | B[3], -1, 64, 96),
+ /** consisting out of 16 Plates. */
+ crateGtPlate("Crates of Plates", "Crate of ", " Plate", true, true, false, true, false, false, false, true, false,
+ false, B[1] | B[2], -1, 64, 99),
+ /** consisting out of 16 Ingots. */
+ crateGtIngot("Crates of Ingots", "Crate of ", " Ingot", true, true, false, true, false, false, false, true, false,
+ false, B[1], -1, 64, 97),
+ /** consisting out of 16 Gems. */
+ crateGtGem("Crates of Gems", "Crate of ", " Gem", true, true, false, true, false, false, false, true, false, false,
+ B[2], -1, 64, 98),
+ /** Hot Cell full of Plasma, which can be used in the Plasma Generator. */
+ cellPlasma("Cells of Plasma", "", " Plasma Cell", true, true, true, true, false, false, false, true, false, false,
+ B[5], M * 1, 64, 31),
+ /** Hot Cell full of molten stuff, which can be used in the Plasma Generator. */
+ cellMolten("Cells of Molten stuff", "Molten ", " Cell", true, true, true, true, false, false, false, true, false,
+ false, 0, M * 1, 64, 31),
+ cell("Cells", "", " Cell", true, true, true, true, false, false, true, true, false, false, B[4] | B[8], M * 1, 64,
+ 30),
+ /** A vanilla Iron Bucket filled with the Material. */
+ bucket("Buckets", "", " Bucket", true, true, true, true, false, false, true, false, false, false, B[4] | B[8],
+ M * 1, 64, -1),
+ /** An Iguana Tweaks Clay Bucket filled with the Material. */
+ bucketClay("Clay Buckets", "", " Clay Bucket", true, true, true, true, false, false, true, false, false, false,
+ B[4] | B[8], M * 1, 64, -1),
+ /** Glass Bottle containing a Fluid. */
+ bottle("Bottles", "", " Bottle", true, true, true, true, false, false, false, false, false, false, B[4] | B[8], -1,
+ 64, -1),
+ capsule("Capsules", "", " Capsule", false, true, true, true, false, false, false, false, false, false, B[4] | B[8],
+ M * 1, 64, -1),
+ crystal("Crystals", "", " Crystal", false, true, false, false, false, false, true, false, false, false, B[2], M * 1,
+ 64, -1),
+ bulletGtSmall("Small Bullets", "Small ", " Bullet", true, true, false, false, true, false, true, false, true, false,
+ B[6] | B[8], M / 9, 64, -1),
+ bulletGtMedium("Medium Bullets", "Medium ", " Bullet", true, true, false, false, true, false, true, false, true,
+ false, B[6] | B[8], M / 6, 64, -1),
+ bulletGtLarge("Large Bullets", "Large ", " Bullet", true, true, false, false, true, false, true, false, true, false,
+ B[6] | B[8], M / 3, 64, -1),
+ /** Arrow made of 1/4 Ingot/Dust + Wooden Stick. */
+ arrowGtWood("Regular Arrows", "", " Arrow", true, true, false, false, true, false, true, false, true, false, B[6],
+ M / 4, 64, 57),
+ /** Arrow made of 1/4 Ingot/Dust + Plastic Stick. */
+ arrowGtPlastic("Light Arrows", "Light ", " Arrow", true, true, false, false, true, false, true, false, true, false,
+ B[6], M / 4, 64, 58),
+ arrow("Arrows", "", "", false, false, true, false, false, false, false, false, true, false, B[6], -1, 64, 57),
+ /** consisting out of 1/4 Ingot. */
+ toolHeadArrow("Arrow Heads", "", " Arrow Head", true, true, false, false, false, false, true, true, false, false,
+ B[6], M / 4, 64, 46),
+ /** consisting out of 2 Ingots. */
+ toolHeadSword("Sword Blades", "", " Sword Blade", true, true, false, false, false, false, true, true, false, false,
+ B[6], M * 2, 64, 32),
+ /** consisting out of 3 Ingots. */
+ toolHeadPickaxe("Pickaxe Heads", "", " Pickaxe Head", true, true, false, false, false, false, true, true, false,
+ false, B[6], M * 3, 64, 33),
+ /** consisting out of 1 Ingots. */
+ toolHeadShovel("Shovel Heads", "", " Shovel Head", true, true, false, false, false, false, true, true, false, false,
+ B[6], M * 1, 64, 34),
+ /** consisting out of 1 Ingots. */
+ toolHeadUniversalSpade("Universal Spade Heads", "", " Universal Spade Head", true, true, false, false, false, false,
+ true, true, false, false, B[6], M * 1, 64, 43),
+ /** consisting out of 3 Ingots. */
+ toolHeadAxe("Axe Heads", "", " Axe Head", true, true, false, false, false, false, true, true, false, false, B[6],
+ M * 3, 64, 35),
+ /** consisting out of 2 Ingots. */
+ toolHeadHoe("Hoe Heads", "", " Hoe Head", true, true, false, false, false, false, true, true, false, false, B[6],
+ M * 2, 64, 36),
+ /** consisting out of 3 Ingots. */
+ toolHeadSense("Sense Blades", "", " Sense Blade", true, true, false, false, false, false, true, true, false, false,
+ B[6], M * 3, 64, 44),
+ /** consisting out of 2 Ingots. */
+ toolHeadFile("File Heads", "", " File Head", true, true, false, false, false, false, true, true, false, false, B[6],
+ M * 2, 64, 38),
+ /** consisting out of 6 Ingots. */
+ toolHeadHammer("Hammer Heads", "", " Hammer Head", true, true, false, false, false, false, true, true, false, false,
+ B[6], M * 6, 64, 37),
+ /** consisting out of 4 Ingots. */
+ toolHeadPlow("Plow Heads", "", " Plow Head", true, true, false, false, false, false, true, true, false, false, B[6],
+ M * 4, 64, 45),
+ /** consisting out of 2 Ingots. */
+ toolHeadSaw("Saw Blades", "", " Saw Blade", true, true, false, false, false, false, true, true, false, false, B[6],
+ M * 2, 64, 39),
+ /** consisting out of 4 Ingots. */
+ toolHeadBuzzSaw("Buzzsaw Blades", "", " Buzzsaw Blade", true, true, false, false, false, false, true, true, false,
+ false, B[6], M * 4, 64, 48),
+ /** consisting out of 1 Ingots. */
+ toolHeadScrewdriver("Screwdriver Tips", "", " Screwdriver Tip", true, true, false, false, false, false, true, false,
+ false, false, B[6], M * 1, 64, 47),
+ /** consisting out of 4 Ingots. */
+ toolHeadDrill("Drill Tips", "", " Drill Tip", true, true, false, false, false, false, true, true, false, false,
+ B[6], M * 4, 64, 40),
+ /** consisting out of 2 Ingots. */
+ toolHeadChainsaw("Chainsaw Tips", "", " Chainsaw Tip", true, true, false, false, false, false, true, true, false,
+ false, B[6], M * 2, 64, 41),
+ /** consisting out of 4 Ingots. */
+ toolHeadWrench("Wrench Tips", "", " Wrench Tip", true, true, false, false, false, false, true, true, false, false,
+ B[6], M * 4, 64, 42),
+ /** consisting out of 6 Ingots. */
+ turbineBlade("Turbine Blades", "", " Turbine Blade", true, true, false, false, false, false, true, true, false,
+ false, B[6], M * 6, 64, 100),
+ /** vanilly Sword */
+ toolSword("Swords", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 2, 1, -1),
+ /** vanilly Pickaxe */
+ toolPickaxe("Pickaxes", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 3, 1,
+ -1),
+ /** vanilly Shovel */
+ toolShovel("Shovels", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 1, 1,
+ -1),
+ /** vanilly Axe */
+ toolAxe("Axes", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 3, 1, -1),
+ /** vanilly Hoe */
+ toolHoe("Hoes", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 2, 1, -1),
+ /** vanilly Shears */
+ toolShears("Shears", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 2, 1, -1),
+ /**
+ * toolPot, toolSkillet, toolSaucepan, toolBakeware, toolCuttingboard, toolMortarandpestle, toolMixingbowl,
+ * toolJuicer
+ */
+ tool("Tools", "", "", false, false, false, false, false, false, false, false, true, false, B[6], -1, 1, -1),
+ compressedCobblestone("9^X Compressed Cobblestones", "", "", false, false, false, false, false, false, false, false,
+ false, false, 0, -1, 64, -1),
+ compressedStone("9^X Compressed Stones", "", "", false, false, false, false, false, false, false, false, false,
+ false, 0, -1, 64, -1),
+ compressedDirt("9^X Compressed Dirt", "", "", false, false, false, false, false, false, false, false, false, false,
+ 0, -1, 64, -1),
+ compressedGravel("9^X Compressed Gravel", "", "", false, false, false, false, false, false, false, false, false,
+ false, 0, -1, 64, -1),
+ compressedSand("9^X Compressed Sand", "", "", false, false, false, false, false, false, false, false, false, false,
+ 0, -1, 64, -1),
+ /** Compressed Material, worth 1 Unit. Introduced by Galacticraft */
+ compressed("Compressed Materials", "Compressed ", "", true, true, false, false, false, false, true, false, false,
+ false, 0, M * 3, 64, -1),
+ glass("Glasses", "", "", false, false, true, false, true, false, false, false, false, false, 0, -1, 64, -1),
+ paneGlass("Glass Panes", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1),
+ blockGlass("Glass Blocks", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64,
+ -1),
+ blockWool("Wool Blocks", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1),
+ /** IGNORE */
+ block_("Random Blocks", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1),
+ /** Storage Block consisting out of 9 Ingots/Gems/Dusts. Introduced by CovertJaguar */
+ block("Storage Blocks", "Block of ", "", true, true, false, false, false, true, true, false, false, false, 0, M * 9,
+ 64, 71),
+ /** Special Prefix used mainly for the Crafting Handler. */
+ craftingTool("Crafting Tools", "", "", false, false, false, false, false, false, false, false, true, false, 0, -1,
+ 64, -1),
+ /** Special Prefix used mainly for the Crafting Handler. */
+ crafting("Crafting Ingredients", "", "", false, false, false, false, false, false, false, false, false, false, 0,
+ -1, 64, -1),
+ /** Special Prefix used mainly for the Crafting Handler. */
+ craft("Crafting Stuff?", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64,
+ -1),
+ /** Prefix used for Logs. Usually as "logWood". Introduced by Eloraam */
+ log("Logs", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1),
+ /** Prefix used for Slabs. Usually as "slabWood" or "slabStone". Introduced by SirSengir */
+ slab("Slabs", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1),
+ /** Prefix used for Stairs. Usually as "stairWood" or "stairStone". Introduced by SirSengir */
+ stair("Stairs", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1),
+ /** Prefix used for Fences. Usually as "fenceWood". Introduced by Forge */
+ fence("Fences", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Prefix for Planks. Usually "plankWood". Introduced by Eloraam */
+ plank("Planks", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64, -1),
+ /** Prefix for Saplings. */
+ treeSapling("Saplings", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1),
+ /** Prefix for Leaves. */
+ treeLeaves("Leaves", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1),
+ /** Prefix for Tree Parts. */
+ tree("Tree Parts", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Cobblestone Prefix for all Cobblestones. */
+ stoneCobble("Cobblestones", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64,
+ -1),
+ /** Smoothstone Prefix. */
+ stoneSmooth("Smoothstones", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64,
+ -1),
+ /** Mossy Stone Bricks. */
+ stoneMossyBricks("mossy Stone Bricks", "", "", false, false, true, false, false, true, false, false, false, false,
+ 0, -1, 64, -1),
+ /** Mossy Cobble. */
+ stoneMossy("Mossy Stones", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64,
+ -1),
+ @Deprecated
+ stoneBricksMossy("Mossy Stone Bricks", "", "", false, false, false, false, false, true, false, false, false, false,
+ 0, -1, 64, -1),
+ /** Stone Bricks. */
+ stoneBricks("Stone Bricks", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64,
+ -1),
+ @Deprecated
+ stoneBrick("Stone Bricks", "", "", false, false, false, false, false, true, false, false, false, false, 0, -1, 64,
+ -1),
+ /** Cracked Bricks. */
+ stoneCracked("Cracked Stones", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1,
+ 64, -1),
+ /** Chiseled Stone. */
+ stoneChiseled("Chiseled Stones", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1,
+ 64, -1),
+ /** Prefix to determine which kind of Rock this is. */
+ stone("Stones", "", "", false, true, true, false, true, true, false, false, false, false, 0, -1, 64, -1),
+ cobblestone("Cobblestones", "", "", false, true, true, false, false, true, false, false, false, false, 0, -1, 64,
+ -1),
+ /** Prefix to determine which kind of Rock this is. */
+ rock("Rocks", "", "", false, true, true, false, true, true, false, false, false, false, 0, -1, 64, -1),
+ record("Records", "", "", false, false, true, false, false, false, false, false, false, false, 0, -1, 1, -1),
+ rubble("Rubbles", "", "", true, true, true, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ scraps("Scraps", "", "", true, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ scrap("Scraps", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** IGNORE */
+ item_("Items", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Random Item. Introduced by Alblaka */
+ item("Items", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Used for Books of any kind. */
+ book("Books", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Used for Papers of any kind. */
+ paper("Papers", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Used for the 16 dyes. Introduced by Eloraam */
+ dye("Dyes", "", "", false, false, true, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Used for the 16 colors of Stained Clay. Introduced by Forge */
+ stainedClay("Stained Clays", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64,
+ -1),
+ /** vanilly Helmet */
+ armorHelmet("Helmets", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 5, 1,
+ -1),
+ /** vanilly Chestplate */
+ armorChestplate("Chestplates", "", "", false, true, false, false, false, false, true, false, true, false, B[6],
+ M * 8, 1, -1),
+ /** vanilly Pants */
+ armorLeggings("Leggings", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 7, 1,
+ -1),
+ /** vanilly Boots */
+ armorBoots("Boots", "", "", false, true, false, false, false, false, true, false, true, false, B[6], M * 4, 1, -1),
+ armor("Armor Parts", "", "", false, false, false, false, false, false, false, false, true, false, B[6], -1, 1, -1),
+ frameGt("Frame Boxes", "", "", true, true, false, false, true, false, true, false, false, false, 0, M * 2, 64, 83),
+ pipeTiny("Tiny Pipes", "Tiny ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M / 2,
+ 64, 78),
+ pipeSmall("Small Pipes", "Small ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0,
+ M * 1, 64, 79),
+ pipeMedium("Medium Pipes", "Medium ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0,
+ M * 3, 64, 80),
+ pipeLarge("Large pipes", "Large ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0,
+ M * 6, 64, 81),
+ pipeHuge("Huge Pipes", "Huge ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0,
+ M * 12, 64, 82),
+ pipeQuadruple("Quadruple Pipes", "Quadruple ", " Pipe", true, true, false, false, true, false, true, false, false,
+ false, 0, M * 12, 64, 84),
+ pipeNonuple("Nonuple Pipes", "Nonuple ", " Pipe", true, true, false, false, true, false, true, false, false, false,
+ 0, M * 9, 64, 85),
+ pipeRestrictiveTiny("Tiny Restrictive Pipes", "Tiny Restrictive ", " Pipe", true, true, false, false, true, false,
+ true, false, false, false, 0, M / 2, 64, 78),
+ pipeRestrictiveSmall("Small Restrictive Pipes", "Small Restrictive ", " Pipe", true, true, false, false, true,
+ false, true, false, false, false, 0, M * 1, 64, 79),
+ pipeRestrictiveMedium("Medium Restrictive Pipes", "Medium Restrictive ", " Pipe", true, true, false, false, true,
+ false, true, false, false, false, 0, M * 3, 64, 80),
+ pipeRestrictiveLarge("Large Restrictive Pipes", "Large Restrictive ", " Pipe", true, true, false, false, true,
+ false, true, false, false, false, 0, M * 6, 64, 81),
+ pipeRestrictiveHuge("Huge Restrictive Pipes", "Huge Restrictive ", " Pipe", true, true, false, false, true, false,
+ true, false, false, false, 0, M * 12, 64, 82),
+ pipe("Pipes", "", " Pipe", true, false, false, false, false, false, false, false, false, false, 0, -1, 64, 77),
+ wireGt16("16x Wires", "16x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 8,
+ 64, -1),
+ wireGt12("12x Wires", "12x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 6,
+ 64, -1),
+ wireGt08("8x Wires", "8x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 4,
+ 64, -1),
+ wireGt04("4x Wires", "4x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 2,
+ 64, -1),
+ wireGt02("2x Wires", "2x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 1,
+ 64, -1),
+ wireGt01("1x Wires", "1x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M / 2,
+ 64, -1),
+ cableGt16("16x Cables", "16x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0,
+ M * 8, 64, -1),
+ cableGt12("12x Cables", "12x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0,
+ M * 6, 64, -1),
+ cableGt08("8x Cables", "8x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 4,
+ 64, -1),
+ cableGt04("4x Cables", "4x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 2,
+ 64, -1),
+ cableGt02("2x Cables", "2x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 1,
+ 64, -1),
+ cableGt01("1x Cables", "1x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M / 2,
+ 64, -1),
+
+ /*
+ * Electric Components. usual Materials for this are: Primitive (Tier 1) Basic (Tier 2) as used by UE as well : IC2
+ * Circuit and RE-Battery Good (Tier 3) Advanced (Tier 4) as used by UE as well : Advanced Circuit, Advanced Battery
+ * and Lithium Battery Data (Tier 5) : Data Storage Circuit Elite (Tier 6) as used by UE as well : Energy Crystal
+ * and Data Control Circuit Master (Tier 7) : Energy Flow Circuit and Lapotron Crystal Ultimate (Tier 8) : Data Orb
+ * and Lapotronic Energy Orb Infinite (Cheaty)
+ */
+ batterySingleuse("Single Use Batteries", "", "", false, true, false, false, false, false, false, false, false,
+ false, 0, -1, 64, -1),
+ battery("Reusable Batteries", "", "", false, true, false, false, false, false, false, false, false, false, 0, -1,
+ 64, -1),
+ circuit("Circuits", "", "", true, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Introduced by Buildcraft */
+ chipset("Chipsets", "", "", true, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** A whole Computer. "computerMaster" = ComputerCube */
+ computer("Computers", "", "", true, true, false, false, true, false, false, false, false, false, 0, -1, 64, -1),
+
+ // random known prefixes without special abilities.
+ skull("Skulls", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ plating("Platings", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ dinosaur("Dinosaurs", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ travelgear("Travel Gear", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64,
+ -1),
+ bauble("Baubles", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ cluster("Clusters", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ grafter("Grafters", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ scoop("Scoops", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ frame("Frames", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ tome("Tomes", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ junk("Junk", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ bee("Bees", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ rod("Rods", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ dirt("Dirts", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ sand("Sands", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1),
+ grass("Grasses", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ gravel("Gravels", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ mushroom("Mushrooms", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Introduced by Eloraam */
+ wood("Woods", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ drop("Drops", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ fuel("Fuels", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ panel("Panels", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ brick("Bricks", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ chunk("Chunks", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ wire("Wires", "", "", false, false, false, false, true, false, false, false, false, false, 0, -1, 64, -1),
+ seed("Seeds", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ reed("Reeds", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ sheetDouble("2x Sheets", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64,
+ -1),
+ sheet("Sheets", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ crop("Crops", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ plant("Plants", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ coin("Coins", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ lumar("Lumars", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ ground("Grounded Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64,
+ -1),
+ cable("Cables", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ component("Components", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64,
+ -1),
+ wax("Waxes", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ wall("Walls", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ tube("Tubes", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ list("Lists", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ food("Foods", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Introduced by SirSengir */
+ gear("Gears", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ coral("Corals", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ flower("Flowers", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ storage("Storages", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ material("Materials", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ plasma("Plasmas", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ element("Elements", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ molecule("Molecules", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ wafer("Wafers", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ orb("Orbs", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ handle("Handles", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ blade("Blades", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ head("Heads", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ motor("Motors", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ bit("Bits", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ shears("Shears", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ turbine("Turbines", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ fertilizer("Fertilizers", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64,
+ -1),
+ chest("Chests", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ raw("Raw Things", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ stainedGlass("Stained Glasses", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1,
+ 64, -1),
+ mystic("Mystic Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ mana("Mana Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ rune("Runes", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ petal("Petals", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ pearl("Pearls", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ powder("Powders", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ soulsand("Soulsands", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ obsidian("Obsidians", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ glowstone("Glowstones", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64,
+ -1),
+ beans("Beans", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ br("br", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ essence("Essences", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ alloy("Alloys", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ cooking("Cooked Things", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64,
+ -1),
+ elven("Elven Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ reactor("Reactors", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ mffs("MFFS", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ projred("Project Red", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ ganys("Ganys Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ liquid("Liquids", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ bars("Bars", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ bar("Bars", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ /** Reverse Head consisting out of 6 Ingots. */
+ toolHeadMallet("Mallet Heads", "", " Mallet Head", true, true, false, false, false, false, true, true, false, false,
+ B[6], M * 6, 64, 127),
+ /** Reverse Stick made of half an Ingot. Introduced by Eloraam */
+ handleMallet("Mallet Handle", "", " Handle", true, true, false, false, false, false, true, true, false, false,
+ B[1] | B[2], M / 2, 64, 126),
+
+ // Cracked fluids
+ cellHydroCracked1("Cells", "Lightly Hydro-Cracked ", " Cell", true, true, true, true, false, false, false, true,
+ false, false, 0, M * 1, 64, 30),
+ cellHydroCracked2("Cells", "Moderately Hydro-Cracked ", " Cell", true, true, true, true, false, false, false, true,
+ false, false, 0, M * 1, 64, 30),
+ cellHydroCracked3("Cells", "Severely Hydro-Cracked ", " Cell", true, true, true, true, false, false, false, true,
+ false, false, 0, M * 1, 64, 30),
+ cellSteamCracked1("Cells", "Lightly Steam-Cracked ", " Cell", true, true, true, true, false, false, false, true,
+ false, false, 0, M * 1, 64, 30),
+ cellSteamCracked2("Cells", "Moderately Steam-Cracked ", " Cell", true, true, true, true, false, false, false, true,
+ false, false, 0, M * 1, 64, 30),
+ cellSteamCracked3("Cells", "Severely Steam-Cracked ", " Cell", true, true, true, true, false, false, false, true,
+ false, false, 0, M * 1, 64, 30),
+
+ componentCircuit("Circuit Parts", "", "", true, true, false, false, false, false, false, false, false, false, 0, -1,
+ 64, -1),
+
+ apiaryUpgrade("Industrial Apiary Upgrade", "", "", false, false, true, false, false, false, false, false, false,
+ false, 0, -1, 64, -1),
+ beeComb("Bee Combs", "", "", true, false, true, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ nanite("Nanites", "", " Nanites", true, true, true, false, false, false, false, false, false, false, 0, -1, 64, 50),
+ // migrated from GT++
+ milled("Milled Ores", "Milled ", " Ore", true, true, false, false, false, false, false, false, false, true, B[3],
+ -1, 64, -1),
+ // migrated from bartworks
+ blockCasing("A Casing block for a Multiblock-Machine", "Bolted ", " Casing", true, true, true, true, false, true,
+ false, true, false, false, 0, M * 9, 64, -1),
+ blockCasingAdvanced("An Advanced Casing block for a Multiblock-Machine", "Rebolted ", " Casing", true, true, true,
+ true, false, true, false, true, false, false, 0, M * 9, 64, -1),
+ capsuleMolten("Capsule of Molten stuff", "Molten ", " Capsule", true, true, true, true, false, false, false, true,
+ false, false, 0, M * 1, 64, -1);
+
+ public static final ImmutableList<OrePrefixes> CELL_TYPES = ImmutableList.of(
+ cell,
+ cellMolten,
+ cellPlasma,
+ cellHydroCracked1,
+ cellHydroCracked2,
+ cellHydroCracked3,
+ cellSteamCracked1,
+ cellSteamCracked2,
+ cellSteamCracked3);
+
+ static {
+ pulp.mPrefixInto = dust;
+ oreGem.mPrefixInto = ore;
+ leaves.mPrefixInto = treeLeaves;
+ sapling.mPrefixInto = treeSapling;
+ itemDust.mPrefixInto = dust;
+ dustDirty.mPrefixInto = dustImpure;
+ denseore.mPrefixInto = oreDense;
+ ingotQuad.mPrefixInto = ingotQuadruple;
+ plateQuad.mPrefixInto = plateQuadruple;
+ stoneBrick.mPrefixInto = stoneBricks;
+ stoneBricksMossy.mPrefixInto = stoneMossyBricks;
+
+ ingotHot.mHeatDamage = 3.0F;
+ cellMolten.mHeatDamage = 3;
+ cellPlasma.mHeatDamage = 6.0F;
+
+ block.ignoreMaterials(
+ Materials.Ice,
+ Materials.Snow,
+ Materials.Concrete,
+ Materials.Glass,
+ Materials.Glowstone,
+ Materials.DarkIron,
+ Materials.Marble,
+ Materials.Quartz,
+ Materials.CertusQuartz,
+ Materials.Limestone);
+ ingot.ignoreMaterials(Materials.Brick, Materials.NetherBrick);
+
+ dust.addFamiliarPrefix(dustTiny);
+ dust.addFamiliarPrefix(dustSmall);
+ dustTiny.addFamiliarPrefix(dust);
+ dustTiny.addFamiliarPrefix(dustSmall);
+ dustSmall.addFamiliarPrefix(dust);
+ dustSmall.addFamiliarPrefix(dustTiny);
+
+ ingot.addFamiliarPrefix(nugget);
+ nugget.addFamiliarPrefix(ingot);
+
+ for (OrePrefixes tPrefix1 : values()) if (tPrefix1.name()
+ .startsWith("ore"))
+ for (OrePrefixes tPrefix2 : values()) if (tPrefix2.name()
+ .startsWith("ore")) tPrefix1.addFamiliarPrefix(tPrefix2);
+
+ // These are only the important ones.
+ gem.mNotGeneratedItems.add(Materials.Coal);
+ gem.mNotGeneratedItems.add(Materials.Charcoal);
+ gem.mNotGeneratedItems.add(Materials.NetherStar);
+ gem.mNotGeneratedItems.add(Materials.Diamond);
+ gem.mNotGeneratedItems.add(Materials.Emerald);
+ gem.mNotGeneratedItems.add(Materials.NetherQuartz);
+ gem.mNotGeneratedItems.add(Materials.EnderPearl);
+ gem.mNotGeneratedItems.add(Materials.EnderEye);
+ gem.mNotGeneratedItems.add(Materials.Flint);
+ gem.mNotGeneratedItems.add(Materials.Lapis);
+ dust.mNotGeneratedItems.add(Materials.Bone);
+ dust.mNotGeneratedItems.add(Materials.Redstone);
+ dust.mNotGeneratedItems.add(Materials.Glowstone);
+ dust.mNotGeneratedItems.add(Materials.Gunpowder);
+ dust.mNotGeneratedItems.add(Materials.Sugar);
+ dust.mNotGeneratedItems.add(Materials.Blaze);
+ stick.mNotGeneratedItems.add(Materials.Wood);
+ stick.mNotGeneratedItems.add(Materials.Bone);
+ stick.mNotGeneratedItems.add(Materials.Blaze);
+ ingot.mNotGeneratedItems.add(Materials.Iron);
+ ingot.mNotGeneratedItems.add(Materials.Gold);
+ ingot.mNotGeneratedItems.add(Materials.Brick);
+ ingot.mNotGeneratedItems.add(Materials.BrickNether);
+ ingot.mNotGeneratedItems.add(Materials.WoodSealed);
+ ingot.mNotGeneratedItems.add(Materials.Wood);
+
+ frame.mNotGeneratedItems.add(MaterialsUEVplus.Universium);
+ frameGt.mNotGeneratedItems.add(MaterialsUEVplus.Universium);
+
+ plateDouble.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ plateTriple.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ plateQuadruple.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ plateQuintuple.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ cell.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ ingotDouble.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ ingotTriple.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ ingotQuadruple.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ ingotQuintuple.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ turbineBlade.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ dust.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ dustSmall.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ dustTiny.mNotGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+
+ // ingot.mNotGeneratedItems.add(Materials.Ichorium);
+ nugget.mNotGeneratedItems.add(Materials.Gold);
+ plate.mNotGeneratedItems.add(Materials.Paper);
+ cell.mNotGeneratedItems.add(Materials.Empty);
+ cell.mNotGeneratedItems.add(Materials.Water);
+ cell.mNotGeneratedItems.add(Materials.Lava);
+ cell.mNotGeneratedItems.add(Materials.ConstructionFoam);
+ cell.mNotGeneratedItems.add(Materials.UUMatter);
+ cell.mNotGeneratedItems.add(Materials.CoalFuel);
+ bucket.mNotGeneratedItems.add(Materials.Empty);
+ bucket.mNotGeneratedItems.add(Materials.Lava);
+ bucket.mNotGeneratedItems.add(Materials.Milk);
+ bucket.mNotGeneratedItems.add(Materials.Water);
+ bucketClay.mNotGeneratedItems.add(Materials.Empty);
+ bucketClay.mNotGeneratedItems.add(Materials.Lava);
+ bucketClay.mNotGeneratedItems.add(Materials.Milk);
+ bucketClay.mNotGeneratedItems.add(Materials.Water);
+ bottle.mNotGeneratedItems.add(Materials.Empty);
+ bottle.mNotGeneratedItems.add(Materials.Water);
+ bottle.mNotGeneratedItems.add(Materials.Milk);
+ block.mNotGeneratedItems.add(Materials.Iron);
+ block.mNotGeneratedItems.add(Materials.Gold);
+ block.mNotGeneratedItems.add(Materials.Lapis);
+ block.mNotGeneratedItems.add(Materials.Emerald);
+ block.mNotGeneratedItems.add(Materials.Redstone);
+ block.mNotGeneratedItems.add(Materials.Diamond);
+ block.mNotGeneratedItems.add(Materials.Coal);
+ toolHeadArrow.mNotGeneratedItems.add(Materials.Glass);
+ toolHeadArrow.mNotGeneratedItems.add(MaterialsUEVplus.TranscendentMetal);
+ arrowGtPlastic.mNotGeneratedItems.add(MaterialsUEVplus.TranscendentMetal);
+ arrow.mNotGeneratedItems.add(MaterialsUEVplus.TranscendentMetal);
+ arrowGtWood.mNotGeneratedItems.add(MaterialsUEVplus.TranscendentMetal);
+ stickLong.mNotGeneratedItems.add(Materials.Obsidian);
+ dust.mNotGeneratedItems.add(Materials.CertusQuartzCharged);
+
+ // -----
+
+ dustImpure.mGeneratedItems.add(Materials.GraniteRed);
+ dustImpure.mGeneratedItems.add(Materials.GraniteBlack);
+ dustImpure.mGeneratedItems.add(Materials.Quartzite);
+ dustImpure.mGeneratedItems.add(Materials.Flint);
+ dustImpure.mGeneratedItems.add(Materials.Redrock);
+ dustImpure.mGeneratedItems.add(Materials.Basalt);
+ dustImpure.mGeneratedItems.add(Materials.Marble);
+ dustImpure.mGeneratedItems.add(Materials.Netherrack);
+ dustImpure.mGeneratedItems.add(Materials.Endstone);
+ dustImpure.mGeneratedItems.add(Materials.Stone);
+
+ plate.mGeneratedItems.add(Materials.Redstone);
+ plate.mGeneratedItems.add(Materials.Concrete);
+ plate.mGeneratedItems.add(Materials.GraniteRed);
+ plate.mGeneratedItems.add(Materials.GraniteBlack);
+ plate.mGeneratedItems.add(Materials.Basalt);
+ plate.mGeneratedItems.add(Materials.Marble);
+ plate.mGeneratedItems.add(Materials.Glowstone);
+ plate.mGeneratedItems.add(Materials.Electrotine);
+ plate.mGeneratedItems.add(Materials.Obsidian);
+
+ ingotHot.mGeneratedItems.add(MaterialsUEVplus.TranscendentMetal);
+
+ plate.mGeneratedItems.add(Materials.Paper);
+ plateDouble.mGeneratedItems.add(Materials.Paper);
+ plateTriple.mGeneratedItems.add(Materials.Paper);
+ plateQuadruple.mGeneratedItems.add(Materials.Paper);
+ plateQuintuple.mGeneratedItems.add(Materials.Paper);
+ ring.mGeneratedItems.add(Materials.Paper);
+
+ lens.mGeneratedItems.add(Materials.EnderPearl);
+ lens.mGeneratedItems.add(Materials.EnderEye);
+
+ stickLong.mGeneratedItems.add(Materials.Blaze);
+
+ nanite.mGeneratedItems.add(Materials.Carbon);
+ nanite.mGeneratedItems.add(Materials.Gold);
+ nanite.mGeneratedItems.add(Materials.Iron);
+ nanite.mGeneratedItems.add(Materials.Copper);
+ nanite.mGeneratedItems.add(Materials.Silver);
+ nanite.mGeneratedItems.add(MaterialsUEVplus.TranscendentMetal);
+ nanite.mGeneratedItems.add(Materials.Neutronium);
+ nanite.mGeneratedItems.add(MaterialsUEVplus.Universium);
+ nanite.mGeneratedItems.add(MaterialsUEVplus.WhiteDwarfMatter);
+ nanite.mGeneratedItems.add(MaterialsUEVplus.BlackDwarfMatter);
+ nanite.mGeneratedItems.add(Materials.Glowstone);
+ nanite.mGeneratedItems.add(MaterialsUEVplus.Eternity);
+ // -----
+
+ gear.mGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ ingot.mGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ toolHeadHammer.mGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ frame.mGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+ frameGt.mGeneratedItems.add(MaterialsUEVplus.MagnetohydrodynamicallyConstrainedStarMatter);
+
+ dust.mGeneratedItems.addAll(dustPure.mGeneratedItems);
+ dust.mGeneratedItems.addAll(dustImpure.mGeneratedItems);
+ dust.mGeneratedItems.addAll(dustRefined.mGeneratedItems);
+ dustTiny.mGeneratedItems.addAll(dust.mGeneratedItems);
+ dustSmall.mGeneratedItems.addAll(dust.mGeneratedItems);
+ crateGtDust.mGeneratedItems.addAll(dust.mGeneratedItems);
+ crateGtIngot.mGeneratedItems.addAll(ingot.mGeneratedItems);
+ crateGtGem.mGeneratedItems.addAll(gem.mGeneratedItems);
+ crateGtPlate.mGeneratedItems.addAll(plate.mGeneratedItems);
+ // -----
+
+ toolHeadFile.mCondition = new ICondition.And<>(
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ new ICondition.Not<>(SubTag.BOUNCY));
+ toolHeadSaw.mCondition = new ICondition.And<>(
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ new ICondition.Not<>(SubTag.BOUNCY));
+ toolHeadDrill.mCondition = new ICondition.And<>(
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ new ICondition.Not<>(SubTag.BOUNCY));
+ toolHeadChainsaw.mCondition = new ICondition.And<>(
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ new ICondition.Not<>(SubTag.BOUNCY));
+ toolHeadWrench.mCondition = new ICondition.And<>(
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ new ICondition.Not<>(SubTag.BOUNCY));
+ toolHeadBuzzSaw.mCondition = new ICondition.And<>(
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ new ICondition.Not<>(SubTag.BOUNCY));
+ turbineBlade.mCondition = new ICondition.And<>(
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ new ICondition.Not<>(SubTag.BOUNCY));
+
+ rotor.mCondition = new ICondition.Nor<>(SubTag.CRYSTAL, SubTag.STONE, SubTag.BOUNCY);
+
+ spring.mCondition = new ICondition.Or<>(
+ SubTag.STRETCHY,
+ SubTag.BOUNCY,
+ new ICondition.Not<>(SubTag.NO_SMASHING));
+ springSmall.mCondition = new ICondition.Or<>(
+ SubTag.STRETCHY,
+ SubTag.BOUNCY,
+ new ICondition.Not<>(SubTag.NO_SMASHING));
+
+ gemChipped.mCondition = new ICondition.And<>(
+ SubTag.TRANSPARENT,
+ SubTag.CRYSTAL,
+ new ICondition.Not<>(SubTag.QUARTZ),
+ new ICondition.Not<>(SubTag.PEARL),
+ new ICondition.Not<>(SubTag.MAGICAL));
+ gemFlawed.mCondition = new ICondition.And<>(
+ SubTag.TRANSPARENT,
+ SubTag.CRYSTAL,
+ new ICondition.Not<>(SubTag.QUARTZ),
+ new ICondition.Not<>(SubTag.PEARL),
+ new ICondition.Not<>(SubTag.MAGICAL));
+ gemFlawless.mCondition = new ICondition.And<>(
+ SubTag.TRANSPARENT,
+ SubTag.CRYSTAL,
+ new ICondition.Not<>(SubTag.QUARTZ),
+ new ICondition.Not<>(SubTag.PEARL),
+ new ICondition.Not<>(SubTag.MAGICAL));
+ gemExquisite.mCondition = new ICondition.And<>(
+ SubTag.TRANSPARENT,
+ SubTag.CRYSTAL,
+ new ICondition.Not<>(SubTag.QUARTZ),
+ new ICondition.Not<>(SubTag.PEARL),
+ new ICondition.Not<>(SubTag.MAGICAL));
+
+ lens.mCondition = new ICondition.Or<>(
+ SubTag.MAGICAL,
+ new ICondition.And<>(SubTag.TRANSPARENT, SubTag.HAS_COLOR));
+
+ plateDouble.mCondition = new ICondition.Or<>(
+ SubTag.PAPER,
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ SubTag.STRETCHY);
+ plateTriple.mCondition = new ICondition.Or<>(
+ SubTag.PAPER,
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ SubTag.STRETCHY);
+ plateQuadruple.mCondition = new ICondition.Or<>(
+ SubTag.PAPER,
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ SubTag.STRETCHY);
+ plateQuintuple.mCondition = new ICondition.Or<>(
+ SubTag.PAPER,
+ new ICondition.Not<>(SubTag.NO_SMASHING),
+ SubTag.STRETCHY);
+
+ plateDense.mCondition = new ICondition.Or<>(new ICondition.Not<>(SubTag.NO_SMASHING), SubTag.STRETCHY);
+
+ ingotDouble.mCondition = new ICondition.Or<>(new ICondition.Not<>(SubTag.NO_SMASHING), SubTag.STRETCHY);
+ ingotTriple.mCondition = new ICondition.Or<>(new ICondition.Not<>(SubTag.NO_SMASHING), SubTag.STRETCHY);
+ ingotQuadruple.mCondition = new ICondition.Or<>(new ICondition.Not<>(SubTag.NO_SMASHING), SubTag.STRETCHY);
+ ingotQuintuple.mCondition = new ICondition.Or<>(new ICondition.Not<>(SubTag.NO_SMASHING), SubTag.STRETCHY);
+
+ wireFine.mCondition = SubTag.METAL;
+
+ // -----
+
+ pipeRestrictiveTiny.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount);
+ pipeRestrictiveSmall.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 2);
+ pipeRestrictiveMedium.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 3);
+ pipeRestrictiveLarge.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 4);
+ pipeRestrictiveHuge.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 5);
+ cableGt16.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 5);
+ cableGt12.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 4);
+ cableGt08.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 3);
+ cableGt04.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 2);
+ cableGt02.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount);
+ cableGt01.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount);
+ bucket.mSecondaryMaterial = new MaterialStack(Materials.Iron, ingot.mMaterialAmount * 3);
+ bucketClay.mSecondaryMaterial = new MaterialStack(Materials.Clay, dust.mMaterialAmount * 5);
+ CELL_TYPES
+ .forEach(prefix -> prefix.mSecondaryMaterial = new MaterialStack(Materials.Tin, plate.mMaterialAmount * 2));
+ oreRedgranite.mSecondaryMaterial = new MaterialStack(Materials.GraniteRed, dust.mMaterialAmount);
+ oreBlackgranite.mSecondaryMaterial = new MaterialStack(Materials.GraniteBlack, dust.mMaterialAmount);
+ oreNetherrack.mSecondaryMaterial = new MaterialStack(Materials.Netherrack, dust.mMaterialAmount);
+ oreNether.mSecondaryMaterial = new MaterialStack(Materials.Netherrack, dust.mMaterialAmount);
+ oreEndstone.mSecondaryMaterial = new MaterialStack(Materials.Endstone, dust.mMaterialAmount);
+ oreEnd.mSecondaryMaterial = new MaterialStack(Materials.Endstone, dust.mMaterialAmount);
+ oreMarble.mSecondaryMaterial = new MaterialStack(Materials.Marble, dust.mMaterialAmount);
+ oreBasalt.mSecondaryMaterial = new MaterialStack(Materials.Basalt, dust.mMaterialAmount);
+ oreDense.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount);
+ orePoor.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount * 2);
+ oreSmall.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount * 2);
+ oreNormal.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount * 2);
+ rawOre.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount);
+ oreRich.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount * 2);
+ ore.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount);
+ crushed.mSecondaryMaterial = new MaterialStack(Materials.Stone, dust.mMaterialAmount);
+ toolHeadChainsaw.mSecondaryMaterial = new MaterialStack(
+ Materials.Steel,
+ plate.mMaterialAmount * 4 + ring.mMaterialAmount * 2);
+ toolHeadWrench.mSecondaryMaterial = new MaterialStack(
+ Materials.Steel,
+ ring.mMaterialAmount + screw.mMaterialAmount * 2);
+ arrowGtWood.mSecondaryMaterial = new MaterialStack(Materials.Wood, stick.mMaterialAmount);
+ arrowGtPlastic.mSecondaryMaterial = new MaterialStack(Materials.Plastic, stick.mMaterialAmount);
+ bulletGtSmall.mSecondaryMaterial = new MaterialStack(Materials.Brass, ingot.mMaterialAmount / 9);
+ bulletGtMedium.mSecondaryMaterial = new MaterialStack(Materials.Brass, ingot.mMaterialAmount / 6);
+ bulletGtLarge.mSecondaryMaterial = new MaterialStack(Materials.Brass, ingot.mMaterialAmount / 3);
+ }
+
+ public final ArrayList<ItemStack> mPrefixedItems = new GT_ArrayList<>(false, 16);
+ public final short mTextureIndex;
+ public final String mRegularLocalName, mLocalizedMaterialPre, mLocalizedMaterialPost;
+ public final boolean mIsUsedForOreProcessing, mIsEnchantable, mIsUnificatable, mIsMaterialBased, mIsSelfReferencing,
+ mIsContainer, mDontUnificateActively, mIsUsedForBlocks, mAllowNormalRecycling, mGenerateDefaultItem;
+ public final List<TC_AspectStack> mAspects = new ArrayList<>();
+ public final Collection<OrePrefixes> mFamiliarPrefixes = new HashSet<>();
+ /**
+ * Used to determine the amount of Material this Prefix contains. Multiply or Divide GregTech_API.MATERIAL_UNIT to
+ * get the Amounts in comparision to one Ingot. 0 = Null Negative = Undefined Amount
+ */
+ public final long mMaterialAmount;
+
+ public final Collection<Materials> mDisabledItems = new HashSet<>(), mNotGeneratedItems = new HashSet<>(),
+ mIgnoredMaterials = new HashSet<>(), mGeneratedItems = new HashSet<>();
+ private final ArrayList<IOreRecipeRegistrator> mOreProcessing = new ArrayList<>();
+ public ItemStack mContainerItem = null;
+ public ICondition<ISubTagContainer> mCondition = null;
+ public byte mDefaultStackSize = 64;
+ public MaterialStack mSecondaryMaterial = null;
+ public OrePrefixes mPrefixInto = this;
+ public float mHeatDamage = 0.0F; // Negative for Frost Damage
+ private final ObjectSet<ItemStack> mContainsTestCache = new ObjectOpenCustomHashSet<>(
+ 512,
+ 0.5f,
+ GT_ItemStack.ITEMSTACK_HASH_STRATEGY2);
+ public static final List<OrePrefixes> mPreventableComponents = new LinkedList<>(
+ Arrays.asList(
+ OrePrefixes.gem,
+ OrePrefixes.ingotHot,
+ OrePrefixes.ingotDouble,
+ OrePrefixes.ingotTriple,
+ OrePrefixes.ingotQuadruple,
+ OrePrefixes.ingotQuintuple,
+ OrePrefixes.plate,
+ OrePrefixes.plateDouble,
+ OrePrefixes.plateTriple,
+ OrePrefixes.plateQuadruple,
+ OrePrefixes.plateQuintuple,
+ OrePrefixes.plateDense,
+ OrePrefixes.stick,
+ OrePrefixes.round,
+ OrePrefixes.bolt,
+ OrePrefixes.screw,
+ OrePrefixes.ring,
+ OrePrefixes.foil,
+ OrePrefixes.toolHeadSword,
+ OrePrefixes.toolHeadPickaxe,
+ OrePrefixes.toolHeadShovel,
+ OrePrefixes.toolHeadAxe,
+ OrePrefixes.toolHeadHoe,
+ OrePrefixes.toolHeadHammer,
+ OrePrefixes.toolHeadFile,
+ OrePrefixes.toolHeadSaw,
+ OrePrefixes.toolHeadDrill,
+ OrePrefixes.toolHeadChainsaw,
+ OrePrefixes.toolHeadWrench,
+ OrePrefixes.toolHeadUniversalSpade,
+ OrePrefixes.toolHeadSense,
+ OrePrefixes.toolHeadPlow,
+ OrePrefixes.toolHeadArrow,
+ OrePrefixes.toolHeadBuzzSaw,
+ OrePrefixes.turbineBlade,
+ OrePrefixes.wireFine,
+ OrePrefixes.gearGtSmall,
+ OrePrefixes.rotor,
+ OrePrefixes.stickLong,
+ OrePrefixes.springSmall,
+ OrePrefixes.spring,
+ OrePrefixes.arrowGtWood,
+ OrePrefixes.arrowGtPlastic,
+ OrePrefixes.gemChipped,
+ OrePrefixes.gemFlawed,
+ OrePrefixes.gemFlawless,
+ OrePrefixes.gemExquisite,
+ OrePrefixes.gearGt,
+ OrePrefixes.crateGtDust,
+ OrePrefixes.crateGtIngot,
+ OrePrefixes.crateGtGem,
+ OrePrefixes.crateGtPlate,
+ OrePrefixes.itemCasing,
+ OrePrefixes.nanite));
+ /**
+ * Yes this Value can be changed to add Bits for the MetaGenerated-Item-Check.
+ */
+ public int mMaterialGenerationBits = 0;
+
+ OrePrefixes(String aRegularLocalName, String aLocalizedMaterialPre, String aLocalizedMaterialPost,
+ boolean aIsUnificatable, boolean aIsMaterialBased, boolean aIsSelfReferencing, boolean aIsContainer,
+ boolean aDontUnificateActively, boolean aIsUsedForBlocks, boolean aAllowNormalRecycling,
+ boolean aGenerateDefaultItem, boolean aIsEnchantable, boolean aIsUsedForOreProcessing,
+ int aMaterialGenerationBits, long aMaterialAmount, int aDefaultStackSize, int aTextureindex) {
+ mIsUnificatable = aIsUnificatable;
+ mIsMaterialBased = aIsMaterialBased;
+ mIsSelfReferencing = aIsSelfReferencing;
+ mIsContainer = aIsContainer;
+ mDontUnificateActively = aDontUnificateActively;
+ mIsUsedForBlocks = aIsUsedForBlocks;
+ mAllowNormalRecycling = aAllowNormalRecycling;
+ mGenerateDefaultItem = aGenerateDefaultItem;
+ mIsEnchantable = aIsEnchantable;
+ mIsUsedForOreProcessing = aIsUsedForOreProcessing;
+ mMaterialGenerationBits = aMaterialGenerationBits;
+ mMaterialAmount = aMaterialAmount;
+ mRegularLocalName = aRegularLocalName;
+ mLocalizedMaterialPre = aLocalizedMaterialPre;
+ mLocalizedMaterialPost = aLocalizedMaterialPost;
+ mDefaultStackSize = (byte) aDefaultStackSize;
+ mTextureIndex = (short) aTextureindex;
+
+ if (name().startsWith("ore")) {
+ new TC_AspectStack(TC_Aspects.TERRA, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("wire") || name().startsWith("cable")) {
+ new TC_AspectStack(TC_Aspects.ELECTRUM, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("dust")) {
+ new TC_AspectStack(TC_Aspects.PERDITIO, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("crushed")) {
+ new TC_AspectStack(TC_Aspects.PERFODIO, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("ingot") || name().startsWith("nugget")) {
+ new TC_AspectStack(TC_Aspects.METALLUM, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("armor")) {
+ new TC_AspectStack(TC_Aspects.TUTAMEN, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("stone")) {
+ new TC_AspectStack(TC_Aspects.TERRA, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("pipe")) {
+ new TC_AspectStack(TC_Aspects.ITER, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("gear")) {
+ new TC_AspectStack(TC_Aspects.MOTUS, 1).addToAspectList(mAspects);
+ new TC_AspectStack(TC_Aspects.MACHINA, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("frame") || name().startsWith("plate")) {
+ new TC_AspectStack(TC_Aspects.FABRICO, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("tool")) {
+ new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2).addToAspectList(mAspects);
+ } else if (name().startsWith("gem") || name().startsWith("crystal") || name().startsWith("lens")) {
+ new TC_AspectStack(TC_Aspects.VITREUS, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("crate")) {
+ new TC_AspectStack(TC_Aspects.ITER, 2).addToAspectList(mAspects);
+ } else if (name().startsWith("circuit")) {
+ new TC_AspectStack(TC_Aspects.COGNITIO, 1).addToAspectList(mAspects);
+ } else if (name().startsWith("computer")) {
+ new TC_AspectStack(TC_Aspects.COGNITIO, 4).addToAspectList(mAspects);
+ } else if (name().startsWith("battery")) {
+ new TC_AspectStack(TC_Aspects.ELECTRUM, 1).addToAspectList(mAspects);
+ }
+ }
+
+ public static boolean isInstanceOf(String aName, OrePrefixes aPrefix) {
+ return aName != null && aName.startsWith(aPrefix.toString());
+ }
+
+ public void disableComponent(Materials aMaterial) {
+ if (!this.mDisabledItems.contains(aMaterial)) this.mDisabledItems.add(aMaterial);
+ }
+
+ public static OrePrefixes getOrePrefix(String aOre) {
+ for (OrePrefixes tPrefix : values()) if (aOre.startsWith(tPrefix.toString())) {
+ if (tPrefix == oreNether && aOre.equals("oreNetherQuartz")) return ore;
+ if (tPrefix == oreNether && aOre.equals("oreNetherStar")) return ore;
+ if (tPrefix == oreBasalt && aOre.equals("oreBasalticMineralSand")) return ore;
+ if (tPrefix == stickLong && aOre.equals("stickLongasssuperconductornameforuvwire")) return stick;
+ if (tPrefix == stickLong && aOre.equals("stickLongasssuperconductornameforuhvwire")) return stick;
+ return tPrefix;
+ }
+ return null;
+ }
+
+ public static String stripPrefix(String aOre) {
+ for (OrePrefixes tPrefix : values()) {
+ if (aOre.startsWith(tPrefix.toString())) {
+ return aOre.replaceFirst(tPrefix.toString(), "");
+ }
+ }
+ return aOre;
+ }
+
+ public static String replacePrefix(String aOre, OrePrefixes aPrefix) {
+ for (OrePrefixes tPrefix : values()) {
+ if (aOre.startsWith(tPrefix.toString())) {
+ return aOre.replaceFirst(tPrefix.toString(), aPrefix.toString());
+ }
+ }
+ return "";
+ }
+
+ public static OrePrefixes getPrefix(String aPrefixName) {
+ return getPrefix(aPrefixName, null);
+ }
+
+ public static OrePrefixes getPrefix(String aPrefixName, OrePrefixes aReplacement) {
+ Object tObject = GT_Utility.getFieldContent(OrePrefixes.class, aPrefixName, false, false);
+ if (tObject instanceof OrePrefixes) return (OrePrefixes) tObject;
+ return aReplacement;
+ }
+
+ public static Materials getMaterial(String aOre) {
+ return Materials.get(stripPrefix(aOre));
+ }
+
+ public static Materials getMaterial(String aOre, OrePrefixes aPrefix) {
+ return Materials.get(aOre.replaceFirst(aPrefix.toString(), ""));
+ }
+
+ public static Materials getRealMaterial(String aOre, OrePrefixes aPrefix) {
+ return Materials.getRealMaterial(aOre.replaceFirst(aPrefix.toString(), ""));
+ }
+
+ public void enableComponent(Materials aMaterial) {
+ this.mDisabledItems.remove(aMaterial);
+ }
+
+ public boolean add(ItemStack aStack) {
+ if (aStack == null) return false;
+ if (!contains(aStack)) {
+ mPrefixedItems.add(aStack);
+ // It's now in there... so update the cache
+ mContainsTestCache.add(aStack);
+ }
+ return true;
+ }
+
+ public boolean contains(ItemStack aStack) {
+ return !GT_Utility.isStackInvalid(aStack) && mContainsTestCache.contains(aStack);
+ }
+
+ public boolean containsUnCached(ItemStack aStack) {
+ // In case someone needs this
+ for (ItemStack tStack : mPrefixedItems) {
+ if (GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean doGenerateItem(Materials aMaterial) {
+ return aMaterial != null && aMaterial != Materials._NULL
+ && ((aMaterial.mTypes & mMaterialGenerationBits) != 0 || mGeneratedItems.contains(aMaterial))
+ && !mNotGeneratedItems.contains(aMaterial)
+ && !mDisabledItems.contains(aMaterial)
+ && (mCondition == null || mCondition.isTrue(aMaterial));
+ }
+
+ public boolean ignoreMaterials(Materials... aMaterials) {
+ for (Materials tMaterial : aMaterials) if (tMaterial != null) mIgnoredMaterials.add(tMaterial);
+ return true;
+ }
+
+ public boolean isIgnored(Materials aMaterial) {
+ if (aMaterial != null && (!aMaterial.mUnificatable || aMaterial != aMaterial.mMaterialInto)) return true;
+ return mIgnoredMaterials.contains(aMaterial);
+ }
+
+ public boolean addFamiliarPrefix(OrePrefixes aPrefix) {
+ if (aPrefix == null || mFamiliarPrefixes.contains(aPrefix) || aPrefix == this) return false;
+ return mFamiliarPrefixes.add(aPrefix);
+ }
+
+ public boolean add(IOreRecipeRegistrator aRegistrator) {
+ if (aRegistrator == null) return false;
+ return mOreProcessing.add(aRegistrator);
+ }
+
+ public void processOre(Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) {
+
+ if (aMaterial == null) {
+ return;
+ }
+
+ if (aMaterial.contains(SubTag.NO_RECIPES)) {
+ return;
+ }
+
+ if ((aMaterial != Materials._NULL || mIsSelfReferencing || !mIsMaterialBased)
+ && GT_Utility.isStackValid(aStack)) {
+ // if (Materials.mPreventableComponents.contains(this) && !this.mDynamicItems.contains(aMaterial)) return;
+ for (IOreRecipeRegistrator tRegistrator : mOreProcessing) {
+ if (D2) GT_Log.ore.println(
+ "Processing '" + aOreDictName
+ + "' with the Prefix '"
+ + name()
+ + "' and the Material '"
+ + aMaterial.mName
+ + "' at "
+ + GT_Utility.getClassName(tRegistrator));
+ tRegistrator.registerOre(this, aMaterial, aOreDictName, aModName, GT_Utility.copyAmount(1, aStack));
+ }
+ }
+ }
+
+ public Object get(Object aMaterial) {
+ if (aMaterial instanceof Materials) return new ItemData(this, (Materials) aMaterial);
+ return name() + aMaterial;
+ }
+
+ public String getDefaultLocalNameForItem(Materials aMaterial) {
+ return aMaterial.getDefaultLocalizedNameForItem(getDefaultLocalNameFormatForItem(aMaterial));
+ }
+
+ @SuppressWarnings("incomplete-switch")
+ public String getDefaultLocalNameFormatForItem(Materials aMaterial) {
+ // Certain Materials have slightly different Localizations.
+ switch (this) {
+ case crateGtDust -> {
+ return mLocalizedMaterialPre + OrePrefixes.dust.getDefaultLocalNameFormatForItem(aMaterial);
+ }
+ case crateGtIngot -> {
+ return mLocalizedMaterialPre + OrePrefixes.ingot.getDefaultLocalNameFormatForItem(aMaterial);
+ }
+ case crateGtGem -> {
+ return mLocalizedMaterialPre + OrePrefixes.gem.getDefaultLocalNameFormatForItem(aMaterial);
+ }
+ case crateGtPlate -> {
+ return mLocalizedMaterialPre + OrePrefixes.plate.getDefaultLocalNameFormatForItem(aMaterial);
+ }
+ }
+ switch (aMaterial.mName) {
+ case "Glass", "BorosilicateGlass" -> {
+ if (name().startsWith("gem")) return mLocalizedMaterialPre + "%material" + " Crystal";
+ if (name().startsWith("plate")) return mLocalizedMaterialPre + "%material" + " Pane";
+ if (name().startsWith("ingot")) return mLocalizedMaterialPre + "%material" + " Bar";
+ if (name().startsWith("nugget")) return mLocalizedMaterialPre + "%material" + " Chip";
+ }
+ case "Wheat" -> {
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "Flour";
+ }
+ case "Ice" -> {
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "Crushed Ice";
+ }
+ case "Wood", "WoodSealed" -> {
+ if (name().startsWith("bolt")) return "Short " + "%material" + " Stick";
+ if (name().startsWith("stick")) return mLocalizedMaterialPre + "%material" + " Stick";
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material" + " Pulp";
+ if (name().startsWith("nugget")) return mLocalizedMaterialPre + "%material" + " Chip";
+ if (name().startsWith("plate")) return mLocalizedMaterialPre + "%material" + " Plank";
+ }
+ case "Plastic", "Rubber", "Polyethylene", "Epoxid", "EpoxidFiberReinforced", "Polydimethylsiloxane", "Silicone", "Polysiloxane", "Polycaprolactam", "Polytetrafluoroethylene", "PolyvinylChloride", "Polystyrene", "StyreneButadieneRubber" -> {
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material" + " Pulp";
+ if (name().startsWith("plate")) return mLocalizedMaterialPre + "%material" + " Sheet";
+ if (name().startsWith("ingot")) return mLocalizedMaterialPre + "%material" + " Bar";
+ if (name().startsWith("nugget")) return mLocalizedMaterialPre + "%material" + " Chip";
+ if (name().startsWith("foil")) return "Thin " + "%material" + " Sheet";
+ }
+ case "FierySteel" -> {
+ if (mIsContainer) return mLocalizedMaterialPre + "Fiery Blood" + mLocalizedMaterialPost;
+ }
+ case "Steeleaf" -> {
+ if (name().startsWith("ingot")) return mLocalizedMaterialPre + "%material";
+ }
+ case "Bone" -> {
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "Bone Meal";
+ }
+ case "Blaze", "Milk", "Cocoa", "Chocolate", "Coffee", "Chili", "Cheese", "Snow" -> {
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material" + " Powder";
+ }
+ case "Paper" -> {
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "Chad";
+ switch (this) {
+ case plate -> {
+ return "Sheet of Paper";
+ }
+ case plateDouble -> {
+ return "Paperboard";
+ }
+ case plateTriple -> {
+ return "Carton";
+ }
+ case plateQuadruple -> {
+ return "Cardboard";
+ }
+ case plateQuintuple -> {
+ return "Thick Cardboard";
+ }
+ case plateDense -> {
+ return "Strong Cardboard";
+ }
+ }
+ }
+ case "MeatRaw" -> {
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "Mince Meat";
+ }
+ case "MeatCooked" -> {
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "Cooked Mince Meat";
+ }
+ case "Ash", "DarkAsh", "Gunpowder", "Sugar", "Salt", "RockSalt", "VolcanicAsh", "RareEarth" -> {
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material";
+ }
+ case "Vermiculite", "Bentonite", "Kaolinite", "Talc", "BasalticMineralSand", "GraniticMineralSand", "GlauconiteSand", "CassiteriteSand", "GarnetSand", "QuartzSand", "Pitchblende", "FullersEarth" -> {
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material";
+ switch (this) {
+ case crushedCentrifuged, crushedPurified -> {
+ return mLocalizedMaterialPre + "%material";
+ }
+ case crushed -> {
+ return "Ground " + "%material";
+ }
+ }
+ }
+ }
+ if (ProcessingModSupport.aEnableThaumcraftMats) {
+ switch (aMaterial.mName) {
+ case "InfusedAir", "InfusedDull", "InfusedEarth", "InfusedEntropy", "InfusedFire", "InfusedOrder", "InfusedVis", "InfusedWater" -> {
+ if (name().startsWith("gem")) return mLocalizedMaterialPre + "Shard of " + "%material";
+ if (name().startsWith("crystal")) return mLocalizedMaterialPre + "Shard of " + "%material";
+ if (name().startsWith("plate")) return mLocalizedMaterialPre + "%material" + " Crystal Plate";
+ if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material" + " Crystal Powder";
+ switch (this) {
+ case crushedCentrifuged, crushedPurified, crushed -> {
+ return mLocalizedMaterialPre + "%material" + " Crystals";
+ }
+ }
+ }
+ }
+ }
+ // Use Standard Localization
+ return mLocalizedMaterialPre + "%material" + mLocalizedMaterialPost;
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/ParticleFX.java b/src/main/java/gregtech/api/enums/ParticleFX.java
new file mode 100644
index 0000000000..c692598b89
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/ParticleFX.java
@@ -0,0 +1,53 @@
+package gregtech.api.enums;
+
+/**
+ * Enumerates known EntityFX particles
+ */
+public enum ParticleFX {
+
+ HUGE_EXPLOSION("hugeexplosion"),
+ LARGE_EXPLODE("largeexplode"),
+ FIREWORKS_SPARK("fireworksSpark"),
+ BUBBLE("bubble"),
+ SUSPENDED("suspended"),
+ DEPTH_SUSPEND("depthsuspend"),
+ TOWN_AURA("townaura"),
+ CRIT("crit"),
+ MAGIC_CRIT("magicCrit"),
+ SMOKE("smoke"),
+ MOB_SPELL("mobSpell"),
+ MOB_SPELL_AMBIENT("mobSpellAmbient"),
+ SPELL("spell"),
+ INSTANT_SPELL("instantSpell"),
+ WITCH_MAGIC("witchMagic"),
+ NOTE("note"),
+ PORTAL("portal"),
+ ENCHANTMENT_TABLE("enchantmenttable"),
+ EXPLODE("explode"),
+ FLAME("flame"),
+ LAVA("lava"),
+ FOOTSTEP("footstep"),
+ SPLASH("splash"),
+ WAKE("wake"),
+ LARGE_SMOKE("largesmoke"),
+ CLOUD("cloud"),
+ RED_DUST("reddust"),
+ SNOWBALL_POOF("snowballpoof"),
+ DRIP_WATER("dripWater"),
+ DRIP_LAVA("dripLava"),
+ SNOW_SHOVEL("snowshovel"),
+ SLIME("slime"),
+ HEART("heart"),
+ ANGRY_VILLAGER("angryVillager"),
+ HAPPY_VILLAGER("happyVillager");
+
+ private final String identifier;
+
+ ParticleFX(String name) {
+ this.identifier = name;
+ }
+
+ public String toString() {
+ return this.identifier;
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/SoundResource.java b/src/main/java/gregtech/api/enums/SoundResource.java
new file mode 100644
index 0000000000..23887aebbf
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/SoundResource.java
@@ -0,0 +1,373 @@
+package gregtech.api.enums;
+
+import static gregtech.api.enums.Mods.GregTech;
+import static gregtech.api.enums.Mods.IndustrialCraft2;
+
+import java.util.EnumSet;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import net.minecraft.util.ResourceLocation;
+
+import com.google.common.collect.Maps;
+
+/**
+ * Enumerates known sounds with id and resource-location
+ *
+ * <p>
+ * Note that the id serve no specific purpose, if for legacy compatibility of a plausible yet unimplemented network
+ * packet weight optimization.
+ * </p>
+ */
+public enum SoundResource {
+
+ RANDOM_BREAK(0, "random.break"),
+ RANDOM_ANVIL_USE(1, "random.anvil_use"),
+ RANDOM_ANVIL_BREAK(2, "random.anvil_break"),
+ RANDOM_CLICK(3, "random.click"),
+ RANDOM_FIZZ(4, "random.fizz"),
+ RANDOM_EXPLODE(5, "random.explode"),
+ FIRE_IGNITE(6, "fire.ignite"),
+
+ IC2_TOOLS_WRENCH(100, IndustrialCraft2.ID, "tools.Wrench"),
+ IC2_TOOLS_RUBBER_TRAMPOLINE(101, IndustrialCraft2.ID, "tools.RubberTrampoline"),
+ IC2_TOOLS_PAINTER(102, IndustrialCraft2.ID, "tools.Painter"),
+ IC2_TOOLS_BATTERY_USE(103, IndustrialCraft2.ID, "tools.BatteryUse"),
+ IC2_TOOLS_CHAINSAW_CHAINSAW_USE_ONE(104, IndustrialCraft2.ID, "tools.chainsaw.ChainsawUseOne"),
+ IC2_TOOLS_CHAINSAW_CHAINSAW_USE_TWO(105, IndustrialCraft2.ID, "tools.chainsaw.ChainsawUseTwo"),
+ IC2_TOOLS_DRILL_DRILL_SOFT(106, IndustrialCraft2.ID, "tools.drill.DrillSoft"),
+ IC2_TOOLS_DRILL_DRILL_HARD(107, IndustrialCraft2.ID, "tools.drill.DrillHard"),
+ IC2_TOOLS_OD_SCANNER(108, IndustrialCraft2.ID, "tools.ODScanner"),
+ IC2_TOOLS_INSULATION_CUTTERS(109, IndustrialCraft2.ID, "tools.InsulationCutters"),
+
+ IC2_MACHINES_EXTRACTOR_OP(200, IndustrialCraft2.ID, "machines.ExtractorOp"),
+ IC2_MACHINES_MACERATOR_OP(201, IndustrialCraft2.ID, "machines.MaceratorOp"),
+ IC2_MACHINES_INDUCTION_LOOP(202, IndustrialCraft2.ID, "machines.InductionLoop"),
+ IC2_MACHINES_COMPRESSOR_OP(203, IndustrialCraft2.ID, "machines.CompressorOp"),
+ IC2_MACHINES_RECYCLER_OP(204, IndustrialCraft2.ID, "machines.RecyclerOp"),
+ IC2_MACHINES_MINER_OP(205, IndustrialCraft2.ID, "machines.MinerOp"),
+ IC2_MACHINES_PUMP_OP(206, IndustrialCraft2.ID, "machines.PumpOp"),
+ IC2_MACHINES_ELECTROFURNACE_LOOP(207, IndustrialCraft2.ID, "machines.ElectroFurnaceLoop"),
+ @Deprecated
+ DEPRECATED_DUPE_OF_IC2_MACHINES_INDUCTION_LOOP(208, IndustrialCraft2.ID, "machines.InductionLoop"),
+ IC2_MACHINES_MACHINE_OVERLOAD(209, IndustrialCraft2.ID, "machines.MachineOverload"),
+ IC2_MACHINES_INTERRUPT_ONE(210, IndustrialCraft2.ID, "machines.InterruptOne"),
+ IC2_MACHINES_KA_CHING(211, IndustrialCraft2.ID, "machines.KaChing"),
+ IC2_MACHINES_MAGNETIZER_LOOP(212, IndustrialCraft2.ID, "machines.MagnetizerLoop"),
+
+ GT_MACHINES_FUSION_LOOP(230, GregTech.ID, "machines.FusionLoop"),
+ GT_MACHINES_DISTILLERY_LOOP(231, GregTech.ID, "machines.DistilleryLoop"),
+ GT_MACHINES_PLASMAFORGE_LOOP(232, GregTech.ID, "machines.PlasmaForgeLoop"),
+
+ GUI_BUTTON_DOWN(-1, GregTech.ID, "gui.buttonDown"),
+ GUI_BUTTON_UP(-1, GregTech.ID, "gui.buttonUp"),
+
+ /*
+ * Other Minecraft Sounds that were missing
+ */
+ AMBIENT_CAVE_CAVE(-1, "ambient.cave.cave"),
+ AMBIENT_WEATHER_RAIN(-1, "ambient.weather.rain"),
+ AMBIENT_WEATHER_THUNDER(-1, "ambient.weather.thunder"),
+ DAMAGE_FALLBIG(-1, "damage.fallbig"),
+ DAMAGE_FALLSMALL(-1, "damage.fallsmall"),
+ DAMAGE_HIT(-1, "damage.hit"),
+ DAMAGE_HURTFLESH(-1, "damage.hurtflesh"),
+ DIG_CLOTH(-1, "dig.cloth"),
+ DIG_GRASS(-1, "dig.grass"),
+ DIG_GRAVEL(-1, "dig.gravel"),
+ DIG_SAND(-1, "dig.sand"),
+ DIG_SNOW(-1, "dig.snow"),
+ DIG_STONE(-1, "dig.stone"),
+ DIG_WOOD(-1, "dig.wood"),
+ FIRE_FIRE(-1, "fire.fire"),
+ FIREWORKS_BLAST(-1, "fireworks.blast"),
+ FIREWORKS_BLAST_FAR(-1, "fireworks.blast_far"),
+ FIREWORKS_LARGEBLAST(-1, "fireworks.largeBlast"),
+ FIREWORKS_LARGEBLAST_FAR(-1, "fireworks.largeBlast_far"),
+ FIREWORKS_LAUNCH(-1, "fireworks.launch"),
+ FIREWORKS_TWINKLE(-1, "fireworks.twinkle"),
+ FIREWORKS_TWINKLE_FAR(-1, "fireworks.twinkle_far"),
+ GAME_NEUTRAL_SWIM(-1, "game.neutral.swim"),
+ GAME_TNT_PRIMED(-1, "game.tnt.primed"),
+ LIQUID_LAVA(-1, "liquid.lava"),
+ LIQUID_LAVAPOP(-1, "liquid.lavapop"),
+ LIQUID_SPLASH(-1, "liquid.splash"),
+ LIQUID_SWIM(-1, "liquid.swim"),
+ LIQUID_WATER(-1, "liquid.water"),
+ MINECART_BASE(-1, "minecart.base"),
+ MINECART_INSIDE(-1, "minecart.inside"),
+ MOB_BAT_DEATH(-1, "mob.bat.death"),
+ MOB_BAT_HURT(-1, "mob.bat.hurt"),
+ MOB_BAT_IDLE(-1, "mob.bat.idle"),
+ MOB_BAT_LOOP(-1, "mob.bat.loop"),
+ MOB_BAT_TAKEOFF(-1, "mob.bat.takeoff"),
+ MOB_BLAZE_BREATHE(-1, "mob.blaze.breathe"),
+ MOB_BLAZE_DEATH(-1, "mob.blaze.death"),
+ MOB_BLAZE_HIT(-1, "mob.blaze.hit"),
+ MOB_CAT_HISS(-1, "mob.cat.hiss"),
+ MOB_CAT_HITT(-1, "mob.cat.hitt"),
+ MOB_CAT_MEOW(-1, "mob.cat.meow"),
+ MOB_CAT_PURR(-1, "mob.cat.purr"),
+ MOB_CAT_PURREOW(-1, "mob.cat.purreow"),
+ MOB_CHICKEN(-1, "mob.chicken"),
+ MOB_CHICKEN_HURT(-1, "mob.chicken.hurt"),
+ MOB_CHICKEN_PLOP(-1, "mob.chicken.plop"),
+ MOB_CHICKEN_SAY(-1, "mob.chicken.say"),
+ MOB_CHICKEN_STEP(-1, "mob.chicken.step"),
+ MOB_COW(-1, "mob.cow"),
+ MOB_COW_HURT(-1, "mob.cow.hurt"),
+ MOB_COW_SAY(-1, "mob.cow.say"),
+ MOB_COW_STEP(-1, "mob.cow.step"),
+ MOB_CREEPER(-1, "mob.creeper"),
+ MOB_CREEPER_DEATH(-1, "mob.creeper.death"),
+ MOB_CREEPER_SAY(-1, "mob.creeper.say"),
+ MOB_ENDERDRAGON_END(-1, "mob.enderdragon.end"),
+ MOB_ENDERDRAGON_GROWL(-1, "mob.enderdragon.growl"),
+ MOB_ENDERDRAGON_HIT(-1, "mob.enderdragon.hit"),
+ MOB_ENDERDRAGON_WINGS(-1, "mob.enderdragon.wings"),
+ MOB_ENDERMEN_DEATH(-1, "mob.endermen.death"),
+ MOB_ENDERMEN_HIT(-1, "mob.endermen.hit"),
+ MOB_ENDERMEN_IDLE(-1, "mob.endermen.idle"),
+ MOB_ENDERMEN_PORTAL(-1, "mob.endermen.portal"),
+ MOB_ENDERMEN_SCREAM(-1, "mob.endermen.scream"),
+ MOB_ENDERMEN_STARE(-1, "mob.endermen.stare"),
+ MOB_GHAST_AFFECTIONATE_SCREAM(-1, "mob.ghast.affectionate_scream"),
+ MOB_GHAST_CHARGE(-1, "mob.ghast.charge"),
+ MOB_GHAST_DEATH(-1, "mob.ghast.death"),
+ MOB_GHAST_FIREBALL(-1, "mob.ghast.fireball"),
+ MOB_GHAST_MOAN(-1, "mob.ghast.moan"),
+ MOB_GHAST_SCREAM(-1, "mob.ghast.scream"),
+ MOB_HORSE_ANGRY(-1, "mob.horse.angry"),
+ MOB_HORSE_ARMOR(-1, "mob.horse.armor"),
+ MOB_HORSE_BREATHE(-1, "mob.horse.breathe"),
+ MOB_HORSE_DEATH(-1, "mob.horse.death"),
+ MOB_HORSE_DONKEY_ANGRY(-1, "mob.horse.donkey.angry"),
+ MOB_HORSE_DONKEY_DEATH(-1, "mob.horse.donkey.death"),
+ MOB_HORSE_DONKEY_HIT(-1, "mob.horse.donkey.hit"),
+ MOB_HORSE_DONKEY_IDLE(-1, "mob.horse.donkey.idle"),
+ MOB_HORSE_GALLOP(-1, "mob.horse.gallop"),
+ MOB_HORSE_HIT(-1, "mob.horse.hit"),
+ MOB_HORSE_IDLE(-1, "mob.horse.idle"),
+ MOB_HORSE_JUMP(-1, "mob.horse.jump"),
+ MOB_HORSE_LAND(-1, "mob.horse.land"),
+ MOB_HORSE_LEATHER(-1, "mob.horse.leather"),
+ MOB_HORSE_SKELETON_DEATH(-1, "mob.horse.skeleton.death"),
+ MOB_HORSE_SKELETON_HIT(-1, "mob.horse.skeleton.hit"),
+ MOB_HORSE_SKELETON_IDLE(-1, "mob.horse.skeleton.idle"),
+ MOB_HORSE_SOFT(-1, "mob.horse.soft"),
+ MOB_HORSE_WOOD(-1, "mob.horse.wood"),
+ MOB_HORSE_ZOMBIE_DEATH(-1, "mob.horse.zombie.death"),
+ MOB_HORSE_ZOMBIE_HIT(-1, "mob.horse.zombie.hit"),
+ MOB_HORSE_ZOMBIE_IDLE(-1, "mob.horse.zombie.idle"),
+ MOB_IRONGOLEM_DEATH(-1, "mob.irongolem.death"),
+ MOB_IRONGOLEM_HIT(-1, "mob.irongolem.hit"),
+ MOB_IRONGOLEM_THROW(-1, "mob.irongolem.throw"),
+ MOB_IRONGOLEM_WALK(-1, "mob.irongolem.walk"),
+ MOB_MAGMACUBE_BIG(-1, "mob.magmacube.big"),
+ MOB_MAGMACUBE_JUMP(-1, "mob.magmacube.jump"),
+ MOB_MAGMACUBE_SMALL(-1, "mob.magmacube.small"),
+ MOB_PIG(-1, "mob.pig"),
+ MOB_PIG_DEATH(-1, "mob.pig.death"),
+ MOB_PIG_SAY(-1, "mob.pig.say"),
+ MOB_PIG_STEP(-1, "mob.pig.step"),
+ MOB_SHEEP(-1, "mob.sheep"),
+ MOB_SHEEP_SAY(-1, "mob.sheep.say"),
+ MOB_SHEEP_SHEAR(-1, "mob.sheep.shear"),
+ MOB_SHEEP_STEP(-1, "mob.sheep.step"),
+ MOB_SILVERFISH_HIT(-1, "mob.silverfish.hit"),
+ MOB_SILVERFISH_KILL(-1, "mob.silverfish.kill"),
+ MOB_SILVERFISH_SAY(-1, "mob.silverfish.say"),
+ MOB_SILVERFISH_STEP(-1, "mob.silverfish.step"),
+ MOB_SKELETON(-1, "mob.skeleton"),
+ MOB_SKELETON_DEATH(-1, "mob.skeleton.death"),
+ MOB_SKELETON_HURT(-1, "mob.skeleton.hurt"),
+ MOB_SKELETON_SAY(-1, "mob.skeleton.say"),
+ MOB_SKELETON_STEP(-1, "mob.skeleton.step"),
+ MOB_SLIME(-1, "mob.slime"),
+ MOB_SLIME_ATTACK(-1, "mob.slime.attack"),
+ MOB_SLIME_BIG(-1, "mob.slime.big"),
+ MOB_SLIME_SMALL(-1, "mob.slime.small"),
+ MOB_SPIDER(-1, "mob.spider"),
+ MOB_SPIDER_DEATH(-1, "mob.spider.death"),
+ MOB_SPIDER_SAY(-1, "mob.spider.say"),
+ MOB_SPIDER_STEP(-1, "mob.spider.step"),
+ MOB_VILLAGER_DEATH(-1, "mob.villager.death"),
+ MOB_VILLAGER_HAGGLE(-1, "mob.villager.haggle"),
+ MOB_VILLAGER_HIT(-1, "mob.villager.hit"),
+ MOB_VILLAGER_IDLE(-1, "mob.villager.idle"),
+ MOB_VILLAGER_NO(-1, "mob.villager.no"),
+ MOB_VILLAGER_YES(-1, "mob.villager.yes"),
+ MOB_WITHER_DEATH(-1, "mob.wither.death"),
+ MOB_WITHER_HURT(-1, "mob.wither.hurt"),
+ MOB_WITHER_IDLE(-1, "mob.wither.idle"),
+ MOB_WITHER_SHOOT(-1, "mob.wither.shoot"),
+ MOB_WITHER_SPAWN(-1, "mob.wither.spawn"),
+ MOB_WOLF_BARK(-1, "mob.wolf.bark"),
+ MOB_WOLF_DEATH(-1, "mob.wolf.death"),
+ MOB_WOLF_GROWL(-1, "mob.wolf.growl"),
+ MOB_WOLF_HOWL(-1, "mob.wolf.howl"),
+ MOB_WOLF_HURT(-1, "mob.wolf.hurt"),
+ MOB_WOLF_PANTING(-1, "mob.wolf.panting"),
+ MOB_WOLF_SHAKE(-1, "mob.wolf.shake"),
+ MOB_WOLF_STEP(-1, "mob.wolf.step"),
+ MOB_WOLF_WHINE(-1, "mob.wolf.whine"),
+ MOB_ZOMBIE(-1, "mob.zombie"),
+ MOB_ZOMBIE_DEATH(-1, "mob.zombie.death"),
+ MOB_ZOMBIE_HURT(-1, "mob.zombie.hurt"),
+ MOB_ZOMBIE_INFECT(-1, "mob.zombie.infect"),
+ MOB_ZOMBIE_METAL(-1, "mob.zombie.metal"),
+ MOB_ZOMBIE_REMEDY(-1, "mob.zombie.remedy"),
+ MOB_ZOMBIE_SAY(-1, "mob.zombie.say"),
+ MOB_ZOMBIE_STEP(-1, "mob.zombie.step"),
+ MOB_ZOMBIE_UNFECT(-1, "mob.zombie.unfect"),
+ MOB_ZOMBIE_WOOD(-1, "mob.zombie.wood"),
+ MOB_ZOMBIE_WOODBREAK(-1, "mob.zombie.woodbreak"),
+ MOB_ZOMBIEPIG_ZPIG(-1, "mob.zombiepig.zpig"),
+ MOB_ZOMBIEPIG_ZPIGANGRY(-1, "mob.zombiepig.zpigangry"),
+ MOB_ZOMBIEPIG_ZPIGDEATH(-1, "mob.zombiepig.zpigdeath"),
+ MOB_ZOMBIEPIG_ZPIGHURT(-1, "mob.zombiepig.zpighurt"),
+ MUSIC_GAME_CALM(-1, "music.game.calm"),
+ MUSIC_GAME_CREATIVE_CREATIVE(-1, "music.game.creative.creative"),
+ MUSIC_GAME_END_BOSS(-1, "music.game.end.boss"),
+ MUSIC_GAME_END_CREDITS(-1, "music.game.end.credits"),
+ MUSIC_GAME_END_END(-1, "music.game.end.end"),
+ MUSIC_GAME_HAL(-1, "music.game.hal"),
+ MUSIC_GAME_NETHER_NETHER(-1, "music.game.nether.nether"),
+ MUSIC_GAME_NUANCE(-1, "music.game.nuance"),
+ MUSIC_GAME_PIANO(-1, "music.game.piano"),
+ MUSIC_MENU_MENU(-1, "music.menu.menu"),
+ NOTE_BASS(-1, "note.bass"),
+ NOTE_BASSATTACK(-1, "note.bassattack"),
+ NOTE_BD(-1, "note.bd"),
+ NOTE_HARP(-1, "note.harp"),
+ NOTE_HAT(-1, "note.hat"),
+ NOTE_PLING(-1, "note.pling"),
+ NOTE_SNARE(-1, "note.snare"),
+ PORTAL_PORTAL(-1, "portal.portal"),
+ PORTAL_TRAVEL(-1, "portal.travel"),
+ PORTAL_TRIGGER(-1, "portal.trigger"),
+ RANDOM_ANVIL_LAND(-1, "random.anvil_land"),
+ RANDOM_BOW(-1, "random.bow"),
+ RANDOM_BOWHIT(-1, "random.bowhit"),
+ RANDOM_BREATH(-1, "random.breath"),
+ RANDOM_BURP(-1, "random.burp"),
+ RANDOM_CHESTCLOSED(-1, "random.chestclosed"),
+ RANDOM_CHESTOPEN(-1, "random.chestopen"),
+ RANDOM_CLASSIC_HURT(-1, "random.classic_hurt"),
+ RANDOM_DOOR_CLOSE(-1, "random.door_close"),
+ RANDOM_DOOR_OPEN(-1, "random.door_open"),
+ RANDOM_DRINK(-1, "random.drink"),
+ RANDOM_DRR(-1, "random.drr"),
+ RANDOM_EAT(-1, "random.eat"),
+ RANDOM_FUSE(-1, "random.fuse"),
+ RANDOM_GLASS(-1, "random.glass"),
+ RANDOM_HURT(-1, "random.hurt"),
+ RANDOM_LEVELUP(-1, "random.levelup"),
+ RANDOM_ORB(-1, "random.orb"),
+ RANDOM_POP(-1, "random.pop"),
+ RANDOM_SPLASH(-1, "random.splash"),
+ RANDOM_SUCCESSFUL_HIT(-1, "random.successful_hit"),
+ RANDOM_WOOD_CLICK(-1, "random.wood_click"),
+ RECORDS_11(-1, "records.11"),
+ RECORDS_13(-1, "records.13"),
+ RECORDS_BLOCKS(-1, "records.blocks"),
+ RECORDS_CAT(-1, "records.cat"),
+ RECORDS_CHIRP(-1, "records.chirp"),
+ RECORDS_FAR(-1, "records.far"),
+ RECORDS_MALL(-1, "records.mall"),
+ RECORDS_MELLOHI(-1, "records.mellohi"),
+ RECORDS_STAL(-1, "records.stal"),
+ RECORDS_STRAD(-1, "records.strad"),
+ RECORDS_WAIT(-1, "records.wait"),
+ RECORDS_WARD(-1, "records.ward"),
+ STEP_CLOTH(-1, "step.cloth"),
+ STEP_GRASS(-1, "step.grass"),
+ STEP_GRAVEL(-1, "step.gravel"),
+ STEP_LADDER(-1, "step.ladder"),
+ STEP_SAND(-1, "step.sand"),
+ STEP_SNOW(-1, "step.snow"),
+ STEP_STONE(-1, "step.stone"),
+ STEP_WOOD(-1, "step.wood"),
+ TILE_PISTON_IN(-1, "tile.piston.in"),
+ TILE_PISTON_OUT(-1, "tile.piston.out"),
+
+ NONE(-1, "");
+
+ /**
+ * Internal mapping by {@code int} id
+ */
+ private static final Map<Integer, SoundResource> ID_SOUND_MAP = new ConcurrentHashMap<>();
+ /**
+ * Internal mapping by {@code String} ResourceLocation
+ */
+ private static final Map<String, SoundResource> RESOURCE_STR_SOUND_MAP = new ConcurrentHashMap<>();
+
+ static {
+ EnumSet.allOf(SoundResource.class)
+ .forEach(sound -> { if (sound.id >= 0) ID_SOUND_MAP.put(sound.id, sound); });
+ EnumSet.allOf(SoundResource.class)
+ .forEach(sound -> RESOURCE_STR_SOUND_MAP.put(sound.resourceLocation.toString(), sound));
+ }
+
+ /**
+ * This Sound's identifier
+ */
+ public final int id;
+
+ /**
+ * The {@link ResourceLocation} of this {@link SoundResource}
+ */
+ public final ResourceLocation resourceLocation;
+
+ SoundResource(final int id, final ResourceLocation resourceLocation) {
+ this.id = id;
+ this.resourceLocation = resourceLocation;
+ }
+
+ SoundResource(final int id, final String resourcePath) {
+ this(id, new ResourceLocation(resourcePath));
+ }
+
+ SoundResource(final int id, final String resourceDomain, final String resourcePath) {
+ this(id, new ResourceLocation(resourceDomain.toLowerCase(Locale.ENGLISH), resourcePath));
+ }
+
+ /**
+ * @param id The Sounds identifier
+ * @return The {@link SoundResource}
+ */
+ public static SoundResource get(int id) {
+ return ID_SOUND_MAP.get(id);
+ }
+
+ /**
+ * @param resourceStr The {@link ResourceLocation}'s String of the {@link SoundResource}
+ * @return The {@link SoundResource}
+ */
+ public static SoundResource get(String resourceStr) {
+ return RESOURCE_STR_SOUND_MAP.get(resourceStr);
+ }
+
+ /**
+ * Provides a backward-compatible Sounds {@code Map<Integer, String>} sound list
+ *
+ * @return The map for the deprecated {@link gregtech.api.GregTech_API#sSoundList}
+ * @deprecated This method is planned for removal.
+ * <p>
+ * Use this {@link SoundResource} enum instead.
+ * </p>
+ */
+ @Deprecated
+ public static Map<Integer, String> asSoundList() {
+ return Maps.transformValues(ID_SOUND_MAP, SoundResource::toString);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ @Override
+ public String toString() {
+ return this.resourceLocation.toString();
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/SteamVariant.java b/src/main/java/gregtech/api/enums/SteamVariant.java
new file mode 100644
index 0000000000..941b0d7231
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/SteamVariant.java
@@ -0,0 +1,16 @@
+package gregtech.api.enums;
+
+import java.util.Locale;
+
+public enum SteamVariant {
+
+ BRONZE,
+ STEEL,
+ PRIMITIVE,
+ NONE;
+
+ @Override
+ public String toString() {
+ return super.toString().toLowerCase(Locale.ENGLISH);
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/SubTag.java b/src/main/java/gregtech/api/enums/SubTag.java
new file mode 100644
index 0000000000..e62e5437f8
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/SubTag.java
@@ -0,0 +1,274 @@
+package gregtech.api.enums;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+
+import gregtech.api.interfaces.ICondition;
+import gregtech.api.interfaces.ISubTagContainer;
+
+/**
+ * Just a simple Class to be able to add special Tags for Materials.
+ * <p/>
+ * The Tags should be added in preload and before I do my own preload to the Materials. In order to make yourself a new
+ * SubTag, just create one new instance of SubTag using getNewSubTag and use that one instance on all Materials you want
+ * to add those Tags to.
+ * <p/>
+ * You should look at this File whenever you update, maybe there are some new Tags you could use.
+ * <p/>
+ * -------------------------------------------------------------------------------------------------
+ * <p/>
+ * Some SubTags are used for other things than Materials too. It is useful when I need an easy way to declare Stuff in
+ * Items.
+ */
+public final class SubTag implements ICondition<ISubTagContainer> {
+
+ public static final HashMap<String, SubTag> sSubTags = new HashMap<>();
+ private static long sSubtagID = 0;
+ public final long mSubtagID;
+ public final String mName;
+ /**
+ * Add this to your Material if you want to have its Ore Calcite heated in a Blast Furnace for more output. Already
+ * listed are: Iron, Pyrite, PigIron, DeepIron, ShadowIron, WroughtIron and MeteoricIron.
+ */
+ public static final SubTag BLASTFURNACE_CALCITE_DOUBLE = getNewSubTag("BLASTFURNACE_CALCITE_DOUBLE"),
+ BLASTFURNACE_CALCITE_TRIPLE = getNewSubTag("BLASTFURNACE_CALCITE_TRIPLE");
+
+ /**
+ * Add this to a material with Direct Smelting to prevent the automatic generation of a Bricked/Bronze Blast Furnace
+ * recipe. Already listed are: Chalcopyrite, Tetrahedrite
+ */
+ public static final SubTag DONT_ADD_DEFAULT_BBF_RECIPE = getNewSubTag("DONT_ADD_DEFAULT_BBF_RECIPE");
+
+ /**
+ * Materials which are outputting less in an Induction Smelter. Already listed are: Pyrite, Tetrahedrite,
+ * Sphalerite, Cinnabar
+ */
+ public static final SubTag INDUCTIONSMELTING_LOW_OUTPUT = getNewSubTag("INDUCTIONSMELTING_LOW_OUTPUT");
+ /**
+ * Add this to your Material if you want to have its Ore Sodium Persulfate washed. Already listed are: Zinc, Nickel,
+ * Copper, Cobalt, Cobaltite and Tetrahedrite.
+ */
+ public static final SubTag WASHING_SODIUMPERSULFATE = getNewSubTag("WASHING_SODIUMPERSULFATE");
+ /**
+ * Add this to your Material if you want to have its Ore Mercury washed. Already listed are: Gold, Osmium, Mithril,
+ * Platinum, Midasium, Cooperite and AstralSilver.
+ */
+ public static final SubTag WASHING_MERCURY = getNewSubTag("WASHING_MERCURY");
+ /**
+ * Add this to your Material if you want to have its Ore Mercury washed with 99% output chance. Already listed are:
+ * Silver
+ */
+ public static final SubTag WASHING_MERCURY_99_PERCENT = getNewSubTag("WASHING_MERCURY_99_PERCENT");
+ /**
+ * Add this to your Material if you want to have its Ore electromagnetically separated to give Gold.
+ */
+ public static final SubTag ELECTROMAGNETIC_SEPERATION_GOLD = getNewSubTag("ELECTROMAGNETIC_SEPERATION_GOLD");
+ /**
+ * Add this to your Material if you want to have its Ore electromagnetically separated to give Iron.
+ */
+ public static final SubTag ELECTROMAGNETIC_SEPERATION_IRON = getNewSubTag("ELECTROMAGNETIC_SEPERATION_IRON");
+ /**
+ * Add this to your Material if you want to have its Ore electromagnetically separated to give Neodymium.
+ */
+ public static final SubTag ELECTROMAGNETIC_SEPERATION_NEODYMIUM = getNewSubTag(
+ "ELECTROMAGNETIC_SEPERATION_NEODYMIUM");
+ /**
+ * Add this to your Material if you want to have its Ore giving Cinnabar Crystals on Pulverization. Already listed
+ * are: Redstone
+ */
+ public static final SubTag PULVERIZING_CINNABAR = getNewSubTag("PULVERIZING_CINNABAR");
+ /**
+ * This Material cannot be worked by any other means, than smashing or smelting. This is used for coated Materials.
+ */
+ public static final SubTag NO_WORKING = getNewSubTag("NO_WORKING");
+ /**
+ * This Material cannot be used for regular Metal working techniques. Already
+ * listed are: Rubber, Plastic, Paper, Wood, Stone
+ */
+ public static final SubTag NO_SMASHING = getNewSubTag("NO_SMASHING");
+ /**
+ * This Material will have no associated recipes in any format.
+ */
+ public static final SubTag NO_RECIPES = getNewSubTag("NO_RECIPES");
+ /**
+ * This Material cannot be unificated
+ */
+ public static final SubTag NO_UNIFICATION = getNewSubTag("NO_UNIFICATION");
+ /**
+ * This Material cannot be used in any Recycler. Already listed are: Stone, Glass, Water
+ */
+ public static final SubTag NO_RECYCLING = getNewSubTag("NO_RECYCLING");
+ /**
+ * This Material cannot be used in any Furnace alike Structure. Already listed are: Paper, Wood, Gunpowder, Stone
+ */
+ public static final SubTag NO_SMELTING = getNewSubTag("NO_SMELTING");
+ /**
+ * This Material can be molten into a Fluid
+ */
+ public static final SubTag SMELTING_TO_FLUID = getNewSubTag("SMELTING_TO_FLUID");
+ /**
+ * This Ore should be molten directly into a Gem of this Material, if the Ingot is missing. Already listed are:
+ * Cinnabar
+ */
+ public static final SubTag SMELTING_TO_GEM = getNewSubTag("SMELTING_TO_GEM");
+ /**
+ * If this Material is some kind of Wood
+ */
+ public static final SubTag WOOD = getNewSubTag("WOOD");
+ /**
+ * If this Material is some kind of Food (or edible at all)
+ */
+ public static final SubTag FOOD = getNewSubTag("FOOD");
+ /**
+ * If this Material is some kind of Stone
+ */
+ public static final SubTag STONE = getNewSubTag("STONE");
+ /**
+ * If this Material is some kind of Pearl
+ */
+ public static final SubTag PEARL = getNewSubTag("PEARL");
+ /**
+ * If this Material is some kind of Quartz
+ */
+ public static final SubTag QUARTZ = getNewSubTag("QUARTZ");
+ /**
+ * If this Material is Crystallisable
+ */
+ public static final SubTag CRYSTALLISABLE = getNewSubTag("CRYSTALLISABLE");
+ /**
+ * If this Material is some kind of Crystal
+ */
+ public static final SubTag CRYSTAL = getNewSubTag("CRYSTAL");
+ /**
+ * If this Material is some kind of Magical
+ */
+ public static final SubTag MAGICAL = getNewSubTag("MAGICAL");
+ /**
+ * If this Material is some kind of Metal
+ */
+ public static final SubTag METAL = getNewSubTag("METAL");
+ /**
+ * If this Material is some kind of Paper
+ */
+ public static final SubTag PAPER = getNewSubTag("PAPER");
+ /**
+ * If this Material is having a constantly burning Aura
+ */
+ public static final SubTag BURNING = getNewSubTag("BURNING");
+ /**
+ * If this Material is some kind of flammable
+ */
+ public static final SubTag FLAMMABLE = getNewSubTag("FLAMMABLE");
+ /**
+ * If this Material is not burnable at all
+ */
+ public static final SubTag UNBURNABLE = getNewSubTag("UNBURNABLE");
+ /**
+ * If this Material is some kind of explosive
+ */
+ public static final SubTag EXPLOSIVE = getNewSubTag("EXPLOSIVE");
+ /**
+ * If this Material is bouncy
+ */
+ public static final SubTag BOUNCY = getNewSubTag("BOUNCY");
+ /**
+ * If this Material is invisible
+ */
+ public static final SubTag INVISIBLE = getNewSubTag("INVISIBLE");
+ /**
+ * If this Material is transparent
+ */
+ public static final SubTag TRANSPARENT = getNewSubTag("TRANSPARENT");
+ /**
+ * If this Material has a Color
+ */
+ public static final SubTag HAS_COLOR = getNewSubTag("HAS_COLOR");
+ /**
+ * If this Material is stretchable
+ */
+ public static final SubTag STRETCHY = getNewSubTag("STRETCHY");
+ /**
+ * If this Material is soft (and can be made into a Soft Mallet even if it's not wooden or bouncy)
+ */
+ public static final SubTag SOFT = getNewSubTag("SOFT");
+ /**
+ * If this Material is grindable with a simple Mortar
+ */
+ public static final SubTag MORTAR_GRINDABLE = getNewSubTag("MORTAR_GRINDABLE");
+ /**
+ * If this Material is usable for Soldering
+ */
+ public static final SubTag SOLDERING_MATERIAL = getNewSubTag("SOLDERING_MATERIAL");
+ /**
+ * If this Material is has extra Costs for Soldering, requires the Tag "SOLDERING_MATERIAL" too
+ */
+ public static final SubTag SOLDERING_MATERIAL_BAD = getNewSubTag("SOLDERING_MATERIAL_BAD");
+ /**
+ * If this Material is has a discount for Soldering, requires the Tag "SOLDERING_MATERIAL" too
+ */
+ public static final SubTag SOLDERING_MATERIAL_GOOD = getNewSubTag("SOLDERING_MATERIAL_GOOD");
+ /**
+ * Energy Tag for Electricity Primary = Voltage Secondary = Amperage
+ */
+ public static final SubTag ENERGY_ELECTRICITY = getNewSubTag("ENERGY_ELECTRICITY");
+ /**
+ * Energy Tag for Rotating Power Primary = Speed Secondary = Power
+ */
+ public static final SubTag ENERGY_ROTATIONAL = getNewSubTag("ENERGY_ROTATIONAL");
+ /**
+ * Energy Tag for Steam Power Primary = Steam per Tick Secondary = unused (always 1)
+ */
+ public static final SubTag ENERGY_STEAM = getNewSubTag("ENERGY_STEAM");
+ /**
+ * Energy Tag for Air Pressure Power Primary = Pressure Secondary = unused (always 1)
+ */
+ public static final SubTag ENERGY_AIR = getNewSubTag("ENERGY_AIR");
+ /**
+ * Energy Tag for Heat Primary = Temperature Secondary = unused (always 1)
+ */
+ public static final SubTag ENERGY_HEAT = getNewSubTag("ENERGY_HEAT");
+ /**
+ * Energy Tag for RedstoneFlux Primary = unused (always 1) Secondary = RF
+ */
+ public static final SubTag ENERGY_REDSTONE_FLUX = getNewSubTag("ENERGY_REDSTONE_FLUX");
+ /**
+ * Projectile Tag for Arrows
+ */
+ public static final SubTag PROJECTILE_ARROW = getNewSubTag("PROJECTILE_ARROW");
+
+ public final Collection<ISubTagContainer> mRelevantTaggedItems = new HashSet<>(1);
+
+ private SubTag(String aName) {
+ mSubtagID = sSubtagID++;
+ mName = aName;
+ sSubTags.put(aName, this);
+ }
+
+ public static SubTag getNewSubTag(String aName) {
+ for (SubTag tSubTag : sSubTags.values()) if (tSubTag.mName.equals(aName)) return tSubTag;
+ return new SubTag(aName);
+ }
+
+ @Override
+ public String toString() {
+ return mName;
+ }
+
+ public SubTag addContainerToList(ISubTagContainer... aContainers) {
+ if (aContainers != null) for (ISubTagContainer aContainer : aContainers)
+ if (aContainer != null && !mRelevantTaggedItems.contains(aContainer)) mRelevantTaggedItems.add(aContainer);
+ return this;
+ }
+
+ public SubTag addTo(ISubTagContainer... aContainers) {
+ if (aContainers != null)
+ for (ISubTagContainer aContainer : aContainers) if (aContainer != null) aContainer.add(this);
+ return this;
+ }
+
+ @Override
+ public boolean isTrue(ISubTagContainer aObject) {
+ return aObject.contains(this);
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/TC_Aspects.java b/src/main/java/gregtech/api/enums/TC_Aspects.java
new file mode 100644
index 0000000000..24d19b0b73
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/TC_Aspects.java
@@ -0,0 +1,112 @@
+package gregtech.api.enums;
+
+import java.util.List;
+
+public enum TC_Aspects {
+
+ AER(1),
+ ALIENIS(20),
+ AQUA(3),
+ ARBOR(1),
+ AURAM(16),
+ BESTIA(6),
+ COGNITIO(2),
+ CORPUS(2),
+ ELECTRUM(24),
+ EXANIMIS(32),
+ FABRICO(2),
+ FAMES(2),
+ GELUM(1),
+ GRANUM(4),
+ HERBA(2),
+ HUMANUS(8),
+ IGNIS(4),
+ INSTRUMENTUM(4),
+ ITER(6),
+ LIMUS(3),
+ LUCRUM(32),
+ LUX(4),
+ MACHINA(16),
+ MAGNETO(24),
+ MESSIS(3),
+ METALLUM(8),
+ METO(2),
+ MORTUUS(16),
+ MOTUS(4),
+ NEBRISUM(48),
+ ORDO(8),
+ PANNUS(6),
+ PERDITIO(2),
+ PERFODIO(4),
+ PERMUTATIO(12),
+ POTENTIA(16),
+ PRAECANTATIO(16),
+ RADIO(48),
+ SANO(24),
+ SENSUS(4),
+ SPIRITUS(24),
+ STRONTIO(64),
+ TELUM(6),
+ TERRA(1),
+ TEMPESTAS(64),
+ TENEBRAE(24),
+ TUTAMEN(12),
+ VACUOS(6),
+ VENENUM(16),
+ VICTUS(4),
+ VINCULUM(16),
+ VITIUM(48),
+ VITREUS(3),
+ VOLATUS(12);
+
+ /**
+ * The Thaumcraft Aspect Object of the Mod itself.
+ */
+ public Object mAspect;
+
+ public final int mValue;
+
+ TC_Aspects(int aValue) {
+ mValue = aValue;
+ }
+
+ public static class TC_AspectStack {
+
+ public TC_Aspects mAspect;
+ public long mAmount;
+
+ public TC_AspectStack(TC_Aspects aAspect, long aAmount) {
+ mAspect = aAspect;
+ mAmount = aAmount;
+ }
+
+ public TC_AspectStack copy() {
+ return new TC_AspectStack(mAspect, mAmount);
+ }
+
+ public TC_AspectStack copy(long aAmount) {
+ return new TC_AspectStack(mAspect, aAmount);
+ }
+
+ public List<TC_AspectStack> addToAspectList(List<TC_AspectStack> aList) {
+ if (mAmount == 0) return aList;
+ for (TC_AspectStack tAspect : aList) if (tAspect.mAspect == mAspect) {
+ tAspect.mAmount += mAmount;
+ return aList;
+ }
+ aList.add(copy());
+ return aList;
+ }
+
+ public boolean removeFromAspectList(List<TC_AspectStack> aList) {
+ for (TC_AspectStack tAspect : aList) if (tAspect.mAspect == mAspect) {
+ if (tAspect.mAmount >= mAmount) {
+ tAspect.mAmount -= mAmount;
+ if (tAspect.mAmount == 0) aList.remove(tAspect);
+ return true;
+ }
+ }
+ return false;
+ }
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/TextureSet.java b/src/main/java/gregtech/api/enums/TextureSet.java
new file mode 100644
index 0000000000..9e9b182c39
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/TextureSet.java
@@ -0,0 +1,132 @@
+package gregtech.api.enums;
+
+import gregtech.api.interfaces.IIconContainer;
+
+public class TextureSet {
+
+ private static final String aTextMatIconDir = "materialicons/";
+ private static final String aTextVoidDir = "/void";
+
+ private static final TextureType[] IS_BLOCK_TEXTURE = new TextureType[] { TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK,
+ TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK,
+ TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK,
+ TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK,
+ TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK,
+ TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK,
+ TextureType.BLOCK, TextureType.BLOCK, TextureType.BLOCK, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM,
+ TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, TextureType.ITEM, };
+ private static final String[] SUFFIXES = new String[] { "/dustTiny", "/dustSmall", "/dust", "/dustImpure",
+ "/dustPure", "/crushed", "/crushedPurified", "/crushedCentrifuged", "/gem", "/nugget", "/casingSmall", "/ingot",
+ "/ingotHot", "/ingotDouble", "/ingotTriple", "/ingotQuadruple", "/ingotQuintuple", "/plate", "/plateDouble",
+ "/plateTriple", "/plateQuadruple", "/plateQuintuple", "/plateDense", "/stick", "/lens", "/round", "/bolt",
+ "/screw", "/ring", "/foil", "/cell", "/cellPlasma", "/toolHeadSword", "/toolHeadPickaxe", "/toolHeadShovel",
+ "/toolHeadAxe", "/toolHeadHoe", "/toolHeadHammer", "/toolHeadFile", "/toolHeadSaw", "/toolHeadDrill",
+ "/toolHeadChainsaw", "/toolHeadWrench", "/toolHeadUniversalSpade", "/toolHeadSense", "/toolHeadPlow",
+ "/toolHeadArrow", "/toolHeadScrewdriver", "/toolHeadBuzzSaw", "/toolHeadSoldering", "/nanites", "/wireFine",
+ "/gearGtSmall", "/rotor", "/stickLong", "/springSmall", "/spring", "/arrowGtWood", "/arrowGtPlastic",
+ "/gemChipped", "/gemFlawed", "/gemFlawless", "/gemExquisite", "/gearGt", "/oreRaw", aTextVoidDir, aTextVoidDir,
+ "/oreSmall", "/ore", "/wire", "/foil", "/block1", "/block2", "/block3", "/block4", "/block5", "/block6",
+ "/pipeSide", "/pipeTiny", "/pipeSmall", "/pipeMedium", "/pipeLarge", "/pipeHuge", "/frameGt", "/pipeQuadruple",
+ "/pipeNonuple", aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir,
+ aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, "/crateGtDust", "/crateGtIngot", "/crateGtGem",
+ "/crateGtPlate", "/turbineBlade", aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir,
+ aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir,
+ aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir,
+ aTextVoidDir, aTextVoidDir, aTextVoidDir, aTextVoidDir, "/handleMallet", "/toolHeadMallet", };
+
+ public boolean is_custom = false;
+
+ public static final TextureSet SET_NONE = new TextureSet("NONE"), SET_DULL = new TextureSet("DULL"),
+ SET_RUBY = new TextureSet("RUBY"), SET_OPAL = new TextureSet("OPAL"), SET_LEAF = new TextureSet("LEAF"),
+ SET_WOOD = new TextureSet("WOOD"), SET_SAND = new TextureSet("SAND"), SET_FINE = new TextureSet("FINE"),
+ SET_FIERY = new TextureSet("FIERY"), SET_FLUID = new TextureSet("FLUID"), SET_ROUGH = new TextureSet("ROUGH"),
+ SET_PAPER = new TextureSet("PAPER"), SET_GLASS = new TextureSet("GLASS"), SET_FLINT = new TextureSet("FLINT"),
+ SET_LAPIS = new TextureSet("LAPIS"), SET_SHINY = new TextureSet("SHINY"), SET_SHARDS = new TextureSet("SHARDS"),
+ SET_POWDER = new TextureSet("POWDER"), SET_QUARTZ = new TextureSet("QUARTZ"),
+ SET_EMERALD = new TextureSet("EMERALD"), SET_DIAMOND = new TextureSet("DIAMOND"),
+ SET_LIGNITE = new TextureSet("LIGNITE"), SET_MAGNETIC = new TextureSet("MAGNETIC"),
+ SET_METALLIC = new TextureSet("METALLIC"), SET_NETHERSTAR = new TextureSet("NETHERSTAR"),
+ SET_GEM_VERTICAL = new TextureSet("GEM_VERTICAL"), SET_GEM_HORIZONTAL = new TextureSet("GEM_HORIZONTAL");
+
+ /**
+ * For the Indices of OrePrefixes you need to look into the OrePrefix Enum.
+ */
+ public static final short INDEX_wire = 69, INDEX_foil = 70, INDEX_block1 = 71, INDEX_block2 = 72, INDEX_block3 = 73,
+ INDEX_block4 = 74, INDEX_block5 = 75, INDEX_block6 = 76;
+
+ public final IIconContainer[] mTextures = new IIconContainer[128];
+ public final String mSetName;
+
+ public TextureSet(String aSetName) {
+ mSetName = aSetName;
+ for (int i = 0; i < 128; i++) {
+ if (IS_BLOCK_TEXTURE[i] == TextureType.BLOCK) {
+ mTextures[i] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + aSetName + SUFFIXES[i]);
+ } else {
+ // Check nanites folder for nanites texture to avoid copy pasting large file multiple times.
+ // Exemption for CUSTOM textures so they can be overriden as normal by placing nanite image in
+ // their respective folder.
+ if (SUFFIXES[i].equals("/nanites") && (!aSetName.contains("CUSTOM"))) {
+ mTextures[i] = new Textures.ItemIcons.CustomIcon(aTextMatIconDir + "NANITES" + SUFFIXES[i]);
+ } else {
+ mTextures[i] = new Textures.ItemIcons.CustomIcon(aTextMatIconDir + aSetName + SUFFIXES[i]);
+ }
+ }
+ }
+ }
+
+ public TextureSet(String aSetName, boolean isCustom) {
+ this("CUSTOM/" + aSetName);
+ this.is_custom = isCustom;
+ }
+
+ /**
+ * Construct a TextureSet that will delegate some of its textures to the origin TextureSet.
+ * <p>
+ * This assumes you want to construct a custom texture set.
+ */
+ private TextureSet(String aSetName, TextureSet origin, boolean overrideBlock, boolean overrideItem) {
+ mSetName = "CUSTOM/" + aSetName;
+ this.is_custom = true;
+
+ for (int i = 0; i < 128; i++) {
+ if (IS_BLOCK_TEXTURE[i] == TextureType.BLOCK) {
+ if (overrideBlock) {
+ mTextures[i] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + SUFFIXES[i]);
+ } else {
+ mTextures[i] = origin.mTextures[i];
+ }
+ } else {
+ if (overrideItem) {
+ mTextures[i] = new Textures.ItemIcons.CustomIcon(aTextMatIconDir + aSetName + SUFFIXES[i]);
+ } else {
+ mTextures[i] = origin.mTextures[i];
+ }
+ }
+ }
+ }
+
+ public TextureSet withBlockTextures(String aNewSetName) {
+ return new TextureSet(aNewSetName, this, true, false);
+ }
+
+ private enum TextureType {
+ BLOCK,
+ ITEM,
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java
new file mode 100644
index 0000000000..4faaddce38
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/Textures.java
@@ -0,0 +1,1895 @@
+package gregtech.api.enums;
+
+import static gregtech.api.enums.Mods.GregTech;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import net.minecraft.client.renderer.texture.TextureMap;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.ResourceLocation;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.render.TextureFactory;
+import gregtech.api.util.GT_Utility;
+
+public class Textures {
+
+ public enum BlockIcons implements IIconContainer, Runnable {
+
+ // ADDED
+ MACHINE_UEV_SIDE,
+ MACHINE_UIV_SIDE,
+
+ MACHINE_UMV_SIDE,
+ MACHINE_UXV_SIDE,
+
+ MACHINE_MAXV_SIDE,
+
+ MACHINE_UEV_TOP,
+ MACHINE_UIV_TOP,
+
+ MACHINE_UMV_TOP,
+ MACHINE_UXV_TOP,
+
+ MACHINE_MAXV_TOP,
+
+ MACHINE_UEV_BOTTOM,
+ MACHINE_UIV_BOTTOM,
+
+ MACHINE_UMV_BOTTOM,
+ MACHINE_UXV_BOTTOM,
+
+ MACHINE_MAXV_BOTTOM,
+
+ OVERLAY_SCHEST,
+ OVERLAY_SCHEST_GLOW,
+ OVERLAY_STANK,
+ OVERLAY_STANK_GLOW,
+
+ OVERLAY_PIPELINE_FLUID_BACK,
+ OVERLAY_PIPELINE_FLUID_FRONT,
+ OVERLAY_PIPELINE_FLUID_SIDE_LEFT_RIGHT,
+ OVERLAY_PIPELINE_FLUID_SIDE_LEFT_RIGHT_GLOW,
+ OVERLAY_PIPELINE_FLUID_SIDE_UP_DOWN,
+ OVERLAY_PIPELINE_FLUID_SIDE_UP_DOWN_GLOW,
+
+ OVERLAY_PIPELINE_ITEM_BACK,
+ OVERLAY_PIPELINE_ITEM_FRONT,
+ OVERLAY_PIPELINE_ITEM_SIDE_LEFT_RIGHT,
+ OVERLAY_PIPELINE_ITEM_SIDE_LEFT_RIGHT_GLOW,
+ OVERLAY_PIPELINE_ITEM_SIDE_UP_DOWN,
+ OVERLAY_PIPELINE_ITEM_SIDE_UP_DOWN_GLOW,
+
+ LONG_DISTANCE_PIPE_FLUID,
+ LONG_DISTANCE_PIPE_ITEM,
+
+ HIDDEN_FACE,
+
+ MACHINE_CASING_TANK_1,
+ MACHINE_CASING_TANK_2,
+ MACHINE_CASING_TANK_3,
+ MACHINE_CASING_TANK_4,
+
+ MACHINE_CASING_TANK_5,
+ MACHINE_CASING_TANK_6,
+ MACHINE_CASING_TANK_7,
+ MACHINE_CASING_TANK_8,
+
+ MACHINE_CASING_TANK_9,
+ MACHINE_CASING_TANK_10,
+ MACHINE_CASING_TANK_11,
+ MACHINE_CASING_TANK_12,
+
+ MACHINE_CASING_TANK_13,
+ MACHINE_CASING_TANK_14,
+ MACHINE_CASING_TANK_0,
+
+ BLOCK_STEELEAF,
+ BLOCK_ICHORIUM,
+ BLOCK_FIRESTONE,
+ BLOCK_SHADOW,
+
+ OVERLAY_ENERGY_IN_POWER,
+ OVERLAY_ENERGY_OUT_POWER,
+ OVERLAY_AUTOMAINTENANCE,
+ OVERLAY_AUTOMAINTENANCE_GLOW,
+ OVERLAY_AUTOMAINTENANCE_IDLE,
+ OVERLAY_AUTOMAINTENANCE_IDLE_GLOW,
+
+ //
+ VOID // The Empty Texture
+ ,
+ RENDERING_ERROR,
+ PIPE_RESTRICTOR,
+ INSULATION_FULL,
+ INSULATION_TINY,
+ INSULATION_SMALL,
+ INSULATION_MEDIUM,
+ INSULATION_MEDIUM_PLUS,
+ INSULATION_LARGE,
+ INSULATION_HUGE,
+ CFOAM_FRESH,
+
+ CFOAM_HARDENED,
+ SOLARPANEL,
+ SOLARPANEL_8V,
+ SOLARPANEL_LV,
+ SOLARPANEL_MV,
+ SOLARPANEL_HV,
+ SOLARPANEL_EV,
+ SOLARPANEL_IV,
+ SOLARPANEL_LuV,
+ SOLARPANEL_ZPM,
+
+ SOLARPANEL_UV,
+ SOLARPANEL_UHV,
+ SOLARPANEL_UEV,
+ SOLARPANEL_UIV,
+ VENT_NORMAL,
+ VENT_ADVANCED,
+ COVER_WOOD_PLATE,
+ ARROW_UP,
+ ARROW_UP_GLOW,
+ ARROW_DOWN,
+ ARROW_DOWN_GLOW,
+ ARROW_LEFT,
+ ARROW_LEFT_GLOW,
+ ARROW_RIGHT,
+ ARROW_RIGHT_GLOW,
+ AUTOMATION_FILTER,
+ AUTOMATION_FILTER_GLOW,
+ AUTOMATION_TYPEFILTER,
+ AUTOMATION_TYPEFILTER_GLOW,
+ AUTOMATION_RECIPEFILTER,
+ AUTOMATION_RECIPEFILTER_GLOW,
+
+ AUTOMATION_CHESTBUFFER,
+ AUTOMATION_CHESTBUFFER_GLOW,
+ AUTOMATION_SUPERBUFFER,
+ AUTOMATION_SUPERBUFFER_GLOW,
+ AUTOMATION_REGULATOR,
+ AUTOMATION_REGULATOR_GLOW,
+ AUTOMATION_ITEMDISTRIBUTOR,
+ AUTOMATION_ITEMDISTRIBUTOR_GLOW,
+ CONCRETE_LIGHT_STONE,
+ CONCRETE_LIGHT_COBBLE,
+ CONCRETE_LIGHT_COBBLE_MOSSY,
+
+ CONCRETE_LIGHT_BRICKS,
+ CONCRETE_LIGHT_BRICKS_CRACKED,
+ CONCRETE_LIGHT_BRICKS_MOSSY,
+ CONCRETE_LIGHT_BRICKS_CHISELED,
+ CONCRETE_LIGHT_SMOOTH,
+ CONCRETE_DARK_STONE,
+
+ CONCRETE_DARK_COBBLE,
+ CONCRETE_DARK_COBBLE_MOSSY,
+ CONCRETE_DARK_BRICKS,
+ CONCRETE_DARK_BRICKS_CRACKED,
+ CONCRETE_DARK_BRICKS_MOSSY,
+ CONCRETE_DARK_BRICKS_CHISELED,
+
+ CONCRETE_DARK_SMOOTH,
+ GRANITE_BLACK_STONE,
+ GRANITE_BLACK_COBBLE,
+ GRANITE_BLACK_COBBLE_MOSSY,
+ GRANITE_BLACK_BRICKS,
+ GRANITE_BLACK_BRICKS_CRACKED,
+ GRANITE_BLACK_BRICKS_MOSSY,
+
+ GRANITE_BLACK_BRICKS_CHISELED,
+ GRANITE_BLACK_SMOOTH,
+ GRANITE_RED_STONE,
+ GRANITE_RED_COBBLE,
+ GRANITE_RED_COBBLE_MOSSY,
+ GRANITE_RED_BRICKS,
+ GRANITE_RED_BRICKS_CRACKED,
+
+ GRANITE_RED_BRICKS_MOSSY,
+ GRANITE_RED_BRICKS_CHISELED,
+ GRANITE_RED_SMOOTH,
+ MACHINE_BRONZEBRICKS_TOP,
+ MACHINE_BRONZEBRICKS_SIDE,
+ MACHINE_BRONZEBRICKS_BOTTOM,
+
+ MACHINE_STEELBRICKS_TOP,
+ MACHINE_STEELBRICKS_SIDE,
+ MACHINE_STEELBRICKS_BOTTOM,
+ MACHINE_BRONZE_TOP,
+ MACHINE_BRONZE_SIDE,
+ MACHINE_BRONZE_BOTTOM,
+ MACHINE_STEEL_TOP,
+
+ MACHINE_STEEL_SIDE,
+ MACHINE_STEEL_BOTTOM,
+ MACHINE_8V_TOP,
+ MACHINE_8V_SIDE,
+ MACHINE_8V_BOTTOM,
+ MACHINE_LV_TOP,
+ MACHINE_LV_SIDE,
+ MACHINE_LV_BOTTOM,
+ MACHINE_MV_TOP,
+
+ MACHINE_MV_SIDE,
+ MACHINE_MV_BOTTOM,
+ MACHINE_HV_TOP,
+ MACHINE_HV_SIDE,
+ MACHINE_HV_BOTTOM,
+ MACHINE_EV_TOP,
+ MACHINE_EV_SIDE,
+ MACHINE_EV_BOTTOM,
+ MACHINE_IV_TOP,
+
+ MACHINE_IV_SIDE,
+ MACHINE_IV_BOTTOM,
+ MACHINE_LuV_TOP,
+ MACHINE_LuV_SIDE,
+ MACHINE_LuV_BOTTOM,
+ MACHINE_ZPM_TOP,
+ MACHINE_ZPM_SIDE,
+ MACHINE_ZPM_BOTTOM,
+ MACHINE_UV_TOP,
+
+ MACHINE_UV_SIDE,
+ MACHINE_UV_BOTTOM,
+ MACHINE_MAX_TOP,
+ MACHINE_MAX_SIDE,
+ MACHINE_MAX_BOTTOM,
+ MACHINE_BRONZEPLATEDBRICKS,
+ MACHINE_HEATPROOFCASING,
+ MACHINE_DIM_TRANS_CASING,
+ MACHINE_DIM_INJECTOR,
+ MACHINE_DIM_BRIDGE,
+ MACHINE_COIL_SUPERCONDUCTOR,
+
+ MACHINE_BRONZEBLASTFURNACE,
+ MACHINE_BRONZEBLASTFURNACE_ACTIVE,
+ MACHINE_BRONZEBLASTFURNACE_ACTIVE_GLOW,
+ MACHINE_CASING_ROBUST_TUNGSTENSTEEL,
+ MACHINE_CASING_CLEAN_STAINLESSSTEEL,
+ MACHINE_CASING_STABLE_TITANIUM,
+ MACHINE_CASING_MINING_OSMIRIDIUM,
+ MACHINE_CASING_MINING_NEUTRONIUM,
+ MACHINE_CASING_MINING_BLACKPLUTONIUM,
+ MACHINE_CASING_RHODIUM_PALLADIUM,
+ MACHINE_CASING_IRIDIUM,
+ MACHINE_CASING_MAGICAL,
+ MACHINE_CASING_RADIANT_NAQUADAH_ALLOY,
+
+ MACHINE_CASING_FIREBOX_TITANIUM,
+ MACHINE_CASING_FUSION_COIL,
+ MACHINE_CASING_FUSION,
+ MACHINE_CASING_FUSION_GLASS,
+ MACHINE_CASING_FUSION_GLASS_YELLOW,
+ MACHINE_CASING_FUSION_GLASS_YELLOW_GLOW,
+ MACHINE_CASING_FUSION_2,
+
+ MACHINE_CASING_MAGIC,
+ MACHINE_CASING_MAGIC_GLOW,
+ MACHINE_CASING_MAGIC_ACTIVE,
+ MACHINE_CASING_MAGIC_ACTIVE_GLOW,
+ MACHINE_CASING_MAGIC_FRONT,
+ MACHINE_CASING_MAGIC_FRONT_GLOW,
+ MACHINE_CASING_MAGIC_FRONT_ACTIVE,
+ MACHINE_CASING_MAGIC_FRONT_ACTIVE_GLOW,
+ MACHINE_CASING_DRAGONEGG,
+ MACHINE_CASING_DRAGONEGG_GLOW,
+ MACHINE_CASING_SOLID_STEEL,
+
+ MACHINE_CASING_FROST_PROOF,
+ MACHINE_CASING_PUMP,
+ MACHINE_CASING_MOTOR,
+ MACHINE_CASING_PIPE_BRONZE,
+ MACHINE_CASING_PIPE_STEEL,
+ MACHINE_CASING_PIPE_TITANIUM,
+ MACHINE_CASING_PIPE_TUNGSTENSTEEL,
+ MACHINE_CASING_PIPE_POLYTETRAFLUOROETHYLENE,
+ MACHINE_CASING_PIPE_POLYBENZIMIDAZOLE,
+
+ MACHINE_CASING_GEARBOX_BRONZE,
+ MACHINE_CASING_GEARBOX_STEEL,
+ MACHINE_CASING_GEARBOX_TITANIUM,
+ MACHINE_CASING_GEARBOX_TUNGSTENSTEEL,
+ MACHINE_CASING_DATA_DRIVE,
+ MACHINE_CASING_CONTAINMENT_FIELD,
+
+ MACHINE_CASING_ASSEMBLER,
+ MACHINE_CASING_PROCESSOR,
+ MACHINE_CASING_STRIPES_A,
+ MACHINE_CASING_STRIPES_B,
+ MACHINE_CASING_RADIOACTIVEHAZARD,
+ MACHINE_CASING_BIOHAZARD,
+ MACHINE_CASING_EXPLOSIONHAZARD,
+
+ MACHINE_CASING_FIREHAZARD,
+ MACHINE_CASING_ACIDHAZARD,
+ MACHINE_CASING_MAGICHAZARD,
+ MACHINE_CASING_FROSTHAZARD,
+ MACHINE_CASING_NOISEHAZARD,
+ MACHINE_CASING_GRATE,
+ MACHINE_CASING_VENT,
+ MACHINE_CASING_VENT_T2,
+
+ MACHINE_CASING_RADIATIONPROOF,
+ MACHINE_CASING_ADVANCEDRADIATIONPROOF,
+ MACHINE_CASING_FIREBOX_BRONZE,
+ MACHINE_CASING_FIREBOX_STEEL,
+ MACHINE_CASING_FIREBOX_TUNGSTENSTEEL,
+ MACHINE_CASING_ENGINE_INTAKE,
+ MACHINE_CASING_EXTREME_ENGINE_INTAKE, // changed color in a terrible way
+ MACHINE_CASING_CHEMICALLY_INERT,
+ MACHINE_COIL_CUPRONICKEL,
+
+ MACHINE_CASING_DENSEBRICKS,
+ MACHINE_CASING_BRICKEDBLASTFURNACE_ACTIVE,
+ MACHINE_CASING_BRICKEDBLASTFURNACE_ACTIVE_GLOW,
+ MACHINE_CASING_BRICKEDBLASTFURNACE_INACTIVE,
+
+ MACHINE_COIL_KANTHAL,
+ MACHINE_COIL_NICHROME,
+ MACHINE_COIL_TUNGSTENSTEEL,
+ MACHINE_COIL_HSSG,
+ MACHINE_COIL_NAQUADAH,
+ MACHINE_COIL_NAQUADAHALLOY,
+ MACHINE_COIL_ELECTRUMFLUX,
+ MACHINE_COIL_AWAKENEDDRACONIUM,
+ MACHINE_COIL_HSSS,
+ MACHINE_COIL_TRINIUM,
+ MACHINE_COIL_INFINITY,
+ MACHINE_COIL_HYPOGEN,
+ MACHINE_COIL_ETERNAL,
+ BOILER_SOLAR,
+ BOILER_FRONT,
+ BOILER_FRONT_GLOW,
+
+ BOILER_FRONT_ACTIVE,
+ BOILER_FRONT_ACTIVE_GLOW,
+ BOILER_LAVA_FRONT,
+ BOILER_LAVA_FRONT_GLOW,
+ BOILER_LAVA_FRONT_ACTIVE,
+ BOILER_LAVA_FRONT_ACTIVE_GLOW,
+
+ NAQUADAH_REACTOR_SOLID_BACK,
+ NAQUADAH_REACTOR_SOLID_BACK_GLOW,
+ NAQUADAH_REACTOR_SOLID_FRONT,
+ NAQUADAH_REACTOR_SOLID_FRONT_GLOW,
+ NAQUADAH_REACTOR_SOLID_SIDE,
+ NAQUADAH_REACTOR_SOLID_SIDE_GLOW,
+ NAQUADAH_REACTOR_SOLID_BOTTOM,
+ NAQUADAH_REACTOR_SOLID_BOTTOM_GLOW,
+ NAQUADAH_REACTOR_SOLID_TOP,
+ NAQUADAH_REACTOR_SOLID_TOP_GLOW,
+ NAQUADAH_REACTOR_SOLID_BACK_ACTIVE,
+ NAQUADAH_REACTOR_SOLID_BACK_ACTIVE_GLOW,
+ NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE,
+ NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE_GLOW,
+ NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE,
+ NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE_GLOW,
+ NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE,
+ NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE_GLOW,
+ NAQUADAH_REACTOR_SOLID_TOP_ACTIVE,
+ NAQUADAH_REACTOR_SOLID_TOP_ACTIVE_GLOW,
+
+ NAQUADAH_REACTOR_FLUID_BACK,
+ NAQUADAH_REACTOR_FLUID_BACK_GLOW,
+ NAQUADAH_REACTOR_FLUID_FRONT,
+ NAQUADAH_REACTOR_FLUID_FRONT_GLOW,
+ NAQUADAH_REACTOR_FLUID_SIDE,
+ NAQUADAH_REACTOR_FLUID_SIDE_GLOW,
+ NAQUADAH_REACTOR_FLUID_BOTTOM,
+ NAQUADAH_REACTOR_FLUID_BOTTOM_GLOW,
+ NAQUADAH_REACTOR_FLUID_TOP,
+ NAQUADAH_REACTOR_FLUID_TOP_GLOW,
+ NAQUADAH_REACTOR_FLUID_BACK_ACTIVE,
+ NAQUADAH_REACTOR_FLUID_BACK_ACTIVE_GLOW,
+ NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE,
+ NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE_GLOW,
+ NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE,
+ NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE_GLOW,
+ NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE,
+ NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE_GLOW,
+ NAQUADAH_REACTOR_FLUID_TOP_ACTIVE,
+ NAQUADAH_REACTOR_FLUID_TOP_ACTIVE_GLOW,
+
+ DIESEL_GENERATOR_BACK,
+ DIESEL_GENERATOR_BACK_GLOW,
+ DIESEL_GENERATOR_FRONT,
+ DIESEL_GENERATOR_FRONT_GLOW,
+ DIESEL_GENERATOR_SIDE,
+ DIESEL_GENERATOR_SIDE_GLOW,
+ DIESEL_GENERATOR_BOTTOM,
+ DIESEL_GENERATOR_BOTTOM_GLOW,
+ DIESEL_GENERATOR_TOP,
+ DIESEL_GENERATOR_TOP_GLOW,
+ DIESEL_GENERATOR_BACK_ACTIVE,
+ DIESEL_GENERATOR_BACK_ACTIVE_GLOW,
+ DIESEL_GENERATOR_FRONT_ACTIVE,
+ DIESEL_GENERATOR_FRONT_ACTIVE_GLOW,
+ DIESEL_GENERATOR_SIDE_ACTIVE,
+ DIESEL_GENERATOR_SIDE_ACTIVE_GLOW,
+ DIESEL_GENERATOR_BOTTOM_ACTIVE,
+ DIESEL_GENERATOR_BOTTOM_ACTIVE_GLOW,
+ DIESEL_GENERATOR_TOP_ACTIVE,
+ DIESEL_GENERATOR_TOP_ACTIVE_GLOW,
+
+ GAS_TURBINE_BACK,
+ GAS_TURBINE_BACK_GLOW,
+ GAS_TURBINE_FRONT,
+ GAS_TURBINE_FRONT_GLOW,
+ GAS_TURBINE_SIDE,
+ GAS_TURBINE_SIDE_GLOW,
+ GAS_TURBINE_BOTTOM,
+ GAS_TURBINE_BOTTOM_GLOW,
+ GAS_TURBINE_TOP,
+ GAS_TURBINE_TOP_GLOW,
+ GAS_TURBINE_BACK_ACTIVE,
+ GAS_TURBINE_BACK_ACTIVE_GLOW,
+ GAS_TURBINE_FRONT_ACTIVE,
+ GAS_TURBINE_FRONT_ACTIVE_GLOW,
+ GAS_TURBINE_SIDE_ACTIVE,
+ GAS_TURBINE_SIDE_ACTIVE_GLOW,
+ GAS_TURBINE_BOTTOM_ACTIVE,
+ GAS_TURBINE_BOTTOM_ACTIVE_GLOW,
+ GAS_TURBINE_TOP_ACTIVE,
+ GAS_TURBINE_TOP_ACTIVE_GLOW,
+
+ STEAM_TURBINE_BACK,
+ STEAM_TURBINE_BACK_GLOW,
+ STEAM_TURBINE_FRONT,
+ STEAM_TURBINE_FRONT_GLOW,
+ STEAM_TURBINE_SIDE,
+ STEAM_TURBINE_SIDE_GLOW,
+ STEAM_TURBINE_BOTTOM,
+ STEAM_TURBINE_BOTTOM_GLOW,
+ STEAM_TURBINE_TOP,
+ STEAM_TURBINE_TOP_GLOW,
+ STEAM_TURBINE_BACK_ACTIVE,
+ STEAM_TURBINE_BACK_ACTIVE_GLOW,
+ STEAM_TURBINE_FRONT_ACTIVE,
+ STEAM_TURBINE_FRONT_ACTIVE_GLOW,
+ STEAM_TURBINE_SIDE_ACTIVE,
+ STEAM_TURBINE_SIDE_ACTIVE_GLOW,
+ STEAM_TURBINE_BOTTOM_ACTIVE,
+ STEAM_TURBINE_BOTTOM_ACTIVE_GLOW,
+ STEAM_TURBINE_TOP_ACTIVE,
+ STEAM_TURBINE_TOP_ACTIVE_GLOW,
+
+ BLOCK_BRONZEPREIN,
+ BLOCK_STEELPREIN,
+ BLOCK_TITANIUMPREIN,
+ BLOCK_NAQUADAHPREIN,
+ BLOCK_NEUTRONIUMPREIN,
+ BLOCK_DEEP_DARK_RAW,
+ BLOCK_IRREIN,
+ BLOCK_PLASCRETE,
+ BLOCK_TSREIN,
+
+ OVERLAY_LOCKER,
+ OVERLAY_LOCKER_000,
+ OVERLAY_LOCKER_001,
+ OVERLAY_LOCKER_002,
+ OVERLAY_LOCKER_003,
+ OVERLAY_LOCKER_004,
+ OVERLAY_LOCKER_005,
+ OVERLAY_LOCKER_006,
+ OVERLAY_LOCKER_007,
+ OVERLAY_LOCKER_008,
+ OVERLAY_LOCKER_009,
+ OVERLAY_LOCKER_010,
+ OVERLAY_LOCKER_011,
+ OVERLAY_LOCKER_012,
+ OVERLAY_LOCKER_013,
+
+ OVERLAY_LENS,
+ OVERLAY_PIPE,
+ OVERLAY_PIPE_IN,
+ OVERLAY_PIPE_OUT,
+ OVERLAY_INPUT_HATCH_2x2,
+ FLUID_OUT_SIGN,
+ FLUID_IN_SIGN,
+ ITEM_IN_SIGN,
+ ITEM_OUT_SIGN,
+ OVERLAY_MUFFLER,
+
+ OVERLAY_CONTROLLER,
+ OVERLAY_ACTIVITYDETECTOR,
+ OVERLAY_ACTIVITYDETECTOR_GLOW,
+ OVERLAY_ENERGYDETECTOR,
+ OVERLAY_FLUIDDETECTOR,
+ OVERLAY_ITEMDETECTOR,
+
+ OVERLAY_REDSTONE_TRANSMITTER,
+ OVERLAY_REDSTONE_RECEIVER,
+ OVERLAY_MAINTENANCE_DETECTOR,
+
+ OVERLAY_ADVANCED_REDSTONE_TRANSMITTER,
+ OVERLAY_ADVANCED_REDSTONE_RECEIVER,
+ OVERLAY_WIRELESS_ITEM_DETECTOR,
+ OVERLAY_WIRELESS_FLUID_DETECTOR,
+ OVERLAY_WIRELESS_MAINTENANCE_DETECTOR,
+ OVERLAY_WIRELESS_ACTIVITYDETECTOR,
+ OVERLAY_METRICS_TRANSMITTER,
+
+ OVERLAY_FLUID_STORAGE_MONITOR0,
+ OVERLAY_FLUID_STORAGE_MONITOR1,
+ OVERLAY_FLUID_STORAGE_MONITOR2,
+ OVERLAY_FLUID_STORAGE_MONITOR3,
+ OVERLAY_FLUID_STORAGE_MONITOR4,
+ OVERLAY_FLUID_STORAGE_MONITOR5,
+ OVERLAY_FLUID_STORAGE_MONITOR6,
+ OVERLAY_FLUID_STORAGE_MONITOR7,
+ OVERLAY_FLUID_STORAGE_MONITOR8,
+ OVERLAY_FLUID_STORAGE_MONITOR9,
+ OVERLAY_FLUID_STORAGE_MONITOR10,
+ OVERLAY_FLUID_STORAGE_MONITOR11,
+ OVERLAY_FLUID_STORAGE_MONITOR12,
+ OVERLAY_FLUID_STORAGE_MONITOR13,
+ OVERLAY_FLUID_STORAGE_MONITOR14,
+
+ OVERLAY_DTPF_OFF,
+ OVERLAY_DTPF_ON,
+ OVERLAY_FUSION1,
+ OVERLAY_FUSION1_GLOW,
+ OVERLAY_FUSION2,
+ OVERLAY_FUSION2_GLOW,
+ OVERLAY_FUSION3,
+ OVERLAY_FUSION3_GLOW,
+ OVERLAY_SCREEN,
+ OVERLAY_SCREEN_GLOW,
+ OVERLAY_QTANK,
+ OVERLAY_QTANK_GLOW,
+ OVERLAY_QCHEST,
+ OVERLAY_QCHEST_GLOW,
+ OVERLAY_SHUTTER,
+
+ OVERLAY_CLOSET,
+ OVERLAY_DUCTTAPE,
+ OVERLAY_MAINTENANCE,
+ OVERLAY_DATA_ACCESS,
+ OVERLAY_CONVEYOR,
+ OVERLAY_PUMP,
+ OVERLAY_VALVE,
+ OVERLAY_ARM,
+ OVERLAY_DRAIN,
+ OVERLAY_CRAFTING,
+ OVERLAY_ENERGY_IN,
+ OVERLAY_ENERGY_OUT,
+
+ OVERLAY_ENERGY_IN_MULTI,
+ OVERLAY_ENERGY_OUT_MULTI,
+ OVERLAY_FRONT_LARGE_BOILER,
+ OVERLAY_FRONT_LARGE_BOILER_GLOW,
+ OVERLAY_FRONT_LARGE_BOILER_ACTIVE,
+ OVERLAY_FRONT_LARGE_BOILER_ACTIVE_GLOW,
+ OVERLAY_FRONT_VACUUM_FREEZER,
+ OVERLAY_FRONT_VACUUM_FREEZER_GLOW,
+ OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE,
+ OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE_GLOW,
+ OVERLAY_ENERGY_ON_WIRELESS,
+ OVERLAY_ENERGY_OFF_WIRELESS,
+
+ OVERLAY_FRONT_MULTI_SMELTER,
+ OVERLAY_FRONT_MULTI_SMELTER_GLOW,
+ OVERLAY_FRONT_MULTI_SMELTER_ACTIVE,
+ OVERLAY_FRONT_MULTI_SMELTER_ACTIVE_GLOW,
+ OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE,
+ OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_GLOW,
+ OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE,
+ OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE_GLOW,
+ OVERLAY_FRONT_IMPLOSION_COMPRESSOR,
+ OVERLAY_FRONT_IMPLOSION_COMPRESSOR_GLOW,
+ OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE,
+ OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE_GLOW,
+ OVERLAY_FRONT_RESEARCH_COMPLETER,
+ OVERLAY_FRONT_RESEARCH_COMPLETER_GLOW,
+ OVERLAY_FRONT_RESEARCH_COMPLETER_ACTIVE,
+ OVERLAY_FRONT_RESEARCH_COMPLETER_ACTIVE_GLOW,
+
+ OVERLAY_TOP_POTIONBREWER,
+ OVERLAY_TOP_POTIONBREWER_GLOW,
+ OVERLAY_TOP_REPLICATOR,
+ OVERLAY_TOP_REPLICATOR_GLOW,
+ OVERLAY_TOP_MASSFAB,
+ OVERLAY_TOP_MASSFAB_GLOW,
+ OVERLAY_TOP_STEAM_HAMMER,
+ OVERLAY_TOP_STEAM_HAMMER_GLOW,
+ OVERLAY_TOP_STEAM_FURNACE,
+ OVERLAY_TOP_STEAM_FURNACE_GLOW,
+ OVERLAY_TOP_STEAM_ALLOY_SMELTER,
+ OVERLAY_TOP_STEAM_ALLOY_SMELTER_GLOW,
+
+ OVERLAY_TOP_STEAM_MACERATOR,
+ OVERLAY_TOP_STEAM_MACERATOR_GLOW,
+ OVERLAY_TOP_STEAM_COMPRESSOR,
+ OVERLAY_TOP_STEAM_COMPRESSOR_GLOW,
+ OVERLAY_TOP_STEAM_EXTRACTOR,
+ OVERLAY_TOP_STEAM_EXTRACTOR_GLOW,
+ OVERLAY_TOP_DISASSEMBLER,
+ OVERLAY_TOP_DISASSEMBLER_GLOW,
+ OVERLAY_TOP_BOXINATOR,
+ OVERLAY_TOP_BOXINATOR_GLOW,
+ OVERLAY_TOP_ROCK_BREAKER,
+ OVERLAY_TOP_ROCK_BREAKER_GLOW,
+ OVERLAY_TOP_SCANNER,
+ OVERLAY_TOP_SCANNER_GLOW,
+ OVERLAY_TOP_INDUSTRIAL_APIARY,
+ OVERLAY_TOP_INDUSTRIAL_APIARY_GLOW,
+
+ OVERLAY_FRONT_POTIONBREWER,
+ OVERLAY_FRONT_POTIONBREWER_GLOW,
+ OVERLAY_FRONT_REPLICATOR,
+ OVERLAY_FRONT_REPLICATOR_GLOW,
+ OVERLAY_FRONT_MASSFAB,
+ OVERLAY_FRONT_MASSFAB_GLOW,
+ OVERLAY_FRONT_STEAM_HAMMER,
+ OVERLAY_FRONT_STEAM_HAMMER_GLOW,
+ OVERLAY_FRONT_STEAM_HAMMER_ACTIVE,
+ OVERLAY_FRONT_STEAM_HAMMER_ACTIVE_GLOW,
+ OVERLAY_FRONT_STEAM_FURNACE,
+ OVERLAY_FRONT_STEAM_FURNACE_GLOW,
+ OVERLAY_FRONT_STEAM_ALLOY_SMELTER,
+ OVERLAY_FRONT_STEAM_ALLOY_SMELTER_GLOW,
+
+ OVERLAY_FRONT_STEAM_MACERATOR,
+ OVERLAY_FRONT_STEAM_MACERATOR_GLOW,
+ OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE,
+ OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE_GLOW,
+ OVERLAY_FRONT_STEAM_COMPRESSOR,
+ OVERLAY_FRONT_STEAM_COMPRESSOR_GLOW,
+ OVERLAY_FRONT_STEAM_EXTRACTOR,
+ OVERLAY_FRONT_STEAM_EXTRACTOR_GLOW,
+ OVERLAY_FRONT_DISASSEMBLER,
+ OVERLAY_FRONT_DISASSEMBLER_GLOW,
+ OVERLAY_FRONT_DISASSEMBLER_ACTIVE,
+ OVERLAY_FRONT_DISASSEMBLER_ACTIVE_GLOW,
+ OVERLAY_FRONT_BOXINATOR,
+ OVERLAY_FRONT_BOXINATOR_GLOW,
+ OVERLAY_FRONT_ROCK_BREAKER,
+ OVERLAY_FRONT_ROCK_BREAKER_GLOW,
+ OVERLAY_FRONT_SCANNER,
+ OVERLAY_FRONT_SCANNER_GLOW,
+ OVERLAY_FRONT_INDUSTRIAL_APIARY,
+ OVERLAY_FRONT_INDUSTRIAL_APIARY_GLOW,
+
+ OVERLAY_BOTTOM_POTIONBREWER,
+ OVERLAY_BOTTOM_POTIONBREWER_GLOW,
+ OVERLAY_BOTTOM_REPLICATOR,
+ OVERLAY_BOTTOM_REPLICATOR_GLOW,
+ OVERLAY_BOTTOM_MASSFAB,
+ OVERLAY_BOTTOM_MASSFAB_GLOW,
+ OVERLAY_BOTTOM_STEAM_HAMMER,
+ OVERLAY_BOTTOM_STEAM_HAMMER_GLOW,
+ OVERLAY_BOTTOM_STEAM_FURNACE,
+ OVERLAY_BOTTOM_STEAM_FURNACE_GLOW,
+
+ OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER,
+ OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_GLOW,
+ OVERLAY_BOTTOM_STEAM_MACERATOR,
+ OVERLAY_BOTTOM_STEAM_MACERATOR_GLOW,
+ OVERLAY_BOTTOM_STEAM_COMPRESSOR,
+ OVERLAY_BOTTOM_STEAM_COMPRESSOR_GLOW,
+ OVERLAY_BOTTOM_STEAM_EXTRACTOR,
+ OVERLAY_BOTTOM_STEAM_EXTRACTOR_GLOW,
+ OVERLAY_BOTTOM_DISASSEMBLER,
+ OVERLAY_BOTTOM_DISASSEMBLER_GLOW,
+ OVERLAY_BOTTOM_BOXINATOR,
+ OVERLAY_BOTTOM_BOXINATOR_GLOW,
+ OVERLAY_BOTTOM_ROCK_BREAKER,
+ OVERLAY_BOTTOM_ROCK_BREAKER_GLOW,
+ OVERLAY_BOTTOM_SCANNER,
+ OVERLAY_BOTTOM_SCANNER_GLOW,
+ OVERLAY_BOTTOM_INDUSTRIAL_APIARY,
+ OVERLAY_BOTTOM_INDUSTRIAL_APIARY_GLOW,
+
+ OVERLAY_SIDE_POTIONBREWER,
+ OVERLAY_SIDE_POTIONBREWER_GLOW,
+ OVERLAY_SIDE_REPLICATOR,
+ OVERLAY_SIDE_REPLICATOR_GLOW,
+ OVERLAY_SIDE_MASSFAB,
+ OVERLAY_SIDE_MASSFAB_GLOW,
+ OVERLAY_SIDE_STEAM_HAMMER,
+ OVERLAY_SIDE_STEAM_HAMMER_GLOW,
+ OVERLAY_SIDE_STEAM_FURNACE,
+ OVERLAY_SIDE_STEAM_FURNACE_GLOW,
+ OVERLAY_SIDE_STEAM_ALLOY_SMELTER,
+ OVERLAY_SIDE_STEAM_ALLOY_SMELTER_GLOW,
+ OVERLAY_SIDE_STEAM_MACERATOR,
+ OVERLAY_SIDE_STEAM_MACERATOR_GLOW,
+ OVERLAY_SIDE_STEAM_COMPRESSOR,
+ OVERLAY_SIDE_STEAM_COMPRESSOR_GLOW,
+ OVERLAY_SIDE_STEAM_EXTRACTOR,
+ OVERLAY_SIDE_STEAM_EXTRACTOR_GLOW,
+ OVERLAY_SIDE_DISASSEMBLER,
+ OVERLAY_SIDE_DISASSEMBLER_GLOW,
+ OVERLAY_SIDE_BOXINATOR,
+ OVERLAY_SIDE_BOXINATOR_GLOW,
+ OVERLAY_SIDE_ROCK_BREAKER,
+ OVERLAY_SIDE_ROCK_BREAKER_GLOW,
+ OVERLAY_SIDE_SCANNER,
+ OVERLAY_SIDE_SCANNER_GLOW,
+ OVERLAY_SIDE_INDUSTRIAL_APIARY,
+ OVERLAY_SIDE_INDUSTRIAL_APIARY_GLOW,
+
+ OVERLAY_TOP_POTIONBREWER_ACTIVE,
+ OVERLAY_TOP_POTIONBREWER_ACTIVE_GLOW,
+ OVERLAY_TOP_REPLICATOR_ACTIVE,
+ OVERLAY_TOP_REPLICATOR_ACTIVE_GLOW,
+ OVERLAY_TOP_MASSFAB_ACTIVE,
+ OVERLAY_TOP_MASSFAB_ACTIVE_GLOW,
+
+ OVERLAY_TOP_STEAM_HAMMER_ACTIVE,
+ OVERLAY_TOP_STEAM_HAMMER_ACTIVE_GLOW,
+ OVERLAY_TOP_STEAM_FURNACE_ACTIVE,
+ OVERLAY_TOP_STEAM_FURNACE_ACTIVE_GLOW,
+ OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE,
+ OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE_GLOW,
+ OVERLAY_TOP_STEAM_MACERATOR_ACTIVE,
+ OVERLAY_TOP_STEAM_MACERATOR_ACTIVE_GLOW,
+ OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE,
+ OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE_GLOW,
+
+ OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE,
+ OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE_GLOW,
+ OVERLAY_TOP_DISASSEMBLER_ACTIVE,
+ OVERLAY_TOP_DISASSEMBLER_ACTIVE_GLOW,
+ OVERLAY_TOP_BOXINATOR_ACTIVE,
+ OVERLAY_TOP_BOXINATOR_ACTIVE_GLOW,
+ OVERLAY_TOP_ROCK_BREAKER_ACTIVE,
+ OVERLAY_TOP_ROCK_BREAKER_ACTIVE_GLOW,
+ OVERLAY_TOP_SCANNER_ACTIVE,
+ OVERLAY_TOP_SCANNER_ACTIVE_GLOW,
+ OVERLAY_TOP_INDUSTRIAL_APIARY_ACTIVE,
+ OVERLAY_TOP_INDUSTRIAL_APIARY_ACTIVE_GLOW,
+
+ OVERLAY_FRONT_POTIONBREWER_ACTIVE,
+ OVERLAY_FRONT_POTIONBREWER_ACTIVE_GLOW,
+ OVERLAY_FRONT_REPLICATOR_ACTIVE,
+ OVERLAY_FRONT_REPLICATOR_ACTIVE_GLOW,
+ OVERLAY_FRONT_MASSFAB_ACTIVE,
+ OVERLAY_FRONT_MASSFAB_ACTIVE_GLOW,
+ OVERLAY_FRONT_STEAM_FURNACE_ACTIVE,
+ OVERLAY_FRONT_STEAM_FURNACE_ACTIVE_GLOW,
+ OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE,
+ OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE_GLOW,
+
+ OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE,
+ OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE_GLOW,
+ OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE,
+ OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE_GLOW,
+ OVERLAY_FRONT_BOXINATOR_ACTIVE,
+ OVERLAY_FRONT_BOXINATOR_ACTIVE_GLOW,
+ OVERLAY_FRONT_ROCK_BREAKER_ACTIVE,
+ OVERLAY_FRONT_ROCK_BREAKER_ACTIVE_GLOW,
+ OVERLAY_FRONT_SCANNER_ACTIVE,
+ OVERLAY_FRONT_SCANNER_ACTIVE_GLOW,
+ OVERLAY_FRONT_INDUSTRIAL_APIARY_ACTIVE,
+ OVERLAY_FRONT_INDUSTRIAL_APIARY_ACTIVE_GLOW,
+
+ OVERLAY_BOTTOM_POTIONBREWER_ACTIVE,
+ OVERLAY_BOTTOM_POTIONBREWER_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_REPLICATOR_ACTIVE,
+ OVERLAY_BOTTOM_REPLICATOR_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_MASSFAB_ACTIVE,
+ OVERLAY_BOTTOM_MASSFAB_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE,
+ OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE,
+ OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE,
+ OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE,
+ OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE,
+ OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE_GLOW,
+
+ OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE,
+ OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE,
+ OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_BOXINATOR_ACTIVE,
+ OVERLAY_BOTTOM_BOXINATOR_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE,
+ OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_SCANNER_ACTIVE,
+ OVERLAY_BOTTOM_SCANNER_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_INDUSTRIAL_APIARY_ACTIVE,
+ OVERLAY_BOTTOM_INDUSTRIAL_APIARY_ACTIVE_GLOW,
+
+ OVERLAY_SIDE_POTIONBREWER_ACTIVE,
+ OVERLAY_SIDE_POTIONBREWER_ACTIVE_GLOW,
+ OVERLAY_SIDE_REPLICATOR_ACTIVE,
+ OVERLAY_SIDE_REPLICATOR_ACTIVE_GLOW,
+ OVERLAY_SIDE_MASSFAB_ACTIVE,
+ OVERLAY_SIDE_MASSFAB_ACTIVE_GLOW,
+ OVERLAY_SIDE_STEAM_HAMMER_ACTIVE,
+ OVERLAY_SIDE_STEAM_HAMMER_ACTIVE_GLOW,
+ OVERLAY_SIDE_STEAM_FURNACE_ACTIVE,
+ OVERLAY_SIDE_STEAM_FURNACE_ACTIVE_GLOW,
+ OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE,
+ OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE_GLOW,
+
+ OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE,
+ OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE_GLOW,
+ OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE,
+ OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE_GLOW,
+ OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE,
+ OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE_GLOW,
+ OVERLAY_SIDE_DISASSEMBLER_ACTIVE,
+ OVERLAY_SIDE_DISASSEMBLER_ACTIVE_GLOW,
+ OVERLAY_SIDE_BOXINATOR_ACTIVE,
+ OVERLAY_SIDE_BOXINATOR_ACTIVE_GLOW,
+ OVERLAY_SIDE_ROCK_BREAKER_ACTIVE,
+ OVERLAY_SIDE_ROCK_BREAKER_ACTIVE_GLOW,
+ OVERLAY_SIDE_SCANNER_ACTIVE,
+ OVERLAY_SIDE_SCANNER_ACTIVE_GLOW,
+ OVERLAY_SIDE_INDUSTRIAL_APIARY_ACTIVE,
+ OVERLAY_SIDE_INDUSTRIAL_APIARY_ACTIVE_GLOW,
+
+ OVERLAY_ADV_PUMP,
+ OVERLAY_TELEPORTER,
+ OVERLAY_TELEPORTER_GLOW,
+ OVERLAY_TELEPORTER_ACTIVE,
+ OVERLAY_TELEPORTER_ACTIVE_GLOW,
+ OVERLAY_TELEPORTER_SIDES,
+ OVERLAY_TELEPORTER_SIDES_GLOW,
+ FUSIONI_1,
+ FUSIONI_2,
+ FUSIONI_3,
+ FUSIONI_4,
+ FUSIONI_5,
+
+ FUSIONI_6,
+ FUSIONI_7,
+ FUSIONI_8,
+ FUSIONI_9,
+ FUSIONI_10,
+ FUSIONI_11,
+ FUSIONI_12,
+ FUSIONII_1,
+ FUSIONII_2,
+ FUSIONII_3,
+ FUSIONII_4,
+ FUSIONII_5,
+ FUSIONII_6,
+ FUSIONII_7,
+ FUSIONII_8,
+ FUSIONII_9,
+
+ FUSIONII_10,
+ FUSIONII_11,
+ FUSIONII_12,
+ LARGETURBINE_ST1,
+ LARGETURBINE_ST2,
+ LARGETURBINE_ST3,
+ LARGETURBINE_ST4,
+ LARGETURBINE_ST5,
+ LARGETURBINE_ST6,
+ LARGETURBINE_ST7,
+ LARGETURBINE_ST8,
+ LARGETURBINE_ST9,
+ LARGETURBINE_ST_ACTIVE1,
+ LARGETURBINE_ST_ACTIVE2,
+ LARGETURBINE_ST_ACTIVE3,
+ LARGETURBINE_ST_ACTIVE4,
+ LARGETURBINE_ST_ACTIVE5,
+ LARGETURBINE_ST_ACTIVE6,
+ LARGETURBINE_ST_ACTIVE7,
+ LARGETURBINE_ST_ACTIVE8,
+ LARGETURBINE_ST_ACTIVE9,
+
+ LARGETURBINE_SS1,
+ LARGETURBINE_SS2,
+ LARGETURBINE_SS3,
+ LARGETURBINE_SS4,
+ LARGETURBINE_SS5,
+ LARGETURBINE_SS6,
+ LARGETURBINE_SS7,
+ LARGETURBINE_SS8,
+ LARGETURBINE_SS9,
+ LARGETURBINE_SS_ACTIVE1,
+ LARGETURBINE_SS_ACTIVE2,
+ LARGETURBINE_SS_ACTIVE3,
+ LARGETURBINE_SS_ACTIVE4,
+ LARGETURBINE_SS_ACTIVE5,
+ LARGETURBINE_SS_ACTIVE6,
+ LARGETURBINE_SS_ACTIVE7,
+ LARGETURBINE_SS_ACTIVE8,
+ LARGETURBINE_SS_ACTIVE9,
+
+ LARGETURBINE_TI1,
+ LARGETURBINE_TI2,
+ LARGETURBINE_TI3,
+ LARGETURBINE_TI4,
+ LARGETURBINE_TI5,
+ LARGETURBINE_TI6,
+ LARGETURBINE_TI7,
+ LARGETURBINE_TI8,
+ LARGETURBINE_TI9,
+ LARGETURBINE_TI_ACTIVE1,
+ LARGETURBINE_TI_ACTIVE2,
+ LARGETURBINE_TI_ACTIVE3,
+ LARGETURBINE_TI_ACTIVE4,
+ LARGETURBINE_TI_ACTIVE5,
+ LARGETURBINE_TI_ACTIVE6,
+ LARGETURBINE_TI_ACTIVE7,
+ LARGETURBINE_TI_ACTIVE8,
+ LARGETURBINE_TI_ACTIVE9,
+
+ LARGETURBINE_TU1,
+ LARGETURBINE_TU2,
+ LARGETURBINE_TU3,
+ LARGETURBINE_TU4,
+ LARGETURBINE_TU5,
+ LARGETURBINE_TU6,
+ LARGETURBINE_TU7,
+ LARGETURBINE_TU8,
+ LARGETURBINE_TU9,
+ LARGETURBINE_TU_ACTIVE1,
+ LARGETURBINE_TU_ACTIVE2,
+ LARGETURBINE_TU_ACTIVE3,
+ LARGETURBINE_TU_ACTIVE4,
+ LARGETURBINE_TU_ACTIVE5,
+ LARGETURBINE_TU_ACTIVE6,
+ LARGETURBINE_TU_ACTIVE7,
+ LARGETURBINE_TU_ACTIVE8,
+ LARGETURBINE_TU_ACTIVE9,
+
+ MACHINE_CASING_TURBINE,
+ MACHINE_CASING_ADVANCEDGAS,
+ BLOCK_ADAMANTIUM,
+ BLOCK_ALUMINIUM,
+ BLOCK_AMERICIUM,
+
+ BLOCK_ANNEALEDCOPPER,
+ BLOCK_ANTIMONY,
+ BLOCK_ARSENIC,
+ BLOCK_ASTRALSILVER,
+ BLOCK_BATTERYALLOY,
+ BLOCK_BERYLLIUM,
+ BLOCK_BISMUTH,
+ BLOCK_BISMUTHBRONZE,
+ BLOCK_BLACKBRONZE,
+ BLOCK_BLACKSTEEL,
+
+ BLOCK_BLUEALLOY,
+ BLOCK_BLUESTEEL,
+ BLOCK_BRASS,
+ BLOCK_BRONZE,
+ BLOCK_CAESIUM,
+ BLOCK_CERIUM,
+ BLOCK_CHROME,
+ BLOCK_CHROMIUMDIOXIDE,
+ BLOCK_COBALT,
+ BLOCK_COBALTBRASS,
+ BLOCK_COPPER,
+
+ BLOCK_CUPRONICKEL,
+ BLOCK_DAMASCUSSTEEL,
+ BLOCK_DARKIRON,
+ BLOCK_DEEPIRON,
+ BLOCK_DESH,
+ BLOCK_DURANIUM,
+ BLOCK_DYSPROSIUM,
+ BLOCK_ELECTRUM,
+ BLOCK_ELECTRUMFLUX,
+ BLOCK_ENDERIUM,
+
+ BLOCK_ERBIUM,
+ BLOCK_EUROPIUM,
+ BLOCK_FIERYSTEEL,
+ BLOCK_GADOLINIUM,
+ BLOCK_GALLIUM,
+ BLOCK_HOLMIUM,
+ BLOCK_HSLA,
+ BLOCK_INDIUM,
+ BLOCK_INFUSEDGOLD,
+ BLOCK_INVAR,
+ BLOCK_IRIDIUM,
+
+ BLOCK_IRONMAGNETIC,
+ BLOCK_IRONWOOD,
+ BLOCK_KANTHAL,
+ BLOCK_KNIGHTMETAL,
+ BLOCK_LANTHANUM,
+ BLOCK_LEAD,
+ BLOCK_LUTETIUM,
+ BLOCK_MAGNALIUM,
+ BLOCK_MAGNESIUM,
+ BLOCK_MANGANESE,
+ BLOCK_METEORICIRON,
+
+ BLOCK_METEORICSTEEL,
+ BLOCK_MIDASIUM,
+ BLOCK_TRINIUM,
+ BLOCK_MITHRIL,
+ BLOCK_MOLYBDENUM,
+ BLOCK_NAQUADAH,
+ BLOCK_NAQUADAHALLOY,
+ BLOCK_NAQUADAHENRICHED,
+ BLOCK_NAQUADRIA,
+ BLOCK_NEODYMIUM,
+ BLOCK_NEODYMIUMMAGNETIC,
+
+ BLOCK_NEUTRONIUM,
+ BLOCK_NICHROME,
+ BLOCK_NICKEL,
+ BLOCK_NIOBIUM,
+ BLOCK_NIOBIUMNITRIDE,
+ BLOCK_NIOBIUMTITANIUM,
+ BLOCK_OSMIRIDIUM,
+ BLOCK_OSMIUM,
+ BLOCK_PALLADIUM,
+ BLOCK_PIGIRON,
+ BLOCK_PLATINUM,
+
+ BLOCK_PLUTONIUM,
+ BLOCK_PLUTONIUM241,
+ BLOCK_PRASEODYMIUM,
+ BLOCK_PROMETHIUM,
+ BLOCK_REDALLOY,
+ BLOCK_REDSTEEL,
+ BLOCK_ROSEGOLD,
+ BLOCK_RUBIDIUM,
+ BLOCK_SAMARIUM,
+ BLOCK_SCANDIUM,
+ BLOCK_SHADOWIRON,
+
+ BLOCK_SHADOWSTEEL,
+ BLOCK_SILICON,
+ BLOCK_SILVER,
+ BLOCK_SOLDERINGALLOY,
+ BLOCK_STAINLESSSTEEL,
+ BLOCK_STEEL,
+ BLOCK_STEELMAGNETIC,
+ BLOCK_STERLINGSILVER,
+ BLOCK_SUNNARIUM,
+ BLOCK_TANTALUM,
+
+ BLOCK_TELLURIUM,
+ BLOCK_TERBIUM,
+ BLOCK_THAUMIUM,
+ BLOCK_THORIUM,
+ BLOCK_THULIUM,
+ BLOCK_TIN,
+ BLOCK_TINALLOY,
+ BLOCK_TITANIUM,
+ BLOCK_TRITANIUM,
+ BLOCK_TUNGSTEN,
+ BLOCK_TUNGSTENSTEEL,
+ BLOCK_ULTIMET,
+ BLOCK_SPACETIME,
+
+ BLOCK_URANIUM,
+ BLOCK_URANIUM235,
+ BLOCK_VANADIUM,
+ BLOCK_VANADIUMGALLIUM,
+ BLOCK_WROUGHTIRON,
+ BLOCK_YTTRBIUM,
+ BLOCK_YTTRIUM,
+ BLOCK_YTTRIUMBARIUMCUPRATE,
+ BLOCK_ZINC,
+ BLOCK_TUNGSTENCARBIDE,
+
+ BLOCK_VANADIUMSTEEL,
+ BLOCK_HSSG,
+ BLOCK_HSSE,
+ BLOCK_HSSS,
+ BLOCK_AERCRYSTAL,
+ BLOCK_AMBER,
+ BLOCK_AMETHYST,
+ BLOCK_AQUACRYSTAL,
+ BLOCK_BLUETOPAZ,
+ BLOCK_CERTUSQUARTZ,
+ BLOCK_DILITHIUM,
+
+ BLOCK_ENDEREYE,
+ BLOCK_ENDERPEARL,
+ BLOCK_FOOLSRUBY,
+ BLOCK_FORCE,
+ BLOCK_FORCICIUM,
+ BLOCK_FORCILLIUM,
+ BLOCK_GREENSAPPHIRE,
+ BLOCK_IGNISCRYSTAL,
+ BLOCK_JASPER,
+ BLOCK_LAZURITE,
+
+ BLOCK_LIGNITE,
+ BLOCK_MONAZITE,
+ BLOCK_NITER,
+ BLOCK_OLIVINE,
+ BLOCK_OPAL,
+ BLOCK_ORDOCRYSTAL,
+ BLOCK_PERDITIOCRYSTAL,
+ BLOCK_PHOSPHORUS,
+ BLOCK_QUARTZITE,
+ BLOCK_REDGARNET,
+ BLOCK_RUBY,
+
+ BLOCK_SAPPHIRE,
+ BLOCK_SODALITE,
+ BLOCK_TANZANITE,
+ BLOCK_TERRACRYSTAL,
+ BLOCK_TOPAZ,
+ BLOCK_VINTEUM,
+ BLOCK_YELLOWGARNET,
+ BLOCK_NETHERSTAR,
+ BLOCK_CHARCOAL,
+ BLOCK_BLAZE,
+ BLOCK_CRYOLITE,
+ MARBLE_STONE,
+ MARBLE_COBBLE,
+ BLOCK_NICKELALUMINIUM,
+ BLOCK_SILICONSG,
+ BLOCK_TRANSCENDENTMETAL,
+ BLOCK_UNIVERSIUM,
+ BLOCK_ETERNITY,
+ BLOCK_MAGMATTER,
+
+ BLOCK_ORIHARUKON,
+
+ BLOCK_WHITEDWARFMATTER,
+
+ BLOCK_BLACKDWARFMATTER,
+
+ MARBLE_COBBLE_MOSSY,
+ MARBLE_BRICKS,
+ MARBLE_BRICKS_CRACKED,
+ MARBLE_BRICKS_MOSSY,
+ MARBLE_BRICKS_CHISELED,
+ MARBLE_SMOOTH,
+ BASALT_STONE,
+ BASALT_COBBLE,
+ BASALT_COBBLE_MOSSY,
+ BASALT_BRICKS,
+
+ BASALT_BRICKS_CRACKED,
+ BASALT_BRICKS_MOSSY,
+ BASALT_BRICKS_CHISELED,
+ BASALT_SMOOTH,
+ OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE,
+ OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE_GLOW,
+ OVERLAY_FRONT_HEAT_EXCHANGER,
+ OVERLAY_FRONT_HEAT_EXCHANGER_GLOW,
+ OVERLAY_FRONT_PROCESSING_ARRAY_ACTIVE,
+ OVERLAY_FRONT_PROCESSING_ARRAY_ACTIVE_GLOW,
+
+ OVERLAY_FRONT_PROCESSING_ARRAY,
+ OVERLAY_FRONT_PROCESSING_ARRAY_GLOW,
+ OVERLAY_FRONT_OIL_DRILL_ACTIVE,
+ OVERLAY_FRONT_OIL_DRILL_ACTIVE_GLOW,
+ OVERLAY_FRONT_OIL_DRILL,
+ OVERLAY_FRONT_OIL_DRILL_GLOW,
+ OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE,
+ OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE_GLOW,
+ OVERLAY_FRONT_DIESEL_ENGINE,
+ OVERLAY_FRONT_DIESEL_ENGINE_GLOW,
+ OVERLAY_FRONT_EXTREME_DIESEL_ENGINE_ACTIVE,
+ OVERLAY_FRONT_EXTREME_DIESEL_ENGINE_ACTIVE_GLOW,
+ OVERLAY_FRONT_EXTREME_DIESEL_ENGINE,
+ OVERLAY_FRONT_EXTREME_DIESEL_ENGINE_GLOW,
+ OVERLAY_FRONT_PYROLYSE_OVEN_ACTIVE,
+ OVERLAY_FRONT_PYROLYSE_OVEN_ACTIVE_GLOW,
+
+ OVERLAY_FRONT_PYROLYSE_OVEN,
+ OVERLAY_FRONT_PYROLYSE_OVEN_GLOW,
+ OVERLAY_FRONT_OIL_CRACKER_ACTIVE,
+ OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW,
+ OVERLAY_FRONT_OIL_CRACKER,
+ OVERLAY_FRONT_OIL_CRACKER_GLOW,
+ OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE,
+ OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE_GLOW,
+ OVERLAY_FRONT_DISTILLATION_TOWER,
+ OVERLAY_FRONT_DISTILLATION_TOWER_GLOW,
+
+ OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE,
+ OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE_GLOW,
+ OVERLAY_FRONT_ASSEMBLY_LINE,
+ OVERLAY_FRONT_ASSEMBLY_LINE_GLOW,
+ OVERLAY_FRONT_ORE_DRILL_ACTIVE,
+ OVERLAY_FRONT_ORE_DRILL_ACTIVE_GLOW,
+ OVERLAY_FRONT_ORE_DRILL,
+ OVERLAY_FRONT_ORE_DRILL_GLOW,
+ OVERLAY_TOP_CLEANROOM_ACTIVE,
+ OVERLAY_TOP_CLEANROOM_ACTIVE_GLOW,
+ OVERLAY_TOP_CLEANROOM,
+ OVERLAY_TOP_CLEANROOM_GLOW,
+
+ OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR,
+ OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_GLOW,
+ OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE,
+ OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE_GLOW,
+
+ PIPE_RESTRICTOR_UP,
+ PIPE_RESTRICTOR_DOWN,
+ PIPE_RESTRICTOR_LEFT,
+ PIPE_RESTRICTOR_RIGHT,
+ PIPE_RESTRICTOR_NU,
+ PIPE_RESTRICTOR_ND,
+ PIPE_RESTRICTOR_NL,
+ PIPE_RESTRICTOR_NR,
+
+ PIPE_RESTRICTOR_UD,
+ PIPE_RESTRICTOR_UL,
+ PIPE_RESTRICTOR_UR,
+ PIPE_RESTRICTOR_DL,
+ PIPE_RESTRICTOR_DR,
+ PIPE_RESTRICTOR_LR,
+
+ LARGETURBINE_ST_EMPTY1,
+ LARGETURBINE_ST_EMPTY2,
+ LARGETURBINE_ST_EMPTY3,
+ LARGETURBINE_ST_EMPTY4,
+ LARGETURBINE_ST_EMPTY5,
+ LARGETURBINE_ST_EMPTY6,
+ LARGETURBINE_ST_EMPTY7,
+ LARGETURBINE_ST_EMPTY8,
+ LARGETURBINE_ST_EMPTY9,
+
+ LARGETURBINE_SS_EMPTY1,
+ LARGETURBINE_SS_EMPTY2,
+ LARGETURBINE_SS_EMPTY3,
+ LARGETURBINE_SS_EMPTY4,
+ LARGETURBINE_SS_EMPTY5,
+ LARGETURBINE_SS_EMPTY6,
+ LARGETURBINE_SS_EMPTY7,
+ LARGETURBINE_SS_EMPTY8,
+ LARGETURBINE_SS_EMPTY9,
+
+ LARGETURBINE_TI_EMPTY1,
+ LARGETURBINE_TI_EMPTY2,
+ LARGETURBINE_TI_EMPTY3,
+ LARGETURBINE_TI_EMPTY4,
+ LARGETURBINE_TI_EMPTY5,
+ LARGETURBINE_TI_EMPTY6,
+ LARGETURBINE_TI_EMPTY7,
+ LARGETURBINE_TI_EMPTY8,
+ LARGETURBINE_TI_EMPTY9,
+
+ LARGETURBINE_TU_EMPTY1,
+ LARGETURBINE_TU_EMPTY2,
+ LARGETURBINE_TU_EMPTY3,
+ LARGETURBINE_TU_EMPTY4,
+ LARGETURBINE_TU_EMPTY5,
+ LARGETURBINE_TU_EMPTY6,
+ LARGETURBINE_TU_EMPTY7,
+ LARGETURBINE_TU_EMPTY8,
+ LARGETURBINE_TU_EMPTY9,
+
+ LARGETURBINE_ADVGAS1,
+ LARGETURBINE_ADVGAS2,
+ LARGETURBINE_ADVGAS3,
+ LARGETURBINE_ADVGAS4,
+ LARGETURBINE_ADVGAS5,
+ LARGETURBINE_ADVGAS6,
+ LARGETURBINE_ADVGAS7,
+ LARGETURBINE_ADVGAS8,
+ LARGETURBINE_ADVGAS9,
+
+ LARGETURBINE_ADVGAS_ACTIVE1,
+ LARGETURBINE_ADVGAS_ACTIVE2,
+ LARGETURBINE_ADVGAS_ACTIVE3,
+ LARGETURBINE_ADVGAS_ACTIVE4,
+ LARGETURBINE_ADVGAS_ACTIVE5,
+ LARGETURBINE_ADVGAS_ACTIVE6,
+ LARGETURBINE_ADVGAS_ACTIVE7,
+ LARGETURBINE_ADVGAS_ACTIVE8,
+ LARGETURBINE_ADVGAS_ACTIVE9,
+
+ LARGETURBINE_ADVGAS_EMPTY1,
+ LARGETURBINE_ADVGAS_EMPTY2,
+ LARGETURBINE_ADVGAS_EMPTY3,
+ LARGETURBINE_ADVGAS_EMPTY4,
+ LARGETURBINE_ADVGAS_EMPTY5,
+ LARGETURBINE_ADVGAS_EMPTY6,
+ LARGETURBINE_ADVGAS_EMPTY7,
+ LARGETURBINE_ADVGAS_EMPTY8,
+ LARGETURBINE_ADVGAS_EMPTY9,
+
+ OVERLAY_ME_HATCH,
+ OVERLAY_ME_HATCH_ACTIVE,
+ OVERLAY_ME_INPUT_HATCH,
+ OVERLAY_ME_INPUT_HATCH_ACTIVE,
+ OVERLAY_ME_INPUT_FLUID_HATCH,
+ OVERLAY_ME_INPUT_FLUID_HATCH_ACTIVE,
+ OVERLAY_ME_CRAFTING_INPUT_BUFFER,
+ OVERLAY_ME_CRAFTING_INPUT_BUS,
+ OVERLAY_ME_CRAFTING_INPUT_SLAVE,
+ OVERLAY_ME_CRAFTING_HATCH,
+ OVERLAY_ME_CRAFTING_HATCH_ACTIVE,
+ OVERLAY_ME_FLUID_HATCH,
+ OVERLAY_ME_FLUID_HATCH_ACTIVE,
+
+ STRUCTURE_MARK,
+
+ MV_TOP_CYCLOTRON_SOLENOID,
+ MV_SIDE_CYCLOTRON_SOLENOID,
+ EV_TOP_CYCLOTRON_SOLENOID,
+ EV_SIDE_CYCLOTRON_SOLENOID,
+ IV_TOP_CYCLOTRON_SOLENOID,
+ IV_SIDE_CYCLOTRON_SOLENOID,
+ HV_TOP_CYCLOTRON_SOLENOID,
+ HV_SIDE_CYCLOTRON_SOLENOID,
+ LuV_TOP_CYCLOTRON_SOLENOID,
+ LuV_SIDE_CYCLOTRON_SOLENOID,
+ UMV_TOP_CYCLOTRON_SOLENOID,
+ UIV_TOP_CYCLOTRON_SOLENOID,
+ UEV_TOP_CYCLOTRON_SOLENOID,
+ UHV_TOP_CYCLOTRON_SOLENOID,
+ UV_TOP_CYCLOTRON_SOLENOID,
+ UV_SIDE_CYCLOTRON_SOLENOID,
+ UHV_SIDE_CYCLOTRON_SOLENOID,
+ UEV_SIDE_CYCLOTRON_SOLENOID,
+ UIV_SIDE_CYCLOTRON_SOLENOID,
+ UMV_SIDE_CYCLOTRON_SOLENOID,
+ ZPM_TOP_CYCLOTRON_SOLENOID,
+ ZPM_SIDE_CYCLOTRON_SOLENOID,
+ MACHINE_CASING_PCB_TIER_1,
+ MACHINE_CASING_PCB_TIER_2,
+ MACHINE_CASING_PCB_TIER_3,
+ INFINITY_COOLED_CASING,
+
+ LARGETURBINE_NEW1,
+ LARGETURBINE_NEW2,
+ LARGETURBINE_NEW3,
+ LARGETURBINE_NEW4,
+ LARGETURBINE_NEW5,
+ LARGETURBINE_NEW6,
+ LARGETURBINE_NEW7,
+ LARGETURBINE_NEW8,
+ LARGETURBINE_NEW9,
+ LARGETURBINE_NEW_ACTIVE1,
+ LARGETURBINE_NEW_ACTIVE2,
+ LARGETURBINE_NEW_ACTIVE3,
+ LARGETURBINE_NEW_ACTIVE4,
+ LARGETURBINE_NEW_ACTIVE5,
+ LARGETURBINE_NEW_ACTIVE6,
+ LARGETURBINE_NEW_ACTIVE7,
+ LARGETURBINE_NEW_ACTIVE8,
+ LARGETURBINE_NEW_ACTIVE9,
+ LARGETURBINE_NEW_EMPTY1,
+ LARGETURBINE_NEW_EMPTY2,
+ LARGETURBINE_NEW_EMPTY3,
+ LARGETURBINE_NEW_EMPTY4,
+ LARGETURBINE_NEW_EMPTY5,
+ LARGETURBINE_NEW_EMPTY6,
+ LARGETURBINE_NEW_EMPTY7,
+ LARGETURBINE_NEW_EMPTY8,
+ LARGETURBINE_NEW_EMPTY9,;
+
+ /**
+ * Icon for Fresh CFoam
+ */
+ public static final ITexture[] FRESHFOAM = { TextureFactory.of(CFOAM_FRESH) };
+ /**
+ * Icons for Hardened CFoam 0 = No Color 1 - 16 = Colors
+ */
+ public static final ITexture[][] HARDENEDFOAMS = {
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.CONSTRUCTION_FOAM.mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[0].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[1].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[2].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[3].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[4].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[5].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[6].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[7].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[8].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[9].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[10].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[11].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[12].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[13].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[14].mRGBa) },
+ new ITexture[] { TextureFactory.of(CFOAM_HARDENED, Dyes.VALUES[15].mRGBa) } };
+ /**
+ * Machine Casings by Tier 0 = 8V, 1 = LV, 2 = MV, 3 = HV, 4 = EV, 5 = IV, 6 = IV, 7 = IV, 8 = IV, 9 = IV
+ */
+ public static final IIconContainer[] MACHINECASINGS_SIDE = { MACHINE_8V_SIDE, MACHINE_LV_SIDE, MACHINE_MV_SIDE,
+ MACHINE_HV_SIDE, MACHINE_EV_SIDE, MACHINE_IV_SIDE, MACHINE_LuV_SIDE, MACHINE_ZPM_SIDE, MACHINE_UV_SIDE,
+ MACHINE_MAX_SIDE, MACHINE_UEV_SIDE, MACHINE_UIV_SIDE, MACHINE_UMV_SIDE, MACHINE_UXV_SIDE,
+ MACHINE_MAXV_SIDE, },
+ MACHINECASINGS_TOP = { MACHINE_8V_TOP, MACHINE_LV_TOP, MACHINE_MV_TOP, MACHINE_HV_TOP, MACHINE_EV_TOP,
+ MACHINE_IV_TOP, MACHINE_LuV_TOP, MACHINE_ZPM_TOP, MACHINE_UV_TOP, MACHINE_MAX_TOP, MACHINE_UEV_TOP,
+ MACHINE_UIV_TOP, MACHINE_UMV_TOP, MACHINE_UXV_TOP, MACHINE_MAXV_TOP, },
+ MACHINECASINGS_BOTTOM = { MACHINE_8V_BOTTOM, MACHINE_LV_BOTTOM, MACHINE_MV_BOTTOM, MACHINE_HV_BOTTOM,
+ MACHINE_EV_BOTTOM, MACHINE_IV_BOTTOM, MACHINE_LuV_BOTTOM, MACHINE_ZPM_BOTTOM, MACHINE_UV_BOTTOM,
+ MACHINE_MAX_BOTTOM, MACHINE_UEV_BOTTOM, MACHINE_UIV_BOTTOM, MACHINE_UMV_BOTTOM, MACHINE_UXV_BOTTOM,
+ MACHINE_MAXV_BOTTOM, },
+ GRANITES = { GRANITE_BLACK_STONE, GRANITE_BLACK_COBBLE, GRANITE_BLACK_COBBLE_MOSSY, GRANITE_BLACK_BRICKS,
+ GRANITE_BLACK_BRICKS_CRACKED, GRANITE_BLACK_BRICKS_MOSSY, GRANITE_BLACK_BRICKS_CHISELED,
+ GRANITE_BLACK_SMOOTH, GRANITE_RED_STONE, GRANITE_RED_COBBLE, GRANITE_RED_COBBLE_MOSSY,
+ GRANITE_RED_BRICKS, GRANITE_RED_BRICKS_CRACKED, GRANITE_RED_BRICKS_MOSSY, GRANITE_RED_BRICKS_CHISELED,
+ GRANITE_RED_SMOOTH, },
+ CONCRETES = { CONCRETE_DARK_STONE, CONCRETE_DARK_COBBLE, CONCRETE_DARK_COBBLE_MOSSY, CONCRETE_DARK_BRICKS,
+ CONCRETE_DARK_BRICKS_CRACKED, CONCRETE_DARK_BRICKS_MOSSY, CONCRETE_DARK_BRICKS_CHISELED,
+ CONCRETE_DARK_SMOOTH, CONCRETE_LIGHT_STONE, CONCRETE_LIGHT_COBBLE, CONCRETE_LIGHT_COBBLE_MOSSY,
+ CONCRETE_LIGHT_BRICKS, CONCRETE_LIGHT_BRICKS_CRACKED, CONCRETE_LIGHT_BRICKS_MOSSY,
+ CONCRETE_LIGHT_BRICKS_CHISELED, CONCRETE_LIGHT_SMOOTH, },
+ STONES = { MARBLE_STONE, MARBLE_COBBLE, MARBLE_COBBLE_MOSSY, MARBLE_BRICKS, MARBLE_BRICKS_CRACKED,
+ MARBLE_BRICKS_MOSSY, MARBLE_BRICKS_CHISELED, MARBLE_SMOOTH, BASALT_STONE, BASALT_COBBLE,
+ BASALT_COBBLE_MOSSY, BASALT_BRICKS, BASALT_BRICKS_CRACKED, BASALT_BRICKS_MOSSY, BASALT_BRICKS_CHISELED,
+ BASALT_SMOOTH, },
+ TURBINE = { LARGETURBINE_ST1, LARGETURBINE_ST2, LARGETURBINE_ST3, LARGETURBINE_ST4, LARGETURBINE_ST5,
+ LARGETURBINE_ST6, LARGETURBINE_ST7, LARGETURBINE_ST8, LARGETURBINE_ST9 },
+ TURBINE_ACTIVE = { LARGETURBINE_ST_ACTIVE1, LARGETURBINE_ST_ACTIVE2, LARGETURBINE_ST_ACTIVE3,
+ LARGETURBINE_ST_ACTIVE4, LARGETURBINE_ST_ACTIVE5, LARGETURBINE_ST_ACTIVE6, LARGETURBINE_ST_ACTIVE7,
+ LARGETURBINE_ST_ACTIVE8, LARGETURBINE_ST_ACTIVE9 },
+ TURBINE_EMPTY = { LARGETURBINE_ST_EMPTY1, LARGETURBINE_ST_EMPTY2, LARGETURBINE_ST_EMPTY3,
+ LARGETURBINE_ST_EMPTY4, LARGETURBINE_ST_EMPTY5, LARGETURBINE_ST_EMPTY6, LARGETURBINE_ST_EMPTY7,
+ LARGETURBINE_ST_EMPTY8, LARGETURBINE_ST_EMPTY9 },
+ TURBINE_NEW = { LARGETURBINE_NEW1, LARGETURBINE_NEW2, LARGETURBINE_NEW3, LARGETURBINE_NEW4,
+ LARGETURBINE_NEW5, LARGETURBINE_NEW6, LARGETURBINE_NEW7, LARGETURBINE_NEW8, LARGETURBINE_NEW9 },
+ TURBINE_NEW_ACTIVE = { LARGETURBINE_NEW_ACTIVE1, LARGETURBINE_NEW_ACTIVE2, LARGETURBINE_NEW_ACTIVE3,
+ LARGETURBINE_NEW_ACTIVE4, LARGETURBINE_NEW_ACTIVE5, LARGETURBINE_NEW_ACTIVE6, LARGETURBINE_NEW_ACTIVE7,
+ LARGETURBINE_NEW_ACTIVE8, LARGETURBINE_NEW_ACTIVE9 },
+ TURBINE_NEW_EMPTY = { LARGETURBINE_NEW_EMPTY1, LARGETURBINE_NEW_EMPTY2, LARGETURBINE_NEW_EMPTY3,
+ LARGETURBINE_NEW_EMPTY4, LARGETURBINE_NEW_EMPTY5, LARGETURBINE_NEW_EMPTY6, LARGETURBINE_NEW_EMPTY7,
+ LARGETURBINE_NEW_EMPTY8, LARGETURBINE_NEW_EMPTY9 },
+ TURBINE1 = { LARGETURBINE_SS1, LARGETURBINE_SS2, LARGETURBINE_SS3, LARGETURBINE_SS4, LARGETURBINE_SS5,
+ LARGETURBINE_SS6, LARGETURBINE_SS7, LARGETURBINE_SS8, LARGETURBINE_SS9 },
+ TURBINE_ACTIVE1 = { LARGETURBINE_SS_ACTIVE1, LARGETURBINE_SS_ACTIVE2, LARGETURBINE_SS_ACTIVE3,
+ LARGETURBINE_SS_ACTIVE4, LARGETURBINE_SS_ACTIVE5, LARGETURBINE_SS_ACTIVE6, LARGETURBINE_SS_ACTIVE7,
+ LARGETURBINE_SS_ACTIVE8, LARGETURBINE_SS_ACTIVE9 },
+ TURBINE_EMPTY1 = { LARGETURBINE_SS_EMPTY1, LARGETURBINE_SS_EMPTY2, LARGETURBINE_SS_EMPTY3,
+ LARGETURBINE_SS_EMPTY4, LARGETURBINE_SS_EMPTY5, LARGETURBINE_SS_EMPTY6, LARGETURBINE_SS_EMPTY7,
+ LARGETURBINE_SS_EMPTY8, LARGETURBINE_SS_EMPTY9 },
+ TURBINE2 = { LARGETURBINE_TI1, LARGETURBINE_TI2, LARGETURBINE_TI3, LARGETURBINE_TI4, LARGETURBINE_TI5,
+ LARGETURBINE_TI6, LARGETURBINE_TI7, LARGETURBINE_TI8, LARGETURBINE_TI9 },
+ TURBINE_ACTIVE2 = { LARGETURBINE_TI_ACTIVE1, LARGETURBINE_TI_ACTIVE2, LARGETURBINE_TI_ACTIVE3,
+ LARGETURBINE_TI_ACTIVE4, LARGETURBINE_TI_ACTIVE5, LARGETURBINE_TI_ACTIVE6, LARGETURBINE_TI_ACTIVE7,
+ LARGETURBINE_TI_ACTIVE8, LARGETURBINE_TI_ACTIVE9 },
+ TURBINE_EMPTY2 = { LARGETURBINE_TI_EMPTY1, LARGETURBINE_TI_EMPTY2, LARGETURBINE_TI_EMPTY3,
+ LARGETURBINE_TI_EMPTY4, LARGETURBINE_TI_EMPTY5, LARGETURBINE_TI_EMPTY6, LARGETURBINE_TI_EMPTY7,
+ LARGETURBINE_TI_EMPTY8, LARGETURBINE_TI_EMPTY9 },
+ TURBINE3 = { LARGETURBINE_TU1, LARGETURBINE_TU2, LARGETURBINE_TU3, LARGETURBINE_TU4, LARGETURBINE_TU5,
+ LARGETURBINE_TU6, LARGETURBINE_TU7, LARGETURBINE_TU8, LARGETURBINE_TU9 },
+ TURBINE_ACTIVE3 = { LARGETURBINE_TU_ACTIVE1, LARGETURBINE_TU_ACTIVE2, LARGETURBINE_TU_ACTIVE3,
+ LARGETURBINE_TU_ACTIVE4, LARGETURBINE_TU_ACTIVE5, LARGETURBINE_TU_ACTIVE6, LARGETURBINE_TU_ACTIVE7,
+ LARGETURBINE_TU_ACTIVE8, LARGETURBINE_TU_ACTIVE9 },
+ TURBINE_EMPTY3 = { LARGETURBINE_TU_EMPTY1, LARGETURBINE_TU_EMPTY2, LARGETURBINE_TU_EMPTY3,
+ LARGETURBINE_TU_EMPTY4, LARGETURBINE_TU_EMPTY5, LARGETURBINE_TU_EMPTY6, LARGETURBINE_TU_EMPTY7,
+ LARGETURBINE_TU_EMPTY8, LARGETURBINE_TU_EMPTY9 },
+ TURBINEADVGAS = { LARGETURBINE_ADVGAS1, LARGETURBINE_ADVGAS2, LARGETURBINE_ADVGAS3, LARGETURBINE_ADVGAS4,
+ LARGETURBINE_ADVGAS5, LARGETURBINE_ADVGAS6, LARGETURBINE_ADVGAS7, LARGETURBINE_ADVGAS8,
+ LARGETURBINE_ADVGAS9 },
+ TURBINE_ADVGASACTIVE = { LARGETURBINE_ADVGAS_ACTIVE1, LARGETURBINE_ADVGAS_ACTIVE2,
+ LARGETURBINE_ADVGAS_ACTIVE3, LARGETURBINE_ADVGAS_ACTIVE4, LARGETURBINE_ADVGAS_ACTIVE5,
+ LARGETURBINE_ADVGAS_ACTIVE6, LARGETURBINE_ADVGAS_ACTIVE7, LARGETURBINE_ADVGAS_ACTIVE8,
+ LARGETURBINE_ADVGAS_ACTIVE9 },
+ TURBINE_ADVGASEMPTY = { LARGETURBINE_ADVGAS_EMPTY1, LARGETURBINE_ADVGAS_EMPTY2, LARGETURBINE_ADVGAS_EMPTY3,
+ LARGETURBINE_ADVGAS_EMPTY4, LARGETURBINE_ADVGAS_EMPTY5, LARGETURBINE_ADVGAS_EMPTY6,
+ LARGETURBINE_ADVGAS_EMPTY7, LARGETURBINE_ADVGAS_EMPTY8, LARGETURBINE_ADVGAS_EMPTY9 },
+ CONNECTED_HULLS = { CONCRETE_DARK_STONE, FUSIONI_1, FUSIONI_2, FUSIONI_3, FUSIONI_4, FUSIONI_5, FUSIONI_6,
+ FUSIONI_7, FUSIONI_8, FUSIONI_9, FUSIONI_10, FUSIONI_11, FUSIONI_12, FUSIONII_1, FUSIONII_2, FUSIONII_3,
+ FUSIONII_4, FUSIONII_5, FUSIONII_6, FUSIONII_7, FUSIONII_8, FUSIONII_9, FUSIONII_10, FUSIONII_11,
+ FUSIONII_12, },
+ STORAGE_BLOCKS1 = { BLOCK_ADAMANTIUM, BLOCK_ALUMINIUM, BLOCK_AMERICIUM, BLOCK_ANNEALEDCOPPER,
+ BLOCK_ANTIMONY, BLOCK_ARSENIC, BLOCK_ASTRALSILVER, BLOCK_BATTERYALLOY, BLOCK_BERYLLIUM, BLOCK_BISMUTH,
+ BLOCK_BISMUTHBRONZE, BLOCK_BLACKBRONZE, BLOCK_BLACKSTEEL, BLOCK_BLUEALLOY, BLOCK_BLUESTEEL,
+ BLOCK_BRASS },
+ STORAGE_BLOCKS2 = { BLOCK_BRONZE, BLOCK_CAESIUM, BLOCK_CERIUM, BLOCK_CHROME, BLOCK_CHROMIUMDIOXIDE,
+ BLOCK_COBALT, BLOCK_COBALTBRASS, BLOCK_COPPER, BLOCK_CUPRONICKEL, BLOCK_DAMASCUSSTEEL, BLOCK_DARKIRON,
+ BLOCK_DEEPIRON, BLOCK_DESH, BLOCK_DURANIUM, BLOCK_DYSPROSIUM, BLOCK_ELECTRUM },
+ STORAGE_BLOCKS3 = { BLOCK_ELECTRUMFLUX, BLOCK_ENDERIUM, BLOCK_ERBIUM, BLOCK_EUROPIUM, BLOCK_FIERYSTEEL,
+ BLOCK_GADOLINIUM, BLOCK_GALLIUM, BLOCK_HOLMIUM, BLOCK_HSLA, BLOCK_INDIUM, BLOCK_INFUSEDGOLD,
+ BLOCK_INVAR, BLOCK_IRIDIUM, BLOCK_IRONMAGNETIC, BLOCK_IRONWOOD, BLOCK_KANTHAL },
+ STORAGE_BLOCKS4 = { BLOCK_KNIGHTMETAL, BLOCK_LANTHANUM, BLOCK_LEAD, BLOCK_LUTETIUM, BLOCK_MAGNALIUM,
+ BLOCK_MAGNESIUM, BLOCK_MANGANESE, BLOCK_METEORICIRON, BLOCK_METEORICSTEEL, BLOCK_TRINIUM, BLOCK_MITHRIL,
+ BLOCK_MOLYBDENUM, BLOCK_NAQUADAH, BLOCK_NAQUADAHALLOY, BLOCK_NAQUADAHENRICHED, BLOCK_NAQUADRIA },
+ STORAGE_BLOCKS5 = { BLOCK_NEODYMIUM, BLOCK_NEODYMIUMMAGNETIC, BLOCK_NEUTRONIUM, BLOCK_NICHROME,
+ BLOCK_NICKEL, BLOCK_NIOBIUM, BLOCK_NIOBIUMNITRIDE, BLOCK_NIOBIUMTITANIUM, BLOCK_OSMIRIDIUM,
+ BLOCK_OSMIUM, BLOCK_PALLADIUM, BLOCK_PIGIRON, BLOCK_PLATINUM, BLOCK_PLUTONIUM, BLOCK_PLUTONIUM241,
+ BLOCK_PRASEODYMIUM },
+ STORAGE_BLOCKS6 = { BLOCK_PROMETHIUM, BLOCK_REDALLOY, BLOCK_REDSTEEL, BLOCK_ROSEGOLD, BLOCK_RUBIDIUM,
+ BLOCK_SAMARIUM, BLOCK_SCANDIUM, BLOCK_SHADOWIRON, BLOCK_SHADOWSTEEL, BLOCK_SILICON, BLOCK_SILVER,
+ BLOCK_SOLDERINGALLOY, BLOCK_STAINLESSSTEEL, BLOCK_STEEL, BLOCK_STEELMAGNETIC, BLOCK_STERLINGSILVER },
+ STORAGE_BLOCKS7 = { BLOCK_SUNNARIUM, BLOCK_TANTALUM, BLOCK_TELLURIUM, BLOCK_TERBIUM, BLOCK_THAUMIUM,
+ BLOCK_THORIUM, BLOCK_THULIUM, BLOCK_TIN, BLOCK_TINALLOY, BLOCK_TITANIUM, BLOCK_TRITANIUM,
+ BLOCK_TUNGSTEN, BLOCK_TUNGSTENSTEEL, BLOCK_ULTIMET, BLOCK_URANIUM, BLOCK_URANIUM235 },
+ STORAGE_BLOCKS8 = { BLOCK_VANADIUM, BLOCK_VANADIUMGALLIUM, BLOCK_WROUGHTIRON, BLOCK_YTTRBIUM, BLOCK_YTTRIUM,
+ BLOCK_YTTRIUMBARIUMCUPRATE, BLOCK_ZINC, BLOCK_TUNGSTENCARBIDE, BLOCK_VANADIUMSTEEL, BLOCK_HSSG,
+ BLOCK_HSSE, BLOCK_HSSS, BLOCK_STEELEAF, BLOCK_ICHORIUM, BLOCK_FIRESTONE, BLOCK_SHADOW },
+ STORAGE_BLOCKS9 = { BLOCK_AERCRYSTAL, BLOCK_AMBER, BLOCK_AMETHYST, BLOCK_AQUACRYSTAL, BLOCK_BLUETOPAZ,
+ BLOCK_CERTUSQUARTZ, BLOCK_DILITHIUM, BLOCK_ENDEREYE, BLOCK_ENDERPEARL, BLOCK_FOOLSRUBY, BLOCK_FORCE,
+ BLOCK_FORCICIUM, BLOCK_FORCILLIUM, BLOCK_GREENSAPPHIRE, BLOCK_IGNISCRYSTAL, BLOCK_JASPER },
+ STORAGE_BLOCKS10 = { BLOCK_LAZURITE, BLOCK_LIGNITE, BLOCK_MONAZITE, BLOCK_NITER, BLOCK_OLIVINE, BLOCK_OPAL,
+ BLOCK_ORDOCRYSTAL, BLOCK_PERDITIOCRYSTAL, BLOCK_PHOSPHORUS, BLOCK_QUARTZITE, BLOCK_REDGARNET,
+ BLOCK_RUBY, BLOCK_SAPPHIRE, BLOCK_SODALITE, BLOCK_TANZANITE, BLOCK_TERRACRYSTAL },
+ STORAGE_BLOCKS11 = { BLOCK_TOPAZ, BLOCK_VINTEUM, BLOCK_YELLOWGARNET, BLOCK_NETHERSTAR, BLOCK_CHARCOAL,
+ BLOCK_BLAZE },
+ STORAGE_BLOCKS12 = { BLOCK_CRYOLITE, BLOCK_SILICONSG, BLOCK_NICKELALUMINIUM, BLOCK_SPACETIME,
+ BLOCK_TRANSCENDENTMETAL, BLOCK_ORIHARUKON, BLOCK_WHITEDWARFMATTER, BLOCK_BLACKDWARFMATTER,
+ BLOCK_UNIVERSIUM, BLOCK_ETERNITY, BLOCK_MAGMATTER };
+
+ public static final ITexture[] HIDDEN_TEXTURE = { TextureFactory.builder()
+ .addIcon(HIDDEN_FACE)
+ .stdOrient()
+ .build() };
+ public static final ITexture[] ERROR_RENDERING = { TextureFactory.of(RENDERING_ERROR) };
+ public static final ITexture[] OVERLAYS_ENERGY_IN = {
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 180, 180, 180, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 220, 220, 220, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 255, 100, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 255, 255, 30, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 128, 128, 128, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 240, 240, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 220, 220, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 200, 200, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 180, 180, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 160, 160, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 140, 140, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 120, 120, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 100, 100, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 80, 80, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 60, 60, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN, new short[] { 40, 40, 245, 0 }), };
+ public static ITexture[] OVERLAYS_ENERGY_OUT = {
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 180, 180, 180, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 220, 220, 220, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 255, 100, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 255, 255, 30, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 128, 128, 128, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 240, 240, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 220, 220, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 200, 200, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 180, 180, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 160, 160, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 140, 140, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 120, 120, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 100, 100, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 80, 80, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 60, 60, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT, new short[] { 40, 40, 245, 0 }), };
+ public static final ITexture[] OVERLAYS_ENERGY_IN_MULTI = {
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 180, 180, 180, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 220, 220, 220, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 255, 100, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 255, 255, 30, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 128, 128, 128, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 240, 240, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 220, 220, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 200, 200, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 180, 180, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 160, 160, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 140, 140, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 120, 120, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 100, 100, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 80, 80, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 60, 60, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_MULTI, new short[] { 40, 40, 245, 0 }), };
+
+ public static final ITexture[] OVERLAYS_ENERGY_IN_MULTI_WIRELESS_ON = {
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 255, 255, 255, 0 }), };
+
+ public static final ITexture[] OVERLAYS_ENERGY_IN_MULTI_WIRELESS_OFF = {
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OFF_WIRELESS, new short[] { 0, 0, 0, 0 }), };
+
+ public static final ITexture[] OVERLAYS_ENERGY_OUT_MULTI = {
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 180, 180, 180, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 220, 220, 220, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 255, 100, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 255, 255, 30, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 128, 128, 128, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 240, 240, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 220, 220, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 200, 200, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 180, 180, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 160, 160, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 140, 140, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 120, 120, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 100, 100, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 80, 80, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 60, 60, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI, new short[] { 40, 40, 245, 0 }), };
+ public static final ITexture[] OVERLAYS_ENERGY_IN_POWER = {
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 180, 180, 180, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 220, 220, 220, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 255, 100, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 255, 255, 30, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 128, 128, 128, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 240, 240, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 220, 220, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 200, 200, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 180, 180, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 160, 160, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 140, 140, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 120, 120, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 100, 100, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 80, 80, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 60, 60, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_IN_POWER, new short[] { 40, 40, 245, 0 }), };
+ public static final ITexture[] OVERLAYS_ENERGY_OUT_POWER = {
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 180, 180, 180, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 220, 220, 220, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 255, 100, 0, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 255, 255, 30, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 128, 128, 128, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 240, 240, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 220, 220, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 200, 200, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 180, 180, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 160, 160, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 140, 140, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 120, 120, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 100, 100, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 80, 80, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 60, 60, 245, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_OUT_POWER, new short[] { 40, 40, 245, 0 }), };
+ public static final ITexture[] LOCKERS = { TextureFactory.of(OVERLAY_LOCKER_000),
+ TextureFactory.of(OVERLAY_LOCKER_001), TextureFactory.of(OVERLAY_LOCKER_002),
+ TextureFactory.of(OVERLAY_LOCKER_003), TextureFactory.of(OVERLAY_LOCKER_004),
+ TextureFactory.of(OVERLAY_LOCKER_005), TextureFactory.of(OVERLAY_LOCKER_006),
+ TextureFactory.of(OVERLAY_LOCKER_007), TextureFactory.of(OVERLAY_LOCKER_008),
+ TextureFactory.of(OVERLAY_LOCKER_009), TextureFactory.of(OVERLAY_LOCKER_010),
+ TextureFactory.of(OVERLAY_LOCKER_011), TextureFactory.of(OVERLAY_LOCKER_012),
+ TextureFactory.of(OVERLAY_LOCKER_013), };
+ /**
+ * USE casingTexturePages[page] instead of CASING_BLOCKS since it is casingTexturePages[0]
+ */
+ @Deprecated
+ public static final ITexture[] CASING_BLOCKS = new ITexture[128]; // original variable still limited to 128
+
+ public static ITexture[][] MACHINE_CASINGS = new ITexture[15][17];
+ /**
+ * by Default pages are null page 0: 0-63 GT casing 1-4, 64-127 GT++ page 1: 0-15 GT casing 5, 22-26 GS dyson
+ * swarm, 48-57 GT casing 8, 63 EMT, 80-95 GT reinforced blocks, 96 casing 2 meta 6, 97 error casing page 8:
+ * 0-111 TecTech, 112-127 GT casing 6 page 12: 0-127 GlodBlock page 42: 0-126 glee8e, 127 KekzTech LSC base
+ */
+ public static ITexture[][] casingTexturePages = new ITexture[128][]; // page holder so we don't make an short
+ // long array
+
+ public static final int ERROR_TEXTURE_INDEX = (1 << 7) + 97;
+ private static final Map<ITexture, Integer> reverseMap = new HashMap<>();
+
+ static {
+ for (byte i = 0; i < MACHINE_CASINGS.length; i++)
+ for (byte j = 0; j < MACHINE_CASINGS[i].length; j++) MACHINE_CASINGS[i][j] = TextureFactory.of(
+ MACHINECASINGS_BOTTOM[i],
+ MACHINECASINGS_TOP[i],
+ MACHINECASINGS_SIDE[i],
+ Dyes.getModulation(j - 1, Dyes.MACHINE_METAL.mRGBa));
+ casingTexturePages[0] = new ITexture[128];
+ // adds some known pages, modders also can do it...
+ GT_Utility.addTexturePage((byte) 1);
+ GT_Utility.addTexturePage((byte) 8);
+ setCasingTextureForId(ERROR_TEXTURE_INDEX, ERROR_RENDERING[0]);
+ }
+
+ IIcon mIcon;
+
+ BlockIcons() {
+ GregTech_API.sGTBlockIconload.add(this);
+ }
+
+ public static ITexture getCasingTextureForId(int id) {
+ final ITexture[] page = casingTexturePages[(id >> 7) & 0x7f];
+ if (page == null) return null;
+ return page[id & 0x7f];
+ }
+
+ public static void setCasingTextureForId(int id, ITexture iTexture) {
+ casingTexturePages[(byte) ((id >> 7) & 0x7f)][(byte) (id & 0x7f)] = iTexture;
+ reverseMap.put(iTexture, id);
+ }
+
+ public static void setCasingTexture(byte page, byte index, ITexture iTexture) {
+ casingTexturePages[page][index] = iTexture;
+ reverseMap.put(iTexture, (page << 7) + index);
+ }
+
+ public static int getTextureIndex(ITexture texture) {
+ Integer id = reverseMap.get(texture);
+ return id == null ? ERROR_TEXTURE_INDEX : id;
+ }
+
+ @Override
+ public IIcon getIcon() {
+ return mIcon;
+ }
+
+ @Override
+ public IIcon getOverlayIcon() {
+ return null;
+ }
+
+ @Override
+ public ResourceLocation getTextureFile() {
+ return TextureMap.locationBlocksTexture;
+ }
+
+ @Override
+ public void run() {
+ mIcon = GregTech_API.sBlockIcons.registerIcon(GregTech.getResourcePath("iconsets", this.toString()));
+ }
+
+ public static class CustomIcon implements IIconContainer, Runnable {
+
+ protected IIcon mIcon;
+ protected String mIconName;
+
+ public CustomIcon(String aIconName) {
+ mIconName = !aIconName.contains(":") ? GregTech.getResourcePath(aIconName) : aIconName;
+ GregTech_API.sGTBlockIconload.add(this);
+ }
+
+ @Override
+ public void run() {
+ mIcon = GregTech_API.sBlockIcons.registerIcon(mIconName);
+ }
+
+ @Override
+ public IIcon getIcon() {
+ return mIcon;
+ }
+
+ @Override
+ public IIcon getOverlayIcon() {
+ return null;
+ }
+
+ @Override
+ public ResourceLocation getTextureFile() {
+ return TextureMap.locationBlocksTexture;
+ }
+ }
+ }
+
+ public enum ItemIcons implements IIconContainer, Runnable {
+
+ VOID, // The Empty Texture
+ RENDERING_ERROR,
+ WRENCH,
+ MORTAR,
+ CROWBAR,
+ JACKHAMMER,
+ WIRE_CUTTER,
+ KNIFE,
+ BUTCHERYKNIFE,
+ SICKLE,
+ SCOOP,
+ GRAFTER,
+ PLUNGER,
+ ROLLING_PIN,
+ HANDLE_SWORD,
+ HANDLE_FILE,
+ HANDLE_SAW,
+ HANDLE_SCREWDRIVER,
+ HANDLE_BUZZSAW,
+ HANDLE_ELECTRIC_SCREWDRIVER,
+ HANDLE_SOLDERING,
+ POWER_UNIT_LV,
+ POWER_UNIT_MV,
+ POWER_UNIT_HV,
+ DURABILITY_BAR_0,
+ DURABILITY_BAR_1,
+ DURABILITY_BAR_2,
+ DURABILITY_BAR_3,
+ DURABILITY_BAR_4,
+ DURABILITY_BAR_5,
+ DURABILITY_BAR_6,
+ DURABILITY_BAR_7,
+ DURABILITY_BAR_8,
+ ENERGY_BAR_0,
+ ENERGY_BAR_1,
+ ENERGY_BAR_2,
+ ENERGY_BAR_3,
+ ENERGY_BAR_4,
+ ENERGY_BAR_5,
+ ENERGY_BAR_6,
+ ENERGY_BAR_7,
+ ENERGY_BAR_8,
+ TURBINE,
+ TURBINE_SMALL,
+ TURBINE_LARGE,
+ TURBINE_HUGE,
+ POCKET_MULTITOOL_CLOSED,
+ POCKET_MULTITOOL_BRANCHCUTTER,
+ POCKET_MULTITOOL_FILE,
+ POCKET_MULTITOOL_KNIFE,
+ POCKET_MULTITOOL_SAW,
+ POCKET_MULTITOOL_SCREWDRIVER,
+ POCKET_MULTITOOL_WIRECUTTER,
+ HALO,
+ HALO_FUZZY;
+
+ public static final IIconContainer[] DURABILITY_BAR = { DURABILITY_BAR_0, DURABILITY_BAR_1, DURABILITY_BAR_2,
+ DURABILITY_BAR_3, DURABILITY_BAR_4, DURABILITY_BAR_5, DURABILITY_BAR_6, DURABILITY_BAR_7,
+ DURABILITY_BAR_8, },
+ ENERGY_BAR = { ENERGY_BAR_0, ENERGY_BAR_1, ENERGY_BAR_2, ENERGY_BAR_3, ENERGY_BAR_4, ENERGY_BAR_5,
+ ENERGY_BAR_6, ENERGY_BAR_7, ENERGY_BAR_8, };
+
+ public static final ITexture[] ERROR_RENDERING = { TextureFactory.of(RENDERING_ERROR) };
+
+ IIcon mIcon, mOverlay;
+
+ ItemIcons() {
+ GregTech_API.sGTItemIconload.add(this);
+ }
+
+ @Override
+ public IIcon getIcon() {
+ return mIcon;
+ }
+
+ @Override
+ public IIcon getOverlayIcon() {
+ return mOverlay;
+ }
+
+ @Override
+ public ResourceLocation getTextureFile() {
+ return TextureMap.locationItemsTexture;
+ }
+
+ @Override
+ public void run() {
+ mIcon = GregTech_API.sItemIcons.registerIcon(GregTech.getResourcePath("iconsets", this.toString()));
+ mOverlay = GregTech_API.sItemIcons.registerIcon(GregTech.getResourcePath("iconsets", this + "_OVERLAY"));
+ }
+
+ public static class CustomIcon implements IIconContainer, Runnable {
+
+ protected IIcon mIcon, mOverlay;
+ protected String mIconName;
+
+ public CustomIcon(String aIconName) {
+ mIconName = aIconName;
+ GregTech_API.sGTItemIconload.add(this);
+ }
+
+ @Override
+ public IIcon getIcon() {
+ return mIcon;
+ }
+
+ @Override
+ public IIcon getOverlayIcon() {
+ return mOverlay;
+ }
+
+ @Override
+ public ResourceLocation getTextureFile() {
+ return TextureMap.locationItemsTexture;
+ }
+
+ @Override
+ public void run() {
+ mIcon = GregTech_API.sItemIcons.registerIcon(GregTech.getResourcePath(mIconName));
+ mOverlay = GregTech_API.sItemIcons.registerIcon(GregTech.getResourcePath(mIconName + "_OVERLAY"));
+ }
+ }
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/TickTime.java b/src/main/java/gregtech/api/enums/TickTime.java
new file mode 100644
index 0000000000..28c68e172f
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/TickTime.java
@@ -0,0 +1,10 @@
+package gregtech.api.enums;
+
+public class TickTime {
+
+ public static final int TICK = 1;
+ public static final int SECOND = TICK * 20;
+ public static final int MINUTE = SECOND * 60;
+ public static final int HOUR = MINUTE * 60;
+ public static final int DAY = HOUR * 24;
+}
diff --git a/src/main/java/gregtech/api/enums/Tier.java b/src/main/java/gregtech/api/enums/Tier.java
new file mode 100644
index 0000000000..84e8344334
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/Tier.java
@@ -0,0 +1,500 @@
+package gregtech.api.enums;
+
+import static gregtech.api.enums.GT_Values.V;
+
+/**
+ * Experimental Class for later
+ */
+public class Tier {
+
+ public static final Tier[] ELECTRIC = new Tier[] {
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 0,
+ V[0],
+ 1,
+ 1,
+ 1,
+ Materials.WroughtIron,
+ ItemList.Hull_ULV,
+ OrePrefixes.cableGt01.get(Materials.Lead),
+ OrePrefixes.cableGt04.get(Materials.Lead),
+ OrePrefixes.circuit.get(Materials.Primitive),
+ OrePrefixes.circuit.get(Materials.Basic)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 1,
+ V[1],
+ 1,
+ 1,
+ 1,
+ Materials.Steel,
+ ItemList.Hull_LV,
+ OrePrefixes.cableGt01.get(Materials.Tin),
+ OrePrefixes.cableGt04.get(Materials.Tin),
+ OrePrefixes.circuit.get(Materials.Basic),
+ OrePrefixes.circuit.get(Materials.Good)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 2,
+ V[2],
+ 1,
+ 1,
+ 1,
+ Materials.Aluminium,
+ ItemList.Hull_MV,
+ OrePrefixes.cableGt01.get(Materials.AnyCopper),
+ OrePrefixes.cableGt04.get(Materials.AnyCopper),
+ OrePrefixes.circuit.get(Materials.Good),
+ OrePrefixes.circuit.get(Materials.Advanced)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 3,
+ V[3],
+ 1,
+ 1,
+ 1,
+ Materials.StainlessSteel,
+ ItemList.Hull_HV,
+ OrePrefixes.cableGt01.get(Materials.Gold),
+ OrePrefixes.cableGt04.get(Materials.Gold),
+ OrePrefixes.circuit.get(Materials.Advanced),
+ OrePrefixes.circuit.get(Materials.Data)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 4,
+ V[4],
+ 1,
+ 1,
+ 1,
+ Materials.Titanium,
+ ItemList.Hull_EV,
+ OrePrefixes.cableGt01.get(Materials.Aluminium),
+ OrePrefixes.cableGt04.get(Materials.Aluminium),
+ OrePrefixes.circuit.get(Materials.Data),
+ OrePrefixes.circuit.get(Materials.Elite)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 5,
+ V[5],
+ 1,
+ 1,
+ 1,
+ Materials.TungstenSteel,
+ ItemList.Hull_IV,
+ OrePrefixes.cableGt01.get(Materials.Platinum),
+ OrePrefixes.cableGt04.get(Materials.Platinum),
+ OrePrefixes.circuit.get(Materials.Elite),
+ OrePrefixes.circuit.get(Materials.Master)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 6,
+ V[6],
+ 1,
+ 1,
+ 1,
+ Materials.Chrome,
+ ItemList.Hull_LuV,
+ OrePrefixes.cableGt01.get(Materials.NiobiumTitanium),
+ OrePrefixes.cableGt04.get(Materials.NiobiumTitanium),
+ OrePrefixes.circuit.get(Materials.Master),
+ OrePrefixes.circuit.get(Materials.Ultimate)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 7,
+ V[7],
+ 1,
+ 1,
+ 1,
+ Materials.Iridium,
+ ItemList.Hull_ZPM,
+ OrePrefixes.cableGt01.get(Materials.Naquadah),
+ OrePrefixes.cableGt04.get(Materials.Naquadah),
+ OrePrefixes.circuit.get(Materials.Ultimate),
+ OrePrefixes.circuit.get(Materials.SuperconductorUHV)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 8,
+ V[8],
+ 1,
+ 1,
+ 1,
+ Materials.Osmium,
+ ItemList.Hull_UV,
+ OrePrefixes.cableGt04.get(Materials.NaquadahAlloy),
+ OrePrefixes.wireGt01.get(Materials.SuperconductorUHV),
+ OrePrefixes.circuit.get(Materials.SuperconductorUHV),
+ OrePrefixes.circuit.get(Materials.Infinite)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 9,
+ V[9],
+ 1,
+ 1,
+ 1,
+ Materials.Neutronium,
+ ItemList.Hull_MAX,
+ OrePrefixes.wireGt01.get(Materials.SuperconductorUHV),
+ OrePrefixes.wireGt04.get(Materials.SuperconductorUHV),
+ OrePrefixes.circuit.get(Materials.Infinite),
+ OrePrefixes.circuit.get(Materials.Infinite)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 10,
+ V[10],
+ 1,
+ 1,
+ 1,
+ Materials.Neutronium,
+ ItemList.Hull_MAX,
+ OrePrefixes.wireGt01.get(Materials.SuperconductorUHV),
+ OrePrefixes.wireGt04.get(Materials.SuperconductorUHV),
+ OrePrefixes.circuit.get(Materials.Infinite),
+ OrePrefixes.circuit.get(Materials.Infinite)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 11,
+ V[11],
+ 1,
+ 1,
+ 1,
+ Materials.Neutronium,
+ ItemList.Hull_MAX,
+ OrePrefixes.wireGt01.get(Materials.SuperconductorUHV),
+ OrePrefixes.wireGt04.get(Materials.SuperconductorUHV),
+ OrePrefixes.circuit.get(Materials.Infinite),
+ OrePrefixes.circuit.get(Materials.Infinite)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 12,
+ V[12],
+ 1,
+ 1,
+ 1,
+ Materials.Neutronium,
+ ItemList.Hull_MAX,
+ OrePrefixes.wireGt01.get(Materials.SuperconductorUHV),
+ OrePrefixes.wireGt04.get(Materials.SuperconductorUHV),
+ OrePrefixes.circuit.get(Materials.Infinite),
+ OrePrefixes.circuit.get(Materials.Infinite)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 13,
+ V[13],
+ 1,
+ 1,
+ 1,
+ Materials.Neutronium,
+ ItemList.Hull_MAX,
+ OrePrefixes.wireGt01.get(Materials.SuperconductorUHV),
+ OrePrefixes.wireGt04.get(Materials.SuperconductorUHV),
+ OrePrefixes.circuit.get(Materials.Infinite),
+ OrePrefixes.circuit.get(Materials.Infinite)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 14,
+ V[14],
+ 1,
+ 1,
+ 1,
+ Materials.Neutronium,
+ ItemList.Hull_MAX,
+ OrePrefixes.wireGt01.get(Materials.SuperconductorUHV),
+ OrePrefixes.wireGt04.get(Materials.SuperconductorUHV),
+ OrePrefixes.circuit.get(Materials.Infinite),
+ OrePrefixes.circuit.get(Materials.Infinite)),
+ new Tier(
+ SubTag.ENERGY_ELECTRICITY,
+ 15,
+ V[15],
+ 1,
+ 1,
+ 1,
+ Materials.Neutronium,
+ ItemList.Hull_MAX,
+ OrePrefixes.wireGt01.get(Materials.SuperconductorUHV),
+ OrePrefixes.wireGt04.get(Materials.SuperconductorUHV),
+ OrePrefixes.circuit.get(Materials.Infinite),
+ OrePrefixes.circuit.get(Materials.Infinite)),
+
+ // READ GT_VALUES CLASS BEFORE YOU START ADDING STUFF TO TIERS 8+ - and probably dont do it in
+ // GT but in GTNH core mod - that way we shouldnt need to set the tier class
+ }, ROTATIONAL = new Tier[] {
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 1,
+ 32,
+ 1,
+ 1,
+ 1,
+ Materials.Wood,
+ OrePrefixes.frameGt.get(Materials.Wood),
+ OrePrefixes.stick.get(Materials.Wood),
+ OrePrefixes.ingot.get(Materials.Wood),
+ OrePrefixes.gearGt.get(Materials.Wood),
+ OrePrefixes.gearGt.get(Materials.Stone)),
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 1,
+ 32,
+ 1,
+ 2,
+ 2,
+ Materials.WoodSealed,
+ OrePrefixes.frameGt.get(Materials.WoodSealed),
+ OrePrefixes.stick.get(Materials.WoodSealed),
+ OrePrefixes.ingot.get(Materials.WoodSealed),
+ OrePrefixes.gearGt.get(Materials.WoodSealed),
+ OrePrefixes.gearGt.get(Materials.Stone)),
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 2,
+ 128,
+ 1,
+ 1,
+ 1,
+ Materials.Stone,
+ OrePrefixes.frameGt.get(Materials.Stone),
+ OrePrefixes.stick.get(Materials.Stone),
+ OrePrefixes.ingot.get(Materials.Stone),
+ OrePrefixes.gearGt.get(Materials.Stone),
+ OrePrefixes.gearGt.get(Materials.Bronze)),
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 2,
+ 128,
+ 1,
+ 2,
+ 2,
+ Materials.IronWood,
+ OrePrefixes.frameGt.get(Materials.IronWood),
+ OrePrefixes.stick.get(Materials.IronWood),
+ OrePrefixes.ingot.get(Materials.IronWood),
+ OrePrefixes.gearGt.get(Materials.IronWood),
+ OrePrefixes.gearGt.get(Materials.Bronze)),
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 3,
+ 512,
+ 1,
+ 1,
+ 1,
+ Materials.Bronze,
+ OrePrefixes.frameGt.get(Materials.Bronze),
+ OrePrefixes.stick.get(Materials.Bronze),
+ OrePrefixes.ingot.get(Materials.Bronze),
+ OrePrefixes.gearGt.get(Materials.Bronze),
+ OrePrefixes.gearGt.get(Materials.Steel)),
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 3,
+ 512,
+ 1,
+ 2,
+ 2,
+ Materials.Brass,
+ OrePrefixes.frameGt.get(Materials.Brass),
+ OrePrefixes.stick.get(Materials.Brass),
+ OrePrefixes.ingot.get(Materials.Brass),
+ OrePrefixes.gearGt.get(Materials.Brass),
+ OrePrefixes.gearGt.get(Materials.Steel)),
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 4,
+ 2048,
+ 1,
+ 1,
+ 1,
+ Materials.Steel,
+ OrePrefixes.frameGt.get(Materials.Steel),
+ OrePrefixes.stick.get(Materials.Steel),
+ OrePrefixes.ingot.get(Materials.Steel),
+ OrePrefixes.gearGt.get(Materials.Steel),
+ OrePrefixes.gearGt.get(Materials.TungstenSteel)),
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 4,
+ 2048,
+ 1,
+ 2,
+ 2,
+ Materials.Titanium,
+ OrePrefixes.frameGt.get(Materials.Titanium),
+ OrePrefixes.stick.get(Materials.Titanium),
+ OrePrefixes.ingot.get(Materials.Titanium),
+ OrePrefixes.gearGt.get(Materials.Titanium),
+ OrePrefixes.gearGt.get(Materials.TungstenSteel)),
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 5,
+ 8192,
+ 1,
+ 1,
+ 1,
+ Materials.TungstenSteel,
+ OrePrefixes.frameGt.get(Materials.TungstenSteel),
+ OrePrefixes.stick.get(Materials.TungstenSteel),
+ OrePrefixes.ingot.get(Materials.TungstenSteel),
+ OrePrefixes.gearGt.get(Materials.TungstenSteel),
+ OrePrefixes.gearGt.get(Materials.Iridium)),
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 6,
+ 32768,
+ 1,
+ 1,
+ 1,
+ Materials.Iridium,
+ OrePrefixes.frameGt.get(Materials.Iridium),
+ OrePrefixes.stick.get(Materials.Iridium),
+ OrePrefixes.ingot.get(Materials.Iridium),
+ OrePrefixes.gearGt.get(Materials.Iridium),
+ OrePrefixes.gearGt.get(Materials.Neutronium)),
+ new Tier(
+ SubTag.ENERGY_ROTATIONAL,
+ 9,
+ Integer.MAX_VALUE - 7,
+ 1,
+ 1,
+ 1,
+ Materials.Neutronium,
+ OrePrefixes.frameGt.get(Materials.Neutronium),
+ OrePrefixes.stick.get(Materials.Neutronium),
+ OrePrefixes.ingot.get(Materials.Neutronium),
+ OrePrefixes.gearGt.get(Materials.Neutronium),
+ OrePrefixes.gearGt.get(Materials.Neutronium)), },
+ STEAM = new Tier[] {
+ new Tier(
+ SubTag.ENERGY_STEAM,
+ 1,
+ 32,
+ 1,
+ 1,
+ 1,
+ Materials.Bronze,
+ OrePrefixes.frameGt.get(Materials.Bronze),
+ OrePrefixes.pipeMedium.get(Materials.Bronze),
+ OrePrefixes.pipeHuge.get(Materials.Bronze),
+ OrePrefixes.pipeMedium.get(Materials.Bronze),
+ OrePrefixes.pipeLarge.get(Materials.Bronze)),
+ new Tier(
+ SubTag.ENERGY_STEAM,
+ 2,
+ 128,
+ 1,
+ 1,
+ 1,
+ Materials.Steel,
+ OrePrefixes.frameGt.get(Materials.Steel),
+ OrePrefixes.pipeMedium.get(Materials.Steel),
+ OrePrefixes.pipeHuge.get(Materials.Steel),
+ OrePrefixes.pipeMedium.get(Materials.Steel),
+ OrePrefixes.pipeLarge.get(Materials.Steel)),
+ new Tier(
+ SubTag.ENERGY_STEAM,
+ 3,
+ 512,
+ 1,
+ 1,
+ 1,
+ Materials.Titanium,
+ OrePrefixes.frameGt.get(Materials.Titanium),
+ OrePrefixes.pipeMedium.get(Materials.Titanium),
+ OrePrefixes.pipeHuge.get(Materials.Titanium),
+ OrePrefixes.pipeMedium.get(Materials.Titanium),
+ OrePrefixes.pipeLarge.get(Materials.Titanium)),
+ new Tier(
+ SubTag.ENERGY_STEAM,
+ 4,
+ 2048,
+ 1,
+ 1,
+ 1,
+ Materials.TungstenSteel,
+ OrePrefixes.frameGt.get(Materials.TungstenSteel),
+ OrePrefixes.pipeMedium.get(Materials.TungstenSteel),
+ OrePrefixes.pipeHuge.get(Materials.TungstenSteel),
+ OrePrefixes.pipeMedium.get(Materials.TungstenSteel),
+ OrePrefixes.pipeLarge.get(Materials.TungstenSteel)),
+ new Tier(
+ SubTag.ENERGY_STEAM,
+ 5,
+ 8192,
+ 1,
+ 1,
+ 1,
+ Materials.Iridium,
+ OrePrefixes.frameGt.get(Materials.Iridium),
+ OrePrefixes.pipeMedium.get(Materials.Iridium),
+ OrePrefixes.pipeHuge.get(Materials.Iridium),
+ OrePrefixes.pipeMedium.get(Materials.Iridium),
+ OrePrefixes.pipeLarge.get(Materials.Iridium)),
+ new Tier(
+ SubTag.ENERGY_STEAM,
+ 9,
+ Integer.MAX_VALUE - 7,
+ 1,
+ 1,
+ 1,
+ Materials.Neutronium,
+ OrePrefixes.frameGt.get(Materials.Neutronium),
+ OrePrefixes.pipeMedium.get(Materials.Neutronium),
+ OrePrefixes.pipeHuge.get(Materials.Neutronium),
+ OrePrefixes.pipeMedium.get(Materials.Neutronium),
+ OrePrefixes.pipeLarge.get(Materials.Neutronium)), };
+ /**
+ * Used for Crafting Recipes
+ */
+ public final Object mHullObject, mConductingObject, mLargerConductingObject, mManagingObject, mBetterManagingObject;
+
+ private final SubTag mType;
+ private final byte mRank;
+ private final long mPrimaryValue, mSecondaryValue, mSpeedMultiplier, mEnergyCostMultiplier;
+ private final Materials mMaterial;
+
+ public Tier(SubTag aType, int aRank, long aPrimaryValue, long aSecondaryValue, long aSpeedMultiplier,
+ long aEnergyCostMultiplier, Materials aMaterial, Object aHullObject, Object aConductingObject,
+ Object aLargerConductingObject, Object aManagingObject, Object aBetterManagingObject) {
+ mType = aType;
+ mRank = (byte) aRank;
+ mPrimaryValue = aPrimaryValue;
+ mSecondaryValue = aSecondaryValue;
+ mSpeedMultiplier = aSpeedMultiplier;
+ mEnergyCostMultiplier = Math.max(mSpeedMultiplier, aEnergyCostMultiplier);
+ mMaterial = aMaterial;
+
+ mHullObject = aHullObject;
+ mConductingObject = aConductingObject;
+ mManagingObject = aManagingObject;
+ mBetterManagingObject = aBetterManagingObject;
+ mLargerConductingObject = aLargerConductingObject;
+ }
+
+ public byte getRank() {
+ return mRank;
+ }
+
+ public SubTag getEnergyType() {
+ return mType;
+ }
+
+ public long getEnergyPrimary() {
+ return mPrimaryValue;
+ }
+
+ public long getEnergySecondary() {
+ return mSecondaryValue;
+ }
+
+ public long getSpeedMultiplier() {
+ return mSpeedMultiplier;
+ }
+
+ public long getEnergyCostMultiplier() {
+ return mEnergyCostMultiplier;
+ }
+
+ public Materials getMaterial() {
+ return mMaterial;
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/TierEU.java b/src/main/java/gregtech/api/enums/TierEU.java
new file mode 100644
index 0000000000..26b6393115
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/TierEU.java
@@ -0,0 +1,40 @@
+package gregtech.api.enums;
+
+import static gregtech.api.enums.GT_Values.V;
+
+public class TierEU {
+
+ // Do NOT use these for crafting recipes as they are exactly 1A! Use RECIPE_ULV etc.
+ public static final long ULV = V[GTVoltageIndex.ULV];
+ public static final long LV = V[GTVoltageIndex.LV];
+ public static final long MV = V[GTVoltageIndex.MV];
+ public static final long HV = V[GTVoltageIndex.HV];
+ public static final long EV = V[GTVoltageIndex.EV];
+ public static final long IV = V[GTVoltageIndex.IV];
+ public static final long LuV = V[GTVoltageIndex.LuV];
+ public static final long ZPM = V[GTVoltageIndex.ZPM];
+ public static final long UV = V[GTVoltageIndex.UV];
+ public static final long UHV = V[GTVoltageIndex.UHV];
+ public static final long UEV = V[GTVoltageIndex.UEV];
+ public static final long UIV = V[GTVoltageIndex.UIV];
+ public static final long UMV = V[GTVoltageIndex.UMV];
+ public static final long UXV = V[GTVoltageIndex.UXV];
+ public static final long MAX = V[GTVoltageIndex.MAX];
+
+ // Use me for recipes.
+ public static final long RECIPE_ULV = GT_Values.VP[GTVoltageIndex.ULV];
+ public static final long RECIPE_LV = GT_Values.VP[GTVoltageIndex.LV];
+ public static final long RECIPE_MV = GT_Values.VP[GTVoltageIndex.MV];
+ public static final long RECIPE_HV = GT_Values.VP[GTVoltageIndex.HV];
+ public static final long RECIPE_EV = GT_Values.VP[GTVoltageIndex.EV];
+ public static final long RECIPE_IV = GT_Values.VP[GTVoltageIndex.IV];
+ public static final long RECIPE_LuV = GT_Values.VP[GTVoltageIndex.LuV];
+ public static final long RECIPE_ZPM = GT_Values.VP[GTVoltageIndex.ZPM];
+ public static final long RECIPE_UV = GT_Values.VP[GTVoltageIndex.UV];
+ public static final long RECIPE_UHV = GT_Values.VP[GTVoltageIndex.UHV];
+ public static final long RECIPE_UEV = GT_Values.VP[GTVoltageIndex.UEV];
+ public static final long RECIPE_UIV = GT_Values.VP[GTVoltageIndex.UIV];
+ public static final long RECIPE_UMV = GT_Values.VP[GTVoltageIndex.UMV];
+ public static final long RECIPE_UXV = GT_Values.VP[GTVoltageIndex.UXV];
+ public static final long RECIPE_MAX = GT_Values.VP[GTVoltageIndex.MAX];
+}
diff --git a/src/main/java/gregtech/api/enums/ToolDictNames.java b/src/main/java/gregtech/api/enums/ToolDictNames.java
new file mode 100644
index 0000000000..e4a8ee8444
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/ToolDictNames.java
@@ -0,0 +1,44 @@
+package gregtech.api.enums;
+
+public enum ToolDictNames {
+
+ craftingToolSaw,
+ craftingToolHoe,
+ craftingToolAxe,
+ craftingToolFile,
+ craftingToolPlow,
+ craftingToolDrill,
+ craftingToolSword,
+ craftingToolScoop,
+ craftingToolKnife,
+ craftingToolBlade,
+ craftingToolMortar,
+ craftingToolShovel,
+ craftingToolWrench,
+ craftingToolPlunger,
+ craftingToolCrowbar,
+ craftingToolPickaxe,
+ craftingToolDrawplate,
+ craftingToolRollingPin,
+ craftingToolWireCutter,
+ craftingToolBranchCutter,
+ craftingToolHardHammer,
+ craftingToolSoftHammer,
+ craftingToolJackHammer,
+ craftingToolMiningDrill,
+ craftingToolForgeHammer,
+ craftingToolScrewdriver,
+ craftingToolSolderingIron,
+ craftingToolSolderingMetal;
+
+ public static boolean contains(String aName) {
+ if (!aName.startsWith("craftingTool")) return false;
+ for (ToolDictNames tool : ToolDictNames.values()) {
+ if (tool.toString()
+ .equals(aName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/ToolModes.java b/src/main/java/gregtech/api/enums/ToolModes.java
new file mode 100644
index 0000000000..2f849279a4
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/ToolModes.java
@@ -0,0 +1,18 @@
+package gregtech.api.enums;
+
+public enum ToolModes {
+
+ REGULAR(0),
+ WRENCH_LINE(1);
+
+ private final byte modeValue;
+
+ ToolModes(int modeValue) {
+ this.modeValue = (byte) modeValue;
+ }
+
+ public byte get() {
+ return modeValue;
+ }
+
+}
diff --git a/src/main/java/gregtech/api/enums/VoidingMode.java b/src/main/java/gregtech/api/enums/VoidingMode.java
new file mode 100644
index 0000000000..8ae9dda57d
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/VoidingMode.java
@@ -0,0 +1,112 @@
+package gregtech.api.enums;
+
+import java.util.Collection;
+import java.util.EnumSet;
+import java.util.Set;
+
+import javax.annotation.Nonnull;
+
+import com.gtnewhorizons.modularui.api.drawable.UITexture;
+
+import gregtech.api.gui.modularui.GT_UITextures;
+
+public enum VoidingMode {
+
+ /**
+ * Voids nothing, protects both item and fluid
+ */
+ VOID_NONE(true, true, GT_UITextures.BUTTON_STANDARD, GT_UITextures.OVERLAY_BUTTON_VOID_EXCESS_NONE, "none"),
+ /**
+ * Voids item, protects fluid
+ */
+ VOID_ITEM(false, true, GT_UITextures.BUTTON_STANDARD_PRESSED, GT_UITextures.OVERLAY_BUTTON_VOID_EXCESS_ITEM,
+ "item"),
+ /**
+ * Voids fluid, protects item
+ */
+ VOID_FLUID(true, false, GT_UITextures.BUTTON_STANDARD_PRESSED, GT_UITextures.OVERLAY_BUTTON_VOID_EXCESS_FLUID,
+ "fluid"),
+ /**
+ * Voids all, protects nothing
+ */
+ VOID_ALL(false, false, GT_UITextures.BUTTON_STANDARD_PRESSED, GT_UITextures.OVERLAY_BUTTON_VOID_EXCESS_ALL, "all");
+
+ /**
+ * Default set of voiding mode you will probably support.
+ */
+ public static final Set<VoidingMode> ALL_OPTIONS = EnumSet.allOf(VoidingMode.class);
+ /**
+ * Set of voiding mode you will probably support if your machine has no item output
+ */
+ public static final Set<VoidingMode> FLUID_ONLY_MODES = EnumSet.of(VOID_FLUID, VOID_NONE);
+ /**
+ * Set of voiding mode you will probably support if your machine has no fluid output
+ */
+ public static final Set<VoidingMode> ITEM_ONLY_MODES = EnumSet.of(VOID_ITEM, VOID_NONE);
+ public final boolean protectItem;
+ public final boolean protectFluid;
+ public final UITexture buttonTexture;
+ public final UITexture buttonOverlay;
+ public final String name;
+
+ VoidingMode(boolean protectItem, boolean protectFluid, UITexture buttonTexture, UITexture buttonOverlay,
+ String name) {
+ this.protectItem = protectItem;
+ this.protectFluid = protectFluid;
+ this.buttonTexture = buttonTexture;
+ this.buttonOverlay = buttonOverlay;
+ this.name = name;
+ }
+
+ public String getTransKey() {
+ return "GT5U.gui.button.voiding_mode_" + name;
+ }
+
+ public VoidingMode next() {
+ return values()[(ordinal() + 1) % values().length];
+ }
+
+ public VoidingMode previous() {
+ return values()[(ordinal() + values().length - 1) % values().length];
+ }
+
+ public VoidingMode nextInCollection(Collection<VoidingMode> allowed) {
+ if (allowed.isEmpty()) throw new IllegalArgumentException("nothing allowed");
+ VoidingMode ret = this;
+ do {
+ ret = ret.next();
+ } while (!allowed.contains(ret));
+ return ret;
+ }
+
+ public VoidingMode previousInCollection(Collection<VoidingMode> allowed) {
+ if (allowed.isEmpty()) throw new IllegalArgumentException("nothing allowed");
+ VoidingMode ret = this;
+ do {
+ ret = ret.previous();
+ } while (!allowed.contains(ret));
+ return ret;
+ }
+
+ /**
+ * Do not use this for loading mode from TEs, to prevent mode being shifted when new mode is added.
+ */
+ @Nonnull
+ public static VoidingMode fromOrdinal(int ordinal) {
+ if (ordinal >= 0 && ordinal < values().length) {
+ return values()[ordinal];
+ }
+ return VOID_NONE;
+ }
+
+ @Nonnull
+ public static VoidingMode fromName(String name) {
+ for (VoidingMode mode : values()) {
+ if (mode.name.equals(name)) {
+ return mode;
+ }
+ }
+ return VOID_NONE;
+ }
+
+}