
T的核心
一款为T的星露谷物语模组提供的共享核心库,为其他模组提供通用服务、API、Content Patcher令牌及实用工具。
查看大图关于 T's Core
T's Core 是一个共享库,旨在为多个 T 系列模组提供通用功能。
它本身不会添加独立的游戏玩法功能。相反,其他模组可以使用 T's Core 提供的服务和 API,以避免在多个项目中重复实现相同的功能。
当前功能包括:
- 关系与伴侣 API
- 位置追踪与位置相关服务
- 传送服务与 Content Patcher 集成
- 通知系统
- Content Patcher 令牌
- 对第三方结婚模组 API 的支持
- T 系列模组之间共享的通用工具
随着更多 T 系列模组使用共享核心,未来可能会添加更多功能。
安装
使用你喜欢的模组管理器安装 T's Core,或将下载的压缩包解压到你的星露谷物语的 Mods 文件夹中。
T's Core 主要作为其他模组的依赖项来安装。如果其他模组需要 T's Core,请在启动游戏前安装它。
( 目前,下方的 模组开发者指南 是原始文档的 AI 生成摘要。 我计划在之后用更清晰、更友好的指南替换它。)
模组开发者指南
T's Core 为其他 SMAPI 模组和内容包提供了可重用的服务和 API。本指南概述了如何将 T's Core 集成到你自己的项目中,以及如何使用其公开功能。
1. 添加 T's Core 作为依赖项
如果你的模组需要 T's Core,请将其添加到你的 manifest.json 中:
"Dependencies": [
{
"UniqueID": "Tikamin557.TsCore",
"IsRequired": true
}
]
如果你的模组在没有 T's Core 的情况下也能运行,并且仅在安装了 T's Core 时才启用额外功能,则使用 "IsRequired": false。
2. 从 C# 模组中访问 T's Core
T's Core 旨在供 C# SMAPI 模组使用。T's Core 提供的公共服务可以通过它们对应的命名空间和类进行访问。避免依赖内部类、实现细节或内部字段。标记为 internal 的 API 不打算供其他模组使用,并且可能随时更改,恕不另行通知。
3. 可用服务
T's Core 目前提供以下主要系统:
- 关系 / 伴侣服务
- 位置服务
- 传送服务
- 通知系统
- Content Patcher 令牌
- Content Patcher 集成
- 共享工具
有关每个系统的详细信息,请参阅下面的相应部分。
4. 内容包集成
T's Core 还支持为设计为数据驱动的功能提供内容包。例如,无需创建 C# 模组即可添加通知主题。使用 T's Core 功能的内容包应在适当时声明 T's Core 作为依赖项:
"Dependencies": [
{
"UniqueID": "Tikamin557.TsCore",
"IsRequired": true
}
]
有关具体的文件结构和使用要求,请参阅下面的各个功能部分。
5. 调试与开发
T's Core 提供了几个用于开发和故障排除的控制台命令。这些命令可用于检查 T's Core 服务、Content Patcher 令牌和其他已注册数据的当前状态。
令牌调试
以下命令可用于检查 T's Core 提供的值:
tscore_tokens:打印所有可用的 T's Core 令牌值。tscore_tokens_relationship:打印与关系相关的令牌值和信息。tscore_tokens_location:打印与位置相关的令牌值和信息。tscore_tokens_warp:打印与传送相关的令牌值和信息。
其他调试命令
tscore_debug_buildings:打印农场当前存在的建筑信息。tscore_debug_notification:测试通知系统。tscore_debug_notification_trigger:通过触发器动作测试通知。
这些命令主要用于开发和调试,而非常规游戏。
6. API 稳定性
T's Core 作为 T 系列模组的共享库正在积极开发中。随着时间的推移,可能会添加新的 API 和服务,现有 API 也可能会扩展或更改。在开发依赖于 T's Core 的模组时:
- 优先使用公开且文档化的 API。
- 避免访问内部实现细节。
- 避免依赖未文档化的行为。
- 保持模组清单中所需的 T's Core 版本为最新。
- 更新 T's Core 后测试你的模组。
以下部分记录了当前可用的系统及其预期用途。
可用 API 和服务
关系 / 伴侣服务
关系系统提供了一种统一的方式来获取玩家的伴侣,无论使用的是哪种受支持的结婚或关系系统。受支持的提供方可能包括:
- 原版结婚 / 室友关系
- PolyamorySweetLove
- FreeLove
提供方系统的设计使得使用 T's Core 的模组无需直接依赖每个受支持的关系模组。
位置服务
与位置相关的服务提供如下信息:
- 当前位置
- 先前位置
- 位置访问状态
- 访问次数
- 在某个位置花费的时间
- 玩家在室内还是室外
T's Core 还为选定的位置信息提供 Content Patcher 令牌。
传送服务
传送系统为传送玩家提供了一个通用接口。它支持:
- 由 T's Core 提供方提供的命名传送目的地
- 基于地图的传送
- 基于坐标的传送
- 可选的朝向
- 普通和“魔法”传送
T's Core 还为支持的传送功能注册了自定义 Content Patcher 动作。
通知系统
T's Core 提供了一个可自定义的通知系统,用于在 HUD 上显示消息。内置的通知类型包括:
- 信息
- 成功
- 错误
- 警告
- 任务
- 成就
- Boss
- 复古窗口
通知支持自定义:
- 主题
- 优先级
- 持续时间
- 文本外观
- 文本位置
- 边框
- 背景
- 偏移
- 主题继承
通知主题也可以由内容包提供。
通知主题
无需重新编译 T's Core 即可自定义通知主题。内置主题位于:
T's Core/
└─ assets/
└─ notification/
每个主题由一个 JSON 文件定义。主题文件可以在游戏运行时编辑。T's Core 会监视通知主题文件夹,并在检测到更改时自动重新加载主题。
通知主题内容包
内容包可以通过将 JSON 文件放置在以下位置来添加通知主题:
Your Content Pack/
└─ assets/
└─ notification/
└─ MyTheme.json
然后可以通过其短名称 MyTheme 或其完全限定名称 YourContentPack.UniqueID.MyTheme 来引用该主题。当你希望避免与其他内容包的主题冲突时,建议使用完全限定名称。
主题继承
通知主题支持继承。一个主题可以将另一个主题指定为其基础:
{
"Base": "Info",
"BackgroundColor": "#663399"
}
只需要定义子主题明确指定的属性。未指定的属性将从基础主题继承。这样可以创建现有主题的小变体,而无需复制整个配置。内容包主题也可以通过指定相应的 Base 值来继承 T's Core 内置主题或其他可用主题。
内容包主题名称
当内容包提供名为 Blue 的主题时,T's Core 会同时注册 Blue 和 YourContentPack.UniqueID.Blue。短名称对于简单设置很方便,而当多个内容包可能使用相同的主题名称时,完全限定名称更安全。
Content Patcher 令牌
T's Core 为 Content Patcher 模组可能有用的功能注册 Content Patcher 令牌。可用的令牌可能会随着 T's Core 的开发而改变。使用上述调试命令检查当前注册的令牌值。
Content Patcher 集成
T's Core 为支持的功能提供 Content Patcher 集成,包括自定义动作和令牌。有关当前可用的功能,请参阅相关的功能部分和调试命令。
兼容性
T's Core 旨在与其他 SMAPI 模组一起使用。它对于共享通用功能的 T 系列模组特别有用。T's Core 旨在与受支持的第三方关系和结婚系统一起工作,而无需每个使用模组直接依赖它们。如果另一个模组将 T's Core 列为依赖项,除非你也移除或禁用需要它的模组,否则不要移除 T's Core。
( 如果你喜欢这个模组或我制作的任何其他模组,请点赞支持!这会提高我制作模组的意愿!)
我制作的模组列表。 <<<
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。