diff --git a/gradle.properties b/gradle.properties index 218397c..05c9991 100644 --- a/gradle.properties +++ b/gradle.properties @@ -74,7 +74,7 @@ apiPackage = accessTransformersFile = # Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled! -usesMixins = false +usesMixins = true # Set to a non-empty string to configure mixins in a separate source set under src/VALUE, instead of src/main. # This can speed up compile times thanks to not running the mixin annotation processor on all input sources. @@ -82,18 +82,18 @@ usesMixins = false separateMixinSourceSet = # Adds some debug arguments like verbose output and class export. -usesMixinDebug = false +usesMixinDebug = true # Specify the location of your implementation of IMixinConfigPlugin. Leave it empty otherwise. mixinPlugin = # Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail! -mixinsPackage = +mixinsPackage = mixins # Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin! # This parameter is for legacy compatibility only # Example value: (coreModClass = asm.FMLPlugin) + (modGroup = com.myname.mymodid) -> com.myname.mymodid.asm.FMLPlugin -coreModClass = +coreModClass = mixins.EarlyMixinsLoader # If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod ( = some class # that is annotated with @Mod) you want this to be true. When in doubt: leave it on false! diff --git a/settings.gradle.kts b/settings.gradle.kts index 4294dba..cdf5e41 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -21,5 +21,5 @@ pluginManagement { } plugins { - id("com.gtnewhorizons.gtnhsettingsconvention") version("1.0.38") + id("com.gtnewhorizons.gtnhsettingsconvention") version("1.0.48") } diff --git a/src/main/java/com/nao7016/ClayiumAdditions/CAModMain.java b/src/main/java/com/nao7016/ClayiumAdditions/CAModMain.java index 75119c3..e8e820c 100644 --- a/src/main/java/com/nao7016/ClayiumAdditions/CAModMain.java +++ b/src/main/java/com/nao7016/ClayiumAdditions/CAModMain.java @@ -35,7 +35,9 @@ public class CAModMain { + ",);" // buildVersion + "required-after:clayium@[0.4.6.36.hotfix2,);" // clayium + "after:etfuturum@[2.6.2,);" // Et Futurum Requiem - + "after:bogosorter@[1.2.51-GTNH,)"; + + "after:bogosorter@[1.2.51-GTNH,);" + + "required-after:gtnhmixins@[2.0.1,);" + + "required-after:unimixins@[0.0.20,);"; @SidedProxy( clientSide = "com.nao7016.ClayiumAdditions.client.ClientProxy", serverSide = "com.nao7016.ClayiumAdditions.common.CommonProxy") diff --git a/src/main/java/com/nao7016/ClayiumAdditions/mixins/EarlyMixinsLoader.java b/src/main/java/com/nao7016/ClayiumAdditions/mixins/EarlyMixinsLoader.java new file mode 100644 index 0000000..dca4260 --- /dev/null +++ b/src/main/java/com/nao7016/ClayiumAdditions/mixins/EarlyMixinsLoader.java @@ -0,0 +1,48 @@ +package com.nao7016.ClayiumAdditions.mixins; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.gtnewhorizon.gtnhmixins.IEarlyMixinLoader; +import com.gtnewhorizon.gtnhmixins.builders.IMixins; +import com.nao7016.ClayiumAdditions.CAModMain; + +import cpw.mods.fml.relauncher.IFMLLoadingPlugin; + +@IFMLLoadingPlugin.MCVersion("1.7.10") +public class EarlyMixinsLoader implements IFMLLoadingPlugin, IEarlyMixinLoader { + + @Override + public String[] getASMTransformerClass() { + return null; + } + + @Override + public String getModContainerClass() { + return null; + } + + @Override + public String getSetupClass() { + return null; + } + + @Override + public void injectData(Map data) {} + + @Override + public String getAccessTransformerClass() { + return null; + } + + @Override + public String getMixinConfig() { + return "mixins." + CAModMain.MODID + ".early.json"; + } + + @Override + public List getMixins(Set loadedCoreMods) { + return IMixins.getEarlyMixins(Mixins.class, loadedCoreMods); + } +} diff --git a/src/main/java/com/nao7016/ClayiumAdditions/mixins/Mixins.java b/src/main/java/com/nao7016/ClayiumAdditions/mixins/Mixins.java new file mode 100644 index 0000000..b550e4b --- /dev/null +++ b/src/main/java/com/nao7016/ClayiumAdditions/mixins/Mixins.java @@ -0,0 +1,24 @@ +package com.nao7016.ClayiumAdditions.mixins; + +import javax.annotation.Nonnull; + +import com.gtnewhorizon.gtnhmixins.builders.IMixins; +import com.gtnewhorizon.gtnhmixins.builders.MixinBuilder; + +public enum Mixins implements IMixins { + + CLAYIUM(new MixinBuilder().setPhase(Phase.EARLY) + .addCommonMixins("MixinTilePANCore")); + + private final MixinBuilder builder; + + Mixins(MixinBuilder builder) { + this.builder = builder; + } + + @Nonnull + @Override + public MixinBuilder getBuilder() { + return builder; + } +} diff --git a/src/main/java/com/nao7016/ClayiumAdditions/mixins/early/MixinTilePANCore.java b/src/main/java/com/nao7016/ClayiumAdditions/mixins/early/MixinTilePANCore.java new file mode 100644 index 0000000..2cb06c1 --- /dev/null +++ b/src/main/java/com/nao7016/ClayiumAdditions/mixins/early/MixinTilePANCore.java @@ -0,0 +1,30 @@ +package com.nao7016.ClayiumAdditions.mixins.early; + +import static mods.clayium.util.crafting.CRecipes.i; + +import java.util.Set; + +import net.minecraft.item.ItemStack; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; + +import com.nao7016.ClayiumAdditions.common.CAItems; + +import mods.clayium.block.tile.TilePANCore; + +@Mixin(value = TilePANCore.class, remap = false) +public class MixinTilePANCore { + + @ModifyVariable(method = "refreshItemSet", at = @At("STORE"), name = "prohibiteds", require = 1) + private Set addProhibited(Set prohibiteds) { + + for (int tier = 4; tier <= 12; tier++) { + ItemStack energyClay = i(CAItems.clayEnergy, 1, tier); + prohibiteds.add(new TilePANCore.ItemStackWithEnergy(energyClay, 0, 0)); + } + + return prohibiteds; + } +} diff --git a/src/main/resources/mixins.clayiumadditions.early.json b/src/main/resources/mixins.clayiumadditions.early.json new file mode 100644 index 0000000..5ee1734 --- /dev/null +++ b/src/main/resources/mixins.clayiumadditions.early.json @@ -0,0 +1,8 @@ +{ + "required": true, + "minVersion": "0.8.5-GTNH", + "package": "com.nao7016.ClayiumAdditions.mixins.early", + "refmap": "mixins.clayiumadditions.refmap.json", + "target": "@env(DEFAULT)", + "compatibilityLevel": "JAVA_8" +} diff --git a/src/main/resources/mixins.clayiumadditions.json b/src/main/resources/mixins.clayiumadditions.json new file mode 100644 index 0000000..92d7ef1 --- /dev/null +++ b/src/main/resources/mixins.clayiumadditions.json @@ -0,0 +1,7 @@ +{ + "required": true, + "minVersion": "0.8.5-GTNH", + "refmap": "mixins.clayiumadditions.refmap.json", + "target": "@env(DEFAULT)", + "compatibilityLevel": "JAVA_8" +}