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