001 package net.minecraft.nbt;
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
031 for (int var2 = 0; var2 < this.intArray.length; ++var2)
032 {
033 par1DataOutput.writeInt(this.intArray[var2]);
034 }
035 }
036
037 /**
038 * Read the actual data contents of the tag, implemented in NBT extension classes
039 */
040 void load(DataInput par1DataInput) throws IOException
041 {
042 int var2 = par1DataInput.readInt();
043 this.intArray = new int[var2];
044
045 for (int var3 = 0; var3 < var2; ++var3)
046 {
047 this.intArray[var3] = par1DataInput.readInt();
048 }
049 }
050
051 /**
052 * Gets the type byte for the tag.
053 */
054 public byte getId()
055 {
056 return (byte)11;
057 }
058
059 public String toString()
060 {
061 return "[" + this.intArray.length + " bytes]";
062 }
063
064 /**
065 * Creates a clone of the tag.
066 */
067 public NBTBase copy()
068 {
069 int[] var1 = new int[this.intArray.length];
070 System.arraycopy(this.intArray, 0, var1, 0, this.intArray.length);
071 return new NBTTagIntArray(this.getName(), var1);
072 }
073
074 public boolean equals(Object par1Obj)
075 {
076 if (!super.equals(par1Obj))
077 {
078 return false;
079 }
080 else
081 {
082 NBTTagIntArray var2 = (NBTTagIntArray)par1Obj;
083 return this.intArray == null && var2.intArray == null || this.intArray != null && Arrays.equals(this.intArray, var2.intArray);
084 }
085 }
086
087 public int hashCode()
088 {
089 return super.hashCode() ^ Arrays.hashCode(this.intArray);
090 }
091 }