Code/k/ECS/Extensions/InitializerBase.cs
using System.Collections.Generic;

namespace Sandbox.k.ECS.Extensions;

public class InitializerBase : Component
{
	private readonly List<FeatureBase> _features = new List<FeatureBase>();
	
	protected void AddFeature( FeatureBase featureBase )
	{
		_features.Add( featureBase );
	}
	
	protected override void OnAwake()
	{
		base.OnAwake();
		foreach ( var feature in _features )
		{
			if ( !feature.IsEnabled ) continue;
			feature.Initialize();
		}
	}
	
	protected override void OnUpdate()
	{
		base.OnUpdate();
		var deltaTime = Time.Delta;
		foreach ( var feature in _features )
		{
			feature.Update( deltaTime );
		}
	}
}