private bool SetFarmObjectOfEditModeAndDragState(FarmObject farmObject, Vector3 farmObjectPos)
    {
        FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();
        bool flag = component.SetEditFarmObject(farmObject, farmObjectPos);

        if (flag && farmObject.isPlaceable)
        {
            FarmObjectSelect component2 = base.GetComponent <FarmObjectSelect>();
            component.ComplatedSetting();
            component2.SetSelectObject(farmObject.gameObject);
            if (null != FarmRoot.Instance.farmUI && !this.IsExistStoreFacility())
            {
                FarmRoot.Instance.farmUI.EnableEditSaveButton(true);
            }
        }
        else
        {
            FarmObjectEdit component3 = base.GetComponent <FarmObjectEdit>();
            component3.StartEdit(farmObject);
        }
        if (null != FarmRoot.Instance.farmUI)
        {
            FarmRoot.Instance.farmUI.EnableEditStoreButton(true);
        }
        return(flag);
    }
    public APIRequestTask SaveFarmObjectPosition(Action <int> complated)
    {
        RequestFA_FacilityBuild request = new RequestFA_FacilityBuild
        {
            SetSendData = delegate(FacilityBuild param)
            {
                FarmRoot              instance     = FarmRoot.Instance;
                FarmField             field        = instance.Field;
                FarmObjectSetting     component    = this.GetComponent <FarmObjectSetting>();
                FarmGrid.GridPosition gridPosition = field.Grid.GetGridPosition(component.farmObject.GetBaseGridPosition3D());
                param.facilityId = component.farmObject.facilityID;
                param.positionX  = gridPosition.x;
                param.positionY  = gridPosition.y;
            },
            OnReceived = delegate(FacilityBuildResult response)
            {
                this.SaveResponseToFacilityBuild(response.userFacilityId);
                if (complated != null)
                {
                    complated(response.userFacilityId);
                }
            }
        };

        return(new APIRequestTask(request, true));
    }
    public void SaveResponseToFacilityBuild(int userFacilityID)
    {
        FarmRoot          instance  = FarmRoot.Instance;
        FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();

        instance.ResetSettingMark();
        component.farmObject.DisplayFloorObject();
        instance.SetActiveNotTouchObject(true);
        FarmObject farmObject = component.farmObject;

        FarmGrid.GridPosition gridPosition = component.ComplatedSetting();
        farmObject.userFacilityID = userFacilityID;
        UserFacility facility = this.StartBuild(farmObject, gridPosition);

        Singleton <UserDataMng> .Instance.AddUserFacility(facility);

        this.farmObjects.Add(farmObject);
        FacilityM facilityMaster = FarmDataManager.GetFacilityMaster(farmObject.facilityID);

        FarmUtility.PayCost(facilityMaster.buildingAssetCategoryId1, facilityMaster.buildingAssetNum1);
        if (0 < int.Parse(facilityMaster.buildingTime) || int.Parse(facilityMaster.autoBuildingFlg) == 0)
        {
            this.StartConstruction(userFacilityID);
        }
        else
        {
            farmObject.BuildComplete();
        }
    }
    public void ResetSelectedFarmObject()
    {
        FarmRoot instance = FarmRoot.Instance;

        this.SetFacilityButton(false, instance);
        instance.ResetSelectMark();
        FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();

        if (null != component.farmObject)
        {
            component.CancelMove();
            instance.ResetSettingMark();
            this.farmObject.DisplayFloorObject();
            if (instance.farmMode == FarmRoot.FarmControlMode.NORMAL)
            {
                instance.SetActiveNotTouchObject(true);
            }
            else
            {
                if (!instance.Scenery.IsExistStoreFacility())
                {
                    instance.farmUI.EnableEditSaveButton(true);
                }
                instance.farmUI.EnableEditStoreButton(true);
            }
        }
        this.selectUserFacilityID = -1;
        this.farmObject           = null;
        instance.Input.RemoveTouchDragEvent(new Func <InputControll, bool>(this.OnDrag));
        this.RemoveTouchDragEventForFriendFarm();
    }
    private void CompletedMove()
    {
        FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();

        if (null != component.farmObject && component.farmObject.isPlaceable)
        {
            FarmRoot instance = FarmRoot.Instance;
            if (instance.farmMode == FarmRoot.FarmControlMode.NORMAL)
            {
                base.StartCoroutine(this.SaveFarmObjectMove());
            }
            else
            {
                instance.ResetSettingMark();
                this.farmObject.DisplayFloorObject();
                component.ComplatedSetting();
                instance.isEdit = true;
                if (instance.farmMode == FarmRoot.FarmControlMode.EDIT)
                {
                    if (!instance.Scenery.IsExistStoreFacility())
                    {
                        instance.farmUI.EnableEditSaveButton(true);
                    }
                    instance.farmUI.EnableEditStoreButton(true);
                }
            }
        }
    }
 private bool OnDrag(InputControll inputControll)
 {
     if (this.farmObject.gameObject == inputControll.rayHitColliderObject)
     {
         FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();
         if (null == component.farmObject)
         {
             FarmRoot instance = FarmRoot.Instance;
             if (instance.IsVisitFriendFarm)
             {
                 return(false);
             }
             instance.SetActiveNotTouchObject(false);
             this.SetFacilityButton(false, instance);
             component.SetMoveFarmObject(this.farmObject);
             if (instance.farmMode == FarmRoot.FarmControlMode.EDIT)
             {
                 instance.farmUI.EnableEditSaveButton(false);
             }
             return(true);
         }
     }
     else
     {
         this.RemoveTouchDragEventForFriendFarm();
     }
     return(false);
 }
 private void MoveComplate(FarmRoot farmRoot, FarmObjectSetting farmObjectSetting)
 {
     farmRoot.ResetSettingMark();
     this.farmObject.DisplayFloorObject();
     farmRoot.SetActiveNotTouchObject(true);
     this.SetFacilityButton(true, farmRoot);
     farmObjectSetting.ComplatedSetting();
 }
    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);
    }
    public void CancelSetting()
    {
        FarmRoot          instance  = FarmRoot.Instance;
        FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();

        instance.ResetSettingMark();
        component.farmObject.DisplayFloorObject();
        component.CancelBuild();
        if (instance.farmMode == FarmRoot.FarmControlMode.NORMAL)
        {
            instance.SetActiveNotTouchObject(true);
        }
    }
