using System; using RobocraftX.Common; using RobocraftX.StateSync; using Svelto.ECS; using Unity.Jobs; using GamecraftModdingAPI.Engines; using GamecraftModdingAPI.Utility; namespace GamecraftModdingAPI.App { public class GameBuildSimEventEngine : IApiEngine, IUnorderedInitializeOnTimeRunningModeEntered, IUnorderedInitializeOnTimeStoppedModeEntered { public event EventHandler SimulationMode; public event EventHandler BuildMode; public string Name => "GamecraftModdingAPIBuildSimEventGameEngine"; public bool isRemovable => false; public EntitiesDB entitiesDB { set; private get; } public void Dispose() { } public void Ready() { } public JobHandle OnInitializeTimeRunningMode(JobHandle inputDeps) { ExceptionUtil.InvokeEvent(SimulationMode, this, new GameEventArgs { GameName = GameMode.SaveGameDetails.Name, GamePath = GameMode.SaveGameDetails.Folder }); return inputDeps; } public JobHandle OnInitializeTimeStoppedMode(JobHandle inputDeps) { ExceptionUtil.InvokeEvent(BuildMode, this, new GameEventArgs { GameName = GameMode.SaveGameDetails.Name, GamePath = GameMode.SaveGameDetails.Folder }); return inputDeps; } } public struct GameEventArgs { public string GameName; public string GamePath; } }