1 package com.irtimaled.bbor.client.renderers;
3 import com.irtimaled.bbor.client.config.BoundingBoxTypeHelper;
4 import com.irtimaled.bbor.client.config.ConfigManager;
5 import com.irtimaled.bbor.client.models.BoundingBoxBiomeBorder;
6 import com.irtimaled.bbor.common.models.Coords;
10 public class BiomeBorderRenderer extends AbstractRenderer<BoundingBoxBiomeBorder> {
12 public void render(BoundingBoxBiomeBorder boundingBox) {
13 Coords coords = boundingBox.getCoords();
14 OffsetPoint northWest = new OffsetPoint(coords).offset(0, 0.001F, 0);
15 OffsetPoint northEast = northWest.offset(1, 0, 0);
16 OffsetPoint southWest = northWest.offset(0, 0, 1);
18 Color color = BoundingBoxTypeHelper.getColor(boundingBox.getType());
19 if (boundingBox.renderNorth()) {
20 render(northWest, northEast, color);
22 if (boundingBox.renderWest()) {
23 render(northWest, southWest, color);
25 if (ConfigManager.renderOnlyCurrentBiome.get()) {
26 OffsetPoint southEast = southWest.offset(1, 0, 0);
27 if (boundingBox.renderSouth()) {
28 render(southWest, southEast, color);
30 if (boundingBox.renderEast()) {
31 render(northEast, southEast, color);
36 private void render(OffsetPoint topCorner1, OffsetPoint topCorner2, Color color) {
39 if (topCorner1.getX() == topCorner2.getX()) {
40 xOffset = getOffset(topCorner1.getX());
42 zOffset = getOffset(topCorner1.getZ());
45 topCorner1 = topCorner1.offset(xOffset, 0, zOffset);
46 topCorner2 = topCorner2.offset(xOffset, 0, zOffset);
48 renderLine(topCorner1, topCorner2, color);
49 OffsetPoint bottomCorner2 = topCorner2.offset(0, 1, 0);
50 renderFilledFaces(topCorner1, bottomCorner2, color);
51 OffsetPoint bottomCorner1 = topCorner1.offset(0, 1, 0);
52 renderLine(bottomCorner1, bottomCorner2, color);
55 private double getOffset(double value) {
56 return value > 0 ? -0.001F : 0.001F;