From db88561e8e21fb8b067bf5bf1a1753697d36ed29 Mon Sep 17 00:00:00 2001 From: Raven Szewczyk Date: Sat, 25 May 2024 15:39:05 +0100 Subject: Merge Lanthanides sources --- .../java/com/elisis/gtnhlanth/GTNHLanthanides.java | 97 + src/main/java/com/elisis/gtnhlanth/Tags.java | 9 + .../api/recipe/LanthanidesRecipeMaps.java | 25 + .../com/elisis/gtnhlanth/client/ClientProxy.java | 6 + .../com/elisis/gtnhlanth/common/CommonProxy.java | 14 + .../common/register/BotWerkstoffMaterialPool.java | 98 + .../gtnhlanth/common/register/LanthItemList.java | 19 + .../common/register/WerkstoffMaterialPool.java | 1919 ++++++++++ .../gtnhlanth/common/tileentity/Digester.java | 244 ++ .../common/tileentity/DissolutionTank.java | 277 ++ .../com/elisis/gtnhlanth/loader/BotRecipes.java | 267 ++ .../gtnhlanth/loader/MetaTileEntity_Loader.java | 4 + .../com/elisis/gtnhlanth/loader/RecipeLoader.java | 3744 ++++++++++++++++++++ .../elisis/gtnhlanth/loader/ZPMRubberChanges.java | 409 +++ .../gtnhlanth/util/DescTextLocalization.java | 22 + .../com/elisis/gtnhlanth/xmod/nei/NEI_Config.java | 26 + 16 files changed, 7180 insertions(+) create mode 100644 src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java create mode 100644 src/main/java/com/elisis/gtnhlanth/Tags.java create mode 100644 src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java create mode 100644 src/main/java/com/elisis/gtnhlanth/client/ClientProxy.java create mode 100644 src/main/java/com/elisis/gtnhlanth/common/CommonProxy.java create mode 100644 src/main/java/com/elisis/gtnhlanth/common/register/BotWerkstoffMaterialPool.java create mode 100644 src/main/java/com/elisis/gtnhlanth/common/register/LanthItemList.java create mode 100644 src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java create mode 100644 src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java create mode 100644 src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java create mode 100644 src/main/java/com/elisis/gtnhlanth/loader/BotRecipes.java create mode 100644 src/main/java/com/elisis/gtnhlanth/loader/MetaTileEntity_Loader.java create mode 100644 src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java create mode 100644 src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java create mode 100644 src/main/java/com/elisis/gtnhlanth/util/DescTextLocalization.java create mode 100644 src/main/java/com/elisis/gtnhlanth/xmod/nei/NEI_Config.java (limited to 'src/main/java/com/elisis') diff --git a/src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java b/src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java new file mode 100644 index 0000000000..944e36d0bc --- /dev/null +++ b/src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java @@ -0,0 +1,97 @@ +package com.elisis.gtnhlanth; + +import java.util.Arrays; +import java.util.logging.Logger; + +import net.minecraftforge.oredict.OreDictionary; + +import com.elisis.gtnhlanth.common.CommonProxy; +import com.elisis.gtnhlanth.common.register.BotWerkstoffMaterialPool; +import com.elisis.gtnhlanth.common.register.LanthItemList; +import com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool; +import com.elisis.gtnhlanth.loader.BotRecipes; +import com.elisis.gtnhlanth.loader.RecipeLoader; +import com.github.bartimaeusnek.bartworks.API.WerkstoffAdderRegistry; +import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; + +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLLoadCompleteEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_Log; + +@Mod( + modid = Tags.MODID, + version = Tags.VERSION, + name = Tags.MODNAME, + dependencies = "required-after:IC2; " + "required-after:gregtech; " + + "required-after:bartworks; " + + "required-after:GoodGenerator; " + + "before:miscutils; ") +public class GTNHLanthanides { + + public static Logger LOG = Logger.getLogger("GTNH:Lanthanides"); + + @Mod.Instance + public static GTNHLanthanides instance; + + @SidedProxy( + clientSide = "com.elisis.gtnhlanth.client.ClientProxy", + serverSide = "com.elisis.gtnhlanth.common.CommonProxy") + public static CommonProxy proxy; + + @EventHandler + public static void preInit(FMLPreInitializationEvent e) { + WerkstoffAdderRegistry.addWerkstoffAdder(new WerkstoffMaterialPool()); + WerkstoffAdderRegistry.addWerkstoffAdder(new BotWerkstoffMaterialPool()); + LanthItemList.register(); + // GregTech_API.sAfterGTPostload.add(new ZPMRubberChanges()); + proxy.preInit(e); + } + + @EventHandler + public static void init(FMLInitializationEvent e) { + proxy.init(e); + WerkstoffMaterialPool.runInit(); + } + + @EventHandler + public static void postInit(FMLPostInitializationEvent e) { + RecipeLoader.loadGeneral(); + RecipeLoader.loadLanthanideRecipes(); + RecipeLoader.addRandomChemCrafting(); + BotRecipes.addGTRecipe(); + // RecipeLoader.loadZylonRecipes(); + proxy.postInit(e); + // GT_Log.out.print(FluidRegistry.getFluid("Sodium Tungstate").getName()); + + GT_Log.out.print( + Arrays.toString( + Werkstoff.werkstoffNameHashMap.keySet() + .toArray())); + GT_Log.out.print( + Arrays.toString( + Werkstoff.werkstoffHashMap.keySet() + .toArray())); + + GT_Log.out.print( + "HMMM " + Arrays.toString( + OreDictionary + .getOreIDs(WerkstoffMaterialPool.DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 1)))); + } + + @EventHandler + public static void onModLoadingComplete(FMLLoadCompleteEvent e) { + GT_Log.out.print("AAAAAAAAAAAAAA"); + // + GT_Log.out.print("We are done loading"); + BotRecipes.removeRecipes(); + RecipeLoader.removeCeriumSources(); + + GT_Log.out.print("blah blah " + WerkstoffMaterialPool.PTMEGElastomer.hasGenerationFeature(OrePrefixes.ingot)); + } +} diff --git a/src/main/java/com/elisis/gtnhlanth/Tags.java b/src/main/java/com/elisis/gtnhlanth/Tags.java new file mode 100644 index 0000000000..93666809ba --- /dev/null +++ b/src/main/java/com/elisis/gtnhlanth/Tags.java @@ -0,0 +1,9 @@ +package com.elisis.gtnhlanth; + +public class Tags { + + public static final String MODID = "GRADLETOKEN_MODID"; + public static final String MODNAME = "GRADLETOKEN_MODNAME"; + public static final String VERSION = "GRADLETOKEN_VERSION"; + public static final String GROUPNAME = "GRADLETOKEN_GROUPNAME"; +} diff --git a/src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java b/src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java new file mode 100644 index 0000000000..4bf100b1d4 --- /dev/null +++ b/src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java @@ -0,0 +1,25 @@ +package com.elisis.gtnhlanth.api.recipe; + +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.recipe.RecipeMapBackend; +import gregtech.api.recipe.RecipeMapBuilder; +import gregtech.nei.formatter.HeatingCoilSpecialValueFormatter; +import gregtech.nei.formatter.SimpleSpecialValueFormatter; + +public class LanthanidesRecipeMaps { + + public static final RecipeMap digesterRecipes = RecipeMapBuilder.of("gtnhlanth.recipe.digester") + .maxIO(1, 1, 1, 1) + .minInputs(1, 1) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .neiSpecialInfoFormatter(HeatingCoilSpecialValueFormatter.INSTANCE) + .build(); + public static final RecipeMap dissolutionTankRecipes = RecipeMapBuilder + .of("gtnhlanth.recipe.disstank") + .maxIO(2, 3, 2, 1) + .minInputs(1, 1) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("value.disstank")) + .build(); +} diff --git a/src/main/java/com/elisis/gtnhlanth/client/ClientProxy.java b/src/main/java/com/elisis/gtnhlanth/client/ClientProxy.java new file mode 100644 index 0000000000..4420975173 --- /dev/null +++ b/src/main/java/com/elisis/gtnhlanth/client/ClientProxy.java @@ -0,0 +1,6 @@ +package com.elisis.gtnhlanth.client; + +import com.elisis.gtnhlanth.common.CommonProxy; + +public class ClientProxy extends CommonProxy { +} diff --git a/src/main/java/com/elisis/gtnhlanth/common/CommonProxy.java b/src/main/java/com/elisis/gtnhlanth/common/CommonProxy.java new file mode 100644 index 0000000000..6e77ba200f --- /dev/null +++ b/src/main/java/com/elisis/gtnhlanth/common/CommonProxy.java @@ -0,0 +1,14 @@ +package com.elisis.gtnhlanth.common; + +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + +public class CommonProxy { + + public void preInit(FMLPreInitializationEvent e) {} + + public void init(FMLInitializationEvent e) {} + + public void postInit(FMLPostInitializationEvent e) {} +} diff --git a/src/main/java/com/elisis/gtnhlanth/common/register/BotWerkstoffMaterialPool.java b/src/main/java/com/elisis/gtnhlanth/common/register/BotWerkstoffMaterialPool.java new file mode 100644 index 0000000000..3c52faaf64 --- /dev/null +++ b/src/main/java/com/elisis/gtnhlanth/common/register/BotWerkstoffMaterialPool.java @@ -0,0 +1,98 @@ +package com.elisis.gtnhlanth.common.register; + +import static com.github.bartimaeusnek.bartworks.system.material.Werkstoff.Types.*; +import static com.github.bartimaeusnek.bartworks.util.BW_Util.subscriptNumbers; +import static gregtech.api.enums.Materials.*; +import static gregtech.api.enums.TextureSet.*; + +import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; +import com.github.bartimaeusnek.bartworks.util.Pair; + +/* + * Originally authored by botn365 under the MIT License. See BotdustriesLICENSE + */ +@SuppressWarnings("unchecked") +public class BotWerkstoffMaterialPool implements Runnable { + + public static final Werkstoff TungsticAcid = new Werkstoff( + new short[] { 0xf5, 0xf1, 0x16 }, + "Tungstic Acid", + new Werkstoff.Stats(), + COMPOUND, + new Werkstoff.GenerationFeatures().onlyDust() + .enforceUnification(), + 29900, + SET_SHINY, + new Pair<>(Hydrogen, 2), + new Pair<>(Tungsten, 1), + new Pair<>(Oxygen, 4)); + public static final Werkstoff TungstenTrioxide = new Werkstoff( + new short[] { 0x0f, 0x5, 0x16 }, + "Tungsten Trioxide", + new Werkstoff.Stats(), + COMPOUND, + new Werkstoff.GenerationFeatures().onlyDust() + .enforceUnification(), + 29901, + SET_SHINY, + new Pair<>(Tungsten, 1), + new Pair<>(Oxygen, 3)); + public static final Werkstoff AmmoniumNitrate = new Werkstoff( + new short[] { 0x81, 0xcc, 0x00 }, + "Ammonium Nitrate", + new Werkstoff.Stats(), + COMPOUND, + new Werkstoff.GenerationFeatures().onlyDust(), + 29903, + SET_FINE, + new Pair<>(Nitrogen, 1), + new Pair<>(Hydrogen, 4), + new Pair<>(Nitrogen, 1), + new Pair<>(Oxygen, 3)); + public static final Werkstoff SodiumTungstate = new Werkstoff( + new short[] { 0xc, 0xed, 0xd7, 0 }, + "Sodium Tungstate", + subscriptNumbers("Na2WO4"), + new Werkstoff.Stats(), + COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + 29904, + SET_FINE); + public static final Werkstoff Phosgene = new Werkstoff( + new short[] { 0x15, 0xa1, 0x1a }, + "Phosgene", + subscriptNumbers("COCl2"), + new Werkstoff.Stats(), + COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + 29905, + SET_FINE); + public static final Werkstoff OXylene = new Werkstoff( + new short[] { 0x88, 0x94, 0xa8 }, + "O-Xylene", + subscriptNumbers("C8H10"), + new Werkstoff.Stats().setGas(true), + COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + 29915, + SET_FINE); + public static final Werkstoff Nitromethane = new Werkstoff( + new short[] { 0x87, 0x7d, 0x60 }, + "Nitromethane", + subscriptNumbers("CH3NO2"), + new Werkstoff.Stats(), + COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + 29914, + SET_METALLIC); + + @Override + public void run() { + // TODO Auto-generated method stub + + } +} diff --git a/src/main/java/com/elisis/gtnhlanth/common/register/LanthItemList.java b/src/main/java/com/elisis/gtnhlanth/common/register/LanthItemList.java new file mode 100644 index 0000000000..69aa026e47 --- /dev/null +++ b/src/main/java/com/elisis/gtnhlanth/common/register/LanthItemList.java @@ -0,0 +1,19 @@ +package com.elisis.gtnhlanth.common.register; + +import net.minecraft.item.ItemStack; + +import com.elisis.gtnhlanth.common.tileentity.Digester; +import com.elisis.gtnhlanth.common.tileentity.DissolutionTank; + +public final class LanthItemList { + + public static ItemStack DIGESTER; + public static ItemStack DISSOLUTION_TANK; + + public static void register() { + + LanthItemList.DIGESTER = new Digester(10500, "Digester", "Digester").getStackForm(1L); + LanthItemList.DISSOLUTION_TANK = new DissolutionTank(10501, "Dissolution Tank", "Dissolution Tank") + .getStackForm(1L); + } +} diff --git a/src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java b/src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java new file mode 100644 index 0000000000..9f788c1b92 --- /dev/null +++ b/src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java @@ -0,0 +1,1919 @@ +package com.elisis.gtnhlanth.common.register; + +import static com.github.bartimaeusnek.bartworks.util.BW_Util.subscriptNumbers; + +import java.util.Arrays; + +import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; +import com.github.bartimaeusnek.bartworks.util.Pair; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.TextureSet; + +@SuppressWarnings({ "unchecked" }) +public class WerkstoffMaterialPool implements Runnable { + + private static final int offsetID = 11_000; + private static final int offsetID2 = 11_100; + private static final int offsetID3 = 11_300; + private static final int offsetID4 = 11_400; + private static final int offsetID5 = 11_460; + + /* + * public static final Werkstoff __ = new Werkstoff( new short[] {_, _, _}, "__", new Werkstoff.Stats(), + * Werkstoff.Types.MIXTURE, new Werkstoff.GenerationFeatures().disable(), offsetID_, TextureSet.SET_DULL ); + */ + + // Misc. + public static final Werkstoff Hafnium = new Werkstoff( + new short[] { 232, 224, 219 }, + "Hafnium", + subscriptNumbers("Hf"), + new Werkstoff.Stats(), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addMetalItems() + .enforceUnification(), // Perhaps use + // hafnia + // liquid in + // elemental + // hafnium + // synthesis + offsetID, + TextureSet.SET_DULL); + + public static final Werkstoff LowPurityHafnium = new Werkstoff( + new short[] { 240, 223, 208 }, + "Low-Purity Hafnium", + subscriptNumbers("??Hf??"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), // Perhaps use hafnia liquid in elemental hafnium + // synthesis + offsetID + 1, + TextureSet.SET_DULL); + + public static final Werkstoff Hafnia = new Werkstoff( + new short[] { 247, 223, 203 }, + "Hafnia", + subscriptNumbers("HfO2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), // Perhaps use hafnia liquid in elemental hafnium + // synthesis + offsetID + 2, + TextureSet.SET_DULL); + + public static final Werkstoff HafniumTetrachloride = new Werkstoff( + new short[] { 238, 247, 249 }, + "Hafnium Tetrachloride", + subscriptNumbers("HfCl4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 3, + TextureSet.SET_DULL); + + public static final Werkstoff HafniumTetrachlorideSolution = new Werkstoff( + new short[] { 238, 247, 249 }, + "Hafnium Tetrachloride Solution", + subscriptNumbers("HfCl4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 4, + TextureSet.SET_FLUID); + + public static final Werkstoff HafniumIodide = new Werkstoff( + new short[] { 216, 60, 1 }, + "Hafnium Iodide", + subscriptNumbers("HfI4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 5, + TextureSet.SET_DULL); + + public static final Werkstoff HafniumRunoff = new Werkstoff( + new short[] { 74, 65, 42 }, // Literally the statistically ugliest colour + "Hafnium Runoff", + subscriptNumbers("??????"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 6, + TextureSet.SET_DULL); + + public static final Werkstoff Zirconium = new Werkstoff( + new short[] { 225, 230, 225 }, + "Zirconium", + subscriptNumbers("Zr"), + new Werkstoff.Stats().setBlastFurnace(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addMetalItems() + .enforceUnification(), + offsetID + 7, + TextureSet.SET_DULL); + + public static final Werkstoff Zirconia = new Werkstoff( + new short[] { 177, 152, 101 }, + "Zirconia", + subscriptNumbers("ZrO2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 8, + TextureSet.SET_DULL); + + public static final Werkstoff ZirconiumTetrachloride = new Werkstoff( + new short[] { 179, 164, 151 }, + "Zirconium Tetrachloride", + subscriptNumbers("ZrCl4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 9, + TextureSet.SET_DULL); + + public static final Werkstoff ZirconiumTetrachlorideSolution = new Werkstoff( + new short[] { 179, 164, 151 }, + "Zirconium Tetrachloride Solution", + subscriptNumbers("ZrCl4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), // Blast Furnace needs liquid input because it + // can't do 3 item inputs so have a shitty + // material + offsetID + 10, + TextureSet.SET_FLUID); + + public static final Werkstoff HafniaZirconiaBlend = new Werkstoff( + new short[] { 247, 223, 203 }, + "Hafnia-Zirconia Blend", // Maybe Hafnon?? + subscriptNumbers("??HfZr??"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 11, + TextureSet.SET_DULL); + + public static final Werkstoff Iodine = new Werkstoff( + new short[] { 171, 40, 175 }, + "Iodine", + subscriptNumbers("I"), + new Werkstoff.Stats().setProtons(53) + .setMass(127) + .setSublimation(true) + .setBoilingPoint(484) + .setGas(true), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addCells() + .enforceUnification(), + offsetID + 12, + TextureSet.SET_FLUID); + + // Lanthanide Line + public static final Werkstoff MuddyRareEarthMonaziteSolution = new Werkstoff( + new short[] { 111, 78, 55 }, + "Muddy Monazite Rare Earth Solution", + subscriptNumbers("??LaNdZr??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 14, + TextureSet.SET_FLUID); + + public static final Werkstoff DilutedRareEarthMonaziteMud = new Werkstoff( + new short[] { 160, 120, 90 }, + "Diluted Monazite Rare Earth Mud", + subscriptNumbers("??LaNdHf??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 15, + TextureSet.SET_FLUID); + + public static final Werkstoff DilutedMonaziteSulfate = new Werkstoff( + new short[] { 237, 201, 175 }, + "Diluted Monazite Sulfate", + subscriptNumbers("??LaNd??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 16, + TextureSet.SET_FLUID); + + public static final Werkstoff NitratedRareEarthMonaziteConcentrate = new Werkstoff( + new short[] { 250, 223, 173 }, + "Nitrogenated Monazite Rare Earth Concentrate", + subscriptNumbers("??LaNd??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 17, + TextureSet.SET_FLUID); + + public static final Werkstoff NitricMonaziteLeachedConcentrate = new Werkstoff( + new short[] { 244, 202, 22 }, + "Nitric Monazite Leached Concentrate", + subscriptNumbers("??LaNd??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 18, + TextureSet.SET_FLUID); + + public static final Werkstoff MonaziteSulfate = new Werkstoff( + new short[] { 152, 118, 84 }, + "Monazite Sulfate", + subscriptNumbers("??CeEu??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 19, + TextureSet.SET_DULL); + + public static final Werkstoff AcidicMonazitePowder = new Werkstoff( + new short[] { 50, 23, 77 }, + "Acidic Monazite Powder", + subscriptNumbers("????"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 20, + TextureSet.SET_DULL); + + public static final Werkstoff MonaziteRareEarthFiltrate = new Werkstoff( + new short[] { 72, 60, 50 }, + "Monazite Rare Earth Filtrate", + subscriptNumbers("????"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 21, + TextureSet.SET_DULL); + + public static final Werkstoff NeutralizedMonaziteRareEarthFiltrate = new Werkstoff( + new short[] { 50, 23, 77 }, + "Neutralized Monazite Rare Earth Filtrate", + subscriptNumbers("????"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 22, + TextureSet.SET_DULL); + + public static final Werkstoff MonaziteRareEarthHydroxideConcentrate = new Werkstoff( + new short[] { 193, 154, 107 }, + "Monazite Rare Earth Hydroxide Concentrate", + subscriptNumbers("????"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 23, + TextureSet.SET_DULL); + + public static final Werkstoff DriedMonaziteRareEarthConcentrate = new Werkstoff( + new short[] { 250, 214, 165 }, + "Dried Monazite Rare Earth Concentrate", + subscriptNumbers("????"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 24, + TextureSet.SET_DULL); + + public static final Werkstoff CeriumDioxide = new Werkstoff( + new short[] { 255, 255, 255 }, + "Cerium Dioxide", + subscriptNumbers("CeO2"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .enforceUnification(), + offsetID + 25, + TextureSet.SET_DULL); + + public static final Werkstoff CeriumChloride = new Werkstoff( + new short[] { 255, 255, 255 }, + "Cerium Chloride", + subscriptNumbers("CeCl3"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 26, + TextureSet.SET_DULL); + + public static final Werkstoff CeriumOxalate = new Werkstoff( + new short[] { 255, 255, 224 }, + "Cerium Oxalate", + subscriptNumbers("Ce2(C2O4)3"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 27, + TextureSet.SET_DULL); + + public static final Werkstoff CeriumIIIOxide = new Werkstoff( + new short[] { 255, 255, 102 }, + "Cerium (III) Oxide", + subscriptNumbers("Ce2O3"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 28, + TextureSet.SET_DULL, + Arrays.asList(Materials.Cerium, Materials.Oxygen), + new Pair<>(Materials.Cerium, 2), + new Pair<>(Materials.Oxygen, 3)); + + public static final Werkstoff CeriumRichMixture = new Werkstoff( + new short[] { 244, 164, 96 }, + "Cerium-Rich Mixture", + subscriptNumbers("??Ce??"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 29, + TextureSet.SET_DULL); + + public static final Werkstoff CooledMonaziteRareEarthConcentrate = new Werkstoff( + new short[] { 250, 214, 165 }, + "Cooled Monazite Rare Earth Concentrate", + subscriptNumbers("????"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 30, + TextureSet.SET_DULL); + + public static final Werkstoff MonaziteRarerEarthSediment = new Werkstoff( + new short[] { 250, 214, 165 }, + "MonaziteRarer Earth Sediment", + subscriptNumbers("????"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 31, + TextureSet.SET_DULL); + + public static final Werkstoff MonaziteHeterogenousHalogenicRareEarthMixture = new Werkstoff( + new short[] { 250, 214, 165 }, + "Heterogenous Halogenic Monazite Rare Earth Mixture", + subscriptNumbers("????"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 32, + TextureSet.SET_DULL); + + public static final Werkstoff SaturatedMonaziteRareEarthMixture = new Werkstoff( + new short[] { 250, 214, 165 }, + "Saturated Monazite Rare Earth", + subscriptNumbers("????"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 33, + TextureSet.SET_DULL); + + public static final Werkstoff SamaricResidue = new Werkstoff( + new short[] { 248, 243, 231 }, + "Samaric Residue", + subscriptNumbers("??SmGd??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 34, + TextureSet.SET_DULL); + + public static final Werkstoff AmmoniumNitrate = new Werkstoff( + new short[] { 255, 255, 255 }, + "Ammonium Nitrate Solution", + subscriptNumbers("NH4NO3"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 36, + TextureSet.SET_FLUID); + + public static final Werkstoff ThoriumPhosphateCake = new Werkstoff( + new short[] { 188, 143, 143 }, + "Thorium-Phosphate Cake", + subscriptNumbers("??ThP??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 37, + TextureSet.SET_DULL); + + public static final Werkstoff ThoriumPhosphateConcentrate = new Werkstoff( + new short[] { 217, 144, 88 }, + "Thorium-Phosphate Concentrate", + subscriptNumbers("??ThP??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 38, + TextureSet.SET_DULL); + + public static final Werkstoff UraniumFiltrate = new Werkstoff( + new short[] { 190, 240, 94 }, + "UraniumFiltrate", + subscriptNumbers("??U??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 39, + TextureSet.SET_DULL); + + public static final Werkstoff NeutralizedUraniumFiltrate = new Werkstoff( + new short[] { 217, 120, 88 }, + "Neutralized Uranium Filtrate", + subscriptNumbers("??U??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 40, + TextureSet.SET_DULL); + + public static final Werkstoff SeaweedAsh = new Werkstoff( + new short[] { 70, 75, 71 }, + "Seaweed Ash", + new Werkstoff.Stats(), + Werkstoff.Types.BIOLOGICAL, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 41, + TextureSet.SET_DULL); + + public static final Werkstoff SeaweedConcentrate = new Werkstoff( + new short[] { 70, 100, 71 }, + "Seaweed Concentrate", + subscriptNumbers("??I??"), + new Werkstoff.Stats(), + Werkstoff.Types.BIOLOGICAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 42, + TextureSet.SET_FLUID); + + public static final Werkstoff PotassiumPermanganate = new Werkstoff( + new short[] { 165, 50, 138 }, + "Potassium Permanganate", + subscriptNumbers("KMnO4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 43, + TextureSet.SET_DULL); + + public static final Werkstoff PotassiumPermanganateSolution = new Werkstoff( + new short[] { 165, 50, 138 }, + "Potassium Permanganate Solution", + subscriptNumbers("KMnO4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 44, + TextureSet.SET_FLUID); + + public static final Werkstoff SeaweedByproducts = new Werkstoff( + new short[] { 125, 50, 138 }, + "Seaweed Byproducts", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 45, + TextureSet.SET_FLUID); + + public static final Werkstoff NitricLeachedMonaziteMixture = new Werkstoff( + new short[] { 125, 50, 138 }, + "Nitric-Leached Monazite Mixture", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 46, + TextureSet.SET_FLUID); + + public static final Werkstoff EuropiumOxide = new Werkstoff( + new short[] { 255, 255, 255 }, + "Europium Oxide", + subscriptNumbers("EuO"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 47, + TextureSet.SET_DULL); + + public static final Werkstoff EuropiumSulfide = new Werkstoff( + new short[] { 5, 0, 5 }, + "Europium Sulfide", + subscriptNumbers("EuS"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 48, + TextureSet.SET_DULL); + + public static final Werkstoff UnknownBlend = new Werkstoff( + new short[] { 0, 0, 5 }, + "UnknownBlend", + subscriptNumbers("?????"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 49, + TextureSet.SET_DULL); + + public static final Werkstoff EuropiumIIIOxide = new Werkstoff( + new short[] { 255, 230, 255 }, + "Europium III Oxide", + subscriptNumbers("Eu2O3"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 50, + TextureSet.SET_DULL); + + // TODO + + // BASTNASITE + public static final Werkstoff MuddyRareEarthBastnasiteSolution = new Werkstoff( + new short[] { 205, 133, 63 }, + "Muddy Bastnasite Rare Earth Solution", + subscriptNumbers("??LaCeY??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID2, + TextureSet.SET_FLUID); + /* + * public static final Werkstoff FluorosilicicAcid = new Werkstoff( new short[] {205, 133, 63}, + * "Hexafluorosilicic Acid", subscriptNumbers("H2SiF6"), new Werkstoff.Stats(), Werkstoff.Types.COMPOUND, new + * Werkstoff.GenerationFeatures().disable().addCells(), offsetID2 + 1, TextureSet.SET_FLUID ); + */ + public static final Werkstoff SodiumFluorosilicate = new Werkstoff( + new short[] { 205, 133, 63 }, + "Sodiumfluorosilicate", + subscriptNumbers("Na2SiF6"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID2 + 2, + TextureSet.SET_FLUID); + + public static final Werkstoff SteamCrackedBasnasiteSolution = new Werkstoff( + new short[] { 205, 133, 63 }, + "Steam-Cracked Bastnasite Mud", + subscriptNumbers("??LaCeY??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID2 + 3, + TextureSet.SET_FLUID); + + public static final Werkstoff ConditionedBastnasiteMud = new Werkstoff( + new short[] { 205, 133, 63 }, + "Conditioned Bastnasite Mud", + subscriptNumbers("??LaCeY??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID2 + 4, + TextureSet.SET_FLUID); + + public static final Werkstoff DiltedRareEarthBastnasiteMud = new Werkstoff( + new short[] { 205, 133, 63 }, + "Diluted Bastnasite Mud", + subscriptNumbers("??LaCeY??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID2 + 5, + TextureSet.SET_FLUID); + + public static final Werkstoff FilteredBastnasiteMud = new Werkstoff( + new short[] { 205, 133, 63 }, + "Filtered Bastnasite Mud", + subscriptNumbers("??LaCeY??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID2 + 6, + TextureSet.SET_FLUID); + + public static final Werkstoff BastnasiteRareEarthOxidePowder = new Werkstoff( + new short[] { 205, 133, 63 }, + "Bastnasite Rare Earth Oxides", + subscriptNumbers("??LaCeY??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 7, + TextureSet.SET_DULL); + + public static final Werkstoff LeachedBastnasiteRareEarthOxides = new Werkstoff( + new short[] { 205, 133, 63 }, + "Acid-Leached Bastnasite Rare Earth Oxides", + subscriptNumbers("??LaCeY??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 8, + TextureSet.SET_DULL); + + public static final Werkstoff Gangue = new Werkstoff( + new short[] { 0, 0, 0 }, + "Gangue", + subscriptNumbers("Useless..."), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 9, + TextureSet.SET_DULL); + // TODO: Deal with colouring + public static final Werkstoff RoastedRareEarthOxides = new Werkstoff( + new short[] { 160, 82, 45 }, + "Roasted Rare Earth Oxides", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 10, + TextureSet.SET_DULL); + + public static final Werkstoff WetRareEarthOxides = new Werkstoff( + new short[] { 160, 82, 49 }, + "Wet Rare Earth Oxides", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 11, + TextureSet.SET_DULL); + + public static final Werkstoff CeriumOxidisedRareEarthOxides = new Werkstoff( + new short[] { 160, 82, 49 }, + "Cerium-Oxidised Rare Earth Oxides", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 12, + TextureSet.SET_DULL); + + public static final Werkstoff BastnasiteRarerEarthOxides = new Werkstoff( + new short[] { 160, 82, 49 }, + "Bastnasite Rarer Earth Oxides", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 13, + TextureSet.SET_DULL); + + public static final Werkstoff NitratedBastnasiteRarerEarthOxides = new Werkstoff( + new short[] { 160, 90, 60 }, + "Nitrogenated Bastnasite Rarer Earth Oxides", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID2 + 14, + TextureSet.SET_DULL); + + public static final Werkstoff SaturatedBastnasiteRarerEarthOxides = new Werkstoff( + new short[] { 170, 90, 60 }, + "Bastnasite Rarer Earth Oxide Suspension", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID2 + 15, + TextureSet.SET_DULL); + + public static final Werkstoff SamaricRareEarthConcentrate = new Werkstoff( + new short[] { 170, 90, 60 }, + "Samaric Rare Earth Concentrate", + subscriptNumbers("??SmHoTb??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 16, + TextureSet.SET_DULL); + + public static final Werkstoff NeodymicRareEarthConcentrate = new Werkstoff( + new short[] { 170, 90, 60 }, + "Neodymium Rare Earth Concentrate", + subscriptNumbers("??LaNdPr??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 17, + TextureSet.SET_DULL); + public static final Werkstoff LanthaniumChloride = new Werkstoff( + new short[] { 82, 112, 102 }, + "Lanthanium Chloride", + subscriptNumbers("LaCl3"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 21, + TextureSet.SET_DULL, + Arrays.asList(Materials.Lanthanum, Materials.Chlorine), + new Pair<>(Materials.Lanthanum, 1), + new Pair<>(Materials.Chlorine, 3)); + + public static final Werkstoff NeodymiumOxide = new Werkstoff( + new short[] { 82, 112, 102 }, + "Neodymium Oxide", + subscriptNumbers("Nd2O3"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 22, + TextureSet.SET_DULL, + Arrays.asList(Materials.Neodymium, Materials.Oxygen), + new Pair<>(Materials.Neodymium, 2), + new Pair<>(Materials.Oxygen, 3)); + + public static final Werkstoff FluorinatedSamaricConcentrate = new Werkstoff( + new short[] { 255, 182, 193 }, + "Fluorinated Samaric Concentrate", + subscriptNumbers("??SmHo??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 23, + TextureSet.SET_DULL); + + public static final Werkstoff CalciumFluoride = new Werkstoff( + new short[] { 255, 250, 250 }, + "Calcium Fluoride", + subscriptNumbers("CaF2"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addMolten() + .addCells(), + offsetID2 + 24, + TextureSet.SET_DULL, + Arrays.asList(Materials.Calcium, Materials.Fluorine), + new Pair<>(Materials.Calcium, 1), + new Pair<>(Materials.Fluorine, 2)); + + public static final Werkstoff SamariumTerbiumMixture = new Werkstoff( + new short[] { 223, 182, 193 }, + "Samarium-Terbium Mixture", + subscriptNumbers("??SmTb??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 25, + TextureSet.SET_DULL); + + public static final Werkstoff NitratedSamariumTerbiumMixture = new Werkstoff( + new short[] { 223, 182, 193 }, + "Nitrogenated Samarium-Terbium Mixture", + subscriptNumbers("??SmTb??NH4NO3"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 26, + TextureSet.SET_DULL); + + public static final Werkstoff TerbiumNitrate = new Werkstoff( + new short[] { 167, 252, 0 }, + "Terbium Nitrate", + subscriptNumbers("TbNO3"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 27, + TextureSet.SET_DULL, + Arrays.asList(Materials.Terbium, Materials.Nitrogen, Materials.Oxygen), + new Pair<>(Materials.Terbium, 1), + new Pair<>(Materials.Nitrogen, 1), + new Pair<>(Materials.Oxygen, 3)); + + public static final Werkstoff SamariumOreConcentrate = new Werkstoff( + new short[] { 255, 200, 230 }, + "Samarium Ore Concentrate", + subscriptNumbers("??Sm??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 28, + TextureSet.SET_DULL); + + public static final Werkstoff DephosphatedSamariumConcentrate = new Werkstoff( + new short[] { 255, 170, 220 }, + "Dephosphated Samarium Concentrate", + subscriptNumbers("??Sm??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID2 + 29, + TextureSet.SET_DULL); + + // Weird/Exciting Chemicals + public static final Werkstoff Tetrahydrofuran = new Werkstoff( + new short[] { 222, 165, 164 }, + "Tetrahydrofuran", + subscriptNumbers("(CH2)4O"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID3, + TextureSet.SET_FLUID); + + // 1,4-Butanediol + public static final Werkstoff Butanediol = new Werkstoff( + new short[] { 185, 78, 72 }, + "1,4-Butanediol", + subscriptNumbers("HO(CH2)4OH"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID3 + 1, + TextureSet.SET_FLUID); + + // Acidicised 1,4-Butanediol + public static final Werkstoff AcidicButanediol = new Werkstoff( + new short[] { 255, 239, 213 }, + "Acidicised 1,4-Butanediol", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID3 + 2, + TextureSet.SET_FLUID); + + // Tellurium-Molybdenum-Oxide Catalyst + public static final Werkstoff MoTeOCatalyst = new Werkstoff( + new short[] { 238, 131, 238 }, + "Tellurium-Molybdenum-Oxide Catalyst", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID3 + 3, + TextureSet.SET_DULL); + + // Tellurium Oxide + public static final Werkstoff TelluriumIVOxide = new Werkstoff( + new short[] { 229, 199, 187 }, + "Tellurium (IV) Oxide", + subscriptNumbers("TeO2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID3 + 4, + TextureSet.SET_DULL); + + public static final Werkstoff MolybdenumIVOxide = new Werkstoff( + new short[] { 52, 53, 57 }, + "Molybdenum (IV) Oxide", + subscriptNumbers("MoO2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID3 + 5, + TextureSet.SET_DULL); + + public static final Werkstoff Polytetrahydrofuran = new Werkstoff( + new short[] { 192, 128, 129 }, + "Polytetrahydrofuran", + subscriptNumbers("(C4H8O)OH2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addCells(), + offsetID3 + 6, + TextureSet.SET_DULL); + + public static final Werkstoff TungstophosphoricAcid = new Werkstoff( + new short[] { 223, 255, 0 }, + "Tungstophosphoric Acid", + subscriptNumbers("H3PW12O40"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID3 + 7, + TextureSet.SET_FLUID); + + public static final Werkstoff TolueneDiisocyanate = new Werkstoff( + new short[] { 255, 255, 102 }, + "Toluene Diisocyanate", + subscriptNumbers("CH3C6H3(NCO)2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID3 + 8, + TextureSet.SET_FLUID); + + public static final Werkstoff Dinitrotoluene = new Werkstoff( + new short[] { 216, 191, 216 }, + "Dinitrotoluene", + subscriptNumbers("C7H6N2O4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID3 + 9, + TextureSet.SET_FLUID); + + public static final Werkstoff Diaminotoluene = new Werkstoff( + new short[] { 227, 218, 201 }, + "Diaminotoluene", + subscriptNumbers("C6H3(NH2)2CH3"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID3 + 10, + TextureSet.SET_FLUID); + + public static final Werkstoff TolueneTetramethylDiisocyanate = new Werkstoff( + new short[] { 255, 255, 255 }, + "Toluene Tetramethyl Diisocyanate", + subscriptNumbers("(CONH)2(C6H4)2CH2(C4O)"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID3 + 11, + TextureSet.SET_FLUID); + + public static final Werkstoff PTMEGElastomer = new Werkstoff( + new short[] { 248, 248, 255 }, + "PTMEG Elastomer", + new Werkstoff.Stats().setMeltingPoint(600) + .setMeltingVoltage(64), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addMolten() + .addMetalItems(), + offsetID3 + 12, + TextureSet.SET_DULL); + + public static final Werkstoff PotassiumChlorate = new Werkstoff( + new short[] { 240, 255, 255 }, + "Potassium Chlorate", + subscriptNumbers("KClO3"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addMolten(), + offsetID3 + 14, + TextureSet.SET_DULL); + + public static final Werkstoff DilutedAcetone = new Werkstoff( + new short[] { 254, 254, 250 }, + "Diluted Acetone", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID3 + 16, + TextureSet.SET_FLUID); + + // TODO Samarium Processing Line Material regist + + public static final Werkstoff MuddySamariumRareEarthSolution = new Werkstoff( + new short[] { 226, 180, 108 }, + "Muddy Samarium Rare Earth Solution", + subscriptNumbers("???Sm???"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID5 + 1, + TextureSet.SET_FLUID); + + public static final Werkstoff SamariumRareEarthMud = new Werkstoff( + new short[] { 226, 180, 128 }, + "Samarium Rare Earth Mud", + subscriptNumbers("??Sm??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID5 + 2, + TextureSet.SET_FLUID); + + public static final Werkstoff DilutedSamariumRareEarthSolution = new Werkstoff( + new short[] { 226, 180, 148 }, + "Diluted Samarium Rare Earth Solution", + subscriptNumbers("?Sm?"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID5 + 3, + TextureSet.SET_FLUID); + + public static final Werkstoff SamariumOxalate = new Werkstoff( + new short[] { 248, 248, 180 }, + "Samarium(III) Oxalate", + subscriptNumbers("?Sm2(C2O4)3"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID5 + 4, + TextureSet.SET_DULL); + + public static final Werkstoff SamariumChloride = new Werkstoff( + new short[] { 248, 248, 120 }, + "Samarium(III)-Chloride", + subscriptNumbers("SmCI3"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addMolten(), + offsetID5 + 5, + TextureSet.SET_DULL); + + public static final Werkstoff SamariumChlorideSodiumChlorideBlend = new Werkstoff( + new short[] { 255, 200, 230 }, + "Samarium Chloride-Sodium Chloride Blend", + subscriptNumbers("?SmCl3NaCl"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID5 + 6, + TextureSet.SET_DULL); + + public static final Werkstoff ImpureLanthanumChloride = new Werkstoff( + new short[] { 90, 100, 30 }, + "Impure Lanthanum Chloride", + subscriptNumbers("?LaCl3"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID5 + 7, + TextureSet.SET_DULL); + + public static final Werkstoff SamariumOxide = new Werkstoff( + new short[] { 223, 182, 193 }, + "Samarium Oxide", + subscriptNumbers("Sm2O3"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID5 + 8, + TextureSet.SET_DULL, + Arrays.asList(Materials.Samarium, Materials.Oxygen), + new Pair<>(Materials.Samarium, 2), + new Pair<>(Materials.Oxygen, 3)); + + public static final Werkstoff ChlorinatedRareEarthConcentrate = new Werkstoff( + new short[] { 130, 80, 60 }, + "Chlorinated Rare Earth Concentrate", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID5 + 9, + TextureSet.SET_FLUID); + + public static final Werkstoff ChlorinatedRareEarthEnrichedSolution = new Werkstoff( + new short[] { 130, 90, 60 }, + "Chlorinated Rare Earth Enriched Solution", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID5 + 10, + TextureSet.SET_FLUID); + + public static final Werkstoff ChlorinatedRareEarthDilutedSolution = new Werkstoff( + new short[] { 216, 180, 100 }, + "Chlorinated Rare Earth Diluted Solution", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID5 + 11, + TextureSet.SET_FLUID); + + public static final Werkstoff RarestEarthResidue = new Werkstoff( + new short[] { 224, 211, 211 }, + "Rarest Earth Residue", + subscriptNumbers("???"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID5 + 12, + TextureSet.SET_DULL); + + // TODO reg Lanth Ore Concentrate + /** + * Extracted Nano Resin Lanthanum1.2 Praseodymium3.4 Cerium5.6 Neodymium7.8 Promethium9.10 Samarium11.12 √ + * Europium13.14 Gadolinium15.16 Terbium17.18 Dysprosium19.20 Holmium21.22 Erbium23.24 Thulium25.26 Ytterbium27.28 + * Lutetium29.30 + */ + + public static final Werkstoff LanthanumExtractingNanoResin = new Werkstoff( + new short[] { 50, 80, 40 }, + "Lanthanum Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 1, + TextureSet.SET_FLUID); + + public static final Werkstoff FilledLanthanumExtractingNanoResin = new Werkstoff( + new short[] { 128, 128, 80 }, + "Filled Lanthanum Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 2, + TextureSet.SET_FLUID); + + public static final Werkstoff PraseodymiumExtractingNanoResin = new Werkstoff( + new short[] { 80, 192, 130 }, + "Praseodymium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 3, + TextureSet.SET_FLUID); + + public static final Werkstoff FilledPraseodymiumExtractingNanoResin = new Werkstoff( + new short[] { 140, 192, 130 }, + "Filled Praseodymium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 4, + TextureSet.SET_FLUID); + + public static final Werkstoff CeriumExtractingNanoResin = new Werkstoff( + new short[] { 80, 240, 160 }, + "Cerium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 5, + TextureSet.SET_FLUID); + + public static final Werkstoff FilledCeriumExtractingNanoResin = new Werkstoff( + new short[] { 160, 240, 180 }, + "Filled Cerium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 6, + TextureSet.SET_FLUID); + + public static final Werkstoff NeodymiumExtractingNanoResin = new Werkstoff( + new short[] { 128, 140, 128 }, + "Neodymium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 7, + TextureSet.SET_FLUID); + + public static final Werkstoff FilledNeodymiumExtractingNanoResin = new Werkstoff( + new short[] { 150, 150, 150 }, + "Filled Neodymium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 8, + TextureSet.SET_FLUID); + + public static final Werkstoff PromethiumExtractingNanoResin = new Werkstoff( + new short[] { 110, 255, 60 }, + "Promethium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 9, + TextureSet.SET_FLUID); + + public static final Werkstoff FilledPromethiumExtractingNanoResin = new Werkstoff( + new short[] { 150, 255, 140 }, + "Filled Promethium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 10, + TextureSet.SET_FLUID); + + public static final Werkstoff SamariumExtractingNanoResin = new Werkstoff( + new short[] { 255, 240, 100 }, + "Samarium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 11, + TextureSet.SET_FLUID); + + public static final Werkstoff FilledSamariumExtractingNanoResin = new Werkstoff( + new short[] { 255, 240, 196 }, + "Filled Samarium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 12, + TextureSet.SET_FLUID); + + public static final Werkstoff EuropiumExtractingNanoResin = new Werkstoff( + new short[] { 240, 160, 240 }, + "Europium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 13, + TextureSet.SET_FLUID); + + public static final Werkstoff FilledEuropiumExtractingNanoResin = new Werkstoff( + new short[] { 240, 200, 240 }, + "Filled Europium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 14, + TextureSet.SET_FLUID); + + public static final Werkstoff GadoliniumExtractingNanoResin = new Werkstoff( + new short[] { 120, 255, 80 }, + "Gadolinium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 15, + TextureSet.SET_FLUID); + + public static final Werkstoff FilledGadoliniumExtractingNanoResin = new Werkstoff( + new short[] { 160, 255, 140 }, + "Filled Gadolinium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 16, + TextureSet.SET_FLUID); + + public static final Werkstoff TerbiumExtractingNanoResin = new Werkstoff( + new short[] { 200, 200, 200 }, + "Terbium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 17, + TextureSet.SET_FLUID); + + public static final Werkstoff FilledTerbiumExtractingNanoResin = new Werkstoff( + new short[] { 255, 255, 255 }, + "Filled Terbium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID4 + 18, + TextureSet.SET_FLUID); + + public static final Werkstoff DysprosiumExtractingNanoResin = new Werkstoff( + new short[] { 110, 240, 180 }, + "Dysprosium Extracting Nano Resin", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.G