1 package com.irtimaled.bbor.client.models;
3 import com.irtimaled.bbor.client.renderers.AbstractRenderer;
4 import com.irtimaled.bbor.client.renderers.BeaconRenderer;
5 import com.irtimaled.bbor.common.BoundingBoxType;
6 import com.irtimaled.bbor.common.interop.CommonInterop;
7 import com.irtimaled.bbor.common.models.BoundingBoxCuboid;
8 import com.irtimaled.bbor.common.models.Coords;
10 public class BoundingBoxBeacon extends BoundingBoxCuboid {
11 private static final AbstractRenderer<BoundingBoxBeacon> RENDERER = CommonInterop.registerRenderer(BoundingBoxBeacon.class, () -> new BeaconRenderer());
13 private final Coords coords;
14 private final int level;
16 private BoundingBoxBeacon(Coords coords, Coords minCoords, Coords maxCoords, int level, BoundingBoxType type) {
17 super(minCoords, maxCoords, type);
22 public static BoundingBoxBeacon from(Coords coords, int level) {
23 return from(coords, level, BoundingBoxType.Beacon);
26 public static BoundingBoxBeacon from(Coords coords, int level, BoundingBoxType type) {
27 int range = 10 + (10 * level);
28 Coords minCoords = new Coords(coords.getX() - range, coords.getY() - range, coords.getZ() - range);
29 Coords maxCoords = new Coords(coords.getX() + range, 324 + range, coords.getZ() + range);
30 return new BoundingBoxBeacon(coords, minCoords, maxCoords, level, type);
34 public int hashCode() {
35 return coords.hashCode();
39 public boolean equals(Object obj) {
40 if (this == obj) return true;
41 if (obj == null || getClass() != obj.getClass()) return false;
42 BoundingBoxBeacon other = (BoundingBoxBeacon) obj;
43 return coords.equals(other.coords);
46 public Coords getCoords() {
50 public int getLevel() {
55 public AbstractRenderer<?> getRenderer() {