fabric-rendering-v1-16.2.0+bee81f016f.jar
Download file
package net.fabricmc.fabric.mixin.client.rendering;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.mojang.blaze3d.pipeline.RenderPipeline;
import java.util.Optional;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.rendering.v1.FabricRenderPipeline;
import net.fabricmc.fabric.impl.client.rendering.FabricRenderPipelineInternals;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
@Environment(EnvType.CLIENT)
@Mixin({RenderPipeline.Snippet.class})
class RenderPipelineSnippetMixin implements FabricRenderPipeline.Snippet {
@Unique
private final Optional<Boolean> usePipelineDrawModeForGui = FabricRenderPipelineInternals.getScopedUsePipelineVertexFormatForGui();
private RenderPipelineSnippetMixin() {
}
public Optional<Boolean> usePipelineDrawModeForGui() {
return this.usePipelineDrawModeForGui;
}
@ModifyReturnValue(
method = {"toString()Ljava/lang/String;"},
at = {@At("RETURN")}
)
private String modifyToStringToIncludeFabricExtraData(String original) {
String var10000 = original.substring(0, original.length() - 1);
return var10000 + ", usePipelineDrawModeForGui=" + String.valueOf(this.usePipelineDrawModeForGui()) + original.substring(original.length() - 1);
}
@ModifyReturnValue(
method = {"equals(Ljava/lang/Object;)Z"},
at = {@At("RETURN")}
)
private boolean modifyEqualsToIncludeFabricExtraData(boolean original, Object other) {
boolean var10000;
if (original && other instanceof FabricRenderPipeline.Snippet otherSnippet) {
if (this.usePipelineDrawModeForGui().equals(otherSnippet.usePipelineDrawModeForGui())) {
var10000 = true;
return var10000;
}
}
var10000 = false;
return var10000;
}
@ModifyReturnValue(
method = {"hashCode()I"},
at = {@At("RETURN")}
)
private int modifyHashCodeToIncludeFabricExtraData(int original) {
return hashCombiner(original, this.usePipelineDrawModeForGui().hashCode());
}
@Unique
private static int hashCombiner(int x, int y) {
return x * 31 + y;
}
}
Download file