]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/models/BoundingBoxBeacon.java
Move client only boxes to client only namespace
[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) {
12         super(minCoords, maxCoords, BoundingBoxType.Beacon);
13         this.coords = coords;
14         this.level = level;
15     }
16
17     public static BoundingBoxBeacon from(Coords coords, int level) {
18         int range = 10 + (10 * level);
19         Coords minCoords = new Coords(coords.getX() - range, coords.getY() - range, coords.getZ() - range);
20         Coords maxCoords = new Coords(coords.getX() + range, 324 + range, coords.getZ() + range);
21         return new BoundingBoxBeacon(coords, minCoords, maxCoords, level);
22     }
23
24     @Override
25     public int hashCode() {
26         return coords.hashCode();
27     }
28
29     @Override
30     public boolean equals(Object obj) {
31         if (this == obj) return true;
32         if (obj == null || getClass() != obj.getClass()) return false;
33         BoundingBoxBeacon other = (BoundingBoxBeacon) obj;
34         return coords.equals(other.coords);
35     }
36
37     public Coords getCoords() {
38         return coords;
39     }
40
41     public int getLevel() {
42         return level;
43     }
44 }