]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/models/BoundingBoxConduit.java
Add conduit processing and rendering
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / models / BoundingBoxConduit.java
1 package com.irtimaled.bbor.client.models;
2
3 import com.irtimaled.bbor.common.BoundingBoxType;
4 import com.irtimaled.bbor.common.TypeHelper;
5 import com.irtimaled.bbor.common.models.BoundingBoxSphere;
6 import com.irtimaled.bbor.common.models.Coords;
7
8 public class BoundingBoxConduit extends BoundingBoxSphere {
9     private final int level;
10
11     private BoundingBoxConduit(Coords coords, int level, int radius) {
12         super(coords, radius, BoundingBoxType.Conduit);
13         setCenterOffsets(0.5, 0.5, 0.5);
14
15         this.level = level;
16     }
17
18     public static BoundingBoxConduit from(Coords coords, int level) {
19         int radius = 16 * level;
20         return new BoundingBoxConduit(coords, level, radius);
21     }
22
23     @Override
24     public int hashCode() {
25         return TypeHelper.combineHashCodes(getTypeName().hashCode(), getCenter().hashCode());
26     }
27
28     @Override
29     public boolean equals(Object obj) {
30         if (this == obj) return true;
31         if (obj == null || getClass() != obj.getClass()) return false;
32         BoundingBoxConduit other = (BoundingBoxConduit) obj;
33         return getCenter().equals(other.getCenter());
34     }
35
36     public int getLevel() {
37         return level;
38     }
39 }