using System; using RobocraftX.GUI.MyGamesScreen; using Svelto.ECS; using TechbloxModdingAPI.Engines; using TechbloxModdingAPI.Utility; namespace TechbloxModdingAPI.App { public class AppEngine : IFactoryEngine { public WrappedHandler EnterMenu; public WrappedHandler ExitMenu; public IEntityFactory Factory { set; private get; } public string Name => "TechbloxModdingAPIAppEngine"; public bool isRemovable => false; public EntitiesDB entitiesDB { set; private get; } public void Dispose() { IsInMenu = false; ExitMenu.Invoke(this, new MenuEventArgs { }); } public void Ready() { IsInMenu = true; EnterMenu.Invoke(this, new MenuEventArgs { }); } // app functionality public bool IsInMenu { get; private set; } = false; public Game[] GetMyGames() { EntityCollection mgsevs = entitiesDB.QueryEntities(MyGamesScreenExclusiveGroups.MyGames); var mgsevsB = mgsevs.ToBuffer().buffer; Game[] games = new Game[mgsevs.count]; for (int i = 0; i < mgsevs.count; i++) { Utility.Logging.MetaDebugLog($"Found game named {mgsevsB[i].GameName}"); games[i] = new Game(mgsevsB[i].ID); } return games; } } public struct MenuEventArgs { } }