Terminology

Core Terms

TermMeaning
Mod idThe manifest id of the owning mod, for example MyMod. It is used when RitsuLib builds stable ids.
ModelA game AbstractModel subtype: card, relic, potion, character, event, act, power, orb, and similar content.
PoolA game pool model such as CardPoolModel, RelicPoolModel, or PotionPoolModel. Register cards, relics, and potions into a pool.
Content packA fluent batch created by RitsuLibFramework.CreateContentPack(modId). It is the preferred registration entry point.
RegistryA per-mod API surface such as ModContentRegistry, ModKeywordRegistry, or ModUnlockRegistry. Use registries directly only when the builder does not fit.
Public entryThe stable ModelId.Entry string generated for RitsuLib-owned models. It is also the stem for most model localization keys.
Owned idAn id qualified with the mod id, for example MY_MOD_KEYWORD_BURNING. Prefer owned ids over flat global ids.
Lifecycle eventA typed event published through RitsuLibFramework.SubscribeLifecycle<TEvent>(...).
Replayable eventA lifecycle event sent immediately to late subscribers when the event has already happened.
ScopePersistence location: Global, Profile, or InMemory. Run-scoped save data uses RunSavedData.

核心术语

术语含义
Mod idMod 清单中的 id,例如 MyMod。RitsuLib 用它生成稳定 ID。
Model游戏里的 AbstractModel 子类:卡牌、遗物、药水、角色、事件、Act、能力、Orb 等。
Pool游戏池模型,例如 CardPoolModelRelicPoolModelPotionPoolModel。卡牌、遗物、药水需要注册到池。
Content packRitsuLibFramework.CreateContentPack(modId) 创建的链式注册批次。推荐优先使用。
Registry每个 Mod 独立的注册器,例如 ModContentRegistryModKeywordRegistryModUnlockRegistry。只有 builder 不合适时才直接使用。
Public entryRitsuLib 为自有模型生成的稳定 ModelId.Entry。大多数模型本地化 key 也以它为 stem。
Owned id带 Mod 归属的 ID,例如 MY_MOD_KEYWORD_BURNING。优先使用 owned id,避免扁平全局 id 冲突。
Lifecycle event通过 RitsuLibFramework.SubscribeLifecycle<TEvent>(...) 发布的强类型事件。
Replayable event已经发生后仍会立即补发给新订阅者的生命周期事件。
Scope持久化位置:GlobalProfileInMemory。跑局存档数据使用 RunSavedData

Naming Rules

RitsuLib normalizes public stems to uppercase snake case. Non-alphanumeric separators collapse to _, and camel-case names are split.

InputNormalized
MyModMY_MOD
com.example.my-modCOM_EXAMPLE_MY_MOD
StarterRelicSTARTER_RELIC

Use readable PascalCase for CLR model type names. Avoid all-uppercase names such as TESTCARD: the vanilla game regex can split that name as T_ES_TC_AR_D in paths that do not use RitsuLib’s fixed-entry override. Prefer TestCard, and prefer UrlParser over URLParser when an acronym is part of the name.

Default model entry:

text
<MODID>_<CATEGORY>_<TYPENAME>

Owned keyword, card tag, card pile, and top-bar button ids use the same pattern with a fixed middle segment such as KEYWORD, CARDTAG, CARDPILE, or TOPBARBUTTON.

命名规则

RitsuLib 会把公开 stem 规范化为全大写下划线格式。非字母数字分隔符合并成 _,驼峰名称会被拆开。

输入规范化后
MyModMY_MOD
com.example.my-modCOM_EXAMPLE_MY_MOD
StarterRelicSTARTER_RELIC

CLR 模型类型名请使用可读 PascalCase。避免 TESTCARD 这类全大写名称:未走 RitsuLib 固定 Entry 覆写的原版路径可能会把它拆成 T_ES_TC_AR_D。请写 TestCard;名称中有缩写时,也优先写 UrlParser 而不是 URLParser

默认模型 Entry:

text
<MODID>_<CATEGORY>_<TYPENAME>

关键词、卡牌标签、卡堆和顶栏按钮的 owned id 使用同一规则,中间段固定为 KEYWORDCARDTAGCARDPILETOPBARBUTTON