/// <summary> /// load saved class objects /// </summary> /// <param name="classId">class id</param> /// <param name="json">json string</param> /// <returns>true on success, false on failure</returns> bool loadSavedClassObjects(int classId, string json) { FBClassData loadedClassData = JsonConvert.DeserializeObject <FBClassData>(json); if (loadedClassData == null) { return(false); } FBClassData classData = FBGameData.instance.getClassData(classId); #if MIX_SAVED_DATA_WITH_CONSTANT_DATA foreach (KeyValuePair <int, FBClassObject> p in loadedClassData.objects) { classData.addObject(p.Value); } #else classData.objects = loadedClassData.objects; #endif classData.nextObjectId = loadedClassData.nextObjectId; classData.modified = false; return(true); }
/// <summary> /// load all objects of a class /// </summary> /// <param name="json">json string</param> /// <returns>true on success, false on failure</returns> bool loadClassObjects(string json) { JObject classDataJson = JsonConvert.DeserializeObject(json) as JObject; FBClassData classData = getClassData((string)classDataJson["name"]); FBClassDefinition classDef = classData.classDef; JArray classObjectsJson = classDataJson["data"] as JArray; for (int i = 0; i < classObjectsJson.Count; i++) { JObject classObjectJson = classObjectsJson[i] as JObject; int id = int.Parse((string)classObjectJson["id"]); FBClassObject classObject = new FBClassObject(); classObject.id = id; classObject.classId = classDef.id; foreach (KeyValuePair <string, FBClassField> p in classDef.fieldsByName) { FBValue val = new FBValue(p.Value.dataType, (string)classObjectJson[p.Value.name]); classObject.setFieldValue(p.Value.name, val); } classData.addObject(classObject); } classData.modified = false; return(true); }