diff options
author | Johann Bernhardt <johann.bernhardt@tum.de> | 2021-12-12 19:38:06 +0100 |
---|---|---|
committer | Johann Bernhardt <johann.bernhardt@tum.de> | 2021-12-12 19:38:06 +0100 |
commit | 311ab89f93558233a40079f7cb16605b141b5346 (patch) | |
tree | c5f44ef47f441a57c5f57aa801f639c7879ed760 /src/main/java/gtPlusPlus/plugin/sulfurchem | |
parent | 896143b96132f5ac54aa8d8f7386f27487e5e530 (diff) | |
download | GT5-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.java | 314 |
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"; + } + +} |