private void SetField(Dictionary <EntityId, List <EntitySnapshot> > shots)
        {
            FieldCreator.Reset();

            int snapShotCount = 0;

            foreach (var kvp in shots)
            {
                foreach (var snap in kvp.Value)
                {
                    Position.Snapshot position;
                    if (snap.TryGetComponentSnapshot(out position) == false)
                    {
                        continue;
                    }

                    FieldComponent.Snapshot field;
                    if (snap.TryGetComponentSnapshot(out field) == false)
                    {
                        continue;
                    }

                    FieldCreator.RealizeField(field.TerrainPoints, position.Coords, this.BasePosition);
                    snapShotCount++;
                }
            }

            DebugUtils.LogFormatColor(UnityEngine.Color.red, "FieldWorkerType:{0} RealizeSnapShot.Count:{1}",
                                      this.FieldWorkerType, snapShotCount);

            FieldCreator.RemoveFields();
        }
        protected override void OnCreate()
        {
            base.OnCreate();

            var go = new GameObject("FieldCreator");

            FieldCreator = go.AddComponent <FieldCreator>();
            FieldCreator.Setup(this.WorkerSystem.World, this.WorkerSystem.Origin, this.WorkerSystem.WorkerId, FieldWorkerType);
        }
        protected override void OnCreate()
        {
            base.OnCreate();

            var go = new GameObject("FieldCreator");

            FieldCreator = go.AddComponent <FieldCreator>();
            FieldCreator.Setup(this.WorkerSystem.World, this.WorkerSystem.Origin, this.WorkerSystem.WorkerId, FieldWorkerType);

            var settings = FieldCreator.Settings;

            checkRange  = settings != null ? settings.FieldSize / 2 : 0;
            checkRange *= FieldDictionary.CheckRangeRate;
        }
        private void SetField(List <EntitySnapshot> snapShots)
        {
            FieldCreator.Reset();

            foreach (var snap in snapShots)
            {
                Position.Snapshot position;
                if (snap.TryGetComponentSnapshot(out position) == false)
                {
                    return;
                }

                FieldComponent.Snapshot field;
                if (snap.TryGetComponentSnapshot(out field) == false)
                {
                    return;
                }

                FieldCreator.RealizeField(field.TerrainPoints, position.Coords, this.BasePosition);
            }

            FieldCreator.RemoveFields();
        }
 private void SetFieldClear()
 {
     FieldCreator.Reset();
     FieldCreator.RealizeEmptyField(this.BasePosition);
     FieldCreator.RemoveFields();
 }