001 package net.minecraft.src;
002
003 import java.io.DataInput;
004 import java.io.DataOutput;
005 import java.io.IOException;
006 import java.util.Arrays;
007
008 public class NBTTagIntArray extends NBTBase
009 {
010 /** The array of saved integers */
011 public int[] intArray;
012
013 public NBTTagIntArray(String par1Str)
014 {
015 super(par1Str);
016 }
017
018 public NBTTagIntArray(String par1Str, int[] par2ArrayOfInteger)
019 {
020 super(par1Str);
021 this.intArray = par2ArrayOfInteger;
022 }
023
024 /**
025 * Write the actual data contents of the tag, implemented in NBT extension classes
026 */
027 void write(DataOutput par1DataOutput) throws IOException
028 {
029 par1DataOutput.writeInt(this.intArray.length);
030 int[] var2 = this.intArray;
031 int var3 = var2.length;
032
033 for (int var4 = 0; var4 < var3; ++var4)
034 {
035 int var5 = var2[var4];
036 par1DataOutput.writeInt(var5);
037 }
038 }
039
040 /**
041 * Read the actual data contents of the tag, implemented in NBT extension classes
042 */
043 void load(DataInput par1DataInput) throws IOException
044 {
045 int var2 = par1DataInput.readInt();
046 this.intArray = new int[var2];
047
048 for (int var3 = 0; var3 < var2; ++var3)
049 {
050 this.intArray[var3] = par1DataInput.readInt();
051 }
052 }
053
054 /**
055 * Gets the type byte for the tag.
056 */
057 public byte getId()
058 {
059 return (byte)11;
060 }
061
062 public String toString()
063 {
064 return "[" + this.intArray.length + " bytes]";
065 }
066
067 /**
068 * Creates a clone of the tag.
069 */
070 public NBTBase copy()
071 {
072 int[] var1 = new int[this.intArray.length];
073 System.arraycopy(this.intArray, 0, var1, 0, this.intArray.length);
074 return new NBTTagIntArray(this.getName(), var1);
075 }
076
077 public boolean equals(Object par1Obj)
078 {
079 if (!super.equals(par1Obj))
080 {
081 return false;
082 }
083 else
084 {
085 NBTTagIntArray var2 = (NBTTagIntArray)par1Obj;
086 return this.intArray == null && var2.intArray == null || this.intArray != null && Arrays.equals(this.intArray, var2.intArray);
087 }
088 }
089
090 public int hashCode()
091 {
092 return super.hashCode() ^ Arrays.hashCode(this.intArray);
093 }
094 }