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