summaryrefslogtreecommitdiff
path: root/Plugins/MonoGame.Extended/source/MonoGame.Extended.Entities/Systems/EntityProcessingSystem.cs
blob: c4d933934e54a5283e8d668b59dd1b84cc23d14a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using Microsoft.Xna.Framework;

namespace MonoGame.Extended.Entities.Systems
{
    public abstract class EntityProcessingSystem : EntityUpdateSystem
    {
        protected EntityProcessingSystem(AspectBuilder aspectBuilder)
            : base(aspectBuilder)
        {
        }

        public override void Update(GameTime gameTime)
        {
            Begin();

            foreach (var entityId in ActiveEntities)
                Process(gameTime, entityId);

            End();
        }

        public virtual void Begin() { }
        public abstract void Process(GameTime gameTime, int entityId);
        public virtual void End() { }
    }
}