fabric-rendering-fluids-v1-3.1.38+86b3ae576f.jar
Download file
package net.fabricmc.fabric.impl.client.rendering.fluid;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler;
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRendering;
import net.minecraft.class_1920;
import net.minecraft.class_2338;
import net.minecraft.class_2680;
import net.minecraft.class_3610;
import net.minecraft.class_4588;
import net.minecraft.class_775;
@Environment(EnvType.CLIENT)
public class FluidRenderingImpl {
private static final ThreadLocal<FluidRendering.DefaultRenderer> CURRENT_DEFAULT_RENDERER = new ThreadLocal();
private static final ThreadLocal<FluidRenderHandlerInfo> CURRENT_INFO = ThreadLocal.withInitial(FluidRenderHandlerInfo::new);
private static class_775 vanillaRenderer;
public static void render(FluidRenderHandler handler, class_1920 world, class_2338 pos, class_4588 vertexConsumer, class_2680 blockState, class_3610 fluidState, FluidRendering.DefaultRenderer defaultRenderer) {
CURRENT_DEFAULT_RENDERER.set(defaultRenderer);
try {
handler.renderFluid(pos, world, vertexConsumer, blockState, fluidState);
} finally {
CURRENT_DEFAULT_RENDERER.remove();
}
}
public static void renderDefault(FluidRenderHandler handler, class_1920 world, class_2338 pos, class_4588 vertexConsumer, class_2680 blockState, class_3610 fluidState) {
FluidRendering.DefaultRenderer renderer = (FluidRendering.DefaultRenderer)CURRENT_DEFAULT_RENDERER.get();
if (renderer != null) {
renderer.render(handler, world, pos, vertexConsumer, blockState, fluidState);
} else {
renderVanillaDefault(handler, world, pos, vertexConsumer, blockState, fluidState);
}
}
public static void renderVanillaDefault(FluidRenderHandler handler, class_1920 world, class_2338 pos, class_4588 vertexConsumer, class_2680 blockState, class_3610 fluidState) {
FluidRenderHandlerInfo info = (FluidRenderHandlerInfo)CURRENT_INFO.get();
info.setup(handler, world, pos, fluidState);
try {
vanillaRenderer.method_3347(world, pos, vertexConsumer, blockState, fluidState);
} finally {
info.clear();
}
}
public static void setVanillaRenderer(class_775 vanillaRenderer) {
FluidRenderingImpl.vanillaRenderer = vanillaRenderer;
}
public static FluidRenderHandlerInfo getCurrentInfo() {
return (FluidRenderHandlerInfo)CURRENT_INFO.get();
}
}
Download file