فهرست منبع

增加HandlerObject跟SystemObject,分别作为Handler跟System的基类,这样也不需要加EnableClass标签了

tanghai 1 سال پیش
والد
کامیت
a5b27b0142
26فایلهای تغییر یافته به همراه78 افزوده شده و 56 حذف شده
  1. 9 9
      Unity/Assets/Scripts/Core/Entity/EntitySystemSingleton.cs
  2. 5 5
      Unity/Assets/Scripts/Core/Entity/IAwakeSystem.cs
  3. 1 1
      Unity/Assets/Scripts/Core/Entity/IDeserializeSystem.cs
  4. 1 1
      Unity/Assets/Scripts/Core/Entity/IDestroySystem.cs
  5. 1 1
      Unity/Assets/Scripts/Core/Entity/IGetComponentSysSystem.cs
  6. 1 1
      Unity/Assets/Scripts/Core/Entity/ILateUpdateSystem.cs
  7. 1 1
      Unity/Assets/Scripts/Core/Entity/ISerializeSystem.cs
  8. 1 1
      Unity/Assets/Scripts/Core/Entity/IUpdateSystem.cs
  9. 2 2
      Unity/Assets/Scripts/Core/Fiber/EntitySystem.cs
  10. 7 0
      Unity/Assets/Scripts/Core/Object/HandlerObject.cs
  11. 11 0
      Unity/Assets/Scripts/Core/Object/HandlerObject.cs.meta
  12. 7 0
      Unity/Assets/Scripts/Core/Object/SystemObject.cs
  13. 11 0
      Unity/Assets/Scripts/Core/Object/SystemObject.cs.meta
  14. 2 2
      Unity/Assets/Scripts/Core/World/Module/EventSystem/IInvoke.cs
  15. 3 3
      Unity/Assets/Scripts/Core/World/Module/EventSystem/TypeSystems.cs
  16. 2 4
      Unity/Assets/Scripts/Hotfix/Server/Module/ActorLocation/MessageLocationHandler.cs
  17. 0 1
      Unity/Assets/Scripts/Hotfix/Server/Module/RobotCase/ARobotCase.cs
  18. 2 6
      Unity/Assets/Scripts/Hotfix/Share/Module/Actor/MessageHandler.cs
  19. 1 2
      Unity/Assets/Scripts/Model/Share/LockStep/ILSRollbackSystem.cs
  20. 1 2
      Unity/Assets/Scripts/Model/Share/LockStep/ILSUpdateSystem.cs
  21. 3 3
      Unity/Assets/Scripts/Model/Share/LockStep/LSEntitySystemSingleton.cs
  22. 1 2
      Unity/Assets/Scripts/Model/Share/Module/AI/AAIHandler.cs
  23. 1 2
      Unity/Assets/Scripts/Model/Share/Module/Message/MessageSessionDispatcher.cs
  24. 2 4
      Unity/Assets/Scripts/Model/Share/Module/Message/MessageSessionHandler.cs
  25. 1 1
      Unity/Assets/Scripts/Model/Share/Module/Numeric/NumericWatcherComponent.cs
  26. 1 2
      Unity/Assets/Scripts/ModelView/Client/Module/UI/AUIEvent.cs

+ 9 - 9
Unity/Assets/Scripts/Core/Entity/EntitySystemSingleton.cs

@@ -14,7 +14,7 @@ namespace ET
 
             foreach (Type type in CodeTypes.Instance.GetTypes(typeof (EntitySystemAttribute)))
             {
-                object obj = Activator.CreateInstance(type);
+                SystemObject obj = (SystemObject)Activator.CreateInstance(type);
 
                 if (obj is ISystemType iSystemType)
                 {
@@ -36,7 +36,7 @@ namespace ET
                 return;
             }
             
-            List<object> iSerializeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (ISerializeSystem));
+            List<SystemObject> iSerializeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (ISerializeSystem));
             if (iSerializeSystems == null)
             {
                 return;
@@ -67,7 +67,7 @@ namespace ET
                 return;
             }
             
-            List<object> iDeserializeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IDeserializeSystem));
+            List<SystemObject> iDeserializeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IDeserializeSystem));
             if (iDeserializeSystems == null)
             {
                 return;
@@ -94,7 +94,7 @@ namespace ET
         // GetComponentSystem
         public void GetComponentSys(Entity entity, Type type)
         {
-            List<object> iGetSystem = this.TypeSystems.GetSystems(entity.GetType(), typeof (IGetComponentSysSystem));
+            List<SystemObject> iGetSystem = this.TypeSystems.GetSystems(entity.GetType(), typeof (IGetComponentSysSystem));
             if (iGetSystem == null)
             {
                 return;
@@ -120,7 +120,7 @@ namespace ET
         
         public void Awake(Entity component)
         {
-            List<object> iAwakeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IAwakeSystem));
+            List<SystemObject> iAwakeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IAwakeSystem));
             if (iAwakeSystems == null)
             {
                 return;
@@ -151,7 +151,7 @@ namespace ET
                 return;
             }
             
