EntityProcessingSystem.cs 650 B

1234567891011121314151617181920212223242526
  1. using Microsoft.Xna.Framework;
  2. namespace MonoGame.Extended.ECS.Systems
  3. {
  4. public abstract class EntityProcessingSystem : EntityUpdateSystem
  5. {
  6. protected EntityProcessingSystem(AspectBuilder aspectBuilder)
  7. : base(aspectBuilder)
  8. {
  9. }
  10. public override void Update(GameTime gameTime)
  11. {
  12. Begin();
  13. foreach (var entityId in ActiveEntities)
  14. Process(gameTime, entityId);
  15. End();
  16. }
  17. public virtual void Begin() { }
  18. public abstract void Process(GameTime gameTime, int entityId);
  19. public virtual void End() { }
  20. }
  21. }