Example #1
0
        internal void ReadTakeControl(PacketReader stream)
        {
            int count = stream.ReadByte();

            for (int i = 0; i < count; i++)
            {
                int  itemID = stream.ReadByte();
                byte type   = stream.ReadByte();
                if (!inventory.TryGetItem(itemID, out Item item))
                {
                    item    = (Item)ScriptManager.Interface.CreateVob(type);
                    item.ID = itemID;
                    item.ReadInventoryProperties(stream);
                    this.inventory.ScriptObject.AddItem(item);
                }
                else
                {
                    this.inventory.ScriptObject.RemoveItem(item); // kinda shitty, fixme
                    item.ReadInventoryProperties(stream);
                    this.inventory.ScriptObject.AddItem(item);
                }
            }
            this.ScriptObject.OnReadTakeControl(stream);
        }