diff --git a/common/src/main/java/com/seibel/distanthorizons/common/ImmersivePortalsCompat.java b/common/src/main/java/com/seibel/distanthorizons/common/ImmersivePortalsCompat.java
new file mode 100644
index 000000000..b1b9b343e
--- /dev/null
+++ b/common/src/main/java/com/seibel/distanthorizons/common/ImmersivePortalsCompat.java
@@ -0,0 +1,92 @@
+/*
+ * This file is part of the Distant Horizons mod
+ * licensed under the GNU LGPL v3 License.
+ *
+ * Copyright (C) 2020 James Seibel
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package com.seibel.distanthorizons.common;
+
+import com.seibel.distanthorizons.core.logging.DhLoggerBuilder;
+import com.seibel.distanthorizons.core.logging.DhLogger;
+
+/**
+ * Runtime detection and compatibility handling for Immersive Portals
+ */
+public class ImmersivePortalsCompat
+{
+ private static final DhLogger LOGGER = new DhLoggerBuilder().build();
+
+ private static volatile Boolean isImmersivePortalsPresent = null;
+ private static volatile Boolean isImmersivePortalsActive = null;
+
+ /**
+ * Check if Immersive Portals is present in the mod environment
+ */
+ public static boolean isImmersivePortalsPresent()
+ {
+ if (isImmersivePortalsPresent == null)
+ {
+ synchronized (ImmersivePortalsCompat.class)
+ {
+ if (isImmersivePortalsPresent == null)
+ {
+ try
+ {
+ // Try to load an Immersive Portals class
+ Class.forName("qouteall.imm_ptl.core.IPMcHelper");
+ isImmersivePortalsPresent = true;
+ LOGGER.info("Immersive Portals detected - enabling compatibility features");
+ }
+ catch (ClassNotFoundException e)
+ {
+ isImmersivePortalsPresent = false;
+ LOGGER.debug("Immersive Portals not detected - using standard level management");
+ }
+ }
+ }
+ }
+ return isImmersivePortalsPresent;
+ }
+
+ /**
+ * Check if Immersive Portals compatibility should be active
+ * This checks both presence and configuration
+ */
+ public static boolean isImmersivePortalsActive()
+ {
+ if (isImmersivePortalsActive == null)
+ {
+ synchronized (ImmersivePortalsCompat.class)
+ {
+ if (isImmersivePortalsActive == null)
+ {
+ // TODO: Add configuration check here
+ isImmersivePortalsActive = isImmersivePortalsPresent();
+ }
+ }
+ }
+ return isImmersivePortalsActive;
+ }
+
+ /**
+ * Reset detection cache (useful for testing)
+ */
+ public static void resetDetection()
+ {
+ isImmersivePortalsPresent = null;
+ isImmersivePortalsActive = null;
+ }
+}
diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java
index 2f42b98a7..57554854a 100644
--- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java
+++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java
@@ -6,6 +6,7 @@ import com.seibel.distanthorizons.common.wrappers.block.BiomeWrapper;
import com.seibel.distanthorizons.common.wrappers.block.BlockStateWrapper;
import com.seibel.distanthorizons.common.wrappers.block.ClientBlockStateColorCache;
import com.seibel.distanthorizons.common.wrappers.chunk.ChunkWrapper;
+import com.seibel.distanthorizons.core.api.internal.ClientApi;
import com.seibel.distanthorizons.core.dataObjects.fullData.sources.FullDataSourceV2;
import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector;
import com.seibel.distanthorizons.core.level.*;
@@ -79,9 +80,9 @@ public class ClientLevelWrapper implements IClientLevelWrapper
private boolean cloudColorFailLogged = false;
- private BlockStateWrapper dirtBlockWrapper;
- private IDhLevel dhLevel;
-
+ private volatile BlockStateWrapper dirtBlockWrapper;
+ private volatile IDhLevel dhLevel;
+ private volatile long lastRenderTime = System.currentTimeMillis();
//=============//
@@ -100,6 +101,55 @@ public class ClientLevelWrapper implements IClientLevelWrapper
//==================//
//region
+ public synchronized void markRendered() {
+ this.lastRenderTime = System.currentTimeMillis();
+ }
+ public long getLastRenderTime() { return this.lastRenderTime; }
+ public boolean isDhLevelLoaded() {
+ return this.dhLevel != null;
+ }
+
+ public static void tickCleanup()
+ {
+ if (MINECRAFT.level == null) { return; }
+
+ long currentTime = System.currentTimeMillis();
+ long timeout = 30 * 1000;
+
+ java.util.List toUnload = new java.util.ArrayList<>();
+
+ synchronized(LEVEL_WRAPPER_REF_BY_CLIENT_LEVEL)
+ {
+ for (java.lang.ref.WeakReference ref : LEVEL_WRAPPER_REF_BY_CLIENT_LEVEL.values())
+ {
+ ClientLevelWrapper wrapper = ref.get();
+ if (wrapper != null && wrapper.isDhLevelLoaded() && wrapper.level != MINECRAFT.level)
+ {
+ if (currentTime - wrapper.getLastRenderTime() > timeout)
+ {
+ toUnload.add(wrapper);
+ }
+ }
+ }
+ }
+
+ for (ClientLevelWrapper wrapper : toUnload)
+ {
+ // Re-verify all conditions inside a synchronized block on the wrapper
+ // to ensure atomicity with respect to markRendered()
+ synchronized(wrapper)
+ {
+ if (wrapper.isDhLevelLoaded() && wrapper.level != MINECRAFT.level && currentTime - wrapper.getLastRenderTime() > timeout)
+ {
+ LOGGER.debug("Unloading level " + wrapper.getDhIdentifier() + " due to inactivity");
+ ClientApi.INSTANCE.clientLevelUnloadEvent(wrapper);
+ }
+ }
+ }
+ }
+
+
+
/**
* can be used when speed is important and the same level is likely to be passed in,
* IE rendering.
diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java
index bf548285d..e400dcf76 100644
--- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java
+++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java
@@ -62,7 +62,7 @@ public class ServerLevelWrapper implements IServerLevelWrapper
private static final Map> LEVEL_WRAPPER_REF_BY_SERVER_LEVEL = Collections.synchronizedMap(new WeakHashMap<>());
private final ServerLevel level;
- private IDhLevel dhLevel;
+ private volatile IDhLevel dhLevel;
/**
* this name is cached to prevent issues during shutdown where
diff --git a/fabric/build.gradle b/fabric/build.gradle
index 24460d713..c7acc619c 100644
--- a/fabric/build.gradle
+++ b/fabric/build.gradle
@@ -43,28 +43,7 @@ dependencies {
addMod("com.github.quiqueck:BCLib:${rootProject.bclib_version}", rootProject.enable_bclib)
// Canvas
- addMod("io.vram:canvas-fabric-${rootProject.canvas_version}", rootProject.enable_canvas)
-
- // Immersive Portals
- if (rootProject.enable_immersive_portals == "1") {
- modCompileOnly("com.github.iPortalTeam.ImmersivePortalsMod:imm_ptl_core:${rootProject.immersive_portals_version}")
- }
- else if (rootProject.enable_immersive_portals == "2") {
- modImplementation ("com.github.iPortalTeam.ImmersivePortalsMod:imm_ptl_core:${rootProject.immersive_portals_version}") {
- exclude(group: "net.fabricmc.fabric-api")
- transitive(false)
- }
- modImplementation("com.github.iPortalTeam.ImmersivePortalsMod:q_misc_util:${rootProject.immersive_portals_version}") {
- exclude(group: "net.fabricmc.fabric-api")
- transitive(false)
- }
- modImplementation("com.github.iPortalTeam.ImmersivePortalsMod:build:${rootProject.immersive_portals_version}") {
- exclude(group: "net.fabricmc.fabric-api")
- transitive(false)
- }
- api("com.github.LlamaLad7:MixinExtras:0.2.0-beta.4")
- annotationProcessor("com.github.LlamaLad7:MixinExtras:0.2.0-beta.4")
- }
+ addMod("io.vram:canvas-fabric-${project.canvas_version}", rootProject.enable_canvas)
}
diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java
index 4fe893927..26d1c0830 100644
--- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java
+++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java
@@ -171,6 +171,23 @@ public class MixinLevelRenderer
ClientApi.RENDER_STATE.partialTickTime = MinecraftRenderWrapper.INSTANCE.getPartialTickTime();
ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, this.level);
+ if (ClientApi.RENDER_STATE.clientLevelWrapper instanceof ClientLevelWrapper)
+ {
+ ClientLevelWrapper wrapper = (ClientLevelWrapper) ClientApi.RENDER_STATE.clientLevelWrapper;
+
+ // Apply Immersive Portals compatibility only when IP is detected
+ if (com.seibel.distanthorizons.common.ImmersivePortalsCompat.isImmersivePortalsActive())
+ {
+ if (!wrapper.isDhLevelLoaded())
+ {
+ LOGGER.debug("IP detected - On-demand loading level " + wrapper.getDhIdentifier() + " during rendering");
+ ClientApi.INSTANCE.clientLevelLoadEvent(wrapper);
+ }
+ }
+
+ wrapper.markRendered();
+ }
+
#if MC_VER < MC_1_21_6
@@ -196,6 +213,11 @@ public class MixinLevelRenderer
ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(modelViewMatrix);
ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, this.level);
+ if (ClientApi.RENDER_STATE.clientLevelWrapper instanceof ClientLevelWrapper)
+ {
+ ((ClientLevelWrapper) ClientApi.RENDER_STATE.clientLevelWrapper).markRendered();
+ }
+
// only crash during development
if (ModInfo.IS_DEV_BUILD)
{
diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLightTexture.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLightTexture.java
index 203052ddc..ff954676c 100644
--- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLightTexture.java
+++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLightTexture.java
@@ -20,6 +20,7 @@
package com.seibel.distanthorizons.fabric.mixins.client;
import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper;
+import com.seibel.distanthorizons.core.api.internal.ClientApi;
import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper;
@@ -91,7 +92,12 @@ public class MixinLightTexture
return;
}
- IClientLevelWrapper clientLevel = mc.getWrappedClientLevel();
+ IClientLevelWrapper clientLevel = ClientApi.RENDER_STATE.clientLevelWrapper;
+ if (clientLevel == null)
+ {
+ clientLevel = mc.getWrappedClientLevel();
+ }
+
if (clientLevel == null)
{
return;
diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java
index 71f9e4a84..b51110c5b 100644
--- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java
+++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java
@@ -102,20 +102,31 @@ public abstract class MixinMinecraft
@Inject(at = @At("HEAD"), method = "updateLevelInEngines")
public void updateLevelInEngines(ClientLevel level, CallbackInfo ci)
{
- if (this.lastLevel != null && level != this.lastLevel)
+ // Skip normal level events when Immersive Portals is active
+ // IP suppresses these events and we use render-driven loading instead
+ if (!com.seibel.distanthorizons.common.ImmersivePortalsCompat.isImmersivePortalsActive())
{
- ClientApi.INSTANCE.clientLevelUnloadEvent(ClientLevelWrapper.getWrapper(this.lastLevel));
+ if (this.lastLevel != null && level != this.lastLevel)
+ {
+ ClientApi.INSTANCE.clientLevelUnloadEvent(ClientLevelWrapper.getWrapper(this.lastLevel));
+ }
+
+ if (level != null)
+ {
+ ClientApi.INSTANCE.clientLevelLoadEvent(ClientLevelWrapper.getWrapper(level, true));
+ }
}
-
- if (level != null)
- {
- ClientApi.INSTANCE.clientLevelLoadEvent(ClientLevelWrapper.getWrapper(level, true));
- }
-
+
this.lastLevel = level;
}
@Inject(at = @At("HEAD"), method = "close()V")
public void close(CallbackInfo ci) { SelfUpdater.onClose(); }
+ @Inject(at = @At("HEAD"), method = "tick")
+ private void onTick(CallbackInfo ci)
+ {
+ ClientLevelWrapper.tickCleanup();
+ }
+
}
diff --git a/versionProperties/1.16.5.properties b/versionProperties/1.16.5.properties
index c749e2131..a385e9199 100644
--- a/versionProperties/1.16.5.properties
+++ b/versionProperties/1.16.5.properties
@@ -25,7 +25,6 @@ fabric_api_version=0.42.0+1.16
sodium_version=mc1.16.5-0.2.0
iris_version=1.4.4+1.16.5
bclib_version=
- immersive_portals_version=
canvas_version=
# iris - needs 1.7.4+ to support the DH API
@@ -44,7 +43,6 @@ fabric_api_version=0.42.0+1.16
enable_iris=1
# not available via github, use curse.maven if necessary
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# Forge loader
diff --git a/versionProperties/1.17.1.properties b/versionProperties/1.17.1.properties
index 7414adc27..e9cedb8cc 100644
--- a/versionProperties/1.17.1.properties
+++ b/versionProperties/1.17.1.properties
@@ -25,7 +25,6 @@ fabric_api_version=0.46.1+1.17
sodium_version=mc1.17.1-0.3.4
iris_version=1.17.x-v1.2.7
bclib_version=0.5.5
- immersive_portals_version=
canvas_version=
# iris - needs 1.7.4+ to support the DH API
@@ -43,7 +42,6 @@ fabric_api_version=0.46.1+1.17
enable_sodium=1
enable_iris=0
enable_bclib=1
- enable_immersive_portals=0
enable_canvas=0
# Forge loader
diff --git a/versionProperties/1.18.2.properties b/versionProperties/1.18.2.properties
index d745c474f..605304d19 100644
--- a/versionProperties/1.18.2.properties
+++ b/versionProperties/1.18.2.properties
@@ -26,7 +26,6 @@ fabric_api_version=0.76.0+1.18.2
sodium_version=mc1.18.2-0.4.1
iris_version=1.6.10+1.18.2
bclib_version=1.4.6
- immersive_portals_version=v1.4.11-1.18
canvas_version=mc118:1.0.2616
# iris - needs 1.7.4+ to support the DH API
@@ -44,7 +43,6 @@ fabric_api_version=0.76.0+1.18.2
enable_lithium=0
enable_iris=1
enable_bclib=1
- enable_immersive_portals=0
enable_canvas=0
quilt_loader_version=0.19.1
diff --git a/versionProperties/1.19.2.properties b/versionProperties/1.19.2.properties
index e50c5e617..6c63fa21d 100644
--- a/versionProperties/1.19.2.properties
+++ b/versionProperties/1.19.2.properties
@@ -24,7 +24,6 @@ fabric_api_version=0.76.1+1.19.2
sodium_version=mc1.19.2-0.4.4
iris_version=1.6.10+1.19.2
bclib_version=2.1.6
- immersive_portals_version=
canvas_version=mc119-1.0.2480
# iris - needs 1.7.4+ to support the DH API
@@ -42,7 +41,6 @@ fabric_api_version=0.76.1+1.19.2
enable_lithium=0
enable_iris=1
enable_bclib=1
- enable_immersive_portals=0
enable_canvas=0
# Forge loader
diff --git a/versionProperties/1.19.4.properties b/versionProperties/1.19.4.properties
index 3945a43f9..aba05c0ef 100644
--- a/versionProperties/1.19.4.properties
+++ b/versionProperties/1.19.4.properties
@@ -23,7 +23,6 @@ fabric_api_version=0.87.1+1.19.4
sodium_version=mc1.19.4-0.4.10
iris_version=1.6.10+1.19.4
bclib_version=2.3.3
- immersive_portals_version=
canvas_version=
# iris - needs 1.7.4+ to support the DH API
@@ -41,7 +40,6 @@ fabric_api_version=0.87.1+1.19.4
enable_lithium=0
enable_iris=1
enable_bclib=1
- enable_immersive_portals=0
enable_canvas=0
# Forge loader
diff --git a/versionProperties/1.20.1.properties b/versionProperties/1.20.1.properties
index af43eb93b..1fb4fd4d6 100644
--- a/versionProperties/1.20.1.properties
+++ b/versionProperties/1.20.1.properties
@@ -23,7 +23,6 @@ fabric_api_version=0.92.6+1.20.1
sodium_version=mc1.20.1-0.5.3
iris_version=1.6.10+1.20.1
bclib_version=3.0.13
- immersive_portals_version=
canvas_version=
# iris - needs 1.7.4+ to support the DH API
@@ -41,7 +40,6 @@ fabric_api_version=0.92.6+1.20.1
enable_lithium=0
enable_iris=1
enable_bclib=1
- enable_immersive_portals=0
enable_canvas=0
# Forge loader
diff --git a/versionProperties/1.20.2.properties b/versionProperties/1.20.2.properties
index 1adff5e3b..baca60aa7 100644
--- a/versionProperties/1.20.2.properties
+++ b/versionProperties/1.20.2.properties
@@ -23,7 +23,6 @@ fabric_api_version=0.90.4+1.20.2
sodium_version=mc1.20.2-0.5.3
iris_version=1.6.10+1.20.2
bclib_version=3.0.13
- immersive_portals_version=
canvas_version=
# iris - needs 1.7.4+ to support the DH API
@@ -41,7 +40,6 @@ fabric_api_version=0.90.4+1.20.2
enable_lithium=0
enable_iris=1
enable_bclib=1
- enable_immersive_portals=0
enable_canvas=0
# Forge loader
diff --git a/versionProperties/1.20.4.properties b/versionProperties/1.20.4.properties
index 7d74fe957..04f58350c 100644
--- a/versionProperties/1.20.4.properties
+++ b/versionProperties/1.20.4.properties
@@ -24,7 +24,6 @@ fabric_api_version=0.91.2+1.20.4
sodium_version=mc1.20.3-0.5.4
iris_version=1.6.13+1.20.4
bclib_version=
- immersive_portals_version=
canvas_version=
# iris - needs 1.7.4+ to support the DH API
@@ -42,7 +41,6 @@ fabric_api_version=0.91.2+1.20.4
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# Forge loader
diff --git a/versionProperties/1.20.6.properties b/versionProperties/1.20.6.properties
index 5693b1b3a..ae84cfcf9 100644
--- a/versionProperties/1.20.6.properties
+++ b/versionProperties/1.20.6.properties
@@ -24,7 +24,6 @@ fabric_api_version=0.97.8+1.20.6
sodium_version=mc1.20.6-0.5.8
iris_version=1.7.0+1.20.6
bclib_version=
- immersive_portals_version=
canvas_version=
# iris - needs 1.7.4+ to support the DH API
@@ -42,7 +41,6 @@ fabric_api_version=0.97.8+1.20.6
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# NeoForge loader
diff --git a/versionProperties/1.21.1.properties b/versionProperties/1.21.1.properties
index 9e8134115..939c9c59b 100644
--- a/versionProperties/1.21.1.properties
+++ b/versionProperties/1.21.1.properties
@@ -24,7 +24,6 @@ fabric_api_version=0.116.11+1.21.1
sodium_version=mc1.21.1-0.6.2-fabric
iris_version=1.8.1+1.21.1-fabric
bclib_version=
- immersive_portals_version=
canvas_version=
# iris - needs 1.7.4+ to support the DH API
@@ -42,7 +41,6 @@ fabric_api_version=0.116.11+1.21.1
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# NeoForge loader
diff --git a/versionProperties/1.21.10.properties b/versionProperties/1.21.10.properties
index 759d1675d..6f50c02dc 100644
--- a/versionProperties/1.21.10.properties
+++ b/versionProperties/1.21.10.properties
@@ -23,7 +23,6 @@ fabric_api_version=0.138.4+1.21.10
sodium_version=mc1.21.10-0.7.2-fabric
iris_version=1.9.6+1.21.10-fabric
bclib_version=
- immersive_portals_version=
canvas_version=
fabric_incompatibility_list={ }
@@ -40,7 +39,6 @@ fabric_api_version=0.138.4+1.21.10
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# NeoForge loader
diff --git a/versionProperties/1.21.11.properties b/versionProperties/1.21.11.properties
index 5e73642ed..fc4d147dd 100644
--- a/versionProperties/1.21.11.properties
+++ b/versionProperties/1.21.11.properties
@@ -23,7 +23,6 @@ fabric_api_version=0.139.4+1.21.11
sodium_version=mc1.21.11-0.8.0-fabric
iris_version=1.10.0+1.21.11-fabric
bclib_version=
- immersive_portals_version=
canvas_version=
fabric_incompatibility_list={ }
@@ -40,7 +39,6 @@ fabric_api_version=0.139.4+1.21.11
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# NeoForge loader
diff --git a/versionProperties/1.21.3.properties b/versionProperties/1.21.3.properties
index b0c4e751c..b04d67922 100644
--- a/versionProperties/1.21.3.properties
+++ b/versionProperties/1.21.3.properties
@@ -24,7 +24,6 @@ fabric_api_version=0.110.0+1.21.3
sodium_version=mc1.21.3-0.6.0-fabric
iris_version=1.8.0+1.21.3-fabric
bclib_version=
- immersive_portals_version=
canvas_version=
# fabric-api 0.110.0 fixed a bug in MC 1.21.3 with the rendering API DH relied on
@@ -42,7 +41,6 @@ fabric_api_version=0.110.0+1.21.3
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# NeoForge loader
diff --git a/versionProperties/1.21.4.properties b/versionProperties/1.21.4.properties
index 417d4c8c8..d1b1b4da6 100644
--- a/versionProperties/1.21.4.properties
+++ b/versionProperties/1.21.4.properties
@@ -24,7 +24,6 @@ fabric_api_version=0.110.5+1.21.4
sodium_version=mc1.21.4-0.6.2-fabric
iris_version=1.8.2+1.21.4-fabric
bclib_version=
- immersive_portals_version=
canvas_version=
fabric_incompatibility_list={ }
@@ -41,7 +40,6 @@ fabric_api_version=0.110.5+1.21.4
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# NeoForge loader
diff --git a/versionProperties/1.21.5.properties b/versionProperties/1.21.5.properties
index 2d3308215..2532e2aa7 100644
--- a/versionProperties/1.21.5.properties
+++ b/versionProperties/1.21.5.properties
@@ -23,7 +23,6 @@ fabric_api_version=0.119.5+1.21.5
sodium_version=mc1.21.5-0.6.11-fabric
iris_version=1.8.10+1.21.5-fabric
bclib_version=
- immersive_portals_version=
canvas_version=
# Iris - some versions of 1.8.11 nightly builds may not work, but the ones after 2025-03-30 should
@@ -41,7 +40,6 @@ fabric_api_version=0.119.5+1.21.5
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# NeoForge loader
diff --git a/versionProperties/1.21.6.properties b/versionProperties/1.21.6.properties
index 45692e302..8a1ff688e 100644
--- a/versionProperties/1.21.6.properties
+++ b/versionProperties/1.21.6.properties
@@ -23,7 +23,6 @@ fabric_api_version=0.127.0+1.21.6
sodium_version=mc1.21.6-0.6.13-fabric
iris_version=1.9.0+1.21.6-fabric
bclib_version=
- immersive_portals_version=
canvas_version=
fabric_incompatibility_list={ }
@@ -40,7 +39,6 @@ fabric_api_version=0.127.0+1.21.6
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# NeoForge loader
diff --git a/versionProperties/1.21.8.properties b/versionProperties/1.21.8.properties
index 6330dff60..863721f6e 100644
--- a/versionProperties/1.21.8.properties
+++ b/versionProperties/1.21.8.properties
@@ -23,7 +23,6 @@ fabric_api_version=0.133.4+1.21.8
sodium_version=mc1.21.6-0.6.13-fabric
iris_version=1.9.1+1.21.7-fabric
bclib_version=
- immersive_portals_version=
canvas_version=
fabric_incompatibility_list={ }
@@ -40,7 +39,6 @@ fabric_api_version=0.133.4+1.21.8
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# NeoForge loader
diff --git a/versionProperties/1.21.9.properties b/versionProperties/1.21.9.properties
index 82ff98a6a..7b66c84e9 100644
--- a/versionProperties/1.21.9.properties
+++ b/versionProperties/1.21.9.properties
@@ -23,7 +23,6 @@ fabric_api_version=0.134.0+1.21.9
sodium_version=mc1.21.10-0.7.2-fabric
iris_version=1.9.3+1.21.9-fabric
bclib_version=
- immersive_portals_version=
canvas_version=
fabric_incompatibility_list={ }
@@ -40,7 +39,6 @@ fabric_api_version=0.134.0+1.21.9
enable_lithium=0
enable_iris=1
enable_bclib=0
- enable_immersive_portals=0
enable_canvas=0
# NeoForge loader