public GenericDatastoreRecord CreateNewRecord() { var ret = new GenericDatastoreRecord(this, highestId + 1); addRecord(ret); return(ret); }
public GenericDatastoreRecord GetRecord(int id) { if (!recordsMap.ContainsKey(id)) { var ret = new GenericDatastoreRecord(this, id); addRecord(ret); return(ret); } return(recordsMap[id]); }
public void ClearAll() { foreach (var record in records) { record.Destroy(); } records.Clear(); recordsMap.Clear(); boundRecords.Clear(); RootRecord = CreateNewRecord(); }
public void Deserialize(XElement rootElement) { foreach (var recordEl in rootElement.Elements()) { var id = int.Parse(recordEl.Attribute("id").Value); var record = GetRecord(id); record.DeserializeContent(recordEl); } var rootId = int.Parse(rootElement.Attribute("rootId").Value); RootRecord = GetRecord(rootId); }
private void addRecord(GenericDatastoreRecord ret) { if (recordsMap.ContainsKey(ret.Id)) { throw new InvalidOperationException(); } records.Add(ret); recordsMap[ret.Id] = ret; if (ret.Id > highestId) { highestId = ret.Id; } }
public GenericDatastore(Internal.Model.World world) { this.world = world; RootRecord = CreateNewRecord(); }
public void NotifyBinding(GenericDatastoreRecord record, object obj) { boundRecords[obj] = record; }