001 package net.minecraft.src;
002
003 public 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
025 /** The id of the tick entry */
026 private long tickEntryID;
027
028 public NextTickListEntry(int par1, int par2, int par3, int par4)
029 {
030 this.tickEntryID = (long)(nextTickEntryID++);
031 this.xCoord = par1;
032 this.yCoord = par2;
033 this.zCoord = par3;
034 this.blockID = par4;
035 }
036
037 public boolean equals(Object par1Obj)
038 {
039 if (!(par1Obj instanceof NextTickListEntry))
040 {
041 return false;
042 }
043 else
044 {
045 NextTickListEntry var2 = (NextTickListEntry)par1Obj;
046 return this.xCoord == var2.xCoord && this.yCoord == var2.yCoord && this.zCoord == var2.zCoord && this.blockID == var2.blockID;
047 }
048 }
049
050 public int hashCode()
051 {
052 return (this.xCoord * 1024 * 1024 + this.zCoord * 1024 + this.yCoord) * 256 + this.blockID;
053 }
054
055 /**
056 * Sets the scheduled time for this tick entry
057 */
058 public NextTickListEntry setScheduledTime(long par1)
059 {
060 this.scheduledTime = par1;
061 return this;
062 }
063
064 /**
065 * Compares this tick entry to another tick entry for sorting purposes. Compared first based on the scheduled time
066 * and second based on tickEntryID.
067 */
068 public int comparer(NextTickListEntry par1NextTickListEntry)
069 {
070 return this.scheduledTime < par1NextTickListEntry.scheduledTime ? -1 : (this.scheduledTime > par1NextTickListEntry.scheduledTime ? 1 : (this.tickEntryID < par1NextTickListEntry.tickEntryID ? -1 : (this.tickEntryID > par1NextTickListEntry.tickEntryID ? 1 : 0)));
071 }
072
073 public int compareTo(Object par1Obj)
074 {
075 return this.comparer((NextTickListEntry)par1Obj);
076 }
077 }