001package net.minecraft.world; 002 003public class NextTickListEntry implements Comparable 004{ 005 /** The id number for the next tick entry */ 006 private static long nextTickEntryID = 0L; 007 008 /** X position this tick is occuring at */ 009 public int xCoord; 010 011 /** Y position this tick is occuring at */ 012 public int yCoord; 013 014 /** Z position this tick is occuring at */ 015 public int zCoord; 016 017 /** 018 * blockID of the scheduled tick (ensures when the tick occurs its still for this block) 019 */ 020 public int blockID; 021 022 /** Time this tick is scheduled to occur at */ 023 public long scheduledTime; 024 public int field_82754_f; 025 026 /** The id of the tick entry */ 027 private long tickEntryID; 028 029 public NextTickListEntry(int par1, int par2, int par3, int par4) 030 { 031 this.tickEntryID = (long)(nextTickEntryID++); 032 this.xCoord = par1; 033 this.yCoord = par2; 034 this.zCoord = par3; 035 this.blockID = par4; 036 } 037 038 public boolean equals(Object par1Obj) 039 { 040 if (!(par1Obj instanceof NextTickListEntry)) 041 { 042 return false; 043 } 044 else 045 { 046 NextTickListEntry var2 = (NextTickListEntry)par1Obj; 047 return this.xCoord == var2.xCoord && this.yCoord == var2.yCoord && this.zCoord == var2.zCoord && this.blockID == var2.blockID; 048 } 049 } 050 051 public int hashCode() 052 { 053 return (this.xCoord * 1024 * 1024 + this.zCoord * 1024 + this.yCoord) * 256 + this.blockID; 054 } 055 056 /** 057 * Sets the scheduled time for this tick entry 058 */ 059 public NextTickListEntry setScheduledTime(long par1) 060 { 061 this.scheduledTime = par1; 062 return this; 063 } 064 065 public void func_82753_a(int par1) 066 { 067 this.field_82754_f = par1; 068 } 069 070 /** 071 * Compares this tick entry to another tick entry for sorting purposes. Compared first based on the scheduled time 072 * and second based on tickEntryID. 073 */ 074 public int comparer(NextTickListEntry par1NextTickListEntry) 075 { 076 return this.scheduledTime < par1NextTickListEntry.scheduledTime ? -1 : (this.scheduledTime > par1NextTickListEntry.scheduledTime ? 1 : (this.field_82754_f != par1NextTickListEntry.field_82754_f ? this.field_82754_f - par1NextTickListEntry.field_82754_f : (this.tickEntryID < par1NextTickListEntry.tickEntryID ? -1 : (this.tickEntryID > par1NextTickListEntry.tickEntryID ? 1 : 0)))); 077 } 078 079 public int compareTo(Object par1Obj) 080 { 081 return this.comparer((NextTickListEntry)par1Obj); 082 } 083}