]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/LineRenderer.java
Update to 1.17.1 (#124)
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / renderers / LineRenderer.java
1 package com.irtimaled.bbor.client.renderers;
2
3 import com.irtimaled.bbor.client.config.BoundingBoxTypeHelper;
4 import com.irtimaled.bbor.client.config.ConfigManager;
5 import com.irtimaled.bbor.client.models.BoundingBoxLine;
6 import net.minecraft.client.util.math.MatrixStack;
7
8 import java.awt.*;
9 import java.util.Arrays;
10
11 public class LineRenderer extends AbstractRenderer<BoundingBoxLine> {
12     @Override
13     public void render(MatrixStack matrixStack, BoundingBoxLine boundingBox) {
14         Color color = BoundingBoxTypeHelper.getColor(boundingBox.getType());
15
16         if (boundingBox.getWidth() == 0) {
17             OffsetPoint startPoint = new OffsetPoint(boundingBox.getMinPoint()).offset(0, 0.001f, 0);
18             OffsetPoint endPoint = new OffsetPoint(boundingBox.getMaxPoint()).offset(0, 0.001f, 0);
19             renderLine(matrixStack, startPoint, endPoint, color);
20             return;
21         }
22
23         OffsetPoint[] cornerPoints = Arrays.stream(boundingBox.getCorners()).
24                 map(point -> new OffsetPoint(point).offset(0, 0.001f, 0)).
25                 toArray(OffsetPoint[]::new);
26
27         RenderHelper.polygonModeLine();
28         Renderer.startQuads()
29                 .setMatrixStack(matrixStack)
30                 .setColor(color)
31                 .addPoints(cornerPoints)
32                 .render();
33
34         if (!ConfigManager.fill.get()) return;
35         RenderQueue.deferRendering(() -> Renderer.startQuads()
36                 .setMatrixStack(matrixStack)
37                 .setColor(color)
38                 .setAlpha(30)
39                 .addPoints(cornerPoints)
40                 .render());
41     }
42 }