public void Store(PlayerArrangementTargetModel playerArrangementTargetModel) { var entry = this.GetEntry(playerArrangementTargetModel.Id); if (entry != null) { var index = this.entrys.IndexOf(entry); this.entrys[index] = new PlayerArrangementTargetEntry() { Id = playerArrangementTargetModel.Id, CenterPosition = new Position3Entry() { X = playerArrangementTargetModel.CenterPosition.x, Y = playerArrangementTargetModel.CenterPosition.y, Z = playerArrangementTargetModel.CenterPosition.z }, Range = playerArrangementTargetModel.Range, ArrangementPositions = playerArrangementTargetModel.Positions.Select(pos => new Position2Entry() { X = pos.x, Z = pos.z }).ToArray(), ArrangementTargetState = playerArrangementTargetModel.State.ToString(), HasMonoInfoId = playerArrangementTargetModel.MonoInfo != null, MonoInfoId = playerArrangementTargetModel.MonoInfo != null ? playerArrangementTargetModel.MonoInfo.Id : uint.MaxValue, HasMonoViewModelId = playerArrangementTargetModel.PlayerMonoViewModel != null, MonoViewModelId = playerArrangementTargetModel.PlayerMonoViewModel != null ? playerArrangementTargetModel.PlayerMonoViewModel.Id : uint.MaxValue }; } else { Debug.Assert(false, "要素が存在しません : " + playerArrangementTargetModel.Id.ToString()); } PlayerContextMap.WriteEntry(this.entrys); }
public void CreateAndSetMono(PlayerArrangementTargetModel playerArrangementTargetModel) { var monoViewModel = GameManager.Instance.MonoManager.CreateMono(playerArrangementTargetModel.MonoInfo, playerArrangementTargetModel.CenterPosition); var foundArrangementTarget = this.arrangementTargetStore.Find(arrangementTarget => arrangementTarget.PlayerArrangementTargetModel.Equals(playerArrangementTargetModel)); Debug.Assert(foundArrangementTarget != null, "配置ターゲットがありません"); // 生成した viewModel をセット this.setMonoViewModelToArrangementService.Execute(foundArrangementTarget, monoViewModel); // 隣接お願いの確認 this.AppendNearArrangement(foundArrangementTarget); GameManager.Instance.OnegaiMediaterManager.NearOnegaiMediater.MediateByArrangement(foundArrangementTarget); // 設置数のお願いの確認 var arrangemntMonoId = playerArrangementTargetModel.MonoInfo.Id; this.onegaiMediater.Mediate( new NL.OnegaiConditions.ArrangementCount(), playerOnegaiRepository.GetAll().ToList() ); // 配置時のイベント GameManager.Instance.EventManager.PushEventParameter(new NL.EventCondition.AfterArrangement()); }
public PlayerMouseViewModel Create( Vector3 position, MakingAmount makingAmount, PlayerArrangementTargetModel playerArrangementTargetModel ) { var id = this.MaximuId() + 1; var entry = new PlayerMouseViewEntry() { Id = id, Position = new Position3Entry() { X = position.x, Y = position.y, Z = position.z }, Rotation = new Position3Entry() { X = 0.0f, Y = 0.0f, Z = 0.0f }, State = MouseViewState.None.ToString(), MakingAmountValue = makingAmount.Value, MakingAmountMaxValue = makingAmount.MaxValue, PlayerArrangementTargetId = playerArrangementTargetModel.Id }; this.entrys.Add(entry); PlayerContextMap.WriteEntry(this.entrys); return(CreateByEntry(entry)); }
public void FinishMaking(PlayerArrangementTargetModel playerArrangementTargetModel) { Debug.Assert(playerArrangementTargetModel.PlayerMonoViewModel == null, "モノがセットされています。"); Object.DisAppear(this.makingInstane); // ものを生成 GameManager.Instance.ArrangementManager.CreateAndSetMono(playerArrangementTargetModel); }
public void StartMake(PlayerArrangementTargetModel playerArrangementTargetModel) { if (!HasPreMono) { Debug.LogError("プレモノを持っていないのにMakeが呼ばれました"); } GameManager.Instance.MouseStockManager.ChangeTransform(this); currentPreMono.StartMaking(playerArrangementTargetModel); }
public void FinishMaking(PlayerArrangementTargetModel playerArrangementTargetModel) { if (!HasPreMono) { Debug.LogError("プレモノを持っていないのにMakeが呼ばれました"); } currentPreMono.FinishMaking(playerArrangementTargetModel); currentPreMono = null; }
public void StartMaking(PlayerArrangementTargetModel playerArrangementTargetModel) { this.makingInstane = Object.AppearToFloor(makingPrefab, mouse.transform.parent.gameObject, playerArrangementTargetModel.CenterPosition); this.preMonoView = this.makingInstane.GetComponent <PreMonoView>(); Debug.Assert(this.preMonoView != null, "PreMonoView がセットされていません"); this.currentMakingAmount = new MakingAmount(0, mono.MakingTime); this.preMonoView.UpdateView(this.currentMakingAmount.Rate); }
public void Remove(PlayerArrangementTargetModel playerArrangementTargetModel) { var entry = this.GetEntry(playerArrangementTargetModel.Id); if (entry != null) { var index = this.entrys.IndexOf(entry); this.entrys.RemoveAt(index); } else { Debug.Assert(false, "要素が存在しません : " + playerArrangementTargetModel.Id.ToString()); } PlayerContextMap.WriteEntry(this.entrys); }
public PlayerMouseViewModel( uint id, Vector3 position, Vector3 rotation, MouseViewState state, MakingAmount makingAmount, PlayerArrangementTargetModel playerArrangementTargetModel ) { this.Id = id; this.Position = position; this.Rotation = rotation; this.State = state; this.MakingAmount = makingAmount; this.PlayerArrangementTargetModel = playerArrangementTargetModel; }
public MakingState(Mouse context, PlayerArrangementTargetModel playerArrangementTargetModel) { this.context = context; this.playerArrangementTargetModel = playerArrangementTargetModel; }
public PlayerArrangementTarget(PlayerArrangementTargetModel playerArrangementTargetModel) { this.playerArrangementTargetModel = playerArrangementTargetModel; }
public PlayerMouseViewModel Execute(Vector3 initialPosition, PlayerArrangementTargetModel playerArrangementTargetModel) { return(this.playerMouseViewRepository.Create(initialPosition, new MakingAmount(0, playerArrangementTargetModel.MonoInfo.MakingTime), playerArrangementTargetModel)); }
public MoveToTarget(Mouse context, PlayerArrangementTargetModel playerArrangementTargetModel) { this.context = context; this.playerArrangementTargetModel = playerArrangementTargetModel; }