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    
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    }