GFProjectileEmissionTask¶
API Reference / Combat / 类索引
- 路径:
addons/gf/extensions/combat/projectiles/gf_projectile_emission_task.gd - 模块:
Combat - 继承:
RefCounted - API:
public - 类别:运行时句柄 (
runtime_handle) - 首次版本:
8.0.0
单次发射请求事务。 在任何生成点或节点分配前统一执行策略门控、硬预算和时间快照,随后只允许 提交一次实际生成数量。任务不解释 2D/3D 变换、伤害、弹药或对象池规则。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 常量 | STATE_PENDING |
const STATE_PENDING: StringName = &"pending" |
| 常量 | STATE_PREPARED |
const STATE_PREPARED: StringName = &"prepared" |
| 常量 | STATE_COMMITTED |
const STATE_COMMITTED: StringName = &"committed" |
| 常量 | STATE_ROLLED_BACK |
const STATE_ROLLED_BACK: StringName = &"rolled_back" |
| 常量 | STATE_FAILED |
const STATE_FAILED: StringName = &"failed" |
| 属性 | state |
var state: StringName = STATE_PENDING |
| 方法 | configure |
func configure( emitter: Node, policy: GFProjectileEmissionPolicy, projectile_id: StringName, projectile_context: Dictionary, requested_count: int, hard_limit: int, now_msec: int ) -> GFProjectileEmissionTask: |
| 方法 | prepare |
func prepare() -> Dictionary: |
| 方法 | commit |
func commit(emitted_count: int) -> Dictionary: |
| 方法 | rollback |
func rollback(reason: StringName = &"emission_rolled_back") -> Dictionary: |
| 方法 | get_allowed_count |
func get_allowed_count() -> int: |
| 方法 | get_projectile_context |
func get_projectile_context() -> Dictionary: |
常量¶
STATE_PENDING¶
- API:
public - 首次版本:
8.0.0
等待准备。
STATE_PREPARED¶
- API:
public - 首次版本:
8.0.0
已通过门控,可进入生成阶段。
STATE_COMMITTED¶
- API:
public - 首次版本:
8.0.0
已提交策略状态。
STATE_ROLLED_BACK¶
- API:
public - 首次版本:
8.0.0
生成失败或调用方取消后已回滚。
STATE_FAILED¶
- API:
public - 首次版本:
8.0.0
门控或提交失败。
属性¶
state¶
- API:
public - 首次版本:
8.0.0
当前任务状态。
方法¶
configure¶
- API:
public - 首次版本:
8.0.0
func configure( emitter: Node, policy: GFProjectileEmissionPolicy, projectile_id: StringName, projectile_context: Dictionary, requested_count: int, hard_limit: int, now_msec: int ) -> GFProjectileEmissionTask:
配置新任务。
参数:
| 名称 | 说明 |
|---|---|
emitter |
发射器节点。 |
policy |
可选发射策略。 |
projectile_id |
发射体目录 ID。 |
projectile_context |
调用方上下文。 |
requested_count |
模式解析后的请求数量。 |
hard_limit |
分配前不可绕过的硬上限。 |
now_msec |
本次事务统一使用的单调时钟毫秒值。 |
返回:当前任务。
结构:
projectile_context: Dictionary,任务会深复制,不修改调用方字典。
prepare¶
- API:
public - 首次版本:
8.0.0
执行分配前门控。
返回:准备报告。
结构:
return: Dictionary,包含 ok、reason、state、requested_count、emit_count、hard_limit、now_msec 和 projectile_context。
commit¶
- API:
public - 首次版本:
8.0.0
提交实际生成数量。
参数:
| 名称 | 说明 |
|---|---|
emitted_count |
实际成功创建的节点数量。 |
返回:提交报告。
结构:
return: Dictionary,包含 ok、committed、state、emitted_count、emit_count、hard_limit 和 now_msec。
rollback¶
- API:
public - 首次版本:
8.0.0
回滚尚未提交的任务。
参数:
| 名称 | 说明 |
|---|---|
reason |
回滚原因。 |
返回:回滚报告。
结构:
return: Dictionary,包含 ok、rolled_back、reason、state、emit_count、hard_limit 和 now_msec。
get_allowed_count¶
- API:
public - 首次版本:
8.0.0
获取策略允许的生成数量。
返回:准备成功后返回允许数量,否则返回 0。
get_projectile_context¶
- API:
public - 首次版本:
8.0.0
获取准备阶段合并后的发射上下文。
返回:发射上下文副本。
结构:
return: Dictionary,策略返回的 projectile_context 深副本。