42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
|
using System;
|
||
|
using GamecraftModdingAPI.Engines;
|
||
|
using GamecraftModdingAPI.Utility;
|
||
|
using RobocraftX.Common;
|
||
|
using Svelto.ECS;
|
||
|
|
||
|
namespace GamecraftModdingAPI.Blocks
|
||
|
{
|
||
|
public class BlockEventsEngine : IReactionaryEngine<DBEntityStruct>
|
||
|
{
|
||
|
public event EventHandler<BlockPlacedRemovedEventArgs> Placed;
|
||
|
public event EventHandler<BlockPlacedRemovedEventArgs> 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;
|
||
|
}
|
||
|
}
|