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;
7 import net.minecraft.client.util.math.MatrixStack;
11 public class BiomeBorderRenderer extends AbstractRenderer<BoundingBoxBiomeBorder> {
13 public void render(MatrixStack matrixStack, BoundingBoxBiomeBorder boundingBox) {
14 Coords coords = boundingBox.getCoords();
15 OffsetPoint northWest = new OffsetPoint(coords).offset(0, 0.001F, 0);
16 OffsetPoint northEast = northWest.offset(1, 0, 0);
17 OffsetPoint southWest = northWest.offset(0, 0, 1);
19 Color color = BoundingBoxTypeHelper.getColor(boundingBox.getType());
20 if (boundingBox.renderNorth()) {
21 render(matrixStack, northWest, northEast, color);
23 if (boundingBox.renderWest()) {
24 render(matrixStack, northWest, southWest, color);
26 if (ConfigManager.renderOnlyCurrentBiome.get()) {
27 OffsetPoint southEast = southWest.offset(1, 0, 0);
28 if (boundingBox.renderSouth()) {
29 render(matrixStack, southWest, southEast, color);
31 if (boundingBox.renderEast()) {
32 render(matrixStack, northEast, southEast, color);
37 private void render(MatrixStack matrixStack, OffsetPoint topCorner1, OffsetPoint topCorner2, Color color) {
40 if (topCorner1.getX() == topCorner2.getX()) {
41 xOffset = getOffset(topCorner1.getX());
43 zOffset = getOffset(topCorner1.getZ());
46 topCorner1 = topCorner1.offset(xOffset, 0, zOffset);
47 topCorner2 = topCorner2.offset(xOffset, 0, zOffset);
49 renderLine(matrixStack, topCorner1, topCorner2, color, false);
50 OffsetPoint bottomCorner2 = topCorner2.offset(0, 1, 0);
51 renderCuboid(matrixStack, new OffsetBox(topCorner1, bottomCorner2), color, true, 30);
52 OffsetPoint bottomCorner1 = topCorner1.offset(0, 1, 0);
53 renderLine(matrixStack, bottomCorner1, bottomCorner2, color, false);
56 private double getOffset(double value) {
57 return value > 0 ? -0.001F : 0.001F;