Beispiel #1
0
        public GenericDatastoreRecord CreateNewRecord()
        {
            var ret = new GenericDatastoreRecord(this, highestId + 1);

            addRecord(ret);
            return(ret);
        }
Beispiel #2
0
 public GenericDatastoreRecord GetRecord(int id)
 {
     if (!recordsMap.ContainsKey(id))
     {
         var ret = new GenericDatastoreRecord(this, id);
         addRecord(ret);
         return(ret);
     }
     return(recordsMap[id]);
 }
Beispiel #3
0
 public void ClearAll()
 {
     foreach (var record in records)
     {
         record.Destroy();
     }
     records.Clear();
     recordsMap.Clear();
     boundRecords.Clear();
     RootRecord = CreateNewRecord();
 }
Beispiel #4
0
        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);
        }
Beispiel #5
0
 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;
     }
 }
Beispiel #6
0
 public GenericDatastore(Internal.Model.World world)
 {
     this.world = world;
     RootRecord = CreateNewRecord();
 }
Beispiel #7
0
 public void NotifyBinding(GenericDatastoreRecord record, object obj)
 {
     boundRecords[obj] = record;
 }