private TagNode ReadShortArray() { byte[] lenBytes = new byte[4]; _stream.Read(lenBytes, 0, 4); if (BitConverter.IsLittleEndian) { Array.Reverse(lenBytes); } int length = BitConverter.ToInt32(lenBytes, 0); if (length < 0) { throw new NBTException(NBTException.MSG_READ_NEG); } short[] data = new short[length]; byte[] buffer = new byte[2]; for (int i = 0; i < length; i++) { _stream.Read(buffer, 0, 2); if (BitConverter.IsLittleEndian) { Array.Reverse(buffer); } data[i] = BitConverter.ToInt16(buffer, 0); } TagNodeShortArray val = new TagNodeShortArray(data); return(val); }
private void WriteShortArray(TagNodeShortArray val) { var lenBytes = BitConverter.GetBytes(val.Length); if (BitConverter.IsLittleEndian) { Array.Reverse(lenBytes); } _stream.Write(lenBytes, 0, 4); var data = new byte[val.Length * 2]; for (var i = 0; i < val.Length; i++) { var buffer = BitConverter.GetBytes(val.Data[i]); if (BitConverter.IsLittleEndian) { Array.Reverse(buffer); } Array.Copy(buffer, 0, data, i * 2, 2); } _stream.Write(data, 0, data.Length); }
private bool VerifyShortArray(TagNode tag, SchemaNodeShortArray schema) { TagNodeShortArray atag = tag as TagNodeShortArray; if (atag == null) { if (!OnInvalidTagType(new TagEventArgs(schema, tag))) { return(false); } } if (schema.Length > 0 && atag.Length != schema.Length) { if (!OnInvalidTagValue(new TagEventArgs(schema, tag))) { return(false); } } return(true); }
public override bool Verify(NbtVerifier verifier, TagNode tag) { TagNodeShortArray atag = tag as TagNodeShortArray; if (atag == null) { if (!verifier.OnInvalidTagType(new TagEventArgs(this, tag))) { return(false); } } if (Length > 0 && atag.Length != Length) { if (!verifier.OnInvalidTagValue(new TagEventArgs(this, tag))) { return(false); } } return(true); }
public TagShortArrayDataNode (TagNodeShortArray tag) : base(tag) { }