using System; using Unity.Jobs; using RobocraftX.StateSync; using Svelto.ECS; using GamecraftModdingAPI.Utility; namespace GamecraftModdingAPI.Events { /// /// Event emitter engine for switching to to build mode. /// public class GameStateBuildEmitterEngine : IEventEmitterEngine, IInitializeOnBuildStart { public string Name { get; } = "GamecraftModdingAPIGameStateBuildEventEmitter" ; public EntitiesDB entitiesDB { set; private get; } public object type { get; } = EventType.BuildSwitchedTo; public bool isRemovable { get; } = false; public IEntityFactory Factory { set; private get; } public void Dispose() { } public void Emit() { Logging.Log("Dispatching Build Switched To event"); if (Factory == null) { return; } Factory.BuildEntity(ApiExclusiveGroups.eventID++, ApiExclusiveGroups.eventsExclusiveGroup) .Init(new ModEventEntityStruct { type = type }); } public JobHandle OnInitializeBuildMode() { Emit(); return default(JobHandle); } public void Ready() { } } }