001    package net.minecraft.world;
002    
003    public 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    }