示例#10
0
    public void StartEdit(FarmObject farmObject)
    {
        FarmRoot          instance      = FarmRoot.Instance;
        FarmObjectSetting settingObject = instance.SettingObject;
        FarmObjectSelect  selectObject  = instance.SelectObject;

        this.farmObject = farmObject;
        this.farmObject.SetSelectMark(instance.Field, instance.SelectMark);
        this.farmObject.SetSettingMark(instance.Field, instance.SettingMark);
        this.farmObject.SetPlaceable(false);
        selectObject.EnabledTouchedEvent(false);
        instance.Input.AddTouchEndEvent(new Action <InputControll, bool>(this.OnTouchUp));
        instance.Input.AddTouchDragEvent(new Func <InputControll, bool>(settingObject.OnDrag));
    }
示例#11
0
    public void SaveResponseToStockToFarmFacility(int userFacilityID)
    {
        FarmRoot          instance  = FarmRoot.Instance;
        FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();

        instance.ResetSettingMark();
        component.farmObject.DisplayFloorObject();
        instance.SetActiveNotTouchObject(true);
        FarmObject farmObject = component.farmObject;

        component.ComplatedSetting();
        farmObject.userFacilityID = userFacilityID;
        this.farmObjects.Add(farmObject);
        farmObject.BuildComplete();
    }
