框架上传

This commit is contained in:
2025-03-31 11:16:52 +08:00
parent 7197b4c0d0
commit ffcdddbd2a
429 changed files with 19115 additions and 1579 deletions

View File

@@ -0,0 +1,141 @@
using System;
using System.Collections.Generic;
namespace Stary.Evo
{
public interface IEasyEvent
{
}
public class EasyEvent : IEasyEvent
{
private Action mOnEvent = () => { };
public IUnRegister Register(Action onEvent)
{
mOnEvent += onEvent;
return new CustomUnRegister(() => { UnRegister(onEvent); });
}
public void UnRegister(Action onEvent)
{
mOnEvent -= onEvent;
}
public void Trigger()
{
mOnEvent?.Invoke();
}
}
public class EasyEvent<T> : IEasyEvent
{
private Action<T> mOnEvent = e => { };
public IUnRegister Register(Action<T> onEvent)
{
mOnEvent += onEvent;
return new CustomUnRegister(() => { UnRegister(onEvent); });
}
public void UnRegister(Action<T> onEvent)
{
mOnEvent -= onEvent;
}
public void Trigger(T t)
{
mOnEvent?.Invoke(t);
}
}
public class EasyEvent<T, K> : IEasyEvent
{
private Action<T, K> mOnEvent = (t, k) => { };
public IUnRegister Register(Action<T, K> onEvent)
{
mOnEvent += onEvent;
return new CustomUnRegister(() => { UnRegister(onEvent); });
}
public void UnRegister(Action<T, K> onEvent)
{
mOnEvent -= onEvent;
}
public void Trigger(T t, K k)
{
mOnEvent?.Invoke(t, k);
}
}
public class EasyEvent<T, K, S> : IEasyEvent
{
private Action<T, K, S> mOnEvent = (t, k, s) => { };
public IUnRegister Register(Action<T, K, S> onEvent)
{
mOnEvent += onEvent;
return new CustomUnRegister(() => { UnRegister(onEvent); });
}
public void UnRegister(Action<T, K, S> onEvent)
{
mOnEvent -= onEvent;
}
public void Trigger(T t, K k, S s)
{
mOnEvent?.Invoke(t, k, s);
}
}
public class EasyEventSystems
{
private static EasyEventSystems _mGlobalEventSystems = new EasyEventSystems();
public static T Get<T>() where T : IEasyEvent
{
return _mGlobalEventSystems.GetEvent<T>();
}
public static void Register<T>() where T : IEasyEvent, new()
{
_mGlobalEventSystems.AddEvent<T>();
}
private Dictionary<Type, IEasyEvent> mTypeEvents = new Dictionary<Type, IEasyEvent>();
public void AddEvent<T>() where T : IEasyEvent, new()
{
mTypeEvents.Add(typeof(T), new T());
}
public T GetEvent<T>() where T : IEasyEvent
{
IEasyEvent e;
if (mTypeEvents.TryGetValue(typeof(T), out e))
{
return (T) e;
}
return default;
}
public T GetOrAddEvent<T>() where T : IEasyEvent, new()
{
var eType = typeof(T);
if (mTypeEvents.TryGetValue(eType, out var e))
{
return (T) e;
}
var t = new T();
mTypeEvents.Add(eType, t);
return t;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e33d19dd11204fbe87eb16c6bc9b2621
timeCreated: 1658655004

View File

@@ -0,0 +1,199 @@
using System;
using System.Collections.Generic;
namespace Stary.Evo
{
public class EnumEventSystem
{
public static readonly EnumEventSystem Global = new EnumEventSystem();
private readonly Dictionary<int, IEasyEvent> mEvents = new Dictionary<int, IEasyEvent>(50);
public EnumEventSystem(){}
#region
public IUnRegister Register<T>(T key, Action onEvent)where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
var easyEvent = e.As<EasyEvent>();
return easyEvent.Register(onEvent);
}
else
{
var easyEvent = new EasyEvent();
mEvents.Add(kv,easyEvent);
return easyEvent.Register(onEvent);
}
}
public IUnRegister Register<T,T1>(T key, Action<T1> onEvent)where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
var easyEvent = e.As<EasyEvent<T1>>();
return easyEvent.Register(onEvent);
}
else
{
var easyEvent = new EasyEvent<T1>();
mEvents.Add(kv,easyEvent);
return easyEvent.Register(onEvent);
}
}
public IUnRegister Register<T,T1,T2>(T key, Action<T1,T2> onEvent)where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
var easyEvent = e.As<EasyEvent<T1,T2>>();
return easyEvent.Register(onEvent);
}
else
{
var easyEvent = new EasyEvent<T1,T2>();
mEvents.Add(kv,easyEvent);
return easyEvent.Register(onEvent);
}
}
public IUnRegister Register<T,T1,T2,T3>(T key, Action<T1,T2,T3> onEvent) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
var easyEvent = e.As<EasyEvent<T1,T2,T3>>();
return easyEvent.Register(onEvent);
}
else
{
var easyEvent = new EasyEvent<T1,T2,T3>();
mEvents.Add(kv, easyEvent);
return easyEvent.Register(onEvent);
}
}
public IUnRegister Register<T>(T key, Action<object[]> onEvent) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
var easyEvent = e.As<EasyEvent<object[]>>();
return easyEvent.Register(onEvent);
}
else
{
var easyEvent = new EasyEvent<object[]>();
mEvents.Add(kv, easyEvent);
return easyEvent.Register(onEvent);
}
}
public void UnRegister<T>(T key, Action onEvent) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
e.As<EasyEvent>()?.UnRegister(onEvent);
}
}
public void UnRegister<T,T1>(T key, Action<T1> onEvent) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
e.As<EasyEvent<T1>>()?.UnRegister(onEvent);
}
}
public void UnRegister<T,T1,T2>(T key, Action<T1,T2> onEvent) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
e.As<EasyEvent<T1,T2>>()?.UnRegister(onEvent);
}
}
public void UnRegister<T,T1,T2,T3>(T key, Action<T1,T2,T3> onEvent) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
e.As<EasyEvent<T1,T2,T3>>()?.UnRegister(onEvent);
}
}
public void UnRegister<T>(T key, Action<object[]> onEvent) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
e.As<EasyEvent<object[]>>()?.UnRegister(onEvent);
}
}
public void UnRegisterAll()
{
mEvents.Clear();
}
public void Send<T>(T key) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
e.As<EasyEvent>().Trigger();
}
}
public void Send<T,T1>(T key, T1 t1) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
e.As<EasyEvent<T1>>().Trigger(t1);
}
}
public void Send<T,T1,T2>(T key, T1 t1,T2 t2) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
e.As<EasyEvent<T1,T2>>().Trigger(t1,t2);
}
}
public void Send<T,T1,T2,T3>(T key, T1 t1,T2 t2 ,T3 t3) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
e.As<EasyEvent<T1,T2,T3>>().Trigger(t1,t2,t3);
}
}
public void Send<T>(T key, params object[] args) where T : IConvertible
{
var kv = key.ToInt32(null);
if (mEvents.TryGetValue(kv, out var e))
{
e.As<EasyEvent<int,object[]>>().Trigger(kv,args);
}
}
#endregion
public void Dispose()
{
mEvents.Clear();
}
}
}

