]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/models/BoundingBoxConduit.java
General performance improvements and serverside fixes
[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.client.ClientRenderer;
4 import com.irtimaled.bbor.client.renderers.AbstractRenderer;
5 import com.irtimaled.bbor.client.renderers.ConduitRenderer;
6 import com.irtimaled.bbor.common.BoundingBoxType;
7 import com.irtimaled.bbor.common.TypeHelper;
8 import com.irtimaled.bbor.common.models.Coords;
9
10 public class BoundingBoxConduit extends BoundingBoxSphere {
11     private static final AbstractRenderer<BoundingBoxConduit> RENDERER = ClientRenderer.registerRenderer(BoundingBoxConduit.class, () -> new ConduitRenderer());
12
13     private final int level;
14
15     private BoundingBoxConduit(Coords coords, int level, int radius) {
16         super(new Point(coords).offset(0.5D, 0.5D, 0.5D), radius, BoundingBoxType.Conduit);
17
18         this.level = level;
19     }
20
21     public BoundingBoxConduit(Coords coords, int level) {
22         this(coords, level, 16 * level);
23     }
24
25     @Override
26     public int hashCode() {
27         return TypeHelper.combineHashCodes(getType().hashCode(), getPoint().hashCode());
28     }
29
30     @Override
31     public boolean equals(Object obj) {
32         if (this == obj) return true;
33         if (obj == null || getClass() != obj.getClass()) return false;
34         BoundingBoxConduit other = (BoundingBoxConduit) obj;
35         return getPoint().equals(other.getPoint());
36     }
37
38     public int getLevel() {
39         return level;
40     }
41
42     @Override
43     public AbstractRenderer<?> getRenderer() {
44         return RENDERER;
45     }
46 }