using System; using GamecraftModdingAPI.Engines; using GamecraftModdingAPI.Utility; using RobocraftX.Common; using Svelto.ECS; namespace GamecraftModdingAPI.Blocks { public class BlockEventsEngine : IReactionaryEngine { public event EventHandler Placed; public event EventHandler Removed; public void Ready() { } public EntitiesDB entitiesDB { get; set; } public void Dispose() { } public string Name { get; } = "GamecraftModdingAPIBlockEventsEngine"; public bool isRemovable { get; } = false; public void Add(ref DBEntityStruct entityComponent, EGID egid) { ExceptionUtil.InvokeEvent(Placed, this, new BlockPlacedRemovedEventArgs {ID = egid, Type = (BlockIDs) entityComponent.DBID}); } public void Remove(ref DBEntityStruct entityComponent, EGID egid) { ExceptionUtil.InvokeEvent(Removed, this, new BlockPlacedRemovedEventArgs {ID = egid, Type = (BlockIDs) entityComponent.DBID}); } } public struct BlockPlacedRemovedEventArgs { public EGID ID; public BlockIDs Type; } }