using System; using CLre.API.Engines; using Svelto.Context; using Svelto.ECS; namespace CLre.API.App { class GameReadyEngine : GameObsoleteEnginePostBuild, IWaitForFrameworkInitialization { internal static event EventHandler gameEngineReady; public override void Ready() { if (gameEngineReady != null) gameEngineReady(this, new GameReady { }); } public override IEntitiesDB entitiesDB { get; set; } public override IEntityFactory entityFactory { get; set; } public void OnFrameworkInitialized() { // TODO framework init event } } class GameFrameworkEngine : GameObsoleteEnginePostBuild, IWaitForFrameworkInitialization, IWaitForFrameworkDestruction { internal static event EventHandler gameFrameworkReady; internal static event EventHandler gameFrameworkExit; public override void Ready() { } public override IEntitiesDB entitiesDB { get; set; } public override IEntityFactory entityFactory { get; set; } public void OnFrameworkInitialized() { if (gameFrameworkReady != null) gameFrameworkReady(this, new GameReady { }); } public void OnFrameworkDestroyed() { if (gameFrameworkExit != null) gameFrameworkExit(this, new GameExit { }); } } class MenuReadyEngine : FrontEndObsoleteEnginePostBuild { internal static event EventHandler menuEngineReady; public override void Ready() { if (menuEngineReady != null) menuEngineReady(this, new MenuReady { }); } public override IEntitiesDB entitiesDB { get; set; } public override IEntityFactory entityFactory { get; set; } } }