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
 | |
| 				);
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |