diff --git a/build.gradle b/build.gradle index 874e3e4f4..43d17b64f 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ plugins { id "systems.manifold.manifold-gradle-plugin" version "0.0.2-alpha" // Architectury is used here only as a replacement for forge's own loom - id "dev.architectury.loom" version "1.10-SNAPSHOT" apply false + id "dev.architectury.loom" version "1.11-SNAPSHOT" apply false } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java b/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java index dca8860f5..8dff9bf6c 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java @@ -5,7 +5,7 @@ import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiAfterDh import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiBeforeDhInitEvent; import com.seibel.distanthorizons.common.commands.CommandInitializer; import com.seibel.distanthorizons.common.wrappers.DependencySetup; -import com.seibel.distanthorizons.common.wrappers.gui.DebugScreenEntry; +import com.seibel.distanthorizons.common.wrappers.gui.DhDebugScreenEntry; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftServerWrapper; import com.seibel.distanthorizons.core.api.internal.ClientApi; import com.seibel.distanthorizons.core.api.internal.SharedApi; @@ -87,7 +87,7 @@ public abstract class AbstractModInitializer #if MC_VER < MC_1_21_9 // debug screen rendering handled via a mixin #else - DebugScreenEntry.register(); + DhDebugScreenEntry.register(); #endif this.subscribeClientStartedEvent(this::postInit); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/DebugScreenEntry.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/DhDebugScreenEntry.java similarity index 94% rename from common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/DebugScreenEntry.java rename to common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/DhDebugScreenEntry.java index f591bfe45..e5c643e4f 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/DebugScreenEntry.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/DhDebugScreenEntry.java @@ -21,10 +21,10 @@ import net.minecraft.world.level.chunk.LevelChunk; #if MC_VER < MC_1_21_9 // not supported for older MC versions -public class DebugScreenEntry +public class DhDebugScreenEntry {} #else -public class DebugScreenEntry implements net.minecraft.client.gui.components.debug.DebugScreenEntry +public class DhDebugScreenEntry implements net.minecraft.client.gui.components.debug.DebugScreenEntry { public static void register() { @@ -33,7 +33,7 @@ public class DebugScreenEntry implements net.minecraft.client.gui.components.deb // The id, this will be displayed on the options screen ResourceLocation.fromNamespaceAndPath(ModInfo.RESOURCE_NAMESPACE, "distant_horizons"), // The screen entry - new DebugScreenEntry() + new DhDebugScreenEntry() ); } diff --git a/common/src/main/resources/1_21_9.distanthorizons.accesswidener b/common/src/main/resources/1_21_9.distanthorizons.accesswidener index d39ed6469..ffac58134 100644 --- a/common/src/main/resources/1_21_9.distanthorizons.accesswidener +++ b/common/src/main/resources/1_21_9.distanthorizons.accesswidener @@ -8,6 +8,7 @@ accessible field net/minecraft/world/level/biome/BiomeManager biomeZoomSeed J # used when rendering accessible method net/minecraft/client/renderer/GameRenderer getFov (Lnet/minecraft/client/Camera;FZ)F accessible field net/minecraft/client/Minecraft deltaTracker Lnet/minecraft/client/DeltaTracker$Timer; +accessible field net/minecraft/client/renderer/LevelRenderer level Lnet/minecraft/client/multiplayer/ClientLevel; # used for grabbing vanilla rendered chunks diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java index 90b64350d..6c10fdbd2 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java @@ -259,7 +259,6 @@ public class FabricClientProxy implements AbstractModInitializer.IEventProxy }); - // TODO add to forge and neo WorldRenderEvents.AFTER_ENTITIES.register((renderContext) -> { Mat4f projectionMatrix = McObjectConverter.Convert(renderContext.projectionMatrix()); diff --git a/gradle.properties b/gradle.properties index 197997bb9..08b2f5416 100644 --- a/gradle.properties +++ b/gradle.properties @@ -54,7 +54,7 @@ versionStr= # This defines what MC version Intellij will use for the preprocessor # and what version is used automatically by build and run commands -mcVer=1.21.8 +mcVer=1.21.9 # Defines the maximum amount of memory Minecraft is allowed when run in a development environment #minecraftMemoryJavaArg="-Xmx4G" diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeClientProxy.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeClientProxy.java index 1a8f48845..39608b9be 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeClientProxy.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeClientProxy.java @@ -61,13 +61,6 @@ import java.util.concurrent.AbstractExecutorService; #endif -/** - * This handles all events sent to the client, - * and is the starting point for most of the mod. - * - * @author James_Seibel - * @version 2023-7-27 - */ public class NeoforgeClientProxy implements AbstractModInitializer.IEventProxy { private static final IMinecraftClientWrapper MC = SingletonInjector.INSTANCE.get(IMinecraftClientWrapper.class); @@ -257,11 +250,17 @@ public class NeoforgeClientProxy implements AbstractModInitializer.IEventProxy @SubscribeEvent public void afterLevelEntityRenderEvent(RenderLevelStageEvent.AfterEntities event) { + #if MC_VER < MC_1_21_9 + IClientLevelWrapper levelWrapper = ClientLevelWrapper.getWrapper((ClientLevel)event.getLevel()); + #else + IClientLevelWrapper levelWrapper = ClientLevelWrapper.getWrapper(event.getLevelRenderer().level); + #endif + ClientApi.INSTANCE.renderFade( ClientApi.RENDER_STATE.mcModelViewMatrix, ClientApi.RENDER_STATE.mcProjectionMatrix, ClientApi.RENDER_STATE.frameTime, - ClientLevelWrapper.getWrapper((ClientLevel)event.getLevel()) + levelWrapper ); } @@ -269,7 +268,14 @@ public class NeoforgeClientProxy implements AbstractModInitializer.IEventProxy @SubscribeEvent public void afterLevelTranslucentRenderEvent(RenderLevelStageEvent.AfterTranslucentBlocks event) { - ClientApi.INSTANCE.renderDeferredLodsForShaders(ClientLevelWrapper.getWrapper((ClientLevel)event.getLevel()), + #if MC_VER < MC_1_21_9 + IClientLevelWrapper levelWrapper = ClientLevelWrapper.getWrapper((ClientLevel)event.getLevel()); + #else + IClientLevelWrapper levelWrapper = ClientLevelWrapper.getWrapper(event.getLevelRenderer().level); + #endif + + ClientApi.INSTANCE.renderDeferredLodsForShaders( + levelWrapper, ClientApi.RENDER_STATE.mcModelViewMatrix, ClientApi.RENDER_STATE.mcProjectionMatrix, ClientApi.RENDER_STATE.frameTime @@ -279,6 +285,13 @@ public class NeoforgeClientProxy implements AbstractModInitializer.IEventProxy @SubscribeEvent public void afterLevelRenderEvent(RenderLevelStageEvent.AfterLevel event) { + #if MC_VER < MC_1_21_9 + IClientLevelWrapper levelWrapper = ClientLevelWrapper.getWrapper((ClientLevel)event.getLevel()); + #else + IClientLevelWrapper levelWrapper = ClientLevelWrapper.getWrapper(event.getLevelRenderer().level); + #endif + + try { // should generally only need to be set once per game session @@ -296,7 +309,7 @@ public class NeoforgeClientProxy implements AbstractModInitializer.IEventProxy ClientApi.RENDER_STATE.mcModelViewMatrix, ClientApi.RENDER_STATE.mcProjectionMatrix, ClientApi.RENDER_STATE.frameTime, - ClientLevelWrapper.getWrapper((ClientLevel)event.getLevel()) + levelWrapper ); } diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinDebugScreenOverlay.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinDebugScreenOverlay.java index 56fcf95ca..7c8a946b3 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinDebugScreenOverlay.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinDebugScreenOverlay.java @@ -26,7 +26,7 @@ public class MixinDebugScreenOverlay F3Screen.addStringToDisplay(messages); } #else - // handled by DebugScreenEntry for MC versions after 1.21.9 + // handled by DhDebugScreenEntry for MC versions after 1.21.9 #endif } diff --git a/versionProperties/1.21.9.properties b/versionProperties/1.21.9.properties index 8f224294c..9e5af2beb 100644 --- a/versionProperties/1.21.9.properties +++ b/versionProperties/1.21.9.properties @@ -41,9 +41,10 @@ fabric_api_version=0.133.14+1.21.9 # (Neo)Forge loader forge_version= -neoforge_version=21.9.1-beta - # around 6.19 neo changed how their render API works, failing to meet this causes the game to crash - neoforge_version_range=[*,) +neoforge_version=21.9.15-beta + # sometime before 21.9.15-beta Neoforge changed how their rendering API events handle levels + # so we can't support both versions at once + neoforge_version_range=[21.9.15-beta,) # (Neo)Forge mod versions starlight_version_forge=