Code/k/ECS/Extensions/FeatureBase.cs
using System.Collections.Generic;
namespace Sandbox.k.ECS.Extensions;
public class FeatureBase
{
public bool IsEnabled { get; set; } = true;
private readonly List<SystemBase> _systems = new List<SystemBase>();
private bool _isInitialized;
public void AddSystem( SystemBase systemBase )
{
_systems.Add( systemBase );
}
public virtual void Initialize()
{
foreach ( var system in _systems )
{
system.Initialize();
}
_isInitialized = true;
}
public virtual void Update( float deltaTime )
{
if ( !_isInitialized || !IsEnabled ) return;
foreach ( var system in _systems )
{
system.Update( deltaTime );
}
}
}