diff options
Diffstat (limited to 'src/main/java/gregtech/api/enums')
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; + } + +} |