diff --git a/src/main/java/com/github/wohaopa/GTNHModify/GTNHModifyMod.java b/src/main/java/com/github/wohaopa/GTNHModify/GTNHModifyMod.java index 9cf1be4..a541c39 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/GTNHModifyMod.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/GTNHModifyMod.java @@ -17,7 +17,7 @@ name = "GTNHModify", acceptedMinecraftVersions = "[1.7.10]", acceptableRemoteVersions = "*", - dependencies = "required-after:gregtech;required-after:Thaumcraft") + dependencies = "after:gregtech;after:Thaumcraft") public class GTNHModifyMod { public static final String MODID = "GTNHModify"; diff --git a/src/main/java/com/github/wohaopa/GTNHModify/LateMixinLoader.java b/src/main/java/com/github/wohaopa/GTNHModify/LateMixinLoader.java index 9b4f484..8f58aca 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/LateMixinLoader.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/LateMixinLoader.java @@ -17,12 +17,27 @@ public String getMixinConfig() { @Override public List getMixins(Set loadedMods) { + + for (String modId : loadedMods) { + if (modId.equals("gregtech")) { + ModHelper.hasGregtech = true; + } else if (modId.equals("Thaumcraft")) { + ModHelper.hasThaumcraft = true; + } + } + List mixins = new ArrayList<>(); - // GregTech - mixins.add("GT_MetaTileEntity_ScannerMixin"); - mixins.add("GT_MetaTileEntity_MinerMixin"); - mixins.add("GT_MetaTileEntity_MultiFurnaceMixin"); - mixins.add("GT_MetaTileEntity_DrillerBaseMixin"); + + if (ModHelper.hasGregtech) { + // GregTech + mixins.add("gregtech.GT_MetaTileEntity_ScannerMixin"); + mixins.add("gregtech.GT_MetaTileEntity_MinerMixin"); + mixins.add("gregtech.GT_MetaTileEntity_MultiFurnaceMixin"); + mixins.add("gregtech.GT_MetaTileEntity_DrillerBaseMixin"); + } + if (ModHelper.hasThaumcraft) { + + } return mixins; } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/ModHelper.java b/src/main/java/com/github/wohaopa/GTNHModify/ModHelper.java new file mode 100644 index 0000000..eb18521 --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/ModHelper.java @@ -0,0 +1,7 @@ +package com.github.wohaopa.GTNHModify; + +public class ModHelper { + + public static boolean hasGregtech; + public static boolean hasThaumcraft; +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/handler/GT_RecipesHandler.java b/src/main/java/com/github/wohaopa/GTNHModify/handler/GregTechHandler.java similarity index 65% rename from src/main/java/com/github/wohaopa/GTNHModify/handler/GT_RecipesHandler.java rename to src/main/java/com/github/wohaopa/GTNHModify/handler/GregTechHandler.java index 882b6f4..0260f46 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/handler/GT_RecipesHandler.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/handler/GregTechHandler.java @@ -1,19 +1,22 @@ package com.github.wohaopa.GTNHModify.handler; +import com.github.wohaopa.GTNHModify.ModHelper; import com.github.wohaopa.GTNHModify.strategies.Strategy; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GT_Recipe; @IHandler("init") -public class GT_RecipesHandler { +public class GregTechHandler { protected static void init() { + if (!ModHelper.hasGregtech) return; + RecipeMap.ALL_RECIPE_MAPS.forEach( (s, recipeMap) -> recipeMap.getAllRecipes() .forEach(recipe -> Strategy.strategy.handler_GT_Recipe(recipe))); - GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes.forEach( - gtRecipeAssemblyLine -> { Strategy.strategy.handler_GT_Recipe_AssemblyLine(gtRecipeAssemblyLine); }); + GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes + .forEach(gtRecipeAssemblyLine -> Strategy.strategy.handler_GT_Recipe_AssemblyLine(gtRecipeAssemblyLine)); } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/handler/Handlers.java b/src/main/java/com/github/wohaopa/GTNHModify/handler/Handlers.java index ca7e095..3419890 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/handler/Handlers.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/handler/Handlers.java @@ -11,8 +11,8 @@ public class Handlers { - public static List handlers = Arrays.asList("Furnace", "GT"); - private static final String Suffix = "_RecipesHandler"; + public static List handlers = Arrays.asList("Minecraft", "GregTech", "Thaumcraft"); + private static final String Suffix = "Handler"; private static final List methods = new ArrayList<>(); public static void init() { diff --git a/src/main/java/com/github/wohaopa/GTNHModify/handler/Furnace_RecipesHandler.java b/src/main/java/com/github/wohaopa/GTNHModify/handler/MinecraftHandler.java similarity index 90% rename from src/main/java/com/github/wohaopa/GTNHModify/handler/Furnace_RecipesHandler.java rename to src/main/java/com/github/wohaopa/GTNHModify/handler/MinecraftHandler.java index d9623c3..d47ce95 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/handler/Furnace_RecipesHandler.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/handler/MinecraftHandler.java @@ -5,9 +5,10 @@ import com.github.wohaopa.GTNHModify.strategies.Strategy; @IHandler("init") -public class Furnace_RecipesHandler { +public class MinecraftHandler { public static void init() { + // todo recipe FurnaceRecipes.smelting() .getSmeltingList() .forEach((itemStack, itemStack2) -> Strategy.strategy.handler_FurnaceRecipe(itemStack, itemStack2)); diff --git a/src/main/java/com/github/wohaopa/GTNHModify/mixins/TileEntityFurnaceMixin.java b/src/main/java/com/github/wohaopa/GTNHModify/mixins/TileEntityFurnaceMixin.java index b7e33cd..f35c043 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/mixins/TileEntityFurnaceMixin.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/mixins/TileEntityFurnaceMixin.java @@ -6,13 +6,13 @@ import org.spongepowered.asm.mixin.injection.Constant; import org.spongepowered.asm.mixin.injection.ModifyConstant; -import com.github.wohaopa.GTNHModify.handler.Furnace_RecipesHandler; +import com.github.wohaopa.GTNHModify.handler.MinecraftHandler; @Mixin(TileEntityFurnace.class) public abstract class TileEntityFurnaceMixin { @ModifyConstant(method = "updateEntity", constant = @Constant(intValue = 200)) private int injected(int value) { - return Furnace_RecipesHandler.handle(this, value); + return MinecraftHandler.handle(this, value); } } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_DrillerBaseMixin.java b/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_DrillerBaseMixin.java similarity index 86% rename from src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_DrillerBaseMixin.java rename to src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_DrillerBaseMixin.java index bed4b54..20f0061 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_DrillerBaseMixin.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_DrillerBaseMixin.java @@ -1,11 +1,11 @@ -package com.github.wohaopa.GTNHModify.mixins.late; +package com.github.wohaopa.GTNHModify.mixins.late.gregtech; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import com.github.wohaopa.GTNHModify.handler.GT_RecipesHandler; +import com.github.wohaopa.GTNHModify.handler.GregTechHandler; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DrillerBase; @@ -21,7 +21,7 @@ public abstract class GT_MetaTileEntity_DrillerBaseMixin { shift = At.Shift.AFTER)) private void injected(CallbackInfoReturnable cir) { - ((GT_MetaTileEntity_DrillerBase) ((Object) this)).mMaxProgresstime = GT_RecipesHandler + ((GT_MetaTileEntity_DrillerBase) ((Object) this)).mMaxProgresstime = GregTechHandler .handle(this, ((GT_MetaTileEntity_DrillerBase) ((Object) this)).mMaxProgresstime); } } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_MinerMixin.java b/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_MinerMixin.java similarity index 83% rename from src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_MinerMixin.java rename to src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_MinerMixin.java index 61ca66f..7b5d321 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_MinerMixin.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_MinerMixin.java @@ -1,4 +1,4 @@ -package com.github.wohaopa.GTNHModify.mixins.late; +package com.github.wohaopa.GTNHModify.mixins.late.gregtech; import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Final; @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; -import com.github.wohaopa.GTNHModify.handler.GT_RecipesHandler; +import com.github.wohaopa.GTNHModify.handler.GregTechHandler; import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Miner; @@ -27,6 +27,6 @@ public class GT_MetaTileEntity_MinerMixin { target = "Lgregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner;mSpeed:I", opcode = Opcodes.GETFIELD)) private int injected(GT_MetaTileEntity_Miner miner) { - return GT_RecipesHandler.handle(miner, mSpeed); + return GregTechHandler.handle(miner, mSpeed); } } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_MultiFurnaceMixin.java b/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_MultiFurnaceMixin.java similarity index 74% rename from src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_MultiFurnaceMixin.java rename to src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_MultiFurnaceMixin.java index 45d4b28..4791a33 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_MultiFurnaceMixin.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_MultiFurnaceMixin.java @@ -1,10 +1,10 @@ -package com.github.wohaopa.GTNHModify.mixins.late; +package com.github.wohaopa.GTNHModify.mixins.late.gregtech; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.Constant; import org.spongepowered.asm.mixin.injection.ModifyConstant; -import com.github.wohaopa.GTNHModify.handler.GT_RecipesHandler; +import com.github.wohaopa.GTNHModify.handler.GregTechHandler; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_MultiFurnace; @@ -13,6 +13,6 @@ public class GT_MetaTileEntity_MultiFurnaceMixin { @ModifyConstant(method = "checkProcessing", constant = @Constant(intValue = 512)) private int injected(int value) { - return GT_RecipesHandler.handle(this, value); + return GregTechHandler.handle(this, value); } } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_ScannerMixin.java b/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_ScannerMixin.java similarity index 74% rename from src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_ScannerMixin.java rename to src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_ScannerMixin.java index bb883da..ce9de2f 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/GT_MetaTileEntity_ScannerMixin.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/mixins/late/gregtech/GT_MetaTileEntity_ScannerMixin.java @@ -1,10 +1,10 @@ -package com.github.wohaopa.GTNHModify.mixins.late; +package com.github.wohaopa.GTNHModify.mixins.late.gregtech; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArg; -import com.github.wohaopa.GTNHModify.handler.GT_RecipesHandler; +import com.github.wohaopa.GTNHModify.handler.GregTechHandler; import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Scanner; @@ -13,6 +13,6 @@ public abstract class GT_MetaTileEntity_ScannerMixin { @ModifyArg(method = "checkRecipe", at = @At(value = "INVOKE", target = "calculateOverclockedNess"), index = 1) private int injected(int x) { - return GT_RecipesHandler.handle(this, x); + return GregTechHandler.handle(this, x); } }