Exemple #1
0
        public static Vector2 ReadLerpVector2(this HazelBinaryReader binRdr, FloatRange xrange, FloatRange yrange)
        {
            float v  = (float)binRdr.ReadUInt16() / 65535f;
            float v2 = (float)binRdr.ReadUInt16() / 65535f;

            return(new Vector2(xrange.Lerp(v), yrange.Lerp(v2)));
        }
Exemple #2
0
        public static byte[] PeekBytes(this HazelBinaryReader binRdr, int count)
        {
            var pos   = binRdr.BaseStream.Position;
            var bytes = binRdr.ReadBytes(count);

            binRdr.BaseStream.Position = pos;
            return(bytes);
        }
Exemple #3
0
        public static HazelBinaryReader ReadMessage(this HazelBinaryReader binRdr, out int type)
        {
            var size = binRdr.ReadUInt16();

            type = binRdr.ReadByte();
            var data = binRdr.ReadBytes(size);

            return(new HazelBinaryReader(data));
        }
Exemple #4
0
        public static List <T> ReadMessageList <T>(this HazelBinaryReader reader, Func <HazelBinaryReader, int, T> itemreader)
        {
            var count  = reader.ReadPackedInt32();
            var result = new List <T>();

            for (int i = 0; i < count; i++)
            {
                int id;
                var msg = reader.ReadMessage(out id);
                result.Add(itemreader(msg, id));
            }
            return(result);
        }
Exemple #5
0
 public static bool HasBytesLeft(this HazelBinaryReader binRdr)
 {
     return(binRdr.GetBytesLeft() > 0);
 }
Exemple #6
0
 public static HazelBinaryReader ReadBodyToEnd(this HazelBinaryReader binRdr)
 {
     return(new HazelBinaryReader(new MemoryStream(binRdr.ReadBytesToEnd())));
 }
Exemple #7
0
 public static byte[] ReadBytesToEnd(this HazelBinaryReader binRdr)
 {
     return(binRdr.ReadBytes((int)binRdr.GetBytesLeft()));
 }
Exemple #8
0
 public static string ReadStringToEnd(this HazelBinaryReader binRdr)
 {
     return(Encoding.UTF8.GetString(binRdr.ReadBytesToEnd()));
 }
Exemple #9
0
 public static long GetBytesLeft(this HazelBinaryReader binRdr)
 {
     return(binRdr.BaseStream.Length - binRdr.BaseStream.Position);
 }