View File

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

View File

@@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Stary.Evo
{
public class TypeEventSystem
{
private readonly EasyEventSystems _mEventSystems = new EasyEventSystems();
public static readonly TypeEventSystem Global = new TypeEventSystem();
public void Send<T>() where T : new()
{
_mEventSystems.GetEvent<EasyEvent<T>>()?.Trigger(new T());
}
public void Send<T>(T e)
{
_mEventSystems.GetEvent<EasyEvent<T>>()?.Trigger(e);
}
public IUnRegister Register<T>(Action<T> onEvent)
{
var e = _mEventSystems.GetOrAddEvent<EasyEvent<T>>();
return e.Register(onEvent);
}
public void UnRegister<T>(Action<T> onEvent)
{
var e = _mEventSystems.GetEvent<EasyEvent<T>>();
if (e != null)
{
e.UnRegister(onEvent);
}
}
}
public interface IOnEvent<T>
{
void OnEvent(T e);
}
public static class OnGlobalEventExtension
{
public static IUnRegister RegisterEvent<T>(this IOnEvent<T> self) where T : struct
{
return TypeEventSystem.Global.Register<T>(self.OnEvent);
}
public static void UnRegisterEvent<T>(this IOnEvent<T> self) where T : struct
{
TypeEventSystem.Global.UnRegister<T>(self.OnEvent);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 228453eae0804759b0fd585f7169789c
timeCreated: 1625121334

View File

@@ -0,0 +1,173 @@
using System;
using System.Collections.Generic;
namespace Stary.Evo
{
[Obsolete("推荐使用 EnumEventSystem",false)]
public class StringEventSystem
{
public static readonly StringEventSystem Global = new StringEventSystem();
private Dictionary<string, IEasyEvent> mEvents = new Dictionary<string, IEasyEvent>();
public IUnRegister Register(string key, Action onEvent)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent>();
return easyEvent.Register(onEvent);
}
else
{
var easyEvent = new EasyEvent();
mEvents.Add(key,easyEvent);
return easyEvent.Register(onEvent);
}
}
public IUnRegister Register<T>(string key, Action<T> onEvent)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<T>>();
return easyEvent.Register(onEvent);
}
else
{
var easyEvent = new EasyEvent<T>();
mEvents.Add(key,easyEvent);
return easyEvent.Register(onEvent);
}
}
public IUnRegister Register<T1,T2>(string key, Action<T1,T2> onEvent)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<T1,T2>>();
return easyEvent.Register(onEvent);
}
else
{
var easyEvent = new EasyEvent<T1,T2>();
mEvents.Add(key,easyEvent);
return easyEvent.Register(onEvent);
}
}
public IUnRegister Register<T1,T2,T3>(string key, Action<T1,T2,T3> onEvent)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<T1,T2,T3>>();
return easyEvent.Register(onEvent);
}
else
{
var easyEvent = new EasyEvent<T1,T2,T3>();
mEvents.Add(key,easyEvent);
return easyEvent.Register(onEvent);
}
}
public IUnRegister Register(string key, Action<object[]> onEvent)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<object[]> >();
return easyEvent.Register(onEvent);
}
else
{
var easyEvent = new EasyEvent<object[]> ();
mEvents.Add(key,easyEvent);
return easyEvent.Register(onEvent);
}
}
public void UnRegister(string key, Action onEvent)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent>();
easyEvent?.UnRegister(onEvent);
}
}
public void UnRegister<T>(string key, Action<T> onEvent)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<T>>();
easyEvent?.UnRegister(onEvent);
}
}
public void UnRegister<T1,T2>(string key, Action<T1,T2> onEvent)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<T1,T2>>();
easyEvent?.UnRegister(onEvent);
}
}
public void UnRegister<T1,T2,T3>(string key, Action<T1,T2,T3> onEvent)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<T1,T2,T3>>();
easyEvent?.UnRegister(onEvent);
}
}
public void UnRegister(string key, Action<object[]> onEvent)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<object[]>>();
easyEvent?.UnRegister(onEvent);
}
}
public void Send(string key)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent>();
easyEvent?.Trigger();
}
}
public void Send<T>(string key, T data)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<T>>();
easyEvent?.Trigger(data);
}
}
public void Send<T1,T2>(string key, T1 data1, T2 data2)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<T1,T2>>();
easyEvent?.Trigger(data1,data2);
}
}
public void Send<T1,T2,T3>(string key, T1 data1, T2 data2, T3 data3)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<T1,T2,T3>>();
easyEvent?.Trigger(data1,data2,data3);
}
}
public void Send(string key, object[] data)
{
if (mEvents.TryGetValue(key, out var e))
{
var easyEvent = e.As<EasyEvent<object[]>>();
easyEvent?.Trigger(data);
}
}
public void Dispose()
{
mEvents.Clear();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 8502c9eab24d488c950d3eacbfc584b1
timeCreated: 1649307359