示例#12
0
 public void CancelEdit()
 {
     if (null != this.farmObject)
     {
         FarmRoot          instance   = FarmRoot.Instance;
         FarmScenery       component  = base.GetComponent <FarmScenery>();
         FarmObjectSetting component2 = base.GetComponent <FarmObjectSetting>();
         component2.CancelBuild();
         instance.ResetSettingMark();
         instance.ResetSelectMark();
         this.farmObject.DisplayFloorObject();
         component.StoreFarmObject(this.farmObject);
         instance.farmUI.AddStoreFacility(this.farmObject);
         this.farmObject = null;
         instance.Input.RemoveTouchEndEvent(new Action <InputControll, bool>(this.OnTouchUp));
     }
 }
示例#13
0
    private Vector3 GetExtendBuildPosition(FarmObjectSetting farmObjectSetting, FarmObject prevFarmObject)
    {
        FarmObjectSetting.ExtendBuildPositionSearchResult extendBuildPositionSearchResult = farmObjectSetting.SearchExtendBuildGrid(prevFarmObject);
        FarmGrid grid               = FarmRoot.Instance.Field.Grid;
        int      gridIndex          = grid.GetGridIndex(extendBuildPositionSearchResult.grid);
        Vector3  positionGridCenter = grid.GetPositionGridCenter(gridIndex, true);

        if (!extendBuildPositionSearchResult.isOutsideMap)
        {
            GUICameraControll component = FarmRoot.Instance.Camera.GetComponent <GUICameraControll>();
            if (null != component)
            {
                base.StartCoroutine(component.MoveCameraToLookAtPoint(positionGridCenter, 0f));
            }
        }
        return(positionGridCenter);
    }
示例#14
0
    private void StartFarmObjectPutMode(int facilityID)
    {
        FarmRoot farmRoot = FarmRoot.Instance;

        if (null == farmRoot)
        {
            global::Debug.LogError("FarmRoot Not Found");
            this.ClosePanel(true);
            return;
        }
        FarmObjectSetting settingObject = farmRoot.SettingObject;
        FarmObjectSelect  selectObject  = farmRoot.SelectObject;
        FarmScenery       scenery       = farmRoot.Scenery;

        selectObject.ClearSelectState();
        selectObject.EnabledTouchedEvent(false);
        bool flag = false;

        if (null != settingObject.farmObject && settingObject.settingMode == FarmObjectSetting.SettingMode.BUILD)
        {
            if (facilityID == settingObject.farmObject.facilityID)
            {
                flag = true;
            }
            else
            {
                scenery.CancelSetting();
                StockFacilityConfirmation componentInChildren = Singleton <GUIMain> .Instance.GetComponentInChildren <StockFacilityConfirmation>();

                componentInChildren.DeleteObject();
            }
        }
        if (!flag && scenery.BuildFarmObject(facilityID))
        {
            farmRoot.farmUI.CreateStockFacilityConfirmation();
            farmRoot.SetActiveNotTouchObject(false);
        }
        PartsMenu.instance.gameObject.SetActive(false);
        this.CloseAction(true);
    }
    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;
    }
示例#16
0
    public bool ExtendBuildFarmObject(int facilityID, int prevUserFacilityID)
    {
        FarmObject farmObject = this.LoadFarmObject(facilityID);

        if (null == farmObject)
        {
            global::Debug.LogError(string.Format("Resource Not Found : {0}, {1}", facilityID, prevUserFacilityID));
            return(false);
        }
        farmObject.facilityID = facilityID;
        FarmObject farmObject2 = this.farmObjects.SingleOrDefault((FarmObject x) => x.userFacilityID == prevUserFacilityID);

        if (null == farmObject2)
        {
            global::Debug.LogError(string.Format("Prev FarmObject Not Found : {0}, {1}", facilityID, prevUserFacilityID));
            return(false);
        }
        FarmObjectSetting component           = base.GetComponent <FarmObjectSetting>();
        Vector3           extendBuildPosition = this.GetExtendBuildPosition(component, farmObject2);

        component.SetFarmObject(farmObject, extendBuildPosition);
        return(true);
    }