feat: add event bus
This commit is contained in:
15
Client/Domain/Events/EventBusInterface.cs
Normal file
15
Client/Domain/Events/EventBusInterface.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Domain.Events
|
||||
{
|
||||
public interface EventBusInterface
|
||||
{
|
||||
void Subscrbe<T>(EventHandlerInterface<T> handler) where T : EventInterface;
|
||||
void Unsubscrbe<T>(EventHandlerInterface<T> handler) where T : EventInterface;
|
||||
void Publish<T>(T @event) where T : EventInterface;
|
||||
}
|
||||
}
|
17
Client/Domain/Events/EventHandlerInterface.cs
Normal file
17
Client/Domain/Events/EventHandlerInterface.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Domain.Events
|
||||
{
|
||||
public interface EventHandlerInterface
|
||||
{
|
||||
}
|
||||
|
||||
public interface EventHandlerInterface<T> : EventHandlerInterface where T : EventInterface
|
||||
{
|
||||
void Handle(T @event);
|
||||
}
|
||||
}
|
12
Client/Domain/Events/EventInterface.cs
Normal file
12
Client/Domain/Events/EventInterface.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Domain.Events
|
||||
{
|
||||
public interface EventInterface
|
||||
{
|
||||
}
|
||||
}
|
19
Client/Domain/Events/HeroCreatedEvent.cs
Normal file
19
Client/Domain/Events/HeroCreatedEvent.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using Client.Domain.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Domain.Events
|
||||
{
|
||||
public class HeroCreatedEvent : EventInterface
|
||||
{
|
||||
public readonly Hero Hero;
|
||||
|
||||
public HeroCreatedEvent(Hero hero)
|
||||
{
|
||||
Hero = hero;
|
||||
}
|
||||
}
|
||||
}
|
13
Client/Domain/Events/HeroDeletedEvent.cs
Normal file
13
Client/Domain/Events/HeroDeletedEvent.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Client.Domain.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Domain.Events
|
||||
{
|
||||
public class HeroDeletedEvent : EventInterface
|
||||
{
|
||||
}
|
||||
}
|
19
Client/Domain/Events/NpcCreatedEvent.cs
Normal file
19
Client/Domain/Events/NpcCreatedEvent.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using Client.Domain.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Domain.Events
|
||||
{
|
||||
public class NpcCreatedEvent : EventInterface
|
||||
{
|
||||
public readonly NPC NPC;
|
||||
|
||||
public NpcCreatedEvent(NPC npc)
|
||||
{
|
||||
NPC = npc;
|
||||
}
|
||||
}
|
||||
}
|
19
Client/Domain/Events/NpcDeletedEvent.cs
Normal file
19
Client/Domain/Events/NpcDeletedEvent.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using Client.Domain.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Domain.Events
|
||||
{
|
||||
public class NpcDeletedEvent : EventInterface
|
||||
{
|
||||
public readonly uint Id;
|
||||
|
||||
public NpcDeletedEvent(uint id)
|
||||
{
|
||||
Id = id;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user