예제 #1
0
 public PlayerArrangementTargetModel(
     uint id,
     Vector3 centerPosition,
     float range,
     List <ArrangementPosition> positions,
     ArrangementTargetState state,
     MonoInfo monoInfo,
     PlayerMonoViewModel playerMonoViewModel
     )
 {
     this.Id                  = id;
     this.CenterPosition      = centerPosition;
     this.Range               = range;
     this.Positions           = positions;
     this.State               = state;
     this.MonoInfo            = monoInfo;
     this.PlayerMonoViewModel = playerMonoViewModel;
 }
예제 #2
0
        public YesPlayerArrangementTarget(List <GameObject> gameObjectList, List <ArrangementPosition> arrangementPositions, ArrangementInfo arrangementInfo)
        {
            // 中心座標
            this.centerPosition = new Vector3();
            foreach (var gameObject in gameObjectList)
            {
                this.centerPosition += gameObject.transform.position;
            }
            this.centerPosition = centerPosition / gameObjectList.Count();

            // 半径
            this.range = (arrangementInfo.mono.Height * ArrangementAnnotater.ArrangementHeight + arrangementInfo.mono.Width * ArrangementAnnotater.ArrangementWidth) / 2 / 2;

            // 配列位置
            this.arrangementPositions = new List <ArrangementPosition> (arrangementPositions);

            // はじめは予約
            this.arrangementTargetState = ArrangementTargetState.Reserve;
        }
        public PlayerArrangementTargetModel Create(
            Vector3 centerPosition,
            float range,
            List <ArrangementPosition> positions,
            ArrangementTargetState state,
            MonoInfo monoInfo,
            PlayerMonoViewModel playerMonoViewModel
            )
        {
            var id    = this.MaximuId() + 1;
            var entry = new PlayerArrangementTargetEntry()
            {
                Id             = id,
                CenterPosition = new Position3Entry()
                {
                    X = centerPosition.x,
                    Y = centerPosition.y,
                    Z = centerPosition.z
                },
                Range = range,
                ArrangementPositions = positions.Select(pos => new Position2Entry()
                {
                    X = pos.x,
                    Z = pos.z
                }).ToArray(),
                ArrangementTargetState = state.ToString(),
                HasMonoInfoId          = monoInfo != null,
                MonoInfoId             = monoInfo != null ? monoInfo.Id : uint.MaxValue,
                HasMonoViewModelId     = playerMonoViewModel != null,
                MonoViewModelId        = playerMonoViewModel != null ? playerMonoViewModel.Id : uint.MaxValue
            };

            this.entrys.Add(entry);
            PlayerContextMap.WriteEntry(this.entrys);
            return(CreateByEntry(entry));
        }
예제 #4
0
 // 表示状態にする
 public void ToAppear()
 {
     Debug.Assert(this.arrangementTargetState != ArrangementTargetState.Appear, "すでにAppearです");
     this.arrangementTargetState = ArrangementTargetState.Appear;
 }