🦾 Action 基类方法¶
tongsim.entity.action.base ¶
ActionBase
dataclass
¶
Bases: ABC
动作抽象基类。
每个 Action 将由若干个 Animation 组成,submit()
只负责提交,不阻塞等待结果。
结果收集与异常处理将在 collect_results()
中统一完成。
子类必须实现 __call__()
方法,用于描述 Action 的 Animation 组成。
Source code in src\tongsim\entity\action\base.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
|
execute
abstractmethod
async
¶
execute() -> None
异步执行动作,将 Animation 提交到 streamer 中,不阻塞等待结果。
Source code in src\tongsim\entity\action\base.py
43 44 45 46 47 48 |
|
validate
abstractmethod
¶
validate() -> None
验证 Action 的输入参数。
子类可覆盖此方法以实现具体的参数校验逻辑。
Source code in src\tongsim\entity\action\base.py
50 51 52 53 54 55 56 57 |
|
initialize ¶
initialize(
action_ability: AgentActionAbility,
streamer: AnimationStreamer,
context: WorldContext,
track_result: bool,
) -> None
设置 AnimationStreamer,用于提交动画命令。
Source code in src\tongsim\entity\action\base.py
59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
|
submit
async
¶
submit(cmd_spec: CommandSpec) -> None
提交单个 Animation 命令,并记录其 command_id。
Source code in src\tongsim\entity\action\base.py
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
|
wait_any_started
async
¶
wait_any_started() -> AnimResultInfo
等待本 Action 中任意一个 Animation 的 BEGIN 阶段到达。
Returns:
Name | Type | Description |
---|---|---|
AnimResultInfo |
AnimResultInfo
|
最先开始的动画信息。 |
Source code in src\tongsim\entity\action\base.py
92 93 94 95 96 97 98 99 100 101 102 |
|
collect_results
async
¶
collect_results(
cancel_on_error: bool = False,
) -> list[AnimResultInfo]
收集当前 Action 中所有 Animation 的结果。
Parameters:
Name | Type | Description | Default |
---|---|---|---|
cancel_on_error
|
bool
|
若为 True,当任一 Animation 发生错误时立即取消剩余动画。 |
False
|
Returns:
Type | Description |
---|---|
list[AnimResultInfo]
|
List[AnimResultInfo]: 每个 Animation 的执行结果。 |
Source code in src\tongsim\entity\action\base.py
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
|
run
async
¶
run() -> None
统一执行入口。
- 首先进行参数验证。
- 然后执行 Animation 提交。
Source code in src\tongsim\entity\action\base.py
136 137 138 139 140 141 142 143 144 145 146 147 148 |
|