001 package net.minecraft.util; 002 003 public class ChunkCoordinates implements Comparable 004 { 005 public int posX; 006 007 /** the y coordinate */ 008 public int posY; 009 010 /** the z coordinate */ 011 public int posZ; 012 013 public ChunkCoordinates() {} 014 015 public ChunkCoordinates(int par1, int par2, int par3) 016 { 017 this.posX = par1; 018 this.posY = par2; 019 this.posZ = par3; 020 } 021 022 public ChunkCoordinates(ChunkCoordinates par1ChunkCoordinates) 023 { 024 this.posX = par1ChunkCoordinates.posX; 025 this.posY = par1ChunkCoordinates.posY; 026 this.posZ = par1ChunkCoordinates.posZ; 027 } 028 029 public boolean equals(Object par1Obj) 030 { 031 if (!(par1Obj instanceof ChunkCoordinates)) 032 { 033 return false; 034 } 035 else 036 { 037 ChunkCoordinates var2 = (ChunkCoordinates)par1Obj; 038 return this.posX == var2.posX && this.posY == var2.posY && this.posZ == var2.posZ; 039 } 040 } 041 042 public int hashCode() 043 { 044 return this.posX + this.posZ << 8 + this.posY << 16; 045 } 046 047 /** 048 * Compare the coordinate with another coordinate 049 */ 050 public int compareChunkCoordinate(ChunkCoordinates par1ChunkCoordinates) 051 { 052 return this.posY == par1ChunkCoordinates.posY ? (this.posZ == par1ChunkCoordinates.posZ ? this.posX - par1ChunkCoordinates.posX : this.posZ - par1ChunkCoordinates.posZ) : this.posY - par1ChunkCoordinates.posY; 053 } 054 055 public void set(int par1, int par2, int par3) 056 { 057 this.posX = par1; 058 this.posY = par2; 059 this.posZ = par3; 060 } 061 062 /** 063 * Returns the squared distance between this coordinates and the coordinates given as argument. 064 */ 065 public float getDistanceSquared(int par1, int par2, int par3) 066 { 067 int var4 = this.posX - par1; 068 int var5 = this.posY - par2; 069 int var6 = this.posZ - par3; 070 return (float)(var4 * var4 + var5 * var5 + var6 * var6); 071 } 072 073 /** 074 * Return the squared distance between this coordinates and the ChunkCoordinates given as argument. 075 */ 076 public float getDistanceSquaredToChunkCoordinates(ChunkCoordinates par1ChunkCoordinates) 077 { 078 return this.getDistanceSquared(par1ChunkCoordinates.posX, par1ChunkCoordinates.posY, par1ChunkCoordinates.posZ); 079 } 080 081 public int compareTo(Object par1Obj) 082 { 083 return this.compareChunkCoordinate((ChunkCoordinates)par1Obj); 084 } 085 }