diff options
Diffstat (limited to 'src/main/java/gregtech/api')
56 files changed, 3474 insertions, 1778 deletions
diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index 8eb8839efe..3f1cd9146f 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -68,8 +68,9 @@ public class GregTech_API { /** * A List of all registered MetaTileEntities * <p/> - * 0 - 1199 are used by GregTech. - * 1200 - 2047 are used for GregTech Cables. + * 0 - 749 are used by GregTech. + * 750 - 999 are reserved for Alkalus. + * 1000 - 2047 are used by GregTech. * 2048 - 2559 are reserved for OvermindDL. * 2560 - 3071 are reserved for Immibis. * 3072 - 3583 are reserved for LinusPhoenix. @@ -170,7 +171,7 @@ public class GregTech_API { /** * The Configuration Objects */ - public static GT_Config sRecipeFile = null, sMachineFile = null, sWorldgenFile = null, sMaterialProperties = null, sUnification = null, sSpecialFile = null, sClientDataFile, sOPStuff = null; + public static GT_Config sRecipeFile = null, sMachineFile = null, sWorldgenFile = null, sModularArmor = null, sMaterialProperties = null, sMaterialComponents = null, sUnification = null, sSpecialFile = null, sClientDataFile, sOPStuff = null; public static int TICKS_FOR_LAG_AVERAGING = 25, MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING = 100; /** * Initialized by the Block creation. @@ -191,6 +192,13 @@ public class GregTech_API { public static int mRFtoEU = 20; public static boolean mRFExplosions = true; public static boolean mServerStarted = false; + public static boolean mIC2Classic = false; + public static boolean mMagneticraft = false; + public static boolean mImmersiveEngineering = false; + public static boolean mGTPlusPlus = false; + + public static boolean mUseOnlyGoodSolderingMaterials = false; + private static final String aTextIC2Lower = MOD_ID_IC2.toLowerCase(Locale.ENGLISH); /** * Getting assigned by the Mod loading diff --git a/src/main/java/gregtech/api/enums/ConfigCategories.java b/src/main/java/gregtech/api/enums/ConfigCategories.java index 51eead9adf..6e290d39da 100644 --- a/src/main/java/gregtech/api/enums/ConfigCategories.java +++ b/src/main/java/gregtech/api/enums/ConfigCategories.java @@ -21,7 +21,6 @@ public enum ConfigCategories { public enum Recipes { researches, harderrecipes, - gregtechrecipes, disabledrecipes, recipereplacements, storageblockcrafting, @@ -60,6 +59,7 @@ public enum ConfigCategories { hammerdoubleplate, hammertripleplate, hammerquadrupleplate, - hammerquintupleplate; + hammerquintupleplate, + scoop; } }
\ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index 15da7b5080..c9d56e506e 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -143,6 +143,12 @@ public enum ItemList implements IItemContainer { 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_Slicer_Flat, Shape_Slicer_Stripes, Shape_Extruder_Bottle, @@ -543,8 +549,8 @@ public enum ItemList implements IItemContainer { 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_Coil_Cupronickel_Deprecated, Casing_Coil_Kanthal_Deprecated, Casing_Coil_Nichrome_Deprecated, 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_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_RadiationProof, Casing_Firebox_Bronze, Casing_Firebox_Steel, Casing_Firebox_TungstenSteel, + 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_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_RadiationProof, Casing_Firebox_Bronze, Casing_Firebox_Steel, Casing_Firebox_TungstenSteel, Casing_Chemically_Inert, Casing_RobustTungstenSteel, Casing_CleanStainlessSteel, Casing_StableTitanium, Casing_Firebox_Titanium, Hull_ULV, Hull_LV, Hull_MV, Hull_HV, Hull_EV, Hull_IV, Hull_LuV, Hull_ZPM, Hull_UV, Hull_MAX, @@ -600,6 +606,7 @@ public enum ItemList implements IItemContainer { Machine_LV_Boxinator, Machine_MV_Boxinator, Machine_HV_Boxinator, Machine_EV_Boxinator, Machine_IV_Boxinator, Machine_LV_Unboxinator, Machine_MV_Unboxinator, Machine_HV_Unboxinator, Machine_EV_Unboxinator, Machine_IV_Unboxinator, Machine_LV_ChemicalReactor, Machine_MV_ChemicalReactor, Machine_HV_ChemicalReactor, Machine_EV_ChemicalReactor, Machine_IV_ChemicalReactor, + Machine_Multi_LargeChemicalReactor, Machine_LV_FluidCanner, Machine_MV_FluidCanner, Machine_HV_FluidCanner, Machine_EV_FluidCanner, Machine_IV_FluidCanner, Machine_LV_Disassembler, Machine_MV_Disassembler, Machine_HV_Disassembler, Machine_EV_Disassembler, Machine_IV_Disassembler, Machine_LV_Bundler, Machine_MV_Bundler, Machine_HV_Bundler, Machine_EV_Bundler, Machine_IV_Bundler, @@ -631,13 +638,14 @@ public enum ItemList implements IItemContainer { MagicEnergyAbsorber_LV, MagicEnergyAbsorber_MV, MagicEnergyAbsorber_HV, MagicEnergyAbsorber_EV, Depleted_Thorium_1, Depleted_Thorium_2, Depleted_Thorium_4, Processing_Array, Distillation_Tower, Energy_LapotronicOrb2, - ZPM3,ZPM2, 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, + ZPM3,ZPM2, + 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, NULL, Cover_RedstoneTransmitterExternal, Cover_RedstoneTransmitterInternal, Cover_RedstoneReceiverExternal, Cover_RedstoneReceiverInternal, LargeSteamTurbine, LargeGasTurbine, LargeHPSteamTurbine, LargePlasmaTurbine, Ingot_Heavy1, Ingot_Heavy2, Ingot_Heavy3, - Pump_LV, Pump_MV, Pump_HV, Pump_EV, Pump_IV, + 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_Coil_Cupronickel, Casing_Coil_Kanthal, Casing_Coil_Nichrome, Casing_Coil_TungstenSteel, Casing_Coil_HSSG, Casing_Coil_Naquadah, Casing_Coil_NaquadahAlloy, 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, @@ -650,20 +658,23 @@ public enum ItemList implements IItemContainer { ModularBasicHelmet, ModularBasicChestplate, ModularBasicLeggings, ModularBasicBoots, ModularElectric1Helmet, ModularElectric1Chestplate, ModularElectric1Leggings, ModularElectric1Boots, ModularElectric2Helmet, ModularElectric2Chestplate, ModularElectric2Leggings, ModularElectric2Boots, Block_Powderbarrel, GelledToluene, - FluidRegulator_LV, FluidRegulator_MV, FluidRegulator_HV, FluidRegulator_EV, FluidRegulator_IV, FluidRegulator_LuV, FluidRegulator_ZPM, FluidRegulator_UV, - FluidFilter, CuringOven, - Machine_Multi_Assemblyline, Machine_Multi_DieselEngine, - QuantumEye, QuantumStar, Gravistar, - 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; - + FluidRegulator_LV, FluidRegulator_MV, FluidRegulator_HV, FluidRegulator_EV, FluidRegulator_IV, FluidRegulator_LuV, FluidRegulator_ZPM, FluidRegulator_UV, FluidFilter, CuringOven, Machine_Multi_Assemblyline, Machine_Multi_DieselEngine, QuantumEye, QuantumStar, Gravistar, Block_SSFUEL, Block_MSSFUEL, SFMixture, MSFMixture, Depleted_Naquadah_1, Depleted_Naquadah_2, Depleted_Naquadah_4, NaquadahCell_1, NaquadahCell_2, NaquadahCell_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_Parts_Resistor, Circuit_Parts_ResistorSMD, Circuit_Parts_Glass_Tube, Circuit_Parts_Vacuum_Tube, Circuit_Parts_Coil, Circuit_Parts_Diode, Circuit_Parts_DiodeSMD, Circuit_Parts_Transistor, Circuit_Parts_TransistorSMD, Circuit_Parts_Capacitor, Circuit_Parts_CapacitorSMD, + Circuit_Silicon_Ingot, Circuit_Silicon_Ingot2, Circuit_Silicon_Ingot3, Circuit_Silicon_Wafer, Circuit_Silicon_Wafer2, Circuit_Silicon_Wafer3, 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_HPIC, Circuit_Chip_HPIC, Circuit_Wafer_NanoCPU, Circuit_Chip_NanoCPU, Circuit_Wafer_QuantumCPU, Circuit_Chip_QuantumCPU, + Circuit_Chip_CrystalCPU, Circuit_Chip_CrystalSoC, Circuit_Chip_NeuroCPU, Circuit_Chip_Stemcell, + Tube_Wires, + Circuit_Processor, Circuit_Computer, Circuit_Nanoprocessor, Circuit_Nanocomputer, Circuit_Elitenanocomputer, Circuit_Quantumprocessor, Circuit_Quantumcomputer, Circuit_Masterquantumcomputer, + Circuit_Quantummainframe, Circuit_Crystalprocessor, Circuit_Crystalcomputer, Circuit_Crystalmainframe, Circuit_Neuroprocessor, Circuit_Wetwarecomputer, Circuit_Wetwaresupercomputer, Circuit_Wetwaremainframe, Circuit_Parts_RawCrystalChip, + 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, + + Depleted_MNq_1, Depleted_MNq_2, Depleted_MNq_4, + MNqCell_1, MNqCell_2, MNqCell_4,; 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, sNitricAcid, sBlueVitriol, sNickelSulfate, sToluene, sNitrationMixture; + public static Fluid sOilExtraHeavy, sEpichlorhydrin, sDrillingFluid, sNitricAcid, sBlueVitriol, sNickelSulfate, sToluene, sNitrationMixture, sRocketFuel, sHydricSulfur, sIndiumConcentrate, sLeadZincSolution, sIron3Chloride, sHydrochloricAcid; private ItemStack mStack; private boolean mHasNotBeenSet = true; 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..0dff2f871e --- /dev/null +++ b/src/main/java/gregtech/api/enums/MaterialBuilder.java @@ -0,0 +1,243 @@ +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 int metaItemSubID;
+ private 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 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<MaterialStack>();
+ private List<TC_Aspects.TC_AspectStack> aspects = new ArrayList<TC_Aspects.TC_AspectStack>();
+ private boolean hasCorrespondingFluid = false;
+ private boolean hasCorrespondingGas = 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(" ", "");
+ 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);
+ }
+
+ 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;
+ }
+}
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index d83b3ef430..7875413c7e 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -1,15 +1,20 @@ package gregtech.api.enums; import cpw.mods.fml.common.Loader; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.IColorModulationContainer; +import gregtech.api.interfaces.IMaterialHandler; import gregtech.api.interfaces.ISubTagContainer; import gregtech.api.objects.GT_FluidStack; import gregtech.api.objects.MaterialStack; -import gregtech.api.util.GT_Config; import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; +import gregtech.loaders.materialprocessing.ProcessingConfig; +import gregtech.loaders.materialprocessing.ProcessingModSupport; import net.minecraft.enchantment.Enchantment; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; @@ -18,1343 +23,1585 @@ import net.minecraftforge.fluids.FluidStack; import java.util.*; import static gregtech.api.enums.GT_Values.M; -import static gregtech.api.enums.GT_Values.MOD_ID_TC; - -/** - * This List contains every Material I know about, and is used to determine Recipes for the - */ -public enum Materials implements IColorModulationContainer, ISubTagContainer { - /** - * 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. - * - * Mainly for preventing NullPointer Exceptions and providing Default Values. - */ - _NULL ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "NULL" , 0, 0, 0, 0, false, false, 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), - - /** - * Direct Elements - */ - Aluminium ( 19, TextureSet.SET_DULL , 10.0F, 128, 2, 1|2 |8 |32|64|128 , 128, 200, 240, 0, "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))), - Americium ( 103, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 |8 |32 , 200, 200, 200, 0, "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))), - Antimony ( 58, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 220, 220, 240, 0, "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))), - Argon ( 24, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 255, 0, 240, "Argon" , 0, 0, 83, 0, false, true, 5, 1, 1, Dyes.dyeGreen , Element.Ar , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Arsenic ( 39, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8|16|32 , 255, 255, 255, 0, "Arsenic" , 0, 0, 1090, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.As , Arrays.asList(new TC_AspectStack(TC_Aspects.VENENUM, 3))), - Barium ( 63, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 255, 0, "Barium" , 0, 0, 1000, 0, false, false, 1, 1, 1, Dyes._NULL , Element.Ba , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 3))), - Beryllium ( 8, TextureSet.SET_METALLIC , 14.0F, 64, 2, 1|2 |8 |32|64 , 100, 180, 100, 0, "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))), - Bismuth ( 90, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |8 |32|64|128 , 100, 160, 160, 0, "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))), - Boron ( 9, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 250, 250, 250, 0, "Boron" , 0, 0, 2349, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Element.B , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Caesium ( 62, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Calcium ( 26, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 255, 245, 245, 0, "Calcium" , 0, 0, 1115, 0, false, false, 4, 1, 1, Dyes.dyePink , Element.Ca , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 1), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Carbon ( 10, TextureSet.SET_DULL , 1.0F, 64, 2, 1|2 |32|64|128 , 20, 20, 20, 0, "Carbon" , 0, 0, 3800, 0, false, false, 2, 1, 1, Dyes.dyeBlack , Element.C , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Cadmium ( 55, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 |32 , 50, 50, 60, 0, "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))), - Cerium ( 65, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Chlorine ( 23, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 0, "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))), - Chrome ( 30, TextureSet.SET_SHINY , 11.0F, 256, 3, 1|2 |8 |32|64|128 , 255, 230, 230, 0, "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))), - Cobalt ( 33, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |8 |32|64 , 80, 80, 250, 0, "Cobalt" , 0, 0, 1768,21700, 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))), - Copper ( 35, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 |8 |32 |128 , 255, 100, 0, 0, "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))), - Deuterium ( 2, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Deuterium" , 0, 0, 14, 0, false, true, 10, 1, 1, Dyes.dyeYellow , Element.D , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 3))), - Dysprosium ( 73, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Dysprosium" , 0, 0, 1680, 1680, true, false, 4, 1, 1, Dyes._NULL , Element.Dy , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Empty ( 0, TextureSet.SET_NONE , 1.0F, 0, 2, 256/*Only for Prefixes which need it*/, 255, 255, 255, 255, "Empty" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 2))), - Erbium ( 75, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Europium ( 70, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Fluorine ( 14, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 127, "Fluorine" , 0, 0, 53, 0, false, true, 2, 1, 1, Dyes.dyeGreen , Element.F , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 2))), - Gadolinium ( 71, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Gallium ( 37, TextureSet.SET_SHINY , 1.0F, 64, 2, 1|2 |8 |32 , 220, 220, 255, 0, "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))), - Gold ( 86, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 30, 0, "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))), - Holmium ( 74, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Hydrogen ( 1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 0, 255, 240, "Hydrogen" , 1, 20, 14, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Element.H , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1))), - Helium ( 4, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium" , 0, 0, 1, 0, false, true, 5, 1, 1, Dyes.dyeYellow , Element.He , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Helium_3 ( 5, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium-3" , 0, 0, 1, 0, false, true, 10, 1, 1, Dyes.dyeYellow , Element.He_3 , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 3))), - Indium ( 56, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 64, 0, 128, 0, "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))), - Iridium ( 84, TextureSet.SET_DULL , 6.0F, 2560, 3, 1|2 |8 |32|64|128 , 240, 240, 245, 0, "Iridium" , 0, 0, 2719,22719, 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))), - Iron ( 32, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |8 |32|64|128 , 200, 200, 200, 0, "Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Fe , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Lanthanum ( 64, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Lead ( 89, TextureSet.SET_DULL , 8.0F, 64, 1, 1|2 |8 |32|64|128 , 140, 100, 140, 0, "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))), - Lithium ( 6, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |32 , 225, 220, 255, 0, "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))), - Lutetium ( 78, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Magic (-128, TextureSet.SET_SHINY , 8.0F, 5120, 5, 1|2|4|8|16|32|64|128 , 100, 0, 200, 0, "Magic" , 5, 32, 5000, 0, false, false, 7, 1, 1, Dyes.dyePurple , Element.Ma , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 4))), - Magnesium ( 18, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 200, 200, 0, "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))), - Manganese ( 31, TextureSet.SET_DULL , 7.0F, 512, 2, 1|2 |8 |32|64 , 250, 250, 250, 0, "Manganese" , 0, 0, 1519, 0, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Mn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Mercury ( 87, TextureSet.SET_SHINY , 1.0F, 0, 0, 16|32 , 255, 220, 220, 0, "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))), - Molybdenum ( 48, TextureSet.SET_SHINY , 7.0F, 512, 2, 1|2 |8 |32|64 , 180, 180, 220, 0, "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))), - Neodymium ( 67, TextureSet.SET_METALLIC , 7.0F, 512, 2, 1|2 |8 |32|64|128 , 100, 100, 100, 0, "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))), - Neutronium ( 129, TextureSet.SET_DULL , 24.0F, 655360, 6, 1|2 |8 |32|64|128 , 250, 250, 250, 0, "Neutronium" , 0, 0, 10000,29000, 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))), - Nickel ( 34, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |32|64|128 , 200, 200, 250, 0, "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))), - Niobium ( 47, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 190, 180, 200, 0, "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))), - Nitrogen ( 12, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 150, 200, 240, "Nitrogen" , 0, 0, 63, 0, false, true, 2, 1, 1, Dyes.dyeCyan , Element.N , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Osmium ( 83, TextureSet.SET_METALLIC , 16.0F, 1280, 4, 1|2 |8 |32|64|128 , 50, 50, 255, 0, "Osmium" , 0, 0, 3306,23306, 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))), - Oxygen ( 13, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 100, 200, 240, "Oxygen" , 0, 0, 54, 0, false, true, 1, 1, 1, Dyes.dyeWhite , Element.O , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1))), - Palladium ( 52, TextureSet.SET_SHINY , 8.0F, 512, 2, 1|2 |8 |32|64|128 , 128, 128, 128, 0, "Palladium" , 0, 0, 1828, 1828, true, false, 4, 1, 1, Dyes.dyeGray , Element.Pd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Phosphor ( 21, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 0, 0, "Phosphor" , 0, 0, 317, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.P , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 2), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), - Platinum ( 85, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 200, 0, "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))), - Plutonium ( 100, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 240, 50, 50, 0, "Plutonium 244" , 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))), - Plutonium241 ( 101, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 250, 70, 70, 0, "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))), - Potassium ( 25, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |32 , 250, 250, 250, 0, "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))), - Praseodymium ( 66, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Promethium ( 68, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Radon ( 93, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 0, 255, 240, "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))), - Rubidium ( 43, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 240, 30, 30, 0, "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))), - Samarium ( 69, TextureSet.SET_MAGNETIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Samarium" , 0, 0, 1345, 1345, true, false, 4, 1, 1, Dyes._NULL , 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))), - Scandium ( 27, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Silicon ( 20, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 60, 60, 80, 0, "Silicon" , 0, 0, 1687, 1687, 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))), - Silver ( 54, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |32|64|128 , 220, 220, 255, 0, "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))), - Sodium ( 17, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 0, 0, 150, 0, "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))), - Strontium ( 44, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 200, 0, "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))), - Sulfur ( 22, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 0, 0, "Sulfur" , 0, 0, 388, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.S , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Tantalum ( 80, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tantalum" , 0, 0, 3290, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Ta , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VINCULUM, 1))), - Tellurium ( 59, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Terbium ( 72, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Thaumium ( 330, TextureSet.SET_METALLIC , 12.0F, 256, 3, 1|2 |64|128 , 150, 100, 200, 0, "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))), - Thorium ( 96, TextureSet.SET_SHINY , 6.0F, 512, 2, 1|2 |8 |32|64 , 0, 30, 0, 0, "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))), - Thulium ( 76, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Tin ( 57, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 |8 |32 |128 , 220, 220, 220, 0, "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))), - Titanium ( 28, TextureSet.SET_METALLIC , 7.0F, 1600, 3, 1|2 |8 |32|64|128 , 220, 160, 240, 0, "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))), - Tritium ( 3, TextureSet.SET_METALLIC , 1.0F, 0, 2, 16|32 , 255, 0, 0, 240, "Tritium" , 0, 0, 14, 0, false, true, 10, 1, 1, Dyes.dyeRed , Element.T , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 4))), - Tungsten ( 81, TextureSet.SET_METALLIC , 7.0F, 2560, 3, 1|2 |8 |32|64|128 , 50, 50, 50, 0, "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))), - Uranium ( 98, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 50, 240, 50, 0, "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))), - Uranium235 ( 97, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 70, 250, 70, 0, "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))), - Vanadium ( 29, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 50, 50, 50, 0, "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))), - Ytterbium ( 77, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "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))), - Yttrium ( 45, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 220, 250, 220, 0, "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))), - Zinc ( 36, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |8 |32 , 250, 240, 240, 0, "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))), - - /** - * The "Random Material" ones. - */ - Organic ( -1, TextureSet.SET_LEAF , 1.0F, 0, 1, false), - AnyCopper ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - AnyBronze ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - AnyIron ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - Crystal ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - Quartz ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 2, false), - Metal ( -1, TextureSet.SET_METALLIC , 1.0F, 0, 2, false), - Unknown ( -1, TextureSet.SET_DULL , 1.0F, 0, 2, false), - Cobblestone ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), - Brick ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), - BrickNether ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), - - /** - * 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. - */ - //TarPitch ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Tar Pitch" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - //Serpentine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Serpentine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - //Flux ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Flux" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Pyrite ( 834, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 40, 0, "Pyrite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), - Ruby ( 502, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 255, 100, 100, 127, "Ruby" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeRed , 1, 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))), - Redstone ( 810, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 200, 0, 0, 0, "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))), - Coal ( 535, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |4|8 , 70, 70, 70, 0, "Coal" , 0, 0, -1, 0, false, false, 2, 2, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - RedstoneAlloy ( 381, TextureSet.SET_METALLIC , 3.0F, 128, 2, 1|2 |64|128 , 181, 51, 51, 0, "Redstone Alloy" , 0, 0, 500,21000, true, false, 1, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Redstone, 1), new MaterialStack(Silicon, 1), new MaterialStack(Coal, 1))), - OsmiumTetroxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Osmium Tetroxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - NitricAcid ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Nitric Acid" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - RubberTreeSap ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Rubber Tree Sap" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - AquaRegia ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Aqua Regia" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - SolutionBlueVitriol ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Blue Vitriol Solution" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - SolutionNickelSulfate( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Nickel Sulfate Solution" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Signalum ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Signalum" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Lumium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Lumium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - PhasedIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - PhasedGold ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Gold" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - HeeEndium ( 770, TextureSet.SET_DULL , 16.0F, 1024, 4, 1|2 |8 |64|128 , 165, 220, 250, 0, "Endium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightBlue ), - Prismarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Prismarine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - GraveyardDirt ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Graveyard Dirt" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Terrasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Terrasteel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - ConductiveIron ( 369, TextureSet.SET_METALLIC , 6.0F, 256, 3, 1|2 |64|128 , 217, 178, 171, 0, "Conductive Iron" , 0, 0, -1,21200, true, false, 4, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(RedstoneAlloy, 1), new MaterialStack(Iron, 1), new MaterialStack(Silver, 1))), - Steel ( 305, TextureSet.SET_METALLIC , 6.0F, 512, 2, 1|2 |64|128 , 128, 128, 128, 0, "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))), - ElectricalSteel ( 365, TextureSet.SET_METALLIC , 6.0F, 512, 2, 1|2 |64|128 , 185, 185, 185, 0, "Electrical Steel" , 0, 0, 1811,21000, true, false, 4, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Coal, 1), new MaterialStack(Silicon, 1))), - TungstenSteel ( 316, TextureSet.SET_METALLIC , 8.0F, 2560, 4, 1|2 |64|128 , 100, 100, 160, 0, "Tungstensteel" , 0, 0, -1,23000, true, false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1))), - DarkAsh ( 816, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 50, 50, 50, 0, "Dark Ashes" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 1))), - Blaze ( 801, TextureSet.SET_POWDER , 2.0F, 16, 1, 1 |64 , 255, 200, 0, 0, "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))), - EnderPearl ( 532, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 108, 220, 200, 0, "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))), - EnderEye ( 533, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 160, 250, 230, 0, "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))), - PulsatingIron ( 378, TextureSet.SET_METALLIC , 6.0F, 256, 3, 1|2 |64|128 , 128, 246, 155, 0, "Pulsating Iron" , 0, 0, -1,21800, true, false, 4, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(EnderPearl, 1), new MaterialStack(RedstoneAlloy, 1))), - Teslatite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 60, 180, 200, 0, "Teslatite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Fluix ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Fluix" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Manasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Manasteel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Tennantite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Tennantite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - DarkThaumium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Dark Thaumium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - //Alfium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Alfium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - //Ryu ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ryu" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Mutation ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Mutation" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Aquamarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Aquamarine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Ender ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ender" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - //ElvenElementium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Elven Elementium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - EnrichedCopper ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Enriched Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - DiamondCopper ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Diamond Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - SodiumPeroxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Sodium Peroxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - IridiumSodiumOxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Iridium Sodium Oxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - PlatinumGroupSludge ( 241, TextureSet.SET_POWDER , 1.0F, 0, 2, 1 , 0, 30, 0, 0, "Platinum Group Sludge" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Fairy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Fairy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Ludicrite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Ludicrite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - //Pokefennium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Pokefennium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Draconium ( 975, TextureSet.SET_SHINY , 20.0F, 32768, 7, 1|2| 8| 32|64|128 , 122, 68, 176, 0, "Draconium" , 0, 0, 5000,25000, true, false, 3, 1, 1, Dyes.dyePink ), - DraconiumAwakened ( 976, TextureSet.SET_SHINY , 40.0F, 65536, 8, 1|2| 8| 32|64|128 , 244, 78, 0, 0, "Awakened Draconium" , 0, 0, 9000,29000, true, false, 3, 1, 1, Dyes.dyeOrange ), - PurpleAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "Purple Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - InfusedTeslatite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "Infused Teslatite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - - /** - * Unknown Material Components. Dead End Section. - */ - Rubracium ( 488, TextureSet.SET_METALLIC , 1.0F, 128, 1, 1|2 |8 |64|128 , 151, 45, 45, 0, "Rubracium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), - Mithril ( 331, TextureSet.SET_SHINY , 14.0F, 64, 3, 1|2 |8 |64 , 255, 255, 210, 0, "Mithril" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Platinum, 2), new MaterialStack(Thaumium, 1))), - Orichalcum ( 966, TextureSet.SET_METALLIC , 4.5F, 3456, 3, 1|2 |8 |64|128 , 84, 122, 56, 0, "Orichalcum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Adamantium ( 319, TextureSet.SET_SHINY , 15.0F, 8192, 5, 1|2 |8 |64|128 , 255, 255, 255, 0, "Adamantium" , 0, 0, 7200, 7200, true, false, 1, 1, 1, Dyes.dyeLightGray ), - Adamite ( -1, TextureSet.SET_NONE , 1.0F, 0, 3, 1 |8 , 255, 255, 255, 0, "Adamite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), - Adluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 |64|128 , 255, 255, 255, 0, "Adluorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue ), - Agate ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Agate" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Alduorite ( 485, TextureSet.SET_SHINY , 3.0F, 384, 2, 1|2 |8 |64|128 , 159, 180, 180, 0, "Alduorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Amber ( 514, TextureSet.SET_RUBY , 4.0F, 128, 2, 1 |4|8 |64 , 255, 128, 0, 127, "Amber" , 5, 3, -1, 0, false, true, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Ammonium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ammonium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Amordrine ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Amordrine" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Andesite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Andesite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Angmallen ( 958, TextureSet.SET_METALLIC , 10.0F, 128, 2, 1|2 |8 |64 , 215, 225, 138, 0, "Angmallen" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Ardite ( 382, TextureSet.SET_METALLIC , 18.0F, 1024, 4, 1|2 |8 |32|64|128 , 250, 129, 0, 0, "Ardite" , 0, 0, 1600,21600, true, false, 1, 1, 1, Dyes.dyeRed ), - Aredrite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Aredrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Atlarus ( 965, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Atlarus" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Bitumen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Bitumen" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Black ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 0, 0, 0, 0, "Black" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), - Blizz ( 851, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 , 220, 233, 255, 0, "Blizz" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Blueschist ( 852, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Blueschist" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightBlue ), - Bluestone ( 813, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bluestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue ), - Bloodstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bloodstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), - BloodInfusedIron ( 977, TextureSet.SET_METALLIC , 10.0F, 384, 2, 1|2 |64|128 , 69, 9, 10, 0, "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))), - //Blutonium ( -1, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 , 0, 0, 255, 0, "Blutonium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue ), - Carmot ( 962, TextureSet.SET_METALLIC , 16.0F, 128, 1, 1|2 |8 |64 , 217, 205, 140, 0, "Carmot" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Celenegil ( 964, TextureSet.SET_METALLIC , 10.0F, 4096, 2, 1|2 |8 |64 , 148, 204, 72, 0, "Celenegil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - CertusQuartz ( 516, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "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))), - Ceruclase ( 952, TextureSet.SET_METALLIC , 6.0F, 1280, 2, 1|2 |8 |64|128 , 140, 189, 208, 0, "Ceruclase" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue ), - Citrine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Citrine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - CobaltHexahydrate ( 853, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 80, 80, 250, 0, "Cobalt Hexahydrate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue ), - ConstructionFoam ( 854, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |16 , 128, 128, 128, 0, "Construction Foam" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), - Chert ( 857, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chert" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), - Chimerite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chimerite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Coral ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 128, 255, 0, "Coral" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - CrudeOil ( 858, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 10, 10, 10, 0, "Crude Oil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - Chrysocolla ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chrysocolla" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - CrystalFlux ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 3, 1 |4 , 100, 50, 100, 0, "Flux Crystal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - //Cyanite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Cyanite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan ), - Dacite ( 859, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dacite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightGray ), - DarkIron ( 342, TextureSet.SET_DULL , 7.0F, 384, 3, 1|2 |8 |64 , 55, 40, 60, 0, "Dark Iron" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyePurple ), - DarkStone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dark Stone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), - Demonite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Demonite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), - Desh ( 884, TextureSet.SET_DULL , 20.0F, 1280, 4, 1|2 |8 |64|128 , 40, 40, 40, 0, "Desh" , 0, 0, 2500,22500, true, false, 1, 1, 1, Dyes.dyeBlack ), - Desichalkos ( -1, TextureSet.SET_NONE , 6.0F, 1280, 3, 1|2 |8 |64 , 255, 255, 255, 0, "Desichalkos" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Dilithium ( 515, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 255, 250, 250, 127, "Dilithium" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite ), - Draconic ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Draconic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), - Drulloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|16 , 255, 255, 255, 0, "Drulloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), - Duranium ( 328, TextureSet.SET_METALLIC , 16.0F, 5120, 5, 1|2 |64 , 255, 255, 255, 0, "Duranium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), - Eclogite ( 860, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Eclogite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - ElectrumFlux ( 320, TextureSet.SET_SHINY , 16.0F, 512, 3, 1|2 |64 , 255, 255, 120, 0, "Fluxed Electrum" , 0, 0, 9000,29000, true, false, 1, 1, 1, Dyes.dyeYellow ), - Emery ( 861, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Emery" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - EnderiumBase ( 380, TextureSet.SET_DULL , 16.0F, 768, 4, 1|2 |64|128 , 72, 119, 153, 0, "Enderium Base" , 0, 0, 3600,23600, 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))), - Enderium ( 321, TextureSet.SET_DULL , 8.0F, 1500, 3, 1|2 |64|128 , 89, 145, 135, 0, "Enderium" , 0, 0, 4500,24500, 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))), - Energized ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Energized" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Epidote ( 862, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Epidote" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), - Eximite ( 959, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |8 |64 , 124, 90, 150, 0, "Eximite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - FierySteel ( 346, TextureSet.SET_FIERY , 8.0F, 256, 3, 1|2 |64|128 , 64, 0, 0, 0, "Fiery Steel" , 5, 2048, 1811,21800, 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))), - Firestone ( 347, TextureSet.SET_QUARTZ , 6.0F, 1280, 3, 1 |4|8 |64 , 200, 20, 0, 0, "Firestone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), - Fluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Fluorite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen ), - FoolsRuby ( 512, TextureSet.SET_RUBY , 1.0F, 0, 2, 1 |4|8 , 255, 100, 100, 127, "Ruby" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Force ( 521, TextureSet.SET_DIAMOND , 10.0F, 128, 3, 1|2|4|8 |64|128 , 255, 255, 0, 0, "Force" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 5))), - Forcicium ( 518, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcicium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Forcillium ( 519, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcillium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Gabbro ( 863, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gabbro" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), - Glowstone ( 811, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |16 , 255, 255, 0, 0, "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))), - Gneiss ( 864, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gneiss" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), - Graphite ( 865, TextureSet.SET_DULL , 5.0F, 32, 2, 1 |8|16 |64 , 128, 128, 128, 0, "Graphite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Graphene ( 819, TextureSet.SET_DULL , 6.0F, 32, 1, 1 |64 , 128, 128, 128, 0, "Graphene" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), - Greenschist ( 866, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Green Schist" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), - Greenstone ( 867, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greenstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), - //Greywacke ( 868, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greywacke" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), - Haderoth ( 963, TextureSet.SET_METALLIC , 10.0F, 3200, 3, 1|2 |8 |64 , 119, 52, 30, 0, "Haderoth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Hematite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Hematite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Hepatizon ( 957, TextureSet.SET_METALLIC , 12.0F, 128, 2, 1|2 |8 |64 , 117, 94, 117, 0, "Hepatizon" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - HSLA ( 322, TextureSet.SET_METALLIC , 6.0F, 500, 3, 1|2 |64|128 , 128, 128, 128, 0, "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))), - Ignatius ( 950, TextureSet.SET_METALLIC , 12.0F, 512, 2, 1|2 , 255, 169, 83, 0, "Ignatius" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Infernal ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Infernal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Infuscolium ( 490, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |64 , 146, 33, 86, 0, "Infuscolium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - InfusedGold ( 323, TextureSet.SET_SHINY , 12.0F, 64, 3, 1|2 |8 |64|128 , 255, 200, 60, 0, "Infused Gold" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), - InfusedAir ( 540, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 255, 0, 0, "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))), - InfusedFire ( 541, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 0, 0, "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))), - InfusedEarth ( 542, TextureSet.SET_SHARDS , 8.0F, 256, 3, 1 |4|8 |64|128 , 0, 255, 0, 0, "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))), - InfusedWater ( 543, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 0, 0, 255, 0, "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))), - InfusedEntropy ( 544, TextureSet.SET_SHARDS , 32.0F, 64, 4, 1 |4|8 |64|128 , 62, 62, 62, 0, "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))), - InfusedOrder ( 545, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 252, 252, 252, 0, "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))), - InfusedVis ( -1, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 255, 0, "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))), - InfusedDull ( -1, TextureSet.SET_SHARDS , 32.0F, 64, 3, 1 |4|8 |64|128 , 100, 100, 100, 0, "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))), - Inolashite ( 954, TextureSet.SET_NONE , 8.0F, 2304, 3, 1|2 |8 |64 , 148, 216, 187, 0, "Inolashite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), - Invisium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Invisium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Jade ( 537, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |4|8 |64 , 0, 100, 0, 0, "Jade" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Jasper ( 511, TextureSet.SET_EMERALD , 1.0F, 0, 2, 1 |4|8 |64 , 200, 80, 80, 100, "Jasper" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Kalendrite ( 953, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 , 170, 91, 189, 0, "Kalendrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Komatiite ( 869, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Komatiite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Lava ( 700, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 64, 0, 0, "Lava" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), - Lemurite ( 486, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 , 219, 219, 219, 0, "Lemurite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Limestone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Limestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Lodestone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Lodestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Luminite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Luminite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), - Magma ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 64, 0, 0, "Magma" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), - Mawsitsit ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Mawsitsit" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Mercassium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Mercassium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - MeteoricIron ( 340, TextureSet.SET_METALLIC , 6.0F, 384, 3, 1|2 |8 |64 , 100, 50, 80, 0, "Meteoric Iron" , 0, 0, 1811, 1000, true, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - MeteoricSteel ( 341, TextureSet.SET_METALLIC , 6.0F, 768, 4, 1|2 |64 , 50, 25, 40, 0, "Meteoric Steel" , 0, 0, 1811, 1000, true, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Meteorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 80, 35, 60, 0, "Meteorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), - Meutoite ( 487, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 95, 82, 105, 0, "Meutoite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Migmatite ( 872, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Migmatite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Mimichite ( -1, TextureSet.SET_GEM_VERTICAL , 1.0F, 0, 1, 1 |4|8 , 255, 255, 255, 0, "Mimichite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Moonstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "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))), - Naquadah ( 324, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8 |64 , 50, 50, 50, 0, "Naquadah" , 0, 0, 5400,25400, true, false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - NaquadahAlloy ( 325, TextureSet.SET_METALLIC , 8.0F, 5120, 5, 1|2 |64|128 , 40, 40, 40, 0, "Naquadah Alloy" , 0, 0, 7200,27200, true, false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - NaquadahEnriched ( 326, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8 |64 , 50, 50, 50, 0, "Enriched Naquadah" , 0, 0, 4500,24500, 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))), - Naquadria ( 327, TextureSet.SET_SHINY , 1.0F, 512, 4, 1|2 |8 |64 , 30, 30, 30, 0, "Naquadria" , 0, 0, 9000,29000, 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))), - Nether ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Nether" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - NetherBrick ( 814, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 100, 0, 0, 0, "Nether Brick" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), - NetherQuartz ( 522, TextureSet.SET_QUARTZ , 1.0F, 32, 1, 1 |4|8 |64 , 230, 210, 210, 0, "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))), - NetherStar ( 506, TextureSet.SET_NETHERSTAR , 6.0F, 5120, 4, 1| 4|8 |64|128 , 255, 255, 255, 0, "Nether Star" , 5, 50000, -1, 0, false, false, 15, 1, 1, Dyes.dyeWhite ), - ObsidianFlux ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Fluxed Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), - Oilsands ( 878, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 10, 10, 10, 0, "Oilsands" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Onyx ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Onyx" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Osmonium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Osmonium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue ), - Oureclase ( 961, TextureSet.SET_METALLIC , 6.0F, 1920, 3, 1|2 |8 |64 , 183, 98, 21, 0, "Oureclase" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Painite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Painite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Peanutwood ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Peanut Wood" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Petroleum ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Petroleum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Pewter ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Pewter" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Phoenixite ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Phoenixite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Potash ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Potash" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Prometheum ( 960, TextureSet.SET_METALLIC , 8.0F, 512, 1, 1|2 |8 |64 , 90, 129, 86, 0, "Prometheum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Quartzite ( 523, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |4|8 , 210, 230, 210, 0, "Quartzite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), - Quicklime ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Quicklime" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Randomite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Randomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), -// RefinedGlowstone (-326, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "Refined Glowstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), -// RefinedObsidian (-327, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Refined Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), - Rhyolite ( 875, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Rhyolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), -// RyuDragonRyder ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Ryu Dragon Ryder" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Sand ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Sanguinite ( 955, TextureSet.SET_METALLIC , 3.0F, 4480, 4, 1|2 |8 , 185, 0, 0, 0, "Sanguinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Siltstone ( 876, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Siltstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - //Spinel ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Spinel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - //Starconium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Starconium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - //Sugilite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Sugilite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Sunstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "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))), - //Tar ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 10, 10, 10, 0, "Tar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - Tartarite ( 956, TextureSet.SET_METALLIC , 20.0F, 7680, 5, 1|2 |8 , 255, 118, 60, 0, "Tartarite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Tapazite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tapazite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen ), - //Thyrium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Thyrium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Tourmaline ( -1, TextureSet.SET_RUBY , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tourmaline" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - Tritanium ( 329, TextureSet.SET_METALLIC , 20.0F, 10240, 6, 1|2 |64 , 255, 255, 255, 0, "Tritanium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 2))), - Turquoise ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Turquoise" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - UUAmplifier ( 721, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 96, 0, 128, 0, "UU-Amplifier" , 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink ), - UUMatter ( 703, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 128, 0, 196, 0, "UU-Matter" , 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink ), - Void ( 970, TextureSet.SET_METALLIC , 16.0F, 512, 4, 1|2 |64|128 , 28, 6, 57, 0, "Void" , 5, 1500, -1, 0, false, true, 5, 2, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), - Vulcanite ( 489, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |64|128 , 255, 132, 72, 0, "Vulcanite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Vyroxeres ( 951, TextureSet.SET_METALLIC , 9.0F, 768, 3, 1|2 |8 |64 , 85, 224, 1, 0, "Vyroxeres" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), - Wimalite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Wimalite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), - //Yellorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Yellorite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), - //Yellorium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Yellorium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), - Zectium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Zectium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), - - /** - * Circuitry, Batteries and other Technical things - */ - Primitive ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Primitive" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Basic ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Basic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 2))), - Good ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Good" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), - Advanced ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Advanced" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 4))), - Data ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Data" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 5))), - Elite ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Elite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 6))), - Master ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Master" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 7))), - Ultimate ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Ultimate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 8))), - Superconductor ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Superconductor" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 8))), - Infinite ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Infinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), - - /** - * Not possible to determine exact Components - */ - Antimatter ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "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))), - BioFuel ( 705, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Biofuel" , 0, 6, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), - Biomass ( 704, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 255, 0, 0, "Biomass" , 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), - Cheese ( 894, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |8 , 255, 255, 0, 0, "Cheese" , 0, 0, 320, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Chili ( 895, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Chili" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), - Chocolate ( 886, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Chocolate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), - Cluster ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 127, "Cluster" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite ), - CoalFuel ( 710, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 50, 50, 70, 0, "Coalfuel" , 0, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - Cocoa ( 887, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Cocoa" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), - Coffee ( 888, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 75, 0, 0, "Coffee" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), - Creosote ( 712, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 128, 64, 0, 0, "Creosote" , 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), - Ethanol ( 706, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Ethanol" , 0, 192, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), - FishOil ( 711, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "Fish Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.CORPUS, 2))), - Fuel ( 708, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Diesel" , 0, 400, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Glue ( 726, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "Refined Glue" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.LIMUS, 2))), - Gunpowder ( 800, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 128, 128, 128, 0, "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))), - FryingOilHot ( 727, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "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))), - Honey ( 725, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 210, 200, 0, 0, "Honey" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Leather ( -1, TextureSet.SET_ROUGH , 1.0F, 0, 0, 1 , 150, 150, 80, 127, "Leather" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), - LimePure ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Pure Lime" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime ), - Lubricant ( 724, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "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))), - McGuffium239 ( 999, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 50, 150, 0, "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))), - MeatRaw ( 892, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 255, 100, 100, 0, "Raw Meat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink ), - MeatCooked ( 893, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 60, 20, 0, "Cooked Meat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink ), - Milk ( 885, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |16 , 254, 254, 254, 0, "Milk" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 2))), - Mud ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Mud" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), - Oil ( 707, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Oil" , 3, 20, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - Paper ( 879, TextureSet.SET_PAPER , 1.0F, 0, 0, 1 , 250, 250, 250, 0, "Paper" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.COGNITIO, 1))), - Peat ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "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))), - Quantum ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Quantum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite ), - RareEarth ( 891, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 128, 128, 100, 0, "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))), - Red ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 0, 0, 0, "Red" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), - Reinforced ( 383, TextureSet.SET_METALLIC , 7.0F, 480, 4, 1|2 |64|128 , 105, 141, 165, 0, "Reinforced" , 0, 0, -1,21700, true, false, 1, 1, 1, Dyes.dyeBlue ), - SeedOil ( 713, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - SeedOilHemp ( 722, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Hemp Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - SeedOilLin ( 723, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Lin Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - Stone ( 299, TextureSet.SET_ROUGH , 4.0F, 32, 1, 1 |64|128 , 205, 205, 205, 0, "Stone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), - TNT ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "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))), - Unstable ( 396, TextureSet.SET_SHINY , 1.0F, 0, 4, 1 , 220, 220, 220, 127, "Unstable" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), - Unstableingot ( -1, TextureSet.SET_NONE , 1.0F, 0, 4, 0 , 255, 255, 255, 127, "Unstable" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), - Wheat ( 881, TextureSet.SET_POWDER , 1.0F, 0, 0, 1 , 255, 255, 196, 0, "Wheat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), - - /** - * TODO: This - */ - AluminiumBrass ( -1, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 255, 255, 255, 0, "Aluminium Brass" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Osmiridium ( 317, TextureSet.SET_METALLIC , 7.0F, 1600, 3, 1|2 |64|128 , 100, 100, 255, 0, "Osmiridium" , 0, 0, 3500,23500, true, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Iridium, 3), new MaterialStack(Osmium, 1))), - Sunnarium ( 318, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 |64|128 , 255, 255, 0, 0, "Sunnarium" , 0, 0, 4200,24200, true, false, 1, 1, 1, Dyes.dyeYellow ), - Endstone ( 808, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Endstone" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeYellow ), - Netherrack ( 807, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Netherrack" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeRed ), - Ash ( 815, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 150, 150, 150, 0, "Ashes" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 1))), - SoulSand ( -1, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 255, 255, 255, 0, "Soulsand" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBrown ), - Soularium ( 379, TextureSet.SET_METALLIC , 8.0F, 256, 2, 1|2 |64|128 , 65, 46, 29, 0, "Soularium" , 0, 0, 800,21000, true, false, 3, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(SoulSand, 1), new MaterialStack(Gold, 1), new MaterialStack(Ash, 1))), - /** - * First Degree Compounds - */ - Methane ( 715, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Methane" , 1, 60, -1, 0, false, false, 3, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4))), - CarbonDioxide ( 497, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "Carbon Dioxide" , 0, 0, 25, 1, false, true, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 2))), - NobleGases ( 496, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "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))), - Air ( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "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))), - LiquidAir ( 495, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "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))), - Almandine ( 820, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 255, 0, 0, 0, "Almandine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Iron, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - Andradite ( 821, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 0, 0, "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))), - AnnealedCopper ( 345, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |128 , 255, 120, 20, 0, "Annealed Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1))), - Asbestos ( 946, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "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 - BandedIron ( 917, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 145, 90, 90, 0, "Banded Iron" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Oxygen, 3))), - BatteryAlloy ( 315, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 156, 124, 160, 0, "Battery Alloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Lead, 4), new MaterialStack(Antimony, 1))), - BlueTopaz ( 513, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 0, 0, 255, 127, "Blue Topaz" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue , 1, 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))), - Bone ( 806, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Bone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Calcium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MORTUUS, 2), new TC_AspectStack(TC_Aspects.CORPUS, 1))), - Brass ( 301, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 255, 180, 0, 0, "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))), - Bronze ( 300, TextureSet.SET_METALLIC , 6.0F, 192, 2, 1|2 |64|128 , 255, 128, 0, 0, "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))), - BrownLimonite ( 930, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "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) - Calcite ( 823, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 250, 230, 220, 0, "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))), - Cassiterite ( 824, TextureSet.SET_METALLIC , 1.0F, 0, 1, 8 , 220, 220, 220, 0, "Cassiterite" , 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), - CassiteriteSand ( 937, TextureSet.SET_SAND , 1.0F, 0, 1, 8 , 220, 220, 220, 0, "Cassiterite Sand" , 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), - Chalcopyrite ( 855, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 160, 120, 40, 0, "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))), - //Chalk ( 856, TextureSet.SET_FINE , 1.0F, 0, 2, 1 , 250, 250, 250, 0, "Chalk" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), - Charcoal ( 536, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |4 , 100, 70, 70, 0, "Charcoal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Chromite ( 825, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 35, 20, 15, 0, "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))), - ChromiumDioxide ( 361, TextureSet.SET_DULL , 11.0F, 256, 3, 1|2 , 230, 200, 200, 0, "Chromium Dioxide" , 0, 0, 650, 650, false, false, 5, 3, 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))), - Cinnabar ( 826, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 0, 0, 0, "Cinnabar" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Mercury, 1), new MaterialStack(Sulfur, 1))), - Water ( 701, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "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))), - Clay ( 805, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 200, 200, 220, 0, "Clay" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2),new MaterialStack(Water,6))), - Cobaltite ( 827, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 80, 80, 250, 0, "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))), - Cooperite ( 828, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 255, 255, 200, 0, "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))), - Cupronickel ( 310, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |64 , 227, 150, 128, 0, "Cupronickel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Nickel, 1))), - DeepIron ( 829, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 150, 140, 140, 0, "Deep Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - Diamond ( 500, TextureSet.SET_DIAMOND , 8.0F, 1280, 3, 1 |4|8 |64|128 , 200, 255, 255, 127, "Diamond" , 0, 0, -1, 0, false, true, 5, 64, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 4))), - Electrum ( 303, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64|128 , 255, 255, 100, 0, "Electrum" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Gold, 1))), - Electrotine ( 812, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |8 , 60, 180, 200, 0, "Electrotine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan , 0, Arrays.asList(new MaterialStack(Redstone, 1), new MaterialStack(Electrum, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 2))), - Emerald ( 501, TextureSet.SET_EMERALD , 7.0F, 256, 2, 1 |4|8 |64 , 80, 255, 80, 127, "Emerald" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeGreen , 1, 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))), - EnhancedGalgadorian (385, TextureSet.SET_METALLIC , 32.0F, 7200, 5, 1|2| 64|128 , 152, 93, 133, 0, "Enhanced Galgadorian" , 0, 0, 4500,24500, true, false, 1, 1, 1, Dyes.dyePink ), - FreshWater ( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Fresh 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))), - Galena ( 830, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 100, 60, 100, 0, "Galena" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Lead, 3), new MaterialStack(Silver, 3), new MaterialStack(Sulfur, 2))), - Galgadorian ( 384, TextureSet.SET_METALLIC , 16.0F, 3600, 3, 1|2| 64|128 , 154, 105, 119, 0, "Galgadorian" , 0, 0, 3000,23000, true, false, 1, 1, 1, Dyes.dyePink ), - Garnierite ( 906, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 50, 200, 70, 0, "Garnierite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(Oxygen, 1))), - Glyceryl ( 714, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 150, 150, 0, "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))), - GreenSapphire ( 504, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 200, 130, 127, "Green Sapphire" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeCyan , 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))), - Grossular ( 831, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Grossular" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - HolyWater ( 729, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "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))), - Ice ( 702, TextureSet.SET_SHINY , 1.0F, 0, 0, 1| 16 , 200, 200, 255, 0, "Ice" , 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.GELUM, 2))), - Ilmenite ( 918, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 70, 55, 50, 0, "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))), - Rutile ( 375, TextureSet.SET_GEM_HORIZONTAL , 1.0F, 0, 2, 1 |8 , 212, 13, 92, 0, "Rutile" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Oxygen, 2))), - Bauxite ( 822, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "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))), - Titaniumtetrachloride( 376, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 212, 13, 92, 0, "Titaniumtetrachloride" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Chlorine, 2))), - Magnesiumchloride ( 377, TextureSet.SET_DULL , 1.0F, 0, 2, 1|16 , 212, 13, 92, 0, "Magnesiumchloride" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Chlorine, 2))), - Invar ( 302, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |64|128 , 180, 180, 120, 0, "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))), - //IronCompressed ( -1, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 128, 128, 128, 0, "Compressed Iron" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Iron, 1))), - Kanthal ( 312, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 194, 210, 223, 0, "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))), - Lazurite ( 524, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 100, 120, 255, 0, "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))), - Magnalium ( 313, TextureSet.SET_DULL , 6.0F, 256, 2, 1|2 |64|128 , 200, 190, 255, 0, "Magnalium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Aluminium, 2))), - Magnesite ( 908, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 250, 250, 180, 0, "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))), - Magnetite ( 870, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 30, 30, 30, 0, "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))), - Molybdenite ( 942, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 25, 25, 25, 0, "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) - Nichrome ( 311, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 205, 206, 246, 0, "Nichrome" , 0, 0, 2700,22700, true, false, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Nickel, 4), new MaterialStack(Chrome, 1))), - NiobiumNitride ( 359, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 41, 29, 0, "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 - NiobiumTitanium ( 360, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 29, 41, 0, "Niobium-Titanium" , 0, 0, 4500,24500, true, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Titanium, 1))), - NitroCarbon ( 716, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 75, 100, 0, "Nitro-Carbon" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Carbon, 1))), - NitrogenDioxide ( 717, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 100, 175, 255, 0, "Nitrogen Dioxide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2))), - Obsidian ( 804, TextureSet.SET_DULL , 1.0F, 0, 3, 1 , 80, 50, 100, 0, "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))), - DarkSteel ( 364, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |64|128 , 80, 70, 80, 0, "Dark Steel" , 0, 0, -1,21800, true, false, 3, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(ElectricalSteel, 1), new MaterialStack(Coal, 1), new MaterialStack(Obsidian, 1))), - Phosphate ( 833, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8|16 , 255, 255, 0, 0, "Phosphate" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Phosphor, 1), new MaterialStack(Oxygen, 4))), - PigIron ( 307, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 200, 180, 180, 0, "Pig Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1))), - Plastic ( 874, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 200, 200, 200, 0, "Polyethylene" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Epoxid ( 470, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 200, 140, 20, 0, "Epoxid" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Silicone ( 471, TextureSet.SET_DULL , 3.0F, 128, 1, 1|2 |64|128 , 220, 220, 220, 0, "Polysiloxane" , 0, 0, 900, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Polycaprolactam ( 472, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 50, 50, 50, 0, "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)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Polytetrafluoroethylene( 473, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 100, 100, 100, 0, "Polytetrafluoroethylene" , 0, 0, 1400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Fluorine, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Powellite ( 883, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 0, 0, "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))), - Pumice ( 926, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 185, 185, 0, "Pumice" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Stone, 1))), - Pyrolusite ( 943, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 150, 150, 170, 0, "Pyrolusite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Oxygen, 2))), - Pyrope ( 835, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 120, 50, 100, 0, "Pyrope" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - RockSalt ( 944, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 240, 200, 200, 0, "Rock Salt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Chlorine, 1))), - Rubber ( 880, TextureSet.SET_SHINY , 1.5F, 16, 0, 1|2 |64|128 , 0, 0, 0, 0, "Rubber" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - RawRubber ( 896, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 204, 199, 137, 0, "Raw Rubber" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Salt ( 817, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Salt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Chlorine, 1))), - Saltpeter ( 836, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "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))), - SaltWater ( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Salt 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))), - Sapphire ( 503, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 100, 200, 127, "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))), - Scheelite ( 910, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 140, 20, 0, "Scheelite" , 0, 0, 2500, 2500, false, false, 4, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Calcium, 2), new MaterialStack(Oxygen, 4))), - SiliconDioxide ( 837, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |16 , 200, 200, 200, 0, "Silicon Dioxide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 2))), - Snow ( 728, TextureSet.SET_FINE , 1.0F, 0, 0, 1| 16 , 250, 250, 250, 0, "Snow" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 1))), - Sodalite ( 525, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 20, 20, 255, 0, "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))), - SodiumPersulfate ( 718, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Sodium Persulfate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - SodiumSulfide ( 719, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Sodium Sulfide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1))), - HydricSulfide ( 460, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Hydrogen Sulfide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1))), - - OilHeavy ( 730, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Heavy Oil" , 3, 40, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - OilMedium ( 731, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Raw Oil" , 3, 30, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - OilLight ( 732, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Light Oil" , 3, 20, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - - NatruralGas ( 733, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Natural Gas" , 1, 20, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), - SulfuricGas ( 734, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Sulfuric Gas" , 1, 25, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), - Gas ( 735, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Refinery Gas" , 1, 160, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), - SulfuricNaphtha ( 736, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Sulfuric Naphtha" , 1, 40, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - SulfuricLightFuel ( 737, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Sulfuric Light Fuel" , 0, 40, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - SulfuricHeavyFuel ( 738, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Sulfuric Heavy Fuel" , 3, 40, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - Naphtha ( 739, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Naphtha" , 1, 320, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - LightFuel ( 740, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Light Fuel" , 0, 320, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - HeavyFuel ( 741, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Heavy Fuel" , 3, 240, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - LPG ( 742, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "LPG" , 1, 320, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - CrackedLightFuel ( 743, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Cracked Light Fuel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - CrackedHeavyFuel ( 744, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Cracked Heavy Fuel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), - - SolderingAlloy ( 314, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 220, 220, 230, 0, "Soldering Alloy" , 0, 0, 400, 400, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 9), new MaterialStack(Antimony, 1))), - Spessartine ( 838, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 100, 100, 0, "Spessartine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Manganese, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - Sphalerite ( 839, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sphalerite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Sulfur, 1))), - StainlessSteel ( 306, TextureSet.SET_SHINY , 7.0F, 480, 4, 1|2 |64|128 , 200, 200, 220, 0, "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))), - Stibnite ( 945, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 70, 70, 70, 0, "Stibnite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Antimony, 2), new MaterialStack(Sulfur, 3))), - SulfuricAcid ( 720, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 128, 0, 0, "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))), - Tanzanite ( 508, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 64, 0, 200, 127, "Tanzanite" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyePurple , 1, 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))), - Tetrahedrite ( 840, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 200, 32, 0, 0, "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 - TinAlloy ( 363, TextureSet.SET_METALLIC , 6.5F, 96, 2, 1|2 |64|128 , 200, 200, 200, 0, "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))), - Topaz ( 507, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 255, 128, 0, 127, "Topaz" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeOrange , 1, 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))), - Tungstate ( 841, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 55, 50, 35, 0, "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))), - Ultimet ( 344, TextureSet.SET_SHINY , 9.0F, 2048, 4, 1|2 |64|128 , 180, 180, 230, 0, "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 - Uraninite ( 922, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 35, 35, 35, 0, "Uraninite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Uranium, 1), new MaterialStack(Oxygen, 2))), - Uvarovite ( 842, TextureSet.SET_DIAMOND , 1.0F, 0, 2, 1 |8 , 180, 255, 180, 0, "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))), - VanadiumGallium ( 357, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 , 128, 128, 140, 0, "Vanadium-Gallium" , 0, 0, 4500,24500, true, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Vanadium, 3), new MaterialStack(Gallium, 1))), - Wood ( 809, TextureSet.SET_WOOD , 2.0F, 16, 0, 1|2 |64|128 , 100, 50, 0, 0, "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)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2))), - WroughtIron ( 304, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |64|128 , 200, 180, 180, 0, "Wrought Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Iron, 1))), - Wulfenite ( 882, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 255, 128, 0, 0, "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))), - YellowLimonite ( 931, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 200, 0, 0, "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 Ni and Co - YttriumBariumCuprate( 358, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 , 80, 64, 70, 0, "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))), - - /** - * Second Degree Compounds - */ - WoodSealed ( 889, TextureSet.SET_WOOD , 3.0F, 24, 0, 1|2 |64|128 , 80, 40, 0, 0, "Sealed Wood" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Wood, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.FABRICO, 1))), - LiveRoot ( 832, TextureSet.SET_WOOD , 1.0F, 0, 1, 1 , 220, 200, 0, 0, "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))), - IronWood ( 338, TextureSet.SET_WOOD , 6.0F, 384, 2, 1|2 |64|128 , 150, 140, 110, 0, "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))), - Glass ( 890, TextureSet.SET_GLASS , 1.0F, 4, 0, 1 |4 , 250, 250, 250, 220, "Glass" , 0, 0, 1500, 0, false, true, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Perlite ( 925, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 30, 20, 30, 0, "Perlite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1))), - Borax ( 941, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "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(Water, 10), new MaterialStack(Oxygen, 7))), - Lignite ( 538, TextureSet.SET_LIGNITE , 1.0F, 0, 0, 1 |4|8 , 100, 70, 70, 0, "Lignite Coal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 1))), - Olivine ( 505, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 150, 255, 150, 127, "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))), - Opal ( 510, TextureSet.SET_OPAL , 7.0F, 256, 2, 1 |4|8 |64 , 0, 0, 255, 0, "Opal" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Amethyst ( 509, TextureSet.SET_FLINT , 7.0F, 256, 3, 1 |4|8 |64 , 210, 50, 210, 127, "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))), - Lapis ( 526, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 70, 70, 220, 0, "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)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 1))), - Flint ( 802, TextureSet.SET_FLINT , 2.5F, 64, 1, 1 |64 , 0, 32, 64, 0, "Flint" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Diatomite ( 948, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 225, 225, 225, 0, "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))), - VolcanicAsh ( 940, TextureSet.SET_FLINT , 1.0F, 0, 0, 1 , 60, 50, 50, 0, "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))), - Niter ( 531, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |4|8 , 255, 200, 200, 0, "Niter" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Saltpeter, 1))), - Pyrotheum ( 843, TextureSet.SET_FIERY , 1.0F, 0, 1, 1 , 255, 128, 0, 0, "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))), - HydratedCoal ( 818, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 70, 70, 100, 0, "Hydrated Coal" , 0, 0, -1, 0, false, false, 1, 9, 8, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Coal, 8), new MaterialStack(Water, 1))), - Apatite ( 530, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 200, 200, 255, 0, "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)), Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), - Alumite ( -1, TextureSet.SET_METALLIC , 1.5F, 64, 0, 1|2 |64 , 255, 255, 255, 0, "Alumite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Aluminium, 5), new MaterialStack(Iron, 2), new MaterialStack(Obsidian, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), - Manyullyn ( 386, TextureSet.SET_SHINY , 25.0F, 2048, 5, 1|2 |8 |64|128 , 154, 76, 185, 0, "Manyullyn" , 0, 0, 3600,23600, true, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Ardite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), - Shadow ( 368, TextureSet.SET_METALLIC , 32.0F, 8192, 4, 1|2 |8 |64|128 , 16, 3, 66, 0, "Shadow" , 0, 0, 1800, 1800, true, false, 3, 4, 3, Dyes.dyeBlue ), - ShadowIron ( 336, TextureSet.SET_METALLIC , 6.0F, 384, 3, 1|2 |8 |64 , 120, 120, 120, 0, "Shadowiron" , 0, 0, -1, 0, false, false, 3, 4, 3, Dyes.dyeBlack , 3, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Thaumium, 3))), - ShadowSteel ( 337, TextureSet.SET_METALLIC , 6.0F, 768, 4, 1|2 |64 , 90, 90, 90, 0, "Shadowsteel" , 0, 0, -1, 1700, true, false, 4, 4, 3, Dyes.dyeBlack , 3, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Thaumium, 3))), - Steeleaf ( 339, TextureSet.SET_LEAF , 8.0F, 768, 3, 1|2 |64|128 , 50, 127, 50, 0, "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))), - Knightmetal ( 362, TextureSet.SET_METALLIC , 8.0F, 1024, 3, 1|2 |64|128 , 210, 240, 200, 0, "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))), - SterlingSilver ( 350, TextureSet.SET_SHINY , 13.0F, 128, 2, 1|2 |64|128 , 250, 220, 225, 0, "Sterling Silver" , 0, 0, -1, 1700, true, false, 4, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Silver, 4))), - RoseGold ( 351, TextureSet.SET_SHINY , 14.0F, 128, 2, 1|2 |64|128 , 255, 230, 30, 0, "Rose Gold" , 0, 0, -1, 1600, true, false, 4, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Gold, 4))), - BlackBronze ( 352, TextureSet.SET_DULL , 12.0F, 256, 2, 1|2 |64|128 , 100, 50, 125, 0, "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))), - BismuthBronze ( 353, TextureSet.SET_DULL , 8.0F, 256, 2, 1|2 |64|128 , 100, 125, 125, 0, "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))), - BlackSteel ( 334, TextureSet.SET_METALLIC , 6.5F, 768, 3, 1|2 |64 , 100, 100, 100, 0, "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))), - RedSteel ( 348, TextureSet.SET_METALLIC , 7.0F, 896, 4, 1|2 |64 , 140, 100, 100, 0, "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))), - BlueSteel ( 349, TextureSet.SET_METALLIC , 7.5F, 1024, 4, 1|2 |64 , 100, 100, 140, 0, "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))), - DamascusSteel ( 335, TextureSet.SET_METALLIC , 8.0F, 1280, 3, 1|2 |64 , 110, 110, 110, 0, "Damascus Steel" , 0, 0, 2000, 1500, true, false, 4, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Steel, 1))), - EnergeticAlloy ( 366, TextureSet.SET_METALLIC , 12.0F, 1024, 3, 1|2 |64|128 , 255, 170, 81, 0, "Energetic Alloy" , 0, 0, -1,22200, true, false, 3, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(ConductiveIron, 1), new MaterialStack(Gold, 1), new MaterialStack(BlackSteel, 1))), - VibrantAlloy ( 367, TextureSet.SET_METALLIC , 18.0F, 4048, 4, 1|2 |64|128 , 157, 188, 53, 0, "Vibrant Alloy" , 0, 0, 3300,23300, true, false, 4, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(EnergeticAlloy, 1), new MaterialStack(EnderEye, 1), new MaterialStack(Chrome, 1))), - NitroCoalFuel ( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 50, 70, 50, 0, "Nitro-Coalfuel" , 0, 48, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(CoalFuel, 4))), - NitroFuel ( 709, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 200, 255, 0, 0, "Nitro-Diesel" , 0, 720, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(Fuel, 4))), - AstralSilver ( 333, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |64 , 230, 230, 255, 0, "Astral Silver" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Silver, 2), new MaterialStack(Thaumium, 1))), - //Midasium ( 332, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64 , 255, 200, 40, 0, "Midasium" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Gold, 2), new MaterialStack(Thaumium, 1))), - BlueAlloy ( 309, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 100, 180, 255, 0, "Blue Alloy" , 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Electrotine, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3))), - RedAlloy ( 308, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 200, 0, 0, 0, "Red Alloy" , 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Redstone, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), - CobaltBrass ( 343, TextureSet.SET_METALLIC , 8.0F, 256, 2, 1|2 |64|128 , 180, 180, 160, 0, "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))), - Phosphorus ( 534, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |4|8|16 , 255, 255, 0, 0, "Phosphorus" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Phosphate, 2))), - Basalt ( 844, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 30, 20, 20, 0, "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)), Arrays.asList(new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), - GarnetRed ( 527, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 80, 80, 127, "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)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - GarnetYellow ( 528, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 200, 80, 127, "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)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Marble ( 845, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 200, 200, 200, 0, "Marble" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Calcite, 7)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERFODIO, 1))), - Sugar ( 803, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "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))), - Vinteum ( 529, TextureSet.SET_METALLIC , 10.0F, 128, 3, 1|2 |8 |64|128 , 100, 200, 255, 0, "Vinteum" , 5, 32, -1, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Thaumium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), - Vis ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, 0 , 128, 0, 255, 0, "Vis" , 5, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AURAM, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), - Redrock ( 846, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 255, 80, 50, 0, "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))), - PotassiumFeldspar ( 847, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 120, 40, 40, 0, "Potassium Feldspar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 8))), - Biotite ( 848, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 , 20, 30, 20, 0, "Biotite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 1, 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))), - GraniteBlack ( 849, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 10, 10, 10, 0, "Black Granite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - GraniteRed ( 850, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 255, 0, 128, 0, "Red Granite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Chrysotile ( 912, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |64|128 , 110, 140, 110, 0, "Chrysotile" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Asbestos, 1))), - Realgar ( 913, TextureSet.SET_DULL , 1.0F, 32, 1, 1|2 |8 |64|128 , 140, 100, 100, 0, "Realgar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur,4))), - VanadiumMagnetite ( 923, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 35, 35, 60, 0, "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 - BasalticMineralSand ( 935, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 50, 40, 0, "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))), - GraniticMineralSand ( 936, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 60, 60, 0, "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))), - GarnetSand ( 938, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Garnet Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(GarnetRed, 1), new MaterialStack(GarnetYellow, 1))), - QuartzSand ( 939, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 200, 200, 0, "Quartz Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(CertusQuartz, 1), new MaterialStack(Quartzite, 1))), - Bastnasite ( 905, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 200, 110, 45, 0, "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 - Pentlandite ( 909, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 165, 150, 5, 0, "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 - Spodumene ( 920, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 190, 170, 170, 0, "Spodumene" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6))), // LiAl(SiO3)2 - Pollucite ( 919, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 210, 210, 0, "Pollucite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, 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) - Tantalite ( 921, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 145, 80, 40, 0, "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) - Lepidolite ( 907, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 240, 50, 140, 0, "Lepidolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, 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 - Glauconite ( 933, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, 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 - GlauconiteSand ( 949, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, 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 - Vermiculite ( 932, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 180, 15, 0, "Vermiculite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, 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) - Bentonite ( 927, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 245, 215, 210, 0, "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 - FullersEarth ( 928, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 160, 160, 120, 0, "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) - Pitchblende ( 873, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 210, 0, 0, "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))), - Monazite ( 520, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 50, 70, 50, 0, "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 and sometimes can be up to 20ֳ0% - Malachite ( 871, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 5, 95, 5, 0, "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 - Mirabilite ( 900, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 250, 210, 0, "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 - Mica ( 901, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 195, 195, 205, 0, "Mica" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, 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 - Trona ( 903, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 135, 135, 95, 0, "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 - Barite ( 904, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 235, 255, 0, "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))), - Gypsum ( 934, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 250, 0, "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(Water, 2), new MaterialStack(Oxygen, 4))), // CaSO4 2H2O - Alunite ( 911, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 225, 180, 65, 0, "Alunite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, 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 - Dolomite ( 914, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |8 , 225, 205, 205, 0, "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 - Wollastonite ( 915, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 240, 240, 0, "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 - Zeolite ( 916, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 230, 230, 0, "Zeolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Water, 28), new MaterialStack(Oxygen, 72))), // NaCa4(Si27Al9)O72 28(H2O) - Kyanite ( 924, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |8 , 110, 110, 250, 0, "Kyanite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 5))), // Al2SiO5 - Kaolinite ( 929, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 245, 235, 235, 0, "Kaolinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Al2Si2O5(OH)4 - Talc ( 902, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 90, 180, 90, 0, "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 - Soapstone ( 877, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 95, 145, 95, 0, "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 - Concrete ( 947, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 100, 100, 100, 0, "Concrete" , 0, 0, 300, 0, false, false, 0, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Stone, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), - IronMagnetic ( 354, TextureSet.SET_MAGNETIC , 6.0F, 256, 2, 1|2 |64|128 , 200, 200, 200, 0, "Magnetic Iron" , 0, 0, -1, 0, false, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - SteelMagnetic ( 355, TextureSet.SET_MAGNETIC , 6.0F, 512, 2, 1|2 |64|128 , 128, 128, 128, 0, "Magnetic Steel" , 0, 0, 1000, 1000, true, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(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))), - NeodymiumMagnetic ( 356, TextureSet.SET_MAGNETIC , 7.0F, 512, 2, 1|2 |64|128 , 100, 100, 100, 0, "Magnetic Neodymium" , 0, 0, 1297, 1297, true, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Neodymium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 3))), - TungstenCarbide ( 370, TextureSet.SET_METALLIC , 14.0F, 1280, 4, 1|2 |64|128 , 51, 0, 102, 0, "Tungstencarbide" , 0, 0, 2460,22460, true, false, 4, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Carbon, 1))), - VanadiumSteel ( 371, TextureSet.SET_METALLIC , 3.0F, 1920, 3, 1|2 |64|128 , 192, 192, 192, 0, "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))), - HSSG ( 372, TextureSet.SET_METALLIC , 10.0F, 4000, 3, 1|2 |64|128 , 153, 153, 0, 0, "HSS-G" , 0, 0, 4500,24500, 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))), - HSSE ( 373, TextureSet.SET_METALLIC , 10.0F, 5120, 4, 1|2 |64|128 , 51, 102, 0, 0, "HSS-E" , 0, 0, 5400,25400, 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))), - HSSS ( 374, TextureSet.SET_METALLIC , 14.0F, 3000, 4, 1|2 |64|128 , 102, 0, 51, 0, "HSS-S" , 0, 0, 5400,25400, true, false, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(HSSG, 6), new MaterialStack(Iridium, 2), new MaterialStack(Osmium, 1))), - - /** - * Galaxy Space 1.10 compat from Version 2.6 - */ - Ledox ( 390, TextureSet.SET_SHINY , 15.0F, 1024, 4, 1|2 |8 |64|128 , 0, 116, 255, 0, "Ledox" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeBlue), - Quantium ( 391, TextureSet.SET_SHINY , 18.0F, 2048, 4, 1|2 |8 |64|128 , 0, 209, 11, 0, "Quantium" , 0, 0, 4000, 4000, true, false, 4, 1, 1, Dyes.dyeLime), - Mytryl ( 387, TextureSet.SET_SHINY , 8.0F, 512, 4, 1|2 |8 |64|128 , 242, 100, 4, 0, "Mytryl" , 0, 0, 3600, 3600, true, false, 4, 1, 1, Dyes.dyeOrange), - BlackPlutonium ( 388, TextureSet.SET_DULL , 36.0F, 8192, 6, 1|2 |8 |64|128 , 50, 50, 50, 0, "Black Plutonium" , 0, 0, 9000, 9000, true, false, 4, 1, 1, Dyes.dyeBlack), - CallistoIce ( 389, TextureSet.SET_SHINY , 9.0F, 1024, 4, 1|2 |8 |64|128 , 30, 177, 255, 0, "Callisto Ice" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue), - Duralumin ( 392, TextureSet.SET_SHINY , 16.0F, 512, 3, 1|2 |8 |64|128 , 235, 209, 160, 0, "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))), - Oriharukon ( 393, TextureSet.SET_SHINY , 32.0F, 10240, 5, 1|2 |8 |64|128 , 103, 125, 104, 0, "Oriharukon" , 0, 0, 5400, 5400, true, false, 4, 1, 1, Dyes.dyeLime), - MysteriousCrystal ( 398, TextureSet.SET_SHINY , 8.0F, 256, 6, 1 , 22, 133, 108, 0, "Mysterious Crystal" , 0, 0, 7200, 7200, true, false, 4, 1, 1, Dyes.dyeCyan), - - /** - * Op materials (draconic evolution above) - */ - //TODO: add other op materials? maybe some new ores or new only fusion made op materials from op materials??? like neutronium bedrockium alloy etc. - InfinityCatalyst ( 394, TextureSet.SET_SHINY , 64.0F,1310720, 7, 1 |8 , 255, 255, 255, 0, "Infinity Catalyst" , 5, 500000, 9000, 9000, true, false, 4, 1, 1, Dyes.dyeLightGray), - Infinity ( 397, TextureSet.SET_SHINY , 128.0F,2621440, 8, 1 |8 , 255, 255, 255, 0, "Infinity" , 5, 5000000, 9000, 9000, true, false, 4, 1, 1, Dyes.dyeWhite), - Bedrockium ( 395, TextureSet.SET_DULL , 8.0F, 327680, 6, 1 |8 , 50, 50, 50, 0, "Bedrockium" , 0, 0, 9000, 9000, true, false, 4, 1, 1, Dyes.dyeBlack), - Trinium ( 868, TextureSet.SET_SHINY , 128.0F, 128, 8, 1|2 |64|128 , 200, 200, 210, 0, "Trinium" , 0, 0, 7200, 27200, true, false, 4, 1, 1, Dyes.dyeLightGray), - Ichorium ( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 211, 120, 6, 0, "Ichorium" , 5, 250000, -1, 0, false, false, 4, 1, 1, Dyes.dyeOrange), - - /** - * Materials which are renamed automatically - */ - //@Deprecated Duralium (Duralumin,false), - //@Deprecated Dural (Duralumin,false), - //@Deprecated Duralum (Duralumin,false), - //@Deprecated Duraluminium (Duralumin,false), - //@Deprecated Duraluminum (Duralumin,false), - @Deprecated IridiumAndSodiumOxide(IridiumSodiumOxide, false), - @Deprecated Palygorskite (FullersEarth, false), - @Deprecated Adamantine (Adamantium, true), - @Deprecated Ashes (Ash, false), - @Deprecated DarkAshes (DarkAsh, false), - @Deprecated Abyssal (Basalt, false), - @Deprecated Adamant (Adamantium, true), - @Deprecated AluminumBrass (AluminiumBrass, false), - @Deprecated Aluminum (Aluminium, false), - @Deprecated NaturalAluminum (Aluminium, false), - @Deprecated NaturalAluminium (Aluminium, false), - @Deprecated Americum (Americium, false), - @Deprecated Beryl (Emerald, false), // 30,200,200 - @Deprecated BlackGranite (GraniteBlack, false), - @Deprecated CalciumCarbonate (Calcite, false), - @Deprecated CreosoteOil (Creosote, false), - @Deprecated Chromium (Chrome, false), - @Deprecated Diesel (Fuel, false), - @Deprecated Enderpearl (EnderPearl, false), - @Deprecated Endereye (EnderEye, false), - @Deprecated EyeOfEnder (EnderEye, false), - @Deprecated Eyeofender (EnderEye, false), - @Deprecated Flour (Wheat, false), - @Deprecated Meat (MeatRaw, false), - @Deprecated Garnet (GarnetRed, true), - @Deprecated Granite (GraniteBlack, false), - @Deprecated Goethite (BrownLimonite, false), - @Deprecated Kalium (Potassium, false), - @Deprecated Lapislazuli (Lapis, false), - @Deprecated LapisLazuli (Lapis, false), - @Deprecated Monazit (Monazite, false), - @Deprecated Natrium (Sodium, false), - @Deprecated Mythril (Mithril, false), - @Deprecated NitroDiesel (NitroFuel, false), - @Deprecated Naquadriah (Naquadria, false), - @Deprecated Obby (Obsidian, false), - @Deprecated Peridot (Olivine, true), - @Deprecated Phosphorite (Phosphorus, true), - @Deprecated Quarried (Marble, false), - @Deprecated Quicksilver (Mercury, true), - @Deprecated QuickSilver (Mercury, false), - @Deprecated RedRock (Redrock, false), - @Deprecated RefinedIron (Iron, false), - @Deprecated RedGranite (GraniteRed, false), - @Deprecated Sheldonite (Cooperite, false), - @Deprecated Soulsand (SoulSand, false), - @Deprecated Titan (Titanium, false), - @Deprecated Uran (Uranium, false), - @Deprecated Wolframite (Tungstate, false), - @Deprecated Wolframium (Tungsten, false), - @Deprecated Wolfram (Tungsten, false), - ; - - /** List of all Materials. */ - public static final Collection<Materials> VALUES = new HashSet<Materials>(Arrays.asList(values())); - - static { - initSubTags(); - Iron .mOreReRegistrations.add(AnyIron); - PigIron .mOreReRegistrations.add(AnyIron ); - WroughtIron .mOreReRegistrations.add(AnyIron ); - - Copper .mOreReRegistrations.add(AnyCopper ); - AnnealedCopper .mOreReRegistrations.add(AnyCopper ); - - Bronze .mOreReRegistrations.add(AnyBronze ); - - Peanutwood .setMaceratingInto(Wood ); - WoodSealed .setMaceratingInto(Wood ); - NetherBrick .setMaceratingInto(Netherrack ); - - 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(Iron ).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(Copper ).setMaceratingInto(AnnealedCopper ).setArcSmeltingInto(AnnealedCopper ); - Netherrack .setSmeltingInto(NetherBrick ); - MeatRaw .setSmeltingInto(MeatCooked ); - Sand .setSmeltingInto(Glass ); - Ice .setSmeltingInto(Water ); - Snow .setSmeltingInto(Water ); - - Mercury .add(SubTag.SMELTING_TO_GEM); - Cinnabar .setDirectSmelting(Mercury ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT).add(SubTag.SMELTING_TO_GEM); - Tetrahedrite .setDirectSmelting(Copper ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Chalcopyrite .setDirectSmelting(Copper ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - 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 ); - Cassiterite .setDirectSmelting(Tin ); - CassiteriteSand .setDirectSmelting(Tin ); - Chromite .setDirectSmelting(Chrome ); - Garnierite .setDirectSmelting(Nickel ); - Cobaltite .setDirectSmelting(Cobalt ); - Stibnite .setDirectSmelting(Antimony ); - Cooperite .setDirectSmelting(Platinum ); - Pyrolusite .setDirectSmelting(Manganese ); - Magnesite .setDirectSmelting(Magnesium ); - Molybdenite .setDirectSmelting(Molybdenum ); - - 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); - Phosphorus .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); - - Plastic .setEnchantmentForTools(Enchantment.knockback, 1); - Rubber .setEnchantmentForTools(Enchantment.knockback, 2); - InfusedAir .setEnchantmentForTools(Enchantment.knockback, 2); - - IronWood .setEnchantmentForTools(Enchantment.fortune, 1); - Steeleaf .setEnchantmentForTools(Enchantment.fortune, 2); - //Midasium .setEnchantmentForTools(Enchantment.fortune, 2); - Mithril .setEnchantmentForTools(Enchantment.fortune, 3); - Vinteum .setEnchantmentForTools(Enchantment.fortune, 1); - Thaumium .setEnchantmentForTools(Enchantment.fortune, 2); - InfusedWater .setEnchantmentForTools(Enchantment.fortune, 3); - - 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); - - 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); - - 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); - - 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); - - 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); - - 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); - - FryingOilHot .setHeatDamage(1.0F); - Lava .setHeatDamage(3.0F); - Firestone .setHeatDamage(5.0F); - Pyrotheum .setHeatDamage(5.0F); - - - 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 , Aluminium , Iron ); - Glauconite .addOreByProducts(Sodium , Aluminium , Iron ); - Vermiculite .addOreByProducts(Iron , Aluminium , Magnesium ); - FullersEarth .addOreByProducts(Aluminium , Silicon , Magnesium ); - Bentonite .addOreByProducts(Aluminium , 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 , Phosphorus , 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 , Aluminium , Rubidium ); - Chrysotile .addOreByProducts(Asbestos , Silicon , Magnesium ); - Asbestos .addOreByProducts(Asbestos , Silicon , 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 ); - Quartzite .addOreByProducts(CertusQuartz , Barite ); - CertusQuartz .addOreByProducts(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 ); - 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 ); - Lepidolite .addOreByProducts(Lithium , Caesium ); - 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(Aluminium , GreenSapphire ); - GreenSapphire .addOreByProducts(Aluminium , Sapphire ); - Platinum .addOreByProducts(Nickel , Iridium ); - Emerald .addOreByProducts(Beryllium , Aluminium ); - 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(Aluminium , Lithium ); - Ruby .addOreByProducts(Chrome , GarnetRed ); - Phosphorus .addOreByProducts(Apatite , Phosphate ); - Iridium .addOreByProducts(Platinum , Osmium ); - Pyrope .addOreByProducts(GarnetRed , Magnesium ); - Almandine .addOreByProducts(GarnetRed , Aluminium ); - Spessartine .addOreByProducts(GarnetRed , Manganese ); - Andradite .addOreByProducts(GarnetYellow , Iron ); - Grossular .addOreByProducts(GarnetYellow , Calcium ); - Uvarovite .addOreByProducts(GarnetYellow , Chrome ); - Calcite .addOreByProducts(Andradite , Malachite ); - NaquadahEnriched .addOreByProducts(Naquadah , Naquadria ); - Naquadah .addOreByProducts(NaquadahEnriched ); - Pyrolusite .addOreByProducts(Manganese ); - Molybdenite .addOreByProducts(Molybdenum ); - Stibnite .addOreByProducts(Antimony ); - Garnierite .addOreByProducts(Nickel ); - Lignite .addOreByProducts(Coal ); - Diamond .addOreByProducts(Graphite ); - Beryllium .addOreByProducts(Emerald ); - Apatite .addOreByProducts(Phosphorus ); - 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 ); - //Midasium .addOreByProducts(Gold ); - 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(Phosphor ); - Phosphor .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 ); - Salt .addOreByProducts(RockSalt ); - RockSalt .addOreByProducts(Salt); - InfusedGold .addOreByProduct(Gold); - - Glue.mChemicalFormula = "No Horses were harmed for the Production"; - UUAmplifier.mChemicalFormula = "Accelerates the Mass Fabricator"; - LiveRoot.mChemicalFormula = ""; - WoodSealed.mChemicalFormula = ""; - Wood.mChemicalFormula = ""; - FoolsRuby.mChemicalFormula = Ruby.mChemicalFormula; - - 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; - - Electrotine.mChemicalFormula = "Rp"; - Trinium.mChemicalFormula = "Ke"; - Naquadah.mChemicalFormula = "Nq"; - NaquadahEnriched.mChemicalFormula = "Nq+"; - Naquadria.mChemicalFormula = "Nq*"; - NaquadahAlloy.mChemicalFormula="Nq2KeC"; - Sunnarium.mChemicalFormula = "Su"; - Adamantium.mChemicalFormula="Ad"; - InfusedGold.mChemicalFormula="AuMa*"; - MeteoricIron.mChemicalFormula="SpFe"; - MeteoricSteel.mChemicalFormula="SpFe50C"; - Duranium.mChemicalFormula="Du"; - Tritanium.mChemicalFormula="Tt"; - Ardite.mChemicalFormula="Ai"; - Manyullyn.mChemicalFormula="AiCo"; - Mytryl.mChemicalFormula="SpPt2FeMa"; - BlackPlutonium.mChemicalFormula="SpPu"; - Ledox.mChemicalFormula="SpPb"; - CallistoIce.mChemicalFormula="SpH2O"; - Quantium.mChemicalFormula="Qt"; - Desh.mChemicalFormula="De"; - Draconium.mChemicalFormula="D"; - DraconiumAwakened.mChemicalFormula="D*"; - BlueAlloy.mChemicalFormula="AgRp4"; - RedAlloy.mChemicalFormula="Cu("+Redstone.mChemicalFormula+")4"; - AnyIron.mChemicalFormula="Fe"; - AnyCopper.mChemicalFormula="Cu"; - ElectrumFlux.mChemicalFormula="The formula is too long..."; - DeepIron.mChemicalFormula="Sp2Fe"; - Ichorium.mChemicalFormula="IcMa"; - //Duralumin.mChemicalFormula="Al6CuMnMg"; - } - private static void initSubTags() { - SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM.addTo(Bastnasite, Monazite, Forcicium, Forcillium); - SubTag.ELECTROMAGNETIC_SEPERATION_GOLD.addTo(Magnetite, VanadiumMagnetite, BasalticMineralSand, GraniticMineralSand); - 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, YellowLimonite, BasalticMineralSand, GraniticMineralSand); - SubTag.BLASTFURNACE_CALCITE_TRIPLE.addTo(Iron, PigIron, DeepIron, ShadowIron, WroughtIron, MeteoricIron, BrownLimonite); - SubTag.WASHING_MERCURY.addTo(Gold, Silver, Osmium, Mithril, Platinum, /**Midasium,**/ Cooperite, AstralSilver); - 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, /**Satinspar, Selenite, Microcline, Sylvite, RefinedGlowstone, RefinedObsidian, Serpentine,**/ Signalum, Lumium, PhasedIron, PhasedGold, DarkSteel, Terrasteel, TinAlloy, ConductiveIron, ElectricalSteel, EnergeticAlloy, VibrantAlloy, - PulsatingIron, Manasteel, DarkThaumium, /**ElvenElementium**/ EnrichedCopper, DiamondCopper, Adamantium, Amordrine, Angmallen, Ardite, Aredrite, Atlarus, /**Blutonium,**/ Carmot, Celenegil, Ceruclase, DarkIron, - Desh, Desichalkos, Duranium, ElectrumFlux, Enderium, EnderiumBase, Eximite, FierySteel, Force, Haderoth, Hematite, Hepatizon, HSLA, Infuscolium, InfusedGold, Inolashite, Mercassium, MeteoricIron, - MeteoricSteel, Naquadah, NaquadahAlloy, NaquadahEnriched, Naquadria, ObsidianFlux, Orichalcum, Osmonium, Oureclase, Phoenixite, Prometheum, Sanguinite, /**Starconium,**/ - Tartarite, Ichorium,/**Thyrium,**/ Tritanium, Vulcanite, Vyroxeres, /**Yellorium,**/ Zectium, AluminiumBrass, Osmiridium, Sunnarium, AnnealedCopper, BatteryAlloy, Brass, Bronze, ChromiumDioxide, Cupronickel, DeepIron, - Electrum, Invar, /**IronCompressed,**/ 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, AstralSilver, /**Midasium,**/ Mithril, BlueAlloy, RedAlloy, CobaltBrass, Thaumium, Void, IronMagnetic, SteelMagnetic, NeodymiumMagnetic, Knightmetal, HSSG, HSSE, HSSS, TungstenCarbide, HeeEndium, - VanadiumSteel, Kalendrite, Ignatius, Trinium, Realgar, Chrysotile, BlackPlutonium, Alduorite, Adluorite, Vinteum, Rubracium, Draconium, DraconiumAwakened); - - 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); - Plastic .add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY); - Silicone .add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, 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); - 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); - 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); - Fluix .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - Phosphorus .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); - //Vinteum .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); - Infinite .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - - Blaze .add(SubTag.MAGICAL, SubTag.NO_SMELTING, SubTag.SMELTING_TO_FLUID, SubTag.MORTAR_GRINDABLE, SubTag.UNBURNABLE, SubTag.BURNING); - FierySteel .add(SubTag.MAGICAL, SubTag.UNBURNABLE, SubTag.BURNING); - //ElvenElementium .add(SubTag.MAGICAL); - DarkThaumium .add(SubTag.MAGICAL); - Thaumium .add(SubTag.MAGICAL); - Void .add(SubTag.MAGICAL); - Enderium .add(SubTag.MAGICAL); - AstralSilver .add(SubTag.MAGICAL); - //Midasium .add(SubTag.MAGICAL); - Mithril .add(SubTag.MAGICAL); - } +public class Materials implements IColorModulationContainer, ISubTagContainer { + private static Materials[] MATERIALS_ARRAY = new Materials[]{}; + private static final Map<String, Materials> MATERIALS_MAP = new LinkedHashMap<String, Materials>(); + public static final List<IMaterialHandler> mMaterialHandlers = new ArrayList<IMaterialHandler>(); + + /** + * 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<Materials>(); + + /** + * 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. + */ + 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 , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))); /** - * This Array can be changed dynamically by a Tick Handler in order to get a glowing Effect on all GT Meta Items out of this Material. + * 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))); + 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 , Arrays.asList(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 , Arrays.asList(new TC_AspectStack(TC_Aspects.VENENUM, 3))); + public static Materials Barium = new Materials( 63, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 255, 0, "Barium" , "Barium" , 0, 0, 1000, 0, false, false, 1, 1, 1, Dyes._NULL , Element.Ba , Arrays.asList(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 |8 |32 , 250, 250, 250, 0, "Boron" , "Boron" , 0, 0, 2349, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Element.B , Arrays.asList(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 , 255, 255, 255, 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, 0, false, 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 |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_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 , 255, 255, 255, 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 , 80, 80, 250, 0, "Cobalt" , "Cobalt" , 0, 0, 1768,21700, 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))); + public static Materials Copper = new Materials( 35, TextureSet.SET_SHINY , 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 , Arrays.asList(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 , 255, 255, 255, 0, "Dysprosium" , "Dysprosium" , 0, 0, 1680, 1680, true, false, 4, 1, 1, Dyes._NULL , Element.Dy , Arrays.asList(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 , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 2))); + public static Materials Erbium = new Materials( 75, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 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_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 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 , Arrays.asList(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 , 255, 255, 255, 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_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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,22719, 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))); + 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 , Arrays.asList(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 , 255, 255, 255, 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_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 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 , Arrays.asList(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 , Arrays.asList(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,29000, 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))); + 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 , Arrays.asList(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,23306, 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))); + 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 , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1))); + public static Materials Palladium = new Materials( 52, TextureSet.SET_SHINY , 8.0F, 512, 2, 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 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))); + public static Materials Phosphor = new Materials( 21, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 0, 0, "Phosphor" , "Phosphor" , 0, 0, 317, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.P , Arrays.asList(new 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, 2, 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 244" , 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 , 250, 250, 250, 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_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 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_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 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_MAGNETIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Samarium" , "Samarium" , 0, 0, 1345, 1345, true, false, 4, 1, 1, Dyes._NULL , 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 , 255, 255, 255, 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" , "Silicon" , 0, 0, 1687, 1687, 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 |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 , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))); + public static Materials Tantalum = new Materials( 80, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tantalum" , "Tantalum" , 0, 0, 3290, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Ta , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VINCULUM, 1))); + public static Materials Tellurium = new Materials( 59, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 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_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 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, 1, 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))); + 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 , Arrays.asList(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))); + 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_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 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))); + + /** + * 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 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 Brick = new Materials( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false, "Brick" , "Brick" ); + 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 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 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 RedstoneAlloy = new Materials( 381, TextureSet.SET_METALLIC , 3.0F, 128, 2, 1|2 |64|128 , 181, 51, 51, 0, "RedstoneAlloy" , "Redstone Alloy" , 0, 0, 500,21000, true, false, 1, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Redstone, 1), new MaterialStack(Silicon, 1), new MaterialStack(Coal, 1))); + 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 NitricAcid = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "NitricAcid" , "Nitric Acid" , 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 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 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 PhasedIron = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "PhasedIron" , "Phased Iron" , 0, 0, -1, 0, false, 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, 0, false, false, 3, 1, 1, Dyes._NULL ); +//\/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,21000, true, false, 3, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(SoulSand, 1), new MaterialStack(Gold, 1), new MaterialStack(Ash, 1))); + 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 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 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,21800, true, false, 3, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(ElectricalSteel, 1), new MaterialStack(Coal, 1), new MaterialStack(Obsidian, 1))); + public static Materials Terrasteel = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Terrasteel" , "Terrasteel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ); +//\/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,21200, true, false, 4, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(RedstoneAlloy, 1), new MaterialStack(Iron, 1), new MaterialStack(Silver, 1))); +//\/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,21000, true, false, 4, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Coal, 1), new MaterialStack(Silicon, 1))); +//\/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,22200, true, false, 3, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(ConductiveIron, 1), new MaterialStack(Gold, 1), new MaterialStack(BlackSteel, 1))); +//\/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,23300, true, false, 4, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(EnergeticAlloy, 1), new MaterialStack(EnderEye, 1), new MaterialStack(Chrome, 1))); +//\/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,21800, true, false, 4, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(EnderPearl, 1), new MaterialStack(RedstoneAlloy, 1))); + 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 Manasteel = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Manasteel" , "Manasteel" , 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 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 Ryu = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ryu" , "Ryu" , 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 ElvenElementium = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "ElvenElementium" , "Elven Elementium" , 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 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 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 Pokefennium = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Pokefennium" , "Pokefennium" , 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,25000, true, false, 3, 1, 1, Dyes.dyePink ); + public static Materials DraconiumAwakened = new Materials( 976, TextureSet.SET_SHINY , 40.0F, 65536, 8, 1|2| 8| 32|64|128 , 244, 78, 0, 0, "DraconiumAwakened" , "Awakened Draconium" , 0, 0, 9000,29000, true, false, 3, 1, 1, Dyes.dyeOrange ); + 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 , 15.0F, 8192, 5, 1|2 |8 |64|128 , 255, 255, 255, 0, "Adamantium" , "Adamantium" , 0, 0, 7200, 7200, true, false, 1, 1, 1, Dyes.dyeLightGray ); + 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 , 3.0F, 384, 2, 1|2 |8 |64|128 , 159, 180, 180, 0, "Alduorite" , "Alduorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ); + 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 , 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,21600, true, false, 1, 1, 1, Dyes.dyeRed ); + 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 Ceruclase = new Materials( 952, TextureSet.SET_METALLIC , 6.0F, 1280, 2, 1|2 |8 |64|128 , 140, 189, 208, 0, "Ceruclase" , "Ceruclase" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue ); + 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 , 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 |64|128 , 40, 40, 40, 0, "Desh" , "Desh" , 0, 0, 2500,22500, true, false, 1, 1, 1, Dyes.dyeBlack ); + 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 , 16.0F, 5120, 5, 1|2 |64 , 255, 255, 255, 0, "Duranium" , "Duranium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ); + 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,29000, true, false, 1, 1, 1, Dyes.dyeYellow ); + 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 Enderium = new Materials( 321, TextureSet.SET_DULL , 8.0F, 1500, 3, 1|2 |64|128 , 89, 145, 135, 0, "Enderium" , "Enderium" , 0, 0, 4500,24500, 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))); + 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,23600, 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))); + 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,21800, 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))); + 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" , "Ruby" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed , 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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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 , 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 , 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, 0, 2, 1 |4|8 |64 , 0, 100, 0, 0, "Jade" , "Jade" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 3))); + 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 , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))); + 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 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 ); + 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 |64 , 100, 50, 80, 0, "MeteoricIron" , "Meteoric Iron" , 0, 0, 1811, 1000, true, false, 1, 1, 1, Dyes.dyeGray , 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, 1, 1, 1, Dyes.dyeGray , 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 |64 , 50, 50, 50, 0, "Naquadah" , "Naquadah" , 0, 0, 5400,25400, true, false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))); + 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,27200, true, false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))); + 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,24500, 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))); + 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,29000, 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))); + 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 , Arrays.asList(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|128 , 255, 255, 255, 0, "NetherStar" , "Nether Star" , 5, 50000, -1, 0, false, false, 15, 1, 1, Dyes.dyeWhite ); +////public static Materials Nikolite = new Materials( 812, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 , 60, 180, 200, 0, "Nikolite" , "Nikolite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan , Arrays.asList(new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2))); + 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 , 4.5F, 3456, 3, 1|2 |8 |64|128 , 84, 122, 56, 0, "Orichalcum" , "Orichalcum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ); + 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 Potash = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Potash" , "Potash" , 0, 0, -1, 0, false, false, 1, 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 Quicklime = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Quicklime" , "Quicklime" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ); + 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 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 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 , 20.0F, 7680, 5, 1|2 |8 , 255, 118, 60, 0, "Tartarite" , "Tartarite" , 0, 0, -1, 0, false, false, 1, 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 Tritanium = new Materials( 329, TextureSet.SET_METALLIC , 20.0F, 10240, 6, 1|2 |64 , 255, 255, 255, 0, "Tritanium" , "Tritanium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 2))); + 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 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 , 16.0F, 512, 4, 1|2 |64|128 , 28, 6, 57, 0, "Void" , "Void" , 5, 1500, -1, 0, false, true, 5, 2, 1, Dyes.dyeBlack , Arrays.asList(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 , 6.0F, 64, 2, 1|2 |8 |64|128 , 255, 132, 72, 0, "Vulcanite" , "Vulcanite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ); + public static Materials Vyroxeres = new Materials( 951, TextureSet.SET_METALLIC , 9.0F, 768, 3, 1|2 |8 |64 , 85, 224, 1, 0, "Vyroxeres" , "Vyroxeres" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ); + 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 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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 8))); + public static Materials Superconductor = 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, 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 ); + + /** + * 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 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" , "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.dyePurple ); + 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 , Arrays.asList(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, 400, -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 , Arrays.asList(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 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 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 , Arrays.asList(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 , Arrays.asList(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 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 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,21700, true, false, 1, 1, 1, Dyes.dyeBlue ); + 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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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 , Arrays.asList(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(); + + /** + * 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,23500, true, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Iridium, 3), new MaterialStack(Osmium, 1))); + 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,24200, true, false, 1, 1, 1, Dyes.dyeYellow ); + 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, 60, -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 , 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 2))); + 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))); + 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 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 , 1, 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, Arrays.asList(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, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(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 , 1, 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, Arrays.asList(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, 1, 8 , 220, 220, 220, 0, "Cassiterite" , "Cassiterite" , 0, 0, -1, 0, false, false, 4, 3, 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, 8 , 220, 220, 220, 0, "CassiteriteSand" , "Cassiterite Sand" , 0, 0, -1, 0, false, false, 4, 3, 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 Chalk = new Materials( 856, TextureSet.SET_FINE , 1.0F, 0, 2, 1 , 250, 250, 250, 0, "Chalk" , "Chalk" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))); + 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, Arrays.asList(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, 3, 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)), Arrays.asList(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 , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2),new MaterialStack(Water,6))); + 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, Arrays.asList(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, Arrays.asList(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, -1, 0, false, false, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))); + public static Materials Diamond = new Materials( 500, TextureSet.SET_DIAMOND , 8.0F, 1280, 3, 1 |4|8 |64|128 , 200, 255, 255, 127, "Diamond" , "Diamond" , 0, 0, -1, 0, false, true, 5, 64, 1, Dyes.dyeWhite , 1, Arrays.asList(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, 2, 1 |4|8 |64 , 80, 255, 80, 127, "Emerald" , "Emerald" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeGreen , 1, 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)), Arrays.asList(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, 3), new MaterialStack(Silver, 3), new MaterialStack(Sulfur, 2))); + 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 Materials( 504, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 200, 130, 127, "GreenSapphire" , "Green Sapphire" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeCyan , 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 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 , 1, 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)), Arrays.asList(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(Carbon, 2), new MaterialStack(Chlorine, 2))); + 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 IronCompressed = new Materials( -1, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 128, 128, 128, 0, "IronCompressed" , "Compressed Iron" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Iron, 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))); + 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,22700, true, false, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Nickel, 4), new MaterialStack(Chrome, 1))); + 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,24500, true, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Titanium, 1))); + 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 , 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(Phosphor, 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, Arrays.asList(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)), Arrays.asList(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, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))); + public static Materials Silicone = new Materials( 471, TextureSet.SET_DULL , 3.0F, 128, 1, 1|2 |64|128 , 220, 220, 220, 0, "Silicone" , "Polysiloxane" , 0, 0, 900, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(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)), Arrays.asList(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)), Arrays.asList(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, Arrays.asList(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 , 1, 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, 16, 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)), Arrays.asList(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)), Arrays.asList(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 , 1, 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))); + 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 , 1, 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 SaltWater = new Materials( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "SaltWater" , "Salt 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))); + 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, 2), new MaterialStack(Oxygen, 4))); + public static Materials SiliconDioxide = new Materials( 837, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |16 , 200, 200, 200, 0, "SiliconDioxide" , "Silicon Dioxide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 2))); + 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)), Arrays.asList(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, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))); + public static Materials SodiumSulfide = new Materials( 719, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 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 , 0, 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 ); + 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 ); + public static Materials LightFuel = new Materials( 740, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "LightFuel" , "Light Fuel" , 0, 320, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ); + 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 ); + 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 CrackedLightFuel = new Materials( 743, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "CrackedLightFuel" , "Cracked Light Fuel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ); + public static Materials CrackedHeavyFuel = new Materials( 744, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "CrackedHeavyFuel" , "Cracked Heavy Fuel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ); + + public static Materials Toluene = new MaterialBuilder(647, TextureSet.SET_FLUID, "Toluene").addCell().setRGB(80, 29, 5).setColor(Dyes.dyeBrown).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, 2), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().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, 3), new MaterialStack(Oxygen, 1)).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(Phosphor, 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 CalciumAcetate = new MaterialBuilder(671, TextureSet.SET_RUBY, "Calcium Acetate").addDustItems().addCell().setRGB(255, 255, 255).setColor(Dyes.dyeWhite).setMaterialList(new MaterialStack(Calcium, 1), new MaterialStack(AceticAcid, 2)).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(96).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(32).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(288).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4)).addElectrolyzerRecipe().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(144).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().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)).addElectrolyzerRecipe().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 SodiumHydroxide = new MaterialBuilder(685, TextureSet.SET_FLUID, "Sodium Hydroxide").setName("SodiumHydroxide_GT5U").addCell().addFluid().setRGB(0, 51, 128).setColor(Dyes.dyeBlue).setMaterialList(new MaterialStack(Sodium, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)).addElectrolyzerRecipe().constructMaterial(); + public static Materials Benzene = new MaterialBuilder(686, TextureSet.SET_FLUID, "Benzene").addCell().addFluid().setRGB(26, 26, 26).setColor(Dyes.dyeGray).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).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, "Cumene").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, 1), new MaterialStack(Phosphor, 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 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(Phosphor, 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 , 1, 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, 2, 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 , 1, 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 , 1, 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, 140, 0, "VanadiumGallium" , "Vanadium-Gallium" , 0, 0, 4500,24500, true, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Vanadium, 3), new MaterialStack(Gallium, 1))); + 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)), Arrays.asList(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, Arrays.asList(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 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))); + + /** + * 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, Arrays.asList(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, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2))); + 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(Water, 10), new MaterialStack(Oxygen, 7))); + 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, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 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, Arrays.asList(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)), Arrays.asList(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, 64, 1, 1 |64 , 0, 32, 64, 0, "Flint" , "Flint" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(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, Arrays.asList(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 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)), Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))); + public static Materials Alumite = new Materials( -1, TextureSet.SET_METALLIC , 1.5F, 64, 0, 1|2 |64 , 255, 255, 255, 0, "Alumite" , "Alumite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Aluminium, 5), new MaterialStack(Iron, 2), new MaterialStack(Obsidian, 2)), Arrays.asList(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,23600, true, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Ardite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))); +//\/public static Materials ShadowIron = new Materials( 336, TextureSet.SET_METALLIC , 6.0F, 384, 3, 1|2 |8 |64 , 120, 120, 120, 0, "ShadowIron" , "Shadowiron" , 0, 0, -1, 0, false, false, 3, 4, 3, Dyes.dyeBlack , 3, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Thaumium, 3))); +//\/public static Materials ShadowSteel = new Materials( 337, TextureSet.SET_METALLIC , 6.0F, 768, 4, 1|2 |64 , 90, 90, 90, 0, "ShadowSteel" , "Shadowsteel" , 0, 0, -1, 1700, true, false, 4, 4, 3, Dyes.dyeBlack , 3, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Thaumium, 3))); + 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 , 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))); + public static Materials RedSteel = new Materials( 348, TextureSet.SET_METALLIC , 7.0F, 896, 4, 1|2 |64 , 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 , 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 , 110, 110, 110, 0, "DamascusSteel" , "Damascus Steel" , 0, 0, 2000, 1500, true, false, 4, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Steel, 1))); + 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, -1,23000, true, false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1))); + 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" , "Nitro-Diesel" , 0, 720, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(Fuel, 4))); +//\/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))); +////public static Materials Midasium = new Materials( 332, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64 , 255, 200, 40, 0, "Midasium" , "Midasium" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Gold, 2), new MaterialStack(Thaumium, 1))); +//\/public static Materials Mithril = new Materials( 331, TextureSet.SET_SHINY , 14.0F, 64, 3, 1|2 |8 |64 , 255, 255, 210, 0, "Mithril" , "Mithril" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Platinum, 2), new MaterialStack(Thaumium, 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)), Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3))); + 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, -1, 0, false, false, 3, 5, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Redstone, 4)), Arrays.asList(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 Phosphorus = new Materials( 534, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |4|8|16 , 255, 255, 0, 0, "Phosphorus" , "Phosphorus" , 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, 0, 1, 1 , 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)), Arrays.asList(new TC_AspectStack(TC_Aspects.TENEBRAE, 1))); + 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)), Arrays.asList(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)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))); + public static Materials Marble = new Materials( 845, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 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)), Arrays.asList(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 |8 |64|128 , 100, 200, 255, 0, "Vinteum" , "Vinteum" , 5, 32, -1, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(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, Arrays.asList(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 , 1, 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 , 1, 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)), Arrays.asList(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 , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))); + public static Materials Chrysotile = new Materials( 912, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |64|128 , 110, 140, 110, 0, "Chrysotile" , "Chrysotile" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Asbestos, 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 , 200, 200, 200, 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 , 1, 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 , 1, 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 , 1, 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 , 1, 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 , 1, 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 , 1, 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 and sometimes can be up to 20Öł0% + 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 , 1, 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(Water, 2), new MaterialStack(Oxygen, 4))); // 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 , 1, 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 , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Water, 28), new MaterialStack(Oxygen, 72))); // NaCa4(Si27Al9)O72 28(H2O) + 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 , 1, 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 , 1, 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, Arrays.asList(new MaterialStack(Stone, 1)), Arrays.asList(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, Arrays.asList(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, 2, 1|2 |64|128 , 128, 128, 128, 0, "SteelMagnetic" , "Magnetic Steel" , 0, 0, 1000, 1000, true, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(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, Arrays.asList(new MaterialStack(Neodymium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 3))); + 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,22460, true, false, 4, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Carbon, 1))); + 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))); + 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,24500, 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))); + public static Materials HSSE = new Materials( 373, TextureSet.SET_METALLIC , 10.0F, 5120, 4, 1|2 |64|128 , 51, 102, 0, 0, "HSSE" , "HSS-E" , 0, 0, 5400,25400, 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))); + public static Materials HSSS = new Materials( 374, TextureSet.SET_METALLIC , 14.0F, 3000, 4, 1|2 |64|128 , 102, 0, 51, 0, "HSSS" , "HSS-S" , 0, 0, 5400,25400, true, false, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(HSSG, 6), new MaterialStack(Iridium, 2), new MaterialStack(Osmium, 1))); + + //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)), Arrays.asList(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,23000, true, false, 1, 1, 1, Dyes.dyePink ); + 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,24500, true, false, 1, 1, 1, Dyes.dyePink ); + 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 RefinedGlowstone = new Materials(----, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "RefinedGlowstone" , "Refined Glowstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ); +////public static Materials RefinedObsidian = new Materials(----, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "RefinedObsidian" , "Refined Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ); + 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" , 0, 0, 1800, 1800, true, false, 3, 4, 3, Dyes.dyeBlue ); + + //\/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, 500,21000, true, false, 1, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Redstone, 1), new MaterialStack(Silicon, 1), new MaterialStack(Coal, 1))); + 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,21000, true, false, 3, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(SoulSand, 1), new MaterialStack(Gold, 1), new MaterialStack(Ash, 1))); + 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,21200, true, false, 4, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(RedstoneAlloy, 1), new MaterialStack(Iron, 1), new MaterialStack(Silver, 1))); + 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,21000, true, false, 4, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Coal, 1), new MaterialStack(Silicon, 1))); + 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,22200, true, false, 3, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(ConductiveIron, 1), new MaterialStack(Gold, 1), new MaterialStack(BlackSteel, 1))); + 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,23300, true, false, 4, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(EnergeticAlloy, 1), new MaterialStack(EnderEye, 1), new MaterialStack(Chrome, 1))); + 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,21800, true, false, 4, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(EnderPearl, 1), new MaterialStack(RedstoneAlloy, 1))); + 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,24500, 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))); + 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,21800, true, false, 3, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(ElectricalSteel, 1), new MaterialStack(Coal, 1), new MaterialStack(Obsidian, 1))); + public static Materials Mithril = new Materials( 331, TextureSet.SET_SHINY , 14.0F, 64, 3, 1|2 |8 |64 , 255, 255, 210, 0, "Mithril" , "Mithril" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Platinum, 2), new MaterialStack(Thaumium, 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)), Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3))); + public static Materials ShadowIron = new Materials( 336, TextureSet.SET_METALLIC , 6.0F, 384, 3, 1|2 |8 |64 , 120, 120, 120, 0, "ShadowIron" , "Shadowiron" , 0, 0, -1, 0, false, false, 3, 4, 3, Dyes.dyeBlack , 3, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Thaumium, 3))); + public static Materials ShadowSteel = new Materials( 337, TextureSet.SET_METALLIC , 6.0F, 768, 4, 1|2 |64 , 90, 90, 90, 0, "ShadowSteel" , "Shadowsteel" , 0, 0, -1, 1700, true, false, 4, 4, 3, Dyes.dyeBlack , 3, 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))); + + /** + * 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, 4000, 4000, true, false, 4, 1, 1, Dyes.dyeLime ); + 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, 6, 1|2 |8 |64|128 , 50, 50, 50, 0, "BlackPlutonium" , "Black Plutonium" , 0, 0, 9000, 9000, true, false, 4, 1, 1, Dyes.dyeBlack ); + 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 |64|128 , 103, 125, 104, 0, "Oriharukon" , "Oriharukon" , 0, 0, 5400, 5400, true, false, 4, 1, 1, Dyes.dyeLime ); + public static Materials MysteriousCrystal = new Materials( 398, TextureSet.SET_SHINY , 8.0F, 256, 6, 1 , 22, 133, 108, 0, "MysteriousCrystal" , "Mysterious Crystal" , 0, 0, 7200, 7200, true, false, 4, 1, 1, Dyes.dyeCyan ); + + /** + * Op materials (draconic evolution above) + */ + //TODO: add other op materials? maybe some new ores or new only fusion made op materials from op materials??? like neutronium bedrockium alloy etc. + public static Materials InfinityCatalyst = new Materials( 394, TextureSet.SET_SHINY , 64.0F,1310720, 7, 1 |8 , 255, 255, 255, 0, "InfinityCatalyst" , "Infinity Catalyst" , 5, 500000, 9000, 9000, true, false, 4, 1, 1, Dyes.dyeLightGray ); + public static Materials Infinity = new Materials( 397, TextureSet.SET_SHINY , 128.0F,2621440, 8, 1 |8 , 255, 255, 255, 0, "Infinity" , "Infinity" , 5, 5000000, 9000, 9000, true, false, 4, 1, 1, Dyes.dyeWhite ); + public static Materials Bedrockium = new Materials( 395, TextureSet.SET_DULL , 8.0F, 327680, 6, 1 |8 , 50, 50, 50, 0, "Bedrockium" , "Bedrockium" , 0, 0, 9000, 9000, true, false, 4, 1, 1, Dyes.dyeBlack ); + public static Materials Trinium = new Materials( 868, TextureSet.SET_SHINY , 128.0F, 128, 8, 1|2 |64|128 , 200, 200, 210, 0, "Trinium" , "Trinium" , 0, 0, 7200, 27200, true, false, 4, 1, 1, Dyes.dyeLightGray ); + public static Materials Ichorium = new Materials( -1, TextureSet.SET_SHINY , 1.0F, 0, 0, 0 , 211, 120, 6, 0, "Ichorium" , "Ichorium" , 5, 250000, -1, 0, false, false, 4, 1, 1, Dyes.dyeOrange ); + + /** + * Materials which are renamed automatically + */ +// @Deprecated public static Materials Duralium = new Materials(Duralumin,false); +// @Deprecated public static Materials Dural = new Materials(Duralumin,false); +// @Deprecated public static Materials Duralum = new Materials(Duralumin,false); +// @Deprecated public static Materials Duraluminium = new Materials(Duralumin,false); +// @Deprecated public static Materials Duraluminum = new Materials(Duralumin,false); + @Deprecated public static Materials IridiumAndSodiumOxide = new Materials(IridiumSodiumOxide, false); + @Deprecated public static Materials Palygorskite = new Materials(FullersEarth, false); + @Deprecated public static Materials Adamantine = new Materials(Adamantium, true); + @Deprecated public static Materials Ashes = new Materials(Ash, false); + @Deprecated public static Materials DarkAshes = new Materials(DarkAsh, false); + @Deprecated public static Materials Abyssal = new Materials(Basalt, false); + @Deprecated public static Materials Adamant = new Materials(Adamantium, true); + @Deprecated public static Materials AluminumBrass = new Materials(AluminiumBrass, false); + @Deprecated public static Materials Aluminum = new Materials(Aluminium, false); + @Deprecated public static Materials NaturalAluminum = new Materials(Aluminium, false); + @Deprecated public static Materials NaturalAluminium = new Materials(Aluminium, false); + @Deprecated public static Materials Americum = new Materials(Americium, false); + @Deprecated public static Materials Beryl = new Materials(Emerald, false); // 30,200,200 + @Deprecated public static Materials BlackGranite = new Materials(GraniteBlack, false); + @Deprecated public static Materials CalciumCarbonate = new Materials(Calcite, false); + @Deprecated public static Materials CreosoteOil = new Materials(Creosote, false); + @Deprecated public static Materials Chromium = new Materials(Chrome, false); + @Deprecated public static Materials Diesel = new Materials(Fuel, false); + @Deprecated public static Materials Enderpearl = new Materials(EnderPearl, false); + @Deprecated public static Materials Endereye = new Materials(EnderEye, false); + @Deprecated public static Materials EyeOfEnder = new Materials(EnderEye, false); + @Deprecated public static Materials Eyeofender = new Materials(EnderEye, false); + @Deprecated public static Materials Flour = new Materials(Wheat, false); + @Deprecated public static Materials Meat = new Materials(MeatRaw, false); + @Deprecated public static Materials Garnet = new Materials(GarnetRed, true); + @Deprecated public static Materials Granite = new Materials(GraniteBlack, false); + @Deprecated public static Materials Goethite = new Materials(BrownLimonite, false); + @Deprecated public static Materials Kalium = new Materials(Potassium, false); + @Deprecated public static Materials Lapislazuli = new Materials(Lapis, false); + @Deprecated public static Materials LapisLazuli = new Materials(Lapis, false); + @Deprecated public static Materials Monazit = new Materials(Monazite, false); + @Deprecated public static Materials Natrium = new Materials(Sodium, false); + @Deprecated public static Materials Mythril = new Materials(Mithril, false); + @Deprecated public static Materials NitroDiesel = new Materials(NitroFuel, false); + @Deprecated public static Materials Naquadriah = new Materials(Naquadria, false); + @Deprecated public static Materials Obby = new Materials(Obsidian, false); + @Deprecated public static Materials Peridot = new Materials(Olivine, true); + @Deprecated public static Materials Phosphorite = new Materials(Phosphorus, true); + @Deprecated public static Materials Quarried = new Materials(Marble, false); + @Deprecated public static Materials Quicksilver = new Materials(Mercury, true); + @Deprecated public static Materials QuickSilver = new Materials(Mercury, false); + @Deprecated public static Materials RedRock = new Materials(Redrock, false); + @Deprecated public static Materials RefinedIron = new Materials(Iron, false); + @Deprecated public static Materials RedGranite = new Materials(GraniteRed, false); + @Deprecated public static Materials Sheldonite = new Materials(Cooperite, false); + @Deprecated public static Materials Soulsand = new Materials(SoulSand, false); + @Deprecated public static Materials Titan = new Materials(Titanium, false); + @Deprecated public static Materials Uran = new Materials(Uranium, false); + @Deprecated public static Materials Wolframite = new Materials(Tungstate, false); + @Deprecated public static Materials Wolframium = new Materials(Tungsten, false); + @Deprecated public static Materials Wolfram = new Materials(Tungsten, false); + @Deprecated public static Materials Nikolite = new Materials(Electrotine, false); + public final short[] mRGBa = new short[]{255, 255, 255, 0}, mMoltenRGBa = new short[]{255, 255, 255, 0}; - public final TextureSet mIconSet; - public final int mMetaItemSubID; - public final boolean mUnificatable; - public final Materials mMaterialInto; - public final List<MaterialStack> mMaterialList = new ArrayList<MaterialStack>(); - public final List<Materials> mOreByProducts = new ArrayList<Materials>(), mOreReRegistrations = new ArrayList<Materials>(); - public final List<TC_AspectStack> mAspects = new ArrayList<TC_AspectStack>(); - private final ArrayList<ItemStack> mMaterialItems = new ArrayList<ItemStack>(); - private final Collection<SubTag> mSubTags = new HashSet<SubTag>(); + public TextureSet mIconSet; + public int mMetaItemSubID; + public boolean mUnificatable; + public Materials mMaterialInto; + public List<MaterialStack> mMaterialList = new ArrayList<MaterialStack>(); + public List<Materials> mOreByProducts = new ArrayList<Materials>(), mOreReRegistrations = new ArrayList<Materials>(); + public List<TC_Aspects.TC_AspectStack> mAspects = new ArrayList<TC_Aspects.TC_AspectStack>(); + public ArrayList<ItemStack> mMaterialItems = new ArrayList<ItemStack>(); + public Collection<SubTag> mSubTags = new LinkedHashSet<SubTag>(); public Enchantment mEnchantmentTools = null, mEnchantmentArmors = null; public byte mEnchantmentToolsLevel = 0, mEnchantmentArmorsLevel = 0; - public boolean mBlastFurnaceRequired = false; + public boolean mBlastFurnaceRequired = false, mTransparent = false; public float mToolSpeed = 1.0F, mHeatDamage = 0.0F; - public String mChemicalFormula = "?", mDefaultLocalName = "null"; + public String mChemicalFormula = "?", mName = "null", mDefaultLocalName = "null", mCustomID = "null", mConfigSection = "null"; public Dyes mColor = Dyes._NULL; - public short mMeltingPoint = 0, mBlastFurnaceTemp = 0; - public int mTypes = 0, mDurability = 16, mFuelPower = 0, mFuelType = 0, mExtraData = 0, mOreValue = 0, mOreMultiplier = 1, mByProductMultiplier = 1, mSmeltingMultiplier = 1; + public short mMeltingPoint = 0, mBlastFurnaceTemp = 0, mGasTemp = 0; + public int mTypes = 0; + public int mDurability = 16, mFuelPower = 0, mFuelType = 0, mExtraData = 0, mOreValue = 0, mOreMultiplier = 1, mByProductMultiplier = 1, mSmeltingMultiplier = 1; + public int mDensityMultiplier = 1, mDensityDivider = 1; public long mDensity = M; public Element mElement = null; public Materials mDirectSmelting = this, mOreReplacement = this, mMacerateInto = this, mSmeltInto = this, mArcSmeltInto = this, mHandleMaterial = this; public byte mToolQuality = 0; + public boolean mHasParentMod = true, mHasPlasma = false, mHasGas = false, mCustomOre = false; public Fluid mSolid = null, mFluid = null, mGas = null, mPlasma = null; + + private boolean hasCorrespondingFluid = false, hasCorrespondingGas = false; + /** - * This Fluid is used as standard Unit for Molten Materials. 1296 is a Molten Block, what means 144 is one Material Unit worth + * 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 Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, boolean aUnificatable) { - mUnificatable = aUnificatable; - mMaterialInto = this; + static { + initSubTags(); + Iron .mOreReRegistrations.add(AnyIron ); + PigIron .mOreReRegistrations.add(AnyIron ); + WroughtIron .mOreReRegistrations.add(AnyIron ); + + Copper .mOreReRegistrations.add(AnyCopper ); + AnnealedCopper .mOreReRegistrations.add(AnyCopper ); + + Bronze .mOreReRegistrations.add(AnyBronze ); + + Peanutwood .setMaceratingInto(Wood ); + WoodSealed .setMaceratingInto(Wood ); + NetherBrick .setMaceratingInto(Netherrack ); + + 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(Iron ).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(Copper ).setMaceratingInto(AnnealedCopper ).setArcSmeltingInto(AnnealedCopper ); + Netherrack .setSmeltingInto(NetherBrick ); + MeatRaw .setSmeltingInto(MeatCooked ); + Sand .setSmeltingInto(Glass ); + Ice .setSmeltingInto(Water ); + Snow .setSmeltingInto(Water ); + + Mercury .add(SubTag.SMELTING_TO_GEM); + Cinnabar .setDirectSmelting(Mercury ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT).add(SubTag.SMELTING_TO_GEM); + Tetrahedrite .setDirectSmelting(Copper ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Chalcopyrite .setDirectSmelting(Copper ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + 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 ); + Cassiterite .setDirectSmelting(Tin ); + CassiteriteSand .setDirectSmelting(Tin ); + Chromite .setDirectSmelting(Chrome ); + Garnierite .setDirectSmelting(Nickel ); + Cobaltite .setDirectSmelting(Cobalt ); + Stibnite .setDirectSmelting(Antimony ); + Cooperite .setDirectSmelting(Platinum ); + Pyrolusite .setDirectSmelting(Manganese ); + Magnesite .setDirectSmelting(Magnesium ); + Molybdenite .setDirectSmelting(Molybdenum ); + + 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); + Phosphorus .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); + + Plastic .setEnchantmentForTools(Enchantment.knockback, 1); + Rubber .setEnchantmentForTools(Enchantment.knockback, 2); + InfusedAir .setEnchantmentForTools(Enchantment.knockback, 2); + + IronWood .setEnchantmentForTools(Enchantment.fortune, 1); + Steeleaf .setEnchantmentForTools(Enchantment.fortune, 2); +// Midasium .setEnchantmentForTools(Enchantment.fortune, 2); + Mithril .setEnchantmentForTools(Enchantment.fortune, 3); + Vinteum .setEnchantmentForTools(Enchantment.fortune, 1); + Thaumium .setEnchantmentForTools(Enchantment.fortune, 2); + InfusedWater .setEnchantmentForTools(Enchantment.fortune, 3); + + 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); + + 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); + + 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); + + 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); + + 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); + + 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); + + FryingOilHot .setHeatDamage(1.0F); + Lava .setHeatDamage(3.0F); + Firestone .setHeatDamage(5.0F); + Pyrotheum .setHeatDamage(5.0F); + + + 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 , Aluminium , Iron ); + Glauconite .addOreByProducts(Sodium , Aluminium , Iron ); + Vermiculite .addOreByProducts(Iron , Aluminium , Magnesium ); + FullersEarth .addOreByProducts(Aluminium , Silicon , Magnesium ); + Bentonite .addOreByProducts(Aluminium , 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 , Phosphorus , 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 , Aluminium , Rubidium ); + Chrysotile .addOreByProducts(Asbestos , Silicon , Magnesium ); + Asbestos .addOreByProducts(Asbestos , Silicon , 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 ); + Quartzite .addOreByProducts(CertusQuartz , Barite ); + CertusQuartz .addOreByProducts(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(Aluminium , GreenSapphire ); + GreenSapphire .addOreByProducts(Aluminium , Sapphire ); + Platinum .addOreByProducts(Nickel , Iridium ); + Emerald .addOreByProducts(Beryllium , Aluminium ); + 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(Aluminium , Lithium ); + Ruby .addOreByProducts(Chrome , GarnetRed ); + Phosphorus .addOreByProducts(Apatite , Phosphate ); + Iridium .addOreByProducts(Platinum , Osmium ); + Pyrope .addOreByProducts(GarnetRed , Magnesium ); + Almandine .addOreByProducts(GarnetRed , Aluminium ); + Spessartine .addOreByProducts(GarnetRed , Manganese ); + Grossular .addOreByProducts(GarnetYellow , Calcium ); + Uvarovite .addOreByProducts(GarnetYellow , Chrome ); + Calcite .addOreByProducts(Andradite , Malachite ); + NaquadahEnriched .addOreByProducts(Naquadah , Naquadria ); + Naquadah .addOreByProducts(NaquadahEnriched ); + Pyrolusite .addOreByProducts(Manganese ); + Molybdenite .addOreByProducts(Molybdenum ); + Stibnite .addOreByProducts(Antimony ); + Garnierite .addOreByProducts(Nickel ); + Lignite .addOreByProducts(Coal ); + Diamond .addOreByProducts(Graphite ); + Beryllium .addOreByProducts(Emerald ); + Apatite .addOreByProducts(Phosphorus ); + 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 ); +// Midasium .addOreByProducts(Gold ); + 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(Phosphor ); + Phosphor .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 ); + Salt .addOreByProducts(RockSalt ); + RockSalt .addOreByProducts(Salt); + InfusedGold .addOreByProduct(Gold); + + Glue.mChemicalFormula = "No Horses were harmed for the Production"; + UUAmplifier.mChemicalFormula = "Accelerates the Mass Fabricator"; + LiveRoot.mChemicalFormula = ""; + WoodSealed.mChemicalFormula = ""; + Wood.mChemicalFormula = ""; + FoolsRuby.mChemicalFormula = Ruby.mChemicalFormula; + + 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; + + Electrotine.mChemicalFormula = "Rp"; + Trinium.mChemicalFormula = "Ke"; + Naquadah.mChemicalFormula = "Nq"; + NaquadahEnriched.mChemicalFormula = "Nq+"; + Naquadria.mChemicalFormula = "Nq*"; + NaquadahAlloy.mChemicalFormula="Nq2KeC"; + Sunnarium.mChemicalFormula = "Su"; + Adamantium.mChemicalFormula="Ad"; + InfusedGold.mChemicalFormula="AuMa*"; + MeteoricIron.mChemicalFormula="SpFe"; + MeteoricSteel.mChemicalFormula="SpFe50C"; + Duranium.mChemicalFormula="Du"; + Tritanium.mChemicalFormula="Tt"; + Ardite.mChemicalFormula="Ai"; + Manyullyn.mChemicalFormula="AiCo"; + Mytryl.mChemicalFormula="SpPt2FeMa"; + BlackPlutonium.mChemicalFormula="SpPu"; + Ledox.mChemicalFormula="SpPb"; + CallistoIce.mChemicalFormula="SpH2O"; + Quantium.mChemicalFormula="Qt"; + Desh.mChemicalFormula="De"; + Draconium.mChemicalFormula="D"; + DraconiumAwakened.mChemicalFormula="D*"; + BlueAlloy.mChemicalFormula="AgRp4"; + RedAlloy.mChemicalFormula="Cu("+Redstone.mChemicalFormula+")4"; + AnyIron.mChemicalFormula="Fe"; + AnyCopper.mChemicalFormula="Cu"; + ElectrumFlux.mChemicalFormula="The formula is too long..."; + DeepIron.mChemicalFormula="Sp2Fe"; + Ichorium.mChemicalFormula="IcMa"; +// Duralumin.mChemicalFormula="Al6CuMnMg"; + } + + private static void initSubTags() { + SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM.addTo(Bastnasite, Monazite, Forcicium, Forcillium); + SubTag.ELECTROMAGNETIC_SEPERATION_GOLD.addTo(Magnetite, VanadiumMagnetite, BasalticMineralSand, GraniticMineralSand); + 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, YellowLimonite, BasalticMineralSand, GraniticMineralSand); + SubTag.BLASTFURNACE_CALCITE_TRIPLE.addTo(Iron, PigIron, DeepIron, ShadowIron, WroughtIron, MeteoricIron, BrownLimonite); + SubTag.WASHING_MERCURY.addTo(Gold, Silver, Osmium, Mithril, Platinum, /**Midasium,**/ Cooperite, AstralSilver); + 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, /**Satinspar, Selenite, Microcline, Sylvite, RefinedGlowstone, RefinedObsidian, Serpentine,**/ Signalum, Lumium, PhasedIron, PhasedGold, DarkSteel, Terrasteel, TinAlloy, ConductiveIron, ElectricalSteel, EnergeticAlloy, VibrantAlloy, + PulsatingIron, Manasteel, DarkThaumium, /**ElvenElementium**/ EnrichedCopper, DiamondCopper, Adamantium, Amordrine, Angmallen, Ardite, Aredrite, Atlarus, /**Blutonium,**/ Carmot, Celenegil, Ceruclase, DarkIron, + Desh, Desichalkos, Duranium, ElectrumFlux, Enderium, EnderiumBase, Eximite, FierySteel, Force, Haderoth, Hematite, Hepatizon, HSLA, Infuscolium, InfusedGold, Inolashite, Mercassium, MeteoricIron, + MeteoricSteel, Naquadah, NaquadahAlloy, NaquadahEnriched, Naquadria, ObsidianFlux, Orichalcum, Osmonium, Oureclase, Phoenixite, Prometheum, Sanguinite, /**Starconium,**/ + Tartarite, Ichorium,/**Thyrium,**/ Tritanium, Vulcanite, Vyroxeres, /**Yellorium,**/ Zectium, AluminiumBrass, Osmiridium, Sunnarium, AnnealedCopper, BatteryAlloy, Brass, Bronze, ChromiumDioxide, Cupronickel, DeepIron, + Electrum, Invar, /**IronCompressed,**/ 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, AstralSilver, /**Midasium,**/ Mithril, BlueAlloy, RedAlloy, CobaltBrass, Thaumium, Void, IronMagnetic, SteelMagnetic, NeodymiumMagnetic, Knightmetal, HSSG, HSSE, HSSS, TungstenCarbide, HeeEndium, + VanadiumSteel, Kalendrite, Ignatius, Trinium, Realgar, Chrysotile, BlackPlutonium, Alduorite, Adluorite, Vinteum, Rubracium, Draconium, DraconiumAwakened); + + 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); + Plastic .add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY); + Silicone .add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, 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); + 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); + 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); + Fluix .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + Phosphorus .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); +// Vinteum .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); + Infinite .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + + Blaze .add(SubTag.MAGICAL, SubTag.NO_SMELTING, SubTag.SMELTING_TO_FLUID, SubTag.MORTAR_GRINDABLE, SubTag.UNBURNABLE, SubTag.BURNING); + FierySteel .add(SubTag.MAGICAL, SubTag.UNBURNABLE, SubTag.BURNING); +// ElvenElementium .add(SubTag.MAGICAL); + DarkThaumium .add(SubTag.MAGICAL); + Thaumium .add(SubTag.MAGICAL); + Void .add(SubTag.MAGICAL); + Enderium .add(SubTag.MAGICAL); + AstralSilver .add(SubTag.MAGICAL); +// Midasium .add(SubTag.MAGICAL); + Mithril .add(SubTag.MAGICAL); + } + public static void init() { + new ProcessingConfig(); + if (!GT_Mod.gregtechproxy.mEnableAllMaterials) new ProcessingModSupport(); + for (IMaterialHandler aRegistrator : mMaterialHandlers) { + aRegistrator.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[MATERIALS_MAP.size()]); //Generate standard object array. This is a lot faster to loop over. + VALUES = Arrays.asList(MATERIALS_ARRAY); + if(!Loader.isModLoaded("dreamcraft")) + if (!GT_Mod.gregtechproxy.mEnableAllComponents) OrePrefixes.initMaterialComponents(); + 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"); + } + } + // Fills empty spaces with materials, causes horrible load times. + /*for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { + if (GregTech_API.sGeneratedMaterials[i] == null) { + GregTech_API.sGeneratedMaterials[i] = new Materials(i, TextureSet.SET_NONE, 1.0F, 0, 2, 1|2|4|8|16|32|64|128, 92, 0, 168, 0, "TestMat" + i, 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL, "testmat"); + } + }*/ + } + + public static void initMaterialProperties() { + 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); + StringBuilder aConfigPathSB = new StringBuilder(); + for (Materials aMaterial : MATERIALS_MAP.values()) { /** The only place where MATERIALS_MAP should be used to loop over all materials. **/ + if (aMaterial != null && aMaterial != Materials._NULL && aMaterial != Materials.Empty) { + aConfigPathSB.append("materials.").append(aMaterial.mConfigSection).append(".").append(aMaterial.mCustomOre ? aMaterial.mCustomID : aMaterial.mName); + String aConfigPath = aConfigPathSB.toString(); + aMaterial.mMetaItemSubID = GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialID", aMaterial.mCustomOre ? -1 : aMaterial.mMetaItemSubID); + aMaterial.mDefaultLocalName = GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialName", aMaterial.mCustomOre ? "CustomOre" + aMaterial.mCustomID : aMaterial.mDefaultLocalName); + aMaterial.mMeltingPoint = (short) 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); + if (GT_Mod.gregtechproxy.mTEMachineRecipes && aMaterial.mBlastFurnaceRequired && aMaterial.mBlastFurnaceTemp < 1500) GT_ModHandler.ThermalExpansion.addSmelterBlastOre(aMaterial); + aMaterial.mFuelPower = GregTech_API.sMaterialProperties.get(aConfigPath, "FuelPower", aMaterial.mFuelPower); + aMaterial.mFuelType = GregTech_API.sMaterialProperties.get(aConfigPath, "FuelType", aMaterial.mFuelType); + aMaterial.mOreValue = GregTech_API.sMaterialProperties.get(aConfigPath, "OreValue", aMaterial.mOreValue); + 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", (M * aMaterial.mDensityMultiplier) / aMaterial.mDensityDivider); + 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); + //aMaterial.mIconSet = TextureSet.valueOf(GregTech_API.sMaterialProperties.get(aConfigPath.toString(), "IconSet", aMaterial.mIconSet.mSetName)); + 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", String.valueOf(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]); + 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.mChemicalFormula = GregTech_API.sMaterialProperties.get(aConfigPath, "ChemicalFormula", aMaterial.mChemicalFormula); + aMaterial.mGasTemp = (short) GregTech_API.sMaterialProperties.get(aConfigPath, "GasTemp", aMaterial.mGasTemp); + 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)); + aMaterial.setHeatDamage((float) GregTech_API.sMaterialProperties.get(aConfigPath, "HeatDamage", aMaterial.mHeatDamage)); + 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.mHasParentMod = GregTech_API.sMaterialProperties.get(aConfigPath, "HasParentMod", aMaterial.mHasParentMod); + if (aMaterial.mHasPlasma = GregTech_API.sMaterialProperties.get(aConfigPath, "AddPlasma", aMaterial.mHasPlasma)) GT_Mod.gregtechproxy.addAutogeneratedPlasmaFluid(aMaterial); + if (aMaterial.mHasGas = GregTech_API.sMaterialProperties.get(aConfigPath, "AddGas", aMaterial.mHasGas)) GT_Mod.gregtechproxy.addFluid(aMaterial.mName.toLowerCase(), aMaterial.mDefaultLocalName, aMaterial, 2, aMaterial.mGasTemp); + 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())) { + for (int i = 0; i < Enchantment.enchantmentsList.length; i++) { + if (aEnchantmentName.equals(Enchantment.enchantmentsList[i].getName())) aMaterial.mEnchantmentTools = Enchantment.enchantmentsList[i]; + } + } + /** + * 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. + */ + List<String> aSubTags = new ArrayList<>(); + for (SubTag aTag : aMaterial.mSubTags) aSubTags.add(aTag.mName); + String aDefaultTagString = "," + aSubTags.toString().replace(" ", "").replace("[", "").replace("]", ""); + String aConfigTagString = GregTech_API.sMaterialProperties.get(aConfigPath, "ListSubTags", aDefaultTagString); + if (!aConfigTagString.equals(aDefaultTagString)) { + aMaterial.mSubTags.clear(); + if (aConfigTagString.length() > 0) { + aSubTags = new ArrayList<>(Arrays.asList(aConfigTagString.split(","))); + for (String aTagString : aSubTags) { + SubTag aTag = SubTag.sSubTags.get(aTagString); + if (aTag != null) aMaterial.mSubTags.add(aTag); + } + } + } + /** Same principal as SubTags **/ + List<String> aOreByProducts = new ArrayList<>(); + for (Materials aMat : aMaterial.mOreByProducts) aOreByProducts.add(aMat.mName); + String aDefaultMatByProString = "," + aOreByProducts.toString().replace(" ", "").replace("[", "").replace("]", ""); + String aConfigMatByProString = GregTech_API.sMaterialProperties.get(aConfigPath, "ListMaterialByProducts", aDefaultMatByProString); + if (!aConfigMatByProString.equals(aDefaultMatByProString)) { + aMaterial.mOreByProducts.clear(); + if (aConfigMatByProString.length() > 0) { + aOreByProducts = new ArrayList<>(Arrays.asList(aConfigMatByProString.split(","))); + for (String aMaterialString : aOreByProducts) { + Materials aMat = MATERIALS_MAP.get(aMaterialString); + if (aMat != null) aMaterial.mOreByProducts.add(aMat); + } + } + } + /** Same principal as SubTags **/ + List<String> aOreReRegistrations = new ArrayList<>(); + for (Materials aMat : aMaterial.mOreReRegistrations) aOreReRegistrations.add(aMat.mName); + String aDefaultMatReRegString = "," + aOreReRegistrations.toString().replace(" ", "").replace("[", "").replace("]", ""); + String aConfigMatMatReRegString = GregTech_API.sMaterialProperties.get(aConfigPath, "ListMaterialReRegistrations", aDefaultMatReRegString); + if (!aConfigMatMatReRegString.equals(aDefaultMatReRegString)) { + aMaterial.mOreReRegistrations.clear(); + if (aConfigMatMatReRegString.length() > 0) { + aOreReRegistrations = new ArrayList<>(Arrays.asList(aConfigMatMatReRegString.split(","))); + for (String aMaterialString : aOreReRegistrations) { + Materials aMat = MATERIALS_MAP.get(aMaterialString); + if (aMat != null) aMaterial.mOreReRegistrations.add(aMat); + } + } + } + /** Same principal as SubTags but with two values **/ + List<String> aAspects = new ArrayList<>(); + ArrayList<String> aAspectAmounts = new ArrayList<>(); + for (TC_Aspects.TC_AspectStack aAspectStack : aMaterial.mAspects) { + aAspects.add(aAspectStack.mAspect.toString()); + aAspectAmounts.add(String.valueOf(aAspectStack.mAmount)); + } + String aDefaultAspectString = "," + aAspects.toString().replace(" ", "").replace("[", "").replace("]", ""); + String aDefaultAspectAmountString = "," + aAspectAmounts.toString().replace(" ", "").replace("[", "").replace("]", ""); + 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) { + aAspects = new ArrayList<>(Arrays.asList(aConfigAspectString.split(","))); + for (int i = 0; i < aAspects.size(); i++) { + String aAspectString = aAspects.get(i); + long aAspectAmount = Long.parseLong(aAspectAmounts.get(i)); + TC_Aspects.TC_AspectStack aAspectStack = new TC_Aspects.TC_AspectStack(TC_Aspects.valueOf(aAspectString), aAspectAmount); + if (aAspectStack != null) aMaterial.mAspects.add(aAspectStack); + } + } + } + /** Moved the harvest level changes from GT_Mod to have less 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); + } + /** 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) && Loader.isModLoaded(GT_Values.MOD_ID_TC) ? Thaumium : aMaterial.getMass() > Element.Tc.getMass() * 2 ? TungstenSteel : aMaterial.getMass() > Element.Tc.getMass() ? Steel : Wood); + } + aConfigPathSB.setLength(0); + } + } + + 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; - mToolQuality = (byte) aToolQuality; - mDurability = aToolDurability; + 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; - if (aMetaItemSubID >= 0) { - if (GregTech_API.sGeneratedMaterials[aMetaItemSubID] == null) { - GregTech_API.sGeneratedMaterials[aMetaItemSubID] = this; - } else { - throw new IllegalArgumentException("The Index " + aMetaItemSubID + " is already used!"); - } - } } - private Materials(Materials aMaterialInto, boolean aReRegisterIntoThis) { + 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; @@ -1362,7 +1609,13 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { mIconSet = TextureSet.SET_NONE; } - /**Extra data contains bits 0x01 - add reverse processing electrolyzer , 0x02 - add reverse processing centrifuge + 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 @@ -1375,47 +1628,47 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { * 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 aLocalName The Name used as Default for localization. + * @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 Furnii. - * @param aBlastFurnaceTemp Used to determine the needed Heat capactiy Costs in Blast Furnii. ADD 20000 to remove EBF recipes to add them MANUALLY ! :D + * @param aMeltingPoint Used to determine the smelting Costs in Furnii. >>>>**ADD 20000 to remove EBF recipes to add them MANUALLY ! :D**<<<< + * @param aBlastFurnaceTemp Used to determine the needed Heat capactiy Costs in Blast Furnii. * @param aBlastFurnaceRequired If this requires a Blast Furnace. * @param aColor Vanilla MC Wool Color which comes the closest to this. */ - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor) { - this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, true); - mDefaultLocalName = aLocalName; + 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 = (short) aMeltingPoint; - mBlastFurnaceTemp = (short) aBlastFurnaceTemp; mBlastFurnaceRequired = aBlastFurnaceRequired; - if (aTransparent) add(SubTag.TRANSPARENT); + mBlastFurnaceTemp = (short) aBlastFurnaceTemp; + mTransparent = aTransparent; mFuelPower = aFuelPower; mFuelType = aFuelType; mOreValue = aOreValue; + mDensityMultiplier = aDensityMultiplier; + mDensityDivider = aDensityDivider; mDensity = (M * aDensityMultiplier) / aDensityDivider; - mColor = aColor == null ? Dyes._NULL : aColor; - if (mColor != null) add(SubTag.HAS_COLOR); + 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); } - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, List<TC_AspectStack> aAspects) { - this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor); + 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); } - /** - * @param aElement The Element Enum represented by this Material - */ - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, Element aElement, List<TC_AspectStack> aAspects) { - this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor); + 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) { @@ -1427,12 +1680,12 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { mAspects.addAll(aAspects); } - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, 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, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, 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) { + 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); } - private Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, 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_AspectStack> aAspects) { - this(aMetaItemSubID, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor); + 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); mChemicalFormula = ""; @@ -1445,43 +1698,56 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { if (tMaterial.mMaterial.mMeltingPoint > 0) tMeltingPoint += tMaterial.mMaterial.mMeltingPoint * tMaterial.mAmount; if (aAspects == null) - for (TC_AspectStack tAspect : tMaterial.mMaterial.mAspects) tAspect.addToAspectList(mAspects); + 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_AspectStack tAspect : mAspects) + 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); } - public static Materials get(String aMaterialName) { - Object tObject = GT_Utility.getFieldContent(Materials.class, aMaterialName, false, false); - if (tObject instanceof Materials) return (Materials) tObject; - return _NULL; + /** + * 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 static Materials getRealMaterial(String aMaterialName) { - return get(aMaterialName).mMaterialInto; + /** + * 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); } /** - * Called in preInit with the Config to set Values. - * - * @param aConfiguration + * This is for keeping compatibility with addons mods (Such as TinkersGregworks etc) that looped over the old materials enum */ - public static void init(GT_Config aConfiguration) { - for (Materials tMaterial : VALUES) { - String tString = tMaterial.toString().toLowerCase(Locale.ENGLISH); - tMaterial.mHeatDamage = (float) aConfiguration.get(ConfigCategories.Materials.heatdamage, tString, tMaterial.mHeatDamage); - if (tMaterial.mBlastFurnaceRequired) - tMaterial.mBlastFurnaceRequired = aConfiguration.get(ConfigCategories.Materials.blastfurnacerequirements, tString, true); - if (tMaterial.mBlastFurnaceRequired && aConfiguration.get(ConfigCategories.Materials.blastinductionsmelter, tString, (tMaterial.mBlastFurnaceTemp < 1500))) - GT_ModHandler.ThermalExpansion.addSmelterBlastOre(tMaterial); - tMaterial.mHandleMaterial = (tMaterial == Desh ? tMaterial.mHandleMaterial : tMaterial == Diamond || tMaterial == Thaumium ? Wood : tMaterial.contains(SubTag.BURNING) ? Blaze : tMaterial.contains(SubTag.MAGICAL) && tMaterial.contains(SubTag.CRYSTAL) && Loader.isModLoaded(MOD_ID_TC) ? Thaumium : tMaterial.getMass() > Element.Tc.getMass() * 2 ? TungstenSteel : tMaterial.getMass() > Element.Tc.getMass() ? Steel : Wood); - } + 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; + } + + public static Materials get(String aMaterialName) { + Materials aMaterial = getMaterialsMap().get(aMaterialName); + if (aMaterial != null) return aMaterial; + return Materials._NULL; + } + + public static Materials getRealMaterial(String aMaterialName) { + return get(aMaterialName).mMaterialInto; } public boolean isRadioactive() { @@ -1546,6 +1812,14 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { } return mChemicalFormula; } + + /** + * Adds a Class implementing IMaterialRegistrator to the master list + */ + public static boolean add(IMaterialHandler aRegistrator) { + if (aRegistrator == null) return false; + return mMaterialHandlers.add(aRegistrator); + } /** * Adds an ItemStack to this Material. @@ -1572,8 +1846,8 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { 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++) + 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; @@ -1745,5 +2019,73 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { return mRGBa; } + @Override + public String toString() { + return this.mName; + } + public static volatile int VERSION = 509; -} + + public static Collection<Materials> getAll(){ + return MATERIALS_MAP.values(); + } + + + 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 int getLiquidTemperature() { + return mMeltingPoint == 0 ? 295 : mMeltingPoint; + } + + public Materials setLiquidTemperature(int liquidTemperature) { + this.mMeltingPoint = (short) liquidTemperature; + return this; + } + + public int getGasTemperature() { + return mGasTemp == 0 ? 295 : mMeltingPoint; + } + + public Materials setGasTemperature(int gasTemperature) { + this.mGasTemp = (short) gasTemperature; + return this; + } + + 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); + } + +}
\ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java index 0c84757aab..ad1ba3f038 100644 --- a/src/main/java/gregtech/api/enums/OrePrefixes.java +++ b/src/main/java/gregtech/api/enums/OrePrefixes.java @@ -1,19 +1,19 @@ package gregtech.api.enums; +import gregtech.api.GregTech_API; import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.ICondition; +import gregtech.api.interfaces.IMaterialHandler; import gregtech.api.interfaces.IOreRecipeRegistrator; import gregtech.api.interfaces.ISubTagContainer; 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 net.minecraft.item.ItemStack; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; +import java.util.*; import static gregtech.api.enums.GT_Values.*; @@ -439,7 +439,8 @@ public enum OrePrefixes { 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); @@ -514,6 +515,8 @@ public enum OrePrefixes { 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); @@ -544,7 +547,7 @@ public enum OrePrefixes { * Negative = Undefined Amount */ public final long mMaterialAmount; - private final Collection<Materials> mNotGeneratedItems = new HashSet<Materials>(), mIgnoredMaterials = new HashSet<Materials>(), mGeneratedItems = new HashSet<Materials>(); + public final Collection<Materials> mDisabledItems = new HashSet<Materials>(), mNotGeneratedItems = new HashSet<Materials>(), mIgnoredMaterials = new HashSet<Materials>(), mGeneratedItems = new HashSet<Materials>(); private final ArrayList<IOreRecipeRegistrator> mOreProcessing = new ArrayList<IOreRecipeRegistrator>(); public ItemStack mContainerItem = null; public ICondition<ISubTagContainer> mCondition = null; @@ -552,6 +555,7 @@ public enum OrePrefixes { public MaterialStack mSecondaryMaterial = null; public OrePrefixes mPrefixInto = this; public float mHeatDamage = 0.0F; // Negative for Frost Damage + public static 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)); /** * Yes this Value can be changed to add Bits for the MetaGenerated-Item-Check. */ @@ -611,6 +615,186 @@ public enum OrePrefixes { } } + public static void initMaterialComponents() { + boolean enablePerItemSettings = GregTech_API.sMaterialComponents.get("general", "enablePerItemSettings", false); + boolean enableUnusedPlates = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedPlates", false); + boolean enableUnusedDoubleIngots = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedDoubleIngots", false); + boolean enableUnusedTripleIngots = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedTripleIngots", false); + boolean enableUnusedQuadIngots = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedQuadIngots", false); + boolean enableUnusedQuinIngots = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedQuinIngots", false); + boolean enableUnusedDoublePlates = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedDoublePlates", false); + boolean enableUnusedTriplePlates = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedTriplePlates", false); + boolean enableUnusedQuadPlates = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedQuadPlates", false); + boolean enableUnusedQuinPlates = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedQuinPlates", false); + boolean enableUnusedDensePlates = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedDensePlates", false); + boolean enableUnusedGears = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedGears", false); + boolean enableUnusedSmallGears = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedSmallGears", false); + boolean enableUnusedRings = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedRings", false); + boolean enableUnusedSprings = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedSprings", false); + boolean enableUnusedSmallSprings = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedSmallSprings", false); + boolean enableUnusedRounds = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedRounds", false); + boolean enableUnusedRotors = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedRotors", false); + boolean enableUnusedFineWires = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedFineWires", false); + boolean enableUnusedFoil = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedFoil", false); + boolean enableUnusedArrows = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedArrowHeads", false); + boolean enableUnusedCrates = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedCrates", false); + boolean enableUnusedBolts = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedBolts", false); + boolean enableUnusedScrews = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedScrews", false); + boolean enableUnusedRods = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedRods", false); + boolean enableUnusedLongRods = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedLongRods", false); + boolean enableUnusedGems = GregTech_API.sMaterialComponents.get("globalcomponents", "enableUnusedGems", false); + + //TODO possibly use OrePrefix mNotGeneratedItems/mGeneratedItems instead of a static List for every material instance? + //TODO Make sure stuff like gem plates / standard plates / paper plates all generate with the current condition + for (Materials aMaterial : Materials.values()) { + if (aMaterial.mMetaItemSubID > 0) { + if (aMaterial.mBlastFurnaceTemp <= 1750) ingotHot.mDisabledItems.add(aMaterial); //Moved HotIngot code from GT_MetaGenerated_Item_01 so all this is in once place + if (!enableUnusedSprings && (aMaterial != Materials.Titanium)) spring.mDisabledItems.add(aMaterial); + if (!enableUnusedSmallSprings) springSmall.mDisabledItems.add(aMaterial); + if (!enableUnusedRounds && !(aMaterial == Materials.HSSE || aMaterial == Materials.Neutronium || aMaterial == Materials.HSSG)) round.mDisabledItems.add(aMaterial); + if (!enableUnusedCrates) { + if (!(aMaterial == Materials.DamascusSteel || aMaterial == Materials.Steel || aMaterial == Materials.Bronze || aMaterial == Materials.Manganese)) + crateGtIngot.mDisabledItems.add(aMaterial); + if (!(aMaterial == Materials.Neodymium || aMaterial == Materials.Chrome)) + crateGtDust.mDisabledItems.add(aMaterial); + crateGtGem.mDisabledItems.add(aMaterial); + crateGtPlate.mDisabledItems.add(aMaterial); + } + if (!enableUnusedArrows) { + toolHeadArrow.mDisabledItems.add(aMaterial); + arrowGtPlastic.mDisabledItems.add(aMaterial); + if (!(aMaterial == Materials.DamascusSteel || aMaterial == Materials.SterlingSilver)) + arrowGtWood.mDisabledItems.add(aMaterial); + } + //Plates + if (!enableUnusedPlates && ((aMaterial.mTypes & 0x40) == 0) && !(aMaterial == Materials.Silicon || aMaterial == Materials.Zinc || + aMaterial == Materials.Europium || aMaterial == Materials.Americium || aMaterial == Materials.RedAlloy || aMaterial == Materials.SolderingAlloy || aMaterial == Materials.BatteryAlloy || + aMaterial == Materials.AnnealedCopper || aMaterial == Materials.Firestone || aMaterial == Materials.VanadiumGallium || aMaterial == Materials.YttriumBariumCuprate || + aMaterial == Materials.NiobiumTitanium || aMaterial == Materials.CertusQuartz || aMaterial == Materials.NetherQuartz || aMaterial == Materials.Lazurite || aMaterial == Materials.Lapis || + aMaterial == Materials.Paper || aMaterial == Materials.Jasper || aMaterial == Materials.Dilithium || aMaterial == Materials.Forcicium || aMaterial == Materials.Forcillium || + aMaterial == Materials.EnderPearl || aMaterial == Materials.EnderEye || aMaterial == Materials.Glass || aMaterial == Materials.Copper || aMaterial == Materials.Tin || aMaterial == Materials.Redstone || + aMaterial == Materials.Sodalite || aMaterial == Materials.Gallium || aMaterial == Materials.GalliumArsenide || aMaterial == Materials.IndiumGalliumPhosphide)) + plate.mDisabledItems.add(aMaterial); + //Ingot/Plate Storage + if (!enableUnusedDoubleIngots) ingotDouble.mDisabledItems.add(aMaterial); + if (!enableUnusedTripleIngots) ingotTriple.mDisabledItems.add(aMaterial); + if (!enableUnusedQuadIngots) ingotQuadruple.mDisabledItems.add(aMaterial); + if (!enableUnusedQuinIngots) ingotQuintuple.mDisabledItems.add(aMaterial); + if (!enableUnusedDoublePlates && ((aMaterial.mTypes & 0x40) == 0) && !(aMaterial == Materials.Paper || aMaterial == Materials.Aluminium || aMaterial == Materials.Steel || aMaterial == Materials.TungstenSteel)) + plateDouble.mDisabledItems.add(aMaterial); + if (!enableUnusedTriplePlates && !(aMaterial == Materials.Paper)) plateTriple.mDisabledItems.add(aMaterial); + if (!enableUnusedQuadPlates && !(aMaterial == Materials.Paper)) plateQuadruple.mDisabledItems.add(aMaterial); + if (!enableUnusedQuinPlates && !(aMaterial == Materials.Paper)) plateQuintuple.mDisabledItems.add(aMaterial); + if (!(enableUnusedDensePlates || GregTech_API.mGTPlusPlus) && !(aMaterial == Materials.Iron || aMaterial == Materials.Copper || aMaterial == Materials.Lead || aMaterial == Materials.Paper)) + plateDense.mDisabledItems.add(aMaterial); + //Rotors + if (!enableUnusedRotors && !(aMaterial == Materials.Titanium || aMaterial == Materials.Chrome || aMaterial == Materials.Tin || aMaterial == Materials.Osmium || + aMaterial == Materials.Iridium || aMaterial == Materials.Bronze || aMaterial == Materials.Steel || aMaterial == Materials.StainlessSteel || + aMaterial == Materials.TungstenSteel || aMaterial == Materials.HSSG || aMaterial == Materials.HSSE || aMaterial == Materials.Neutronium)) + rotor.mDisabledItems.add(aMaterial); + //Rings + if (!enableUnusedRings && !(aMaterial == Materials.Titanium || aMaterial == Materials.Chrome || aMaterial == Materials.Iron || aMaterial == Materials.Tin || + aMaterial == Materials.Osmium || aMaterial == Materials.Iridium || aMaterial == Materials.Bronze || aMaterial == Materials.WroughtIron || + aMaterial == Materials.Steel || aMaterial == Materials.StainlessSteel || aMaterial == Materials.PigIron || aMaterial == Materials.TungstenSteel || + aMaterial == Materials.Rubber || aMaterial == Materials.HSSE || aMaterial == Materials.Neutronium || aMaterial == Materials.HSSG || aMaterial == Materials.Aluminium || + aMaterial == Materials.Invar || aMaterial == Materials.Brass || aMaterial == Materials.Paper || aMaterial == Materials.Silicone)) + ring.mDisabledItems.add(aMaterial); + //Foil + if (!enableUnusedFoil && !(aMaterial == Materials.Zinc || aMaterial == Materials.Aluminium || aMaterial == Materials.Silicon || aMaterial == Materials.Gold || + aMaterial == Materials.Electrum || aMaterial == Materials.Platinum || aMaterial == Materials.Osmiridium || aMaterial == Materials.Osmium || + aMaterial == Materials.AnnealedCopper || aMaterial == Materials.Steel || aMaterial == Materials.Copper || aMaterial == Materials.YttriumBariumCuprate + || aMaterial == Materials.VanadiumGallium || aMaterial == Materials.NiobiumTitanium || aMaterial == Materials.Naquadah || aMaterial == Materials.Manganese || + aMaterial == Materials.Plastic || aMaterial == Materials.Silicone)) + foil.mDisabledItems.add(aMaterial); + //Fine Wire + if (!enableUnusedFineWires && !(aMaterial == Materials.Steel || aMaterial == Materials.AnnealedCopper || aMaterial == Materials.Platinum || aMaterial == Materials.Osmium || + aMaterial == Materials.Tin || aMaterial == Materials.Lead || aMaterial == Materials.SolderingAlloy || aMaterial == Materials.Copper || aMaterial == Materials.Electrum || + aMaterial == Materials.Gold || aMaterial == Materials.RedAlloy || aMaterial == Materials.Graphene || aMaterial == Materials.NiobiumTitanium || aMaterial == Materials.YttriumBariumCuprate )) + wireFine.mDisabledItems.add(aMaterial); + //Gears + if (!enableUnusedGears && !(aMaterial == Materials.Aluminium || aMaterial == Materials.Titanium || aMaterial == Materials.Iron || aMaterial == Materials.Copper || + aMaterial == Materials.Tin || aMaterial == Materials.Gold || aMaterial == Materials.Stone || aMaterial == Materials.Bronze || + aMaterial == Materials.Steel || aMaterial == Materials.StainlessSteel || aMaterial == Materials.TungstenSteel || aMaterial == Materials.CobaltBrass || + aMaterial == Materials.Diamond || aMaterial == Materials.Wood || aMaterial == Materials.HSSG || aMaterial == Materials.HSSE || aMaterial == Materials.Neutronium)) + gearGt.mDisabledItems.add(aMaterial); + //Small Gears + if (!enableUnusedSmallGears && !(aMaterial == Materials.Aluminium || aMaterial == Materials.Titanium || aMaterial == Materials.Steel || aMaterial == Materials.StainlessSteel || + aMaterial == Materials.TungstenSteel || aMaterial == Materials.HSSG || aMaterial == Materials.HSSE || aMaterial == Materials.Neutronium)) + gearGtSmall.mDisabledItems.add(aMaterial); + //Bolts + if (!enableUnusedBolts && ((aMaterial.mTypes & 0x40) == 0) && !(aMaterial == Materials.Titanium || aMaterial == Materials.Chrome || aMaterial == Materials.Iron || + aMaterial == Materials.Tin || aMaterial == Materials.Osmium || aMaterial == Materials.Iridium || aMaterial == Materials.Neutronium || + aMaterial == Materials.Bronze || aMaterial == Materials.WroughtIron || aMaterial == Materials.Steel || aMaterial == Materials.StainlessSteel || + aMaterial == Materials.PigIron || aMaterial == Materials.TungstenSteel || aMaterial == Materials.Tungsten || aMaterial == Materials.HSSE || aMaterial == Materials.HSSG)) + bolt.mDisabledItems.add(aMaterial); + //Screws + if (!enableUnusedScrews && ((aMaterial.mTypes & 0x40) == 0) && !(aMaterial == Materials.Titanium || aMaterial == Materials.Chrome || aMaterial == Materials.Iron || + aMaterial == Materials.Tin || aMaterial == Materials.Osmium || aMaterial == Materials.Iridium || aMaterial == Materials.Neutronium || + aMaterial == Materials.Bronze || aMaterial == Materials.WroughtIron || aMaterial == Materials.Steel || aMaterial == Materials.StainlessSteel || + aMaterial == Materials.PigIron || aMaterial == Materials.TungstenSteel || aMaterial == Materials.HSSE || aMaterial == Materials.HSSG)) + screw.mDisabledItems.add(aMaterial); + //Rods + if (!enableUnusedRods && ((aMaterial.mTypes & 0x40) == 0) && !(aMaterial == Materials.Titanium || aMaterial == Materials.Chrome || aMaterial == Materials.Iron || + aMaterial == Materials.Tin || aMaterial == Materials.Osmium || aMaterial == Materials.Iridium || aMaterial == Materials.Neutronium || + aMaterial == Materials.Bronze || aMaterial == Materials.WroughtIron || aMaterial == Materials.Steel || aMaterial == Materials.StainlessSteel || + aMaterial == Materials.PigIron || aMaterial == Materials.TungstenSteel || aMaterial == Materials.HSSE || aMaterial == Materials.HSSG || + aMaterial == Materials.Aluminium || aMaterial == Materials.Copper || aMaterial == Materials.Neodymium || aMaterial == Materials.Europium || + aMaterial == Materials.Platinum || aMaterial == Materials.Gold || aMaterial == Materials.Uranium235 || aMaterial == Materials.Plutonium241 || + aMaterial == Materials.Americium || aMaterial == Materials.Neutronium || aMaterial == Materials.Bronze || aMaterial == Materials.Brass || + aMaterial == Materials.Electrum || aMaterial == Materials.NaquadahEnriched || aMaterial == Materials.CobaltBrass || aMaterial == Materials.IronMagnetic || + aMaterial == Materials.SteelMagnetic || aMaterial == Materials.NeodymiumMagnetic || aMaterial == Materials.VanadiumGallium || aMaterial == Materials.Diamond || + aMaterial == Materials.Wood || aMaterial == Materials.Plastic || aMaterial == Materials.Lead || aMaterial == Materials.SolderingAlloy || aMaterial == Materials.Lapis || + aMaterial == Materials.Lazurite || aMaterial == Materials.Sodalite|| aMaterial == Materials.PolyvinylChloride)) + stick.mDisabledItems.add(aMaterial); + //Long Rods + if (!enableUnusedLongRods && ((aMaterial.mTypes & 0x40) == 0) && !(aMaterial == Materials.Titanium || aMaterial == Materials.NeodymiumMagnetic || aMaterial == Materials.HSSG || aMaterial == Materials.HSSE || + aMaterial == Materials.Neutronium || aMaterial == Materials.Americium || aMaterial == Materials.WroughtIron || aMaterial == Materials.Magnalium || + aMaterial == Materials.TungstenSteel)) + stickLong.mDisabledItems.add(aMaterial); + + if (!enableUnusedGems && ((aMaterial.mTypes & 0x04) == 0)) { + gem.mDisabledItems.add(aMaterial); + gemChipped.mDisabledItems.add(aMaterial); + gemFlawless.mDisabledItems.add(aMaterial); + gemFlawed.mDisabledItems.add(aMaterial); + gemExquisite.mDisabledItems.add(aMaterial); + } + } + } + for (IMaterialHandler aRegistrator : Materials.mMaterialHandlers) { + aRegistrator.onComponentInit(); + } + for (Materials aMaterial : Materials.values()) { + if (aMaterial.mMetaItemSubID > 0) { + for (IMaterialHandler aRegistrator : Materials.mMaterialHandlers) { + aRegistrator.onComponentIteration(aMaterial); + } + if (enablePerItemSettings) { + StringBuilder aConfigPathSB = new StringBuilder(); + aConfigPathSB.append("materialcomponents.").append(aMaterial.mConfigSection).append(".").append(aMaterial.mName); + String aConfigPath = aConfigPathSB.toString(); + for (OrePrefixes aPrefix : mPreventableComponents) { + boolean aEnableComponent = GregTech_API.sMaterialComponents.get(aConfigPath, aPrefix.toString(), !aPrefix.mDisabledItems.contains(aMaterial)); + if (!aEnableComponent) { //Disable component if false and is not already in disabled list + aPrefix.disableComponent(aMaterial); + } else if (aEnableComponent) { //Enable component if true and is not already in enabled list + aPrefix.enableComponent(aMaterial); + } + } + aConfigPathSB.setLength(0); + } + } + } + } + + public void enableComponent(Materials aMaterial) { + if (this.mDisabledItems.contains(aMaterial)) this.mDisabledItems.remove(aMaterial); + } + + 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())) { @@ -681,7 +865,7 @@ public enum OrePrefixes { } public boolean doGenerateItem(Materials aMaterial) { - return aMaterial != null && aMaterial != Materials._NULL && ((aMaterial.mTypes & mMaterialGenerationBits) != 0 || mGeneratedItems.contains(aMaterial)) && !mNotGeneratedItems.contains(aMaterial) && (mCondition == null || mCondition.isTrue(aMaterial)); + return aMaterial != null && aMaterial != Materials._NULL && ((aMaterial.mTypes & mMaterialGenerationBits) != 0 || mGeneratedItems.contains(aMaterial) /*|| mDynamicItems.contains(aMaterial)*/) && !mNotGeneratedItems.contains(aMaterial) && !mDisabledItems.contains(aMaterial) && (mCondition == null || mCondition.isTrue(aMaterial)); } public boolean ignoreMaterials(Materials... aMaterials) { @@ -705,12 +889,13 @@ public enum OrePrefixes { } public void processOre(Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - if (aMaterial != null && (aMaterial != Materials._NULL || mIsSelfReferencing || !mIsMaterialBased) && GT_Utility.isStackValid(aStack)) + if (aMaterial != null && (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.name() + "' at " + GT_Utility.getClassName(tRegistrator)); + 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) { @@ -731,117 +916,133 @@ public enum OrePrefixes { case crateGtPlate: return mLocalizedMaterialPre + OrePrefixes.plate.getDefaultLocalNameForItem(aMaterial); } - switch (aMaterial) { - case Glass: + switch (aMaterial.mName) { + case "Glass": if (name().startsWith("gem")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal"; if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pane"; break; - case InfusedAir: - case InfusedDull: - case InfusedEarth: - case InfusedEntropy: - case InfusedFire: - case InfusedOrder: - case InfusedVis: - case InfusedWater: - if (name().startsWith("gem")) return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName; - if (name().startsWith("crystal")) - return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName; - if (name().startsWith("plate")) - return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Plate"; - if (name().startsWith("dust")) - return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Powder"; - if (this == OrePrefixes.crushedCentrifuged) - return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; - if (this == OrePrefixes.crushedPurified) - return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; - if (this == OrePrefixes.crushed) - return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; - break; - case Wheat: + case "Wheat": if (name().startsWith("dust")) return mLocalizedMaterialPre + "Flour"; break; - case Ice: + case "Ice": if (name().startsWith("dust")) return mLocalizedMaterialPre + "Crushed Ice"; break; - case Wood: - case WoodSealed: + case "Wood": + case "WoodSealed": if (name().startsWith("bolt")) return "Short " + aMaterial.mDefaultLocalName + " Stick"; if (name().startsWith("stick")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Stick"; if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pulp"; if (name().startsWith("nugget")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Chip"; if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Plank"; break; - case Plastic: - case Rubber: + case "Plastic": + case "Rubber": + case "Polyethylene": + case "Epoxid": + case "Silicone": + case "Polysiloxane": + case "Polycaprolactam": + case "Polytetrafluoroethylene": + case "PolyvinylChloride": if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pulp"; if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Sheet"; if (name().startsWith("ingot")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Bar"; if (name().startsWith("nugget")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Chip"; if (name().startsWith("foil")) return "Thin " + aMaterial.mDefaultLocalName + " Sheet"; break; - case FierySteel: + case "FierySteel": if (mIsContainer) return mLocalizedMaterialPre + "Fiery Blood" + mLocalizedMaterialPost; break; - case Steeleaf: + case "Steeleaf": if (name().startsWith("ingot")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; break; - case Bone: + case "Bone": if (name().startsWith("dust")) return mLocalizedMaterialPre + "Bone Meal"; break; - case Blaze: - case Milk: - case Cocoa: - case Chocolate: - case Coffee: - case Chili: - case Cheese: - case Snow: + case "Blaze": + case "Milk": + case "Cocoa": + case "Chocolate": + case "Coffee": + case "Chili": + case "Cheese": + case "Snow": if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Powder"; break; - case Paper: + case "Paper": if (name().startsWith("dust")) return mLocalizedMaterialPre + "Chad"; - if (this == OrePrefixes.plate) return "Sheet of Paper"; - if (this == OrePrefixes.plateDouble) return "Paperboard"; - if (this == OrePrefixes.plateTriple) return "Carton"; - if (this == OrePrefixes.plateQuadruple) return "Cardboard"; - if (this == OrePrefixes.plateQuintuple) return "Thick Cardboard"; - if (this == OrePrefixes.plateDense) return "Strong Cardboard"; + 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"; + } break; - case MeatRaw: + case "MeatRaw": if (name().startsWith("dust")) return mLocalizedMaterialPre + "Mince Meat"; break; - case MeatCooked: + case "MeatCooked": if (name().startsWith("dust")) return mLocalizedMaterialPre + "Cooked Mince Meat"; break; - case Ash: - case DarkAsh: - case Gunpowder: - case Sugar: - case Salt: - case RockSalt: - case VolcanicAsh: - case RareEarth: + case "Ash": + case "DarkAsh": + case "Gunpowder": + case "Sugar": + case "Salt": + case "RockSalt": + case "VolcanicAsh": + case "RareEarth": if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; break; - case Vermiculite: - case Bentonite: - case Kaolinite: - case Talc: - case BasalticMineralSand: - case GraniticMineralSand: - case GlauconiteSand: - case CassiteriteSand: - case GarnetSand: - case QuartzSand: - case Pitchblende: - case FullersEarth: + case "Vermiculite": + case "Bentonite": + case "Kaolinite": + case "Talc": + case "BasalticMineralSand": + case "GraniticMineralSand": + case "GlauconiteSand": + case "CassiteriteSand": + case "GarnetSand": + case "QuartzSand": + case "Pitchblende": + case "FullersEarth": if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - if (this == OrePrefixes.crushedCentrifuged) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - if (this == OrePrefixes.crushedPurified) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - if (this == OrePrefixes.crushed) return "Ground " + aMaterial.mDefaultLocalName; + switch (this) { + case crushedCentrifuged: + case crushedPurified: + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; + case crushed: + return "Ground " + aMaterial.mDefaultLocalName; + } break; } + if (ProcessingModSupport.aEnableThaumcraftMats) { + switch (aMaterial.mName) { + case "InfusedAir": + case "InfusedDull": + case "InfusedEarth": + case "InfusedEntropy": + case "InfusedFire": + case "InfusedOrder": + case "InfusedVis": + case "InfusedWater": + if (name().startsWith("gem")) return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName; + if (name().startsWith("crystal")) return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName; + if (name().startsWith("plate")) + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Plate"; + if (name().startsWith("dust")) + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Powder"; + switch (this) { + case crushedCentrifuged: + case crushedPurified: + case crushed: + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; + } + break; + } + } // Use Standard Localization return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + mLocalizedMaterialPost; } diff --git a/src/main/java/gregtech/api/enums/SubTag.java b/src/main/java/gregtech/api/enums/SubTag.java index 90191bf082..7de2176e3e 100644 --- a/src/main/java/gregtech/api/enums/SubTag.java +++ b/src/main/java/gregtech/api/enums/SubTag.java @@ -3,8 +3,8 @@ package gregtech.api.enums; import gregtech.api.interfaces.ICondition; import gregtech.api.interfaces.ISubTagContainer; -import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.HashSet; /** @@ -21,7 +21,7 @@ import java.util.HashSet; * 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 ArrayList<SubTag> sSubTags = new ArrayList<SubTag>(); + public static final HashMap<String, SubTag> sSubTags = new HashMap<String, SubTag>(); private static long sSubtagID = 0; public final long mSubtagID; public final String mName; @@ -231,11 +231,11 @@ public final class SubTag implements ICondition<ISubTagContainer> { private SubTag(String aName) { mSubtagID = sSubtagID++; mName = aName; - sSubTags.add(this); + sSubTags.put(aName, this); } public static SubTag getNewSubTag(String aName) { - for (SubTag tSubTag : sSubTags) if (tSubTag.mName.equals(aName)) return tSubTag; + for (SubTag tSubTag : sSubTags.values()) if (tSubTag.mName.equals(aName)) return tSubTag; return new SubTag(aName); } diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index f4461596e3..93b9e93299 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -15,30 +15,113 @@ import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; public class Textures { public enum BlockIcons implements IIconContainer, Runnable { - VOID, // The Empty Texture //ADDED - MACHINE_UEV_SIDE, - MACHINE_UIV_SIDE, - MACHINE_UMV_SIDE, - MACHINE_UXV_SIDE, - MACHINE_OPV_SIDE, - MACHINE_MAXV_SIDE, - MACHINE_UEV_TOP, - MACHINE_UIV_TOP, - MACHINE_UMV_TOP, - MACHINE_UXV_TOP, - MACHINE_OPV_TOP, - MACHINE_MAXV_TOP, - MACHINE_UEV_BOTTOM, - MACHINE_UIV_BOTTOM, - MACHINE_UMV_BOTTOM, - MACHINE_UXV_BOTTOM, - MACHINE_OPV_BOTTOM, - MACHINE_MAXV_BOTTOM, - OVERLAY_SCHEST, - OVERLAY_STANK, + MACHINE_UEV_SIDE, MACHINE_UIV_SIDE, + MACHINE_UMV_SIDE, MACHINE_UXV_SIDE, + MACHINE_OPV_SIDE, MACHINE_MAXV_SIDE, + MACHINE_UEV_TOP, MACHINE_UIV_TOP, + MACHINE_UMV_TOP, MACHINE_UXV_TOP, + MACHINE_OPV_TOP, MACHINE_MAXV_TOP, + MACHINE_UEV_BOTTOM, MACHINE_UIV_BOTTOM, + MACHINE_UMV_BOTTOM, MACHINE_UXV_BOTTOM, + MACHINE_OPV_BOTTOM, MACHINE_MAXV_BOTTOM, + OVERLAY_SCHEST, OVERLAY_STANK, + 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_15,MACHINE_CASING_TANK_0, + BLOCK_STEELEAF, BLOCK_ICHORIUM, + OVERLAY_ENERGY_IN_POWER,OVERLAY_ENERGY_OUT_POWER,OVERLAY_AUTOMAINTENANCE,OVERLAY_AUTOMAINTENANCE_IDLE,OVERLAY_TELEPORTER_SIDES,INSULATION_MEDIUM_PLUS, // - 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, VENT_NORMAL, VENT_ADVANCED, COVER_WOOD_PLATE, ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, AUTOMATION_FILTER, AUTOMATION_TYPEFILTER, AUTOMATION_CHESTBUFFER, AUTOMATION_SUPERBUFFER, AUTOMATION_REGULATOR, 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_COIL_SUPERCONDUCTOR, MACHINE_BRONZEBLASTFURNACE, MACHINE_BRONZEBLASTFURNACE_ACTIVE, MACHINE_CASING_ROBUST_TUNGSTENSTEEL, MACHINE_CASING_CLEAN_STAINLESSSTEEL, MACHINE_CASING_STABLE_TITANIUM, MACHINE_CASING_FIREBOX_TITANIUM, MACHINE_CASING_FUSION_COIL, MACHINE_CASING_FUSION, MACHINE_CASING_FUSION_GLASS, MACHINE_CASING_FUSION_GLASS_YELLOW, MACHINE_CASING_FUSION_2, MACHINE_CASING_MAGIC, MACHINE_CASING_MAGIC_ACTIVE, MACHINE_CASING_MAGIC_FRONT, MACHINE_CASING_MAGIC_FRONT_ACTIVE, MACHINE_CASING_DRAGONEGG, 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_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_RADIATIONPROOF, MACHINE_CASING_FIREBOX_BRONZE, MACHINE_CASING_FIREBOX_STEEL, MACHINE_CASING_FIREBOX_TUNGSTENSTEEL, MACHINE_CASING_ENGINE_INTAKE, MACHINE_COIL_CUPRONICKEL, MACHINE_COIL_KANTHAL, MACHINE_COIL_NICHROME, MACHINE_COIL_TUNGSTENSTEEL, MACHINE_COIL_HSSG, MACHINE_COIL_NAQUADAH, MACHINE_COIL_NAQUADAHALLOY, BOILER_SOLAR, BOILER_FRONT, BOILER_FRONT_ACTIVE, BOILER_LAVA_FRONT, BOILER_LAVA_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_BACK, NAQUADAH_REACTOR_SOLID_FRONT, NAQUADAH_REACTOR_SOLID_SIDE, NAQUADAH_REACTOR_SOLID_BOTTOM, NAQUADAH_REACTOR_SOLID_TOP, NAQUADAH_REACTOR_SOLID_BACK_ACTIVE, NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE, NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_SOLID_TOP_ACTIVE, NAQUADAH_REACTOR_FLUID_BACK, NAQUADAH_REACTOR_FLUID_FRONT, NAQUADAH_REACTOR_FLUID_SIDE, NAQUADAH_REACTOR_FLUID_BOTTOM, NAQUADAH_REACTOR_FLUID_TOP, NAQUADAH_REACTOR_FLUID_BACK_ACTIVE, NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE, NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE, NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_FLUID_TOP_ACTIVE, DIESEL_GENERATOR_BACK, DIESEL_GENERATOR_FRONT, DIESEL_GENERATOR_SIDE, DIESEL_GENERATOR_BOTTOM, DIESEL_GENERATOR_TOP, DIESEL_GENERATOR_BACK_ACTIVE, DIESEL_GENERATOR_FRONT_ACTIVE, DIESEL_GENERATOR_SIDE_ACTIVE, DIESEL_GENERATOR_BOTTOM_ACTIVE, DIESEL_GENERATOR_TOP_ACTIVE, GAS_TURBINE_BACK, GAS_TURBINE_FRONT, GAS_TURBINE_SIDE, GAS_TURBINE_BOTTOM, GAS_TURBINE_TOP, GAS_TURBINE_BACK_ACTIVE, GAS_TURBINE_FRONT_ACTIVE, GAS_TURBINE_SIDE_ACTIVE, GAS_TURBINE_BOTTOM_ACTIVE, GAS_TURBINE_TOP_ACTIVE, STEAM_TURBINE_BACK, STEAM_TURBINE_FRONT, STEAM_TURBINE_SIDE, STEAM_TURBINE_BOTTOM, STEAM_TURBINE_TOP, STEAM_TURBINE_BACK_ACTIVE, STEAM_TURBINE_FRONT_ACTIVE, STEAM_TURBINE_SIDE_ACTIVE, STEAM_TURBINE_BOTTOM_ACTIVE, STEAM_TURBINE_TOP_ACTIVE, BLOCK_BRONZEPREIN, 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_MUFFLER, OVERLAY_CONTROLLER, OVERLAY_ACTIVITYDETECTOR, OVERLAY_ENERGYDETECTOR, OVERLAY_FLUIDDETECTOR, OVERLAY_ITEMDETECTOR, OVERLAY_FUSION1, OVERLAY_FUSION2, OVERLAY_FUSION3, OVERLAY_SCREEN, OVERLAY_QTANK, OVERLAY_QCHEST, OVERLAY_SHUTTER, OVERLAY_CLOSET, OVERLAY_DUCTTAPE, OVERLAY_MAINTENANCE, OVERLAY_AUTOMAINTENANCE, OVERLAY_AUTOMAINTENANCE_IDLE, OVERLAY_CONVEYOR, OVERLAY_PUMP, OVERLAY_ARM, OVERLAY_DRAIN, OVERLAY_CRAFTING, OVERLAY_ENERGY_IN, OVERLAY_ENERGY_OUT, OVERLAY_ENERGY_IN_MULTI, OVERLAY_ENERGY_OUT_MULTI, OVERLAY_ENERGY_IN_POWER, OVERLAY_ENERGY_OUT_POWER, OVERLAY_FRONT_LARGE_BOILER, OVERLAY_FRONT_LARGE_BOILER_ACTIVE, OVERLAY_FRONT_VACUUM_FREEZER, OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE, OVERLAY_FRONT_MULTI_SMELTER, OVERLAY_FRONT_MULTI_SMELTER_ACTIVE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE, OVERLAY_FRONT_IMPLOSION_COMPRESSOR, OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE, OVERLAY_TOP_POTIONBREWER, OVERLAY_TOP_REPLICATOR, OVERLAY_TOP_MASSFAB, OVERLAY_TOP_STEAM_HAMMER, OVERLAY_TOP_STEAM_FURNACE, OVERLAY_TOP_STEAM_ALLOY_SMELTER, OVERLAY_TOP_STEAM_MACERATOR, OVERLAY_TOP_STEAM_COMPRESSOR, OVERLAY_TOP_STEAM_EXTRACTOR, OVERLAY_TOP_DISASSEMBLER, OVERLAY_TOP_BOXINATOR, OVERLAY_TOP_ROCK_BREAKER, OVERLAY_TOP_SCANNER, OVERLAY_FRONT_POTIONBREWER, OVERLAY_FRONT_REPLICATOR, OVERLAY_FRONT_MASSFAB, OVERLAY_FRONT_STEAM_HAMMER, OVERLAY_FRONT_STEAM_FURNACE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER, OVERLAY_FRONT_STEAM_MACERATOR, OVERLAY_FRONT_STEAM_COMPRESSOR, OVERLAY_FRONT_STEAM_EXTRACTOR, OVERLAY_FRONT_DISASSEMBLER, OVERLAY_FRONT_BOXINATOR, OVERLAY_FRONT_ROCK_BREAKER, OVERLAY_FRONT_SCANNER, OVERLAY_BOTTOM_POTIONBREWER, OVERLAY_BOTTOM_REPLICATOR, OVERLAY_BOTTOM_MASSFAB, OVERLAY_BOTTOM_STEAM_HAMMER, OVERLAY_BOTTOM_STEAM_FURNACE, OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER, OVERLAY_BOTTOM_STEAM_MACERATOR, OVERLAY_BOTTOM_STEAM_COMPRESSOR, OVERLAY_BOTTOM_STEAM_EXTRACTOR, OVERLAY_BOTTOM_DISASSEMBLER, OVERLAY_BOTTOM_BOXINATOR, OVERLAY_BOTTOM_ROCK_BREAKER, OVERLAY_BOTTOM_SCANNER, OVERLAY_SIDE_POTIONBREWER, OVERLAY_SIDE_REPLICATOR, OVERLAY_SIDE_MASSFAB, OVERLAY_SIDE_STEAM_HAMMER, OVERLAY_SIDE_STEAM_FURNACE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER, OVERLAY_SIDE_STEAM_MACERATOR, OVERLAY_SIDE_STEAM_COMPRESSOR, OVERLAY_SIDE_STEAM_EXTRACTOR, OVERLAY_SIDE_DISASSEMBLER, OVERLAY_SIDE_BOXINATOR, OVERLAY_SIDE_ROCK_BREAKER, OVERLAY_SIDE_SCANNER, OVERLAY_TOP_POTIONBREWER_ACTIVE, OVERLAY_TOP_REPLICATOR_ACTIVE, OVERLAY_TOP_MASSFAB_ACTIVE, OVERLAY_TOP_STEAM_HAMMER_ACTIVE, OVERLAY_TOP_STEAM_FURNACE_ACTIVE, OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_TOP_STEAM_MACERATOR_ACTIVE, OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE, OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE, OVERLAY_TOP_DISASSEMBLER_ACTIVE, OVERLAY_TOP_BOXINATOR_ACTIVE, OVERLAY_TOP_ROCK_BREAKER_ACTIVE, OVERLAY_TOP_SCANNER_ACTIVE, OVERLAY_FRONT_POTIONBREWER_ACTIVE, OVERLAY_FRONT_REPLICATOR_ACTIVE, OVERLAY_FRONT_MASSFAB_ACTIVE, OVERLAY_FRONT_STEAM_HAMMER_ACTIVE, OVERLAY_FRONT_STEAM_FURNACE_ACTIVE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE, OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE, OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE, OVERLAY_FRONT_DISASSEMBLER_ACTIVE, OVERLAY_FRONT_BOXINATOR_ACTIVE, OVERLAY_FRONT_ROCK_BREAKER_ACTIVE, OVERLAY_FRONT_SCANNER_ACTIVE, OVERLAY_BOTTOM_POTIONBREWER_ACTIVE, OVERLAY_BOTTOM_REPLICATOR_ACTIVE, OVERLAY_BOTTOM_MASSFAB_ACTIVE, OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE, OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE, OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE, OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE, OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE, OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE, OVERLAY_BOTTOM_BOXINATOR_ACTIVE, OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE, OVERLAY_BOTTOM_SCANNER_ACTIVE, OVERLAY_SIDE_POTIONBREWER_ACTIVE, OVERLAY_SIDE_REPLICATOR_ACTIVE, OVERLAY_SIDE_MASSFAB_ACTIVE, OVERLAY_SIDE_STEAM_HAMMER_ACTIVE, OVERLAY_SIDE_STEAM_FURNACE_ACTIVE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE, OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE, OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE, OVERLAY_SIDE_DISASSEMBLER_ACTIVE, OVERLAY_SIDE_BOXINATOR_ACTIVE, OVERLAY_SIDE_ROCK_BREAKER_ACTIVE, OVERLAY_SIDE_SCANNER_ACTIVE, OVERLAY_ADV_PUMP, OVERLAY_TELEPORTER_SIDES,OVERLAY_TELEPORTER, OVERLAY_TELEPORTER_ACTIVE, 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, 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_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_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_STEELEAF, BLOCK_ICHORIUM,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, 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, OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE, OVERLAY_FRONT_HEAT_EXCHANGER, OVERLAY_FRONT_PROCESSING_ARRAY_ACTIVE, OVERLAY_FRONT_PROCESSING_ARRAY, OVERLAY_FRONT_OIL_DRILL_ACTIVE, OVERLAY_FRONT_OIL_DRILL, OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE, OVERLAY_FRONT_DIESEL_ENGINE, OVERLAY_FRONT_PYROLYSE_OVEN_ACTIVE, OVERLAY_FRONT_PYROLYSE_OVEN, OVERLAY_FRONT_OIL_CRACKER_ACTIVE, OVERLAY_FRONT_OIL_CRACKER, OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE, OVERLAY_FRONT_DISTILLATION_TOWER, OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE, OVERLAY_FRONT_ASSEMBLY_LINE, OVERLAY_FRONT_ADVMINER2_ACTIVE, OVERLAY_FRONT_ADVMINER2, 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_15,MACHINE_CASING_TANK_0; + VOID // The Empty Texture + ,RENDERING_ERROR, PIPE_RESTRICTOR, INSULATION_FULL, INSULATION_TINY, INSULATION_SMALL, INSULATION_MEDIUM, 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, VENT_NORMAL, VENT_ADVANCED, COVER_WOOD_PLATE, ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, AUTOMATION_FILTER, AUTOMATION_TYPEFILTER, + AUTOMATION_CHESTBUFFER, AUTOMATION_SUPERBUFFER, AUTOMATION_REGULATOR, 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_COIL_SUPERCONDUCTOR, + MACHINE_BRONZEBLASTFURNACE, MACHINE_BRONZEBLASTFURNACE_ACTIVE, MACHINE_CASING_ROBUST_TUNGSTENSTEEL, MACHINE_CASING_CLEAN_STAINLESSSTEEL, MACHINE_CASING_STABLE_TITANIUM, + MACHINE_CASING_FIREBOX_TITANIUM, MACHINE_CASING_FUSION_COIL, MACHINE_CASING_FUSION, MACHINE_CASING_FUSION_GLASS, MACHINE_CASING_FUSION_GLASS_YELLOW, MACHINE_CASING_FUSION_2, + MACHINE_CASING_MAGIC, MACHINE_CASING_MAGIC_ACTIVE, MACHINE_CASING_MAGIC_FRONT, MACHINE_CASING_MAGIC_FRONT_ACTIVE, MACHINE_CASING_DRAGONEGG, 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_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_RADIATIONPROOF, MACHINE_CASING_FIREBOX_BRONZE, MACHINE_CASING_FIREBOX_STEEL, MACHINE_CASING_FIREBOX_TUNGSTENSTEEL, MACHINE_CASING_ENGINE_INTAKE, MACHINE_CASING_CHEMICALLY_INERT, MACHINE_COIL_CUPRONICKEL, + MACHINE_COIL_KANTHAL, MACHINE_COIL_NICHROME, MACHINE_COIL_TUNGSTENSTEEL, MACHINE_COIL_HSSG, MACHINE_COIL_NAQUADAH, MACHINE_COIL_NAQUADAHALLOY, BOILER_SOLAR, BOILER_FRONT, + BOILER_FRONT_ACTIVE, BOILER_LAVA_FRONT, BOILER_LAVA_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_BACK, NAQUADAH_REACTOR_SOLID_FRONT, NAQUADAH_REACTOR_SOLID_SIDE, NAQUADAH_REACTOR_SOLID_BOTTOM, + NAQUADAH_REACTOR_SOLID_TOP, NAQUADAH_REACTOR_SOLID_BACK_ACTIVE, NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE, NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE, + NAQUADAH_REACTOR_SOLID_TOP_ACTIVE, NAQUADAH_REACTOR_FLUID_BACK, NAQUADAH_REACTOR_FLUID_FRONT, NAQUADAH_REACTOR_FLUID_SIDE, NAQUADAH_REACTOR_FLUID_BOTTOM, NAQUADAH_REACTOR_FLUID_TOP, + NAQUADAH_REACTOR_FLUID_BACK_ACTIVE, NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE, NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE, NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_FLUID_TOP_ACTIVE, + DIESEL_GENERATOR_BACK, DIESEL_GENERATOR_FRONT, DIESEL_GENERATOR_SIDE, DIESEL_GENERATOR_BOTTOM, DIESEL_GENERATOR_TOP, DIESEL_GENERATOR_BACK_ACTIVE, DIESEL_GENERATOR_FRONT_ACTIVE, + DIESEL_GENERATOR_SIDE_ACTIVE, DIESEL_GENERATOR_BOTTOM_ACTIVE, DIESEL_GENERATOR_TOP_ACTIVE, GAS_TURBINE_BACK, GAS_TURBINE_FRONT, GAS_TURBINE_SIDE, GAS_TURBINE_BOTTOM, + GAS_TURBINE_TOP, GAS_TURBINE_BACK_ACTIVE, GAS_TURBINE_FRONT_ACTIVE, GAS_TURBINE_SIDE_ACTIVE, GAS_TURBINE_BOTTOM_ACTIVE, GAS_TURBINE_TOP_ACTIVE, STEAM_TURBINE_BACK, + STEAM_TURBINE_FRONT, STEAM_TURBINE_SIDE, STEAM_TURBINE_BOTTOM, STEAM_TURBINE_TOP, STEAM_TURBINE_BACK_ACTIVE, STEAM_TURBINE_FRONT_ACTIVE, STEAM_TURBINE_SIDE_ACTIVE, + STEAM_TURBINE_BOTTOM_ACTIVE, STEAM_TURBINE_TOP_ACTIVE, BLOCK_BRONZEPREIN, 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_MUFFLER, OVERLAY_CONTROLLER, OVERLAY_ACTIVITYDETECTOR, + OVERLAY_ENERGYDETECTOR, OVERLAY_FLUIDDETECTOR, OVERLAY_ITEMDETECTOR, OVERLAY_FUSION1, OVERLAY_FUSION2, OVERLAY_FUSION3, OVERLAY_SCREEN, OVERLAY_QTANK, OVERLAY_QCHEST, OVERLAY_SHUTTER, + OVERLAY_CLOSET, OVERLAY_DUCTTAPE, OVERLAY_MAINTENANCE, OVERLAY_CONVEYOR, OVERLAY_PUMP, 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_ACTIVE, OVERLAY_FRONT_VACUUM_FREEZER, OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE, + OVERLAY_FRONT_MULTI_SMELTER, OVERLAY_FRONT_MULTI_SMELTER_ACTIVE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE, OVERLAY_FRONT_IMPLOSION_COMPRESSOR, + OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE, OVERLAY_TOP_POTIONBREWER, OVERLAY_TOP_REPLICATOR, OVERLAY_TOP_MASSFAB, OVERLAY_TOP_STEAM_HAMMER, OVERLAY_TOP_STEAM_FURNACE, OVERLAY_TOP_STEAM_ALLOY_SMELTER, + OVERLAY_TOP_STEAM_MACERATOR, OVERLAY_TOP_STEAM_COMPRESSOR, OVERLAY_TOP_STEAM_EXTRACTOR, OVERLAY_TOP_DISASSEMBLER, OVERLAY_TOP_BOXINATOR, OVERLAY_TOP_ROCK_BREAKER, OVERLAY_TOP_SCANNER, + OVERLAY_FRONT_POTIONBREWER, OVERLAY_FRONT_REPLICATOR, OVERLAY_FRONT_MASSFAB, OVERLAY_FRONT_STEAM_HAMMER, OVERLAY_FRONT_STEAM_FURNACE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER, + OVERLAY_FRONT_STEAM_MACERATOR, OVERLAY_FRONT_STEAM_COMPRESSOR, OVERLAY_FRONT_STEAM_EXTRACTOR, OVERLAY_FRONT_DISASSEMBLER, OVERLAY_FRONT_BOXINATOR, OVERLAY_FRONT_ROCK_BREAKER, + OVERLAY_FRONT_SCANNER, OVERLAY_BOTTOM_POTIONBREWER, OVERLAY_BOTTOM_REPLICATOR, OVERLAY_BOTTOM_MASSFAB, OVERLAY_BOTTOM_STEAM_HAMMER, OVERLAY_BOTTOM_STEAM_FURNACE, + OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER, OVERLAY_BOTTOM_STEAM_MACERATOR, OVERLAY_BOTTOM_STEAM_COMPRESSOR, OVERLAY_BOTTOM_STEAM_EXTRACTOR, OVERLAY_BOTTOM_DISASSEMBLER, + OVERLAY_BOTTOM_BOXINATOR, OVERLAY_BOTTOM_ROCK_BREAKER, OVERLAY_BOTTOM_SCANNER, OVERLAY_SIDE_POTIONBREWER, OVERLAY_SIDE_REPLICATOR, OVERLAY_SIDE_MASSFAB, OVERLAY_SIDE_STEAM_HAMMER, + OVERLAY_SIDE_STEAM_FURNACE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER, OVERLAY_SIDE_STEAM_MACERATOR, OVERLAY_SIDE_STEAM_COMPRESSOR, OVERLAY_SIDE_STEAM_EXTRACTOR, OVERLAY_SIDE_DISASSEMBLER, + OVERLAY_SIDE_BOXINATOR, OVERLAY_SIDE_ROCK_BREAKER, OVERLAY_SIDE_SCANNER, OVERLAY_TOP_POTIONBREWER_ACTIVE, OVERLAY_TOP_REPLICATOR_ACTIVE, OVERLAY_TOP_MASSFAB_ACTIVE, + OVERLAY_TOP_STEAM_HAMMER_ACTIVE, OVERLAY_TOP_STEAM_FURNACE_ACTIVE, OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_TOP_STEAM_MACERATOR_ACTIVE, OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE, + OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE, OVERLAY_TOP_DISASSEMBLER_ACTIVE, OVERLAY_TOP_BOXINATOR_ACTIVE, OVERLAY_TOP_ROCK_BREAKER_ACTIVE, OVERLAY_TOP_SCANNER_ACTIVE, OVERLAY_FRONT_POTIONBREWER_ACTIVE, + OVERLAY_FRONT_REPLICATOR_ACTIVE, OVERLAY_FRONT_MASSFAB_ACTIVE, OVERLAY_FRONT_STEAM_HAMMER_ACTIVE, OVERLAY_FRONT_STEAM_FURNACE_ACTIVE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE, + OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE, OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE, OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE, OVERLAY_FRONT_DISASSEMBLER_ACTIVE, OVERLAY_FRONT_BOXINATOR_ACTIVE, + OVERLAY_FRONT_ROCK_BREAKER_ACTIVE, OVERLAY_FRONT_SCANNER_ACTIVE, OVERLAY_BOTTOM_POTIONBREWER_ACTIVE, OVERLAY_BOTTOM_REPLICATOR_ACTIVE, OVERLAY_BOTTOM_MASSFAB_ACTIVE, + OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE, OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE, OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE, OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE, + OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE, OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE, OVERLAY_BOTTOM_BOXINATOR_ACTIVE, OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE, OVERLAY_BOTTOM_SCANNER_ACTIVE, + OVERLAY_SIDE_POTIONBREWER_ACTIVE, OVERLAY_SIDE_REPLICATOR_ACTIVE, OVERLAY_SIDE_MASSFAB_ACTIVE, OVERLAY_SIDE_STEAM_HAMMER_ACTIVE, OVERLAY_SIDE_STEAM_FURNACE_ACTIVE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE, + OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE, OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE, OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE, OVERLAY_SIDE_DISASSEMBLER_ACTIVE, OVERLAY_SIDE_BOXINATOR_ACTIVE, + OVERLAY_SIDE_ROCK_BREAKER_ACTIVE, OVERLAY_SIDE_SCANNER_ACTIVE, OVERLAY_ADV_PUMP, OVERLAY_TELEPORTER, OVERLAY_TELEPORTER_ACTIVE, 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, 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_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, 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, OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE, OVERLAY_FRONT_HEAT_EXCHANGER, OVERLAY_FRONT_PROCESSING_ARRAY_ACTIVE, + OVERLAY_FRONT_PROCESSING_ARRAY, OVERLAY_FRONT_OIL_DRILL_ACTIVE, OVERLAY_FRONT_OIL_DRILL, OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE, OVERLAY_FRONT_DIESEL_ENGINE, OVERLAY_FRONT_PYROLYSE_OVEN_ACTIVE, + OVERLAY_FRONT_PYROLYSE_OVEN, OVERLAY_FRONT_OIL_CRACKER_ACTIVE, OVERLAY_FRONT_OIL_CRACKER, OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE, OVERLAY_FRONT_DISTILLATION_TOWER, + OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE, OVERLAY_FRONT_ASSEMBLY_LINE, OVERLAY_FRONT_ADVMINER2_ACTIVE, OVERLAY_FRONT_ADVMINER2, OVERLAY_TOP_CLEANROOM_ACTIVE, OVERLAY_TOP_CLEANROOM, + OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR, OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE; /** * Icon for Fresh CFoam @@ -267,7 +350,7 @@ public class Textures { LARGETURBINE_TU_ACTIVE6, LARGETURBINE_TU_ACTIVE7, LARGETURBINE_TU_ACTIVE8, - LARGETURBINE_TU_ACTIVE9, + LARGETURBINE_TU_ACTIVE9 }, CONNECTED_HULLS = new IIconContainer[]{ CONCRETE_DARK_STONE, @@ -479,7 +562,8 @@ public class Textures { BLOCK_VINTEUM, BLOCK_YELLOWGARNET, BLOCK_NETHERSTAR, - BLOCK_CHARCOAL + BLOCK_CHARCOAL, + BLOCK_BLAZE }; public static ITexture[] ERROR_RENDERING = new ITexture[]{ diff --git a/src/main/java/gregtech/api/gui/GT_Container.java b/src/main/java/gregtech/api/gui/GT_Container.java index d939307971..49aa1d9fe8 100644 --- a/src/main/java/gregtech/api/gui/GT_Container.java +++ b/src/main/java/gregtech/api/gui/GT_Container.java @@ -313,10 +313,9 @@ public class GT_Container extends Container { while (aStack.stackSize > 0 && (!par4 && var6 < aSlotCount || par4 && var6 >= aStartIndex)) { var7 = (Slot) this.inventorySlots.get(var6); var8 = var7.getStack(); - if (!(var7 instanceof GT_Slot_Holo) && !(var7 instanceof GT_Slot_Output) && var8 != null && var8.getItem() == aStack.getItem() && (!aStack.getHasSubtypes() || aStack.getItemDamage() == var8.getItemDamage()) && ItemStack.areItemStackTagsEqual(aStack, var8)) { int var9 = var8.stackSize + aStack.stackSize; - + if(var8.stackSize<mTileEntity.getInventoryStackLimit()){ if (var9 <= aStack.getMaxStackSize()) { aStack.stackSize = 0; var8.stackSize = var9; @@ -327,7 +326,7 @@ public class GT_Container extends Container { var8.stackSize = aStack.getMaxStackSize(); var7.onSlotChanged(); var5 = true; - } + }} } if (par4) { @@ -337,7 +336,6 @@ public class GT_Container extends Container { } } } - if (aStack.stackSize > 0) { if (par4) { var6 = aSlotCount - 1; @@ -350,9 +348,10 @@ public class GT_Container extends Container { var8 = var7.getStack(); if (var8 == null) { - var7.putStack(GT_Utility.copy(aStack)); + int var10 = Math.min(aStack.stackSize, mTileEntity.getInventoryStackLimit()); + var7.putStack(GT_Utility.copyAmount(var10, aStack)); var7.onSlotChanged(); - aStack.stackSize = 0; + aStack.stackSize -= var10; var5 = true; break; } diff --git a/src/main/java/gregtech/api/interfaces/IMaterialHandler.java b/src/main/java/gregtech/api/interfaces/IMaterialHandler.java new file mode 100644 index 0000000000..9ca97981bf --- /dev/null +++ b/src/main/java/gregtech/api/interfaces/IMaterialHandler.java @@ -0,0 +1,11 @@ +package gregtech.api.interfaces; + +import gregtech.api.enums.Materials; + +public interface IMaterialHandler { + void onMaterialsInit(); + + void onComponentInit(); + + void onComponentIteration(Materials aMaterial); +} diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java index a461eb7316..ac9389f081 100644 --- a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java +++ b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java @@ -53,6 +53,15 @@ public interface IGT_RecipeAdder { public boolean addCentrifugeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt); /** + * + * @param aInput1 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @return + */ + public boolean addCompressorRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt); + + /** * Adds a Electrolyzer Recipe * * @param aInput1 must be != null @@ -102,7 +111,47 @@ public interface IGT_RecipeAdder { */ public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration); - public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUt); + /** + * Adds a Chemical Recipe + * + * @param aInput1 must be != null + * @param aInput2 must be != null + * @param aOutput1 must be != null + * @param aOutput2 must be != null + * @param aDuration must be > 0 + */ + public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, ItemStack aOutput2, int aDuration); + + /** + * Adds Recipes for creating a radically polymerized polymer from a base Material (for example Ethylene -> Polyethylene) + * @param aBasicMaterial The basic Material + * @param aPolymer The polymer + */ + public void addDefaultPolymerizationRecipes(Fluid aBasicMaterial, Fluid aPolymer); + + /** + * Adds a Chemical Recipe + * + * @param aInput1 must be != null + * @param aInput2 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUtick must be > 0 + */ + public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUtick); + + public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, ItemStack aOutput2, int aDuration, int aEUtick, boolean aCleanroom); + /** + * Adds a Chemical Recipe + * + * @param aInput1 must be != null + * @param aInput2 must be != null + * @param aOutput1 must be != null + * @param aOutput2 must be != null + * @param aDuration must be > 0 + * @param aEUtick must be > 0 + */ + public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, ItemStack aOutput2, int aDuration, int aEUtick); /** @@ -168,7 +217,7 @@ public interface IGT_RecipeAdder { public boolean addCNCRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt); /** - * Adds a Circuit Assembler Recipe + * Adds a Assembler Recipe * * @param aInput1 must be != null * @param aOutput1 must be != null @@ -178,7 +227,7 @@ public interface IGT_RecipeAdder { public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt); /** - * Adds a Circuit Assembler Recipe + * Adds a Assembler Recipe * * @param aInput1 must be != null * @param aOutput1 must be != null @@ -187,6 +236,24 @@ public interface IGT_RecipeAdder { */ public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt); + public boolean addAssemblerRecipe(ItemStack aInput1, Object aOreDict, int aAmount, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt); + + public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt, boolean aCleanroom); + + + /** + * Adds a Assembler Recipe + * + * @param aInputs must be 1-6 ItemStacks + * @param aFluidInput 0-1 fluids + * @param aOutput must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + */ + public boolean addCircuitAssemblerRecipe(ItemStack[] aInputs, FluidStack aFluidInput, ItemStack aOutput, int aDuration, int aEUt); + + public boolean addCircuitAssemblerRecipe(ItemStack[] aInputs, FluidStack aFluidInput, ItemStack aOutput, int aDuration, int aEUt, boolean aCleanroom); + /** * Adds a Assemblyline Recipe * @@ -261,6 +328,17 @@ public interface IGT_RecipeAdder { public boolean addSlicerRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt); /** + * + * @param aInput must be != null + * @param aFluidInput must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + * @return + */ + public boolean addOreWasherRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, FluidStack aFluidInput, int aDuration, int aEUt); + + /** * Adds an Implosion Compressor Recipe * * @param aInput1 must be != null @@ -319,12 +397,24 @@ public interface IGT_RecipeAdder { */ public boolean addCutterRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt); + public boolean addCutterRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, boolean aCleanroom); + /** * Adds a Boxing Recipe */ public boolean addBoxingRecipe(ItemStack aContainedItem, ItemStack aEmptyBox, ItemStack aFullBox, int aDuration, int aEUt); /** + * + * @param aInput must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUt should be > 0 + * @return + */ + public boolean addThermalCentrifugeRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int aDuration, int aEUt); + + /** * Adds an Unboxing Recipe */ public boolean addUnboxingRecipe(ItemStack aFullBox, ItemStack aContainedItem, ItemStack aEmptyBox, int aDuration, int aEUt); @@ -379,6 +469,8 @@ public interface IGT_RecipeAdder { */ public boolean addDistilleryRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt, boolean aHidden); + public boolean addDistilleryRecipe(int aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt, boolean aHidden); + /** * Adds a Recipe for the Fluid Solidifier */ @@ -416,6 +508,11 @@ public interface IGT_RecipeAdder { public boolean addElectromagneticSeparatorRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt); /** + * Adds a Recipe for the Extractor + */ + public boolean addExtractorRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt); + + /** * Adds a Recipe for the Printer */ public boolean addPrinterRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aSpecialSlot, ItemStack aOutput, int aDuration, int aEUt); @@ -426,6 +523,11 @@ public interface IGT_RecipeAdder { public boolean addAutoclaveRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aOutput, int aChance, int aDuration, int aEUt); /** + * Adds a Recipe for the Autoclave + */ + public boolean addAutoclaveRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aOutput, int aChance, int aDuration, int aEUt, boolean aCleanroom); + + /** * Adds a Recipe for the Mixer */ public boolean addMixerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aInput3, ItemStack aInput4, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUt); @@ -434,6 +536,10 @@ public interface IGT_RecipeAdder { * Adds a Recipe for the Laser Engraver */ public boolean addLaserEngraverRecipe(ItemStack aItemToEngrave, ItemStack aLens, ItemStack aEngravedItem, int aDuration, int aEUt); + /** + * Adds a Recipe for the Laser Engraver + */ + public boolean addLaserEngraverRecipe(ItemStack aItemToEngrave, ItemStack aLens, ItemStack aEngravedItem, int aDuration, int aEUt, boolean aCleanroom); /** * Adds a Recipe for the Forming Press diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java index b35d797a9c..809357f624 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java @@ -8,7 +8,6 @@ import gregtech.common.GT_Pollution; import ic2.api.energy.tile.IEnergySink; import net.minecraft.init.Blocks; import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.ChunkPosition; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -108,7 +107,7 @@ public interface IEnergyConnected extends IColoredTileEntity, IHasWorldObjectAnd tWorld.setBlock(tX, tY, tZ, Blocks.air); if (GregTech_API.sMachineExplosions) if(GT_Mod.gregtechproxy.mPollution) - GT_Pollution.addPollution(new ChunkPosition(tX, tY, tZ), 100000); + GT_Pollution.addPollution(tWorld.getChunkFromBlockCoords(tX,tZ), 100000); tWorld.createExplosion(null, tX + 0.5, tY + 0.5, tZ + 0.5, tStrength, true); } } diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java index 38ed38bd31..cadbe685fe 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java @@ -142,12 +142,17 @@ public abstract class GT_MetaGenerated_Item_X32 extends GT_MetaGenerated_Item { @Override @SideOnly(Side.CLIENT) public final void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) { - for (int i = 0; i < 32000; i++) - if (doesMaterialAllowGeneration(mGeneratedPrefixList[i / 1000], GregTech_API.sGeneratedMaterials[i % 1000]) && doesShowInCreative(mGeneratedPrefixList[i / 1000], GregTech_API.sGeneratedMaterials[i % 1000], GregTech_API.sDoShowAllItemsInCreative)) { - ItemStack tStack = new ItemStack(this, 1, i); - isItemStackUsable(tStack); - aList.add(tStack); + for (int i = 0; i < 32000; i++) { + OrePrefixes aPrefix = mGeneratedPrefixList[i / 1000]; + Materials aMaterial = GregTech_API.sGeneratedMaterials[i % 1000]; + if (aPrefix != null && aMaterial != null) { + if (doesMaterialAllowGeneration(aPrefix, aMaterial) && doesShowInCreative(aPrefix, aMaterial, GregTech_API.sDoShowAllItemsInCreative)) { + ItemStack tStack = new ItemStack(this, 1, i); + isItemStackUsable(tStack); + aList.add(tStack); + } } + } super.getSubItems(var1, aCreativeTab, aList); } diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java index 8a6a8d3206..97e6949c30 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java @@ -53,7 +53,7 @@ import static gregtech.api.enums.GT_Values.MOD_ID_RC; /** * This is an example on how you can create a Tool ItemStack, in this case a Bismuth Wrench: - * GT_MetaGenerated_Tool.sInstances.get("gt.metatool.01").getToolWithStats(16, 1, Materials.Bismuth, Materials.Bismuth, null); + * GT_MetaGenerated_Tool.sInstances.get("gt.metatool.01").getToolWithStats(GT_MetaGenerated_Tool_01.WRENCH, 1, Materials.Bismuth, Materials.Bismuth, null); */ @Optional.InterfaceList(value = {@Optional.Interface(iface = "forestry.api.arboriculture.IToolGrafter", modid = MOD_ID_FR), @Optional.Interface(iface = "mods.railcraft.api.core.items.IToolCrowbar", modid = MOD_ID_RC), @Optional.Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraft"), @Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIO")}) public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements IDamagableItem, IToolGrafter, IToolCrowbar, IToolWrench, ITool { @@ -184,10 +184,10 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements if (tToolStats != null) { NBTTagCompound tMainNBT = new NBTTagCompound(), tToolNBT = new NBTTagCompound(); if (aPrimaryMaterial != null) { - tToolNBT.setString("PrimaryMaterial", aPrimaryMaterial.toString()); + tToolNBT.setString("PrimaryMaterial", aPrimaryMaterial.mName); tToolNBT.setLong("MaxDamage", 100L * (long) (aPrimaryMaterial.mDurability * tToolStats.getMaxDurabilityMultiplier())); } - if (aSecondaryMaterial != null) tToolNBT.setString("SecondaryMaterial", aSecondaryMaterial.toString()); + if (aSecondaryMaterial != null) tToolNBT.setString("SecondaryMaterial", aSecondaryMaterial.mName); if (aElectricArray != null) { tToolNBT.setBoolean("Electric", true); @@ -350,7 +350,7 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Turbine Efficency: " + EnumChatFormatting.BLUE + (50.0F + (10.0F * getToolCombatDamage(aStack))) + EnumChatFormatting.GRAY); aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Steam flow: " + EnumChatFormatting.GOLD + aOptFlow + EnumChatFormatting.GRAY + " L/t"); aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Gas flow (Burn energy per tick): " + EnumChatFormatting.GOLD + aOptFlow + EnumChatFormatting.GRAY + " EU/t"); - aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Plasma flow (Plasma energy per tick): " + EnumChatFormatting.GOLD + aOptFlow*40 + EnumChatFormatting.GRAY + " EU/s"); + aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Plasma flow (Plasma energy per tick): " + EnumChatFormatting.GOLD + aOptFlow*40 + EnumChatFormatting.GRAY + " EU/t"); } else { aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY); @@ -692,4 +692,4 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) { return false; } -}
\ No newline at end of file +} diff --git a/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java index 9304068159..24dcc8ef5e 100644 --- a/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java +++ b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java @@ -1,6 +1,7 @@ package gregtech.api.items; +import gregtech.api.GregTech_API; import ic2.api.reactor.IReactor; import ic2.api.reactor.IReactorComponent; import ic2.core.IC2Potion; @@ -144,7 +145,7 @@ public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implement public void onUpdate(ItemStack stack, World world, Entity entity, int slotIndex, boolean isCurrentItem) { if (this.sRadiation > 0 && (entity instanceof EntityLivingBase)) { EntityLivingBase entityLiving = (EntityLivingBase) entity; - if (!ItemArmorHazmat.hasCompleteHazmat(entityLiving)) { + if (!GregTech_API.mIC2Classic&&!ItemArmorHazmat.hasCompleteHazmat(entityLiving)) { IC2Potion.radiation.applyTo(entityLiving, sRadiation * 20, sRadiation * 10); } } diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index aa1546883d..028f47dee3 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -27,7 +27,6 @@ import net.minecraft.network.Packet; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.ChunkPosition; import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -67,6 +66,26 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE private String mOwnerName = ""; private NBTTagCompound mRecipeStuff = new NBTTagCompound(); + private static final Field ENTITY_ITEM_HEALTH_FIELD; + static + { + Field f = null; + + try { + f = EntityItem.class.getDeclaredField("field_70291_e"); + f.setAccessible(true); + } catch (Exception e1) { + try { + f = EntityItem.class.getDeclaredField("health"); + f.setAccessible(true); + } catch (Exception e2) { + e1.printStackTrace(); + e2.printStackTrace(); + } + } + ENTITY_ITEM_HEALTH_FIELD = f; + } + public BaseMetaTileEntity() { } @@ -446,6 +465,12 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE for (int i = mMetaTileEntity.dechargerSlotStartIndex(), k = mMetaTileEntity.dechargerSlotCount() + i; i < k; i++) { if (mMetaTileEntity.mInventory[i] != null && getStoredEU() < getEUCapacity()) { dischargeItem(mMetaTileEntity.mInventory[i]); + if(ic2.api.info.Info.itemEnergy.getEnergyValue(mMetaTileEntity.mInventory[i])>0){ + if((getStoredEU() + ic2.api.info.Info.itemEnergy.getEnergyValue(mMetaTileEntity.mInventory[i]))<getEUCapacity()){ + increaseStoredEnergyUnits((long)ic2.api.info.Info.itemEnergy.getEnergyValue(mMetaTileEntity.mInventory[i]),false); + mMetaTileEntity.mInventory[i].stackSize--; + } + } if (mMetaTileEntity.mInventory[i].stackSize <= 0) mMetaTileEntity.mInventory[i] = null; mInventoryChanged = true; @@ -1121,7 +1146,8 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE } } } - GT_Pollution.addPollution(new ChunkPosition(getXCoord(), getYCoord(), getZCoord()), 100000); + + GT_Pollution.addPollution(this, 100000); mMetaTileEntity.doExplosion(aAmount); } } @@ -1139,10 +1165,9 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE tItemEntity.hurtResistantTime = 999999; tItemEntity.lifespan = 60000; try { - Field tField = tItemEntity.getClass().getDeclaredField("health"); - tField.setAccessible(true); - tField.setInt(tItemEntity, 99999999); - } catch (Exception e) {e.printStackTrace();} + if(ENTITY_ITEM_HEALTH_FIELD != null) + ENTITY_ITEM_HEALTH_FIELD.setInt(tItemEntity, 99999999); + } catch (Exception ignored) {} this.worldObj.spawnEntityInWorld(tItemEntity); tItem.stackSize = 0; } diff --git a/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java index f60c24b23a..02f18ecaec 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java @@ -434,4 +434,7 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje public final void setToFire() { worldObj.setBlock(xCoord, yCoord, zCoord, Blocks.fire); } + + @Override + public void markDirty() {/* Do not do the super Function */} }
\ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java index 0182052f71..ef4f4f1362 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java @@ -2,7 +2,6 @@ package gregtech.api.metatileentity; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,7 +9,6 @@ import gregtech.api.objects.GT_ItemStack; import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; -import gregtech.common.GT_Pollution; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.texture.IIconRegister; @@ -22,7 +20,6 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.ChunkPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -667,8 +664,6 @@ public abstract class MetaPipeEntity implements IMetaTileEntity { World tWorld = getBaseMetaTileEntity().getWorld(); tWorld.setBlock(tX, tY, tZ, Blocks.air); if (GregTech_API.sMachineExplosions) - if(GT_Mod.gregtechproxy.mPollution) - GT_Pollution.addPollution(new ChunkPosition(tX, tY, tZ), 100000); tWorld.createExplosion(null, tX + 0.5, tY + 0.5, tZ + 0.5, tStrength, true); } diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java index 3cc96b5058..d8349d0d04 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java @@ -2,7 +2,6 @@ package gregtech.api.metatileentity; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -11,7 +10,6 @@ import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; -import gregtech.common.GT_Pollution; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.texture.IIconRegister; @@ -22,7 +20,6 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.ChunkPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -857,8 +854,6 @@ public abstract class MetaTileEntity implements IMetaTileEntity { GT_Utility.sendSoundToPlayers(tWorld, GregTech_API.sSoundList.get(209), 1.0F, -1, tX, tY, tZ); tWorld.setBlock(tX, tY, tZ, Blocks.air); if (GregTech_API.sMachineExplosions) - if(GT_Mod.gregtechproxy.mPollution) - GT_Pollution.addPollution(new ChunkPosition(tX, tY, tZ), 100000); tWorld.createExplosion(null, tX + 0.5, tY + 0.5, tZ + 0.5, tStrength, true); } diff --git a/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java b/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java index 305dfa36c0..4d54a142cd 100644 --- a/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java +++ b/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java @@ -23,9 +23,13 @@ public class GT_MetaTileEntity_E_Furnace extends GT_MetaTileEntity_BasicMachine super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); } + public GT_MetaTileEntity_E_Furnace(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); + } + @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_E_Furnace(mName, mTier, mDescription, mTextures, mGUIName, mNEIName); + return new GT_MetaTileEntity_E_Furnace(mName, mTier, mDescriptionArray, mTextures, mGUIName, mNEIName); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index 3ff97e054a..2debde31a2 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -284,9 +284,9 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile @Override public String[] getDescription() { return new String[]{ - "Max Voltage: " + EnumChatFormatting.GREEN + mVoltage + " (" + VN[GT_Utility.getTier(mVoltage)] + ")" + EnumChatFormatting.GRAY, - "Max Amperage: " + EnumChatFormatting.YELLOW + mAmperage + EnumChatFormatting.GRAY, - "Loss/Meter/Ampere: " + EnumChatFormatting.RED + mCableLossPerMeter + EnumChatFormatting.GRAY + " EU-Volt" + "Max Voltage: %%%" + EnumChatFormatting.GREEN + mVoltage + " (" + VN[GT_Utility.getTier(mVoltage)] + ")" + EnumChatFormatting.GRAY, + "Max Amperage: %%%" + EnumChatFormatting.YELLOW + mAmperage + EnumChatFormatting.GRAY, + "Loss/Meter/Ampere: %%%" + EnumChatFormatting.RED + mCableLossPerMeter + EnumChatFormatting.GRAY + " EU-Volt" }; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java index 0e199b6783..4a51669824 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java @@ -378,8 +378,8 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { @Override public String[] getDescription() { return new String[]{ - EnumChatFormatting.BLUE + "Fluid Capacity: " + (mCapacity * 20) + "L/sec" + EnumChatFormatting.GRAY, - EnumChatFormatting.RED + "Heat Limit: " + mHeatResistance + " K" + EnumChatFormatting.GRAY + EnumChatFormatting.BLUE + "Fluid Capacity: %%%" + (mCapacity * 20) + "L/sec" + EnumChatFormatting.GRAY, + EnumChatFormatting.RED + "Heat Limit: %%%" + mHeatResistance + " K" + EnumChatFormatting.GRAY }; } @@ -388,4 +388,4 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { if(GT_Client.hideValue==1) return 0.0625F; return mThickNess; } -}
\ No newline at end of file +} diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java index 275baeca81..c35690b868 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java @@ -38,9 +38,16 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier super(aName, aTier, aSlotCount, aDescription, aTextures); } + public GT_MetaTileEntity_BasicBatteryBuffer(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures, int aSlotCount) { + super(aName, aTier, aSlotCount, aDescription, aTextures); + } + @Override public String[] getDescription() { - return new String[]{mDescription, mInventory.length + " Slots"}; + String[] desc = new String[mDescriptionArray.length + 1]; + System.arraycopy(mDescriptionArray, 0, desc, 0, mDescriptionArray.length); + desc[mDescriptionArray.length] = mInventory.length + " Slots"; + return desc; } @Override @@ -60,7 +67,7 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier @Override public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_BasicBatteryBuffer(mName, mTier, mDescription, mTextures, mInventory.length); + return new GT_MetaTileEntity_BasicBatteryBuffer(mName, mTier, mDescriptionArray, mTextures, mInventory.length); } @Override @@ -262,6 +269,11 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier } return false; } + + @Override + public int getInventoryStackLimit() { + return 1; + } public long[] getStoredEnergy() { boolean scaleOverflow =false; diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java index 4378957c18..c20b8ad3a8 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java @@ -10,7 +10,6 @@ import gregtech.common.GT_Pollution; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; -import net.minecraft.world.ChunkPosition; import net.minecraftforge.fluids.FluidStack; import java.util.Collection; @@ -22,10 +21,18 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity super(aID, aName, aNameRegional, aTier, 3, aDescription, aTextures); } + public GT_MetaTileEntity_BasicGenerator(int aID, String aName, String aNameRegional, int aTier, String[] aDescription, ITexture... aTextures) { + super(aID, aName, aNameRegional, aTier, 3, aDescription, aTextures); + } + public GT_MetaTileEntity_BasicGenerator(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { super(aName, aTier, 3, aDescription, aTextures); } + public GT_MetaTileEntity_BasicGenerator(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } + @Override public ITexture[][][] getTextureSet(ITexture[] aTextures) { ITexture[][][] rTextures = new ITexture[10][17][]; @@ -51,7 +58,10 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity @Override public String[] getDescription() { - return new String[]{mDescription, "Fuel Efficiency: " + getEfficiency() + "%"}; + String[] desc = new String[mDescriptionArray.length + 1]; + System.arraycopy(mDescriptionArray, 0, desc, 0, mDescriptionArray.length); + desc[mDescriptionArray.length] = "Fuel Efficiency: " + getEfficiency() + "%"; + return desc; } @Override @@ -186,7 +196,6 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && aTick % 10 == 0) { - long tProducedEU = 0; if (mFluid == null) { if (aBaseMetaTileEntity.getUniversalEnergyStored() < maxEUOutput() + getMinimumStoredEU()) { mInventory[getStackDisplaySlot()] = null; @@ -198,9 +207,10 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity } else { int tFuelValue = getFuelValue(mFluid), tConsumed = consumedFluidPerOperation(mFluid); if (tFuelValue > 0 && tConsumed > 0 && mFluid.amount > tConsumed) { - long tFluidAmountToUse = Math.min(mFluid.amount / tConsumed, (maxEUOutput() * 20 + getMinimumStoredEU() - aBaseMetaTileEntity.getUniversalEnergyStored()) / tFuelValue); + long tFluidAmountToUse = Math.min(mFluid.amount / tConsumed, (maxEUStore() - aBaseMetaTileEntity.getUniversalEnergyStored()) / tFuelValue); + //long tFluidAmountToUse = Math.min(mFluid.amount / tConsumed, (maxEUOutput() * 20 + getMinimumStoredEU() - aBaseMetaTileEntity.getUniversalEnergyStored()) / tFuelValue);//TODO CHECK if (tFluidAmountToUse > 0 && aBaseMetaTileEntity.increaseStoredEnergyUnits(tFluidAmountToUse * tFuelValue, true)) { - tProducedEU = tFluidAmountToUse * tFuelValue; + GT_Pollution.addPollution(getBaseMetaTileEntity(),10 * getPollution()); mFluid.amount -= tFluidAmountToUse * tConsumed; } } @@ -212,14 +222,10 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), tEmptyContainer)) { aBaseMetaTileEntity.increaseStoredEnergyUnits(tFuelValue, true); aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1); - tProducedEU = tFuelValue; + GT_Pollution.addPollution(getBaseMetaTileEntity(),10 * getPollution()); } } } - if(tProducedEU>0&&getPollution()>0){ - GT_Pollution.addPollution(new ChunkPosition(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord()), - (int) ((tProducedEU * getPollution()/(250*(mTier+1))))); - } } if (aBaseMetaTileEntity.isServerSide()) diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java index 37a1c9670d..1577015e2e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java @@ -21,10 +21,14 @@ public class GT_MetaTileEntity_BasicHull extends GT_MetaTileEntity_BasicTank { public GT_MetaTileEntity_BasicHull(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { super(aName, aTier, aInvSlotCount, aDescription, aTextures); } + + public GT_MetaTileEntity_BasicHull(String aName, int aTier, int aInvSlotCount, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } @Override public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_BasicHull(mName, mTier, mInventory.length, mDescription, mTextures); + return new GT_MetaTileEntity_BasicHull(mName, mTier, mInventory.length, mDescriptionArray, mTextures); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java index 6294add731..73b45ecbb2 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java @@ -12,6 +12,10 @@ public abstract class GT_MetaTileEntity_BasicHull_NonElectric extends GT_MetaTil super(aName, aTier, 1, aDescription, aTextures); } + public GT_MetaTileEntity_BasicHull_NonElectric(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 1, aDescription, aTextures); + } + @Override public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) { return mTextures[Math.min(2, aSide)][aColorIndex + 1]; diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index c68ea4a612..e014f4039a 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -1,5 +1,6 @@ package gregtech.api.metatileentity.implementations; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; @@ -19,6 +20,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; @@ -48,6 +50,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B public int mMainFacing = -1, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mOutputBlocked = 0; public FluidStack mOutputFluid; public String mGUIName = "", mNEIName = ""; + public GT_MetaTileEntity_MultiBlockBase mCleanroom; /** * Contains the Recipe which has been previously used, or null if there was no previous Recipe, which could have been buffered */ @@ -89,6 +92,15 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mNEIName = aNEIName; } + public GT_MetaTileEntity_BasicMachine(String aName, int aTier, int aAmperage, String[] aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) { + super(aName, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aTextures); + mInputSlotCount = Math.max(0, aInputSlotCount); + mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)]; + mAmperage = aAmperage; + mGUIName = aGUIName; + mNEIName = aNEIName; + } + public boolean setMainFacing(byte aDirection){ mMainFacing = aDirection; if(getBaseMetaTileEntity().getFrontFacing() == mMainFacing){ @@ -423,6 +435,8 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B endProcess(); } if (mProgresstime > 5) mStuttering = false; + //XSTR aXSTR = new XSTR(); + //if(GT_Mod.gregtechproxy.mAprilFool && aXSTR.nextInt(5000)==0)GT_Utility.sendSoundToPlayers(aBaseMetaTileEntity.getWorld(), GregTech_API.sSoundList.get(5), 10.0F, -1.0F, aBaseMetaTileEntity.getXCoord(), aBaseMetaTileEntity.getYCoord(),aBaseMetaTileEntity.getZCoord()); } else { if (!mStuttering) { stutterProcess(); @@ -765,6 +779,16 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B return checkRecipe(false); } + public static boolean isValidForLowGravity(GT_Recipe tRecipe, int dimId){ + return //TODO check or get a better solution + DimensionManager.getProvider(dimId).getClass().getName().contains("Orbit") || + DimensionManager.getProvider(dimId).getClass().getName().endsWith("Space") || + DimensionManager.getProvider(dimId).getClass().getName().endsWith("Asteroids") || + DimensionManager.getProvider(dimId).getClass().getName().endsWith("SS") || + DimensionManager.getProvider(dimId).getClass().getName().contains("SpaceStation"); + } + + /** * * @param skipOC disables OverclockedNess calculation and check - if you do you must implement your own method... @@ -775,19 +799,27 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B if (tMap == null) return DID_NOT_FIND_RECIPE; GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[mTier], new FluidStack[]{getFillableStack()}, getSpecialSlot(), getAllInputs()); if (tRecipe == null) return DID_NOT_FIND_RECIPE; + if (GT_Mod.gregtechproxy.mLowGravProcessing && tRecipe.mSpecialValue == -100 && + !isValidForLowGravity(tRecipe,getBaseMetaTileEntity().getWorld().provider.dimensionId)) + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe; if (!canOutput(tRecipe)) { mOutputBlocked++; return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; } + if (tRecipe.mSpecialValue == -200 && (mCleanroom == null || mCleanroom.mEfficiency == 0)) + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; if (!tRecipe.isRecipeInputEqual(true, new FluidStack[]{getFillableStack()}, getAllInputs())) return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; - for (int i = 0; i < mOutputItems.length; i++) if (getBaseMetaTileEntity().getRandomNumber(10000) < tRecipe.getOutputChance(i)) mOutputItems[i] = tRecipe.getOutput(i); + if (tRecipe.mSpecialValue == -200) + for (int i = 0; i < mOutputItems.length; i++) + if (mOutputItems[i] != null && getBaseMetaTileEntity().getRandomNumber(10000) > mCleanroom.mEfficiency) + mOutputItems[i] = null; mOutputFluid = tRecipe.getFluidOutput(0); - if(!skipOC) { + if(!skipOC){ calculateOverclockedNess(tRecipe); //In case recipe is too OP for that machine if (mMaxProgresstime == Integer.MAX_VALUE - 1 && mEUt == Integer.MAX_VALUE - 1) diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java index 131f52f351..770f026d7c 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java @@ -41,6 +41,10 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE super(aName, aBricked ? 1 : 0, 0, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, "", ""); } + public GT_MetaTileEntity_BasicMachine_Bronze(String aName, String[] aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { + super(aName, aBricked ? 1 : 0, 0, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, "", ""); + } + @Override public void saveNBTData(NBTTagCompound aNBT) { super.saveNBTData(aNBT); diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java index 4684a4c471..d87e6d5ab8 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java @@ -616,9 +616,21 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ mGUIParameterB = (byte) aGUIParameterB; } + public GT_MetaTileEntity_BasicMachine_GT_Recipe(String aName, int aTier, String[] aDescription, GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, int aAmperage, int aGUIParameterA, int aGUIParameterB, ITexture[][][] aTextures, String aGUIName, String aNEIName, String aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, int aSpecialEffect) { + super(aName, aTier, aAmperage, aDescription, aTextures, aInputSlots, aOutputSlots, aGUIName, aNEIName); + mSharedTank = aSharedTank; + mTankCapacity = aTankCapacity; + mSpecialEffect = aSpecialEffect; + mRequiresFluidForFiltering = aRequiresFluidForFiltering; + mRecipes = aRecipes; + mSound = aSound; + mGUIParameterA = (byte) aGUIParameterA; + mGUIParameterB = (byte) aGUIParameterB; + } + @Override public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_BasicMachine_GT_Recipe(mName, mTier, mDescription, mRecipes, mInputSlotCount, mOutputItems == null ? 0 : mOutputItems.length, mTankCapacity, mAmperage, mGUIParameterA, mGUIParameterB, mTextures, mGUIName, mNEIName, mSound, mSharedTank, mRequiresFluidForFiltering, mSpecialEffect); + return new GT_MetaTileEntity_BasicMachine_GT_Recipe(mName, mTier, mDescriptionArray, mRecipes, mInputSlotCount, mOutputItems == null ? 0 : mOutputItems.length, mTankCapacity, mAmperage, mGUIParameterA, mGUIParameterB, mTextures, mGUIName, mNEIName, mSound, mSharedTank, mRequiresFluidForFiltering, mSpecialEffect); } @Override @@ -631,17 +643,21 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), mGUIName, GT_Utility.isStringValid(mNEIName) ? mNEIName : getRecipeList() != null ? getRecipeList().mUnlocalizedName : "", mGUIParameterA, mGUIParameterB); } - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) return false; - if (mInventory[aIndex] != null) return true; - switch (mInputSlotCount) { - case 0: return false; - case 1: return getFillableStack() == null ? !mRequiresFluidForFiltering && getRecipeList().containsInput(aStack) : null!=getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[] {getFillableStack()}, getSpecialSlot(), new ItemStack[] {aStack}); - case 2: return (!mRequiresFluidForFiltering || getFillableStack() != null) && (((getInputAt(0)!=null&&getInputAt(1)!=null) || (getInputAt(0)==null&&getInputAt(1)==null?getRecipeList().containsInput(aStack):(getRecipeList().containsInput(aStack)&&null!=getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[] {getFillableStack()}, getSpecialSlot(), aIndex == getInputSlot() ? new ItemStack[] {aStack, getInputAt(1)} : new ItemStack[] {getInputAt(0), aStack}))))); - default: return getRecipeList().containsInput(aStack); - } - } + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) return false; + if (mInventory[aIndex] != null) return true; + switch (mInputSlotCount) { + case 0: + return false; + case 1: + return getFillableStack() == null ? !mRequiresFluidForFiltering && getRecipeList().containsInput(aStack) : null != getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[]{getFillableStack()}, getSpecialSlot(), new ItemStack[]{aStack}); + case 2: + return (!mRequiresFluidForFiltering || getFillableStack() != null) && (((getInputAt(0) != null && getInputAt(1) != null) || (getInputAt(0) == null && getInputAt(1) == null ? getRecipeList().containsInput(aStack) : (getRecipeList().containsInput(aStack) && null != getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[]{getFillableStack()}, getSpecialSlot(), aIndex == getInputSlot() ? new ItemStack[]{aStack, getInputAt(1)} : new ItemStack[]{getInputAt(0), aStack}))))); + default: + return getRecipeList().containsInput(aStack); + } + } @Override public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java index 00a79f26ac..767d47eeee 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java @@ -20,6 +20,10 @@ public abstract class GT_MetaTileEntity_BasicMachine_Steel extends GT_MetaTileEn public GT_MetaTileEntity_BasicMachine_Steel(String aName, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { super(aName, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, aBricked); } + + public GT_MetaTileEntity_BasicMachine_Steel(String aName, String[] aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, boolean aBricked) { + super(aName, aDescription, aTextures, aInputSlotCount, aOutputSlotCount, aBricked); + } /* @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java index b6d3e3ca25..6d301ebd22 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java @@ -27,9 +27,17 @@ public abstract class GT_MetaTileEntity_BasicTank extends GT_MetaTileEntity_Tier super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures); } + public GT_MetaTileEntity_BasicTank(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String[] aDescription, ITexture... aTextures) { + super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures); + } + public GT_MetaTileEntity_BasicTank(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { super(aName, aTier, aInvSlotCount, aDescription, aTextures); } + + public GT_MetaTileEntity_BasicTank(String aName, int aTier, int aInvSlotCount, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } @Override public boolean isSimpleMachine() { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java index f4dd133aa1..42758c86e1 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java @@ -23,6 +23,10 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM super(aName, aTier, aInvSlotCount, aDescription, aTextures); } + public GT_MetaTileEntity_Buffer(String aName, int aTier, int aInvSlotCount, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + @Override public ITexture[][][] getTextureSet(ITexture[] aTextures) { ITexture[][][] rTextures = new ITexture[6][17][]; diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java index b691086518..9c13aa1dd8 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java @@ -17,6 +17,10 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan super(aName, aTier, aInvSlotCount, aDescription, aTextures); } + public GT_MetaTileEntity_Hatch(String aName, int aTier, int aInvSlotCount, String []aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + public static int getSlots(int aTier) { return aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java index 545dd34f57..df28cd7e54 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java @@ -18,6 +18,10 @@ public class GT_MetaTileEntity_Hatch_Dynamo extends GT_MetaTileEntity_Hatch { super(aName, aTier, 0, aDescription, aTextures); } + public GT_MetaTileEntity_Hatch_Dynamo(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } + @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { return new ITexture[]{aBaseTexture, Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier]}; @@ -75,7 +79,7 @@ public class GT_MetaTileEntity_Hatch_Dynamo extends GT_MetaTileEntity_Hatch { @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Dynamo(mName, mTier, mDescription, mTextures); + return new GT_MetaTileEntity_Hatch_Dynamo(mName, mTier, mDescriptionArray, mTextures); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java index 66ea9f8a07..bd362de26b 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java @@ -18,6 +18,10 @@ public class GT_MetaTileEntity_Hatch_Energy extends GT_MetaTileEntity_Hatch { super(aName, aTier, 0, aDescription, aTextures); } + public GT_MetaTileEntity_Hatch_Energy(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } + @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { return new ITexture[]{aBaseTexture, Textures.BlockIcons.OVERLAYS_ENERGY_IN_MULTI[mTier]}; @@ -80,7 +84,7 @@ public class GT_MetaTileEntity_Hatch_Energy extends GT_MetaTileEntity_Hatch { @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Energy(mName, mTier, mDescription, mTextures); + return new GT_MetaTileEntity_Hatch_Energy(mName, mTier, mDescriptionArray, mTextures); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java index 7f5b489548..5a50e4f19d 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java @@ -22,6 +22,10 @@ public class GT_MetaTileEntity_Hatch_Input extends GT_MetaTileEntity_Hatch { super(aName, aTier, 3, aDescription, aTextures); } + public GT_MetaTileEntity_Hatch_Input(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } + @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_IN)}; @@ -49,7 +53,7 @@ public class GT_MetaTileEntity_Hatch_Input extends GT_MetaTileEntity_Hatch { @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Input(mName, mTier, mDescription, mTextures); + return new GT_MetaTileEntity_Hatch_Input(mName, mTier, mDescriptionArray, mTextures); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java index 13b269c74b..e921ff63f4 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java @@ -22,6 +22,10 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch { public GT_MetaTileEntity_Hatch_InputBus(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { super(aName, aTier, aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16, aDescription, aTextures); } + + public GT_MetaTileEntity_Hatch_InputBus(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16, aDescription, aTextures); + } @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { @@ -55,7 +59,7 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch { @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_InputBus(mName, mTier, mDescription, mTextures); + return new GT_MetaTileEntity_Hatch_InputBus(mName, mTier, mDescriptionArray, mTextures); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java index a6bdee5f54..c96aa56aef 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java @@ -42,10 +42,26 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch mAuto = aAuto; } + public GT_MetaTileEntity_Hatch_Maintenance(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures, boolean aAuto) { + super(aName, aTier, aAuto ? 4 : 1, aDescription, aTextures); + mAuto = aAuto; + } + @Override public String[] getDescription() { - if(mAuto)return new String[]{mDescription, "4 Duct tape, 2 Lubricant Cells","4 Steel Screws, 2 Adv. Circuits","For each auto-repair"}; - return new String[]{mDescription, "Cannot be shared between Multiblocks!"}; + if (mAuto) { + String[] desc = new String[mDescriptionArray.length + 3]; + System.arraycopy(mDescriptionArray, 0, desc, 0, mDescriptionArray.length); + desc[mDescriptionArray.length] = "4 Ducttape, 2 Lubricant Cells"; + desc[mDescriptionArray.length + 1] = "4 Steel Screws, 2 Adv Circuits"; + desc[mDescriptionArray.length + 2] = "For each autorepair"; + return desc; + } else { + String[] desc = new String[mDescriptionArray.length + 1]; + System.arraycopy(mDescriptionArray, 0, desc, 0, mDescriptionArray.length); + desc[mDescriptionArray.length] = "Cannot be shared between Multiblocks!"; + return desc; + } } @Override @@ -87,8 +103,9 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - if(aTileEntity.getMetaTileID()==111) return new GT_MetaTileEntity_Hatch_Maintenance(mName, mTier, mDescription, mTextures, true); - return new GT_MetaTileEntity_Hatch_Maintenance(mName, mTier, mDescription, mTextures, false); + if (aTileEntity.getMetaTileID() == 111) + return new GT_MetaTileEntity_Hatch_Maintenance(mName, mTier, mDescriptionArray, mTextures, true); + return new GT_MetaTileEntity_Hatch_Maintenance(mName, mTier, mDescriptionArray, mTextures, false); } @Override @@ -100,13 +117,13 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch @Override public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - if(mAuto) return new GT_Container_2by2(aPlayerInventory, aBaseMetaTileEntity); + if (mAuto) return new GT_Container_2by2(aPlayerInventory, aBaseMetaTileEntity); return new GT_Container_MaintenanceHatch(aPlayerInventory, aBaseMetaTileEntity); } @Override public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - if(mAuto) return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); + if (mAuto) return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, getLocalName()); return new GT_GUIContainer_MaintenanceHatch(aPlayerInventory, aBaseMetaTileEntity); } @@ -191,7 +208,10 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch } if (mSolderingTool && aPlayer instanceof EntityPlayerMP) { EntityPlayerMP tPlayer = (EntityPlayerMP) aPlayer; - try{GT_Mod.instance.achievements.issueAchievement(tPlayer, "maintainance");}catch(Exception e){} + try { + GT_Mod.achievements.issueAchievement(tPlayer, "maintainance"); + } catch (Exception ignored) { + } } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java index ea4cf6b633..8a53a598cc 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java @@ -10,7 +10,6 @@ import gregtech.api.objects.XSTR; import gregtech.common.GT_Pollution; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.world.ChunkPosition; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -23,9 +22,17 @@ public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch { super(aName, aTier, 0, aDescription, aTextures); } + public GT_MetaTileEntity_Hatch_Muffler(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } + @Override public String[] getDescription() { - return new String[]{mDescription, "DO NOT OBSTRUCT THE OUTPUT!","Reduces Pollution to "+calculatePollutionReduction(100)+"%"}; + String[] desc = new String[mDescriptionArray.length + 2]; + System.arraycopy(mDescriptionArray, 0, desc, 0, mDescriptionArray.length); + desc[mDescriptionArray.length] = "DO NOT OBSTRUCT THE OUTPUT!"; + desc[mDescriptionArray.length + 1] = "Reduces Pollution to " + calculatePollutionReduction(100) + "%"; + return desc; } @Override @@ -60,19 +67,19 @@ public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch { @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Muffler(mName, mTier, mDescription, mTextures); + return new GT_MetaTileEntity_Hatch_Muffler(mName, mTier, mDescriptionArray, mTextures); } public boolean polluteEnvironment() { - if(getBaseMetaTileEntity().getAirAtSide(getBaseMetaTileEntity().getFrontFacing())){ - GT_Pollution.addPollution(new ChunkPosition(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord()), calculatePollutionReduction(10000)); - return true; - } + if (getBaseMetaTileEntity().getAirAtSide(getBaseMetaTileEntity().getFrontFacing())) { + GT_Pollution.addPollution(getBaseMetaTileEntity(), calculatePollutionReduction(10000)); + return true; + } return false; } public int calculatePollutionReduction(int aPollution){ - return (int) (aPollution *(Math.pow(0.85F, mTier-1))); + return (int) (aPollution *(Math.pow(0.85F, mTier - 1))); } @Override @@ -98,7 +105,7 @@ public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch { boolean chk1,chk2,chk3; float ran1=floatGen.nextFloat(),ran2=0,ran3=0; chk1=ran1*100<calculatePollutionReduction(100); - if(GT_Pollution.getPollutionAtCoords(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getZCoord())>= GT_Mod.gregtechproxy.mPollutionSmogLimit){ + if(GT_Pollution.getPollution(getBaseMetaTileEntity())>= GT_Mod.gregtechproxy.mPollutionSmogLimit){ ran2=floatGen.nextFloat(); ran3=floatGen.nextFloat(); chk2=ran2*100<calculatePollutionReduction(100); diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java index 051395cf19..20083249d7 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java @@ -24,6 +24,10 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch { super(aName, aTier, 3, aDescription, aTextures); } + public GT_MetaTileEntity_Hatch_Output(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } + @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; @@ -56,7 +60,7 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch { @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_Output(mName, mTier, mDescription, mTextures); + return new GT_MetaTileEntity_Hatch_Output(mName, mTier, mDescriptionArray, mTextures); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java index 6e040b8405..f39694cc2d 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java @@ -19,6 +19,10 @@ public class GT_MetaTileEntity_Hatch_OutputBus extends GT_MetaTileEntity_Hatch { super(aName, aTier, aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16, aDescription, aTextures); } + public GT_MetaTileEntity_Hatch_OutputBus(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16, aDescription, aTextures); + } + @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)}; @@ -51,7 +55,7 @@ public class GT_MetaTileEntity_Hatch_OutputBus extends GT_MetaTileEntity_Hatch { @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_OutputBus(mName, mTier, mDescription, mTextures); + return new GT_MetaTileEntity_Hatch_OutputBus(mName, mTier, mDescriptionArray, mTextures); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 20b8c57aba..89c75a0b4c 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -23,7 +23,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.ChunkPosition; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; @@ -52,7 +51,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { public GT_MetaTileEntity_MultiBlockBase(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional, 2); - this.disableMaintenance = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); + GT_MetaTileEntity_MultiBlockBase.disableMaintenance = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); this.damageFactorLow = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorLow", 5); this.damageFactorHigh = (float) GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorHigh", 0.6f); this.mNEI = ""; @@ -60,7 +59,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { public GT_MetaTileEntity_MultiBlockBase(String aName) { super(aName, 2); - this.disableMaintenance = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); + GT_MetaTileEntity_MultiBlockBase.disableMaintenance = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); this.damageFactorLow = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorLow", 5); this.damageFactorHigh = (float) GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorHigh", 0.6f); } @@ -119,18 +118,26 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { aNBT.setInteger("mPollution", mPollution); aNBT.setInteger("mRuntime", mRuntime); - if (mOutputItems != null) for (int i = 0; i < mOutputItems.length; i++) - if (mOutputItems[i] != null) { - NBTTagCompound tNBT = new NBTTagCompound(); - mOutputItems[i].writeToNBT(tNBT); - aNBT.setTag("mOutputItem" + i, tNBT); - } - if (mOutputFluids != null) for (int i = 0; i < mOutputFluids.length; i++) - if (mOutputFluids[i] != null) { - NBTTagCompound tNBT = new NBTTagCompound(); - mOutputFluids[i].writeToNBT(tNBT); - aNBT.setTag("mOutputFluids" + i, tNBT); - } + if (mOutputItems != null) { + aNBT.setInteger("mOutputItemsLength", mOutputItems.length); + for (int i = 0; i < mOutputItems.length; i++) + if (mOutputItems[i] != null) { + NBTTagCompound tNBT = new NBTTagCompound(); + mOutputItems[i].writeToNBT(tNBT); + aNBT.setTag("mOutputItem" + i, tNBT); + } + } + + if (mOutputFluids != null) { + aNBT.setInteger("mOutputFluidsLength", mOutputFluids.length); + for (int i = 0; i < mOutputFluids.length; i++) + if (mOutputFluids[i] != null) { + NBTTagCompound tNBT = new NBTTagCompound(); + mOutputFluids[i].writeToNBT(tNBT); + aNBT.setTag("mOutputFluids" + i, tNBT); + } + } + aNBT.setBoolean("mWrench", mWrench); aNBT.setBoolean("mScrewdriver", mScrewdriver); aNBT.setBoolean("mSoftHammer", mSoftHammer); @@ -149,11 +156,22 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { mEfficiency = aNBT.getInteger("mEfficiency"); mPollution = aNBT.getInteger("mPollution"); mRuntime = aNBT.getInteger("mRuntime"); - mOutputItems = new ItemStack[getAmountOfOutputs()]; - for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = GT_Utility.loadItem(aNBT, "mOutputItem" + i); - mOutputFluids = new FluidStack[getAmountOfOutputs()]; - for (int i = 0; i < mOutputFluids.length; i++) - mOutputFluids[i] = GT_Utility.loadFluid(aNBT, "mOutputFluids" + i); + + int aOutputItemsLength = aNBT.getInteger("mOutputItemsLength"); + if (aOutputItemsLength > 0) { + mOutputItems = new ItemStack[aOutputItemsLength]; + for (int i = 0; i < mOutputItems.length; i++) + mOutputItems[i] = GT_Utility.loadItem(aNBT, "mOutputItem" + i); + } + + int aOutputFluidsLength = aNBT.getInteger("mOutputFluidsLength"); + if (aOutputFluidsLength > 0) { + mOutputFluids = new FluidStack[aOutputFluidsLength]; + for (int i = 0; i < mOutputFluids.length; i++) + mOutputFluids[i] = GT_Utility.loadFluid(aNBT, "mOutputFluids" + i); + } + + mWrench = aNBT.getBoolean("mWrench"); mScrewdriver = aNBT.getBoolean("mScrewdriver"); mSoftHammer = aNBT.getBoolean("mSoftHammer"); @@ -242,16 +260,21 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { if (mMaxProgresstime > 0 && ++mProgresstime >= mMaxProgresstime) { if (mOutputItems != null) for (ItemStack tStack : mOutputItems) if (tStack != null) { - try{GT_Mod.instance.achievements.issueAchivementHatch(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), tStack);}catch(Exception e){} + try { + GT_Mod.achievements.issueAchivementHatch(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), tStack); + } catch (Exception ignored) { + } addOutput(tStack); } - if (mOutputFluids != null && mOutputFluids.length == 1) { - for (FluidStack tStack : mOutputFluids) - if (tStack != null) { - addOutput(tStack); - } - } else if (mOutputFluids != null && mOutputFluids.length > 1) { - addFluidOutputs(mOutputFluids); + if(mOutputFluids!=null) { + if (mOutputFluids.length == 1) { + for (FluidStack tStack : mOutputFluids) + if (tStack != null) { + addOutput(tStack); + } + } else if (mOutputFluids.length > 1) { + addFluidOutputs(mOutputFluids); + } } mEfficiency = Math.max(0, Math.min(mEfficiency + mEfficiencyIncrease, getMaxEfficiency(mInventory[1]) - ((getIdealStatus() - getRepairStatus()) * 1000))); mOutputItems = null; @@ -262,8 +285,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { if (mOutputFluids != null && mOutputFluids.length > 0) { if (mOutputFluids.length > 1) { try { - GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "oilplant"); - } catch (Exception e) { + GT_Mod.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "oilplant"); + } catch (Exception ignored) { } } } @@ -360,7 +383,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { * Gets the Amount of possibly outputted Items for loading the Output Stack Array from NBT. * This should be the largest Amount that can ever happen legitimately. */ - public abstract int getAmountOfOutputs(); + @Deprecated + public int getAmountOfOutputs(){return -1;} /** * If it explodes when the Component has to be replaced. @@ -482,7 +506,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { } public void explodeMultiblock() { - GT_Pollution.addPollution(new ChunkPosition(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord()), 300000); + GT_Pollution.addPollution(getBaseMetaTileEntity(), 300000); mInventory[1] = null; for (MetaTileEntity tTileEntity : mInputBusses) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); for (MetaTileEntity tTileEntity : mOutputBusses) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]); @@ -585,13 +609,13 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { return false; } - private void addFluidOutputs(FluidStack[] mOutputFluids2) { - for (int i = 0; i < mOutputFluids2.length; i++) { - if (mOutputHatches.size() > i && mOutputHatches.get(i) != null && mOutputFluids2[i] != null && isValidMetaTileEntity(mOutputHatches.get(i))) { - mOutputHatches.get(i).fill(mOutputFluids2[i], true); + private void addFluidOutputs(FluidStack[] mOutputFluids) { + int min=mOutputFluids.length>mOutputHatches.size()?mOutputHatches.size():mOutputFluids.length; + for (int i = 0; i < min; ++i) { + if (this.mOutputHatches.get(i) != null && mOutputFluids[i] != null && isValidMetaTileEntity(this.mOutputHatches.get(i))) { + this.mOutputHatches.get(i).fill(mOutputFluids[i], true); } } - } public boolean depleteInput(FluidStack aLiquid) { @@ -767,7 +791,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); if (aMetaTileEntity == null) return false; if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex; return mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity); } return false; diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java index 5355892d44..c413fe3c07 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java @@ -12,10 +12,13 @@ public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntit */ public final byte mTier; + @Deprecated + public final String mDescription; + /** * A simple Description. */ - public final String mDescription; + public final String[] mDescriptionArray; /** * Contains all Textures used by this Block. @@ -25,7 +28,18 @@ public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntit public GT_MetaTileEntity_TieredMachineBlock(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) { super(aID, aName, aNameRegional, aInvSlotCount); mTier = (byte) Math.max(0, Math.min(aTier, 15)); - mDescription = aDescription; + mDescriptionArray = aDescription == null ? new String[0] : new String[]{aDescription}; + mDescription = mDescriptionArray.length > 0 ? mDescriptionArray[0] : ""; + // must always be the last call! + if (GT.isClientSide()) mTextures = getTextureSet(aTextures); + else mTextures = null; + } + + public GT_MetaTileEntity_TieredMachineBlock(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String[] aDescription, ITexture... aTextures) { + super(aID, aName, aNameRegional, aInvSlotCount); + mTier = (byte) Math.max(0, Math.min(aTier, 15)); + mDescriptionArray = aDescription == null ? new String[0] : aDescription; + mDescription = mDescriptionArray.length > 0 ? mDescriptionArray[0] : ""; // must always be the last call! if (GT.isClientSide()) mTextures = getTextureSet(aTextures); @@ -35,7 +49,16 @@ public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntit public GT_MetaTileEntity_TieredMachineBlock(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { super(aName, aInvSlotCount); mTier = (byte) aTier; - mDescription = aDescription; + mDescriptionArray = aDescription == null ? new String[0] : new String[]{aDescription}; + mDescription = mDescriptionArray.length > 0 ? mDescriptionArray[0] : ""; + mTextures = aTextures; + } + + public GT_MetaTileEntity_TieredMachineBlock(String aName, int aTier, int aInvSlotCount, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aInvSlotCount); + mTier = (byte) aTier; + mDescriptionArray = aDescription == null ? new String[0] : aDescription; + mDescription = mDescriptionArray.length > 0 ? mDescriptionArray[0] : ""; mTextures = aTextures; } @@ -56,7 +79,7 @@ public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntit @Override public String[] getDescription() { - return new String[]{mDescription}; + return mDescriptionArray; } /** @@ -66,4 +89,4 @@ public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntit * @param aTextures is the optional Array you can give to the Constructor. */ public abstract ITexture[][][] getTextureSet(ITexture[] aTextures); -}
\ No newline at end of file +} diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java index 9e564221b0..3e6a28c22e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java @@ -36,6 +36,10 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi super(aName, aTier, 0, aDescription, aTextures); } + public GT_MetaTileEntity_Transformer(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } + @Override public ITexture[][][] getTextureSet(ITexture[] aTextures) { ITexture[][][] rTextures = new ITexture[12][17][]; @@ -63,7 +67,7 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi @Override public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Transformer(mName, mTier, mDescription, mTextures); + return new GT_MetaTileEntity_Transformer(mName, mTier, mDescriptionArray, mTextures); } @Override diff --git a/src/main/java/gregtech/api/objects/GT_FluidStack.java b/src/main/java/gregtech/api/objects/GT_FluidStack.java index 6ff1627ab7..96f8fc6849 100644 --- a/src/main/java/gregtech/api/objects/GT_FluidStack.java +++ b/src/main/java/gregtech/api/objects/GT_FluidStack.java @@ -68,4 +68,9 @@ public class GT_FluidStack extends FluidStack { } return new GT_FluidStack(this); } + + @Override + public String toString() { + return String.format("GT_FluidStack: %s x %s, ID:%s", this.amount, this.getFluid().getName(), this.getFluidID()); + } }
\ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/GT_UO_Dimension.java b/src/main/java/gregtech/api/objects/GT_UO_Dimension.java new file mode 100644 index 0000000000..cca5e22bf7 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GT_UO_Dimension.java @@ -0,0 +1,42 @@ +package gregtech.api.objects; + +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; +import net.minecraftforge.common.config.ConfigCategory; + +import java.util.Random; + +public class GT_UO_Dimension { + + private BiMap<String, GT_UO_Fluid> fFluids; + private int maxChance; + public String Dimension = "null"; + + public GT_UO_Dimension(ConfigCategory aConfigCategory) {//TODO CONFIGURE + fFluids = HashBiMap.create(); + if (aConfigCategory.containsKey("Dimension")) + { + aConfigCategory.get("Dimension").comment = "Dimension ID or Class Name"; + Dimension = aConfigCategory.get("Dimension").getString(); + } + maxChance = 0; + //System.out.println("GT UO "+aConfigCategory.getName()+" Dimension:"+Dimension); + for (int i = 0 ; i < aConfigCategory.getChildren().size(); i++) { + GT_UO_Fluid fluid = new GT_UO_Fluid((ConfigCategory)aConfigCategory.getChildren().toArray()[i]); + fFluids.put(fluid.Registry, fluid); + maxChance += fluid.Chance; + } + } + + public GT_UO_Fluid getRandomFluid (Random aRandom) { + int random = aRandom.nextInt(1000); + for (BiMap.Entry<String, GT_UO_Fluid> fl : fFluids.entrySet()) { + int chance = fl.getValue().Chance*1000/maxChance; + if (random<=chance) return fl.getValue(); + //System.out.println("GT UO "+fl.getValue().Registry+" Chance:"+chance+" Random:"+random); + random-=chance; + } + return null; + } + +} diff --git a/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java b/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java new file mode 100644 index 0000000000..36aad9a557 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java @@ -0,0 +1,82 @@ +package gregtech.api.objects; + +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; +import gregtech.api.util.GT_Log; +import net.minecraftforge.common.DimensionManager; +import net.minecraftforge.common.config.ConfigCategory; +import net.minecraftforge.common.config.Configuration; + +public class GT_UO_DimensionList { + + private Configuration fConfig; + private String fCategory; + private BiMap<String, GT_UO_Dimension> fDimensionList; + + public int[] BlackList; + + public GT_UO_DimensionList() { + fDimensionList = HashBiMap.create(); + } + + public GT_UO_Dimension GetDimension(int aDimension) { + if (fDimensionList.containsKey(Integer.toString(aDimension))) + return fDimensionList.get(Integer.toString(aDimension)); + for (BiMap.Entry <String, GT_UO_Dimension> dl : fDimensionList.entrySet()) + if (DimensionManager.getProvider(aDimension).getClass().getName().contains(dl.getValue().Dimension)) + return dl.getValue(); + return fDimensionList.get("Default"); + } + + public boolean CheckBlackList(int aDimensionId){ + try { + if (java.util.Arrays.binarySearch(BlackList, aDimensionId) >= 0) return true; + else return false; + } catch (Exception e) { + return false; + } + } + + public void SetConfigValues(String aDimensionName, String aDimension, String aName, String aRegistry, int aMinAmount, int aMaxAmount, int aChance, int aDecreasePerOperationAmount) { + String Category = fCategory+"."+aDimensionName; + fConfig.get(Category, "Dimension", aDimension).getString(); + Category+="."+aName; + fConfig.get(Category, "Registry", aRegistry).getString(); + fConfig.get(Category, "MinAmount", aMinAmount).getInt(aMinAmount); + fConfig.get(Category, "MaxAmount", aMaxAmount).getInt(aMaxAmount); + fConfig.get(Category, "Chance", aChance).getInt(aChance); + fConfig.get(Category, "DecreasePerOperationAmount", aDecreasePerOperationAmount).getInt(aDecreasePerOperationAmount); + //IT IS IN BUCKETS!!! + } + + public void SetDafultValues() { + SetConfigValues("Overworld", "0", "gas_natural_gas", "gas_natural_gas", 0, 700, 20, 7); + SetConfigValues("Overworld", "0", "liquid_light_oil", "liquid_light_oil", 0, 650, 20, 6); + SetConfigValues("Overworld", "0", "liquid_medium_oil", "liquid_medium_oil", 0, 600, 20, 5); + SetConfigValues("Overworld", "0", "liquid_heavy_oil", "liquid_heavy_oil", 0, 550, 20, 4); + SetConfigValues("Overworld", "0", "oil", "oil", 0, 600, 20, 5); + SetConfigValues("Moon", "Moon", "helium-3", "helium-3", 25, 150, 100, 1); + } + + public void getConfig(Configuration aConfig, String aCategory) { + fCategory=aCategory; + fConfig = aConfig; + if (!fConfig.hasCategory(fCategory)) + SetDafultValues(); + + fConfig.setCategoryComment(fCategory, "Config Underground Fluids (Delete this Category for regenerate)"); + fConfig.setCategoryComment(fCategory+".Default", "Set Default Generating (Use this Category for Default settings)"); + fConfig.setCategoryComment(fCategory+".Overworld", "Set Overworld Generating"); + fConfig.setCategoryComment(fCategory+".Moon", "Set Moon Generating"); + + int[] BlackList = {-1,1}; + BlackList = aConfig.get(fCategory, "DimBlackList", BlackList, "Dimension IDs Black List").getIntList(); + java.util.Arrays.sort(BlackList); + + for (int i = 0 ; i < fConfig.getCategory(fCategory).getChildren().size(); i++) { + GT_UO_Dimension Dimension = new GT_UO_Dimension((ConfigCategory)fConfig.getCategory(fCategory).getChildren().toArray()[i]); + fDimensionList.put(Dimension.Dimension, Dimension); + } + } + +} diff --git a/src/main/java/gregtech/api/objects/GT_UO_Fluid.java b/src/main/java/gregtech/api/objects/GT_UO_Fluid.java new file mode 100644 index 0000000000..5675f73b45 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GT_UO_Fluid.java @@ -0,0 +1,61 @@ +package gregtech.api.objects; + +import net.minecraftforge.common.config.ConfigCategory; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; + +import java.util.Random; + +import static gregtech.common.GT_UndergroundOil.DIVIDER; + +public class GT_UO_Fluid { + public String Registry = "null"; + public int MaxAmount = 0; + public int MinAmount = 0; + public int Chance = 0; + public int DecreasePerOperationAmount = 5; + + public GT_UO_Fluid(ConfigCategory aConfigCategory) {//TODO CONFIGURE + if (aConfigCategory.containsKey("Registry")) + { + aConfigCategory.get("Registry").comment = "Fluid registry name"; + Registry = aConfigCategory.get("Registry").getString(); + } + if (aConfigCategory.containsKey("MaxAmount")) + { + aConfigCategory.get("MaxAmount").comment = "Max amount generation (per operation, sets the VeinData) 80000 MAX"; + MaxAmount = aConfigCategory.get("MaxAmount").getInt(0); + } + if (aConfigCategory.containsKey("MinAmount")) + { + aConfigCategory.get("MinAmount").comment = "Min amount generation (per operation, sets the VeinData) 0 MIN"; + MinAmount = aConfigCategory.get("MinAmount").getInt(0); + } + if (aConfigCategory.containsKey("Chance")) + { + aConfigCategory.get("Chance").comment = "Chance generating (weighted chance!, there will be a fluid in chunk always!)"; + Chance = aConfigCategory.get("Chance").getInt(0); + } + if (aConfigCategory.containsKey("DecreasePerOperationAmount")) + { + aConfigCategory.get("DecreasePerOperationAmount").comment = "Decrease per operation (actual fluid gained works like (Litre)VeinData/5000)"; + DecreasePerOperationAmount = aConfigCategory.get("DecreasePerOperationAmount").getInt(5); + } + //System.out.println("GT UO "+aConfigCategory.getName()+" Fluid:"+Registry+" Max:"+MaxAmount+" Min:"+MinAmount+" Chance:"+Chance); + } + + public Fluid getFluid(){ + try { + return FluidRegistry.getFluid(this.Registry); + } catch (Exception e) { + return null; + } + } + + public int getRandomAmount(Random aRandom){//generates some random ass number that correlates to extraction speeds + int div = (int)Math.floor(Math.pow((MaxAmount-MinAmount)*100.d*DIVIDER, 0.2d)); + int min = (int)Math.floor(Math.pow(MinAmount*100.d*DIVIDER, 0.2d)); + double amount = min+aRandom.nextInt(div)+aRandom.nextDouble(); + return (int) (Math.pow(amount, 5) / 100);//reverses the computation above + } +}
\ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/ItemData.java b/src/main/java/gregtech/api/objects/ItemData.java index 4609e8e613..3ca1fad5d8 100644 --- a/src/main/java/gregtech/api/objects/ItemData.java +++ b/src/main/java/gregtech/api/objects/ItemData.java @@ -119,6 +119,6 @@ public class ItemData { @Override public String toString() { if (mPrefix == null || mMaterial == null || mMaterial.mMaterial == null) return ""; - return String.valueOf(new StringBuilder().append(mPrefix.name()).append(mMaterial.mMaterial.name())); + return String.valueOf(new StringBuilder().append(mPrefix.name()).append(mMaterial.mMaterial.mName)); } }
\ No newline at end of file diff --git a/src/main/java/gregtech/api/objects/MaterialStack.java b/src/main/java/gregtech/api/objects/MaterialStack.java index 6066d3cf23..62adefa35b 100644 --- a/src/main/java/gregtech/api/objects/MaterialStack.java +++ b/src/main/java/gregtech/api/objects/MaterialStack.java @@ -35,7 +35,7 @@ public class MaterialStack implements Cloneable { String temp1 = "", temp2 = mMaterial.getToolTip(true), temp3 = "", temp4 = ""; if (mAmount > 1) { temp4 = String.valueOf(mAmount); - if (mMaterial.mMaterialList.size() > 1) { + if (mMaterial.mMaterialList.size() > 1 || (mMaterial.mMaterialList.size() == 1 && mMaterial.mElement == null)) { temp1 = "("; temp3 = ")"; } diff --git a/src/main/java/gregtech/api/util/GT_BaseCrop.java b/src/main/java/gregtech/api/util/GT_BaseCrop.java index 38b88cc4fa..41bdcac3dc 100644 --- a/src/main/java/gregtech/api/util/GT_BaseCrop.java +++ b/src/main/java/gregtech/api/util/GT_BaseCrop.java @@ -1,6 +1,7 @@ package gregtech.api.util; import cpw.mods.fml.common.Loader; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Materials; @@ -61,7 +62,6 @@ public class GT_BaseCrop extends CropCard implements ICropCardInfo { * @param aGrowthSpeed how fast the Crop grows. if < 0 then its set to Tier*300 * @param aHarvestSize the size the Crop needs to be harvested. forced to be between 2 and max size * @param aBlock the block below needed for crop to grow. If null no block needed - * @param aMeta meta of the block below(-1 if no meta) */ public GT_BaseCrop(int aID, String aCropName, String aDiscoveredBy, ItemStack aBaseSeed, int aTier, int aMaxSize, int aGrowthSpeed, int aAfterHarvestSize, int aHarvestSize, int aStatChemical, int aStatFood, int aStatDefensive, int aStatColor, int aStatWeed, String[] aAttributes, Materials aBlock, ItemStack aDrop, ItemStack[] aSpecialDrops) { mName = aCropName; @@ -135,7 +135,7 @@ public class GT_BaseCrop extends CropCard implements ICropCardInfo { @Override public final boolean canGrow(ICropTile aCrop) { - if (mBlock != null && aCrop.getSize() == mMaxSize - 1) { + if (GT_Mod.gregtechproxy.mCropNeedBlock && mBlock != null && aCrop.getSize() == mMaxSize - 1) { return isBlockBelow(aCrop); } return aCrop.getSize() < maxSize(); @@ -236,7 +236,7 @@ public class GT_BaseCrop extends CropCard implements ICropCardInfo { public List<String> getCropInformation() { if (mBlock != null) { ArrayList<String> result = new ArrayList<String>(1); - result.add(String.format("Requires %s Ore or Block of %s as soil block to reach full growth.", mBlock.name(), mBlock.name())); + result.add(String.format("Requires %s Ore or Block of %s as soil block to reach full growth.", mBlock.mName, mBlock.mName)); return result; } return null; diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index df6071acac..d91f36dae4 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -2,6 +2,7 @@ package gregtech.api.util; import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.*; import gregtech.api.interfaces.IDamagableItem; @@ -183,7 +184,9 @@ public class GT_ModHandler { * Returns a Liquid Stack with given amount of distilled Water. */ public static FluidStack getDistilledWater(long aAmount) { - return FluidRegistry.getFluidStack("ic2distilledwater", (int) aAmount); + FluidStack tFluid = FluidRegistry.getFluidStack("ic2distilledwater", (int) aAmount); + if(tFluid==null)tFluid = getWater(aAmount); + return tFluid; } /** @@ -443,7 +446,8 @@ public class GT_ModHandler { if (aInput.stackSize == 1 && addSmeltingRecipe(aInput, aOutput)) temp = true; if (RA.addAlloySmelterRecipe(aInput, OrePrefixes.ingot.contains(aOutput) ? ItemList.Shape_Mold_Ingot.get(0) : OrePrefixes.block.contains(aOutput) ? ItemList.Shape_Mold_Block.get(0) : OrePrefixes.nugget.contains(aOutput) ? ItemList.Shape_Mold_Nugget.get(0) : null, aOutput, 130, 3,hidden)) temp = true; - if (addInductionSmelterRecipe(aInput, null, aOutput, null, aOutput.stackSize * 1600, 0)) temp = true; + if (GT_Mod.gregtechproxy.mTEMachineRecipes) + if (addInductionSmelterRecipe(aInput, null, aOutput, null, aOutput.stackSize * 1600, 0)) temp = true; return temp; } @@ -453,7 +457,7 @@ public class GT_ModHandler { public static boolean addLiquidTransposerRecipe(ItemStack aEmptyContainer, FluidStack aLiquid, ItemStack aFullContainer, int aMJ) { aFullContainer = GT_OreDictUnificator.get(true, aFullContainer); if (aEmptyContainer == null || aFullContainer == null || aLiquid == null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposer, aFullContainer, true)) + if (!GT_Mod.gregtechproxy.mTEMachineRecipes && !GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposer, aFullContainer, true)) return false; try { ThermalExpansion.addTransposerFill(aMJ * 10, aEmptyContainer, aFullContainer, aLiquid, true); @@ -467,7 +471,7 @@ public class GT_ModHandler { public static boolean addLiquidTransposerFillRecipe(ItemStack aEmptyContainer, FluidStack aLiquid, ItemStack aFullContainer, int aMJ) { aFullContainer = GT_OreDictUnificator.get(true, aFullContainer); if (aEmptyContainer == null || aFullContainer == null || aLiquid == null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposerfilling, aFullContainer, true)) + if (!GT_Mod.gregtechproxy.mTEMachineRecipes && !GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposerfilling, aFullContainer, true)) return false; try { ThermalExpansion.addTransposerFill(aMJ * 10, aEmptyContainer, aFullContainer, aLiquid, false); @@ -481,7 +485,7 @@ public class GT_ModHandler { public static boolean addLiquidTransposerEmptyRecipe(ItemStack aFullContainer, FluidStack aLiquid, ItemStack aEmptyContainer, int aMJ) { aEmptyContainer = GT_OreDictUnificator.get(true, aEmptyContainer); if (aFullContainer == null || aEmptyContainer == null || aLiquid == null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposeremptying, aFullContainer, true)) + if (!GT_Mod.gregtechproxy.mTEMachineRecipes && !GregTech_API.sRecipeFile.get(ConfigCategories.Machines.liquidtransposeremptying, aFullContainer, true)) return false; try { ThermalExpansion.addTransposerExtract(aMJ * 10, aFullContainer, aEmptyContainer, aLiquid, 100, false); @@ -495,9 +499,10 @@ public class GT_ModHandler { public static boolean addExtractionRecipe(ItemStack aInput, ItemStack aOutput) { aOutput = GT_OreDictUnificator.get(true, aOutput); if (aInput == null || aOutput == null) return false; - GT_Utility.removeSimpleIC2MachineRecipe(aInput, getExtractorRecipeList(), null); + if (GT_Mod.gregtechproxy.mAddGTRecipesToIC2Machines) GT_Utility.removeSimpleIC2MachineRecipe(aInput, getExtractorRecipeList(), null); if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.extractor, aInput, true)) return false; - GT_Utility.addSimpleIC2MachineRecipe(aInput, getExtractorRecipeList(), null, aOutput); + RA.addExtractorRecipe(aInput, aOutput, 300, 2); + if (GT_Mod.gregtechproxy.mAddGTRecipesToIC2Machines) GT_Utility.addSimpleIC2MachineRecipe(aInput, getExtractorRecipeList(), null, aOutput); return true; } @@ -549,18 +554,20 @@ public class GT_ModHandler { aOutput1 = GT_OreDictUnificator.get(true, aOutput1); aOutput2 = GT_OreDictUnificator.get(true, aOutput2); if (GT_Utility.isStackInvalid(aInput) || GT_Utility.isStackInvalid(aOutput1)) return false; - GT_Utility.removeSimpleIC2MachineRecipe(aInput, getMaceratorRecipeList(), null); + if (GT_Mod.gregtechproxy.mAddGTRecipesToIC2Machines) GT_Utility.removeSimpleIC2MachineRecipe(aInput, getMaceratorRecipeList(), null); if (GT_Utility.getContainerItem(aInput, false) == null) { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.maceration, aInput, true)) { + if (GT_Mod.gregtechproxy.mAddGTRecipesToIC2Machines && GregTech_API.sRecipeFile.get(ConfigCategories.Machines.maceration, aInput, true)) { GT_Utility.addSimpleIC2MachineRecipe(aInput, getMaceratorRecipeList(), null, aOutput1); } - + addMagneticraftRecipe(aInput, aOutput1, aOutput2, aChance2, aOutput3, aChance3); + addImmersiveEngineeringRecipe(aInput, aOutput1, aOutput2, aChance2, aOutput3, aChance3); RA.addPulveriserRecipe(aInput, new ItemStack[]{aOutput1, aOutput2, aOutput3}, new int[]{10000, aChance2 <= 0 ? 1000 : 100 * aChance2, aChance3 <= 0 ? 1000 : 100 * aChance3}, 400, 2); if (!OrePrefixes.log.contains(aInput)) { + boolean aEnableTEMachineRecipes = GT_Mod.gregtechproxy.mTEMachineRecipes; if (Materials.Wood.contains(aOutput1)) { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, true)) { + if (aEnableTEMachineRecipes && GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, true)) { if (aOutput2 == null) ThermalExpansion.addSawmillRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1)); else @@ -579,7 +586,7 @@ public class GT_ModHandler { } } catch (Throwable e) {/*Do nothing*/} } - if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, true)) { + if (aEnableTEMachineRecipes && GregTech_API.sRecipeFile.get(ConfigCategories.Machines.pulverization, aInput, true)) { if (aOutput2 == null) ThermalExpansion.addPulverizerRecipe(32000, GT_Utility.copy(aInput), GT_Utility.copy(aOutput1)); else @@ -590,6 +597,27 @@ public class GT_ModHandler { } return true; } + + public static boolean addImmersiveEngineeringRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3){ + if(GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes){ + blusunrize.immersiveengineering.common.IERecipes.addCrusherRecipe(aOutput1, aInput, 6000, aOutput2, 0.15f); + } + return true; + } + + public static boolean addMagneticraftRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3){ + if(GregTech_API.mMagneticraft && GT_Mod.gregtechproxy.mMagneticraftRecipes){ + ItemData tData = GT_OreDictUnificator.getAssociation(aInput); + if(tData!=null&&tData.mPrefix!=null){ + if(tData.mPrefix==OrePrefixes.ore||tData.mPrefix==OrePrefixes.oreBlackgranite||tData.mPrefix==OrePrefixes.oreEndstone||tData.mPrefix==OrePrefixes.oreNetherrack||tData.mPrefix==OrePrefixes.oreRedgranite){ + com.cout970.magneticraft.api.access.MgRecipeRegister.registerCrusherRecipe(aInput, aOutput1, aOutput2,(float)((float)aChance2/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent), aOutput3,(float)((float)aChance3/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent)); + }else if(tData.mPrefix==OrePrefixes.crushed||tData.mPrefix==OrePrefixes.crushedCentrifuged||tData.mPrefix==OrePrefixes.crushedPurified){ + com.cout970.magneticraft.api.access.MgRecipeRegister.registerGrinderRecipe(aInput, aOutput1, aOutput2,(float)((float)aChance2/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent), aOutput3,(float)((float)aChance3/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent)); + } + } + } + return true; + } /** * Adds a Recipe to the Sawmills of GregTech and ThermalCraft @@ -598,7 +626,7 @@ public class GT_ModHandler { aOutput1 = GT_OreDictUnificator.get(true, aOutput1); aOutput2 = GT_OreDictUnificator.get(true, aOutput2); if (aInput1 == null || aOutput1 == null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.sawmill, aInput1, true)) return false; + if (!GT_Mod.gregtechproxy.mTEMachineRecipes && !GregTech_API.sRecipeFile.get(ConfigCategories.Machines.sawmill, aInput1, true)) return false; try { ThermalExpansion.addSawmillRecipe(1600, aInput1, aOutput1, aOutput2, 100); } catch (Throwable e) {/*Do nothing*/} @@ -613,7 +641,8 @@ public class GT_ModHandler { aOutput1 = GT_OreDictUnificator.get(true, aOutput1); boolean temp = false; if (RA.addAlloySmelterRecipe(aInput1, aInput2, aOutput1, aDuration, aEUt)) temp = true; - if (addInductionSmelterRecipe(aInput1, aInput2, aOutput1, null, aDuration * aEUt * 2, 0)) temp = true; + if (GT_Mod.gregtechproxy.mTEMachineRecipes) + if (addInductionSmelterRecipe(aInput1, aInput2, aOutput1, null, aDuration * aEUt * 2, 0)) temp = true; return temp; } @@ -624,7 +653,7 @@ public class GT_ModHandler { aOutput1 = GT_OreDictUnificator.get(true, aOutput1); aOutput2 = GT_OreDictUnificator.get(true, aOutput2); if (aInput1 == null || aOutput1 == null || GT_Utility.getContainerItem(aInput1, false) != null) return false; - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.inductionsmelter, aInput2 == null ? aInput1 : aOutput1, true)) + if (!GT_Mod.gregtechproxy.mTEMachineRecipes && !GregTech_API.sRecipeFile.get(ConfigCategories.Machines.inductionsmelter, aInput2 == null ? aInput1 : aOutput1, true)) return false; try { ThermalExpansion.addSmelterRecipe(aEnergy * 10, GT_Utility.copy(aInput1), aInput2 == null ? new ItemStack(Blocks.sand, 1, 0) : aInput2, aOutput1, aOutput2, aChance); @@ -642,6 +671,46 @@ public class GT_ModHandler { return true; } + /** + * Adds GT versions of the IC2 recipes from the supplied IC2RecipeList. + */ + public static void addIC2RecipesToGT(Map<IRecipeInput, RecipeOutput> aIC2RecipeList, GT_Recipe.GT_Recipe_Map aGTRecipeMap, boolean aAddGTRecipe, boolean aRemoveIC2Recipe, boolean aExcludeGTIC2Items) { + Map<ItemStack, ItemStack> aRecipesToRemove = new HashMap<>(); + for (Iterator i$ = aIC2RecipeList.entrySet().iterator(); i$.hasNext(); ) { + Entry tRecipe = (Map.Entry) i$.next(); + if (((RecipeOutput) tRecipe.getValue()).items.size() > 0) { + for (ItemStack tStack : ((IRecipeInput) tRecipe.getKey()).getInputs()) { + if (GT_Utility.isStackValid(tStack)) { + if (aAddGTRecipe && (aGTRecipeMap.findRecipe(null, false, Long.MAX_VALUE, null, tStack) == null)) { + try{ + if (aExcludeGTIC2Items && ((tStack.getUnlocalizedName().contains("gt.metaitem.01") || tStack.getUnlocalizedName().contains("gt.blockores") || tStack.getUnlocalizedName().contains("ic2.itemCrushed") || tStack.getUnlocalizedName().contains("ic2.itemPurifiedCrushed")))) continue; + switch (aGTRecipeMap.mUnlocalizedName) { + case "gt.recipe.macerator": + aGTRecipeMap.addRecipe(true, new ItemStack[]{GT_Utility.copyAmount(((IRecipeInput) tRecipe.getKey()).getAmount(), tStack)}, (ItemStack[]) ((RecipeOutput) tRecipe.getValue()).items.toArray(), null, null, null, null, 300, 2, 0); + break; + case "gt.recipe.compressor": + aGTRecipeMap.addRecipe(true, new ItemStack[]{GT_Utility.copyAmount(((IRecipeInput) tRecipe.getKey()).getAmount(), tStack)}, (ItemStack[]) ((RecipeOutput) tRecipe.getValue()).items.toArray(), null, null, null, null, 300, 2, 0); + break; + case "gt.recipe.extractor": + aGTRecipeMap.addRecipe(true, new ItemStack[]{GT_Utility.copyAmount(((IRecipeInput) tRecipe.getKey()).getAmount(), tStack)}, (ItemStack[]) ((RecipeOutput) tRecipe.getValue()).items.toArray(), null, null, null, null, 300, 2, 0); + break; + case "gt.recipe.thermalcentrifuge": + aGTRecipeMap.addRecipe(true, new ItemStack[]{GT_Utility.copyAmount(((IRecipeInput) tRecipe.getKey()).getAmount(), tStack)}, (ItemStack[]) ((RecipeOutput) tRecipe.getValue()).items.toArray(), null, null, null, null, 500, 48, 0); + break; + } + }catch(Exception e){System.err.println(e);} + //System.out.println("#####Processed IC2 " + aGTRecipeMap.mUnlocalizedName + " Recipe: In(" + tStack.getUnlocalizedName() + ") - Out(" + ((RecipeOutput) tRecipe.getValue()).items.get(0).getUnlocalizedName() + ")"); + } + if (aRemoveIC2Recipe) aRecipesToRemove.put(tStack, ((RecipeOutput) tRecipe.getValue()).items.get(0)); + } + } + } + } + for (Entry<ItemStack, ItemStack> aEntry : aRecipesToRemove.entrySet()) { + GT_Utility.removeSimpleIC2MachineRecipe(aEntry.getKey(), aIC2RecipeList, aEntry.getValue()); + } + } + public static Map<IRecipeInput, RecipeOutput> getExtractorRecipeList() { try { return ic2.api.recipe.Recipes.extractor.getRecipes(); @@ -689,11 +758,14 @@ public class GT_ModHandler { */ public static boolean addThermalCentrifugeRecipe(ItemStack aInput, int aHeat, Object... aOutput) { if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return false; - GT_Utility.removeSimpleIC2MachineRecipe(aInput, getThermalCentrifugeRecipeList(), null); + if (GT_Mod.gregtechproxy.mAddGTRecipesToIC2Machines) GT_Utility.removeSimpleIC2MachineRecipe(aInput, getThermalCentrifugeRecipeList(), null); if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.thermalcentrifuge, aInput, true)) return false; - NBTTagCompound tNBT = new NBTTagCompound(); - tNBT.setInteger("minHeat", aHeat); - GT_Utility.addSimpleIC2MachineRecipe(aInput, getThermalCentrifugeRecipeList(), tNBT, aOutput); + RA.addThermalCentrifugeRecipe(aInput, aOutput.length >= 1 ? (ItemStack)aOutput[0] : null, aOutput.length >= 2 ? (ItemStack)aOutput[1] : null, aOutput.length >= 3 ? (ItemStack)aOutput[2] : null, 500, 48); + if (GT_Mod.gregtechproxy.mAddGTRecipesToIC2Machines) { + NBTTagCompound tNBT = new NBTTagCompound(); + tNBT.setInteger("minHeat", aHeat); + GT_Utility.addSimpleIC2MachineRecipe(aInput, getThermalCentrifugeRecipeList(), tNBT, aOutput); + } return true; } @@ -702,11 +774,14 @@ public class GT_ModHandler { */ public static boolean addOreWasherRecipe(ItemStack aInput, int aWaterAmount, Object... aOutput) { if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return false; - GT_Utility.removeSimpleIC2MachineRecipe(aInput, getOreWashingRecipeList(), null); + if (GT_Mod.gregtechproxy.mAddGTRecipesToIC2Machines) GT_Utility.removeSimpleIC2MachineRecipe(aInput, getOreWashingRecipeList(), null); if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.orewashing, aInput, true)) return false; - NBTTagCompound tNBT = new NBTTagCompound(); - tNBT.setInteger("amount", aWaterAmount); - GT_Utility.addSimpleIC2MachineRecipe(aInput, getOreWashingRecipeList(), tNBT, aOutput); + RA.addOreWasherRecipe(aInput, (ItemStack)aOutput[0], (ItemStack)aOutput[1], (ItemStack)aOutput[2], GT_ModHandler.getWater(1000L), 500, 16); + if (GT_Mod.gregtechproxy.mAddGTRecipesToIC2Machines) { + NBTTagCompound tNBT = new NBTTagCompound(); + tNBT.setInteger("amount", aWaterAmount); + GT_Utility.addSimpleIC2MachineRecipe(aInput, getOreWashingRecipeList(), tNBT, aOutput); + } return true; } @@ -715,10 +790,11 @@ public class GT_ModHandler { */ public static boolean addCompressionRecipe(ItemStack aInput, ItemStack aOutput) { aOutput = GT_OreDictUnificator.get(true, aOutput); - if (aInput == null || aOutput == null) return false; - GT_Utility.removeSimpleIC2MachineRecipe(aInput, getCompressorRecipeList(), null); + if (aInput == null || aOutput == null || GT_Utility.areStacksEqual(aInput, aOutput, true)) return false; + if (GT_Mod.gregtechproxy.mAddGTRecipesToIC2Machines) GT_Utility.removeSimpleIC2MachineRecipe(aInput, getCompressorRecipeList(), null); if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.compression, aInput, true)) return false; - GT_Utility.addSimpleIC2MachineRecipe(aInput, getCompressorRecipeList(), null, aOutput); + RA.addCompressorRecipe(aInput, aOutput, 300, 2); + if (GT_Mod.gregtechproxy.mAddGTRecipesToIC2Machines) GT_Utility.addSimpleIC2MachineRecipe(aInput, getCompressorRecipeList(), null, aOutput); return true; } @@ -1416,6 +1492,7 @@ public class GT_ModHandler { /** * Used in my own Macerator. Decreases StackSize of the Input if wanted. */ + @Deprecated public static ItemStack getMaceratorOutput(ItemStack aInput, boolean aRemoveInput, ItemStack aOutputSlot) { return GT_Utility.copy(getMachineOutput(aInput, getMaceratorRecipeList(), aRemoveInput, new NBTTagCompound(), aOutputSlot)[0]); } @@ -1423,6 +1500,7 @@ public class GT_ModHandler { /** * Used in my own Extractor. Decreases StackSize of the Input if wanted. */ + @Deprecated public static ItemStack getExtractorOutput(ItemStack aInput, boolean aRemoveInput, ItemStack aOutputSlot) { return GT_Utility.copy(getMachineOutput(aInput, getExtractorRecipeList(), aRemoveInput, new NBTTagCompound(), aOutputSlot)[0]); } @@ -1430,6 +1508,7 @@ public class GT_ModHandler { /** * Used in my own Compressor. Decreases StackSize of the Input if wanted. */ + @Deprecated public static ItemStack getCompressorOutput(ItemStack aInput, boolean aRemoveInput, ItemStack aOutputSlot) { return GT_Utility.copy(getMachineOutput(aInput, getCompressorRecipeList(), aRemoveInput, new NBTTagCompound(), aOutputSlot)[0]); } diff --git a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java index c8d95140a2..7552f5ea85 100644 --- a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java +++ b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java @@ -94,6 +94,8 @@ public class GT_OreDictUnificator { } public static ItemStack get(OrePrefixes aPrefix, Object aMaterial, ItemStack aReplacement, long aAmount) { + //if (Materials.mDefaultComponents.contains(aPrefix) && !aPrefix.mDynamicItems.contains((Materials)aMaterial)) aPrefix.mDynamicItems.add((Materials) aMaterial); + if (OrePrefixes.mPreventableComponents.contains(aPrefix) && aPrefix.mDisabledItems.contains(aMaterial)) return aReplacement; return get(aPrefix.get(aMaterial), aReplacement, aAmount, false, true); } diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java index 06b70df0ae..8d02972757 100644 --- a/src/main/java/gregtech/api/util/GT_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Recipe.java @@ -1,9 +1,26 @@ package gregtech.api.util; +import static gregtech.api.enums.GT_Values.D1; +import static gregtech.api.enums.GT_Values.D2; +import static gregtech.api.enums.GT_Values.E; +import static gregtech.api.enums.GT_Values.L; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; +import static gregtech.api.enums.GT_Values.W; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import codechicken.nei.PositionedStack; import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords; @@ -11,19 +28,17 @@ import gregtech.api.objects.GT_FluidStack; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.ItemData; import gregtech.api.objects.MaterialStack; +import gregtech.nei.GT_NEI_DefaultHandler.FixedPositionedStack; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntityFurnace; import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidContainerItem; -import java.util.*; - -import static gregtech.api.enums.GT_Values.*; - /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! * <p/> @@ -33,7 +48,7 @@ import static gregtech.api.enums.GT_Values.*; * <p/> * I know this File causes some Errors, because of missing Main Functions, but if you just need to compile Stuff, then remove said erroreous Functions. */ -public class GT_Recipe { +public class GT_Recipe implements Comparable<GT_Recipe> { public static volatile int VERSION = 509; /** * If you want to change the Output, feel free to modify or even replace the whole ItemStack Array, for Inputs, please add a new Recipe, because of the HashMaps. @@ -72,6 +87,11 @@ public class GT_Recipe { * If this Recipe needs the Output Slots to be completely empty. Needed in case you have randomised Outputs */ public boolean mNeedsEmptyOutput = false; + /** + * Used for describing recipes that do not fit the default recipe pattern (for example Large Boiler Fuels) + */ + private String[] neiDesc = null; + private GT_Recipe(GT_Recipe aRecipe) { mInputs = GT_Utility.copyStackArray((Object[]) aRecipe.mInputs); mOutputs = GT_Utility.copyStackArray((Object[]) aRecipe.mOutputs); @@ -173,6 +193,7 @@ public class GT_Recipe { // Diesel Generator case 0: GT_Recipe_Map.sDieselFuels.addRecipe(this); + GT_Recipe_Map.sLargeBoilerFakeFuels.addDieselRecipe(this); break; // Gas Turbine case 1: @@ -193,6 +214,7 @@ public class GT_Recipe { // Fluid Generator. Usually 3. Every wrong Type ends up in the Semifluid Generator default: GT_Recipe_Map.sDenseLiquidFuels.addRecipe(this); + GT_Recipe_Map.sLargeBoilerFakeFuels.addDenseLiquidRecipe(this); break; } } @@ -335,13 +357,13 @@ public class GT_Recipe { boolean temp = true; amt = tFluid.amount; for (FluidStack aFluid : aFluidInputs) - if (aFluid != null && aFluid.isFluidEqual(tFluid)){ - if (aDontCheckStackSizes ){ + if (aFluid != null && aFluid.isFluidEqual(tFluid)) { + if (aDontCheckStackSizes) { temp = false; break; } amt -= aFluid.amount; - if (amt<1){ + if (amt < 1) { temp = false; break; } @@ -424,8 +446,52 @@ public class GT_Recipe { return true; } - - public static class GT_Recipe_AssemblyLine{ + @Override + public int compareTo(GT_Recipe recipe) { + // first lowest tier recipes + // then fastest + // then with lowest special value + // then dry recipes + // then with fewer inputs + if (this.mEUt != recipe.mEUt) { + return this.mEUt - recipe.mEUt; + } else if (this.mDuration != recipe.mDuration) { + return this.mDuration - recipe.mDuration; + } else if (this.mSpecialValue != recipe.mSpecialValue) { + return this.mSpecialValue - recipe.mSpecialValue; + } else if (this.mFluidInputs.length != recipe.mFluidInputs.length) { + return this.mFluidInputs.length - recipe.mFluidInputs.length; + } else if (this.mInputs.length != recipe.mInputs.length) { + return this.mInputs.length - recipe.mInputs.length; + } + return 0; + } + + public String[] getNeiDesc() { + return neiDesc; + } + + protected void setNeiDesc(String... neiDesc) { + this.neiDesc = neiDesc; + } + + /** + * Overriding this method and getOutputPositionedStacks allows for custom NEI stack placement + * @return A list of input stacks + */ + public ArrayList<PositionedStack> getInputPositionedStacks(){ + return null; + } + + /** + * Overriding this method and getInputPositionedStacks allows for custom NEI stack placement + * @return A list of output stacks + */ + public ArrayList<PositionedStack> getOutputPositionedStacks(){ + return null; + } + + public static class GT_Recipe_AssemblyLine{ public static final ArrayList<GT_Recipe_AssemblyLine> sAssemblylineRecipes = new ArrayList<GT_Recipe_AssemblyLine>(); public ItemStack mResearchItem; @@ -454,10 +520,10 @@ public class GT_Recipe { */ public static final Collection<GT_Recipe_Map> sMappings = new ArrayList<GT_Recipe_Map>(); - public static final GT_Recipe_Map sOreWasherRecipes = new GT_Recipe_Map_OreWasher(new HashSet<GT_Recipe>(0), "ic.recipe.orewasher", "Ore Washing Plant", "ic2.blockOreWashingPlant", RES_PATH_GUI + "basicmachines/OreWasher", 1, 3, 1, 1, 1, E, 1, E, true, false); - public static final GT_Recipe_Map sThermalCentrifugeRecipes = new GT_Recipe_Map_ThermalCentrifuge(new HashSet<GT_Recipe>(0), "ic.recipe.thermalcentrifuge", "Thermal Centrifuge", "ic2.blockCentrifuge", RES_PATH_GUI + "basicmachines/ThermalCentrifuge", 1, 3, 1, 0, 2, E, 1, E, true, false); - public static final GT_Recipe_Map sCompressorRecipes = new GT_Recipe_Map_Compressor(new HashSet<GT_Recipe>(0), "ic.recipe.compressor", "Compressor", "ic2.compressor", RES_PATH_GUI + "basicmachines/Compressor", 1, 1, 1, 0, 1, E, 1, E, true, false); - public static final GT_Recipe_Map sExtractorRecipes = new GT_Recipe_Map_Extractor(new HashSet<GT_Recipe>(0), "ic.recipe.extractor", "Extractor", "ic2.extractor", RES_PATH_GUI + "basicmachines/Extractor", 1, 1, 1, 0, 1, E, 1, E, true, false); + public static final GT_Recipe_Map sOreWasherRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(120), "gt.recipe.orewasher", "Ore Washing Plant", null, RES_PATH_GUI + "basicmachines/OreWasher", 1, 3, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sThermalCentrifugeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(120), "gt.recipe.thermalcentrifuge", "Thermal Centrifuge", null, RES_PATH_GUI + "basicmachines/ThermalCentrifuge", 1, 3, 1, 0, 2, E, 1, E, true, true); + public static final GT_Recipe_Map sCompressorRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(1000), "gt.recipe.compressor", "Compressor", null, RES_PATH_GUI + "basicmachines/Compressor", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sExtractorRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(30), "gt.recipe.extractor", "Extractor", null, RES_PATH_GUI + "basicmachines/Extractor", 1, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sRecyclerRecipes = new GT_Recipe_Map_Recycler(new HashSet<GT_Recipe>(0), "ic.recipe.recycler", "Recycler", "ic2.recycler", RES_PATH_GUI + "basicmachines/Recycler", 1, 1, 1, 0, 1, E, 1, E, true, false); public static final GT_Recipe_Map sFurnaceRecipes = new GT_Recipe_Map_Furnace(new HashSet<GT_Recipe>(0), "mc.recipe.furnace", "Furnace", "smelting", RES_PATH_GUI + "basicmachines/E_Furnace", 1, 1, 1, 0, 1, E, 1, E, true, false); public static final GT_Recipe_Map sMicrowaveRecipes = new GT_Recipe_Map_Microwave(new HashSet<GT_Recipe>(0), "gt.recipe.microwave", "Microwave", "smelting", RES_PATH_GUI + "basicmachines/E_Furnace", 1, 1, 1, 0, 1, E, 1, E, true, false); @@ -465,9 +531,9 @@ public class GT_Recipe { public static final GT_Recipe_Map sScannerFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(300), "gt.recipe.scanner", "Scanner", null, RES_PATH_GUI + "basicmachines/Scanner", 1, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sRockBreakerFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(3), "gt.recipe.rockbreaker", "Rock Breaker", null, RES_PATH_GUI + "basicmachines/RockBreaker", 1, 1, 0, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sByProductList = new GT_Recipe_Map(new HashSet<GT_Recipe>(1000), "gt.recipe.byproductlist", "Ore Byproduct List", null, RES_PATH_GUI + "basicmachines/Default", 1, 6, 1, 0, 1, E, 1, E, true, true); - public static final GT_Recipe_Map sRepicatorFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.replicator", "Replicator", null, RES_PATH_GUI + "basicmachines/Replicator", 0, 1, 0, 1, 1, E, 1, E, true, true); - public static final GT_Recipe_Map sAssemblylineFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(30), "gt.recipe.fakeAssemblylineProcess", "Assemblyline Process", null, RES_PATH_GUI + "FakeAssemblyline", 1, 1, 1, 0, 1, E, 1, E, true, false); - + public static final GT_Recipe_Map sReplicatorFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.replicator", "Replicator", null, RES_PATH_GUI + "basicmachines/Replicator", 0, 1, 0, 1, 1, E, 1, E, true, true); + //public static final GT_Recipe_Map sAssemblylineFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(30), "gt.recipe.scanner", "Scanner", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sAssemblylineVisualRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(30), "gt.recipe.fakeAssemblylineProcess", "Assemblyline Process", null, RES_PATH_GUI + "FakeAssemblyline", 1, 1, 1, 0, 1, E, 1, E, true, false); public static final GT_Recipe_Map sPlasmaArcFurnaceRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(10000), "gt.recipe.plasmaarcfurnace", "Plasma Arc Furnace", null, RES_PATH_GUI + "basicmachines/PlasmaArcFurnace", 1, 4, 1, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sArcFurnaceRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(10000), "gt.recipe.arcfurnace", "Arc Furnace", null, RES_PATH_GUI + "basicmachines/ArcFurnace", 1, 4, 1, 1, 3, E, 1, E, true, true); public static final GT_Recipe_Map sPrinterRecipes = new GT_Recipe_Map_Printer(new HashSet<GT_Recipe>(100), "gt.recipe.printer", "Printer", null, RES_PATH_GUI + "basicmachines/Printer", 1, 1, 1, 1, 1, E, 1, E, true, true); @@ -477,25 +543,26 @@ public class GT_Recipe { public static final GT_Recipe_Map sMixerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.mixer", "Mixer", null, RES_PATH_GUI + "basicmachines/Mixer", 4, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sAutoclaveRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.autoclave", "Autoclave", null, RES_PATH_GUI + "basicmachines/Autoclave", 1, 1, 1, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sElectroMagneticSeparatorRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.electromagneticseparator", "Electromagnetic Separator", null, RES_PATH_GUI + "basicmachines/ElectromagneticSeparator", 1, 3, 1, 0, 1, E, 1, E, true, true); - public static final GT_Recipe_Map sPolarizerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.polarizer", "Polarizer", null, RES_PATH_GUI + "basicmachines/Polarizer", 1, 1, 1, 0, 1, E, 1, E, true, true); - public static final GT_Recipe_Map sMaceratorRecipes = new GT_Recipe_Map_Macerator(new HashSet<GT_Recipe>(16000), "gt.recipe.macerator", "Pulverizer", null, RES_PATH_GUI + "basicmachines/Macerator4", 1, 4, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sPolarizerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.polarizer", "Electromagnetic Polarizer", null, RES_PATH_GUI + "basicmachines/Polarizer", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sMaceratorRecipes = new GT_Recipe_Map_Macerator(new HashSet<GT_Recipe>(10000), "gt.recipe.macerator", "Pulverization", null, RES_PATH_GUI + "basicmachines/Macerator4", 1, 4, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sChemicalBathRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.chemicalbath", "Chemical Bath", null, RES_PATH_GUI + "basicmachines/ChemicalBath", 1, 3, 1, 1, 1, E, 1, E, true, true); - public static final GT_Recipe_Map sFluidCannerRecipes = new GT_Recipe_Map_FluidCanner(new HashSet<GT_Recipe>(100), "gt.recipe.fluidcanner", "Fluid Canner", null, RES_PATH_GUI + "basicmachines/FluidCannerNEI", 1, 1, 1, 0, 1, E, 1, E, true, true); - public static final GT_Recipe_Map sBrewingRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.brewer", "Brewery", null, RES_PATH_GUI + "basicmachines/PotionBrewer", 1, 0, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sFluidCannerRecipes = new GT_Recipe_Map_FluidCanner(new HashSet<GT_Recipe>(100), "gt.recipe.fluidcanner", "Fluid Canning Machine", null, RES_PATH_GUI + "basicmachines/FluidCannerNEI", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sBrewingRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.brewer", "Brewing Machine", null, RES_PATH_GUI + "basicmachines/PotionBrewer", 1, 0, 1, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sFluidHeaterRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.fluidheater", "Fluid Heater", null, RES_PATH_GUI + "basicmachines/FluidHeater", 1, 0, 1, 1, 1, E, 1, E, true, true); - public static final GT_Recipe_Map sDistilleryRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.distillery", "Distillery", null, RES_PATH_GUI + "basicmachines/Distillery", 1, 0, 1, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sDistilleryRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.distillery", "Distillery", null, RES_PATH_GUI + "basicmachines/Distillery", 1, 1, 1, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sFermentingRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.fermenter", "Fermenter", null, RES_PATH_GUI + "basicmachines/Fermenter", 0, 0, 0, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sFluidSolidficationRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.fluidsolidifier", "Fluid Solidifier", null, RES_PATH_GUI + "basicmachines/FluidSolidifier", 1, 1, 1, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sFluidExtractionRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.fluidextractor", "Fluid Extractor", null, RES_PATH_GUI + "basicmachines/FluidExtractor", 1, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sBoxinatorRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(2500), "gt.recipe.packager", "Packager", null, RES_PATH_GUI + "basicmachines/Packager", 2, 1, 2, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sUnboxinatorRecipes = new GT_Recipe_Map_Unboxinator(new HashSet<GT_Recipe>(2500), "gt.recipe.unpackager", "Unpackager", null, RES_PATH_GUI + "basicmachines/Unpackager", 1, 2, 1, 0, 1, E, 1, E, true, true); - public static final GT_Recipe_Map sFusionRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.fusionreactor", "Fusion Reactor", null, RES_PATH_GUI + "basicmachines/Default", 0, 0, 0, 2, 1, "Start: ", 1, " EU", true, true); + public static final GT_Recipe_Map sFusionRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.fusionreactor", "Fusion Reactor", null, RES_PATH_GUI + "basicmachines/FusionReactor", 0, 0, 0, 2, 1, "Start: ", 1, " EU", true, true); public static final GT_Recipe_Map sCentrifugeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(1000), "gt.recipe.centrifuge", "Centrifuge", null, RES_PATH_GUI + "basicmachines/Centrifuge", 2, 6, 0, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sElectrolyzerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.electrolyzer", "Electrolyzer", null, RES_PATH_GUI + "basicmachines/Electrolyzer", 2, 6, 0, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sBlastRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(500), "gt.recipe.blastfurnace", "Blast Furnace", null, RES_PATH_GUI + "basicmachines/Default", 2, 2, 1, 0, 1, "Heat Capacity: ", 1, " K", false, true); public static final GT_Recipe_Map sImplosionRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.implosioncompressor", "Implosion Compressor", null, RES_PATH_GUI + "basicmachines/Default", 2, 2, 2, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sVacuumRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.vacuumfreezer", "Vacuum Freezer", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 1, 0, 1, E, 1, E, true, true); - public static final GT_Recipe_Map sChemicalRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.chemicalreactor", "Chemical Reactor", null, RES_PATH_GUI + "basicmachines/ChemicalReactor", 2, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sChemicalRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.chemicalreactor", "Chemical Reactor", null, RES_PATH_GUI + "basicmachines/ChemicalReactor", 2, 2, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sMultiblockChemicalRecipes = new GT_Recipe_Map_LargeChemicalReactor(); public static final GT_Recipe_Map sDistillationRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.distillationtower", "Distillation Tower", null, RES_PATH_GUI + "basicmachines/Default", 2, 4, 0, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sCrakingRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.craker", "Oil Cracker", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sPyrolyseRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.pyro", "Pyrolyse Oven", null, RES_PATH_GUI + "basicmachines/Default", 2, 1, 1, 0, 1, E, 1, E, true, true); @@ -503,6 +570,7 @@ public class GT_Recipe { public static final GT_Recipe_Map sBenderRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(400), "gt.recipe.metalbender", "Bending Machine", null, RES_PATH_GUI + "basicmachines/Bender", 2, 1, 2, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sAlloySmelterRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(3000), "gt.recipe.alloysmelter", "Alloy Smelter", null, RES_PATH_GUI + "basicmachines/AlloySmelter", 2, 1, 2, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sAssemblerRecipes = new GT_Recipe_Map_Assembler(new HashSet<GT_Recipe>(300), "gt.recipe.assembler", "Assembling Machine", null, RES_PATH_GUI + "basicmachines/Assembler", 2, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sCircuitAssemblerRecipes = new GT_Recipe_Map_Assembler(new HashSet<GT_Recipe>(300), "gt.recipe.circuitassembler", "Circuit Assembler", null, RES_PATH_GUI + "basicmachines/CircuitAssembler", 6, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sCannerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(300), "gt.recipe.canner", "Canning Machine", null, RES_PATH_GUI + "basicmachines/Canner", 2, 2, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sCNCRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.cncmachine", "CNC Machine", null, RES_PATH_GUI + "basicmachines/Default", 2, 1, 2, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sLatheRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(400), "gt.recipe.lathe", "Lathe", null, RES_PATH_GUI + "basicmachines/Lathe", 1, 2, 1, 0, 1, E, 1, E, true, true); @@ -511,6 +579,7 @@ public class GT_Recipe { public static final GT_Recipe_Map sExtruderRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(1000), "gt.recipe.extruder", "Extruder", null, RES_PATH_GUI + "basicmachines/Extruder", 2, 1, 2, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sHammerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.hammer", "Forge Hammer", null, RES_PATH_GUI + "basicmachines/Hammer", 1, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sAmplifiers = new GT_Recipe_Map(new HashSet<GT_Recipe>(10), "gt.recipe.uuamplifier", "Amplifabricator", null, RES_PATH_GUI + "basicmachines/Amplifabricator", 1, 0, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sMassFabFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(10), "gt.recipe.massfab", "Mass Fabrication", null, RES_PATH_GUI + "basicmachines/Massfabricator", 1, 0, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map_Fuel sDieselFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.dieselgeneratorfuel", "Diesel Generator Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); public static final GT_Recipe_Map_Fuel sTurbineFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.gasturbinefuel", "Gas Turbine Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); public static final GT_Recipe_Map_Fuel sHotFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.thermalgeneratorfuel", "Thermal Generator Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, false); @@ -522,7 +591,8 @@ public class GT_Recipe { public static final GT_Recipe_Map_Fuel sFluidNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.fluidnaquadahreactor", "Naquadah Reactor MkIII", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); public static final GT_Recipe_Map_Fuel sHugeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.hugenaquadahreactor", "Naquadah Reactor MkIV", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); public static final GT_Recipe_Map_Fuel sExtraHugeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.extrahugenaquadahreactor", "Naquadah Reactor MkV", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); - + public static final GT_Recipe_Map_LargeBoilerFakeFuels sLargeBoilerFakeFuels = new GT_Recipe_Map_LargeBoilerFakeFuels(); + /** * HashMap of Recipes based on their Items */ @@ -1364,4 +1434,169 @@ public class GT_Recipe { return super.containsInput(aFluid) || Dyes.isAnyFluidDye(aFluid); } } + + public static class GT_Recipe_Map_LargeBoilerFakeFuels extends GT_Recipe_Map { + + public GT_Recipe_Map_LargeBoilerFakeFuels() { + super(new HashSet<GT_Recipe>(30), "gt.recipe.largeboilerfakefuels", "Large Boiler", null, RES_PATH_GUI + "basicmachines/Default", 1, 0, 1, 0, 1, E, 1, E, true, true); + GT_Recipe explanatoryRecipe = new GT_Recipe(true, new ItemStack[]{}, new ItemStack[]{}, null, null, null, null, 1, 1, 1); + explanatoryRecipe.setNeiDesc("Not all solid fuels are listed.", "Any item that burns in a", "vanilla furnace will burn in", "a Large Boiler."); + addRecipe(explanatoryRecipe); + } + + public GT_Recipe addDenseLiquidRecipe(GT_Recipe recipe) { + return addRecipe(recipe, ((double)recipe.mSpecialValue) / 10); + } + + public GT_Recipe addDieselRecipe(GT_Recipe recipe) { + return addRecipe(recipe,((double)recipe.mSpecialValue) / 40); + } + + public void addSolidRecipes(ItemStack ... itemStacks) { + for (ItemStack itemStack : itemStacks){ + addSolidRecipe(itemStack); + } + } + + public GT_Recipe addSolidRecipe(ItemStack fuelItemStack){ + return addRecipe(new GT_Recipe(true, new ItemStack[]{fuelItemStack}, new ItemStack[]{}, null, null, null, null, 1, 0, GT_ModHandler.getFuelValue(fuelItemStack) / 1600), ((double)GT_ModHandler.getFuelValue(fuelItemStack)) / 1600); + } + + private GT_Recipe addRecipe(GT_Recipe recipe, double baseBurnTime){ + recipe = new GT_Recipe(recipe); + //Some recipes will have a burn time like 15.9999999 and % always rounds down + double floatErrorCorrection = 0.0001; + + double bronzeBurnTime = baseBurnTime * 2 + floatErrorCorrection; + bronzeBurnTime -= bronzeBurnTime % 0.05; + double steelBurnTime = baseBurnTime * 1.5 + floatErrorCorrection; + steelBurnTime -= steelBurnTime % 0.05; + double titaniumBurnTime = baseBurnTime * 1.3 + floatErrorCorrection; + titaniumBurnTime -= titaniumBurnTime % 0.05; + double tungstensteelBurnTime = baseBurnTime * 1.2 + floatErrorCorrection; + tungstensteelBurnTime -= tungstensteelBurnTime % 0.05; + + recipe.setNeiDesc("Burn time in seconds:", + String.format("Bronze Boiler: %.4f", bronzeBurnTime), + String.format("Steel Boiler: %.4f", steelBurnTime), + String.format("Titanium Boiler: %.4f", titaniumBurnTime), + String.format("Tungstensteel Boiler: %.4f", tungstensteelBurnTime)); + return super.addRecipe(recipe); + } + + } + + public static class GT_Recipe_Map_LargeChemicalReactor extends GT_Recipe_Map{ + private static int INPUT_COUNT = 2; + private static int OUTPUT_COUNT = 2; + private static int FLUID_INPUT_COUNT = 3; + private static int FLUID_OUTPUT_COUNT = 3; + + public GT_Recipe_Map_LargeChemicalReactor() { + super(new HashSet<GT_Recipe>(200), "gt.recipe.largechemicalreactor", "Large Chemical Reactor", null, RES_PATH_GUI + "basicmachines/Default", INPUT_COUNT, OUTPUT_COUNT, 0, 0, 1, E, 1, E, true, true); + } + + @Override + public GT_Recipe addRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, int[] aOutputChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + aOptimize = false; + ArrayList<ItemStack> adjustedInputs = new ArrayList<ItemStack>(); + ArrayList<ItemStack> adjustedOutputs = new ArrayList<ItemStack>(); + ArrayList<FluidStack> adjustedFluidInputs = new ArrayList<FluidStack>(); + ArrayList<FluidStack> adjustedFluidOutputs = new ArrayList<FluidStack>(); + + for (ItemStack input : aInputs) { + FluidStack inputFluidContent = FluidContainerRegistry.getFluidForFilledItem(input); + if (inputFluidContent != null) { + inputFluidContent.amount *= input.stackSize; + adjustedFluidInputs.add(inputFluidContent); + } else { + ItemData itemData = GT_OreDictUnificator.getItemData(input); + if (itemData != null && itemData.hasValidPrefixMaterialData() && itemData.mMaterial.mMaterial == Materials.Empty) { + continue; + } else { + if (itemData != null && itemData.hasValidPrefixMaterialData() && itemData.mPrefix == OrePrefixes.cell) { + ItemStack dustStack = itemData.mMaterial.mMaterial.getDust(input.stackSize); + if (dustStack != null) { + adjustedInputs.add(dustStack); + } else { + adjustedInputs.add(input); + } + } else { + adjustedInputs.add(input); + } + } + } + } + for (FluidStack fluidInput : aFluidInputs) { + adjustedFluidInputs.add(fluidInput); + } + aInputs = adjustedInputs.toArray(new ItemStack[adjustedInputs.size()]); + aFluidInputs = adjustedFluidInputs.toArray(new FluidStack[adjustedFluidInputs.size()]); + + for (ItemStack output : aOutputs) { + FluidStack outputFluidContent = FluidContainerRegistry.getFluidForFilledItem(output); + if (outputFluidContent != null) { + outputFluidContent.amount *= output.stackSize; + adjustedFluidOutputs.add(outputFluidContent); + } else { + ItemData itemData = GT_OreDictUnificator.getItemData(output); + if (itemData != null && itemData.hasValidPrefixMaterialData() && itemData.mMaterial.mMaterial == Materials.Empty) { + continue; + } else { + adjustedOutputs.add(output); + } + } + } + for (FluidStack fluidOutput : aFluidOutputs) { + adjustedFluidOutputs.add(fluidOutput); + } + aOutputs = adjustedOutputs.toArray(new ItemStack[adjustedOutputs.size()]); + aFluidOutputs = adjustedFluidOutputs.toArray(new FluidStack[adjustedFluidOutputs.size()]); + + return addRecipe(new GT_Recipe_LargeChemicalReactor(aOptimize, aInputs, aOutputs, aSpecial, aOutputChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue)); + } + + private static class GT_Recipe_LargeChemicalReactor extends GT_Recipe{ + + protected GT_Recipe_LargeChemicalReactor(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) { + super(aOptimize, aInputs, aOutputs, aSpecialItems, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue); + } + + @Override + public ArrayList<PositionedStack> getInputPositionedStacks() { + int itemLimit = Math.min(mInputs.length, INPUT_COUNT); + int fluidLimit = Math.min(mFluidInputs.length, FLUID_INPUT_COUNT); + ArrayList<PositionedStack> inputStacks = new ArrayList<PositionedStack>(itemLimit + fluidLimit); + + for (int i = 0; i < itemLimit; i++) { + inputStacks.add(new FixedPositionedStack(this.getRepresentativeInput(i), 48 - i * 18, 5)); + } + + for (int i = 0; i < fluidLimit; i++) { + inputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidInputs[i], true), 48 - i * 18, 23)); + } + + return inputStacks; + } + + @Override + public ArrayList<PositionedStack> getOutputPositionedStacks() { + int itemLimit = Math.min(mOutputs.length, OUTPUT_COUNT); + int fluidLimit = Math.min(mFluidOutputs.length, FLUID_OUTPUT_COUNT); + ArrayList<PositionedStack> outputStacks = new ArrayList<PositionedStack>(itemLimit + fluidLimit); + + for (int i = 0; i < itemLimit; i++) { + outputStacks.add(new FixedPositionedStack(this.getOutput(i), 102 + i * 18, 5)); + } + + for (int i = 0; i < fluidLimit; i++) { + outputStacks.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidOutputs[i], true), 102 + i * 18, 23)); + } + + return outputStacks; + } + + + } + } } diff --git a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java index 5ea328ad4d..18478f7dae 100644 --- a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java +++ b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java @@ -199,12 +199,12 @@ public class GT_RecipeRegistrator { } if (tMaterial.mMaterial.contains(SubTag.EXPLOSIVE)) { tMaterial.mMaterial = Materials.Ash; - tMaterial.mAmount /= 4; + tMaterial.mAmount /= 16; continue; } if (tMaterial.mMaterial.contains(SubTag.FLAMMABLE)) { tMaterial.mMaterial = Materials.Ash; - tMaterial.mAmount /= 2; + tMaterial.mAmount /= 8; continue; } if (tMaterial.mMaterial.contains(SubTag.NO_SMELTING)) { @@ -212,7 +212,11 @@ public class GT_RecipeRegistrator { continue; } if (tMaterial.mMaterial.contains(SubTag.METAL)) { + if(GT_Mod.gregtechproxy.mArcSmeltIntoAnnealed){ tMaterial.mMaterial = tMaterial.mMaterial.mSmeltInto.mArcSmeltInto; + }else{ + tMaterial.mMaterial = tMaterial.mMaterial.mSmeltInto.mSmeltInto; + } continue; } tMaterial.mAmount = 0; @@ -232,7 +236,7 @@ public class GT_RecipeRegistrator { tAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); boolean tHide = !tIron && GT_Mod.gregtechproxy.mHideRecyclingRecipes; - RA.addArcFurnaceRecipe(aStack, new ItemStack[]{GT_OreDictUnificator.getIngotOrDust(aData.mMaterial), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(0)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(1)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(2))}, null, (int) Math.max(16, tAmount / M), 90, tHide); + RA.addArcFurnaceRecipe(aStack, new ItemStack[]{GT_OreDictUnificator.getIngotOrDust(aData.mMaterial), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(0)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(1)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(2))}, null, (int) Math.max(16, tAmount / M), 96, tHide); } public static void registerReverseMacerating(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByProduct01, MaterialStack aByProduct02, MaterialStack aByProduct03, boolean aAllowHammer) { @@ -346,4 +350,4 @@ public class GT_RecipeRegistrator { } } } -}
\ No newline at end of file +} diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 0cbe6b404f..877a6a716e 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -7,7 +7,6 @@ import gregtech.api.damagesources.GT_DamageSources; import gregtech.api.enchants.Enchantment_Radioactivity; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; import gregtech.api.enums.SubTag; import gregtech.api.events.BlockScanningEvent; import gregtech.api.interfaces.IDebugableBlock; @@ -18,7 +17,6 @@ import gregtech.api.items.GT_Generic_Item; import gregtech.api.net.GT_Packet_Sound; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.ItemData; -import gregtech.api.objects.XSTR; import gregtech.api.threads.GT_Runnable_Sound; import gregtech.common.GT_Proxy; import ic2.api.recipe.IRecipeInput; @@ -54,7 +52,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; -import net.minecraft.world.ChunkPosition; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraftforge.common.DimensionManager; @@ -73,6 +70,8 @@ import java.util.*; import java.util.Map.Entry; import static gregtech.api.enums.GT_Values.*; +import static gregtech.common.GT_Proxy.GTPOLLUTION; +import static gregtech.common.GT_UndergroundOil.undergroundOil; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! @@ -1463,7 +1462,21 @@ public class GT_Utility { if(aDimensionID<=1 && aDimensionID>=-1 && !GregTech_API.sDimensionalList.contains(aDimensionID)) return true; return !GregTech_API.sDimensionalList.contains(aDimensionID) && DimensionManager.isDimensionRegistered(aDimensionID); } - + + //public static boolean isRealDimension(int aDimensionID) { + // try { + // if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("com.xcompwiz.mystcraft")) + // return true; + // } catch (Throwable e) {/*Do nothing*/} + // try { + // if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("TwilightForest")) return true; + // } catch (Throwable e) {/*Do nothing*/} + // try { + // if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("galacticraft")) return true; + // } catch (Throwable e) {/*Do nothing*/} + // return GregTech_API.sDimensionalList.contains(aDimensionID); + //} + public static boolean moveEntityToDimensionAtCoords(Entity entity, int aDimension, double aX, double aY, double aZ) { //Credit goes to BrandonCore Author :!: @@ -1554,75 +1567,9 @@ public class GT_Utility { entity.fallDistance = 0; return true; } - - public static FluidStack undergroundOil(World aWorld, int aX, int aZ,boolean save,int sub) { - ChunkPosition tPos = new ChunkPosition(aX, 1, aZ); - int[] tInts = {0,0,0}; - if(GT_Proxy.chunkData.containsKey(tPos)){ - tInts = GT_Proxy.chunkData.get(tPos); - if(tInts.length>0){ - int type=tInts[0]>>28; - int amnt=tInts[0]-(type<<28)-sub; - if(type==0){//update old thing //IGNORES SAVE - chunk must be updated - GT_Proxy.chunkData.remove(tPos); - return setUndergroundOil(aWorld,aX,aZ,tPos,tInts); - } - if(save){//obvious? - //tInts[2]|=0x01; - if(amnt<=0) tInts[0] = type << 28; - else tInts[0] = (type << 28) + amnt; - GT_Proxy.chunkData.remove(tPos); - GT_Proxy.chunkData.put(tPos, tInts); - } - return getUndergroundOilFromInfo(type,amnt);//return negative amounts? if u extract too much - } - GT_Proxy.chunkData.remove(tPos);//remove broken - } - return setUndergroundOil(aWorld,aX,aZ,tPos,tInts);//will save if empty - } - - private static FluidStack getUndergroundOilFromInfo(int type,int amnt){ - switch (type) {//0 is old system - case 1: - return new FluidStack(Materials.OilLight .mFluid,amnt); - case 2: - return new FluidStack(Materials.OilMedium.mFluid,amnt); - case 3: - return new FluidStack(Materials.OilHeavy .mFluid,amnt); - case 4: - return new FluidStack(Materials.Oil .mFluid,amnt); - } - return new FluidStack(Materials.NatruralGas.mGas,amnt);//5 - } - - private static FluidStack setUndergroundOil(World aWorld, int aX, int aZ,ChunkPosition tPos,int[] tInts) { - XSTR tRandom = new XSTR(aWorld.getSeed() ^ ((long)(aX / 6) + (long)(7000 * (aZ / 6)))); - int type=tRandom.nextInt(5);//type slowly changes - int amnt = (int)(Math.ceil(Math.pow(2D+(double)(tRandom.nextInt(48))+(new XSTR()).nextDouble(),8D)/200000D)); - //roughly uses 28 bits - FluidStack tFluidStack; - switch (type) {//0 is old system - case 1: - tFluidStack=new FluidStack(Materials.OilLight .mFluid,amnt); - break; - case 2: - tFluidStack=new FluidStack(Materials.OilMedium.mFluid,amnt); - break; - case 3: - tFluidStack=new FluidStack(Materials.OilHeavy .mFluid,amnt); - break; - case 4: - tFluidStack=new FluidStack(Materials.Oil .mFluid,amnt); - break; - default://case 0; -> 5 - type=5;//important, 0 is invalid ! - tFluidStack=new FluidStack(Materials.NatruralGas.mGas,amnt);//5 - } - - tInts[0]=(type<<28)+amnt;//here since the switch changes type - //tInts[2]|=0x01; - GT_Proxy.chunkData.put(tPos, tInts); - return tFluidStack; + + public static int getScaleCoordinates(double aValue, int aScale) { + return (int)Math.floor(aValue / aScale); } public static int getCoordinateScan(ArrayList<String> aList, EntityPlayer aPlayer, World aWorld, int aScanLevel, int aX, int aY, int aZ, int aSide, float aClickX, float aClickY, float aClickZ) { @@ -1813,23 +1760,24 @@ public class GT_Utility { if (D1) e.printStackTrace(GT_Log.err); } } - if (aPlayer.capabilities.isCreativeMode) { - FluidStack tFluid = undergroundOil(aWorld, aX>>4, aZ>>4,false,0); - tList.add(EnumChatFormatting.GOLD+tFluid.getLocalizedName()+EnumChatFormatting.RESET+": " +EnumChatFormatting.YELLOW+ tFluid.amount +EnumChatFormatting.RESET+" L"); - } -// if(aPlayer.capabilities.isCreativeMode){ - ChunkPosition tPos = new ChunkPosition(aX>>4, 1, aZ>>4); - if(GT_Proxy.chunkData.containsKey(tPos)){ - int[] tPollution = GT_Proxy.chunkData.get(tPos); - if(tPollution.length>1 && tPollution[1]>0){ - tList.add("Pollution in Chunk: "+EnumChatFormatting.RED+tPollution[1]+EnumChatFormatting.RESET+" gibbl"); - }else{ - tList.add(EnumChatFormatting.GREEN+"No Pollution in Chunk! HAYO!"+EnumChatFormatting.RESET); - } - }else{ + if (aPlayer.capabilities.isCreativeMode && GT_Values.D1) { + FluidStack tFluid = undergroundOil(aWorld.getChunkFromBlockCoords(aX,aZ),-1);//-# to only read + if (tFluid!=null) + tList.add(EnumChatFormatting.GOLD+tFluid.getLocalizedName()+EnumChatFormatting.RESET+": " +EnumChatFormatting.YELLOW+ tFluid.amount +EnumChatFormatting.RESET+" L"); + else + tList.add(EnumChatFormatting.GOLD+"Nothing"+EnumChatFormatting.RESET+": " +EnumChatFormatting.YELLOW+ '0' +EnumChatFormatting.RESET+" L"); + } +// if(aPlayer.capabilities.isCreativeMode){ + int[] chunkData = GT_Proxy.dimensionWiseChunkData.get(aWorld.provider.dimensionId).get(aWorld.getChunkFromBlockCoords(aX,aZ).getChunkCoordIntPair()); + if(chunkData !=null){ + if(chunkData[GTPOLLUTION]>0){ + tList.add("Pollution in Chunk: "+EnumChatFormatting.RED+chunkData[GTPOLLUTION]+EnumChatFormatting.RESET+" gibbl"); + }else{ tList.add(EnumChatFormatting.GREEN+"No Pollution in Chunk! HAYO!"+EnumChatFormatting.RESET); } -// } + }else{ + tList.add(EnumChatFormatting.GREEN+"No Pollution in Chunk! HAYO!"+EnumChatFormatting.RESET); + } try { if (tBlock instanceof IDebugableBlock) { @@ -1985,6 +1933,10 @@ public class GT_Utility { return result; } + public static ItemStack getIntegratedCircuit(int config){ + return ItemList.Circuit_Integrated.getWithDamage(0, config, new Object[0]); + } + public static class ItemNBT { public static void setNBT(ItemStack aStack, NBTTagCompound aNBT) { if (aNBT == null) { @@ -2071,7 +2023,9 @@ public class GT_Utility { tNBT.setString("prospection", tData); setNBT(aStack, tNBT); } - + + + public static void setAdvancedProspectionData( byte aTier, ItemStack aStack, |