]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/BiomeBorderRenderer.java
Move config to client module
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / renderers / BiomeBorderRenderer.java
1 package com.irtimaled.bbor.client.renderers;
2
3 import com.irtimaled.bbor.client.config.ConfigManager;
4 import com.irtimaled.bbor.client.models.BoundingBoxBiomeBorder;
5 import com.irtimaled.bbor.common.models.Coords;
6
7 import java.awt.*;
8
9 public class BiomeBorderRenderer extends AbstractRenderer<BoundingBoxBiomeBorder> {
10     @Override
11     public void render(BoundingBoxBiomeBorder boundingBox) {
12         Coords coords = boundingBox.getCoords();
13         OffsetPoint northWest = new OffsetPoint(coords).offset(0, 0.001F, 0);
14         OffsetPoint northEast = northWest.offset(1, 0, 0);
15         OffsetPoint southWest = northWest.offset(0, 0, 1);
16
17         Color color = Color.GREEN;
18         if (boundingBox.renderNorth()) {
19             render(northWest, northEast, color);
20         }
21         if (boundingBox.renderWest()) {
22             render(northWest, southWest, color);
23         }
24         if(ConfigManager.renderOnlyCurrentBiome.get()) {
25             OffsetPoint southEast = southWest.offset(1, 0, 0);
26             if (boundingBox.renderSouth()) {
27                 render(southWest, southEast, color);
28             }
29             if (boundingBox.renderEast()) {
30                 render(northEast, southEast, color);
31             }
32         }
33     }
34
35     private void render(OffsetPoint topCorner1, OffsetPoint topCorner2, Color color) {
36         double xOffset = 0d;
37         double zOffset = 0d;
38         if(topCorner1.getX() == topCorner2.getX())
39         {
40             xOffset = getOffset(topCorner1.getX());
41         }
42         else
43         {
44             zOffset = getOffset(topCorner1.getZ());
45         }
46
47         topCorner1 = topCorner1.offset(xOffset, 0, zOffset);
48         topCorner2 = topCorner2.offset(xOffset, 0, zOffset);
49
50         renderLine(topCorner1, topCorner2, color);
51         OffsetPoint bottomCorner2 = topCorner2.offset(0, 1, 0);
52         renderFilledFaces(topCorner1, bottomCorner2, color, 30);
53         OffsetPoint bottomCorner1 = topCorner1.offset(0, 1, 0);
54         renderLine(bottomCorner1, bottomCorner2, color);
55     }
56
57     private double getOffset(double value) {
58         return value > 0 ? -0.001F : 0.001F;
59     }
60 }