Theseus 模组文档
API 参考 / capability 包:服务、状态与游玩访问

StoryAccess


剧情 / TriggerManager 控制能力(进程级)。用于在任意场景查询当前剧情节点、触发指定节点、跳过当前剧情,经 ctx.capabilities().get(StoryAccess.class) 取用。

方法速览

方法用途
currentNode()当前剧情节点(非剧情场景返回 null)
trigger(String, StoryContext)跳转剧情场景播放指定节点
skip()跳过当前剧情

完整签名

java
public interface StoryAccess {

    StoryNode currentNode();

    void trigger(String nodeId, StoryContext context);

    void skip();
}

currentNode()

签名:

java
StoryNode currentNode();

行为:当前场景为剧情场景且正在播放节点时,返回该节点的只读视图;否则返回 null。返回节点的 isActive() 恒为 true(只有播放中才会被返回)。

示例:

java
StoryNode node = story.currentNode();
if (node != null) {
    ctx.getLogger().info("当前剧情:" + node.id());
}

trigger(String nodeId, StoryContext context)

签名:

java
void trigger(String nodeId, StoryContext context);

行为:压入剧情场景播放指定故事 id。nodeId 为 null 或空串时静默忽略。context.source() 透传为场景的 source 参数;context 为 null 或 source() 为 null 时使用 "mod"。

示例:

java
story.trigger("story_intro", () -> "mymod");   // StoryContext 是单方法接口

skip()

签名:

java
void skip();

行为:当前处于剧情场景时立即跳过当前剧情并推进到剧情完成 / 下一场景;不在剧情场景时无操作。

示例:

java
story.skip();

线程:源码未声明额外线程约束(宿主在调用线程直接读写场景栈与剧情场景)。

稳定性:2.0 起冻结:2.x 内只增不破。