aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/plugin/sulfurchem
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-06-27 03:24:48 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-06-27 03:24:48 +1000
commitbeb649b9cf86e4feffb1f72a420d263b6bb4d77e (patch)
tree89632ad7c4919d371d82aaf2e609cf4f1a70f885 /src/Java/gtPlusPlus/plugin/sulfurchem
parent8013e5e085902af21367647d74bc45063bbbeab3 (diff)
downloadGT5-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.java182
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;
+ }
+
+}