From 93c1c1a862ebea736816c53eb14217b9ffd9afac Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 7 Dec 2021 02:02:25 +0800 Subject: [PATCH] Update to Forge 1.18 and fix #128 --- README.md | 2 +- common/build.gradle | 2 +- .../lightoverlay/common/ClothScreen.java | 8 ++--- .../lightoverlay/common/LightOverlay.java | 24 +++++++++----- .../common/LightOverlayTicker.java | 5 +-- fabric/build.gradle | 2 +- forge/build.gradle | 10 ++++-- .../lightoverlay/forge/LightOverlay.java | 4 +-- .../lightoverlay/forge/LightOverlayCloth.java | 2 +- .../lightoverlay/forge/LightOverlayImpl.java | 2 ++ .../forge/mixin/MixinClientConnection.java | 18 +++++----- .../forge/mixin/MixinDebugRenderer.java | 15 +++------ .../forge/mixin/MixinLevelRenderer.java | 26 +++++++-------- .../src/main/resources/META-INF/Connection.js | 33 ------------------- .../main/resources/META-INF/DebugRenderer.js | 32 ------------------ .../main/resources/META-INF/LevelRenderer.js | 32 ------------------ .../src/main/resources/META-INF/coremods.json | 5 --- forge/src/main/resources/META-INF/mods.toml | 4 +-- .../resources/lightoverlay-forge.mixins.json | 15 +++++++++ gradle.properties | 10 +++--- settings.gradle | 2 +- 21 files changed, 85 insertions(+), 168 deletions(-) delete mode 100644 forge/src/main/resources/META-INF/Connection.js delete mode 100644 forge/src/main/resources/META-INF/DebugRenderer.js delete mode 100644 forge/src/main/resources/META-INF/LevelRenderer.js delete mode 100644 forge/src/main/resources/META-INF/coremods.json create mode 100644 forge/src/main/resources/lightoverlay-forge.mixins.json diff --git a/README.md b/README.md index 381a798..e2acc10 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,4 @@ Forge: `gradlew :forge:runClient` Or use the run configs if you are using IntelliJ IDEA. # Compiling -Run `gradlew buildMerged`, and the merged jar will be in `build/libs/`. \ No newline at end of file +Run `gradlew build`, and the merged jar will be in `fabric|forge/build/libs/`. \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle index 9ff509e..8d4e31d 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -9,7 +9,7 @@ dependencies { } architectury { - common(false) + common() } configurations { diff --git a/common/src/main/java/me/shedaniel/lightoverlay/common/ClothScreen.java b/common/src/main/java/me/shedaniel/lightoverlay/common/ClothScreen.java index 5812d2f..243d4f3 100644 --- a/common/src/main/java/me/shedaniel/lightoverlay/common/ClothScreen.java +++ b/common/src/main/java/me/shedaniel/lightoverlay/common/ClothScreen.java @@ -22,14 +22,10 @@ public class ClothScreen { general.addEntry(eb.startTextDescription(Component.nullToEmpty("§7" + I18n.get("description.lightoverlay.caching"))).build()); general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.caching"), LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build()); general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.reach"), LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> Component.nullToEmpty("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlay.reach = integer).build()); - IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslatableComponent("config.lightoverlay.crossLevel"), LightOverlay.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> Component.nullToEmpty("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build(); + IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslatableComponent("config.lightoverlay.crossLevel"), LightOverlay.crossLevel, 0, 15).setDefaultValue(0).setTextGetter(integer -> Component.nullToEmpty("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build(); general.addEntry(crossLevel); general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.secondaryLevel"), LightOverlay.secondaryLevel, -1, 15) - .setErrorSupplier(integer -> { - if (integer >= 0 && integer >= crossLevel.getValue()) - return Optional.of(new TextComponent("Secondary Level cannot be higher than Cross Level!")); - return Optional.empty(); - }).setDefaultValue(-1).setTextGetter(integer -> new TextComponent(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build()); + .setDefaultValue(7).setTextGetter(integer -> new TextComponent(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build()); general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.showNumber"), LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build()); general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.underwater"), LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build()); general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.mushroom"), LightOverlay.mushroom).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.mushroom = bool).build()); diff --git a/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlay.java b/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlay.java index 9d93dc4..b8afb19 100644 --- a/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlay.java +++ b/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlay.java @@ -22,8 +22,8 @@ import java.util.function.Consumer; public class LightOverlay { public static final DecimalFormat FORMAT = new DecimalFormat("#.#"); public static int reach = 12; - public static int crossLevel = 7; - public static int secondaryLevel = -1; + public static int crossLevel = 0; + public static int secondaryLevel = 7; public static int lowerCrossLevel = -1; public static int higherCrossLevel = -1; public static boolean caching = false; @@ -96,8 +96,8 @@ public class LightOverlay { properties.load(fis); fis.close(); reach = Integer.parseInt((String) properties.computeIfAbsent("reach", a -> "12")); - crossLevel = Integer.parseInt((String) properties.computeIfAbsent("crossLevel", a -> "7")); - secondaryLevel = Integer.parseInt((String) properties.computeIfAbsent("secondaryLevel", a -> "-1")); + crossLevel = Integer.parseInt((String) properties.computeIfAbsent("crossLevel", a -> "0")); + secondaryLevel = Integer.parseInt((String) properties.computeIfAbsent("secondaryLevel", a -> "7")); caching = ((String) properties.computeIfAbsent("caching", a -> "false")).equalsIgnoreCase("true"); showNumber = ((String) properties.computeIfAbsent("showNumber", a -> "false")).equalsIgnoreCase("true"); underwater = ((String) properties.computeIfAbsent("underwater", a -> "false")).equalsIgnoreCase("true"); @@ -128,8 +128,8 @@ public class LightOverlay { } catch (Exception e) { e.printStackTrace(); reach = 12; - crossLevel = 7; - secondaryLevel = -1; + crossLevel = 0; + secondaryLevel = 7; lineWidth = 1.0F; redColor = 0xFF0000; yellowColor = 0xFFFF00; @@ -144,7 +144,13 @@ public class LightOverlay { ex.printStackTrace(); } } - if (secondaryLevel >= crossLevel) System.err.println("[Light Overlay] Secondary Level is higher than Cross Level"); + if (secondaryLevel >= crossLevel) { + higherCross = CROSS_SECONDARY; + lowerCross = CROSS_YELLOW; + } else { + higherCross = CROSS_YELLOW; + lowerCross = CROSS_SECONDARY; + } lowerCrossLevel = Math.min(crossLevel, secondaryLevel); higherCrossLevel = Math.max(crossLevel, secondaryLevel); ticker.CHUNK_MAP.clear(); @@ -207,5 +213,7 @@ public class LightOverlay { public static final byte CROSS_YELLOW = 0; public static final byte CROSS_RED = 1; public static final byte CROSS_SECONDARY = 2; - public static final byte CROSS_NONE = 2; + public static final byte CROSS_NONE = 3; + public static byte higherCross = CROSS_YELLOW; + public static byte lowerCross = CROSS_SECONDARY; } diff --git a/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlayTicker.java b/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlayTicker.java index fd0fe17..8cf2275 100644 --- a/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlayTicker.java +++ b/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlayTicker.java @@ -250,8 +250,9 @@ public class LightOverlayTicker { if (blockLightLevel > LightOverlay.higherCrossLevel) return LightOverlay.CROSS_NONE; if (skyLightLevel > LightOverlay.higherCrossLevel) - return LightOverlay.CROSS_YELLOW; - return LightOverlay.lowerCrossLevel >= 0 && blockLightLevel > LightOverlay.lowerCrossLevel ? LightOverlay.CROSS_SECONDARY : LightOverlay.CROSS_RED; + return LightOverlay.higherCross; + return LightOverlay.lowerCrossLevel >= 0 && blockLightLevel > LightOverlay.lowerCrossLevel ? + LightOverlay.lowerCross : LightOverlay.CROSS_RED; } public static int getCrossLevel(BlockPos pos, BlockPos down, BlockGetter world, LayerLightEventListener view, CollisionContext collisionContext) { diff --git a/fabric/build.gradle b/fabric/build.gradle index 390e370..3e74394 100755 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -40,7 +40,7 @@ dependencies { } modImplementation("dev.architectury:architectury-fabric:${rootProject.architectury_version}") - common(project(path: ":common", configuration: "dev")) { + common(project(path: ":common", configuration: "namedElements")) { transitive = false } shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { diff --git a/forge/build.gradle b/forge/build.gradle index ce0bbf0..de6d3df 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -11,6 +11,12 @@ architectury { forge() } +loom { + forge { + mixinConfig "lightoverlay-forge.mixins.json" + } +} + processResources { filesMatching("META-INF/mods.toml") { expand "version": project.version @@ -25,10 +31,10 @@ dependencies { modImplementation("me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_config_version}") modImplementation("dev.architectury:architectury-forge:${rootProject.architectury_version}") - implementation(project(path: ":common")) { + implementation(project(path: ":common", configuration: "namedElements")) { transitive = false } - developmentForge(project(path: ":common")) { + developmentForge(project(path: ":common", configuration: "namedElements")) { transitive = false } shadow(project(path: ":common", configuration: "transformProductionForge")) { diff --git a/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlay.java b/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlay.java index eeee0e7..18d85bb 100644 --- a/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlay.java +++ b/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlay.java @@ -5,12 +5,12 @@ import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.IExtensionPoint; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fmllegacy.network.FMLNetworkConstants; +import net.minecraftforge.network.NetworkConstants; @Mod("lightoverlay") public class LightOverlay { public LightOverlay() { - ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> FMLNetworkConstants.IGNORESERVERONLY, (a, b) -> true)); + ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> NetworkConstants.IGNORESERVERONLY, (a, b) -> true)); DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> LightOverlayImpl::register); } } diff --git a/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayCloth.java b/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayCloth.java index 2b65c39..707f176 100644 --- a/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayCloth.java +++ b/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayCloth.java @@ -1,8 +1,8 @@ package me.shedaniel.lightoverlay.forge; import me.shedaniel.lightoverlay.common.ClothScreen; +import net.minecraftforge.client.ConfigGuiHandler; import net.minecraftforge.fml.ModLoadingContext; -import net.minecraftforge.fmlclient.ConfigGuiHandler; public class LightOverlayCloth { public static void register() { diff --git a/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayImpl.java b/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayImpl.java index 676208d..f9ac6ef 100644 --- a/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayImpl.java +++ b/forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayImpl.java @@ -2,6 +2,7 @@ package me.shedaniel.lightoverlay.forge; import com.mojang.blaze3d.vertex.PoseStack; import me.shedaniel.lightoverlay.common.LightOverlay; +import me.shedaniel.lightoverlay.common.LightOverlayRenderer; import net.minecraft.client.renderer.culling.Frustum; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.fml.DistExecutor; @@ -9,6 +10,7 @@ import net.minecraftforge.fml.DistExecutor; import java.util.function.Consumer; public class LightOverlayImpl { + public static LightOverlayRenderer renderer = LightOverlay.renderer; public static Consumer debugRenderer = poses -> {}; public static void register() { diff --git a/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinClientConnection.java b/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinClientConnection.java index fcf74b7..8b5b737 100644 --- a/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinClientConnection.java +++ b/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinClientConnection.java @@ -2,8 +2,8 @@ package me.shedaniel.lightoverlay.forge.mixin; import me.shedaniel.lightoverlay.common.CubicChunkPos; import me.shedaniel.lightoverlay.common.LightOverlay; -//import net.minecraft.network.Connection; import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.network.Connection; import net.minecraft.network.PacketListener; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket; @@ -11,18 +11,18 @@ import net.minecraft.network.protocol.game.ClientboundLightUpdatePacket; import net.minecraft.network.protocol.game.ClientboundSectionBlocksUpdatePacket; import net.minecraft.network.protocol.game.ClientboundSetChunkCacheCenterPacket; import net.minecraft.util.Mth; -//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.CallbackInfo; +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.CallbackInfo; -//@Mixin(Connection.class) +@Mixin(Connection.class) public class MixinClientConnection { -// @Inject(method = "genericsFtw", at = @At("HEAD")) -// private static void handlePacket(Packet packet, PacketListener listener, CallbackInfo ci) { + @Inject(method = "genericsFtw", at = @At("HEAD")) + private static void handlePacket(Packet packet, PacketListener listener, CallbackInfo ci) { // // } - public static void handlePacket(Packet packet, PacketListener listener) { +// public static void handlePacket(Packet packet, PacketListener listener) { try { if (!(listener instanceof ClientPacketListener packetListener)) return; var level = packetListener.getLevel(); diff --git a/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinDebugRenderer.java b/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinDebugRenderer.java index b34bf71..5f04d5a 100644 --- a/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinDebugRenderer.java +++ b/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinDebugRenderer.java @@ -2,22 +2,17 @@ package me.shedaniel.lightoverlay.forge.mixin; import com.mojang.blaze3d.vertex.PoseStack; import me.shedaniel.lightoverlay.forge.LightOverlayImpl; -/*import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.debug.DebugRenderer; 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.CallbackInfo;*/ +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -//@Mixin(DebugRenderer.class) +@Mixin(DebugRenderer.class) public class MixinDebugRenderer { -// @Inject(method = "render", at = @At("HEAD")) -// private void render(PoseStack arg, MultiBufferSource.BufferSource arg2, double d, double e, double f, CallbackInfo ci) { -// LightOverlayImpl.renderWorldLast(); -// } - - public static void render(PoseStack stack) { - LightOverlayImpl.renderWorldLast(stack); + @Inject(method = "render", at = @At("HEAD")) + private void render(PoseStack arg, MultiBufferSource.BufferSource arg2, double d, double e, double f, CallbackInfo ci) { + LightOverlayImpl.renderWorldLast(arg); } } diff --git a/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinLevelRenderer.java b/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinLevelRenderer.java index 3b9277c..8a039d3 100644 --- a/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinLevelRenderer.java +++ b/forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinLevelRenderer.java @@ -1,22 +1,18 @@ package me.shedaniel.lightoverlay.forge.mixin; -import me.shedaniel.lightoverlay.common.LightOverlay; +import me.shedaniel.lightoverlay.forge.LightOverlayImpl; +import net.minecraft.client.Camera; +import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.culling.Frustum; -//import net.minecraft.client.Camera; -//import net.minecraft.client.renderer.LevelRenderer; -//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.CallbackInfo; +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.CallbackInfo; -//@Mixin(LevelRenderer.class) +@Mixin(LevelRenderer.class) public class MixinLevelRenderer { -// @Inject(method = "setupRender", at = @At("HEAD")) -// private void setupTerrain(Camera camera, Frustum frustum, boolean bl, int i, boolean bl2, CallbackInfo ci) { -// LightOverlay.renderer.frustum = frustum; -// } - - public static void setupTerrain(Frustum frustum) { - LightOverlay.renderer.frustum = frustum; + @Inject(method = "setupRender", at = @At("HEAD")) + private void setupTerrain(Camera camera, Frustum frustum, boolean bl, boolean bl2, CallbackInfo ci) { + LightOverlayImpl.renderer.frustum = frustum; } } diff --git a/forge/src/main/resources/META-INF/Connection.js b/forge/src/main/resources/META-INF/Connection.js deleted file mode 100644 index 7f7e122..0000000 --- a/forge/src/main/resources/META-INF/Connection.js +++ /dev/null @@ -1,33 +0,0 @@ -var Opcodes = Java.type("org.objectweb.asm.Opcodes"); -var VarInsnNode = Java.type("org.objectweb.asm.tree.VarInsnNode"); -var MethodInsnNode = Java.type("org.objectweb.asm.tree.MethodInsnNode"); -var ASMAPI = Java.type("net.minecraftforge.coremod.api.ASMAPI"); - -function transformMethod(method) { - var instructions = method.instructions; - instructions.insert(new MethodInsnNode(Opcodes.INVOKESTATIC, "me/shedaniel/lightoverlay/forge/mixin/MixinClientConnection", "handlePacket", "(Lnet/minecraft/network/protocol/Packet;Lnet/minecraft/network/PacketListener;)V", false)); - instructions.insert(new VarInsnNode(Opcodes.ALOAD, 1)); - instructions.insert(new VarInsnNode(Opcodes.ALOAD, 0)); -} - -function initializeCoreMod() { - return { - "lightoverlay": { - 'target': { - 'type': 'CLASS', - 'name': 'net.minecraft.network.Connection' - }, - 'transformer': function (classNode) { - var genericsFtw = ASMAPI.mapMethod("m_129517_"); - for (i in classNode.methods) { - var method = classNode.methods[i]; - if (method.name === genericsFtw) { - transformMethod(method) - break; - } - } - return classNode; - } - } - } -} \ No newline at end of file diff --git a/forge/src/main/resources/META-INF/DebugRenderer.js b/forge/src/main/resources/META-INF/DebugRenderer.js deleted file mode 100644 index c67dba3..0000000 --- a/forge/src/main/resources/META-INF/DebugRenderer.js +++ /dev/null @@ -1,32 +0,0 @@ -var Opcodes = Java.type("org.objectweb.asm.Opcodes"); -var VarInsnNode = Java.type("org.objectweb.asm.tree.VarInsnNode"); -var MethodInsnNode = Java.type("org.objectweb.asm.tree.MethodInsnNode"); -var ASMAPI = Java.type("net.minecraftforge.coremod.api.ASMAPI"); - -function transformMethod(method) { - var instructions = method.instructions; - instructions.insert(new MethodInsnNode(Opcodes.INVOKESTATIC, "me/shedaniel/lightoverlay/forge/mixin/MixinDebugRenderer", "render", "(Lcom/mojang/blaze3d/vertex/PoseStack;)V", false)); - instructions.insert(new VarInsnNode(Opcodes.ALOAD, 1)); -} - -function initializeCoreMod() { - return { - "lightoverlay": { - 'target': { - 'type': 'CLASS', - 'name': 'net.minecraft.client.renderer.debug.DebugRenderer' - }, - 'transformer': function (classNode) { - var render = ASMAPI.mapMethod("m_113457_"); - for (i in classNode.methods) { - var method = classNode.methods[i]; - if (method.name === render) { - transformMethod(method) - break; - } - } - return classNode; - } - } - } -} \ No newline at end of file diff --git a/forge/src/main/resources/META-INF/LevelRenderer.js b/forge/src/main/resources/META-INF/LevelRenderer.js deleted file mode 100644 index 6ad2b6d..0000000 --- a/forge/src/main/resources/META-INF/LevelRenderer.js +++ /dev/null @@ -1,32 +0,0 @@ -var Opcodes = Java.type("org.objectweb.asm.Opcodes"); -var VarInsnNode = Java.type("org.objectweb.asm.tree.VarInsnNode"); -var MethodInsnNode = Java.type("org.objectweb.asm.tree.MethodInsnNode"); -var ASMAPI = Java.type("net.minecraftforge.coremod.api.ASMAPI"); - -function transformMethod(method) { - var instructions = method.instructions; - instructions.insert(new MethodInsnNode(Opcodes.INVOKESTATIC, "me/shedaniel/lightoverlay/forge/mixin/MixinLevelRenderer", "setupTerrain", "(Lnet/minecraft/client/renderer/culling/Frustum;)V", false)); - instructions.insert(new VarInsnNode(Opcodes.ALOAD, 2)); -} - -function initializeCoreMod() { - return { - "lightoverlay": { - 'target': { - 'type': 'CLASS', - 'name': 'net.minecraft.client.renderer.LevelRenderer' - }, - 'transformer': function (classNode) { - var setupRender = ASMAPI.mapMethod("m_109695_"); - for (i in classNode.methods) { - var method = classNode.methods[i]; - if (method.name === setupRender) { - transformMethod(method) - break; - } - } - return classNode; - } - } - } -} \ No newline at end of file diff --git a/forge/src/main/resources/META-INF/coremods.json b/forge/src/main/resources/META-INF/coremods.json deleted file mode 100644 index 17c6500..0000000 --- a/forge/src/main/resources/META-INF/coremods.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Connection": "META-INF/Connection.js", - "DebugRenderer": "META-INF/DebugRenderer.js", - "LevelRenderer": "META-INF/LevelRenderer.js" -} \ No newline at end of file diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index c4670ba..661646c 100755 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -15,13 +15,13 @@ To provide users with NEI-like light overlay. [[dependencies.lightoverlay]] modId = "cloth_config" mandatory = true -versionRange = "[5.0.36,)" +versionRange = "[6,)" ordering = "NONE" side = "CLIENT" [[dependencies.lightoverlay]] modId = "architectury" mandatory = true -versionRange = "[2.3.22,)" +versionRange = "[3,)" ordering = "NONE" side = "CLIENT" diff --git a/forge/src/main/resources/lightoverlay-forge.mixins.json b/forge/src/main/resources/lightoverlay-forge.mixins.json new file mode 100644 index 0000000..798efb5 --- /dev/null +++ b/forge/src/main/resources/lightoverlay-forge.mixins.json @@ -0,0 +1,15 @@ +{ + "required": true, + "package": "me.shedaniel.lightoverlay.forge.mixin", + "minVersion": "0.7.11", + "compatibilityLevel": "JAVA_8", + "mixins": [], + "client": [ + "MixinClientConnection", + "MixinDebugRenderer", + "MixinLevelRenderer" + ], + "injectors": { + "defaultRequire": 1 + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index b205965..8a713e2 100755 --- a/gradle.properties +++ b/gradle.properties @@ -1,16 +1,16 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -mod_version=6.0.3 -minecraft_version=1.18-rc3 +mod_version=6.0.4 +minecraft_version=1.18 -architectury_version=3.0.39 +architectury_version=3.1.45 # fabric fabric_loader_version=0.12.5 fabric_api_version=0.43.1+1.18 -cloth_config_version=6.0.42 +cloth_config_version=6.0.45 modmenu_version=3.0.0 # forge -forge_version=37.0.13 \ No newline at end of file +forge_version=38.0.15 \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 323a92b..a232ac9 100644 --- a/settings.gradle +++ b/settings.gradle @@ -11,5 +11,5 @@ rootProject.name = "light-overlay" include("common") include("fabric") -//include("forge") +include("forge") -- 2.44.0