コード例 #1
0
 public void Merge(ResourceParamsDB other)
 {
     for (int i = 0; i < other.Count; ++i)
     {
         var key = other.GetResourceKey(i);
         var val = other.GetResourceParams(i);
         AddOrMerge(key, val);
     }
 }
コード例 #2
0
    public static bool Fetch(string dbKey, ResourceParamsDB db)
    {
        bool   ret = false;
        string keysJson;

        if (ResourceEditGetPoster.HttpGet(dbKey, out keysJson))
        {
            try {
                ret = true;
                var keys    = JsonUtility.FromJson <ResourceKeys>(keysJson);
                int ct      = 0;
                int totalCt = keys.Keys.Count;
                foreach (var key in keys.Keys)
                {
                    string paramsJson;
                    if (ResourceEditGetPoster.HttpGet(key, out paramsJson))
                    {
                        try {
                            var ps = JsonUtility.FromJson <ResourceParams>(paramsJson);
                            db.AddOrMerge(key, ps);
                        } catch (Exception ex) {
                            Debug.LogErrorFormat("{0}\n{1}", ex.Message, ex.StackTrace);
                            ret = false;
                        }
                    }
                    ++ct;
                    if (EditorUtility.DisplayCancelableProgressBar("Fetch", string.Format("{0}/{1}", ct, totalCt), ct * 1.0f / totalCt))
                    {
                        break;
                    }
                }
                if (ret)
                {
                    Debug.Log("Fetch ok.");
                }
            } catch (Exception ex) {
                Debug.LogErrorFormat("{0}\n{1}", ex.Message, ex.StackTrace);
            } finally {
                EditorUtility.ClearProgressBar();
            }
        }
        return(ret);
    }
コード例 #3
0
    public static bool Commit(string dbKey, ResourceParamsDB db)
    {
        bool         ret  = false;
        ResourceKeys keys = new ResourceKeys {
            Keys = db.ResourceKeys
        };
        var    keysJson = JsonUtility.ToJson(keys, true);
        string r;

        if (ResourceEditGetPoster.HttpPost(dbKey, keysJson, out r))
        {
            try {
                ret = true;
                int ct      = 0;
                int totalCt = keys.Keys.Count;
                foreach (var key in keys.Keys)
                {
                    ResourceParams ps;
                    if (db.TryGetResourceParams(key, out ps))
                    {
                        var paramsJson = JsonUtility.ToJson(ps, true);
                        if (!ResourceEditGetPoster.HttpPost(key, paramsJson, out r))
                        {
                            ret = false;
                        }
                    }
                    ++ct;
                    if (EditorUtility.DisplayCancelableProgressBar("Commit", string.Format("{0}/{1}", ct, totalCt), ct * 1.0f / totalCt))
                    {
                        break;
                    }
                }
                if (ret)
                {
                    Debug.Log("Commit ok.");
                }
            } finally {
                EditorUtility.ClearProgressBar();
            }
        }
        return(ret);
    }