예제 #1
0
 public void Deserialize(HazelBinaryReader reader)
 {
     PlayerName = reader.ReadString();
     ColorId    = reader.ReadByte();
     HatId      = (Hat)reader.ReadPackedUInt32();
     SkinId     = (Skin)reader.ReadPackedUInt32();
     Flags      = (PlayerInfoFlags)reader.ReadByte();
     Tasks      = reader.ReadList(read => {
         var task = new TaskInfo();
         task.Deserialize(read);
         return(task);
     });
     unknown = reader.ReadByte();
 }
예제 #2
0
        public void Deserialize(HazelBinaryReader reader, bool onSpawn)
        {
            if (onSpawn)
            {
                //This number of doors depends on the map
                //Skeld: 13
                //HQ: 2?
                //Polus: 12
                for (int i = 0; i < 12; i++)
                {
                    doors.Add(new Doorway()
                    {
                        isOpen = reader.ReadBoolean(),
                    });
                }
                return;
            }
            uint doorFlags = reader.ReadPackedUInt32();

            for (int j = 0; j < doors.Count; j++)
            {
                if ((doorFlags & (1U << j)) != 0U)
                {
                    doors[j].isOpen = reader.ReadBoolean();
                }
            }
        }
예제 #3
0
        public override void Deserialize(HazelBinaryReader reader, bool onSpawn)
        {
            if (onSpawn)
            {
                Console.WriteLine("Meetinghud spawn");
                for (int i = 0; i < 10; i++)//need to fix this here, packet only contains the amount of players in the server
                {
                    while (reader.HasBytesLeft())
                    {
                        playerStates.Add(new PlayerVoteArea()
                        {
                            value = (PlayerVoteAreaFlags)reader.ReadByte(),
                        });
                    }
                }
                return;
            }
            Console.WriteLine("Meetinghud data");
            uint updateMask = reader.ReadPackedUInt32();

            for (int j = 0; j < 10; j++)
            {
                if ((updateMask & (1u << j)) != 0u)
                {
                    playerStates[j].value = (PlayerVoteAreaFlags)reader.ReadByte();
                }
            }
        }
예제 #4
0
        public override void Deserialize(HazelBinaryReader reader, bool onSpawn)
        {
            if (onSpawn)
            {
                for (int i = 0; i < 24; i++)
                {
                    var system = (SystemTypes)i;
                    if (systems.ContainsKey(system))
                    {
                        var systemObj = systems[system];
                        systemObj.Deserialize(reader, onSpawn);
                    }
                }
                if (reader.HasBytesLeft())
                {
                    Console.WriteLine($"Bytesleft in ShipStatus DeserializeOnSpawn: size: {reader.GetBytesLeft()}");
                }
                return;
            }

            uint systemFlags = reader.ReadPackedUInt32();

            for (int i = 0; i < 24; i++)
            {
                if ((systemFlags & (1 << i)) != 0)
                {
                    var system    = (SystemTypes)i;
                    var systemObj = systems[system];
                    systemObj.Deserialize(reader, onSpawn);
                }
            }
            if (reader.HasBytesLeft())
            {
                Console.WriteLine($"Bytesleft in ShipStatus Deserialize: size: {reader.GetBytesLeft()}");
            }
        }
예제 #5
0
 public void Deserialize(HazelBinaryReader reader)
 {
     Id       = reader.ReadPackedUInt32();
     Complete = reader.ReadBoolean();
 }