예제 #1
0
        public EntitySet Query(BitSet otherSignature)
        {
            var combinedSignature = otherSignature.Clone();

            combinedSignature.Or(_signature);
            return(_ecm.Get(combinedSignature));
        }
예제 #2
0
        public void Update(TimeSpan time)
        {
            for (var i = 0; i < _gameSystems.Count; i++)
            {
                _gameSystems[i].Update(time);
            }

            for (var i = 0; i < _entitySystems.Count; i++)
            {
                var system   = _entitySystems[i];
                var entities = _ecs.Get(system.Signature);
                if (entities.Entities.Count > 0)
                {
                    system.Update(time, entities);
                    for (var j = 0; j < entities.Entities.Count; j++)
                    {
                        system.Update(time, entities.Entities[j]);
                    }
                }
            }

            _ecs.CommitComponentChanges();
        }