103 lines
6.0 KiB
Java
103 lines
6.0 KiB
Java
|
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.RenderType;
|
||
|
import net.minecraft.util.ARGB;
|
||
|
import net.minecraft.world.entity.Entity;
|
||
|
import net.minecraft.world.level.ChunkPos;
|
||
|
import net.minecraftforge.api.distmarker.Dist;
|
||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||
|
import org.joml.Matrix4f;
|
||
|
|
||
|
@OnlyIn(Dist.CLIENT)
|
||
|
public class ChunkBorderRenderer implements DebugRenderer.SimpleDebugRenderer {
|
||
|
private final Minecraft minecraft;
|
||
|
private static final int CELL_BORDER = ARGB.color(255, 0, 155, 155);
|
||
|
private static final int YELLOW = ARGB.color(255, 255, 255, 0);
|
||
|
|
||
|
public ChunkBorderRenderer(Minecraft p_113356_) {
|
||
|
this.minecraft = p_113356_;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void render(PoseStack p_113358_, MultiBufferSource p_113359_, double p_113360_, double p_113361_, double p_113362_) {
|
||
|
Entity entity = this.minecraft.gameRenderer.getMainCamera().getEntity();
|
||
|
float f = (float)(this.minecraft.level.getMinY() - p_113361_);
|
||
|
float f1 = (float)(this.minecraft.level.getMaxY() + 1 - p_113361_);
|
||
|
ChunkPos chunkpos = entity.chunkPosition();
|
||
|
float f2 = (float)(chunkpos.getMinBlockX() - p_113360_);
|
||
|
float f3 = (float)(chunkpos.getMinBlockZ() - p_113362_);
|
||
|
VertexConsumer vertexconsumer = p_113359_.getBuffer(RenderType.debugLineStrip(1.0));
|
||
|
Matrix4f matrix4f = p_113358_.last().pose();
|
||
|
|
||
|
for (int i = -16; i <= 32; i += 16) {
|
||
|
for (int j = -16; j <= 32; j += 16) {
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + i, f, f3 + j).setColor(1.0F, 0.0F, 0.0F, 0.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + i, f, f3 + j).setColor(1.0F, 0.0F, 0.0F, 0.5F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + i, f1, f3 + j).setColor(1.0F, 0.0F, 0.0F, 0.5F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + i, f1, f3 + j).setColor(1.0F, 0.0F, 0.0F, 0.0F);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for (int l = 2; l < 16; l += 2) {
|
||
|
int i2 = l % 4 == 0 ? CELL_BORDER : YELLOW;
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + l, f, f3).setColor(1.0F, 1.0F, 0.0F, 0.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + l, f, f3).setColor(i2);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + l, f1, f3).setColor(i2);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + l, f1, f3).setColor(1.0F, 1.0F, 0.0F, 0.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + l, f, f3 + 16.0F).setColor(1.0F, 1.0F, 0.0F, 0.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + l, f, f3 + 16.0F).setColor(i2);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + l, f1, f3 + 16.0F).setColor(i2);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + l, f1, f3 + 16.0F).setColor(1.0F, 1.0F, 0.0F, 0.0F);
|
||
|
}
|
||
|
|
||
|
for (int i1 = 2; i1 < 16; i1 += 2) {
|
||
|
int j2 = i1 % 4 == 0 ? CELL_BORDER : YELLOW;
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f, f3 + i1).setColor(1.0F, 1.0F, 0.0F, 0.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f, f3 + i1).setColor(j2);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f1, f3 + i1).setColor(j2);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f1, f3 + i1).setColor(1.0F, 1.0F, 0.0F, 0.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + 16.0F, f, f3 + i1).setColor(1.0F, 1.0F, 0.0F, 0.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + 16.0F, f, f3 + i1).setColor(j2);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + 16.0F, f1, f3 + i1).setColor(j2);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + 16.0F, f1, f3 + i1).setColor(1.0F, 1.0F, 0.0F, 0.0F);
|
||
|
}
|
||
|
|
||
|
for (int j1 = this.minecraft.level.getMinY(); j1 <= this.minecraft.level.getMaxY() + 1; j1 += 2) {
|
||
|
float f4 = (float)(j1 - p_113361_);
|
||
|
int k = j1 % 8 == 0 ? CELL_BORDER : YELLOW;
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f4, f3).setColor(1.0F, 1.0F, 0.0F, 0.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f4, f3).setColor(k);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f4, f3 + 16.0F).setColor(k);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + 16.0F, f4, f3 + 16.0F).setColor(k);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + 16.0F, f4, f3).setColor(k);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f4, f3).setColor(k);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f4, f3).setColor(1.0F, 1.0F, 0.0F, 0.0F);
|
||
|
}
|
||
|
|
||
|
vertexconsumer = p_113359_.getBuffer(RenderType.debugLineStrip(2.0));
|
||
|
|
||
|
for (int k1 = 0; k1 <= 16; k1 += 16) {
|
||
|
for (int k2 = 0; k2 <= 16; k2 += 16) {
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + k1, f, f3 + k2).setColor(0.25F, 0.25F, 1.0F, 0.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + k1, f, f3 + k2).setColor(0.25F, 0.25F, 1.0F, 1.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + k1, f1, f3 + k2).setColor(0.25F, 0.25F, 1.0F, 1.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + k1, f1, f3 + k2).setColor(0.25F, 0.25F, 1.0F, 0.0F);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for (int l1 = this.minecraft.level.getMinY(); l1 <= this.minecraft.level.getMaxY() + 1; l1 += 16) {
|
||
|
float f5 = (float)(l1 - p_113361_);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f5, f3).setColor(0.25F, 0.25F, 1.0F, 0.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f5, f3).setColor(0.25F, 0.25F, 1.0F, 1.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f5, f3 + 16.0F).setColor(0.25F, 0.25F, 1.0F, 1.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + 16.0F, f5, f3 + 16.0F).setColor(0.25F, 0.25F, 1.0F, 1.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2 + 16.0F, f5, f3).setColor(0.25F, 0.25F, 1.0F, 1.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f5, f3).setColor(0.25F, 0.25F, 1.0F, 1.0F);
|
||
|
vertexconsumer.addVertex(matrix4f, f2, f5, f3).setColor(0.25F, 0.25F, 1.0F, 0.0F);
|
||
|
}
|
||
|
}
|
||
|
}
|