-            List<object> iAwakeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IAwakeSystem<P1>));
+            List<SystemObject> iAwakeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IAwakeSystem<P1>));
             if (iAwakeSystems == null)
             {
                 return;
@@ -182,7 +182,7 @@ namespace ET
                 return;
             }
             
-            List<object> iAwakeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IAwakeSystem<P1, P2>));
+            List<SystemObject> iAwakeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IAwakeSystem<P1, P2>));
             if (iAwakeSystems == null)
             {
                 return;
@@ -213,7 +213,7 @@ namespace ET
                 return;
             }
             
-            List<object> iAwakeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IAwakeSystem<P1, P2, P3>));
+            List<SystemObject> iAwakeSystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IAwakeSystem<P1, P2, P3>));
             if (iAwakeSystems == null)
             {
                 return;
@@ -244,7 +244,7 @@ namespace ET
                 return;
             }
             
-            List<object> iDestroySystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IDestroySystem));
+            List<SystemObject> iDestroySystems = this.TypeSystems.GetSystems(component.GetType(), typeof (IDestroySystem));
             if (iDestroySystems == null)
             {
                 return;

+ 5 - 5
Unity/Assets/Scripts/Core/Entity/IAwakeSystem.cs

@@ -48,7 +48,7 @@ namespace ET
     }
 
     [EntitySystem]
