TechbloxModdingAPI/GamecraftModdingAPI/Events/GameActivatedPatch.cs

30 lines
924 B
C#
Raw Normal View History

2019-12-14 18:52:24 +00:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Harmony;
using RobocraftX;
using Svelto.ECS;
using GamecraftModdingAPI.Utility;
namespace GamecraftModdingAPI.Events
{
/// <summary>
/// Patch of RobocraftX.FullGameCompositionRoot.ActivateGame()
/// </summary>
[HarmonyPatch(typeof(FullGameCompositionRoot), "ActivateGame")]
class GameActivatedPatch
{
public static void Postfix(ref EnginesRoot ____mainGameEnginesRoot)
{
// A new EnginesRoot is always created when ActivateGame is called
// so all event emitters and handlers must be re-registered.
Manager.RegisterEngines(____mainGameEnginesRoot);
Logging.Log("Dispatching Game Activated event");
Manager.GetEventEmitter("GamecraftModdingAPIGameActivatedEventEmitter").Emit();
}
}
}