add neo 1.21.9 support

This commit is contained in:
James Seibel
2025-10-02 07:37:54 -05:00
parent 26428ff905
commit 15dda30050
19 changed files with 338 additions and 90 deletions
@@ -43,7 +43,6 @@ import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientChunkEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.fabricmc.fabric.api.event.player.AttackBlockCallback;
import net.fabricmc.fabric.api.event.player.UseBlockCallback;
import net.minecraft.client.Minecraft;
@@ -63,6 +62,10 @@ import java.util.HashSet;
import java.util.concurrent.AbstractExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
#if MC_VER < MC_1_21_9
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
#endif
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.level.chunk.ChunkAccess;
@@ -103,6 +106,14 @@ public class FabricClientProxy implements AbstractModInitializer.IEventProxy
LOGGER.info("Registering Fabric Client Events");
#if MC_VER < MC_1_21_9
// old versions still run like normal
#else
if (true)
throw new UnsupportedOperationException("DH doesn't support 1.21.9 yet because the Fabric Rendering API is missing required events. Please wait for the Fabric team to update their API.");
#endif
//========================//
// register mod accessors //
//========================//
@@ -217,6 +228,8 @@ public class FabricClientProxy implements AbstractModInitializer.IEventProxy
// render event //
//==============//
// TODO wait for fabric to re-add their rendering API
#if MC_VER < MC_1_21_9
WorldRenderEvents.AFTER_SETUP.register((renderContext) ->
{
Mat4f projectionMatrix = McObjectConverter.Convert(renderContext.projectionMatrix());
@@ -306,6 +319,7 @@ public class FabricClientProxy implements AbstractModInitializer.IEventProxy
ClientLevelWrapper.getWrapper(renderContext.world())
);
});
#endif
// Debug keyboard event
@@ -355,18 +369,18 @@ public class FabricClientProxy implements AbstractModInitializer.IEventProxy
// Check all keys we need
for (int keyCode = GLFW.GLFW_KEY_A; keyCode <= GLFW.GLFW_KEY_Z; keyCode++)
{
if (InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), keyCode))
{
currentKeyDown.add(keyCode);
}
//if (InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), keyCode))
//{
// currentKeyDown.add(keyCode);
//}
}
for (int keyCode : KEY_TO_CHECK_FOR)
{
if (InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), keyCode))
{
currentKeyDown.add(keyCode);
}
//if (InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), keyCode))
//{
// currentKeyDown.add(keyCode);
//}
}
// Diff and trigger events
@@ -22,6 +22,7 @@ package com.seibel.distanthorizons.fabric.mixins.client;
import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper;
import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper;
import net.minecraft.client.renderer.LightTexture;
@@ -73,14 +74,15 @@ public class MixinLightTexture
IClientLevelWrapper clientLevel = mc.getWrappedClientLevel();
MinecraftRenderWrapper renderWrapper = (MinecraftRenderWrapper)SingletonInjector.INSTANCE.get(IMinecraftRenderWrapper.class);
#if MC_VER < MC_1_21_3
MinecraftRenderWrapper.INSTANCE.updateLightmap(this.lightPixels, clientLevel);
renderWrapper.updateLightmap(this.lightPixels, clientLevel);
#elif MC_VER < MC_1_21_5
MinecraftRenderWrapper.INSTANCE.setLightmapId(this.target.getColorTextureId(), clientLevel);
renderWrapper.setLightmapId(this.target.getColorTextureId(), clientLevel);
#else
GlTexture glTexture = (GlTexture) this.texture;
MinecraftRenderWrapper.INSTANCE.setLightmapId(glTexture.glId(), clientLevel);
renderWrapper.setLightmapId(glTexture.glId(), clientLevel);
#endif
}