T的核心

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 会同时注册 BlueYourContentPack.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。


( 如果你喜欢这个模组或我制作的任何其他模组,请点赞支持!这会提高我制作模组的意愿!)


我制作的模组列表。 <<<