]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/models/BoundingBoxBiomeBorder.java
daf6b1ccf033ea776770ba29324ba50f8103b116
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / models / BoundingBoxBiomeBorder.java
1 package com.irtimaled.bbor.client.models;
2
3 import com.irtimaled.bbor.client.ClientRenderer;
4 import com.irtimaled.bbor.client.RenderCulling;
5 import com.irtimaled.bbor.client.renderers.AbstractRenderer;
6 import com.irtimaled.bbor.client.renderers.BiomeBorderRenderer;
7 import com.irtimaled.bbor.common.BoundingBoxType;
8 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
9 import com.irtimaled.bbor.common.models.Coords;
10
11 public class BoundingBoxBiomeBorder extends AbstractBoundingBox {
12     private static final AbstractRenderer<BoundingBoxBiomeBorder> RENDERER = ClientRenderer.registerRenderer(BoundingBoxBiomeBorder.class, () -> new BiomeBorderRenderer());
13
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;
19
20     public BoundingBoxBiomeBorder(Coords coords, boolean north, boolean east, boolean south, boolean west) {
21         super(BoundingBoxType.BiomeBorder);
22         this.coords = coords;
23         this.north = north;
24         this.east = east;
25         this.south = south;
26         this.west = west;
27     }
28
29     @Override
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;
35     }
36
37     @Override
38     protected double getDistanceX(double x) {
39         return x - coords.getX();
40     }
41
42     @Override
43     protected double getDistanceY(double y) {
44         return y - coords.getY();
45     }
46
47     @Override
48     protected double getDistanceZ(double z) {
49         return z - coords.getZ();
50     }
51
52     public Coords getCoords() {
53         return coords;
54     }
55
56     public boolean renderNorth() {
57         return north;
58     }
59
60     public boolean renderEast() {
61         return east;
62     }
63
64     public boolean renderSouth() {
65         return south;
66     }
67
68     public boolean renderWest() {
69         return west;
70     }
71
72     @Override
73     public AbstractRenderer<?> getRenderer() {
74         return RENDERER;
75     }
76
77     @Override
78     public boolean isVisibleCulling() {
79         return RenderCulling.isVisibleCulling(coords.getX(), coords.getY(), coords.getZ(), coords.getX() + 1, coords.getY() + 1, coords.getZ() + 1);
80     }
81 }