]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/models/BoundingBoxBeacon.java
Allow colors to be configured
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / models / BoundingBoxBeacon.java
1 package com.irtimaled.bbor.client.models;
2
3 import com.irtimaled.bbor.common.BoundingBoxType;
4 import com.irtimaled.bbor.common.models.BoundingBoxCuboid;
5 import com.irtimaled.bbor.common.models.Coords;
6
7 public class BoundingBoxBeacon extends BoundingBoxCuboid {
8     private final Coords coords;
9     private final int level;
10
11     private BoundingBoxBeacon(Coords coords, Coords minCoords, Coords maxCoords, int level, BoundingBoxType beacon) {
12         super(minCoords, maxCoords, beacon);
13         this.coords = coords;
14         this.level = level;
15     }
16
17     public static BoundingBoxBeacon from(Coords coords, int level) {
18         BoundingBoxType type = BoundingBoxType.Beacon;
19         return from(coords, level, type);
20     }
21
22     public static BoundingBoxBeacon from(Coords coords, int level, BoundingBoxType type) {
23         int range = 10 + (10 * level);
24         Coords minCoords = new Coords(coords.getX() - range, coords.getY() - range, coords.getZ() - range);
25         Coords maxCoords = new Coords(coords.getX() + range, 324 + range, coords.getZ() + range);
26         return new BoundingBoxBeacon(coords, minCoords, maxCoords, level, type);
27     }
28
29     @Override
30     public int hashCode() {
31         return coords.hashCode();
32     }
33
34     @Override
35     public boolean equals(Object obj) {
36         if (this == obj) return true;
37         if (obj == null || getClass() != obj.getClass()) return false;
38         BoundingBoxBeacon other = (BoundingBoxBeacon) obj;
39         return coords.equals(other.coords);
40     }
41
42     public Coords getCoords() {
43         return coords;
44     }
45
46     public int getLevel() {
47         return level;
48     }
49 }