]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - java/com/irtimaled/bbor/BoundingBox.java
198ee323ae6fee1f9ea7fb081c4feee8db7c9753
[BoundingBoxOutlineReloaded.git] / java / com / irtimaled / bbor / BoundingBox.java
1 package com.irtimaled.bbor;
2
3 import net.minecraft.util.math.AxisAlignedBB;
4 import net.minecraft.util.math.BlockPos;
5
6 import java.awt.*;
7
8 public abstract class BoundingBox {
9     private final Color color;
10     private final BlockPos minBlockPos;
11     private final BlockPos maxBlockPos;
12
13     protected BoundingBox(BlockPos minBlockPos, BlockPos maxBlockPos, Color color) {
14         this.minBlockPos = minBlockPos;
15         this.maxBlockPos = maxBlockPos;
16         this.color = color;
17     }
18
19     @Override
20     public int hashCode() {
21         final int prime = 31;
22         int result = 1;
23         result = prime * result + minBlockPos.hashCode();
24         result = prime * result + maxBlockPos.hashCode();
25         return result;
26     }
27
28     @Override
29     public boolean equals(Object obj) {
30         if (this == obj)
31             return true;
32         if (obj == null)
33             return false;
34         if (getClass() != obj.getClass())
35             return false;
36         BoundingBox other = (BoundingBox) obj;
37         if (!minBlockPos.equals(other.minBlockPos))
38             return false;
39         if (!maxBlockPos.equals(other.maxBlockPos))
40             return false;
41         return true;
42     }
43
44     @Override
45     public String toString() {
46         return "(" + minBlockPos.toString() + "; " + maxBlockPos.toString() + ")";
47     }
48
49     public AxisAlignedBB toAxisAlignedBB() {
50         return toAxisAlignedBB(true);
51     }
52
53     public AxisAlignedBB toAxisAlignedBB(boolean extendMaxByOne) {
54         AxisAlignedBB axisAlignedBB = new AxisAlignedBB(minBlockPos, maxBlockPos);
55         if (extendMaxByOne)
56             return axisAlignedBB.addCoord(1, 1, 1);
57         return axisAlignedBB;
58     }
59
60     public BlockPos getMinBlockPos() {
61         return minBlockPos;
62     }
63
64     public BlockPos getMaxBlockPos() {
65         return maxBlockPos;
66     }
67
68     public Color getColor() {
69         return color;
70     }
71 }