TechbloxModdingAPI/GamecraftModdingAPI/Events/SimpleEventHandlerEngine.cs
2019-12-13 20:42:55 -08:00

40 lines
1.1 KiB
C#

using Svelto.ECS;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GamecraftModdingAPI.Events
{
class SimpleEventHandlerEngine : IEventHandlerEngine
{
public object type { get; set; }
public string Name { get; set; }
private readonly Action<IEntitiesDB> onEvent;
public IEntitiesDB entitiesDB { set; private get; }
public void Add(ref ModEventEntityStruct entityView, EGID egid)
{
if (entityView.type.Equals(this.type))
{
onEvent.Invoke(entitiesDB);
}
}
public void Ready() { }
public void Remove(ref ModEventEntityStruct entityView, EGID egid) { }
public SimpleEventHandlerEngine(Action handleEvent, object type, string name) : this((IEntitiesDB db) => { handleEvent.Invoke(); }, type, name) { }
public SimpleEventHandlerEngine(Action<IEntitiesDB> handleEvent, object type, string name)
{
this.type = type;
this.Name = name;
this.onEvent = handleEvent;
}
}
}