Skip to content

Commit de43f75

Browse files
committed
[增加]1. 增加Actor组件获取组件函数的是否创建函数的参数
1 parent 608cd8a commit de43f75

File tree

1 file changed

+73
-71
lines changed

1 file changed

+73
-71
lines changed
Lines changed: 73 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,74 @@
1-
using GameFrameX.Core.Abstractions.Agent;
2-
3-
namespace GameFrameX.Core.Abstractions;
4-
5-
/// <summary>
6-
/// IActor 接口定义
7-
/// </summary>
8-
public interface IActor : IWorker
9-
{
10-
/// <summary>
11-
/// 获取或设置 IActor 的唯一标识
12-
/// </summary>
13-
long Id { get; set; }
14-
15-
/// <summary>
16-
/// 获取是否自动回收
17-
/// </summary>
18-
bool AutoRecycle { get; }
19-
20-
/// <summary>
21-
/// 获取工作 Actor
22-
/// </summary>
23-
IWorkerActor WorkerActor { get; }
24-
25-
/// <summary>
26-
/// 获取订阅的哈希列表
27-
/// </summary>
28-
HashSet<long> ScheduleIdSet { get; }
29-
30-
/// <summary>
31-
/// 获取或设置 Actor 类型
32-
/// </summary>
33-
ushort Type { get; set; }
34-
35-
/// <summary>
36-
/// 清理全部代理
37-
/// </summary>
38-
void ClearAgent();
39-
40-
/// <summary>
41-
/// 反激活所有组件
42-
/// </summary>
43-
/// <returns>一个表示异步操作的任务</returns>
44-
Task Inactive();
45-
46-
/// <summary>
47-
/// 根据组件类型获取对应的 IComponentAgent
48-
/// </summary>
49-
/// <param name="agentType">组件类型</param>
50-
/// <returns>一个表示异步操作的任务,返回 IComponentAgent 实例</returns>
51-
Task<IComponentAgent> GetComponentAgent(Type agentType);
52-
53-
/// <summary>
54-
/// 根据组件类型获取对应的 IComponentAgent
55-
/// </summary>
56-
/// <typeparam name="T">组件类型</typeparam>
57-
/// <returns>一个表示异步操作的任务,返回指定类型的 IComponentAgent 实例</returns>
58-
Task<T> GetComponentAgent<T>() where T : IComponentAgent;
59-
60-
/// <summary>
61-
/// 设置自动回收标记
62-
/// </summary>
63-
/// <param name="autoRecycle">是否自动回收</param>
64-
void SetAutoRecycle(bool autoRecycle);
65-
66-
/// <summary>
67-
/// Actor 跨天处理
68-
/// </summary>
69-
/// <param name="serverDay">服务器运行天数</param>
70-
/// <returns>一个表示异步操作的任务</returns>
71-
Task CrossDay(int serverDay);
1+
using GameFrameX.Core.Abstractions.Agent;
2+
3+
namespace GameFrameX.Core.Abstractions;
4+
5+
/// <summary>
6+
/// IActor 接口定义
7+
/// </summary>
8+
public interface IActor : IWorker
9+
{
10+
/// <summary>
11+
/// 获取或设置 IActor 的唯一标识
12+
/// </summary>
13+
long Id { get; set; }
14+
15+
/// <summary>
16+
/// 获取是否自动回收
17+
/// </summary>
18+
bool AutoRecycle { get; }
19+
20+
/// <summary>
21+
/// 获取工作 Actor
22+
/// </summary>
23+
IWorkerActor WorkerActor { get; }
24+
25+
/// <summary>
26+
/// 获取订阅的哈希列表
27+
/// </summary>
28+
HashSet<long> ScheduleIdSet { get; }
29+
30+
/// <summary>
31+
/// 获取或设置 Actor 类型
32+
/// </summary>
33+
ushort Type { get; set; }
34+
35+
/// <summary>
36+
/// 清理全部代理
37+
/// </summary>
38+
void ClearAgent();
39+
40+
/// <summary>
41+
/// 反激活所有组件
42+
/// </summary>
43+
/// <returns>一个表示异步操作的任务</returns>
44+
Task Inactive();
45+
46+
/// <summary>
47+
/// 根据组件类型获取对应的 IComponentAgent
48+
/// </summary>
49+
/// <param name="agentType">组件类型</param>
50+
/// <param name="isNew">是否当获取为空的时候默认创建,默认值为true</param>
51+
/// <returns>一个表示异步操作的任务,返回 IComponentAgent 实例</returns>
52+
Task<IComponentAgent> GetComponentAgent(Type agentType, bool isNew = true);
53+
54+
/// <summary>
55+
/// 根据组件类型获取对应的 IComponentAgent
56+
/// </summary>
57+
/// <typeparam name="T">组件类型</typeparam>
58+
/// <param name="isNew">是否当获取为空的时候默认创建,默认值为true</param>
59+
/// <returns>一个表示异步操作的任务,返回指定类型的 IComponentAgent 实例</returns>
60+
Task<T> GetComponentAgent<T>(bool isNew = true) where T : IComponentAgent;
61+
62+
/// <summary>
63+
/// 设置自动回收标记
64+
/// </summary>
65+
/// <param name="autoRecycle">是否自动回收</param>
66+
void SetAutoRecycle(bool autoRecycle);
67+
68+
/// <summary>
69+
/// Actor 跨天处理
70+
/// </summary>
71+
/// <param name="serverDay">服务器运行天数</param>
72+
/// <returns>一个表示异步操作的任务</returns>
73+
Task CrossDay(int serverDay);
7274
}

0 commit comments

Comments
 (0)