Spaces:
Build error
Build error
File size: 2,891 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 67 68 69 70 71 72 73 74 75 76 77 78 |
package net.minecraft.client.renderer.debug;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.Octree;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.ShapeRenderer;
import net.minecraft.client.renderer.culling.Frustum;
import net.minecraft.util.Mth;
import net.minecraft.world.phys.AABB;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.apache.commons.lang3.mutable.MutableInt;
@OnlyIn(Dist.CLIENT)
public class OctreeDebugRenderer {
private final Minecraft minecraft;
public OctreeDebugRenderer(Minecraft p_368722_) {
this.minecraft = p_368722_;
}
public void render(PoseStack p_368352_, Frustum p_366121_, MultiBufferSource p_363548_, double p_363763_, double p_367605_, double p_361347_) {
Octree octree = this.minecraft.levelRenderer.getSectionOcclusionGraph().getOctree();
MutableInt mutableint = new MutableInt(0);
octree.visitNodes(
(p_367461_, p_361624_, p_368817_, p_363024_) -> this.renderNode(
p_367461_, p_368352_, p_363548_, p_363763_, p_367605_, p_361347_, p_368817_, p_361624_, mutableint, p_363024_
),
p_366121_,
32
);
}
private void renderNode(
Octree.Node p_365618_,
PoseStack p_361623_,
MultiBufferSource p_362449_,
double p_368967_,
double p_363341_,
double p_365959_,
int p_362077_,
boolean p_364236_,
MutableInt p_366104_,
boolean p_362959_
) {
AABB aabb = p_365618_.getAABB();
double d0 = aabb.getXsize();
long i = Math.round(d0 / 16.0);
if (i == 1L) {
p_366104_.add(1);
double d1 = aabb.getCenter().x;
double d2 = aabb.getCenter().y;
double d3 = aabb.getCenter().z;
int k = p_362959_ ? -16711936 : -1;
DebugRenderer.renderFloatingText(p_361623_, p_362449_, String.valueOf(p_366104_.getValue()), d1, d2, d3, k, 0.3F);
}
VertexConsumer vertexconsumer = p_362449_.getBuffer(RenderType.lines());
long j = i + 5L;
ShapeRenderer.renderLineBox(
p_361623_,
vertexconsumer,
aabb.deflate(0.1 * (double)p_362077_).move(-p_368967_, -p_363341_, -p_365959_),
getColorComponent(j, 0.3F),
getColorComponent(j, 0.8F),
getColorComponent(j, 0.5F),
p_364236_ ? 0.4F : 1.0F
);
}
private static float getColorComponent(long p_368917_, float p_363248_) {
float f = 0.1F;
return Mth.frac(p_363248_ * (float)p_368917_) * 0.9F + 0.1F;
}
} |