re-add MC 1.21.9 support

This commit is contained in:
James Seibel
2025-10-12 15:04:31 -05:00
parent d158a89592
commit 352d0f4759
25 changed files with 106 additions and 43 deletions
+1 -1
View File
@@ -36,7 +36,7 @@ build:
parallel: parallel:
matrix: matrix:
- MC_VER: [ - MC_VER: [
"1.21.10", "1.21.8", "1.21.6", "1.21.5", "1.21.4", "1.21.3", "1.21.1", "1.21.10", "1.21.9", "1.21.8", "1.21.6", "1.21.5", "1.21.4", "1.21.3", "1.21.1",
"1.20.6", "1.20.4", "1.20.2", "1.20.1", "1.20.6", "1.20.4", "1.20.2", "1.20.1",
"1.19.4", "1.19.2", "1.19.4", "1.19.2",
"1.18.2", "1.18.2",
@@ -86,7 +86,7 @@ public abstract class AbstractModInitializer
LOGGER.info(ModInfo.READABLE_NAME + " client Initialized."); LOGGER.info(ModInfo.READABLE_NAME + " client Initialized.");
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
// debug screen rendering handled via a mixin // debug screen rendering handled via a mixin
#else #else
DhDebugScreenEntry.register(); DhDebugScreenEntry.register();
@@ -79,7 +79,9 @@ public class VersionConstants implements IVersionConstants
#elif MC_VER == MC_1_21_8 #elif MC_VER == MC_1_21_8
return "1.21.8"; return "1.21.8";
#elif MC_VER == MC_1_21_10 #elif MC_VER == MC_1_21_9
return "1.21.9";
#elif MC_VER == MC_1_21_9
return "1.21.10"; return "1.21.10";
#else #else
ERROR MC version constant missing ERROR MC version constant missing
@@ -920,7 +920,7 @@ public class ClassicConfigGUI
@Override @Override
#if MC_VER < MC_1_20_1 #if MC_VER < MC_1_20_1
public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta)
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
public void render(GuiGraphics matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) public void render(GuiGraphics matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta)
#else #else
public void renderContent(GuiGraphics matrices, int mouseX, int mouseY, boolean hovered, float tickDelta) public void renderContent(GuiGraphics matrices, int mouseX, int mouseY, boolean hovered, float tickDelta)
@@ -928,7 +928,7 @@ public class ClassicConfigGUI
{ {
try try
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
#else #else
int y = this.getY(); // TODO why is the Y value being set during render? int y = this.getY(); // TODO why is the Y value being set during render?
#endif #endif
@@ -1,6 +1,6 @@
package com.seibel.distanthorizons.common.wrappers.gui; package com.seibel.distanthorizons.common.wrappers.gui;
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
// not supported for older MC versions // not supported for older MC versions
#else #else
import com.seibel.distanthorizons.core.logging.f3.F3Screen; import com.seibel.distanthorizons.core.logging.f3.F3Screen;
@@ -19,7 +19,7 @@ import net.minecraft.world.level.Level;
import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunk;
#endif #endif
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
// not supported for older MC versions // not supported for older MC versions
public class DhDebugScreenEntry public class DhDebugScreenEntry
{} {}
@@ -39,7 +39,7 @@ public class MinecraftScreen
protected ConfigScreenRenderer(Screen parent, AbstractScreen screen, String translationName) protected ConfigScreenRenderer(Screen parent, AbstractScreen screen, String translationName)
{ {
super(translate(translationName)); super(translate(translationName));
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
screen.minecraftWindow = Minecraft.getInstance().getWindow().getWindow(); screen.minecraftWindow = Minecraft.getInstance().getWindow().getWindow();
#else #else
screen.minecraftWindow = Minecraft.getInstance().getWindow().handle(); screen.minecraftWindow = Minecraft.getInstance().getWindow().handle();
@@ -262,7 +262,7 @@ public class ChangelogScreen extends DhScreen
@Override @Override
public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta)
{ GuiComponent.drawString(matrices, textRenderer, text, 12, y + 5, 0xFFFFFF); } { GuiComponent.drawString(matrices, textRenderer, text, 12, y + 5, 0xFFFFFF); }
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
@Override @Override
public void render(GuiGraphics matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) public void render(GuiGraphics matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta)
{ matrices.drawString(textRenderer, this.text, 12, y + 5, 0xFFFFFF); } { matrices.drawString(textRenderer, this.text, 12, y + 5, 0xFFFFFF); }
@@ -315,7 +315,7 @@ public class MinecraftClientWrapper implements IMinecraftClientWrapper, IMinecra
#if MC_VER < MC_1_19_2 #if MC_VER < MC_1_19_2
player.sendMessage(new TextComponent(string), getPlayer().getUUID()); player.sendMessage(new TextComponent(string), getPlayer().getUUID());
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
player.displayClientMessage(net.minecraft.network.chat.Component.translatable(string), /*isOverlay*/false); player.displayClientMessage(net.minecraft.network.chat.Component.translatable(string), /*isOverlay*/false);
#else #else
@@ -401,7 +401,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper
@Override @Override
public int getTargetFrameBufferViewportWidth() public int getTargetFrameBufferViewportWidth()
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
return this.getRenderTarget().viewWidth; return this.getRenderTarget().viewWidth;
#else #else
return this.getRenderTarget().width; return this.getRenderTarget().width;
@@ -411,7 +411,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper
@Override @Override
public int getTargetFrameBufferViewportHeight() public int getTargetFrameBufferViewportHeight()
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
return this.getRenderTarget().viewHeight; return this.getRenderTarget().viewHeight;
#else #else
return this.getRenderTarget().height; return this.getRenderTarget().height;
@@ -113,7 +113,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv
#if MC_VER < MC_1_21_5 #if MC_VER < MC_1_21_5
private static final TicketType<ChunkPos> DH_SERVER_GEN_TICKET = TicketType.create("dh_server_gen_ticket", Comparator.comparingLong(ChunkPos::toLong)); private static final TicketType<ChunkPos> DH_SERVER_GEN_TICKET = TicketType.create("dh_server_gen_ticket", Comparator.comparingLong(ChunkPos::toLong));
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
private static final TicketType DH_SERVER_GEN_TICKET = new TicketType(/* timeout, 0 = disabled*/0L, /* persist */ false, TicketType.TicketUse.LOADING); private static final TicketType DH_SERVER_GEN_TICKET = new TicketType(/* timeout, 0 = disabled*/0L, /* persist */ false, TicketType.TicketUse.LOADING);
#else #else
private static final TicketType DH_SERVER_GEN_TICKET = new TicketType(/* timeout, 0 = disabled*/0L, /* flags */0); private static final TicketType DH_SERVER_GEN_TICKET = new TicketType(/* timeout, 0 = disabled*/0L, /* flags */0);
@@ -744,7 +744,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv
return new ProtoChunk(chunkPos, UpgradeData.EMPTY, level, level.registryAccess().registryOrThrow(Registries.BIOME), null); return new ProtoChunk(chunkPos, UpgradeData.EMPTY, level, level.registryAccess().registryOrThrow(Registries.BIOME), null);
#elif MC_VER < MC_1_21_3 #elif MC_VER < MC_1_21_3
return new ProtoChunk(chunkPos, UpgradeData.EMPTY, level, level.registryAccess().registryOrThrow(Registries.BIOME), null); return new ProtoChunk(chunkPos, UpgradeData.EMPTY, level, level.registryAccess().registryOrThrow(Registries.BIOME), null);
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
return new ProtoChunk(chunkPos, UpgradeData.EMPTY, level, level.registryAccess().lookupOrThrow(Registries.BIOME), null); return new ProtoChunk(chunkPos, UpgradeData.EMPTY, level, level.registryAccess().lookupOrThrow(Registries.BIOME), null);
#else #else
return new ProtoChunk(chunkPos, UpgradeData.EMPTY, level, PalettedContainerFactory.create(level.registryAccess()), null); return new ProtoChunk(chunkPos, UpgradeData.EMPTY, level, PalettedContainerFactory.create(level.registryAccess()), null);
@@ -94,7 +94,7 @@ public class ChunkFileReader
private static final AtomicBoolean ZERO_CHUNK_POS_ERROR_LOGGED_REF = new AtomicBoolean(false); private static final AtomicBoolean ZERO_CHUNK_POS_ERROR_LOGGED_REF = new AtomicBoolean(false);
#if MC_VER >= MC_1_21_10 #if MC_VER >= MC_1_21_9
// BLOCK_STATE_CODEC can no longer be statically created since // BLOCK_STATE_CODEC can no longer be statically created since
// it needs a level reference // it needs a level reference
#elif MC_VER >= MC_1_19_2 #elif MC_VER >= MC_1_19_2
@@ -263,7 +263,7 @@ public class ChunkFileReader
} }
private static LevelChunkSection[] readSections(LevelAccessor level, ChunkPos chunkPos, CompoundTag chunkData) private static LevelChunkSection[] readSections(LevelAccessor level, ChunkPos chunkPos, CompoundTag chunkData)
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
// BLOCK_STATE_CODEC is created statically // BLOCK_STATE_CODEC is created statically
// TODO clean up this code separation // TODO clean up this code separation
#else #else
@@ -288,7 +288,7 @@ public class ChunkFileReader
#elif MC_VER < MC_1_21_3 #elif MC_VER < MC_1_21_3
Codec<PalettedContainer<Holder<Biome>>> biomeCodec = PalettedContainer.codecRW( Codec<PalettedContainer<Holder<Biome>>> biomeCodec = PalettedContainer.codecRW(
biomes.asHolderIdMap(), biomes.holderByNameCodec(), PalettedContainer.Strategy.SECTION_BIOMES, biomes.getHolderOrThrow(Biomes.PLAINS)); biomes.asHolderIdMap(), biomes.holderByNameCodec(), PalettedContainer.Strategy.SECTION_BIOMES, biomes.getHolderOrThrow(Biomes.PLAINS));
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
Codec<PalettedContainer<Holder<Biome>>> biomeCodec = PalettedContainer.codecRW( Codec<PalettedContainer<Holder<Biome>>> biomeCodec = PalettedContainer.codecRW(
biomes.asHolderIdMap(), biomes.holderByNameCodec(), PalettedContainer.Strategy.SECTION_BIOMES, biomes.getOrThrow(Biomes.PLAINS)); biomes.asHolderIdMap(), biomes.holderByNameCodec(), PalettedContainer.Strategy.SECTION_BIOMES, biomes.getOrThrow(Biomes.PLAINS));
#else #else
@@ -363,7 +363,7 @@ public class ChunkFileReader
} }
else else
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
blockStateContainer = new PalettedContainer<BlockState>(Block.BLOCK_STATE_REGISTRY, Blocks.AIR.defaultBlockState(), PalettedContainer.Strategy.SECTION_STATES); blockStateContainer = new PalettedContainer<BlockState>(Block.BLOCK_STATE_REGISTRY, Blocks.AIR.defaultBlockState(), PalettedContainer.Strategy.SECTION_STATES);
#else #else
blockStateContainer = PalettedContainerFactory.create(level.registryAccess()).createForBlockStates(); blockStateContainer = PalettedContainerFactory.create(level.registryAccess()).createForBlockStates();
@@ -403,7 +403,7 @@ public class ChunkFileReader
biomeContainer = new PalettedContainer<Holder<Biome>>( biomeContainer = new PalettedContainer<Holder<Biome>>(
biomes.asHolderIdMap(), biomes.asHolderIdMap(),
biomes.getHolderOrThrow(Biomes.PLAINS), PalettedContainer.Strategy.SECTION_BIOMES); biomes.getHolderOrThrow(Biomes.PLAINS), PalettedContainer.Strategy.SECTION_BIOMES);
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
biomeContainer = new PalettedContainer<Holder<Biome>>(biomes.asHolderIdMap(), biomeContainer = new PalettedContainer<Holder<Biome>>(biomes.asHolderIdMap(),
biomes.getOrThrow(Biomes.PLAINS), biomes.getOrThrow(Biomes.PLAINS),
PalettedContainer.Strategy.SECTION_BIOMES); PalettedContainer.Strategy.SECTION_BIOMES);
+3 -1
View File
@@ -19,7 +19,9 @@ loom {
"-Dminecraft.api.session.host=https://nope.invalid", "-Dminecraft.api.session.host=https://nope.invalid",
"-Dminecraft.api.services.host=https://nope.invalid", "-Dminecraft.api.services.host=https://nope.invalid",
// https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels // https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
"-Dio.netty.leakDetection.level=advanced" "-Dio.netty.leakDetection.level=advanced",
"-XX:+UseZGC",
"-XX:+ZGenerational"
) )
programArgs("--username", "Dev") programArgs("--username", "Dev")
} }
@@ -60,7 +60,7 @@ import java.nio.FloatBuffer;
import java.util.HashSet; import java.util.HashSet;
import java.util.concurrent.AbstractExecutorService; import java.util.concurrent.AbstractExecutorService;
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
#endif #endif
@@ -224,7 +224,7 @@ public class FabricClientProxy implements AbstractModInitializer.IEventProxy
//==============// //==============//
// TODO wait for fabric to re-add their rendering API // TODO wait for fabric to re-add their rendering API
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
WorldRenderEvents.AFTER_SETUP.register((renderContext) -> WorldRenderEvents.AFTER_SETUP.register((renderContext) ->
{ {
ClientApi.RENDER_STATE.mcProjectionMatrix = McObjectConverter.Convert(renderContext.projectionMatrix()); ClientApi.RENDER_STATE.mcProjectionMatrix = McObjectConverter.Convert(renderContext.projectionMatrix());
@@ -19,7 +19,7 @@
package com.seibel.distanthorizons.fabric.mixins.client; package com.seibel.distanthorizons.fabric.mixins.client;
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@@ -12,7 +12,7 @@ import java.util.List;
@Mixin(DebugScreenOverlay.class) @Mixin(DebugScreenOverlay.class)
public class MixinDebugScreenOverlay public class MixinDebugScreenOverlay
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
@Inject(method = "getSystemInformation", at = @At("RETURN")) @Inject(method = "getSystemInformation", at = @At("RETURN"))
private void addCustomF3(CallbackInfoReturnable<List<String>> cir) private void addCustomF3(CallbackInfoReturnable<List<String>> cir)
{ {
@@ -30,7 +30,7 @@ import net.minecraft.client.renderer.RenderType;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import org.joml.Matrix4f; import org.joml.Matrix4f;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
import com.mojang.blaze3d.buffers.GpuBufferSlice; import com.mojang.blaze3d.buffers.GpuBufferSlice;
import com.mojang.blaze3d.framegraph.FrameGraphBuilder; import com.mojang.blaze3d.framegraph.FrameGraphBuilder;
import com.mojang.blaze3d.resource.GraphicsResourceAllocator; import com.mojang.blaze3d.resource.GraphicsResourceAllocator;
@@ -116,7 +116,7 @@ public class MixinLevelRenderer
method = "Lnet/minecraft/client/renderer/LevelRenderer;renderSectionLayer(Lnet/minecraft/client/renderer/RenderType;DDDLorg/joml/Matrix4f;Lorg/joml/Matrix4f;)V", method = "Lnet/minecraft/client/renderer/LevelRenderer;renderSectionLayer(Lnet/minecraft/client/renderer/RenderType;DDDLorg/joml/Matrix4f;Lorg/joml/Matrix4f;)V",
cancellable = true) cancellable = true)
private void renderChunkLayer(RenderType renderType, double x, double y, double z, Matrix4f projectionMatrix, Matrix4f frustumMatrix, CallbackInfo callback) private void renderChunkLayer(RenderType renderType, double x, double y, double z, Matrix4f projectionMatrix, Matrix4f frustumMatrix, CallbackInfo callback)
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
@Inject(at = @At("HEAD"), method = "prepareChunkRenders", cancellable = true) @Inject(at = @At("HEAD"), method = "prepareChunkRenders", cancellable = true)
private void prepareChunkRenders(Matrix4fc projectionMatrix, double d, double e, double f, CallbackInfoReturnable<ChunkSectionsToRender> callback) private void prepareChunkRenders(Matrix4fc projectionMatrix, double d, double e, double f, CallbackInfoReturnable<ChunkSectionsToRender> callback)
#else #else
@@ -141,7 +141,7 @@ public class MixinLevelRenderer
// get the matrices directly from MC // get the matrices directly from MC
ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(modelViewMatrixStack.last().pose()); ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(modelViewMatrixStack.last().pose());
ClientApi.RENDER_STATE.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix); ClientApi.RENDER_STATE.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix);
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
// MC combined the model view and projection matricies // MC combined the model view and projection matricies
ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(projectionMatrix); ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(projectionMatrix);
ClientApi.RENDER_STATE.mcProjectionMatrix = new Mat4f(); ClientApi.RENDER_STATE.mcProjectionMatrix = new Mat4f();
@@ -169,7 +169,7 @@ public class MixinLevelRenderer
{ {
ClientApi.INSTANCE.renderDeferredLodsForShaders(); ClientApi.INSTANCE.renderDeferredLodsForShaders();
} }
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
// rendering handled via Fabric Api render event // rendering handled via Fabric Api render event
#else #else
// handled here and in MixinChunkSectionsToRender // handled here and in MixinChunkSectionsToRender
@@ -178,7 +178,7 @@ public class MixinLevelRenderer
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
// rendering handled via Fabric Api render event // rendering handled via Fabric Api render event
#else #else
@Inject(at = @At("HEAD"), method = "prepareChunkRenders") @Inject(at = @At("HEAD"), method = "prepareChunkRenders")
+1 -1
View File
@@ -54,7 +54,7 @@ versionStr=
# This defines what MC version Intellij will use for the preprocessor # This defines what MC version Intellij will use for the preprocessor
# and what version is used automatically by build and run commands # and what version is used automatically by build and run commands
mcVer=1.21.10 mcVer=1.21.9
# Defines the maximum amount of memory Minecraft is allowed when run in a development environment # Defines the maximum amount of memory Minecraft is allowed when run in a development environment
#minecraftMemoryJavaArg="-Xmx4G" #minecraftMemoryJavaArg="-Xmx4G"
@@ -246,7 +246,7 @@ public class NeoforgeClientProxy implements AbstractModInitializer.IEventProxy
@SubscribeEvent @SubscribeEvent
public void afterLevelEntityRenderEvent(RenderLevelStageEvent.AfterEntities event) public void afterLevelEntityRenderEvent(RenderLevelStageEvent.AfterEntities event)
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, (ClientLevel)event.getLevel()); ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, (ClientLevel)event.getLevel());
#else #else
ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, event.getLevelRenderer().level); ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, event.getLevelRenderer().level);
@@ -259,7 +259,7 @@ public class NeoforgeClientProxy implements AbstractModInitializer.IEventProxy
@SubscribeEvent @SubscribeEvent
public void afterLevelTranslucentRenderEvent(RenderLevelStageEvent.AfterTranslucentBlocks event) public void afterLevelTranslucentRenderEvent(RenderLevelStageEvent.AfterTranslucentBlocks event)
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, (ClientLevel)event.getLevel()); ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, (ClientLevel)event.getLevel());
#else #else
ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, event.getLevelRenderer().level); ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, event.getLevelRenderer().level);
@@ -271,7 +271,7 @@ public class NeoforgeClientProxy implements AbstractModInitializer.IEventProxy
@SubscribeEvent @SubscribeEvent
public void afterLevelRenderEvent(RenderLevelStageEvent.AfterLevel event) public void afterLevelRenderEvent(RenderLevelStageEvent.AfterLevel event)
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, (ClientLevel)event.getLevel()); ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, (ClientLevel)event.getLevel());
#else #else
ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, event.getLevelRenderer().level); ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, event.getLevelRenderer().level);
@@ -152,7 +152,7 @@ public class NeoforgeServerProxy implements AbstractModInitializer.IEventProxy
private static ServerLevelWrapper getServerLevelWrapper(ServerLevel level) { return ServerLevelWrapper.getWrapper(level); } private static ServerLevelWrapper getServerLevelWrapper(ServerLevel level) { return ServerLevelWrapper.getWrapper(level); }
private static ServerLevelWrapper getServerLevelWrapper(ResourceKey<Level> resourceKey, PlayerEvent event) private static ServerLevelWrapper getServerLevelWrapper(ResourceKey<Level> resourceKey, PlayerEvent event)
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
//noinspection DataFlowIssue (possible NPE after getServer()) //noinspection DataFlowIssue (possible NPE after getServer())
return getServerLevelWrapper(event.getEntity().getServer().getLevel(resourceKey)); return getServerLevelWrapper(event.getEntity().getServer().getLevel(resourceKey));
#else #else
@@ -1,6 +1,6 @@
package com.seibel.distanthorizons.neoforge.mixins.client; package com.seibel.distanthorizons.neoforge.mixins.client;
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
import com.seibel.distanthorizons.core.logging.f3.F3Screen; import com.seibel.distanthorizons.core.logging.f3.F3Screen;
import net.minecraft.client.gui.components.DebugScreenOverlay; import net.minecraft.client.gui.components.DebugScreenOverlay;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@@ -18,7 +18,7 @@ import net.minecraft.client.gui.components.DebugScreenOverlay;
public class MixinDebugScreenOverlay public class MixinDebugScreenOverlay
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
@Inject(method = "getSystemInformation", at = @At("RETURN")) @Inject(method = "getSystemInformation", at = @At("RETURN"))
private void addCustomF3(CallbackInfoReturnable<List<String>> cir) private void addCustomF3(CallbackInfoReturnable<List<String>> cir)
{ {
@@ -83,7 +83,7 @@ public class MixinLevelRenderer
#if MC_VER < MC_1_21_6 #if MC_VER < MC_1_21_6
@Inject(at = @At("HEAD"), method = "renderSectionLayer") @Inject(at = @At("HEAD"), method = "renderSectionLayer")
private void renderChunkLayer(RenderType renderType, double x, double y, double z, Matrix4f modelViewMatrix, Matrix4f projectionMatrix, CallbackInfo callback) private void renderChunkLayer(RenderType renderType, double x, double y, double z, Matrix4f modelViewMatrix, Matrix4f projectionMatrix, CallbackInfo callback)
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
@Inject(at = @At("HEAD"), method = "renderLevel") @Inject(at = @At("HEAD"), method = "renderLevel")
private void onRenderLevel( private void onRenderLevel(
GraphicsResourceAllocator resourceAllocator, DeltaTracker deltaTracker, GraphicsResourceAllocator resourceAllocator, DeltaTracker deltaTracker,
@@ -38,7 +38,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.mojang.blaze3d.platform.NativeImage; import com.mojang.blaze3d.platform.NativeImage;
#elif MC_VER < MC_1_21_5 #elif MC_VER < MC_1_21_5
import com.mojang.blaze3d.pipeline.TextureTarget; import com.mojang.blaze3d.pipeline.TextureTarget;
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
import com.mojang.blaze3d.opengl.GlTexture; import com.mojang.blaze3d.opengl.GlTexture;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.textures.GpuTexture; import com.mojang.blaze3d.textures.GpuTexture;
@@ -82,7 +82,7 @@ public class MixinLightTexture
renderWrapper.updateLightmap(this.lightPixels, clientLevel); renderWrapper.updateLightmap(this.lightPixels, clientLevel);
#elif MC_VER < MC_1_21_5 #elif MC_VER < MC_1_21_5
renderWrapper.setLightmapId(this.target.getColorTextureId(), clientLevel); renderWrapper.setLightmapId(this.target.getColorTextureId(), clientLevel);
#elif MC_VER < MC_1_21_10 #elif MC_VER < MC_1_21_9
GlTexture glTexture = (GlTexture) this.texture; GlTexture glTexture = (GlTexture) this.texture;
renderWrapper.setLightmapId(glTexture.glId(), clientLevel); renderWrapper.setLightmapId(glTexture.glId(), clientLevel);
#else #else
@@ -5,7 +5,7 @@ import com.seibel.distanthorizons.core.logging.DhLoggerBuilder;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
#else #else
import com.mojang.blaze3d.opengl.GlTexture; import com.mojang.blaze3d.opengl.GlTexture;
import com.mojang.blaze3d.textures.GpuTexture; import com.mojang.blaze3d.textures.GpuTexture;
@@ -26,7 +26,7 @@ public class NeoforgeMinecraftRenderWrapper extends MinecraftRenderWrapper
@Override @Override
public int getDepthTextureId() public int getDepthTextureId()
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
// no special handling required, // no special handling required,
// both neo/fabric uses the same back end objects // both neo/fabric uses the same back end objects
return super.getDepthTextureId(); return super.getDepthTextureId();
@@ -53,7 +53,7 @@ public class NeoforgeMinecraftRenderWrapper extends MinecraftRenderWrapper
@Override @Override
public int getColorTextureId() public int getColorTextureId()
{ {
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
// no special handling required, // no special handling required,
// both neo/fabric uses the same back end objects // both neo/fabric uses the same back end objects
return super.getColorTextureId(); return super.getColorTextureId();
@@ -1,6 +1,6 @@
package com.seibel.distanthorizons.neoforge.wrappers; package com.seibel.distanthorizons.neoforge.wrappers;
#if MC_VER < MC_1_21_10 #if MC_VER < MC_1_21_9
public class NeoforgeTextureUnwrapper public class NeoforgeTextureUnwrapper
{ /* not needed for older MC versions */ } { /* not needed for older MC versions */ }
#else #else
+59
View File
@@ -0,0 +1,59 @@
# 1.21.9 version
java_version=21
minecraft_version=1.21.9
parchment_version=1.21:2024.07.28
compatible_minecraft_versions=["1.21.9"]
accessWidenerVersion=1_21_10
builds_for=fabric,neoforge
# forge is broken due to gradle/build script issues
# Netty
netty_version=4.1.97.Final
# Fabric loader
fabric_loader_version=0.17.3
fabric_api_version=0.134.0+1.21.9
modmenu_version=16.0.0-rc.1
starlight_version_fabric=
phosphor_version_fabric=
lithium_version=
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={ }
fabric_recommend_list={}
# Fabric mod run
# 0 = Don't enable and don't run
# 1 = Can be referenced in code but doesn't run
# 2 = Can be referenced in code and runs in client
enable_starlight=0
enable_phosphor=0
enable_sodium=1
enable_lithium=0
enable_iris=1
enable_bclib=0
enable_immersive_portals=0
enable_canvas=0
# (Neo)Forge loader
forge_version=
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=
terraforged_version=
# (Neo)Forge mod run
# 0 = Don't enable and don't run
# 1 = Can be referenced in code but doesn't run
# 2 = Can be referenced in code and runs in client
enable_starlight_forge=0
enable_terraforged=0
enable_terrafirmacraft=0