diff --git a/build.gradle b/build.gradle index 12ba3cf0..b31d7b64 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ plugins { id 'maven-publish' id 'org.jetbrains.gradle.plugin.idea-ext' version '1.1.7' id 'eclipse' - id 'com.gtnewhorizons.retrofuturagradle' version '1.3.19' + id 'com.gtnewhorizons.retrofuturagradle' version '1.3.26' id 'com.matthewprenger.cursegradle' version '1.4.0' } @@ -21,8 +21,6 @@ archivesBaseName = project.archives_base_name java { toolchain { languageVersion.set(JavaLanguageVersion.of(8)) - // Azul covers the most platforms for Java 8 toolchains, crucially including MacOS arm64 - vendor.set(AZUL) } // Generate sources and javadocs jars when building and publishing // withSourcesJar() @@ -106,7 +104,6 @@ dependencies { implementation 'zone.rong:mixinbooter:8.2' } - implementation("com.fasterxml.jackson.core:jackson-core:2.12.5") implementation("com.google.code.findbugs:jsr305:3.0.2") compileOnly rfg.deobf("curse.maven:industrial-craft-2-242638:3838713") @@ -125,7 +122,7 @@ dependencies { if (project.use_mixins.toBoolean()) { // Change your mixin refmap name here: - String mixin = modUtils.enableMixins('zone.rong:mixinbooter:8.2', "mixins.${project.archives_base_name}.refmap.json") + String mixin = modUtils.enableMixins('zone.rong:mixinbooter:8.9', "mixins.${project.archives_base_name}.refmap.json") api(mixin) { transitive = false } diff --git a/gradle.properties b/gradle.properties index bfbeee7d..0c3825d8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -29,13 +29,16 @@ startGitRev=8e676bd use_spark = false # Boilerplate Options -use_mixins = false -use_coremod = false +use_mixins = true +use_coremod = true use_assetmover = false # Access Transformer files should be in the root of `resources` folder and with the filename formatted as: `{archives_base_name}_at.cfg` use_access_transformer = true +# Is Coremod include mod or not, and coremod name +include_mod = true +coremod_plugin_class_name = zmaster587.advancedRocketry.asm.AdvancedRocketryPlugin # Dependencies libVulpesVersion=0.4.2 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fc6f9a39..e97d07a7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/zmaster587/advancedRocketry/annotation/LateMixin.java b/src/main/java/zmaster587/advancedRocketry/annotation/LateMixin.java new file mode 100644 index 00000000..f7108e35 --- /dev/null +++ b/src/main/java/zmaster587/advancedRocketry/annotation/LateMixin.java @@ -0,0 +1,12 @@ +package zmaster587.advancedRocketry.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.CLASS; + +@Retention(CLASS) +@Target(TYPE) +public @interface LateMixin { +} diff --git a/src/main/java/zmaster587/advancedRocketry/asm/AdvancedRocketryPlugin.java b/src/main/java/zmaster587/advancedRocketry/asm/AdvancedRocketryPlugin.java index 1fc9c90e..56b9c1ee 100644 --- a/src/main/java/zmaster587/advancedRocketry/asm/AdvancedRocketryPlugin.java +++ b/src/main/java/zmaster587/advancedRocketry/asm/AdvancedRocketryPlugin.java @@ -3,12 +3,15 @@ import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.MCVersion; import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.TransformerExclusions; +import zone.rong.mixinbooter.IEarlyMixinLoader; +import java.util.Collections; +import java.util.List; import java.util.Map; @TransformerExclusions(value = {"zmaster587.advancedRocketry.asm.ClassTransformer"}) @MCVersion("1.12.2") -public class AdvancedRocketryPlugin implements IFMLLoadingPlugin { +public class AdvancedRocketryPlugin implements IFMLLoadingPlugin, IEarlyMixinLoader { public AdvancedRocketryPlugin() { // TODO Auto-generated constructor stub @@ -41,4 +44,8 @@ public String getAccessTransformerClass() { return null; } + @Override + public List getMixinConfigs() { + return Collections.singletonList("mixins.advancedrocketry.json"); + } } diff --git a/src/main/java/zmaster587/advancedRocketry/asm/LateMixin.java b/src/main/java/zmaster587/advancedRocketry/asm/LateMixin.java new file mode 100644 index 00000000..3ea47e06 --- /dev/null +++ b/src/main/java/zmaster587/advancedRocketry/asm/LateMixin.java @@ -0,0 +1,13 @@ +package zmaster587.advancedRocketry.asm; + +import zone.rong.mixinbooter.ILateMixinLoader; + +import java.util.Collections; +import java.util.List; + +public class LateMixin implements ILateMixinLoader { + @Override + public List getMixinConfigs() { + return Collections.singletonList("mixins.advancedrocketry.late.json"); + } +} diff --git a/src/main/java/zmaster587/advancedRocketry/asm/mixin/early/minecraft/DimensionTypeMixin.java b/src/main/java/zmaster587/advancedRocketry/asm/mixin/early/minecraft/DimensionTypeMixin.java new file mode 100644 index 00000000..74408570 --- /dev/null +++ b/src/main/java/zmaster587/advancedRocketry/asm/mixin/early/minecraft/DimensionTypeMixin.java @@ -0,0 +1,41 @@ +package zmaster587.advancedRocketry.asm.mixin.early.minecraft; + +import net.minecraft.world.DimensionType; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import zmaster587.advancedRocketry.AdvancedRocketry; +import zmaster587.advancedRocketry.dimension.DimensionManager; +import zmaster587.advancedRocketry.dimension.DimensionProperties; + +@Mixin(DimensionType.class) +public abstract class DimensionTypeMixin { + + @Inject(method = "getName", at = @At("RETURN"), cancellable = true) + public void onGetName(CallbackInfoReturnable ci) { + + AdvancedRocketry.logger.info("DimensionTypeMixin"); + + DimensionProperties dimensionProperties = DimensionManager.getInstance().getDimensionProperties(getId()); + + AdvancedRocketry.logger.info("Found dimensionProperties: " + dimensionProperties); + + AdvancedRocketry.logger.info("Found dimensionProperties with name: " + dimensionProperties.getName()); + + if (dimensionProperties == DimensionManager.overworldProperties) { + + AdvancedRocketry.logger.info("Seems to be overworld, returning"); + return; + } + + AdvancedRocketry.logger.info("Returning with dim name"); + + ci.setReturnValue(dimensionProperties.getName()); + } + + @Shadow + public abstract int getId(); + +} diff --git a/src/main/resources/mixins.advancedrocketry.json b/src/main/resources/mixins.advancedrocketry.json new file mode 100644 index 00000000..0bdf5615 --- /dev/null +++ b/src/main/resources/mixins.advancedrocketry.json @@ -0,0 +1,15 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "zmaster587.advancedRocketry.asm.mixin.early", + "refmap": "mixins.advancedrocketry.refmap.json", + "compatibilityLevel": "JAVA_8", + "mixins": [ + "minecraft.DimensionTypeMixin" + ], + "client": [ + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/src/main/resources/mixins.advancedrocketry.late.json b/src/main/resources/mixins.advancedrocketry.late.json new file mode 100644 index 00000000..33d20861 --- /dev/null +++ b/src/main/resources/mixins.advancedrocketry.late.json @@ -0,0 +1,14 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "zmaster587.advancedRocketry.asm.mixin.late", + "refmap": "mixins.advancedrocketry.refmap.json", + "compatibilityLevel": "JAVA_8", + "mixins": [ + ], + "client": [ + ], + "injectors": { + "defaultRequire": 1 + } +}