Add Minecraft 26.x support and version Java artifacts

This commit is contained in:
2026-10-07 13:18:31 +05:00
parent 48b34db6f1
commit dac8650ac1
50 changed files with 813 additions and 162 deletions

View File

@@ -0,0 +1,4 @@
plugins { id 'net.fabricmc.fabric-loom' version '1.16.3' }
ext.minecraftVersion = '26.2'
ext.fabricApiVersion = '0.161.0+26.2'
apply from: '../fabric-modern/build.gradle'

View File

@@ -0,0 +1,14 @@
package dev.minegeo.fabric;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
import com.mojang.blaze3d.pipeline.*;
import com.mojang.blaze3d.GpuFormat;
final class ClientCompat {
static boolean hudHidden(Minecraft c){return c.gui.hud.isHidden();}
static void hudHidden(Minecraft c,boolean hidden){if(c.gui.hud.isHidden()!=hidden)c.gui.hud.toggle();}
static Screen screen(Minecraft c){return c.gui.screen();}
static void screen(Minecraft c,Screen screen){c.gui.setScreen(screen);}
static void message(Minecraft c,Component message){c.gui.hud.getChat().addClientSystemMessage(message);}
static RenderTarget target(){return new TextureTarget("MineGeo capture",Capture.SIZE,Capture.SIZE,true,GpuFormat.RGBA8_UNORM);}
}

View File

@@ -0,0 +1,16 @@
package dev.minegeo.fabric.mixin;
import dev.minegeo.fabric.Capture;
import net.minecraft.client.renderer.GameRenderer;
import com.mojang.blaze3d.pipeline.RenderTarget;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.injection.*;
@Mixin(GameRenderer.class)
public class GameRendererTargetMixin {
@Shadow @Final private RenderTarget mainRenderTarget;
// 26.2 moved the framebuffer into GameRenderer. Redirect reads through the
// game's rendering abstraction; keep the actual window target intact.
@Redirect(method="*",at=@At(value="FIELD",target="Lnet/minecraft/client/renderer/GameRenderer;mainRenderTarget:Lcom/mojang/blaze3d/pipeline/RenderTarget;",opcode=180))
private RenderTarget square(GameRenderer renderer){return Capture.active()&&Capture.framebuffer()!=null?Capture.framebuffer():mainRenderTarget;}
}