File size: 2,833 Bytes
d46f4a3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package net.minecraft.client.renderer.debug;

import com.mojang.blaze3d.vertex.PoseStack;
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;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;

@OnlyIn(Dist.CLIENT)
public class WaterDebugRenderer implements DebugRenderer.SimpleDebugRenderer {
    private final Minecraft minecraft;

    public WaterDebugRenderer(Minecraft p_113717_) {
        this.minecraft = p_113717_;
    }

    @Override
    public void render(PoseStack p_113719_, MultiBufferSource p_113720_, double p_113721_, double p_113722_, double p_113723_) {
        BlockPos blockpos = this.minecraft.player.blockPosition();
        LevelReader levelreader = this.minecraft.player.level();

        for (BlockPos blockpos1 : BlockPos.betweenClosed(blockpos.offset(-10, -10, -10), blockpos.offset(10, 10, 10))) {
            FluidState fluidstate = levelreader.getFluidState(blockpos1);
            if (fluidstate.is(FluidTags.WATER)) {
                double d0 = (double)((float)blockpos1.getY() + fluidstate.getHeight(levelreader, blockpos1));
                DebugRenderer.renderFilledBox(
                    p_113719_,
                    p_113720_,
                    new AABB(
                            (double)((float)blockpos1.getX() + 0.01F),
                            (double)((float)blockpos1.getY() + 0.01F),
                            (double)((float)blockpos1.getZ() + 0.01F),
                            (double)((float)blockpos1.getX() + 0.99F),
                            d0,
                            (double)((float)blockpos1.getZ() + 0.99F)
                        )
                        .move(-p_113721_, -p_113722_, -p_113723_),
                    0.0F,
                    1.0F,
                    0.0F,
                    0.15F
                );
            }
        }

        for (BlockPos blockpos2 : BlockPos.betweenClosed(blockpos.offset(-10, -10, -10), blockpos.offset(10, 10, 10))) {
            FluidState fluidstate1 = levelreader.getFluidState(blockpos2);
            if (fluidstate1.is(FluidTags.WATER)) {
                DebugRenderer.renderFloatingText(
                    p_113719_,
                    p_113720_,
                    String.valueOf(fluidstate1.getAmount()),
                    (double)blockpos2.getX() + 0.5,
                    (double)((float)blockpos2.getY() + fluidstate1.getHeight(levelreader, blockpos2)),
                    (double)blockpos2.getZ() + 0.5,
                    -16777216
                );
            }
        }
    }
}