package universalteam.universalcore.utils;
import codechicken.lib.vec.BlockCoord;
import net.minecraft.world.chunk.Chunk;
public class ChunkCoord
{
public int chunkX;
public int chunkZ;
public ChunkCoord(Chunk chunk)
{
this.chunkX = chunk.xPosition;
this.chunkZ = chunk.zPosition;
}
public ChunkCoord(int x, int z)
{
this.chunkX = x;
this.chunkZ = z;
}
public ChunkCoord()
{
this(0, 0);
}
public ChunkCoord(ChunkCoord cCoord)
{
this.chunkX = cCoord.chunkX;
this.chunkZ = cCoord.chunkZ;
}
public int getCenterX()
{
return (this.chunkX << 4) + 8;
}
public int getCenterZ()
{
return (this.chunkZ << 4) + 8;
}
public boolean isEqual(ChunkCoord cCoord)
{
return (this.chunkX == cCoord.chunkX) && (this.chunkZ == cCoord.chunkZ);
}
public static ChunkCoord getChunkCoordFromBlockCoords(int x, int z)
{
int chunkX = (int) Math.floor(x / 16);
int chunkZ = (int) Math.floor(z / 16);
return new ChunkCoord(chunkX, chunkZ);
}
public static ChunkCoord getChunkCoordFromBlockCoord(BlockCoord bCoord)
{
return getChunkCoordFromBlockCoords(bCoord.x, bCoord.z);
}
@Override
public Object clone()
{
return new ChunkCoord(this);
}
@Override
public String toString()
{
return "ChunkCoord: [chunkX: " + this.chunkX + ", chunkZ: " + this.chunkZ + "]";
}
@Override
public int hashCode()
{
return ("chunkX:" + this.chunkX + "chunkZ:" + this.chunkZ).hashCode();
}
@Override
public boolean equals(Object obj)
{
return (obj instanceof ChunkCoord) && isEqual((ChunkCoord) obj);
}
}