Esempio n. 1
0
        public void PutInstance(ApiWorldInstance inst, Action success, Action <string> error = null)
        {
            string idWithTags = inst.idWithTags;
            int    num        = -1;

            for (int i = 0; i < mWorldInstances.Count; i++)
            {
                if (mWorldInstances[i].idWithTags == idWithTags)
                {
                    mWorldInstances[i] = inst;
                }
            }
            bool newInstance = num == -1;
            Dictionary <string, object> dictionary = new Dictionary <string, object>();

            if (newInstance)
            {
                dictionary["id"] = inst.idWithTags;
                ApiWorldInstance.AccessType accessType = inst.GetAccessType();
                if (accessType == ApiWorldInstance.AccessType.InviteOnly)
                {
                    dictionary["private"] = inst.instanceCreator;
                }
                else
                {
                    dictionary["private"] = "false";
                }
                if (accessType == ApiWorldInstance.AccessType.FriendsOnly)
                {
                    dictionary["friends"] = inst.instanceCreator;
                }
                else
                {
                    dictionary["friends"] = "false";
                }
            }
            dictionary["name"] = inst.instanceName;
            string tagString = inst.GetTagString();

            if (tagString != null)
            {
                dictionary["tags"] = tagString;
            }
            ApiDictContainer apiDictContainer = new ApiDictContainer();

            apiDictContainer.OnSuccess = delegate(ApiContainer c)
            {
                Dictionary <string, object> responseDictionary = (c as ApiDictContainer).ResponseDictionary;
                if (newInstance && responseDictionary != null)
                {
                    mWorldInstances.Add(new ApiWorldInstance(this, responseDictionary, c.DataTimestamp));
                }
                if (success != null)
                {
                    success();
                }
            };
            apiDictContainer.OnError = delegate(ApiContainer c)
            {
                if (error != null)
                {
                    error(c.Error);
                }
            };
            ApiDictContainer responseContainer = apiDictContainer;

            API.SendPutRequest("worlds/" + base.id + "/" + idWithTags, responseContainer, dictionary);
        }