001 package net.minecraft.src;
002
003 import cpw.mods.fml.common.Side;
004 import cpw.mods.fml.common.asm.SideOnly;
005 import java.util.Comparator;
006
007 @SideOnly(Side.CLIENT)
008 public class EntitySorter implements Comparator
009 {
010 /** Entity position X */
011 private double entityPosX;
012
013 /** Entity position Y */
014 private double entityPosY;
015
016 /** Entity position Z */
017 private double entityPosZ;
018
019 public EntitySorter(Entity par1Entity)
020 {
021 this.entityPosX = -par1Entity.posX;
022 this.entityPosY = -par1Entity.posY;
023 this.entityPosZ = -par1Entity.posZ;
024 }
025
026 /**
027 * Sorts the two world renderers according to their distance to a given entity.
028 */
029 public int sortByDistanceToEntity(WorldRenderer par1WorldRenderer, WorldRenderer par2WorldRenderer)
030 {
031 double var3 = (double)par1WorldRenderer.posXPlus + this.entityPosX;
032 double var5 = (double)par1WorldRenderer.posYPlus + this.entityPosY;
033 double var7 = (double)par1WorldRenderer.posZPlus + this.entityPosZ;
034 double var9 = (double)par2WorldRenderer.posXPlus + this.entityPosX;
035 double var11 = (double)par2WorldRenderer.posYPlus + this.entityPosY;
036 double var13 = (double)par2WorldRenderer.posZPlus + this.entityPosZ;
037 return (int)((var3 * var3 + var5 * var5 + var7 * var7 - (var9 * var9 + var11 * var11 + var13 * var13)) * 1024.0D);
038 }
039
040 public int compare(Object par1Obj, Object par2Obj)
041 {
042 return this.sortByDistanceToEntity((WorldRenderer)par1Obj, (WorldRenderer)par2Obj);
043 }
044 }