aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/plugin/sulfurchem
diff options
context:
space:
mode:
authorJohann Bernhardt <johann.bernhardt@tum.de>2021-12-12 19:38:06 +0100
committerJohann Bernhardt <johann.bernhardt@tum.de>2021-12-12 19:38:06 +0100
commit311ab89f93558233a40079f7cb16605b141b5346 (patch)
treec5f44ef47f441a57c5f57aa801f639c7879ed760 /src/main/java/gtPlusPlus/plugin/sulfurchem
parent896143b96132f5ac54aa8d8f7386f27487e5e530 (diff)
downloadGT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.tar.gz
GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.tar.bz2
GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.zip
Move sources and resources
Diffstat (limited to 'src/main/java/gtPlusPlus/plugin/sulfurchem')
-rw-r--r--src/main/java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java314
1 files changed, 314 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java b/src/main/java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java
new file mode 100644
index 0000000000..ed6762c69d
--- /dev/null
+++ b/src/main/java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java
@@ -0,0 +1,314 @@
+package gtPlusPlus.plugin.sulfurchem;
+
+import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_Recipe;
+import gtPlusPlus.api.interfaces.IPlugin;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.recipe.common.CI;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.RecipeUtils;
+import gtPlusPlus.plugin.manager.Core_Manager;
+import gtPlusPlus.preloader.CORE_Preloader;
+import gtPlusPlus.xmod.gregtech.common.StaticFields59;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
+
+public class Core_SulfuricChemistry implements IPlugin {
+
+ final static Core_SulfuricChemistry mInstance;
+ private static boolean shouldLoad = false;
+
+ private static AutoMap<GT_Recipe> mRemovedRecipes1 = new AutoMap<GT_Recipe>();
+ private static AutoMap<GT_Recipe> mRemovedRecipes2 = new AutoMap<GT_Recipe>();
+
+ static {
+ mInstance = new Core_SulfuricChemistry();
+ Core_Manager.registerPlugin(mInstance);
+ mInstance.log("Preparing "+mInstance.getPluginName()+" for use.");
+ }
+
+ @Override
+ public boolean preInit() {
+ if (/*CORE.ConfigSwitches.enableSulfuricAcidFix || *//*CORE.DEVENV*/false) {
+ shouldLoad = true;
+ }
+ if (shouldLoad)
+ return true;
+ return false;
+ }
+
+ @Override
+ public boolean init() {
+ if (shouldLoad)
+ return true;
+ return false;
+ }
+
+ @Override
+ public boolean postInit() {
+ if (shouldLoad) {
+ try {
+ int disabled = disableSulfurTrioxide();
+ log("Disabled "+disabled+" Sulfur Trioxide Chemistry recipes.");
+ int disabled2 = disableSulfuricAcid();
+ log("Disabled "+disabled2+" Sulfuric Acid Chemistry recipes.");
+ int addedNew = addRevisedGT6Recipes();
+ log("Added "+addedNew+" new Sulfuric Chemistry recipes.");
+
+ if (CORE.DEVENV || CORE_Preloader.DEBUG_MODE) {
+ for (int i=0;i<2;i++) {
+ for (GT_Recipe m : mRemovedRecipes1) {
+ String[] mInfo = RecipeUtils.getRecipeInfo(m);
+ log("Removed Recipe");
+ for (int r=0;r<mInfo.length;r++) {
+ log(mInfo[r]);
+ }
+ }
+ for (GT_Recipe m : mRemovedRecipes2) {
+ String[] mInfo = RecipeUtils.getRecipeInfo(m);
+ log("Removed Recipe");
+ for (int r=0;r<mInfo.length;r++) {
+ log(mInfo[r]);
+ }
+ }
+ }
+ }
+ return disabled > 0 && addedNew > 0;
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public boolean serverStart() {
+ return false;
+ }
+
+ @Override
+ public boolean serverStop() {
+ return false;
+ }
+
+ @Override
+ public String getPluginName() {
+ return "GT++ Revised Sulfuric Chemistry Module";
+ }
+
+ public int addRevisedGT6Recipes() {
+
+ String catalyst = "dustPlatinum";
+ int mCountAdded = 0;
+
+ /**
+ * Sulfur Trioxide Recipes
+ */
+ //Air
+ if (CORE.RA.addChemicalRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict(catalyst, 0),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellAir", 1),
+ FluidUtils.getFluidStack("sulfurdioxide", 3000),
+ FluidUtils.getFluidStack("sulfurtrioxide", 4000),
+ CI.emptyCells(1),
+ null,
+ 16,
+ 16)) {
+ mCountAdded++;
+ }
+ if (CORE.RA.addChemicalRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict(catalyst, 0),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurDioxide", 3),
+ FluidUtils.getFluidStack("air", 1000),
+ FluidUtils.getFluidStack("sulfurtrioxide", 4000),
+ CI.emptyCells(3),
+ null,
+ 16,
+ 16)) {
+ mCountAdded++;
+ }
+ //Oxygen
+ if (CORE.RA.addChemicalRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict(catalyst, 0),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 1),
+ FluidUtils.getFluidStack("sulfurdioxide", 3000),
+ FluidUtils.getFluidStack("sulfurtrioxide", 4000),
+ CI.emptyCells(1),
+ null,
+ 16,
+ 16)) {
+ mCountAdded++;
+ }
+ if (CORE.RA.addChemicalRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict(catalyst, 0),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurDioxide", 3),
+ FluidUtils.getFluidStack("oxygen", 1000),
+ FluidUtils.getFluidStack("sulfurtrioxide", 4000),
+ CI.emptyCells(3),
+ null,
+ 16,
+ 16)) {
+ mCountAdded++;
+ }
+
+ /**
+ * Sulfuric Acid Recipes
+ */
+
+ if (CORE.RA.addChemicalRecipe(
+ CI.getNumberedCircuit(22),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurTrioxide", 1),
+ FluidUtils.getFluidStack("water", 750),
+ Materials.SulfuricAcid.getFluid(1750),
+ CI.emptyCells(1),
+ null,
+ 20,
+ 20)) {
+ mCountAdded++;
+ }
+ if (CORE.RA.addChemicalRecipe(
+ CI.getNumberedCircuit(22),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 3),
+ FluidUtils.getFluidStack("sulfurtrioxide", 4000),
+ Materials.SulfuricAcid.getFluid(7000),
+ CI.emptyCells(3),
+ null,
+ 20,
+ 20)) {
+ mCountAdded++;
+ }
+
+ return mCountAdded;
+ }
+
+
+ public int disableSulfurTrioxide() {
+ int mDisabled = 0;
+ FluidStack mStack = FluidUtils.getFluidStack("sulfurtrioxide", 1);
+ //Single Block Recipes
+ recipe : for (GT_Recipe r : GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList) {
+ for (ItemStack i : r.mOutputs) {
+ i.stackSize = 1;
+ if (ItemStack.areItemStacksEqual(i, ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurTrioxide", 1))) {
+ mRemovedRecipes1.put(r);
+ r.mEnabled = false;
+ r.mHidden = true;
+ mDisabled++;
+ continue recipe;
+ }
+ continue;
+ }
+ for (FluidStack f : r.mFluidOutputs) {
+ f.amount = 1;
+ if (FluidStack.areFluidStackTagsEqual(f, mStack)) {
+ mRemovedRecipes1.put(r);
+ r.mEnabled = false;
+ r.mHidden = true;
+ mDisabled++;
+ continue recipe;
+ }
+ continue;
+ }
+ }
+
+ //Multi Block Recipes
+ if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ recipe : for (GT_Recipe r : StaticFields59.getLargeChemicalReactorRecipeMap().mRecipeList) {
+ for (ItemStack i : r.mOutputs) {
+ i.stackSize = 1;
+ if (ItemStack.areItemStacksEqual(i, ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurTrioxide", 1))) {
+ mRemovedRecipes1.put(r);
+ r.mEnabled = false;
+ r.mHidden = true;
+ mDisabled++;
+ continue recipe;
+ }
+ continue;
+ }
+ for (FluidStack f : r.mFluidOutputs) {
+ f.amount = 1;
+ if (FluidStack.areFluidStackTagsEqual(f, mStack)) {
+ mRemovedRecipes1.put(r);
+ r.mEnabled = false;
+ r.mHidden = true;
+ mDisabled++;
+ continue recipe;
+ }
+ continue;
+ }
+ }
+ }
+
+ return mDisabled;
+ }
+
+ public int disableSulfuricAcid() {
+ int mDisabled = 0;
+ FluidStack mStack = FluidUtils.getFluidStack("sulfuricacid", 1);
+ //Single Block Recipes
+
+ recipe : for (GT_Recipe r : GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList) {
+ for (ItemStack i : r.mOutputs) {
+ i.stackSize = 1;
+ if (ItemStack.areItemStacksEqual(i, ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricAcid", 1))) {
+ mRemovedRecipes2.put(r);
+ r.mEnabled = false;
+ r.mHidden = true;
+ mDisabled++;
+ continue recipe;
+ }
+ continue;
+ }
+ for (FluidStack f : r.mFluidOutputs) {
+ f.amount = 1;
+ if (FluidStack.areFluidStackTagsEqual(f, mStack)) {
+ mRemovedRecipes2.put(r);
+ r.mEnabled = false;
+ r.mHidden = true;
+ mDisabled++;
+ continue recipe;
+ }
+ continue;
+ }
+ }
+
+ //Multi Block Recipes
+ if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ recipe : for (GT_Recipe r : StaticFields59.getLargeChemicalReactorRecipeMap().mRecipeList) {
+ for (ItemStack i : r.mOutputs) {
+ i.stackSize = 1;
+ if (ItemStack.areItemStacksEqual(i, ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricAcid", 1))) {
+ mRemovedRecipes2.put(r);
+ r.mEnabled = false;
+ r.mHidden = true;
+ mDisabled++;
+ continue recipe;
+ }
+ continue;
+ }
+ for (FluidStack f : r.mFluidOutputs) {
+ f.amount = 1;
+ if (FluidStack.areFluidStackTagsEqual(f, mStack)) {
+ mRemovedRecipes2.put(r);
+ r.mEnabled = false;
+ r.mHidden = true;
+ mDisabled++;
+ continue recipe;
+ }
+ continue;
+ }
+ }
+ }
+
+ return mDisabled;
+ }
+
+ @Override
+ public String getPluginAbbreviation() {
+ return "RSCM";
+ }
+
+}