Ejemplo n.º 1
0
    public Coroutine CreateNewUser(string inUserName,
                                   string inPasswordHash,
                                   string inNickName,
                                   string inEmail,
                                   bool inIWantNews,
                                   E_UserAcctKind inKind,
                                   System.Action <bool> callback)
    {
        E_AppProvider appProvider = E_AppProvider.Madfinger;

        // reset authentication status. New player is creating...
        SetAuthenticationStatus(E_AuthenticationStatus.None);

        return(StartCoroutine(CreateNewUser_Coroutine(inUserName, inPasswordHash, inNickName, inEmail, inIWantNews, inKind, appProvider, callback)));
    }
Ejemplo n.º 2
0
    IEnumerator CreateNewUser_Coroutine(string inUserName,
                                        string inPasswordHash,
                                        string inNickName,
                                        string inEmail,
                                        bool inIWantNews,
                                        E_UserAcctKind inKind,
                                        E_AppProvider inAppProvider,
                                        System.Action <bool> callback)
    {
        // create user
        {
            _CreateNewUser action = new _CreateNewUser(inUserName, inPasswordHash, productID);
            GameCloudManager.AddAction(action);

            while (action.isDone == false)
            {
                yield return(new WaitForEndOfFrame());
            }

            if (action.isFailed == true)
            {
                callback(false);
                yield break;
            }
        }

        // get primary key
        UnigueUserID userID;

        {
            UserGetPrimaryKey action = new UserGetPrimaryKey(inUserName);
            GameCloudManager.AddAction(action);

            while (action.isDone == false)
            {
                yield return(new WaitForEndOfFrame());
            }

            userID = new UnigueUserID(action.primaryKey, inPasswordHash, productID);
        }

        // set user data
        {
            Dictionary <string, string> userData = new Dictionary <string, string>();

            userData.Add(CloudServices.PROP_ID_NICK_NAME, inNickName);
            userData.Add(CloudServices.PROP_ID_EMAIL, inEmail);
            userData.Add(CloudServices.PROP_ID_I_WANT_NEWS, inIWantNews.ToString());
            userData.Add(CloudServices.PROP_ID_ACCT_KIND, inKind.ToString());

            List <BaseCloudAction> actions = new List <BaseCloudAction>();

            actions.Add(new SetUserDataList(userID, userData));

            if (inAppProvider != E_AppProvider.Madfinger)
            {
                actions.Add(new SetUserProductData(userID, CloudServices.PROP_ID_APP_PROVIDER, inAppProvider.ToString()));
            }

            CloudActionSerial action = new CloudActionSerial(null, BaseCloudAction.NoTimeOut, actions.ToArray());
            GameCloudManager.AddAction(action);

            while (action.isDone == false)
            {
                yield return(new WaitForEndOfFrame());
            }
        }

        callback(true);
    }