From 05e97f2851ae3e5f5faa1cbb62d45c6593e208db Mon Sep 17 00:00:00 2001 From: ZekerZhayard Date: Mon, 22 Jun 2020 13:29:00 +0800 Subject: [PATCH] Support OptiFine_1.15.2_HD_U_G1_pre30. Fix #27. --- .travis.yml | 7 +- README.md | 6 +- gradle.properties | 6 +- .../gui/MixinResourceLoadProgressGui.java | 59 ----------- .../client/renderer/MixinOverlayRenderer.java | 80 +-------------- .../client/renderer/MixinWorldRenderer.java | 99 ------------------- .../world/server/MixinChunkManager.java | 63 ------------ .../renderer/OverlayRendererTransformer.java | 32 ------ .../renderer/WorldRendererTransformer.java | 40 -------- ...rd.optiforge.asm.transformers.ITransformer | 2 - src/main/resources/mixins.optiforge.json | 4 +- 11 files changed, 16 insertions(+), 382 deletions(-) delete mode 100644 src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/gui/MixinResourceLoadProgressGui.java delete mode 100644 src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/world/server/MixinChunkManager.java delete mode 100644 src/main/java/io/github/zekerzhayard/optiforge/asm/transformers/net/minecraft/client/renderer/OverlayRendererTransformer.java delete mode 100644 src/main/java/io/github/zekerzhayard/optiforge/asm/transformers/net/minecraft/client/renderer/WorldRendererTransformer.java diff --git a/.travis.yml b/.travis.yml index a6e294c..06cff9c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,6 +16,9 @@ before_install: chmod +x gradlew script: - ./gradlew build -iS +before_deploy: + - ./gradlew curseforge -iS + deploy: edge: true file: @@ -27,13 +30,11 @@ deploy: skip_cleanup: true token: $GITHUB_TOKEN -after_deploy: - ./gradlew curseforge -iS - after_success: - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh - chmod +x send.sh - ./send.sh success $WEBHOOK_URL + after_failure: - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh - chmod +x send.sh diff --git a/README.md b/README.md index 2a103ac..4ea8eed 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # OptiForge ([CurseForge](https://www.curseforge.com/minecraft/mc-mods/optiforge)) -*Compatibility: (2020-06-17)* - *OptiForge-0.1.24* +*Compatibility: (2020-06-22)* + *OptiForge-0.1.25*  *Forge-1.15.2-31.2.15 or newer version* - *OptiFine-1.15.2-G1-pre23 or newer version* + *OptiFine-1.15.2-G1-pre30 or newer version* ## How to Use diff --git a/gradle.properties b/gradle.properties index 0e7db21..0f3493e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,9 +3,9 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -mod_version=0.1.24 -# G1_pre23 -optifine_version=7.1.23 +mod_version=0.1.25 +# G1_pre30 +optifine_version=7.1.30 minecraft_version=1.15.2 forge_version=31.2.15 forge_gradle_version=3.0.174 diff --git a/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/gui/MixinResourceLoadProgressGui.java b/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/gui/MixinResourceLoadProgressGui.java deleted file mode 100644 index 693f728..0000000 --- a/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/gui/MixinResourceLoadProgressGui.java +++ /dev/null @@ -1,59 +0,0 @@ -package io.github.zekerzhayard.optiforge.asm.mixins.net.minecraft.client.gui; - -import net.minecraft.client.gui.ResourceLoadProgressGui; -import net.minecraft.util.Util; -import org.objectweb.asm.Opcodes; -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.Redirect; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(ResourceLoadProgressGui.class) -public abstract class MixinResourceLoadProgressGui { - @Shadow - private long fadeOutStart; - - @Inject( - method = "Lnet/minecraft/client/gui/ResourceLoadProgressGui;render(IIF)V", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/resources/IAsyncReloader;join()V", - shift = At.Shift.BEFORE - ), - require = 1, - allow = 1 - ) - private void inject$render$0(CallbackInfo ci) { - this.fadeOutStart = Util.milliTime(); - } - - @Redirect( - method = "Lnet/minecraft/client/gui/ResourceLoadProgressGui;render(IIF)V", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/util/Util;milliTime()J", - ordinal = 1 - ), - require = 1, - allow = 1 - ) - private long redirect$render$0() { - return 0; - } - - @Redirect( - method = "Lnet/minecraft/client/gui/ResourceLoadProgressGui;render(IIF)V", - at = @At( - value = "FIELD", - target = "Lnet/minecraft/client/gui/ResourceLoadProgressGui;fadeOutStart:J", - opcode = Opcodes.PUTFIELD - ), - require = 1, - allow = 1 - ) - private void redirect$render$1(ResourceLoadProgressGui _this, long value) { - - } -} diff --git a/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/renderer/MixinOverlayRenderer.java b/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/renderer/MixinOverlayRenderer.java index 851c28b..cb03195 100644 --- a/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/renderer/MixinOverlayRenderer.java +++ b/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/renderer/MixinOverlayRenderer.java @@ -1,97 +1,27 @@ package io.github.zekerzhayard.optiforge.asm.mixins.net.minecraft.client.renderer; -import com.mojang.blaze3d.matrix.MatrixStack; -import io.github.zekerzhayard.optiforge.asm.utils.annotations.DynamicShadow; -import io.github.zekerzhayard.optiforge.asm.utils.annotations.LazyOverwrite; -import io.github.zekerzhayard.optiforge.asm.utils.annotations.RedirectSurrogate; import net.minecraft.block.BlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.player.ClientPlayerEntity; import net.minecraft.client.renderer.OverlayRenderer; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.fluid.Fluid; -import net.minecraft.tags.Tag; import net.minecraft.util.math.BlockPos; -import net.minecraftforge.client.event.RenderBlockOverlayEvent; -import net.minecraftforge.event.ForgeEventFactory; import org.apache.commons.lang3.tuple.Pair; 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.Redirect; -/** - * {@link io.github.zekerzhayard.optiforge.asm.transformers.net.minecraft.client.renderer.OverlayRendererTransformer} - */ @Mixin(OverlayRenderer.class) public abstract class MixinOverlayRenderer { - @Shadow - private static void renderTexture(Minecraft minecraftIn, TextureAtlasSprite spriteIn, MatrixStack matrixStackIn) { - - } - - @Redirect( - method = "Lnet/minecraft/client/renderer/OverlayRenderer;renderOverlays(Lnet/minecraft/client/Minecraft;Lcom/mojang/blaze3d/matrix/MatrixStack;)V", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/client/renderer/OverlayRenderer;getViewBlockingState(Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/block/BlockState;" - ), - require = 1, - allow = 1 - ) - private static BlockState redirect$renderOverlays$0(PlayerEntity playerEntity, Minecraft minecraftIn, MatrixStack matrixStackIn) { - Pair overlay = MixinOverlayRenderer.getOverlayBlock(playerEntity); - if (overlay != null && !ForgeEventFactory.renderBlockOverlay(playerEntity, matrixStackIn, RenderBlockOverlayEvent.OverlayType.BLOCK, overlay.getLeft(), overlay.getRight())) { - MixinOverlayRenderer.renderTexture(minecraftIn, minecraftIn.getBlockRendererDispatcher().getBlockModelShapes().getTexture(overlay.getLeft(), minecraftIn.world, overlay.getRight()), matrixStackIn); - } - return null; - } - - @Redirect( - method = "Lnet/minecraft/client/renderer/OverlayRenderer;renderOverlays(Lnet/minecraft/client/Minecraft;Lcom/mojang/blaze3d/matrix/MatrixStack;)V", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/client/entity/player/ClientPlayerEntity;areEyesInFluid(Lnet/minecraft/tags/Tag;)Z" - ), - require = 1, - allow = 1 - ) - private static boolean redirect$renderOverlays$1(ClientPlayerEntity player, Tag tagIn, Minecraft minecraftIn, MatrixStack matrixStackIn) { - return false; - } - - @RedirectSurrogate(loacalVariableOrdinals = 0) - private static boolean redirect$renderOverlays$1(ClientPlayerEntity player, Tag tagIn, Minecraft minecraftIn, MatrixStack matrixStackIn, PlayerEntity playerEntity) { - return player.areEyesInFluid(tagIn) && !ForgeEventFactory.renderWaterOverlay(playerEntity, matrixStackIn); - } - @Redirect( - method = "Lnet/minecraft/client/renderer/OverlayRenderer;renderOverlays(Lnet/minecraft/client/Minecraft;Lcom/mojang/blaze3d/matrix/MatrixStack;)V", + method = "Lnet/minecraft/client/renderer/OverlayRenderer;getOverlayBlock(Lnet/minecraft/entity/player/PlayerEntity;)Lorg/apache/commons/lang3/tuple/Pair;", at = @At( value = "INVOKE", - target = "Lnet/minecraft/client/entity/player/ClientPlayerEntity;isBurning()Z" + target = "Lorg/apache/commons/lang3/tuple/Pair;of(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/commons/lang3/tuple/Pair;", + ordinal = 1 ), + remap = false, require = 1, allow = 1 ) - private static boolean redirect$renderOverlays$2(ClientPlayerEntity player, Minecraft minecraftIn, MatrixStack matrixStackIn) { - return false; - } - - @RedirectSurrogate(loacalVariableOrdinals = 0) - private static boolean redirect$renderOverlays$2(ClientPlayerEntity player, Minecraft minecraftIn, MatrixStack matrixStackIn, PlayerEntity playerEntity) { - return player.isBurning() && !ForgeEventFactory.renderFireOverlay(playerEntity, matrixStackIn); - } - - // getViewBlockingState - @LazyOverwrite(prefix = "optiforge_") - private static BlockState optiforge_func_230018_a_(PlayerEntity playerIn) { - return MixinOverlayRenderer.getOverlayBlock(playerIn).getLeft(); - } - - @DynamicShadow - private static Pair getOverlayBlock(PlayerEntity playerIn) { + private static Pair redirect$getOverlayBlock$0(Object left, Object right) { return null; } } diff --git a/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/renderer/MixinWorldRenderer.java b/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/renderer/MixinWorldRenderer.java index 7fa6af6..445dc58 100644 --- a/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/renderer/MixinWorldRenderer.java +++ b/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/client/renderer/MixinWorldRenderer.java @@ -1,37 +1,15 @@ package io.github.zekerzhayard.optiforge.asm.mixins.net.minecraft.client.renderer; -import com.mojang.blaze3d.matrix.MatrixStack; -import io.github.zekerzhayard.optiforge.asm.utils.annotations.DynamicShadow; -import io.github.zekerzhayard.optiforge.asm.utils.annotations.LazyOverwrite; -import io.github.zekerzhayard.optiforge.asm.utils.annotations.RedirectSurrogate; -import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.chunk.ChunkRenderDispatcher; import net.minecraft.client.renderer.texture.Texture; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.MusicDiscItem; -import net.minecraft.util.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.client.CloudRenderHandler; -import net.minecraftforge.client.IRenderHandler; -import net.minecraftforge.client.SkyRenderHandler; import net.minecraftforge.common.ForgeConfig; 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.Coerce; import org.spongepowered.asm.mixin.injection.Redirect; -/** - * {@link io.github.zekerzhayard.optiforge.asm.transformers.net.minecraft.client.renderer.WorldRendererTransformer} - */ @Mixin(WorldRenderer.class) public abstract class MixinWorldRenderer { - @Shadow - private int ticks; - @Redirect( method = "Lnet/minecraft/client/renderer/WorldRenderer;setupTerrain(Lnet/minecraft/client/renderer/ActiveRenderInfo;Lnet/minecraft/client/renderer/culling/ClippingHelperImpl;ZIZ)V", at = @At( @@ -57,81 +35,4 @@ public abstract class MixinWorldRenderer { private void redirect$updateCameraAndRender$0(Texture texture, boolean blurIn, boolean mipmapIn) { texture.setBlurMipmap(blurIn, mipmapIn); } - - @Redirect( - method = "Lnet/minecraft/client/renderer/WorldRenderer;renderSky(Lcom/mojang/blaze3d/matrix/MatrixStack;F)V", - at = @At( - value = "INVOKE", - target = "Lnet/optifine/reflect/Reflector;callVoid(Ljava/lang/Object;Lnet/optifine/reflect/ReflectorMethod;[Ljava/lang/Object;)V", - remap = false - ), - require = 1, - allow = 1 - ) - private void redirect$renderSky$0(Object obj, @Coerce Object method, Object[] params, MatrixStack matrixStackIn, float partialTicks) { - if (obj instanceof SkyRenderHandler) { - ((SkyRenderHandler) obj).render((int) params[0], (float) params[1], matrixStackIn, (ClientWorld) params[2], (Minecraft) params[3]); - } else { - ((IRenderHandler) obj).render((int) params[0], (float) params[1], (ClientWorld) params[2], (Minecraft) params[3]); - } - } - - @Redirect( - method = "Lnet/minecraft/client/renderer/WorldRenderer;renderClouds(Lcom/mojang/blaze3d/matrix/MatrixStack;FDDD)V", - at = @At( - value = "INVOKE", - target = "Lnet/optifine/reflect/Reflector;callVoid(Ljava/lang/Object;Lnet/optifine/reflect/ReflectorMethod;[Ljava/lang/Object;)V", - remap = false - ), - require = 1, - allow = 1 - ) - private void redirect$renderClouds$0(Object obj, @Coerce Object method, Object[] params, MatrixStack matrixStackIn, float partialTicks, double viewEntityX, double viewEntityY, double viewEntityZ) { - if (obj instanceof CloudRenderHandler) { - ((CloudRenderHandler) obj).render(this.ticks, (float) params[0], matrixStackIn, (ClientWorld) params[1], (Minecraft) params[2]); - } else { - ((IRenderHandler) obj).render(this.ticks, (float) params[0], (ClientWorld) params[1], (Minecraft) params[2]); - } - } - - @Redirect( - method = "Lnet/minecraft/client/renderer/WorldRenderer;playRecord(Lnet/minecraft/util/SoundEvent;Lnet/minecraft/util/math/BlockPos;)V", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/item/MusicDiscItem;getBySound(Lnet/minecraft/util/SoundEvent;)Lnet/minecraft/item/MusicDiscItem;" - ), - require = 1, - allow = 1 - ) - private MusicDiscItem redirect$playRecord$0(SoundEvent _soundIn) { - return null; - } - - @RedirectSurrogate(loacalVariableOrdinals = 0) - private MusicDiscItem redirect$playRecord$0(SoundEvent _soundIn, MusicDiscItem musicDiscItem) { - return musicDiscItem; - } - - @Redirect( - method = "Lnet/minecraft/client/renderer/WorldRenderer;playEvent(Lnet/minecraft/entity/player/PlayerEntity;ILnet/minecraft/util/math/BlockPos;I)V", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/client/renderer/WorldRenderer;playRecord(Lnet/minecraft/util/SoundEvent;Lnet/minecraft/util/math/BlockPos;)V", - ordinal = 0 - ), - require = 1, - allow = 1 - ) - private void redirect$playEvent$0(WorldRenderer worldRenderer, SoundEvent soundIn, BlockPos pos, PlayerEntity player, int type, BlockPos blockPosIn, int data) { - this.playRecord(soundIn, pos, (MusicDiscItem) Item.getItemById(data)); - } - - // playRecord - @LazyOverwrite(prefix = "optiforge_") - public void optiforge_func_184377_a(SoundEvent soundIn, BlockPos pos) { - this.playRecord(soundIn, pos, soundIn == null ? null : MusicDiscItem.getBySound(soundIn)); - } - - @DynamicShadow - public abstract void playRecord(SoundEvent soundIn, BlockPos pos, MusicDiscItem musicDiscItem); } diff --git a/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/world/server/MixinChunkManager.java b/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/world/server/MixinChunkManager.java deleted file mode 100644 index c9dcb55..0000000 --- a/src/main/java/io/github/zekerzhayard/optiforge/asm/mixins/net/minecraft/world/server/MixinChunkManager.java +++ /dev/null @@ -1,63 +0,0 @@ -package io.github.zekerzhayard.optiforge.asm.mixins.net.minecraft.world.server; - -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.world.chunk.IChunk; -import net.minecraft.world.server.ChunkManager; -import net.minecraft.world.server.ServerWorld; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.world.ChunkDataEvent; -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.Coerce; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(ChunkManager.class) -public abstract class MixinChunkManager { - @Final - @Shadow - private ServerWorld world; - - @Redirect( - method = "Lnet/minecraft/world/server/ChunkManager;lambda$func_223172_f$14", // (Lnet/minecraft/util/math/ChunkPos;)Lcom/mojang/datafixers/util/Either; - at = @At( - value = "INVOKE", - target = "Lnet/optifine/reflect/ReflectorConstructor;exists()Z" - ), - remap = false, - require = 1, - allow = 1 - ) - private boolean redirect$lambda$func_223172_f$14$0(@Coerce Object constructor) { - return false; - } - - @Redirect( - method = "Lnet/minecraft/world/server/ChunkManager;chunkSave(Lnet/minecraft/world/chunk/IChunk;)Z", - at = @At( - value = "INVOKE", - target = "Lnet/optifine/reflect/ReflectorConstructor;exists()Z", - remap = false - ), - require = 1, - allow = 1 - ) - private boolean redirect$chunkSave$0(@Coerce Object constructor) { - return true; - } - - @Redirect( - method = "Lnet/minecraft/world/server/ChunkManager;chunkSave(Lnet/minecraft/world/chunk/IChunk;)Z", - at = @At( - value = "INVOKE", - target = "Lnet/optifine/reflect/Reflector;postForgeBusEvent(Lnet/optifine/reflect/ReflectorConstructor;[Ljava/lang/Object;)Z", - remap = false - ), - require = 1, - allow = 1 - ) - private boolean redirect$chunkSave$1(@Coerce Object constructor, Object[] params) { - return MinecraftForge.EVENT_BUS.post(new ChunkDataEvent.Save((IChunk) params[0], ((IChunk) params[0]).getWorldForge() != null ? ((IChunk) params[0]).getWorldForge() : this.world, (CompoundNBT) params[1])); - } -} diff --git a/src/main/java/io/github/zekerzhayard/optiforge/asm/transformers/net/minecraft/client/renderer/OverlayRendererTransformer.java b/src/main/java/io/github/zekerzhayard/optiforge/asm/transformers/net/minecraft/client/renderer/OverlayRendererTransformer.java deleted file mode 100644 index 0f22187..0000000 --- a/src/main/java/io/github/zekerzhayard/optiforge/asm/transformers/net/minecraft/client/renderer/OverlayRendererTransformer.java +++ /dev/null @@ -1,32 +0,0 @@ -package io.github.zekerzhayard.optiforge.asm.transformers.net.minecraft.client.renderer; - -import java.util.Objects; - -import io.github.zekerzhayard.optiforge.asm.transformers.ITransformer; -import net.minecraftforge.coremod.api.ASMAPI; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.tree.AbstractInsnNode; -import org.objectweb.asm.tree.ClassNode; -import org.objectweb.asm.tree.MethodInsnNode; -import org.objectweb.asm.tree.MethodNode; -import org.objectweb.asm.tree.VarInsnNode; -import org.spongepowered.asm.util.Bytecode; - -public class OverlayRendererTransformer implements ITransformer { - @Override - public boolean isTargetClass(String className) { - return className.equals("net.minecraft.client.renderer.OverlayRenderer"); - } - - @Override - public ClassNode postTransform(ClassNode cn, String mixinClassName) { - MethodNode mn = Objects.requireNonNull(Bytecode.findMethod(cn, ASMAPI.mapMethod("func_230018_a_"), "(Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/block/BlockState;")); - mn.name = "getOverlayBlock"; - mn.desc = "(Lnet/minecraft/entity/player/PlayerEntity;)Lorg/apache/commons/lang3/tuple/Pair;"; - AbstractInsnNode ain = Objects.requireNonNull(Bytecode.findInsn(mn, Opcodes.ARETURN)); - mn.instructions.insertBefore(ain, new VarInsnNode(Opcodes.ALOAD, 1)); - mn.instructions.insertBefore(ain, new MethodInsnNode(Opcodes.INVOKEVIRTUAL, "net/minecraft/util/math/BlockPos$Mutable", ASMAPI.mapMethod("func_185334_h"), "()Lnet/minecraft/util/math/BlockPos;")); - mn.instructions.insertBefore(ain, new MethodInsnNode(Opcodes.INVOKESTATIC, "org/apache/commons/lang3/tuple/Pair", "of", "(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/commons/lang3/tuple/Pair;")); - return cn; - } -} diff --git a/src/main/java/io/github/zekerzhayard/optiforge/asm/transformers/net/minecraft/client/renderer/WorldRendererTransformer.java b/src/main/java/io/github/zekerzhayard/optiforge/asm/transformers/net/minecraft/client/renderer/WorldRendererTransformer.java deleted file mode 100644 index dd81564..0000000 --- a/src/main/java/io/github/zekerzhayard/optiforge/asm/transformers/net/minecraft/client/renderer/WorldRendererTransformer.java +++ /dev/null @@ -1,40 +0,0 @@ -package io.github.zekerzhayard.optiforge.asm.transformers.net.minecraft.client.renderer; - -import java.util.Objects; - -import io.github.zekerzhayard.optiforge.asm.transformers.ITransformer; -import io.github.zekerzhayard.optiforge.asm.utils.ASMUtils; -import net.minecraftforge.coremod.api.ASMAPI; -import org.objectweb.asm.tree.AbstractInsnNode; -import org.objectweb.asm.tree.ClassNode; -import org.objectweb.asm.tree.LabelNode; -import org.objectweb.asm.tree.LocalVariableNode; -import org.objectweb.asm.tree.MethodNode; -import org.spongepowered.asm.util.Bytecode; - -public class WorldRendererTransformer implements ITransformer { - @Override - public boolean isTargetClass(String className) { - return className.equals("net.minecraft.client.renderer.WorldRenderer"); - } - - @Override - public ClassNode postTransform(ClassNode cn, String mixinClassName) { - MethodNode mn = Objects.requireNonNull(Bytecode.findMethod(cn, ASMAPI.mapMethod("func_184377_a"), "(Lnet/minecraft/util/SoundEvent;Lnet/minecraft/util/math/BlockPos;)V")); - LabelNode start = null, end = null; - for (AbstractInsnNode ain : mn.instructions.toArray()) { - if (ain instanceof LabelNode) { - LabelNode ln = (LabelNode) ain; - if (start == null) { - start = ln; - } else { - end = ln; - } - } - } - ASMUtils.insertLocalVariable(mn, new LocalVariableNode("musicDiscItem", "Lnet/minecraft/item/MusicDiscItem;", null, Objects.requireNonNull(start), Objects.requireNonNull(end), Bytecode.getFirstNonArgLocalIndex(mn))); - mn.name = "playRecord"; - mn.desc = "(Lnet/minecraft/util/SoundEvent;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/item/MusicDiscItem;)V"; - return cn; - } -} diff --git a/src/main/resources/META-INF/services/io.github.zekerzhayard.optiforge.asm.transformers.ITransformer b/src/main/resources/META-INF/services/io.github.zekerzhayard.optiforge.asm.transformers.ITransformer index 55cf108..2f9e541 100644 --- a/src/main/resources/META-INF/services/io.github.zekerzhayard.optiforge.asm.transformers.ITransformer +++ b/src/main/resources/META-INF/services/io.github.zekerzhayard.optiforge.asm.transformers.ITransformer @@ -1,3 +1 @@ -io.github.zekerzhayard.optiforge.asm.transformers.net.minecraft.client.renderer.OverlayRendererTransformer -io.github.zekerzhayard.optiforge.asm.transformers.net.minecraft.client.renderer.WorldRendererTransformer io.github.zekerzhayard.optiforge.asm.transformers.net.minecraft.client.renderer.entity.ItemFrameRendererTransformer \ No newline at end of file diff --git a/src/main/resources/mixins.optiforge.json b/src/main/resources/mixins.optiforge.json index d88dd35..b6ab89f 100644 --- a/src/main/resources/mixins.optiforge.json +++ b/src/main/resources/mixins.optiforge.json @@ -5,7 +5,6 @@ "package": "io.github.zekerzhayard.optiforge.asm.mixins", "client": [ "com.mojang.blaze3d.vertex.MixinIVertexBuilder", - "net.minecraft.client.gui.MixinResourceLoadProgressGui", "net.minecraft.client.gui.screen.MixinMainMenuScreen", "net.minecraft.client.renderer.MixinBlockRendererDispatcher", "net.minecraft.client.renderer.MixinOverlayRenderer", @@ -18,8 +17,7 @@ "net.minecraft.client.renderer.texture.MixinAtlasTexture", "net.minecraft.client.renderer.texture.MixinStitcher", "net.minecraft.entity.MixinMobEntity", - "net.minecraft.network.datasync.MixinEntityDataManager", - "net.minecraft.world.server.MixinChunkManager" + "net.minecraft.network.datasync.MixinEntityDataManager" ], "plugin": "io.github.zekerzhayard.optiforge.asm.MixinConfigPlugin", "injectors": {