public void RemoveItem(uint id) { ITwinItem listItem = GetItem(id); if (listItem != null) { Items.Remove(listItem); } }
public void Read(BinaryReader reader, int length) { if (length > 0) { Int64 baseOffset = reader.BaseStream.Position; magicNumber = reader.ReadUInt32(); UInt32 itemsCount = reader.ReadUInt32(); UInt32 streamLength = reader.ReadUInt32(); Record[] records = new Record[itemsCount]; for (int i = 0; i < itemsCount; ++i) { Record record = new Record(); record.Read(reader, 12); records[i] = record; } Items.Clear(); for (int i = 0; i < itemsCount; ++i) { ITwinItem item = null; if (idToClassDictionary.ContainsKey(records[i].ItemId)) { Type type = idToClassDictionary[records[i].ItemId]; item = (ITwinItem)Activator.CreateInstance(type); } else { item = (ITwinItem)Activator.CreateInstance(defaultType); } reader.BaseStream.Position = records[i].Offset + baseOffset; item.Read(reader, (Int32)records[i].Size); item.SetID(records[i].ItemId); Items.Add(item); } extraData = reader.ReadBytes((Int32)(length - (reader.BaseStream.Position - baseOffset))); } else { skip = true; } }
public void AddItem(ITwinItem item) { Items.Add(item); }