VulkanShader_1.21.10-0.0.4-alpha.jar

Download file
    package net.vulkanmod.mixin.render.block;

import net.minecraft.class_1058;
import net.minecraft.class_2350;
import net.minecraft.class_777;
import net.vulkanmod.render.chunk.build.frapi.helper.NormalHelper;
import net.vulkanmod.render.chunk.cull.QuadFacing;
import net.vulkanmod.render.model.quad.ModelQuadFlags;
import net.vulkanmod.render.model.quad.ModelQuadView;
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;

@Mixin({class_777.class})
public class BakedQuadM implements ModelQuadView {
   @Shadow
   @Final
   protected int[] comp_3721;
   @Shadow
   @Final
   protected class_2350 comp_3723;
   @Shadow
   @Final
   protected int comp_3722;
   private int flags;
   private int normal;
   private QuadFacing facing;

   @Inject(
      method = {"<init>"},
      at = {@At("RETURN")}
   )
   private void onInit(int[] vertices, int tintIndex, class_2350 face, class_1058 textureAtlasSprite, boolean shade, int lightEmission, CallbackInfo ci) {
      this.flags = ModelQuadFlags.getQuadFlags(this, face);
      int packedNormal = NormalHelper.computePackedNormal(this);
      this.normal = packedNormal;
      this.facing = QuadFacing.fromNormal(packedNormal);
   }

   public int getFlags() {
      return this.flags;
   }

   public float getX(int idx) {
      return Float.intBitsToFloat(this.comp_3721[vertexOffset(idx) + 0]);
   }

   public float getY(int idx) {
      return Float.intBitsToFloat(this.comp_3721[vertexOffset(idx) + 1]);
   }

   public float getZ(int idx) {
      return Float.intBitsToFloat(this.comp_3721[vertexOffset(idx) + 2]);
   }

   public int getColor(int idx) {
      return this.comp_3721[vertexOffset(idx) + 3];
   }

   public float getU(int idx) {
      return Float.intBitsToFloat(this.comp_3721[vertexOffset(idx) + 4]);
   }

   public float getV(int idx) {
      return Float.intBitsToFloat(this.comp_3721[vertexOffset(idx) + 5]);
   }

   public int getColorIndex() {
      return this.comp_3722;
   }

   public class_2350 lightFace() {
      return this.comp_3723;
   }

   public class_2350 getFacingDirection() {
      return this.comp_3723;
   }

   public QuadFacing getQuadFacing() {
      return this.facing;
   }

   public int getNormal() {
      return this.normal;
   }

   public boolean isTinted() {
      return this.comp_3722 != -1;
   }

   private static int vertexOffset(int vertexIndex) {
      return vertexIndex * 8;
   }
}
    
Download file