Beispiel #1
0
    /// <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);
    }
Beispiel #2
0
    /// <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);
    }