using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Svelto.ECS; namespace GamecraftModdingAPI.Events { /// /// Engine interface to create a ModEventEntityStruct in entitiesDB when Emit() is called. /// public interface IEventEmitterEngine : IEngine, IQueryingEntitiesEngine, IDisposable { /// /// The name of the IEventEmitterEngine /// string Name { get; } /// /// The type of event emitted /// object type { get; } /// /// Whether the emitter can be removed with Manager.RemoveEventEmitter(name) /// bool isRemovable { get; } /// /// The EntityFactory for the entitiesDB. /// Use this to create a ModEventEntityStruct when Emit() is called. /// IEntityFactory Factory { set; } /// /// Emit the event so IEventHandlerEngines can handle it. /// Call Emit() to trigger the IEventEmitterEngine's event. /// void Emit(); } }