Make RenderType EqualsStrategy more predictable

This commit is contained in:
embeddedt 2023-05-08 16:15:15 -04:00
parent cd2f289ea8
commit 33f689ba9a
No known key found for this signature in database
GPG Key ID: A69433EC199B5613
2 changed files with 19 additions and 1 deletions

View File

@ -0,0 +1,17 @@
package org.embeddedt.modernfix.common.mixin.bugfix.concurrency;
import net.minecraft.client.renderer.RenderType;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import java.util.Objects;
@Mixin(targets = { "net/minecraft/client/renderer/RenderType$CompositeRenderType$EqualsStrategy"})
public class RenderTypeEqualsStrategyMixin {
@Redirect(method = "equals(Lnet/minecraft/client/renderer/RenderType$CompositeRenderType;Lnet/minecraft/client/renderer/RenderType$CompositeRenderType;)Z", at = @At(value = "INVOKE", target = "Ljava/util/Objects;equals(Ljava/lang/Object;Ljava/lang/Object;)Z", ordinal = 0))
private boolean alsoCheckName(Object a, Object b, RenderType.CompositeRenderType type1, RenderType.CompositeRenderType type2) {
boolean supposedlyEqual = Objects.equals(a, b);
return supposedlyEqual && Objects.equals(type1.name, type2.name);
}
}

View File

@ -36,4 +36,5 @@ accessible field net/minecraft/client/Minecraft reserve [B
accessible method net/minecraft/resources/ResourceKey <init> (Lnet/minecraft/resources/ResourceLocation;Lnet/minecraft/resources/ResourceLocation;)V
accessible method net/minecraft/client/renderer/texture/TextureAtlasSprite <init> (Lnet/minecraft/client/renderer/texture/TextureAtlas;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite$Info;IIIIILcom/mojang/blaze3d/platform/NativeImage;)V
accessible field net/minecraft/client/renderer/block/model/BlockModel GSON Lcom/google/gson/Gson;
accessible field net/minecraft/server/MinecraftServer resources Lnet/minecraft/server/ServerResources;
accessible field net/minecraft/server/MinecraftServer resources Lnet/minecraft/server/ServerResources;
accessible field net/minecraft/client/renderer/RenderStateShard name Ljava/lang/String;