-    public abstract class AwakeSystem<T> : IAwakeSystem where T: Entity, IAwake
+    public abstract class AwakeSystem<T> : SystemObject, IAwakeSystem where T: Entity, IAwake
     {
         Type ISystemType.Type()
         {
@@ -74,7 +74,7 @@ namespace ET
     }
     
     [EntitySystem]
-    public abstract class AwakeSystem<T, A> : IAwakeSystem<A> where T: Entity, IAwake<A>
+    public abstract class AwakeSystem<T, A> : SystemObject, IAwakeSystem<A> where T: Entity, IAwake<A>
     {
         Type ISystemType.Type()
         {
@@ -100,7 +100,7 @@ namespace ET
     }
 
     [EntitySystem]
-    public abstract class AwakeSystem<T, A, B> : IAwakeSystem<A, B> where T: Entity, IAwake<A, B>
+    public abstract class AwakeSystem<T, A, B> : SystemObject, IAwakeSystem<A, B> where T: Entity, IAwake<A, B>
     {
         Type ISystemType.Type()
         {
@@ -126,7 +126,7 @@ namespace ET
     }
 
     [EntitySystem]
-    public abstract class AwakeSystem<T, A, B, C> : IAwakeSystem<A, B, C> where T: Entity, IAwake<A, B, C>
+    public abstract class AwakeSystem<T, A, B, C> : SystemObject, IAwakeSystem<A, B, C> where T: Entity, IAwake<A, B, C>
     {
         Type ISystemType.Type()
         {
@@ -152,7 +152,7 @@ namespace ET
     }
     
     [EntitySystem]
-    public abstract class AwakeSystem<T, A, B, C, D> : IAwakeSystem<A, B, C, D> where T: Entity, IAwake<A, B, C, D>
+    public abstract class AwakeSystem<T, A, B, C, D> : SystemObject, IAwakeSystem<A, B, C, D> where T: Entity, IAwake<A, B, C, D>
     {
         Type ISystemType.Type()
         {

+ 1 - 1
Unity/Assets/Scripts/Core/Entity/IDeserializeSystem.cs

@@ -16,7 +16,7 @@ namespace ET
 	/// </summary>
 	/// <typeparam name="T"></typeparam>
 	[EntitySystem]
-	public abstract class DeserializeSystem<T> : IDeserializeSystem where T: Entity, IDeserialize
+	public abstract class DeserializeSystem<T> : SystemObject, IDeserializeSystem where T: Entity, IDeserialize
 	{
 		void IDeserializeSystem.Run(Entity o)
 		{

+ 1 - 1
Unity/Assets/Scripts/Core/Entity/IDestroySystem.cs

@@ -12,7 +12,7 @@ namespace ET
 	}
 
 	[EntitySystem]
-	public abstract class DestroySystem<T> : IDestroySystem where T: Entity, IDestroy
+	public abstract class DestroySystem<T> : SystemObject, IDestroySystem where T: Entity, IDestroy
 	{
 		void IDestroySystem.Run(Entity o)
 		{

+ 1 - 1
Unity/Assets/Scripts/Core/Entity/IGetComponentSysSystem.cs

@@ -16,7 +16,7 @@ namespace ET
 	}
 
 	[EntitySystem]
-	public abstract class GetComponentSysSystem<T> : IGetComponentSysSystem where T: Entity, IGetComponentSys
+	public abstract class GetComponentSysSystem<T> : SystemObject, IGetComponentSysSystem where T: Entity, IGetComponentSys
 	{
 		void IGetComponentSysSystem.Run(Entity o, Type type)
 		{

+ 1 - 1
Unity/Assets/Scripts/Core/Entity/ILateUpdateSystem.cs

@@ -12,7 +12,7 @@ namespace ET
 	}
 
 	[EntitySystem]
-	public abstract class LateUpdateSystem<T> : ILateUpdateSystem where T: Entity, ILateUpdate
+	public abstract class LateUpdateSystem<T> : SystemObject, ILateUpdateSystem where T: Entity, ILateUpdate
 	{
 		void ILateUpdateSystem.Run(Entity o)
 		{

+ 1 - 1
Unity/Assets/Scripts/Core/Entity/ISerializeSystem.cs

@@ -16,7 +16,7 @@ namespace ET
 	/// </summary>
 	/// <typeparam name="T"></typeparam>
 	[EntitySystem]
-	public abstract class SerializeSystem<T> : ISerializeSystem where T: Entity, ISerialize
+	public abstract class SerializeSystem<T> : SystemObject, ISerializeSystem where T: Entity, ISerialize
 	{
 		void ISerializeSystem.Run(Entity o)
 		{

+ 1 - 1
Unity/Assets/Scripts/Core/Entity/IUpdateSystem.cs

@@ -12,7 +12,7 @@ namespace ET
 	}
 
 	[EntitySystem]
-	public abstract class UpdateSystem<T> : IUpdateSystem where T: Entity, IUpdate
+	public abstract class UpdateSystem<T> : SystemObject, IUpdateSystem where T: Entity, IUpdate
 	{
 		void IUpdateSystem.Run(Entity o)
 		{

+ 2 - 2
Unity/Assets/Scripts/Core/Fiber/EntitySystem.cs

@@ -59,7 +59,7 @@ namespace ET
 
                 try
                 {
-                    List<object> iUpdateSystems = EntitySystemSingleton.Instance.TypeSystems.GetSystems(component.GetType(), typeof (IUpdateSystem));
+                    List<SystemObject> iUpdateSystems = EntitySystemSingleton.Instance.TypeSystems.GetSystems(component.GetType(), typeof (IUpdateSystem));
                     if (iUpdateSystems == null)
                     {
                         continue;
@@ -109,7 +109,7 @@ namespace ET
                     continue;
                 }
 
-                List<object> iLateUpdateSystems = EntitySystemSingleton.Instance.TypeSystems.GetSystems(component.GetType(), typeof (ILateUpdateSystem));
+                List<SystemObject> iLateUpdateSystems = EntitySystemSingleton.Instance.TypeSystems.GetSystems(component.GetType(), typeof (ILateUpdateSystem));
                 if (iLateUpdateSystems == null)
                 {
                     continue;

+ 7 - 0
Unity/Assets/Scripts/Core/Object/HandlerObject.cs

@@ -0,0 +1,7 @@
+namespace ET
+{
+    public abstract class HandlerObject: Object
+    {
+
+    }
+}

+ 11 - 0
Unity/Assets/Scripts/Core/Object/HandlerObject.cs.meta

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

+ 7 - 0
Unity/Assets/Scripts/Core/Object/SystemObject.cs

@@ -0,0 +1,7 @@
+namespace ET
+{
+    public abstract class SystemObject: Object
+    {
+
+    }
+}

+ 11 - 0
Unity/Assets/Scripts/Core/Object/SystemObject.cs.meta

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

+ 2 - 2
Unity/Assets/Scripts/Core/World/Module/EventSystem/IInvoke.cs

@@ -7,7 +7,7 @@ namespace ET
         Type Type { get; }
     }
     
-    public abstract class AInvokeHandler<A>: IInvoke where A: struct
+    public abstract class AInvokeHandler<A>: HandlerObject, IInvoke where A: struct
     {
         public Type Type
         {
@@ -20,7 +20,7 @@ namespace ET
         public abstract void Handle(A args);
     }
     
-    public abstract class AInvokeHandler<A, T>: IInvoke where A: struct
+    public abstract class AInvokeHandler<A, T>: HandlerObject, IInvoke where A: struct
     {
         public Type Type
         {

+ 3 - 3
Unity/Assets/Scripts/Core/World/Module/EventSystem/TypeSystems.cs

@@ -12,7 +12,7 @@ namespace ET
                 this.QueueFlag = new bool[count];
             }
             
-            public readonly UnOrderMultiMap<Type, object> Map = new();
+            public readonly UnOrderMultiMap<Type, SystemObject> Map = new();
             // 这里不用hash,数量比较少,直接for循环速度更快
             public readonly bool[] QueueFlag;
         }
@@ -47,7 +47,7 @@ namespace ET
             return systems;
         }
 
-        public List<object> GetSystems(Type type, Type systemType)
+        public List<SystemObject> GetSystems(Type type, Type systemType)
         {
             OneTypeSystems oneTypeSystems = null;
             if (!this.typeSystemsMap.TryGetValue(type, out oneTypeSystems))
@@ -55,7 +55,7 @@ namespace ET
                 return null;
             }
 
-            if (!oneTypeSystems.Map.TryGetValue(systemType, out List<object> systems))
+            if (!oneTypeSystems.Map.TryGetValue(systemType, out List<SystemObject> systems))
             {
                 return null;
             }

+ 2 - 4
Unity/Assets/Scripts/Hotfix/Server/Module/ActorLocation/MessageLocationHandler.cs

@@ -2,8 +2,7 @@
 
 namespace ET.Server
 {
-    [EnableClass]
-    public abstract class MessageLocationHandler<E, Message>: IMHandler where E : Entity where Message : class, ILocationMessage
+    public abstract class MessageLocationHandler<E, Message>: HandlerObject, IMHandler where E : Entity where Message : class, ILocationMessage
     {
         protected abstract ETTask Run(E entity, Message message);
 
@@ -42,8 +41,7 @@ namespace ET.Server
     
     
     
-    [EnableClass]
-    public abstract class MessageLocationHandler<E, Request, Response>: IMHandler where E : Entity where Request : MessageObject, ILocationRequest where Response : MessageObject, ILocationResponse
+    public abstract class MessageLocationHandler<E, Request, Response>: HandlerObject, IMHandler where E : Entity where Request : MessageObject, ILocationRequest where Response : MessageObject, ILocationResponse
     {
         protected abstract ETTask Run(E unit, Request request, Response response);
 

+ 0 - 1
Unity/Assets/Scripts/Hotfix/Server/Module/RobotCase/ARobotCase.cs

@@ -1,7 +1,6 @@
 namespace ET.Server
 {
     // 这里为什么能定义class呢?因为这里只有逻辑,热重载后新的handler替换旧的,仍然没有问题
-    [EnableClass]
     public abstract class ARobotCase: AInvokeHandler<RobotInvokeArgs, ETTask>
     {
         protected abstract ETTask Run(RobotCase robotCase);

+ 2 - 6
Unity/Assets/Scripts/Hotfix/Share/Module/Actor/MessageHandler.cs

@@ -2,8 +2,7 @@
 
 namespace ET
 {
-    [EnableClass]
-    public abstract class MessageHandler<E, Message>: IMHandler where E : Entity where Message : class, IMessage
+    public abstract class MessageHandler<E, Message>: HandlerObject, IMHandler where E : Entity where Message : class, IMessage
     {
         protected abstract ETTask Run(E entity, Message message);
 
@@ -40,10 +39,7 @@ namespace ET
         }
     }
     
-    
-    
-    [EnableClass]
-    public abstract class MessageHandler<E, Request, Response>: IMHandler where E : Entity where Request : MessageObject, IRequest where Response : MessageObject, IResponse
+    public abstract class MessageHandler<E, Request, Response>: HandlerObject, IMHandler where E : Entity where Request : MessageObject, IRequest where Response : MessageObject, IResponse
     {
         protected abstract ETTask Run(E unit, Request request, Response response);
 

+ 1 - 2
Unity/Assets/Scripts/Model/Share/LockStep/ILSRollbackSystem.cs

@@ -12,9 +12,8 @@ namespace ET
         void Run(Entity o);
     }
     
-    [EnableClass]
     [LSEntitySystem]
-    public abstract class LSRollbackSystem<T> : ILSRollbackSystem where T: Entity, ILSRollback
+    public abstract class LSRollbackSystem<T>: SystemObject, ILSRollbackSystem where T: Entity, ILSRollback
     {
         void ILSRollbackSystem.Run(Entity o)
         {

+ 1 - 2
Unity/Assets/Scripts/Model/Share/LockStep/ILSUpdateSystem.cs

@@ -11,9 +11,8 @@ namespace ET
         void Run(LSEntity o);
     }
 
-    [EnableClass]
     [LSEntitySystem]
-    public abstract class LSUpdateSystem<T> : ILSUpdateSystem where T: LSEntity, ILSUpdate
+    public abstract class LSUpdateSystem<T>: SystemObject, ILSUpdateSystem where T: LSEntity, ILSUpdate
     {
         void ILSUpdateSystem.Run(LSEntity o)
         {

+ 3 - 3
Unity/Assets/Scripts/Model/Share/LockStep/LSEntitySystemSingleton.cs

@@ -23,7 +23,7 @@ namespace ET
             this.TypeSystems = new(LSQueneUpdateIndex.Max);
             foreach (Type type in CodeTypes.Instance.GetTypes(typeof (LSEntitySystemAttribute)))
             {
-                object obj = Activator.CreateInstance(type);
+                SystemObject obj = (SystemObject)Activator.CreateInstance(type);
 
                 if (obj is not ISystemType iSystemType)
                 {
@@ -75,7 +75,7 @@ namespace ET
                 return;
             }
             
-            List<object> iLSRollbackSystems = this.TypeSystems.GetSystems(entity.GetType(), typeof (ILSRollbackSystem));
+            List<SystemObject> iLSRollbackSystems = this.TypeSystems.GetSystems(entity.GetType(), typeof (ILSRollbackSystem));
             if (iLSRollbackSystems == null)
             {
                 return;
@@ -106,7 +106,7 @@ namespace ET
                 return;
             }
             
-            List<object> iLSUpdateSystems = TypeSystems.GetSystems(entity.GetType(), typeof (ILSUpdateSystem));
+            List<SystemObject> iLSUpdateSystems = TypeSystems.GetSystems(entity.GetType(), typeof (ILSUpdateSystem));
             if (iLSUpdateSystems == null)
             {
                 return;

+ 1 - 2
Unity/Assets/Scripts/Model/Share/Module/AI/AAIHandler.cs

@@ -6,9 +6,8 @@ namespace ET
     {
     }
     
-    [EnableClass]
     [AIHandler]
-    public abstract class AAIHandler
+    public abstract class AAIHandler: HandlerObject
     {
         // 检查是否满足条件
         public abstract int Check(AIComponent aiComponent, AIConfig aiConfig);

+ 1 - 2
Unity/Assets/Scripts/Model/Share/Module/Message/MessageSessionDispatcher.cs

@@ -3,8 +3,7 @@ using System;
 
 namespace ET
 {
-    [EnableClass]
-    public class MessageSessionDispatcherInfo
+    public struct MessageSessionDispatcherInfo
     {
         public SceneType SceneType { get; }
         public IMessageSessionHandler IMHandler { get; }

+ 2 - 4
Unity/Assets/Scripts/Model/Share/Module/Message/MessageSessionHandler.cs

@@ -2,8 +2,7 @@ using System;
 
 namespace ET
 {
-    [EnableClass]
-    public abstract class MessageSessionHandler<Message>: IMessageSessionHandler where Message : MessageObject
+    public abstract class MessageSessionHandler<Message>: HandlerObject, IMessageSessionHandler where Message : MessageObject
     {
         protected abstract ETTask Run(Session session, Message message);
 
@@ -40,8 +39,7 @@ namespace ET
         }
     }
     
-    [EnableClass]
-    public abstract class MessageSessionHandler<Request, Response>: IMessageSessionHandler where Request : MessageObject, IRequest where Response : MessageObject, IResponse
+    public abstract class MessageSessionHandler<Request, Response>: HandlerObject, IMessageSessionHandler where Request : MessageObject, IRequest where Response : MessageObject, IResponse
     {
         protected abstract ETTask Run(Session session, Request request, Response response);
 

+ 1 - 1
Unity/Assets/Scripts/Model/Share/Module/Numeric/NumericWatcherComponent.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 
 namespace ET
 {
-    public class NumericWatcherInfo: Object
+    public struct NumericWatcherInfo
     {
         public SceneType SceneType { get; }
         public INumericWatcher INumericWatcher { get; }

+ 1 - 2
Unity/Assets/Scripts/ModelView/Client/Module/UI/AUIEvent.cs

@@ -1,7 +1,6 @@
 namespace ET.Client
 {
-    [EnableClass]
-    public abstract class AUIEvent
+    public abstract class AUIEvent: HandlerObject
     {
         public abstract ETTask<UI> OnCreate(UIComponent uiComponent, UILayer uiLayer);
         public abstract void OnRemove(UIComponent uiComponent);