1 package com.irtimaled.bbor.client.models;
3 import com.irtimaled.bbor.common.BoundingBoxType;
4 import com.irtimaled.bbor.common.models.BoundingBoxCuboid;
5 import com.irtimaled.bbor.common.models.Coords;
7 public class BoundingBoxBeacon extends BoundingBoxCuboid {
8 private final Coords coords;
9 private final int level;
11 private BoundingBoxBeacon(Coords coords, Coords minCoords, Coords maxCoords, int level, BoundingBoxType beacon) {
12 super(minCoords, maxCoords, beacon);
17 public static BoundingBoxBeacon from(Coords coords, int level) {
18 BoundingBoxType type = BoundingBoxType.Beacon;
19 return from(coords, level, type);
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);
30 public int hashCode() {
31 return coords.hashCode();
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);
42 public Coords getCoords() {
46 public int getLevel() {