diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-06-27 03:24:48 +1000 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-06-27 03:24:48 +1000 |
commit | beb649b9cf86e4feffb1f72a420d263b6bb4d77e (patch) | |
tree | 89632ad7c4919d371d82aaf2e609cf4f1a70f885 /src/Java/gtPlusPlus/plugin/sulfurchem | |
parent | 8013e5e085902af21367647d74bc45063bbbeab3 (diff) | |
download | GT5-Unofficial-beb649b9cf86e4feffb1f72a420d263b6bb4d77e.tar.gz GT5-Unofficial-beb649b9cf86e4feffb1f72a420d263b6bb4d77e.tar.bz2 GT5-Unofficial-beb649b9cf86e4feffb1f72a420d263b6bb4d77e.zip |
+ Added in GT6 style Sulfuric acid and Sulfur Trioxide recipes.
Diffstat (limited to 'src/Java/gtPlusPlus/plugin/sulfurchem')
-rw-r--r-- | src/Java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java b/src/Java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java new file mode 100644 index 0000000000..0ee41f54fb --- /dev/null +++ b/src/Java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java @@ -0,0 +1,182 @@ +package gtPlusPlus.plugin.sulfurchem; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_Recipe; +import gtPlusPlus.api.interfaces.IPlugin; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.plugin.manager.Core_Manager; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +public class Core_SulfuricChemistry implements IPlugin { + + final static Core_SulfuricChemistry mInstance; + + static { + mInstance = new Core_SulfuricChemistry(); + Core_Manager.registerPlugin(mInstance); + Logger.INFO("Preparing "+mInstance.getPluginName()+" for use."); + } + + @Override + public boolean preInit() { + return true; + } + + @Override + public boolean init() { + return true; + } + + @Override + public boolean postInit() { + int disabled = disableRecipes(); + Logger.INFO("[RSCM] Disabled "+disabled+" Sulfuric Chemistry recipes."); + int addedNew = addRevisedGT6Recipes(); + Logger.INFO("[RSCM] Added "+addedNew+" new Sulfuric Chemistry recipes."); + return disabled > 0 && addedNew > 0; + } + + @Override + public String getPluginName() { + return "GT++ Revised Sulfuric Chemistry Module"; + } + + public int addRevisedGT6Recipes() { + + String catalyst = "dustPlatinum"; + int mCountAdded = 0; + + /** + * Sulfur Trioxide Recipes + */ + //Air + if (GT_Values.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 (GT_Values.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 (GT_Values.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 (GT_Values.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 (GT_Values.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 (GT_Values.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 disableRecipes() { + int mDisabled = 0; + //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))) { + r.mEnabled = false; + mDisabled++; + continue recipe; + } + continue; + } + for (FluidStack f : r.mFluidOutputs) { + if (FluidStack.areFluidStackTagsEqual(f, Materials.SulfuricAcid.getFluid(1))) { + r.mEnabled = false; + mDisabled++; + continue recipe; + } + continue; + } + } + + //Multi Block Recipes + recipe : for (GT_Recipe r : GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList) { + for (ItemStack i : r.mOutputs) { + i.stackSize = 1; + if (ItemStack.areItemStacksEqual(i, ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricAcid", 1))) { + r.mEnabled = false; + mDisabled++; + continue recipe; + } + continue; + } + for (FluidStack f : r.mFluidOutputs) { + if (FluidStack.areFluidStackTagsEqual(f, Materials.SulfuricAcid.getFluid(1))) { + r.mEnabled = false; + mDisabled++; + continue recipe; + } + continue; + } + } + + return mDisabled; + } + +} |