1 package com.irtimaled.bbor.client.models;
3 import com.irtimaled.bbor.client.RenderCulling;
4 import com.irtimaled.bbor.client.renderers.AbstractRenderer;
5 import com.irtimaled.bbor.client.renderers.BiomeBorderRenderer;
6 import com.irtimaled.bbor.common.BoundingBoxType;
7 import com.irtimaled.bbor.common.interop.CommonInterop;
8 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
9 import com.irtimaled.bbor.common.models.Coords;
11 public class BoundingBoxBiomeBorder extends AbstractBoundingBox {
12 private static final AbstractRenderer<BoundingBoxBiomeBorder> RENDERER = CommonInterop.registerRenderer(BoundingBoxBiomeBorder.class, () -> new BiomeBorderRenderer());
14 private final Coords coords;
15 private final boolean north;
16 private final boolean east;
17 private final boolean south;
18 private final boolean west;
20 public BoundingBoxBiomeBorder(Coords coords, boolean north, boolean east, boolean south, boolean west) {
21 super(BoundingBoxType.BiomeBorder);
30 public Boolean intersectsBounds(int minX, int minZ, int maxX, int maxZ) {
31 return coords.getX() >= minX &&
32 coords.getZ() >= minZ &&
33 coords.getX() <= maxX &&
34 coords.getZ() <= maxZ;
38 protected double getDistanceX(double x) {
39 return x - coords.getX();
43 protected double getDistanceY(double y) {
44 return y - coords.getY();
48 protected double getDistanceZ(double z) {
49 return z - coords.getZ();
52 public Coords getCoords() {
56 public boolean renderNorth() {
60 public boolean renderEast() {
64 public boolean renderSouth() {
68 public boolean renderWest() {
73 public AbstractRenderer<?> getRenderer() {
78 public boolean isVisibleCulling() {
79 return RenderCulling.isVisibleCulling(coords.getX(), coords.getY(), coords.getZ(), coords.getX() + 1, coords.getY() + 1, coords.getZ() + 1);