59 lines
2 KiB
Java
59 lines
2 KiB
Java
package net.minecraft.client.renderer.debug;
|
|
|
|
import com.mojang.blaze3d.vertex.PoseStack;
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.renderer.MultiBufferSource;
|
|
import net.minecraft.core.BlockPos;
|
|
import net.minecraft.tags.FluidTags;
|
|
import net.minecraft.world.level.LevelReader;
|
|
import net.minecraft.world.level.material.FluidState;
|
|
import net.minecraft.world.phys.AABB;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class WaterDebugRenderer implements DebugRenderer.SimpleDebugRenderer {
|
|
private final Minecraft minecraft;
|
|
|
|
public WaterDebugRenderer(Minecraft minecraft) {
|
|
this.minecraft = minecraft;
|
|
}
|
|
|
|
@Override
|
|
public void render(PoseStack poseStack, MultiBufferSource bufferSource, double camX, double camY, double camZ) {
|
|
BlockPos blockPos = this.minecraft.player.blockPosition();
|
|
LevelReader levelReader = this.minecraft.player.level();
|
|
|
|
for (BlockPos blockPos2 : BlockPos.betweenClosed(blockPos.offset(-10, -10, -10), blockPos.offset(10, 10, 10))) {
|
|
FluidState fluidState = levelReader.getFluidState(blockPos2);
|
|
if (fluidState.is(FluidTags.WATER)) {
|
|
double d = blockPos2.getY() + fluidState.getHeight(levelReader, blockPos2);
|
|
DebugRenderer.renderFilledBox(
|
|
poseStack,
|
|
bufferSource,
|
|
new AABB(blockPos2.getX() + 0.01F, blockPos2.getY() + 0.01F, blockPos2.getZ() + 0.01F, blockPos2.getX() + 0.99F, d, blockPos2.getZ() + 0.99F)
|
|
.move(-camX, -camY, -camZ),
|
|
0.0F,
|
|
1.0F,
|
|
0.0F,
|
|
0.15F
|
|
);
|
|
}
|
|
}
|
|
|
|
for (BlockPos blockPos2x : BlockPos.betweenClosed(blockPos.offset(-10, -10, -10), blockPos.offset(10, 10, 10))) {
|
|
FluidState fluidState = levelReader.getFluidState(blockPos2x);
|
|
if (fluidState.is(FluidTags.WATER)) {
|
|
DebugRenderer.renderFloatingText(
|
|
poseStack,
|
|
bufferSource,
|
|
String.valueOf(fluidState.getAmount()),
|
|
blockPos2x.getX() + 0.5,
|
|
(double)(blockPos2x.getY() + fluidState.getHeight(levelReader, blockPos2x)),
|
|
blockPos2x.getZ() + 0.5,
|
|
-16777216
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|