예제 #1
0
    public APIRequestTask SaveStockFarmObjectPosition(int userFacilityId, Action <int> complated)
    {
        RequestFA_FacilityStock request = new RequestFA_FacilityStock
        {
            SetSendData = delegate(FacilityStock param)
            {
                param.userFacilityId = userFacilityId;
                param.stockFlg       = 0;
            },
            OnReceived = delegate(FacilityStockResult response)
            {
                UserFacility userStockFacility = Singleton <UserDataMng> .Instance.GetUserStockFacility(userFacilityId);

                Singleton <UserDataMng> .Instance.DeleteUserStockFacility(userFacilityId);

                Singleton <UserDataMng> .Instance.AddUserFacility(userStockFacility);
            }
        };
        RequestFA_FacilityMoving request2 = new RequestFA_FacilityMoving
        {
            SetSendData = delegate(FacilityMoving param)
            {
                FarmRoot              instance     = FarmRoot.Instance;
                FarmField             field        = instance.Field;
                FarmObjectSetting     component    = this.GetComponent <FarmObjectSetting>();
                FarmGrid.GridPosition gridPosition = field.Grid.GetGridPosition(component.farmObject.GetBaseGridPosition3D());
                param.userFacilityId = userFacilityId;
                param.positionX      = gridPosition.x;
                param.positionY      = gridPosition.y;
            },
            OnReceived = delegate(WebAPI.ResponseData response)
            {
                FarmRoot              instance     = FarmRoot.Instance;
                FarmField             field        = instance.Field;
                FarmObjectSetting     component    = this.GetComponent <FarmObjectSetting>();
                FarmGrid.GridPosition gridPosition = field.Grid.GetGridPosition(component.farmObject.GetBaseGridPosition3D());
                UserFacility          userFacility = Singleton <UserDataMng> .Instance.GetUserFacility(userFacilityId);

                userFacility.positionX = gridPosition.x;
                userFacility.positionY = gridPosition.y;
                this.SaveResponseToStockToFarmFacility(userFacilityId);
                if (complated != null)
                {
                    complated(userFacilityId);
                }
            }
        };
        APIRequestTask apirequestTask = new APIRequestTask(request, true);
        APIRequestTask task           = new APIRequestTask(request2, true);

        apirequestTask.Add(task);
        return(apirequestTask);
    }
    private IEnumerator SaveFarmObjectMove()
    {
        FarmRoot          farmRoot          = FarmRoot.Instance;
        FarmField         farmField         = farmRoot.Field;
        FarmObjectSetting farmObjectSetting = base.GetComponent <FarmObjectSetting>();

        FarmGrid.GridPosition gridPosition       = farmField.Grid.GetGridPosition(this.farmObject.GetBaseGridPosition3D());
        FarmGrid.GridPosition gridBackupPosition = farmField.Grid.GetGridPosition(this.farmObject.GetBackupGridPosition3D());
        if (gridPosition.x != gridBackupPosition.x || gridPosition.y != gridBackupPosition.y)
        {
            RestrictionInput.StartLoad(RestrictionInput.LoadType.SMALL_IMAGE_MASK_OFF);
            RequestFA_FacilityMoving request = new RequestFA_FacilityMoving
            {
                SetSendData = delegate(FacilityMoving param)
                {
                    param.userFacilityId = this.farmObject.userFacilityID;
                    param.positionX      = gridPosition.x;
                    param.positionY      = gridPosition.y;
                },
                OnReceived = delegate(WebAPI.ResponseData response)
                {
                    UserFacility userFacility = Singleton <UserDataMng> .Instance.GetUserFacility(this.farmObject.userFacilityID);

                    userFacility.positionX = gridPosition.x;
                    userFacility.positionY = gridPosition.y;
                }
            };
            yield return(base.StartCoroutine(request.Run(delegate()
            {
                RestrictionInput.EndLoad();
                this.MoveComplate(farmRoot, farmObjectSetting);
            }, null, null)));
        }
        else
        {
            this.MoveComplate(farmRoot, farmObjectSetting);
        }
        yield break;
    }