VulkanShader_1.21.10-0.0.4-alpha.jar
Download file
package net.vulkanmod.mixin.render.frapi;
import java.util.List;
import net.fabricmc.fabric.api.renderer.v1.render.FabricLayerRenderState;
import net.minecraft.class_10444;
import net.minecraft.class_11659;
import net.minecraft.class_1921;
import net.minecraft.class_4587;
import net.minecraft.class_777;
import net.minecraft.class_811;
import net.vulkanmod.render.chunk.build.frapi.accessor.AccessLayerRenderState;
import net.vulkanmod.render.chunk.build.frapi.accessor.AccessRenderCommandQueue;
import net.vulkanmod.render.chunk.build.frapi.mesh.MutableMeshImpl;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
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({class_10444.class_10446.class})
abstract class ItemRenderStateLayerRenderStateM implements FabricLayerRenderState, AccessLayerRenderState {
@Unique
private final MutableMeshImpl mutableMesh = new MutableMeshImpl();
@Inject(
method = {"method_65612"},
at = {@At("RETURN")}
)
private void onReturnClear(CallbackInfo ci) {
this.mutableMesh.clear();
}
@Redirect(
method = {"method_65614"},
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/class_11659;method_73480(Lnet/minecraft/class_4587;Lnet/minecraft/class_811;III[ILjava/util/List;Lnet/minecraft/class_1921;Lnet/minecraft/class_10444$class_10445;)V"
)
)
private void submitItemProxy(class_11659 commandQueue, class_4587 matrices, class_811 displayContext, int light, int overlay, int outlineColor, int[] tints, List<class_777> quads, class_1921 layer, class_10444.class_10445 glint) {
if (this.mutableMesh.size() > 0 && commandQueue instanceof AccessRenderCommandQueue access) {
access.submitItem(matrices, displayContext, light, overlay, outlineColor, tints, quads, layer, glint, this.mutableMesh);
} else {
commandQueue.method_73480(matrices, displayContext, light, overlay, outlineColor, tints, quads, layer, glint);
}
}
public MutableMeshImpl getMutableMesh() {
return this.mutableMesh;
}
}
Download file