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 RenderSorter implements Comparator 009 { 010 /** The entity (usually the player) that the camera is inside. */ 011 private EntityLiving baseEntity; 012 013 public RenderSorter(EntityLiving par1EntityLiving) 014 { 015 this.baseEntity = par1EntityLiving; 016 } 017 018 public int doCompare(WorldRenderer par1WorldRenderer, WorldRenderer par2WorldRenderer) 019 { 020 if (par1WorldRenderer.isInFrustum && !par2WorldRenderer.isInFrustum) 021 { 022 return 1; 023 } 024 else if (par2WorldRenderer.isInFrustum && !par1WorldRenderer.isInFrustum) 025 { 026 return -1; 027 } 028 else 029 { 030 double var3 = (double)par1WorldRenderer.distanceToEntitySquared(this.baseEntity); 031 double var5 = (double)par2WorldRenderer.distanceToEntitySquared(this.baseEntity); 032 return var3 < var5 ? 1 : (var3 > var5 ? -1 : (par1WorldRenderer.chunkIndex < par2WorldRenderer.chunkIndex ? 1 : -1)); 033 } 034 } 035 036 public int compare(Object par1Obj, Object par2Obj) 037 { 038 return this.doCompare((WorldRenderer)par1Obj, (WorldRenderer)par2Obj); 039 } 040 }