[+] TEngineServer

[+] TEngineServer
This commit is contained in:
ALEXTANG
2023-07-13 17:17:26 +08:00
parent a69f53592e
commit 0c8f3a5f92
790 changed files with 52737 additions and 2533 deletions

View File

@@ -0,0 +1,64 @@
using System;
namespace TEngine
{
public interface IEvent
{
Type EventType();
void Invoke(object self);
}
public interface IAsyncEvent
{
Type EventType();
FTask InvokeAsync(object self);
}
public abstract class EventSystem<T> : IEvent
{
private readonly Type _selfType = typeof(T);
public Type EventType()
{
return _selfType;
}
public abstract void Handler(T self);
public void Invoke(object self)
{
try
{
Handler((T) self);
}
catch (Exception e)
{
Log.Error($"{_selfType.Name} Error {e}");
}
}
}
public abstract class AsyncEventSystem<T> : IAsyncEvent
{
private readonly Type _selfType = typeof(T);
public Type EventType()
{
return _selfType;
}
public abstract FTask Handler(T self);
public async FTask InvokeAsync(object self)
{
try
{
await Handler((T) self);
}
catch (Exception e)
{
Log.Error($"{_selfType.Name} Error {e}");
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d36b90aef6077f941b9fe043ab4889b9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: