001package net.minecraft.world;
002
003public class ChunkCoordIntPair
004{
005    /** The X position of this Chunk Coordinate Pair */
006    public final int chunkXPos;
007
008    /** The Z position of this Chunk Coordinate Pair */
009    public final int chunkZPos;
010
011    public ChunkCoordIntPair(int par1, int par2)
012    {
013        this.chunkXPos = par1;
014        this.chunkZPos = par2;
015    }
016
017    /**
018     * converts a chunk coordinate pair to an integer (suitable for hashing)
019     */
020    public static long chunkXZ2Int(int par0, int par1)
021    {
022        return (long)par0 & 4294967295L | ((long)par1 & 4294967295L) << 32;
023    }
024
025    public int hashCode()
026    {
027        long var1 = chunkXZ2Int(this.chunkXPos, this.chunkZPos);
028        int var3 = (int)var1;
029        int var4 = (int)(var1 >> 32);
030        return var3 ^ var4;
031    }
032
033    public boolean equals(Object par1Obj)
034    {
035        ChunkCoordIntPair var2 = (ChunkCoordIntPair)par1Obj;
036        return var2.chunkXPos == this.chunkXPos && var2.chunkZPos == this.chunkZPos;
037    }
038
039    public int getCenterXPos()
040    {
041        return (this.chunkXPos << 4) + 8;
042    }
043
044    public int getCenterZPosition()
045    {
046        return (this.chunkZPos << 4) + 8;
047    }
048
049    public ChunkPosition getChunkPosition(int par1)
050    {
051        return new ChunkPosition(this.getCenterXPos(), par1, this.getCenterZPosition());
052    }
053
054    public String toString()
055    {
056        return "[" + this.chunkXPos + ", " + this.chunkZPos + "]";
057    }
058}