Esempio n. 1
0
        /// <summary>
        /// プレイヤーデータから再度マウスの状態を決める場合
        /// </summary>
        /// <param name="playerMouseViewModel"></param>
        /// <param name="preMono"></param>
        public void ReOrderMaking(PlayerMouseViewModel playerMouseViewModel, PreMono preMono)
        {
            Debug.Assert(!IsOrdered(), "現在作成中のため追加で作成を行うことができません。");

            this.currentPreMono       = preMono;
            this.PlayerMouseViewModel = playerMouseViewModel;

            // 状態変化による切り替え
            if (playerMouseViewModel.State == MouseViewState.Move)
            {
                stateManager.Interrupt(new MoveToTarget(this, playerMouseViewModel.PlayerArrangementTargetModel));
            }
            else if (playerMouseViewModel.State == MouseViewState.Making)
            {
                stateManager.Interrupt(new MakingState(this, playerMouseViewModel.PlayerArrangementTargetModel));
                this.currentPreMono.ProgressMaking(playerMouseViewModel.MakingAmount);
            }
            else if (playerMouseViewModel.State == MouseViewState.BackToHome)
            {
                stateManager.Interrupt(new BackToHomeState(this));
            }
            else
            {
                Debug.Assert(false, "ありえない状態" + playerMouseViewModel.State.ToString());
            }
        }
Esempio n. 2
0
 /// <summary>
 /// マウスにモノのオーダーする部分。実質ここが初期化
 /// </summary>
 /// <param name="arrangementTarget"></param>
 /// <param name="preMono"></param>
 public void OrderMaking(PlayerMouseViewModel playerMouseViewModel, PreMono preMono)
 {
     Debug.Assert(!IsOrdered(), "現在作成中のため追加で作成を行うことができません。");
     this.currentPreMono       = preMono;
     this.PlayerMouseViewModel = playerMouseViewModel;
     stateManager.Interrupt(new MoveToTarget(this, playerMouseViewModel.PlayerArrangementTargetModel));
 }
        public void Store(PlayerMouseViewModel playerMouseViewModel)
        {
            var entry = this.GetEntry(playerMouseViewModel.Id);

            if (entry != null)
            {
                var index = this.entrys.IndexOf(entry);
                this.entrys[index] = new PlayerMouseViewEntry()
                {
                    Id       = playerMouseViewModel.Id,
                    Position = new Position3Entry()
                    {
                        X = playerMouseViewModel.Position.x,
                        Y = playerMouseViewModel.Position.y,
                        Z = playerMouseViewModel.Position.z
                    },
                    Rotation = new Position3Entry()
                    {
                        X = playerMouseViewModel.Rotation.x,
                        Y = playerMouseViewModel.Rotation.y,
                        Z = playerMouseViewModel.Rotation.z
                    },
                    State                     = playerMouseViewModel.State.ToString(),
                    MakingAmountValue         = playerMouseViewModel.MakingAmount.Value,
                    MakingAmountMaxValue      = playerMouseViewModel.MakingAmount.MaxValue,
                    PlayerArrangementTargetId = playerMouseViewModel.PlayerArrangementTargetModel.Id
                };
            }
            else
            {
                Debug.Assert(false, "要素が存在しません : " + playerMouseViewModel.Id.ToString());
            }
            PlayerContextMap.WriteEntry(this.entrys);
        }
        public void Remove(PlayerMouseViewModel playerMouseViewModel)
        {
            var entry = this.GetEntry(playerMouseViewModel.Id);

            if (entry != null)
            {
                var index = this.entrys.IndexOf(entry);
                this.entrys.RemoveAt(index);
            }
            else
            {
                Debug.Assert(false, "要素が存在しません : " + playerMouseViewModel.Id.ToString());
            }
            PlayerContextMap.WriteEntry(this.entrys);
        }
Esempio n. 5
0
        public void ReOrderMouse(PlayerMouseViewModel playerMouseViewModel)
        {
            // ネズミを家からインスタンス化して特定位置にオーダーする(ねずみの種類は動的に変えられるようにしてもいいかも)
            var mousePrefab   = ResourceLoader.LoadModel("mouse_normal");
            var mouseInstance = Object.AppearToFloor(mousePrefab, root, playerMouseViewModel.Position);

            mouseInstance.transform.rotation = Quaternion.Euler(playerMouseViewModel.Rotation);
            var mouse = mouseInstance.GetComponent <Mouse> ();

            Debug.Assert(mouse != null, "Mouse コンポーネントがありません");
            Debug.Assert(!mouse.IsOrdered(), "すでにオーダーされています。");

            var makingPrefab = ResourceLoader.LoadPrefab("Model/Making");

            mouse.ReOrderMaking(
                playerMouseViewModel,
                new PreMono(mouse, makingPrefab, playerMouseViewModel.PlayerArrangementTargetModel.MonoInfo));
            orderedMouse.Add(mouse);
        }
Esempio n. 6
0
 public void Execute(PlayerMouseViewModel playerMouseViewModel, MouseViewState state)
 {
     Debug.Assert(playerMouseViewModel != null, "PlayerMouseViewModelが nullです");
     playerMouseViewModel.ChangeState(state);
     this.playerMouseViewRepository.Store(playerMouseViewModel);
 }
 public void Execute(PlayerMouseViewModel playerMouseViewModel, MakingAmount makingAmount)
 {
     Debug.Assert(playerMouseViewModel != null, "PlayerMouseViewModelが nullです");
     playerMouseViewModel.UpdateMakingAmount(makingAmount);
     this.playerMouseViewRepository.Store(playerMouseViewModel);
 }
 public void Execute(PlayerMouseViewModel playerMouseViewModel, Vector3 position, Vector3 rotation)
 {
     Debug.Assert(playerMouseViewModel != null, "PlayerMouseViewModelが nullです");
     playerMouseViewModel.UpdateTransform(position, rotation);
     this.playerMouseViewRepository.Store(playerMouseViewModel);
 }
Esempio n. 9
0
 public void Execute(PlayerMouseViewModel playerMouseViewModel)
 {
     Debug.Assert(playerMouseViewModel != null, "PlayerMouseViewModelが nullです");
     this.playerMouseViewRepository.Remove(playerMouseViewModel);
 }