/// <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()); } }
/// <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); }
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); }
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); }
public void Execute(PlayerMouseViewModel playerMouseViewModel) { Debug.Assert(playerMouseViewModel != null, "PlayerMouseViewModelが nullです"); this.playerMouseViewRepository.Remove(playerMouseViewModel); }