VulkanShader_1.21.10-0.0.4-alpha.jar
Download file
package net.vulkanmod.mixin.render.clouds;
import net.minecraft.class_243;
import net.minecraft.class_3300;
import net.minecraft.class_4063;
import net.minecraft.class_638;
import net.minecraft.class_761;
import net.minecraft.class_9909;
import net.minecraft.class_9916;
import net.minecraft.class_9960;
import net.vulkanmod.render.profiling.Profiler;
import net.vulkanmod.render.sky.CloudRenderer;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
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.callback.CallbackInfo;
@Mixin({class_761.class})
public abstract class LevelRendererM {
@Shadow
private int field_4073;
@Shadow
private @Nullable class_638 field_4085;
@Shadow
@Final
private class_9960 field_53081;
@Unique
private CloudRenderer cloudRenderer;
@Inject(
method = {"method_62204"},
at = {@At("HEAD")},
cancellable = true
)
public void addCloudsPass(class_9909 frameGraphBuilder, class_4063 cloudStatus, class_243 camPos, float partialTicks, int i, float g, CallbackInfo ci) {
if (this.cloudRenderer == null) {
this.cloudRenderer = new CloudRenderer();
}
class_9916 framePass = frameGraphBuilder.method_61911("clouds");
if (this.field_53081.field_53096 != null) {
this.field_53081.field_53096 = framePass.method_61933(this.field_53081.field_53096);
} else {
this.field_53081.field_53091 = framePass.method_61933(this.field_53081.field_53091);
}
framePass.method_61929(() -> {
Profiler profiler = Profiler.getMainProfiler();
profiler.push("Clouds");
this.cloudRenderer.renderClouds(this.field_4085, (float)this.field_4073, partialTicks, camPos.method_10216(), camPos.method_10214(), camPos.method_10215());
profiler.pop();
});
ci.cancel();
}
@Inject(
method = {"method_3279"},
at = {@At("RETURN")}
)
private void onAllChanged(CallbackInfo ci) {
if (this.cloudRenderer != null) {
this.cloudRenderer.resetBuffer();
}
}
@Inject(
method = {"method_14491"},
at = {@At("RETURN")}
)
private void onReload(class_3300 resourceManager, CallbackInfo ci) {
if (this.cloudRenderer != null) {
this.cloudRenderer.loadTexture();
}
}
}
Download file