コード例 #1
0
 public void Enter(Entity entity)
 {
     if (base.Add(entity))
     {
         GameObjectAdded?.Invoke(this, entity);
     }
 }
コード例 #2
0
ファイル: World.cs プロジェクト: ashenBlade/StarWing
        private void UpdateEntitiesCollection()
        {
            if (_toAdd.Count > 0)
            {
                foreach (var entity in _toAdd.Where(entity => !_entities.Contains(entity)))
                {
                    _entities.Add(entity);
                    GameObjectAdded?.Invoke(entity);
                }

                _toAdd.Clear();
            }

            if (_toRemove.Count > 0)
            {
                foreach (var entity in _toRemove)
                {
                    if (_entities.Remove(entity))
                    {
                        GameObjectRemoved?.Invoke(entity);
                    }
                }
                _toRemove.Clear();
            }
        }
コード例 #3
0
        public void PastSelection()
        {
            if (Copy != null)
            {
                var sceneObject = (GameObject)Copy.Clone();

                var previous = Copy;

                Copy = previous;

                var x = Copy.Transform.Position.X;
                x += Copy.GetComponent <Renderer>().BoundingSphere.Radius * 2.0f;

                sceneObject.Transform.SetLocalPosition(x, null, null);

                if (Input.Keys.Pressed(Keys.LeftControl))
                {
                    Copy = Selected;
                }

                GameObjectAdded?.Invoke(Copy);
            }
        }
コード例 #4
0
 public void DuplicateSelection()
 {
     Copy = Selected;
     GameObjectAdded?.Invoke(Copy);
 }
コード例 #5
0
 private void OnGameObjectAdded(IGameObject obj)
 {
     GameObjectAdded?.Invoke(obj);
 }