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