diff options
author | Martin Robertz <dream-master@gmx.net> | 2023-08-22 18:10:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-22 18:10:01 +0200 |
commit | ebfab9d994640eeaf76a4287eaeabf8dacb81641 (patch) | |
tree | c7768e47c84c41f0d93ff04826b000dd35d083fe | |
parent | 56813374074e3fb62d13328bfdba8b7f1a82e2f0 (diff) | |
parent | a824c110fa2063a527efe26b20a1d583b600a184 (diff) | |
download | GT5-Unofficial-ebfab9d994640eeaf76a4287eaeabf8dacb81641.tar.gz GT5-Unofficial-ebfab9d994640eeaf76a4287eaeabf8dacb81641.tar.bz2 GT5-Unofficial-ebfab9d994640eeaf76a4287eaeabf8dacb81641.zip |
Merge pull request #62 from chochem/fix-PA-exploit
Add PA centrifuge and electrolysis recipe maps to recipe replacements
-rw-r--r-- | build.gradle | 30 | ||||
-rw-r--r-- | src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java | 128 |
2 files changed, 143 insertions, 15 deletions
diff --git a/build.gradle b/build.gradle index 1aaadcce85..b894d64772 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1690104383 +//version: 1692122114 /* DO NOT CHANGE THIS FILE! Also, you may replace this file at any time if there is an update available. @@ -69,7 +69,7 @@ plugins { id 'com.diffplug.spotless' version '6.13.0' apply false // 6.13.0 is the last jvm8 supporting version id 'com.modrinth.minotaur' version '2.+' apply false id 'com.matthewprenger.cursegradle' version '1.4.0' apply false - id 'com.gtnewhorizons.retrofuturagradle' version '1.3.21' + id 'com.gtnewhorizons.retrofuturagradle' version '1.3.24' } print("You might want to check out './gradlew :faq' if your build fails.\n") @@ -401,9 +401,13 @@ if (identifiedVersion == versionOverride) { group = "com.github.GTNewHorizons" if (project.hasProperty("customArchiveBaseName") && customArchiveBaseName) { - archivesBaseName = customArchiveBaseName + base { + archivesName = customArchiveBaseName + } } else { - archivesBaseName = modId + base { + archivesName = modId + } } @@ -558,9 +562,6 @@ repositories { maven { name 'Overmind forge repo mirror' url 'https://gregtech.overminddl1.com/' - mavenContent { - excludeGroup("net.minecraftforge") // missing the `universal` artefact - } } maven { name = "GTNH Maven" @@ -627,6 +628,8 @@ def mixinProviderSpecNoClassifer = "${mixinProviderGroup}:${mixinProviderModule} def mixinProviderSpec = "${mixinProviderSpecNoClassifer}:dev" ext.mixinProviderSpec = mixinProviderSpec +def mixingConfigRefMap = 'mixins.' + modId + '.refmap.json' + dependencies { if (usesMixins.toBoolean()) { annotationProcessor('org.ow2.asm:asm-debug-all:5.0.3') @@ -638,7 +641,7 @@ dependencies { } } if (usesMixins.toBoolean()) { - implementation(modUtils.enableMixins(mixinProviderSpec)) + implementation(modUtils.enableMixins(mixinProviderSpec, mixingConfigRefMap)) } else if (forceEnableMixins.toBoolean()) { runtimeOnlyNonPublishable(mixinProviderSpec) } @@ -691,8 +694,6 @@ if (file('dependencies.gradle.kts').exists()) { throw new RuntimeException("Missing dependencies.gradle[.kts]") } -def mixingConfigRefMap = 'mixins.' + modId + '.refmap.json' - tasks.register('generateAssets') { group = "GTNH Buildscript" description = "Generates a mixin config file at /src/main/resources/mixins.modid.json if needed" @@ -775,10 +776,10 @@ dependencies { java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}") } if (modId != 'hodgepodge') { - java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.2.19') + java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.2.26') } - java17PatchDependencies('net.minecraft:launchwrapper:1.15') {transitive = false} + java17PatchDependencies('net.minecraft:launchwrapper:1.17.2') {transitive = false} java17PatchDependencies("org.ow2.asm:asm:${asmVersion}") java17PatchDependencies("org.ow2.asm:asm-commons:${asmVersion}") java17PatchDependencies("org.ow2.asm:asm-tree:${asmVersion}") @@ -1148,7 +1149,10 @@ tasks.named("processIdeaSettings").configure { tasks.named("ideVirtualMainClasses").configure { // Make IntelliJ "Build project" build the mod jars - dependsOn("jar", "reobfJar", "spotlessCheck") + dependsOn("jar", "reobfJar") + if (!disableSpotless) { + dependsOn("spotlessCheck") + } } // workaround variable hiding in pom processing diff --git a/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java b/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java index 67dbbc3fbe..500f7dfaf4 100644 --- a/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java +++ b/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java @@ -34,7 +34,12 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.*; +import gregtech.api.util.GTPP_Recipe; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; public class RecipeLoader { @@ -1392,6 +1397,73 @@ public class RecipeLoader { GT_Log.out.print("Centrifuge done!\n"); + // For Centrifuge (PA) + for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.mRecipeList) { + ItemStack input = null; + FluidStack fluidInput = null; + if (recipe.mInputs.length > 0) input = recipe.mInputs[0]; + if (recipe.mFluidInputs.length > 0) fluidInput = recipe.mFluidInputs[0]; + if (GT_Utility.isStackValid(input)) { + int[] oreDict = OreDictionary.getOreIDs(input); + for (int oreDictID : oreDict) { + if (OreDictionary.getOreName(oreDictID).startsWith("dust") + && (!OreDictionary.getOreName(oreDictID).contains("Dephosphated"))) { + GT_Recipe tRecipe = recipe.copy(); + boolean modified = false; + for (int i = 0; i < tRecipe.mOutputs.length; i++) { + if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; + if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount( + tRecipe.mOutputs[i].stackSize * 2, + WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dustTiny, 1)); + modified = true; + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount( + tRecipe.mOutputs[i].stackSize * 2, + WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); + modified = true; + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDustSmall(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount( + tRecipe.mOutputs[i].stackSize * 2, + WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dustSmall, 1)); + modified = true; + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount( + tRecipe.mOutputs[i].stackSize * 2, + WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dustTiny, 1)); + modified = true; + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount( + tRecipe.mOutputs[i].stackSize * 2, + WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); + modified = true; + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDustSmall(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount( + tRecipe.mOutputs[i].stackSize * 2, + WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dustSmall, 1)); + modified = true; + } + } + if (modified) { + reAdd.add(tRecipe); + remove.add(recipe); + } + break; + } + } + } + } + GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.mRecipeList.removeAll(remove); + GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.mRecipeList.addAll(reAdd); + GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.reInit(); + + GT_Log.out.print(Tags.MODID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("Centrifuge (PA) done!\n"); + // For Hammer for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList) { ItemStack input = recipe.mInputs[0]; @@ -1439,8 +1511,8 @@ public class RecipeLoader { // Electrolyzer for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.mRecipeList) { for (ItemStack input : recipe.mInputs) { - GT_Log.out.print(input.getDisplayName() + "\n"); if (GT_Utility.isStackValid(input)) { + GT_Log.out.print(input.getDisplayName() + "\n"); int[] oreDict = OreDictionary.getOreIDs(input); for (int oreDictID : oreDict) { String oreName = OreDictionary.getOreName(oreDictID); @@ -1488,6 +1560,58 @@ public class RecipeLoader { GT_Log.out.print("Electrolyzer done!\n"); + // Electrolyzer (PA) + for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMultiblockElectrolyzerRecipes.mRecipeList) { + for (ItemStack input : recipe.mInputs) { + if (GT_Utility.isStackValid(input)) { + GT_Log.out.print(input.getDisplayName() + "\n"); + int[] oreDict = OreDictionary.getOreIDs(input); + for (int oreDictID : oreDict) { + String oreName = OreDictionary.getOreName(oreDictID); + if (oreName.equals("dustHibonite") || oreName.equals("dustLanthaniteCe") + || oreName.equals("dustZirconolite") + || oreName.equals("dustYttrocerite") + || oreName.equals("dustXenotime") + || oreName.equals("dustBastnasite") + || oreName.equals("dustFlorencite")) { + GT_Recipe tRecipe = recipe.copy(); + boolean modified = false; + for (int i = 0; i < tRecipe.mOutputs.length; i++) { + if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; + if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount( + tRecipe.mOutputs[i].stackSize, + WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); + modified = true; + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount( + tRecipe.mOutputs[i].stackSize, + WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); + modified = true; + } + } + if (modified) { + reAdd.add(tRecipe); + remove.add(recipe); + } + break; + } + } + } + } + } + + GT_Recipe.GT_Recipe_Map.sMultiblockElectrolyzerRecipes.mRecipeList.removeAll(remove); + GT_Recipe.GT_Recipe_Map.sMultiblockElectrolyzerRecipes.mRecipeList.addAll(reAdd); + GT_Recipe.GT_Recipe_Map.sMultiblockElectrolyzerRecipes.reInit(); + + GT_Log.out.print(Tags.MODID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("Electrolyzer (PA) done!\n"); + if (Loader.isModLoaded("miscutils")) { // For Simple Washer for (GT_Recipe recipe : GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList) { |