diff options
Diffstat (limited to 'gtpp/src/main/java/gtPlusPlus/recipes')
-rw-r--r-- | gtpp/src/main/java/gtPlusPlus/recipes/CokeAndPyrolyseOven.java | 73 | ||||
-rw-r--r-- | gtpp/src/main/java/gtPlusPlus/recipes/RecipeRemovals.java | 107 |
2 files changed, 180 insertions, 0 deletions
diff --git a/gtpp/src/main/java/gtPlusPlus/recipes/CokeAndPyrolyseOven.java b/gtpp/src/main/java/gtPlusPlus/recipes/CokeAndPyrolyseOven.java new file mode 100644 index 0000000000..347010f71b --- /dev/null +++ b/gtpp/src/main/java/gtPlusPlus/recipes/CokeAndPyrolyseOven.java @@ -0,0 +1,73 @@ +package gtPlusPlus.recipes; + +import java.util.ArrayList; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.reflect.AddGregtechRecipe; + +public class CokeAndPyrolyseOven { + + public static void onLoadComplete() { + convertPyroToCokeOven(); + } + + public static void postInit() { + Logger.INFO("Loading Recipes for Industrial Coking Oven."); + // Wood to Charcoal + // Try use all woods found + ArrayList<ItemStack> aLogData = OreDictionary.getOres("logWood"); + for (ItemStack stack : aLogData) { + AddGregtechRecipe.addCokeAndPyrolyseRecipes( + ItemUtils.getSimpleStack(stack, 20), + 20, + GT_ModHandler.getSteam(1000), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 24L), + FluidUtils.getFluidStack("fluid.coalgas", 1440), + 60, + 30); + } + + // Coal to Coke + AddGregtechRecipe.addCokeAndPyrolyseRecipes( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 16L), + 22, + GT_ModHandler.getSteam(1000), + ItemUtils.getItemStackOfAmountFromOreDict("fuelCoke", 10), + FluidUtils.getFluidStack("fluid.coalgas", 2880), + 30, + 120); + + // Coke & Coal + CORE.RA.addCokeOvenRecipe( + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 12L), + ItemUtils.getItemStackOfAmountFromOreDict("fuelCoke", 6), + GT_ModHandler.getSteam(2000), + FluidUtils.getFluidStack("fluid.coalgas", 5040), + ItemUtils.getItemStackOfAmountFromOreDict("fuelCoke", 14), + 60 * 20, + 240); + + } + + private static void convertPyroToCokeOven() { + int aCount = 0; + for (GT_Recipe g : RecipeMaps.pyrolyseRecipes.getAllRecipes()) { + if (AddGregtechRecipe.importPyroRecipe(g)) { + aCount++; + } + } + Logger.INFO("Converted " + aCount + " Pyrolyse recipes into Industrial Coke Oven recipes."); + } +} diff --git a/gtpp/src/main/java/gtPlusPlus/recipes/RecipeRemovals.java b/gtpp/src/main/java/gtPlusPlus/recipes/RecipeRemovals.java new file mode 100644 index 0000000000..4462f81fc7 --- /dev/null +++ b/gtpp/src/main/java/gtPlusPlus/recipes/RecipeRemovals.java @@ -0,0 +1,107 @@ +package gtPlusPlus.recipes; + +import static gtPlusPlus.core.util.minecraft.MaterialUtils.getMaterialName; + +import java.util.Collection; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import org.apache.commons.lang3.ArrayUtils; + +import advsolar.common.AdvancedSolarPanel; +import gregtech.api.enums.Materials; +import gregtech.api.enums.Mods; +import gregtech.api.items.GT_MetaGenerated_Tool; +import gregtech.api.recipe.RecipeMaps; +import gregtech.api.util.GT_Recipe; +import gregtech.common.items.GT_MetaGenerated_Tool_01; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; + +public class RecipeRemovals { + + public static void postInit() { + if (Mods.AdvancedSolarPanel.isModLoaded()) { + RecipeUtils.removeRecipeByOutput(ItemUtils.getSimpleStack(AdvancedSolarPanel.blockMolecularTransformer)); + } + } + + public static void onLoadComplete() { + removeCrudeTurbineRotors(); + } + + // Doesn't actually remove recipes, just hide them + private static void removeCrudeTurbineRotors() { + int aRemoved = 0; + int CUT = CORE.turbineCutoffBase; + Item aU; + Collection<GT_Recipe> aAssRecipes = RecipeMaps.assemblerRecipes.getAllRecipes(); + // 170, 172, 174, 176 + if (aAssRecipes.size() > 0) { + for (GT_Recipe aG : aAssRecipes) { + if (ArrayUtils.isNotEmpty(aG.mOutputs)) { + for (ItemStack aI : aG.mOutputs) { + if (aI == null) { + continue; + } + aU = aI.getItem(); + if (aU == null) { + continue; + } + if (aU instanceof GT_MetaGenerated_Tool_01) { + int aMeta = aI.getItemDamage(); + // Found a Turbine + if (aMeta >= 170 && aMeta <= 176) { + int aCutoff; + String aType; + switch (aMeta) { + case 170 -> { + aCutoff = CUT; + aType = "Small "; + } + case 172 -> { + aCutoff = 2 * CUT; + aType = ""; + } + case 174 -> { + aCutoff = 3 * CUT; + aType = "Large "; + } + default -> { // 176 + aCutoff = 4 * CUT; + aType = "Huge "; + } + } + Materials aMainMaterial = GT_MetaGenerated_Tool.getPrimaryMaterial(aI); + Materials aSecondaryMaterial = GT_MetaGenerated_Tool.getSecondaryMaterial(aI); + long rotorDurabilityMax = GT_MetaGenerated_Tool.getToolMaxDamage(aI); + if (rotorDurabilityMax < aCutoff) { + Logger.WARNING( + "[Turbine Cleanup] " + getMaterialName(aMainMaterial) + + " " + + aType + + "Turbines have " + + rotorDurabilityMax + + ", which is below the cutoff durability of " + + aCutoff + + ", disabling."); + aG.mEnabled = false; + aG.mHidden = true; + aG.mCanBeBuffered = false; + aRemoved++; + } else { + break; + } + } + } + } + } + } + } + + Logger.INFO("Removed " + aRemoved + " useless Turbines."); + } +} |