浏览代码

[ci skip] Requires Fabric Loader 0.13.0 (#194)

shedaniel 3 年之前
父节点
当前提交
25e6a8d8ef

+ 3 - 2
fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinGameRenderer.java

@@ -19,6 +19,7 @@
 
 package me.shedaniel.architectury.mixin.fabric.client;
 
+import com.mojang.blaze3d.platform.Window;
 import com.mojang.blaze3d.vertex.PoseStack;
 import me.shedaniel.architectury.event.events.GuiEvent;
 import net.minecraft.client.Minecraft;
@@ -41,7 +42,7 @@ public abstract class MixinGameRenderer {
     @Inject(method = "render(FJZ)V",
             at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/Screen;render(Lcom/mojang/blaze3d/vertex/PoseStack;IIF)V",
                     ordinal = 0), locals = LocalCapture.CAPTURE_FAILEXCEPTION, cancellable = true)
-    public void renderScreenPre(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, PoseStack matrices) {
+    public void renderScreenPre(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, Window window, PoseStack matrices) {
         if (GuiEvent.RENDER_PRE.invoker().render(minecraft.screen, matrices, mouseX, mouseY, minecraft.getDeltaFrameTime()) == InteractionResult.FAIL) {
             ci.cancel();
         }
@@ -50,7 +51,7 @@ public abstract class MixinGameRenderer {
     @Inject(method = "render(FJZ)V",
             at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/Screen;render(Lcom/mojang/blaze3d/vertex/PoseStack;IIF)V",
                     shift = At.Shift.AFTER, ordinal = 0), locals = LocalCapture.CAPTURE_FAILEXCEPTION)
-    public void renderScreenPost(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, PoseStack matrices) {
+    public void renderScreenPost(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, Window window, PoseStack matrices) {
         GuiEvent.RENDER_POST.invoker().render(minecraft.screen, matrices, mouseX, mouseY, minecraft.getDeltaFrameTime());
     }
 }

+ 0 - 57
fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinGameRenderer013.java

@@ -1,57 +0,0 @@
-/*
- * This file is part of architectury.
- * Copyright (C) 2020, 2021, 2022 architectury
- *
- * 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; either
- * version 3 of the License, or (at your option) any later version.
- *
- * 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, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-package me.shedaniel.architectury.mixin.fabric.client;
-
-import com.mojang.blaze3d.platform.Window;
-import com.mojang.blaze3d.vertex.PoseStack;
-import me.shedaniel.architectury.event.events.GuiEvent;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.renderer.GameRenderer;
-import net.minecraft.world.InteractionResult;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
-
-@Mixin(value = GameRenderer.class, priority = 1100)
-public abstract class MixinGameRenderer013 {
-    @Shadow
-    @Final
-    private Minecraft minecraft;
-    
-    @Inject(method = "render(FJZ)V",
-            at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/Screen;render(Lcom/mojang/blaze3d/vertex/PoseStack;IIF)V",
-                    ordinal = 0), locals = LocalCapture.CAPTURE_FAILEXCEPTION, cancellable = true)
-    public void renderScreenPre(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, Window window, PoseStack matrices) {
-        if (GuiEvent.RENDER_PRE.invoker().render(minecraft.screen, matrices, mouseX, mouseY, minecraft.getDeltaFrameTime()) == InteractionResult.FAIL) {
-            ci.cancel();
-        }
-    }
-    
-    @Inject(method = "render(FJZ)V",
-            at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/Screen;render(Lcom/mojang/blaze3d/vertex/PoseStack;IIF)V",
-                    shift = At.Shift.AFTER, ordinal = 0), locals = LocalCapture.CAPTURE_FAILEXCEPTION)
-    public void renderScreenPost(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, Window window, PoseStack matrices) {
-        GuiEvent.RENDER_POST.invoker().render(minecraft.screen, matrices, mouseX, mouseY, minecraft.getDeltaFrameTime());
-    }
-}

+ 1 - 20
fabric/src/main/java/me/shedaniel/architectury/plugin/fabric/ArchitecturyMixinPlugin.java

@@ -19,7 +19,7 @@
 
 package me.shedaniel.architectury.plugin.fabric;
 
-import net.fabricmc.loader.api.*;
+import net.fabricmc.loader.api.FabricLoader;
 import org.objectweb.asm.tree.ClassNode;
 import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
 import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
@@ -39,30 +39,11 @@ public class ArchitecturyMixinPlugin implements IMixinConfigPlugin {
         return null;
     }
     
-    private boolean isLoader013() {
-        ModContainer fabricLoader = FabricLoader.getInstance().getModContainer("fabricloader")
-                .orElseThrow(() -> new IllegalStateException("Where is fabricloader?"));
-        Version version = fabricLoader.getMetadata().getVersion();
-        if (version instanceof SemanticVersion) {
-            try {
-                return version.compareTo(SemanticVersion.parse("0.13-")) >= 0;
-            } catch (VersionParsingException e) {
-                throw new IllegalStateException("Failed to parse version", e);
-            }
-        }
-        System.err.println("FabricLoader is not a SemanticVersion, cannot determine if it is >= 0.13");
-        return true;
-    }
-    
     @Override
     public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
         switch (mixinClassName) {
             case "me.shedaniel.architectury.mixin.fabric.client.MixinEffectInstance":
                 return !FabricLoader.getInstance().isModLoaded("satin");
-            case "me.shedaniel.architectury.mixin.fabric.client.MixinGameRenderer":
-                return !isLoader013();
-            case "me.shedaniel.architectury.mixin.fabric.client.MixinGameRenderer013":
-                return isLoader013();
             default:
                 return true;
         }

+ 0 - 1
fabric/src/main/resources/architectury.mixins.json

@@ -10,7 +10,6 @@
     "client.MixinDebugScreenOverlay",
     "client.MixinEffectInstance",
     "client.MixinGameRenderer",
-    "client.MixinGameRenderer013",
     "client.MixinIntegratedServer",
     "client.MixinKeyboardHandler",
     "client.MixinMinecraft",

+ 1 - 1
fabric/src/main/resources/fabric.mod.json

@@ -36,7 +36,7 @@
   "icon": "icon.png",
   "depends": {
     "minecraft": ">=1.16.4",
-    "fabricloader": ">=0.12.0",
+    "fabricloader": ">=0.13.0",
     "fabric": ">=0.34.2"
   },
   "custom": {