Trainz/refs/TrainzBaseSpec
KIND TrainzBaseSpec 为所有 Trainz 资产类型提供基础定义,这些定义存在于所有 config.txt ini 文件 中。TBS 为一些“标准标签”提供了定义,这些标签对(或者至少,可以合法地定义)任何和所有 Trainz 资产[1]都适用。
- 其中一些是强制性的,因为它们决定了资产的进一步处理,以及对 config.txt 文件和资产文件夹中数据的解释。
- 但是大多数是可选的,在大多数子资源中可以使用标签的定义行可能会被省略。
- 无,有效且大部分对于由事实上的父容器定义的所有内容都是必要的,config.txt 文件是所有 Trainz 数字模型所必需的。KIND TrainzBaseSpec (TBS) 是一个根类,其他 Trainz 资源类都是由此派生的。
- 之所以说它们是派生的,是因为它们继承了其中列出的参数所定义的处理属性(指令)和值,其中最关键的是 kind 标签的值。这个枚举的词语决定了资源的特定种类声明和要求,这些声明和要求被添加到该资源配置文件中 TBS 的定义中。其他关键的 TBS 定义数据也具有明显的必要性和实用性,例如资源的名称、Kuid 标识符和版本、Trainz 构建值 (TBV) 以及其他具有广泛可变定义需求、适用性和范围的数据,例如字符串表、过时表、kuid 表和缩略图,这些都是偶然的。即使是资源名称和描述之类的字符串值,在实践中也常常是完全不必要且可以完全省略的。
- 当声明一个种类时,该种类将成为父类,要求并规定该类中必须满足的必要数据对,除了 TBS 中列出的那些之外。
- 某些参数可以在某个资源种类的情况下保持未定义,尤其是在对较旧的 Trainz 构建标签值的常见做法中,对于那些,内容管理器或内容创建者 Plus (CCP) 实用程序将分配一个默认值,但在处理它时会列出警告消息。TrainzOnline 维基、这里或更早的TC3 时代内容创建者指南 (CCG) 中的许多标签会提到一个默认值。
- 从 TRS2006 和 Trainz Classics (TC1&2) 开始,每个版本的 Content Manager 模块都会越来越严格地进行预提交错误测试[注释 1],并且每个模块都变得越来越坚定地警告这样的标签在它期望这样一个标签 - 数据对时没有被定义。
在 TANE 之后的版本中,许多这些在“昨天默认”的定义行今天将更频繁地生成一个错误,要求明确的价值定义,而过去在加载时这些是默认的。[注释 2] 与过去的日子相比,这是一个更好的烦恼,在过去的日子里,有缺陷的资源定义有时会导致臭名昭著的“蓝屏死机”或更常见的情况是,将运行时软件崩溃回桌面,导致编辑丢失,并且可能需要重建数据库。
所有 Trainz 定义的数据(内容)都包含三个必需的元素:一个config.txt 文件 用于组织数据,一个身份,即一个kuid(仅用户名对你没有任何帮助,但是一个合法的资源可以在没有名称的情况下创建!),最后,一个合法定义的种类标签。种类负责,指挥乐队的指挥,排长或 CEO 下达指示 - 为所有之后被处理的东西设置要求。简而言之,种类的值,一个小型精选的严格定义的会员专用组 - 告诉 Trainz 软件要渲染和显示在我们创建的虚拟世界中的内容,以及如何(或在哪里)找到用于将资源的这些部分链接在一起的配置文件中所需的其他部分。
以下每个子类都被认为具有TrainzBaseSpec 作为其“父类”数据。[注释 3] 下面列出的一些种类,那些带下划线的种类,是早于Trainz 数据模型在TS2009(即 2008 年末以来)版本中更改的遗留种类,N3V 程序员只对这些更改进行了渐进的(增量)更改。
目前可以在 N3V Trainz Wiki 的内容创建者指南 部分找到基于这些遗留种类的修复资源的详细信息TrainzOnline 网站,并提供有启发性的遗留种类的示例。强烈建议所有使用Trainz 下载站或考虑创建内容的用户仔细阅读 CCG。了解如何定义旧内容的背景历史的见解可以与当前 TrainzOnline 对相同数据类型的覆盖内容进行对比和比较,因为这种以前与现在的对比通常可以提供宝贵的见解来修复、更改和定制资源。更重要的是,CCG 在 TrainzOnline 上发布的是TC1&2/TC3 版本 - 几个小册子中最后出版的一个,这些小册子可以追溯到 1999 年的Trainz;TC3 CCG 包含来自 TRS2004/TRS2006 和UTC 数据模型的经过更改的 Enginespecs 机车资源,需要正确更新。
TBS 标准定义
[编辑源代码]这些标签和容器是标准定义,几乎所有资源中都有。一些标签是可选的,内容创作者可以根据自己的选择决定是否定义。标签是关键字,具有单个分配的键-值,或者容器(如字符串数组或 '{' ... '}' 绑定封闭的标签-值对或子容器。(Trainz 配置文件中的所有声明都是成对的,即使 '{' ... '}' 也被认为是'键-值'.
- 容器是“键”和“键-值”对的集合,以及TBS 中的“上层容器”(与子容器(如缩略图容器中的子容器)相反)通常以“ -table”结尾。
类型 | "'字符串值'" |
trainz-build | '浮点数', 1 位小数 |
kuid | <Kuid 编码值> |
用户名 | 用户名 "'字符串值'" |
用户名-XX | 用户名-XX "'字符串值'" |
描述 | 描述 "'字符串值'" |
描述-XX | 描述-XX "'字符串值'" |
kuid-table (容器) { 依赖项列表 |
一个键值表,列出了此资源所依赖的所有资源。 |
obsolete-table (容器) { } |
kuids 列出了此资源所替换(使之过时)的资源 通常为空(空)[注释 5] |
string-table (容器) { } |
字符串和消息的键值列表,在资源中使用 通常为空,在路线和场景中较大。 |
string-table (容器[s]) { 非英语 语言文本 } |
翻译字符串列表,匹配 强制性的英语 string-table |
类别-区域 标签 枚举 代码 | 类别-区域 "'字符串数组'" |
类别-分类 标签 | 类别-分类 "'枚举 字符串值'" |
类别-时代 标签 | 类别-时代 "'受限字符串数组'" 年代 |
类别-关键字 "'字符串数组'" 最大长度为 64 字节 | 类别-关键字 标签 自然语言搜索关键字 (替换类型,区域) |
自定义-类别-列表 "'字符串数组'" |
脚本接口功能 |
必须拥有产品权利 "'字符串值'" |
DRM 字符串数组 |
不能拥有产品权利 "'字符串值'" |
DRM 字符串数组 |
权限 (容器) { } |
更多 DRM |
缩略图 (容器) { } |
缩略图容器 |
脚本 (文件名) | "'字符串值'" |
类 (脚本资源类) | "'字符串值'", 必须与 脚本 规范类同步。 |
script-include-table { } |
(列出库脚本的容器) |
扩展 (容器) { } |
资产也使用的正式脚本扩展 |
许可 "'字符串值'" | 资源创建者的版权声明 |
作者 | "身份 '字符串值'" |
组织 | "第三方组身份 '字符串值'" |
联系邮箱 | "电子邮件地址 '字符串值'" |
联系网站 | "作者/组的网站 url '字符串值'" |
所属组 (容器) { } |
此资源所属的 KIND 资源组 资源列表。 |
TrainzBaseSpec 在 config.txt 文件 中支持以下标签。 ∅:
- 类型: 字符串。
- 字段定义: 此 config.txt 文件 所代表的资源类型。查看索引 类型 和列表: 这里(上面)
- KUID
- 'Koolthingz Unique IDentifier'. Trainz 系统软件的数据库中唯一引用编号,也扩展到 KUID2 格式中以跟踪多个版本。Trainz 可升级性和资源模块化设计的核心和灵魂,因为每个资源都有自己唯一的 kuid 代码,因此可以指定一个组件(转向架)或来自另一个资源的整个火车车厢,并在新资源中选择性地替换其中一个(重新贴皮或修改转向架)。
- 基本 KUID 格式: '<kuid:wwwwww:xxxxxx>',其中 wwwwww 是作者的“Trainz 唯一身份”,xxxxxx 代表作者分配的模型识别代码。
|
- 大多数 Trainz 资源在它们的 kuid-table 中指定了一系列依赖项 - 其他组成资源,这些资源由软件套件的各个部分组装而成,以在 kuid-table 容器 中构成一个可渲染和可使用的资源。
- 在许多资源的核心,特定的标签可以通过kuid 引用来定义,并使用引用的资源作为一部分。这实际上是如何实现重新贴皮的,而且可以使用资源中的网格,尽管更现代的做法建议将这种引用设置为网格库资源。
- KUID2
- KUID 格式的更新和更新跟踪修改版本,允许指定版本号。一个
<kuid:xxx:yyy>
等同于<kuid2:xxx:yyy:0>
(零修订或版本零,表示原始版本)- 这允许数据项(Trainz 资源)带有资源的固有版本代码。这通常不会与 CM Trainz-build 代码 相匹配,CM Trainz-build 代码识别软件技术级别,但它表明了以前版本的历史。
- 在数据库中存在这两种资源的情况下,具有更高后缀代码的资源会覆盖或替换旧的资源。拥有早期版本并非必需,但 CM 会将缺失的修订链列为缺失的依赖项,对于那些反感 CM 中这种污染的软件错误的人来说,或者对于那些仍然坚持程序员保留这种“功能”的人来说,从任何角度来看,都降低了使用 CM 来识别用户缺少什么的实用性,并导致用户花费时间手动弄清楚到底是什么是什么。
- 主要涵盖:trainz-build 标签,缩写:TB & TBV (TB-值)∅
- 类型:带有小数点的小数,由 N3V [2] 列举,用于跟踪和识别与软件演变的技术水平相对应的数据类型。
- 范围:1.0–4.3,直接对应('映射到3rd' Trainz 1.0—TANE-SP1+hf2;预期此值会随着每次新的主要软件升级而递增 0.1。
每个合法值必须完全匹配已发布的 Trainz 版本号,但以下情况除外
- 分配给 V1.4 的 TBV 或版本值是 Auran 的 Paintshed 版本,一个也适用于 Microsoft Trainz Simulator (MSTS) 的重制工具,并且也作为 TRS2004 辅助软件模块的构建值出现;具体来说,是 ContentManager.exe 工具。
- 1.7 和 2.0 之间的差距要么是外语版本,要么是 Auran 在经过数小时的挖掘和研究后,更可能的原因是 Auran 没有使用它,因为在构建最初 Trainz 的程序员团队看来,TRS2004 版本是第二款 Trainz 产品,无论前台如何炒作营销名称(比如 Trainz UTC,是终极的任何东西…… 认真吗?拜托!真的吗!?)
- 从 v2.0 (TRS2004) 开始,Trainz-build 标签值的数值已经增加了 23 步,这些步是连续的,但不是单调的,因为 Trainz TS09-sp3—TS09-sp4 共享一些 Trainz-build[2] 值;也就是说,在 TS2009 和 TS2010 的联合开发和发布时期,有一些 TBV 是重叠的。
- 此外,N3V 进军 Macintosh 计算机领域打断了基于 Windows 的 Trainz 版本的 TBV 3.4、3.5、3.6、3.7 和 3.8 在 Windows 和基于 Mac 的操作系统之间的平稳递增。
注意: 热修复 不改变版本号。
- 字段定义:此资产构建(并归档)到的文件格式版本,不一定与资产使用的技术级别有关,但对应于在 Content Creator Plus 中创建资产时分配的资产级别,与在 CM 的标题栏中找到的级别相同。
- 程序员建议此数字通常应设置为正在创建和测试资产的 Trainz 安装的 Trainz 版本号。相反,Content Creator 社区试图将此数字设置得尽可能低,以便在下载时为新资产提供尽可能广泛的受众/用户范围。更好的内容创建者将在相应版本的裸机安装(没有添加内容)上对其进行测试,并验证生成的 cdp 是否包含所有相关材料。
- 某些资产类型根据它们的 trainz-build 版本标签解析方式有很大不同。注意:trainz-build 标签 是强制性的。如果未指定,Trainz 将尝试根据 config.txt_file 的内容来猜测旧的 Trainz 版本,这通常会导致 TBV 的值为 1.3。
- 类型:UTF-8 字符串,资产的用户名,强制性规范。
- 字段定义:此资产的英文人机可读名称。
在 TC1&2(v2.7)之后的 trainz-build 中,用户名在编辑资产时也成为操作系统文件夹名称,并且资产文件名被忽略,而在 v2-6 配置文件中,资产文件名优先。根据 N3V games 的 TBS 标准,此字段不应包含非英语文本,除非资产名称是专有名词(例如,地名),并且没有英语本地化变体。此值是每个人通常搜索和记住的数据,因此建议保持一个清晰的名称。
|
- 类型:UTF-8 字符串,用户名标签 的替代语言版本。
- 字段定义:(其中 XX 被替换为适当的 本地化代码,代表所使用的语言。)此资产的本地化人机可读名称。此字段类似于 用户名 字段,但代表非英语区域设置。资产中可能存在多个 username-XX 标签,每个支持的区域设置一个。如果不存在适当的“username-XX”标签来在给定最终用户系统上表示此资产,则使用英文 用户名 标签。
- 类型:UTF-8 多行字符串,提供资产的清晰语言描述。
- 字段定义:此资产的英文人机可读描述性摘要。
描述在 Content Manager 的“资产详细信息”窗格中可见,用于澄清资产名称,提供规格,以及通常的一些历史。
N3V 的 Chris Bergmann 已经说过,此字段应该保留为描述资产的简短(1-2 段)摘要,并且应该通过 info-url 页面提供扩展的详细信息,但可以容忍相当长的文本块。有些人使用块的底部作为版本更改记录。
此字段必须由英文描述性文本组成,尽管文本可能引用非英语专有名词,如其他地方所述。其他语言翻译或源文本应放置在许多可能的替代语言本地化标签之一中(参见 description-xx 标签)。
- 类型:UTF-8 多行字符串,描述标签.
- 字段定义:(其中 XX 被替换为适当的 本地化代码,代表所使用的语言。)此资产的本地化人机可读描述性摘要。此字段类似于 描述 字段,但代表非英语区域设置。资产中可能存在多个 description-XX 标签,每个支持的区域设置一个。如果不存在适当的“description-XX”标签来在给定最终用户系统上表示此资产,则使用英文 描述 标签。
- 类型:UTF-8 字符串列表容器,String-table 容器.
- 字段定义:英文字符串的键值对列表。每个键都是一个有意义的脚本标识符,映射到二进制数据并被二进制数据引用。每个值都是一个英文字符串。英文字符串可以包含或引用非英语专有名词作为标识符。非英语母语的作者必须在需要时创建没有后缀的 string-table 容器。软件只链接到和引用 string-table 容器中没有后缀的名称和值,这会导致西班牙语、法语、德语、捷克语、荷兰语……日语作者感到厌烦。换句话说,带后缀的 string-table 仅用于翻译目的,这在以非英语编写的 map 时会造成问题——没有 string-table-en 来提供用于反向翻译的表。同样,username-en 和 description-en 也是如此。所有三个缺失都体现了一种过时的和傲慢无礼的态度,对世界动态缺乏敏感性。
其他语言通过类似的 string-table(例如 string-table-XX)支持,带有与描述和用户名关键字/标签的国际化后缀匹配的本地化代码后缀 (XX),但这些语言键控的 string-table 容器始终具有相同的左手条目中的键值对。
- 这些左手键或标签既用作“本地索引关键字”,又用作“语言之间的等效表”。
- 左侧栏将始终包含内容创建者提供的“特殊”名称的对象,例如信号、轨迹标记和行业、连接点等的名称,这些名称可能被引用,并且将出现在驾驶员和测量员模块的“查找公用设施”(CTRL+F ) 功能小程序中。
- 相反,索引侧也不会列出默认的场所名称,例如在构建路线图时由随机数自动索引的无数连接点(即毫无意义的混乱。如果很重要,路线构建 CC 会命名它!),但会自动包含可能临时的资产,例如火车车的默认名称。如果重命名,这些名称将取代其相应的默认名称。
- 它的主要用途是为那些旨在与脚本引用交互并承担可变属性的对象,例如火车站或行业所需的或准备运送到行业的货物数量,或者由交互式火车车(滚动行业到脚本)和其他可配置资产(如通用广告牌样式的标志)运送,通过一些高度调整和角度扭转,可以放置在库存建筑物或行业的立面前面,在建筑物上放置不同的商业名称。换句话说,这是一些可配置的场景。
- 总的来说,在路线图或布局中,这些 LHS 名称对应于地图资产上的命名对象,这就是大多数字符串表出现的地方(从字面上看,由大型路线 kind map 中的数千个条目填充)。
- 在某些资产中,该默认名称被挂钩到软件脚本,因此字符串表变得特别重要,而不是索然无味。(见下文)
- 在每种类型的资产中使用字符串表类型始终是合法的,就像描述标签和 trainz-build 和 kind 标签一样。与它们不同的是,它不需要存在或定义,并且在任何情况下都不是强制性的。除非代码期望它们的结合,否则封装在字符串表容器中的值没有任何功能或效果。
- 在其他资产中,再次以假设的可编程商业标志为例,如果要与软件交互,则字符串表必须被赋予默认名称。所有地图可放置资产都可以命名或重命名,但“特殊名称”必须在脚本和字符串表索引值中匹配。大多数可配置资产定义一个接口变量,该变量用作脚本和资产的二进制数据引用的索引或查找表,以取代默认名称。在可编程资产中也可能会定义其他变量。这些变量都可能被脚本引用,但正是索引值使它进入地图或会话字符串表,从而使所有内容在需要驾驶员或会话创建者可变性时协同工作。
- 相反,如果没有系统软件知道索引中命名项目的的位置,对象的脚本可能没有任何触发、条件检查或更新能力。这是 2000 年代 Trainz 1.0 中对象的特征,而不是 2003 年发布的 TRS2004 之后的更现代的 Trainz 铁路模拟器。(从那时起,我们已经走了很长一段路!)
- 有一些资产只能作为一个组协同工作。在其中,在地图或会话层中命名每个资产使它们能够协同工作。例如,考虑一个有五个轨道的公路平交道,其中两个轨道在连接点之外,形成所谓的“菱形交叉口”与通过轨道。如何设置信号,以便任何铁路交通关闭公路闸门,或者如何使用菱形交叉口禁止其他列车通过正在穿越交叉口的列车。公路和铁路信号以及道岔和闸门都必须协同工作。某些“ATLS 系统”资产及其脚本通过字符串表结合起来,可以使这个复杂的系统正常工作。
- 有关更多信息,请参阅 string-table-XX。
string-table-XX 容器
[edit | edit source]- 类型: UTF-8 字符串列表容器,本地化的字符串表,每个后缀对应于除英语以外的语言。
- 字段定义:(其中XX 被替换为代表的语言的适当 本地化代码。)此字段类似于string-table 字段,但表示非英语语言环境。
英语字符串表(没有后缀)是强制性的,其他本地化语言是可选的,由资产作者决定。提交到 DLS 然后也用于与 Trainz 版本捆绑在一起的路线的许多资产通常会被翻译,并有一套完整的本地化翻译,用于 description-XX 和字符串表。特别是,与版本捆绑在一起的路线和会话会收到针对每个零售版本的专业翻译成多种语言。
请注意,字符串表的左侧是相同的,因为它是一个映射的符号表,并索引到二进制数据,如网格、会话或路线文件。只有使用名称,即两个元素中的右侧或数据元素,才是本地化的,并由运行时本地化软件替换。如果需要,这些名称可以在英语字符串表中手动编辑,以获得更友好的名称。索引或左侧引用列语法不得以任何方式更改,因此在数据列中更改名称时,请谨慎使用全局 SAR 规范。
资产中可能存在多个string-table-XX 标签,每个支持的语言一个。每个标签都应包含一个字符串列表,其键与string-table 列表中的键相同,但值不同。如果不存在适当的“string-table-XX”标签来在给定的最终用户系统上表示此资产,或者该列表中缺少适当的字符串,则会引用英语string-table 容器。
kuid-table 容器
[edit | edit source]kuid-table { numberit_library <kuid2:75134:99003:7> 0 <kuid:-3:10164> 1 <kuid:-1:42004201> 2 <kuid2:50567:11155:1> 3 <kuid2:58422:50120:1> 4 <kuid:-3:10003> 5 <kuid2:30671:94407101:1> 6 <kuid2:87907:94407101:1> 7 <kuid2:87907:94407103:1> 8 <kuid2:87907:94407105:1> 9 <kuid2:30671:9870190:1> 10 <kuid2:30671:94407100:1> 11 <kuid2:87907:94407100:1> 12 <kuid2:87907:94407102:1> 13 <kuid2:87907:94407104:1> 14 <kuid:-3:10013> 15 <kuid2:60318:10008:1> 16 <kuid2:60318:10010:2> 17 <kuid2:189041:301:1> 18 <kuid2:50567:11121:1> 19 <kuid2:30671:9840820:1> 20 <kuid2:30671:9870899:1> 21 <kuid2:50567:12646:3> 22 <kuid2:124017:30000:2> 23 <kuid2:124017:30001:2> 24 <kuid2:124017:30002:2> 25 <kuid2:124017:30003:2> lodi_icon <kuid2:124017:35000:1> lodi_lib <kuid2:124017:40000:1> 26 <kuid2:30671:69006:1> 27 <kuid2:124017:35000:1> 28 <kuid2:30671:90810901:1> 29 <kuid2:30671:9081290:1> 30 <kuid2:60318:10009:1> }
- 类型: KUID 列表容器,与obsolete-table 容器(在下文)格式相同。一个虚拟参数 + 一个(依赖)kuid
- 字段定义: 界定此资产所依赖的资产列表的键值。
- 通常
- 只有具有子组件或具有替代选择(货物)的资产才会具有长度可观的 kuid-table。大多数具有子组件的资产只有几个。
- 其次,存在一个惯例,源于有时内部关键字是“自动定义”的——仅仅列为一个没有名称的数字,作为占位符参数,伪关键字可以是任何唯一值(通常是零索引的连续整数。[notes 1])可以给它们命名也可以不命名,用户或作者可以随意选择。
- 此表中的条目有两个目的
首先:确保游戏系统知道依赖关系,以便安装和加载此资产会成功安装和加载任何依赖关系,并且
其次:允许脚本找到相关的子资产。 - 在 kuid-table 中只包含一级依赖关系——具有自身依赖关系的子级或部件资产在该子级资产的验证和数据库提交过程中进行处理。
- 循环依赖关系是非法的。
- 如果某个资产也被标记为此资产的过时版本,则该资产不能被列为依赖关系。(Trainz 资产索引(历史上为 assets.tdx 文件)中只有一个替换 kuid 槽位,这将创建一个循环定义,需要它自己的旧版本!)
- 类似地,某个资产不能被列为它自己的依赖关系。[另一方面,这已经被体验过(即在 TSxx CM 中被证实为一个成功提交的无故障资产)在安装之间移植地图和会话,使用 GSARS 更改 kuid,以便重叠不会覆盖已经在目标安装中使用相同 kuid 的资产,而不会看到错误消息。] 是否它的功能也需要比我更勇敢或更愚蠢的灵魂!--Fabartus,编辑。
- 格式(所有值均为 <kuid:aaaaa.bbbbb> 格式)
kuid-table {
0 Kuid-1
1 Kuid-2
3 Kuid-3
... kuid-ii
N-1 Kuid-N
}
|
- 真正有用的是利用这些是虚拟参数的事实,将复杂的滚动库存资产中的产品 kuid 配对。一个货车可能包含各种各样的产品... 获取许可将您的作者 ID 分配给您自己的系列,并使用不同的装载集,这可能是您首次创建的重要内容!考虑一辆货车,允许的产品容器,kuid 列表可能包含以下条目
... {
Animal_chickens <kuid:-25:230>
Animal_Horses <kuid:-25:236>
Animal_Cows <kuid:-25:239>
Animal_Piggies <kuid:-25:238>
Animal_Sheep_Flock <kuid:-25:240>
} ...
注意连接单词的下划线... 两个符号,键和值!我们让找出在哪里将 kuid 添加到装载和允许的产品队列表条目中留给学生。(欢迎您,但这正是更改名称的好理由!保持清晰几乎是制作资产的全部战斗!)
- 类型: KUID 列表容器,与 Kuid-table 容器 格式相同。
- 字段定义: 一个“占位符键-键值”列表,表示被此资源标记为废弃的资源。任何尝试加载此列表中的任何资源都将导致加载此资源。
- 此外: 两个资源均标记第三个资源为废弃是非法的,除非这两个资源中的一个也标记另一个为废弃。[注 6]
- 循环废弃引用是非法的。
- 此资源的所有较低编号的 KUID2 版本都隐含地被标记为废弃,无需包含在此列表中。同时,较新的改进资源(具有较高的 Kuid2)及其祖先之一不应将同一个祖先(例如原始资源!)列入“中间”祖先列表中,因为这些值用作替代条目表,并且只能用一个资源替换较早的版本。(数组只保存一个值,不能用两个值替换一个值!)
- 将此资源的较高编号的 KUID2 版本标记为废弃是非法的,因为这会创建一个隐式循环引用。
- 此列表中引用的资源必须与此资源具有相同的创建者,才能通过 DLS 上传流程进行审核和接受,此限制在您的本地版本中不适用,例如,它可以用来用一个更美观且更新的资源替换一组大型火车车厢上的所有旧纸质车轮 kuids。
- 用途: 在 CM 和 Surveyor 中进行过滤(搜索条件)
- 类型: 枚举字符串或字符串数组。
- 字段定义: 一个由分号 (;) 分隔的双字符 类别-区域标签 代码列表。字符串中不应出现其他字符(包括空格等)。此资源被认为与每个指定的区域相关 - 这对 kind 火车车厢 和 kind 移动信号 资源最为重要,但可以为任何资源提供。
- 示例
- 类别-区域 "CA;US"
- 类别-区域 "CA;MX;US"(北美国家,加拿大、墨西哥、美国)
- 类别-区域 "CA;CS;DE;MX;US;VE;AU;FR;IN;IT;JP;KR;ES;AR;AT;BE;CH;DK;IE;EE;NL; NO;NZ;PA;PL;PR;PT;RO;RU;SE;SK;UA;UK"(大多数第一世界国家)
- 用途: 在 CM 和 Surveyor 中进行过滤(搜索条件);与 KIND 声明一起确定 CM 软件如何处理资源,以及 Surveyor 在哪里列出资源。
- 类型: 枚举字符串。
- 字段定义: 一个单一的 2-3 个字符 类别-类别 代码,描述此内容项。类别-类别 标签用于提供超出资源类型隐含含义的额外人类子分类。每个 Trainz 资源的类别-类别标签有助于描述资源在游戏中的“意图”,而不是资源的内部结构。
|
请注意,许多类别-类别代码只与特定资源类型相关 - 类别-类别代码不得应用于不合适的资源类型。
- 示例
类别-类别 "XBG" | 货车 - 来自 PRR 60' | |
类别-类别 "BR" | 铁路(非功能性场景) - 可能是一座建筑 | |
类别-类别 "BIN" | 具有产品处理功能的工业资源 |
- 每个时代代码表示一个十年,由一个四位数整数组成,然后必须以 's' 结尾
(例如 "1990s;2000s;2010s"),
因此创建一个枚举的软件令牌(值),它必须与一个指定的合法 时代代码 匹配。 - 字符串中不应出现其他字符(包括空格等),包括(尤其是在字符串末尾)在结束双引号字符之前。
- 允许的年份范围是 1800-2010s[注 7]
- 此资源的唯一含义是对于其他人类来说,此资源在指定的时代范围内被认为是有效的和适当的相关,而 内容管理器 将接受指定适用年份的搜索过滤器。
- 示例
category-era "1920s;1930s;1940s;1950s"
- 用途: 在 CM 和 Surveyor 中进行过滤(搜索条件)
- 类型: 缩略图容器。
- 字段定义: 用于在整个游戏环境(包括游戏内、内容管理器 和 下载站)中以二维预览框、列表和图标形式表示此资源的缩略图。每个数据集都包含在一个子容器中(通常)使用 占位符参数 作为键名或标签。[注 8] 约定将这些设置为 0 索引整数,但该值可以是任何可以评估为 字符串 的非空文本值。(参见下面的第二个示例)
- 一个实际的示例
- (来自资源修复编辑[3])
thumbnails { 0 { width 240 height 180 image "$Screenshot (240)(kuid 68787 25222).jpg" } 1 { width 512 height 512 image "$Screenshot (512)(kuid 68787 25222).jpg" } }
另一个常见的大小是 调车场 和 surveyor 资源选择 API 中使用的 128x64“图标”,它应该有一个 Alpha 遮罩 或一个非常浅的背景。许多较旧的资源没有使用 jpg 文件,而是将 .tga 文件(Targa 真彩色)列在一个 '_art' 子文件夹中(Trainz 1.0—TC3 约定:_art、_body 和 _shadow 是早期 Trainz 数据模型要求强制使用的三个子文件夹,名称为“资源文件名后缀”(废弃标签-<值> 对),它看起来像下面这样[注 9]
thumbnails { Icons { width 128 height 64 image "40ft_boxcar_art\40ft_boxcar_art_icon.texture" } CM { width 240 height 180 image "$screenshot PRR 40ft_boxcar (240).jpg" } DLS1 { width 512 height 512 image "40ft_boxcar_art\40ft_boxcar_art_512.texture" } DLS2 { width 512 height 512 image "$screenshot PRR 40ft_boxcar (512).jpg" } }
在 TS2009 和 TS2010 的早期版本中,上传没有正确缩略图容器的资源会将没有缩略图容器的资源标记为有故障。补丁后来将这些标记为警告。[注 10] 在用户社区中出现大量抱怨之后,TS12 热修复程序删除了这种做法。
• 如果缺少缩略图容器的资产(即使有过时的缩略图标签)后来在一个新的内置路线或会话中被选择,该资产通常会被分发为没有图像的项目——如果纹理 .txt 或 config.txt 缩略图容器没有正确引用,它们会被剥离[注释 11]。
- 类型: URL 字符串。
- 字段定义:指向资产在线描述、资产说明(帮助)或 TrainzOnline wiki 上其他帮助页面的链接,旨在从嵌入式特殊用途 N3V 浏览器中使用。该 URL 必须解析到 Trainz 在线安全区域 内的网站。目前,嵌入式浏览器接受三个域
auran.com ts2009.com ts2010.com
此外,建议使用自定义 Trainz 短 URL 格式来防止 URL 受到未来可能发生的网站布局更改的影响,而不是直接链接到这些域。'短 URL' 是 Trainz 特定的 URL,通过允许内容创建者引用 N3V 网站上的特定页面来帮助未来的内容,而无需依赖特定的网站布局。短 URL 旨在用于游戏内使用,例如 info-url 链接,并且仅在嵌入式 Web 浏览器中有效,而不在任何外部 Web 浏览器中有效。当此标签存在时,游戏内按钮将允许用户查看资产描述或帮助,而无需离开游戏环境。
这对于驾驶员在访问路线图、指南或会话说明或澄清时可能非常有价值。
建议在任何情况下使用通用组页面来表示所有类型的资产,这些资产提供类似的功能,但外观略有不同。这减少了创建、维护和本地化此类文档的时间成本。
- 类型: ASCII 字符串。
- 字段定义:所需的產品權利列表,以分號 (;) 分隔。如果本地安装沒有所需的產品權利,則某些遊戲系統可能無法載入資產。
- 类型: ASCII 字符串。
- 字段定义:冲突的产品权利列表,以分号 (;) 分隔。如果本地安装具有其中一个列出的产品权利,则某些游戏系统可能无法加载资产。
- 类型: privileges 容器 是某些作者使用的 DRM,版权保护实现,也可以称为 privileges DRM 容器。DRM 代表数字版权管理,这就是它实现的功能。如果定义,一些参数将阻止查看 config.txt 文件 以获取资产。
- 字段定义:由资产创建者设置的一组权限,用于控制如何操作此资产。
privileges { is-payware-content 0 permit-listing 1 permit-edit 1 permit-commit 1 }
以上容器使用默认值设置,表示
- 0) 这不是付费软件,因此其他字段具有相关性 [当付费软件编辑和提交将为零时,但列出可能允许];
允许
- 1) 查看 config.txt 文件 资产,
- 2) 编辑资产,包括查看其主文件夹中组件文件的内容,
- 3) 重新保存对资产的任何更改(将重新验证的资产提交(提交)到数据库)。
- 类型: 字符串文件名。
- 字段定义:指示此资产的主要脚本文件的路径(如果有)。此路径应始终以“.gs”扩展名结尾——运行时将尝试添加或替换“.gs”扩展名,如果路径具有其他扩展名。
- 类型: 字符串。
- 字段定义:指示要加载的脚本类名称,作为此资产的主要类(如果有)。此类从此资产的主要脚本文件加载。
- 类型: KUID 参数列表及其对应名称作为键。
- 字段定义:脚本资产的键值表,在编译此资产的脚本文件时搜索脚本包含。键(一个变量,因此不是一个标签)目前未使用,但必须是唯一的;值表示要包含的资产的 KUID。
script-include-table 容器 是任何源自 KIND TrainzBaseSpec 的资产(简而言之,所有资产)都可以使用的顶层 config.txt 文件 条目。此容器允许资产使用 包含另一个资产的脚本 从父资产的脚本文件使用 N3V TrainzScript 的 Script_Include_Directive.
- 相关
extensions 容器是具有特定命名约定的自定义标签或子容器列表。
此容器是脚本资产名称及其 KUID 的简单键值表,在编译资产的脚本文件时搜索脚本包含。键或标签名称目前未使用(即,是一个 占位符参数)在搜索中;值表示要包含的资产的 KUID。能够搜索和识别键名称是内容创建者请求的功能,因此建议使用脚本文件名而不是数字虚拟标签名称作为最佳实践,因为它比 KUID 引用传达的信息更多。
通常最好将此类引用限制为 KIND 库 资产,但这并非强制性,可以引用任何资产。
script-include-table { a-key <kuid:nnnn:nnnnn> enginespec <kuid2:www:xxxxx:yy> anim-doors <kuid:tttt:uuuuuu> }
- 类型: Extensions 容器。
- 字段定义: 一组扩展属性,为脚本提供超出此资产类型定义的 Config.txt 文件 规范的附加信息。在创建新扩展时,应注意遵守扩展命名准则,并在为现有扩展提供数据时遵守扩展创建者的准则。Auran 保留权利,根据扩展创建者的准则,在以后的日期为 扩展容器 中的特定条目添加验证。
以下关键词是相对较新的发展,在旧资产中没有对应项或存在。
- 类型: UTF-8 字符串。
- 字段定义: 由分号 (;) 分隔的自然语言关键词列表。字符串中不应包含其他字符(包括空格或无关的标点符号)。这些关键词构成了资产关键词搜索的基础。资产的 用户名 不需要在 category-keyword 列表中重复。
- 各种 默认搜索关键词 会根据资产类型 (KIND+category-class) 自动提供,因此不需要,并且可能不应该重复。 Ø
- 该标签可能不会作为空字符串 (“”) 或在标签后为空存在 - 这些情况会产生错误。
- 明显用途:公司,例如 ATSF、Santa Fe 和 AT&SF、B&O、Chessie、CSX、NS、PRR 或 NYC 等,而基本类型,例如平板车、箱车、料斗车应该是自动的。桥接键,例如下沉式、井式车和侧倾式(换句话说,是修饰符)可能应该用于增强自动关键词生成的有限智能。重复自动生成的词语不应令人担忧。
{{anchor|custom-category-list container|自定义类别列表容器|custom-category-list 标签|自定义类别列表标签|custom-category-list 字符串|自定义类别列表字符串|自定义类别列表容器|custom-category-list 容器
- 类型: ascii 字符串数组容器。
- 字段定义: 由分号 (;) 分隔的自定义类别标识符列表。每个 自定义类别标识符 应该是一个简短的(例如,3-6 个字符)字母数字标记。字符串中不应包含其他字符(包括空格)。
- 这些自定义类别用于使脚本能够快速定位特定类别的资产。强烈建议谨慎引入新的自定义类别标识符。
- custom-category-list 标签值总共不超过 64 个字符。除非存在只能通过 custom-category-list 方法满足的现有特定脚本需求,否则应将此标签留空。
- 最小版本: V3.5 及更高版本
- 类型: Member-of-groups 容器,配对的 占位符参数 和 资产组 KUID 列表。
- 字段定义: 此资产所属的 KIND_Asset-group 资产列表。有关如何使用和何时使用的详细信息,请参阅 kind KIND Asset-group 文档。
该容器包含 KIND Asset-group KUID 的常规列表。此包含是一个声明,表明此后,特别是在搜索操作(包括脚本接口和 TrainzUtil)中,此资产将被视为每个列出的资产组的成员。
如果给定 "member-of-groups" 容器未指定任何条目,或者资产省略了 "member-of-groups" 容器,则模拟器软件可能会根据资产的 Config.txt 文件指定一些默认资产组。确切的行为可能会在模拟器的不同版本之间发生变化,但是当前逻辑在 这里 描述。
- 以下标签对于任何资产来说都不是强制性的,许多资产将其留空。
- 从历史上看,识别和许可标签从 Trainz 0.9(Beta)开始。
- 类型: UTF-8 多行字符串。(由程序员决定弃用。)
- 字段定义: 描述资产创建者希望如何使用此资产的许可证。最常见的是许可证声明,禁止在任何付费路线、依赖资产(例如转向架、联轴器等火车部件)或重制皮肤中使用受版权保护的资产,包括在任何付费运营的网站上分发资产。(理论上,这对于 DLS 也是正确的。FCT 费用用于更快地访问和无限制下载,而不是访问资产。)
- DLS 上的大多数资产都是对所谓的 知识共享署名-相同方式共享(CC-BY-SA)的措辞不当的版本,类似于此和其他维基百科项目。
- license 标签的含义不明确,其使用不推荐 N3V,但其存在早于 N3V 的管理 6-7 年。
- 上传到 下载站 或提供用于包含在游戏中的内容可能根据特定重新分发合同或许可协议,该协议取代本字段中的任何文本。许可字段不提供本地化支持。许可字段的文本未经 Auran 或 N3V 验证或强制执行,可能对最终用户具有法律约束力,也可能不具有法律约束力。
- 另一方面,Planet Auran 的历史表明,有人通过将其他人的内容作为自己的内容来侵犯版权,可能会导致从 Auran 网站快速封禁,并永久禁止下载站权限等。此外,社区会对其他用户侵犯他人的版权行为采取严厉措施,并同时回避违反者,并忽略任何允许留在 DLS 上的资产。
- 总之,实验和修改资产是 Trainzer 试图克服陡峭的内容创建学习曲线(每个人都希望有更多内容创建者!)的一种可接受甚至被纵容的生活方式,但如果资产具有依赖部分,尤其是网格、脚本、纹理,这些都是知识产权 - 在上传您的创作之前,请获得使用属于他人的这些部分的许可。
|
- 类型: UTF-8 字符串。(被可更新的 Planet Auran 数据库 弃用。)
- 字段定义: 作者的姓名或标记。不推荐使用此字段,因为可以以编程方式确定归属。
- 注意英国拼写,北美拼写 'organization' 也有效!
- 类型: UTF-8 字符串。(被可更新的 Planet Auran 数据库 弃用。)
- 字段定义: 负责创建此资产的组织的名称或标记。不推荐使用此字段,因为可以以编程方式确定归属。
- 类型: 字符串,电子邮件地址。(被可更新的 Planet Auran 数据库 弃用。)
- 字段定义: 此资产创建者的联系电子邮件地址。不推荐使用此字段,因为可以以编程方式确定归属,并且可以针对创建者的 Auran 账户 Planet Auran 账户 注册联系信息,可以在其中限制或更新它们。
- 类型: URL 字符串。(被可更新的 Planet Auran 数据库 弃用。)
- 字段定义: 此资产创建者的联系网站。不推荐使用此字段,因为可以以编程方式确定归属,并且 [联系信息] 可以针对创建者的 Auran 账户 Planet Auran 账户 注册,可以在其中限制或更新它们。
|
- 在最初的整理之后,在数据模型的旧版本中发现的一些常见但现在已过时的标签已添加在下面,例如在许多桥梁资产中发现的bendy 及其下面的朋友。
|
- asset-name、name 和 name-XX — V1.3–v2.8 —在历史上几乎所有 v1.3-v2.0 资产中都发现。虽然“asset-name”在 v2.8 中一直保留,没有引起投诉,但在 v2.5 之后开始被弃用;因此,在 v1.5 之后,资产的 config.txt 文件中唯一需要、希望或认可的名称是 username-XX 变体。
Asset-name 是 Trainz 1.x--TRS2004 Trainz 时代的主要文件夹名称,并且通常是 CM 打开文件进行编辑时打开的文件夹名称;在当今这种早期数据模型资产中,人们通常会发现 asset-name 也用于早期 Trainz 时代的子文件夹系统,在火车车厢资产中,子文件夹的名称为“asset-name_art”、“asset-name_body”、“asset-name_shadow”。在修复此类资产时,通常可以使用来自资源文件的样板代码中复制粘贴的 SAR 来替换该值。这种替换通常会正确定义和链接资产的子文件夹(用于车身、阴影和艺术作品),因为早期方案中的文件名是基于 asset-name 标签的。
- “name”和“name-XX”是早期数据模型形式的较长的 username 和 username-XX 标签,XX 代表英语“name 标签”(或今天的“username”标签)非英语语言翻译的 ISO 双字母后缀;“XX”形式与description-XX 一样,是“本地化”支持其他语言用户友好值的组成部分。
- 在最古老的 Trainz 时代(v1.0-v2.4)的资产中将 name 和 name-XX 替换为 username 和 username-XX,或者如果 username 存在,则直接删除。
- 如果资产的trainz-build 版本为 v2.7 或更高,则 name-XX 会导致错误。有趣的是,即使在 TS12 这样的后期版本中,name-XX 标签也会在Surveyor 工具的搜索列表中显示为资产名称,如果不存在,则显示 TrainzBaseSpec。
|
- 由category-era 标签 取代
- category-era-nn — V1.3–v2.8 s.a. {tag: category-era-0, category-era-1, category-era-2, ...} —以前带有数字后缀的日期系统—在历史上几乎所有值得标注日期的资产中都发现,一直到 TBV 2.0 (甚至在 TBV 2.8 构建的资产中也一直存在!)才引入当前的category-era 字符串数组,将这些标签合并到 config.txt 中的单行上[注释 12]。虽然在 Surveyor 中无法直接访问,但在 TR06 和 CMP 之后,可以定义一个过滤器来选择日期范围,并将该过滤器与区域和类型一起用于 Surveyor,以验证 Surveyor 的放置和选择工具中可以列出的资产。在 TS09 及之后版本中已过时,TS09 使用更短的category-era 标签 字符串数组 放在单行中,而不是使用多个带有“ -nn”后缀的标签-值对。
- 字符串数组中的空格会导致错误;所有值都必须以“s”为后缀,并具有四位数字,例如 1880s;1950s;2010s(这可能完全适合某些类型的女性服装,这些服装会流行起来然后又过时!)。不幸的是,目前无法定义范围,但用户社区已经提出了要求。
- 用字符串数组类型的category-era 标签 替换,标签之间没有空格,并使用分号分隔;这些标签是完整的四位数字年代数字,后跟“s”(小写 s)后缀。
- 类型 category-region-nn — V1.3–v2.8 —在历史上几乎所有值得标注位置的资产中都发现。这些标签已被category-region 标签中的“字符串数组”中的两位字母枚举 ISO 国家代码 取代。
- 用字符串数组类型替换 category-region,两个字符的国家代码之间没有空格和分号,这些代码在引用的标记部分中列出;这些代码以完整的两个大写字母的形式给出,包括 枚举 代码,后面跟着代码之间的 ';' 分隔符,但在最后一个代码之前的末尾引号之前没有分隔符。
- 字符串数组中的任何 空格 都会导致读取错误和错误消息,包括结尾引号之前的空格。
- region —TBS V1.3–v2.8 中有效的内置过滤器和地图资源自定义本地化标识符 (kuid) 部分;现在唯一合法的标记用途是在 kind map(布局)资源中。
- 作为以前的过滤器修饰符,该标记在历史上几乎所有资源中都存在,但它在滚动库存、场景、样条线资源、轨道类型(包括隧道和桥梁)以及具有某种程度的本地化的路边资源中尤为普遍。
- 地图资源仍然保留关键字 Region,该关键字在 Map 配置文件中定义,但使用方式相反——作为 kind region kuid 引用。因此,Region 在 Maps 中是必需的,并且自 TS2012 以来,与标记类型一样,它在大量曾经作为 TRS 系列版本 Surveyor 工具窗口的“分组数据” “快速过滤器”出现的资源中是非法的。
- 任何区域标记到文本字符串在 TRS2009 之后都已过时,因为在程序员看来,他们用 Pick List 替换了 Surveyor 工具中“类型和区域”字符串值的粗略过滤组选择器。这两个标记都有一些优点和缺点,而且都可追溯到 Trainz 0.9 Beta 版本。
阴影标记
[edit | edit source]- 参见上面的弯曲,已弃用/过时的 pre-TS2009 遗留 kind track 资源模式控制标记。
缩略图标记
[edit | edit source]缩略图标记是 缩略图容器 的早期单视图实现(上面也有简要说明)。Trainz 的早期 pre-N3V 程序员版本会在主资源根文件夹或资源名称_art 或资源名称_body 文件夹中找到一个 .jpg 文件,最好大小为 240x180 像素,并使用它在 CMP 和 DLS 中显示资源(如果它被上传)。该标记在 TRS2006 期间被弃用,因为缩略图容器是在 v2.0(TRS2004-SP0)中引入的。在旧的已修复资源中,如果 TBV 保持在 v2.4 以下,则缩略图通常仍然可以在较新的 CM 中正常工作,前提是它位于 _art 子文件夹中,并且资源名称与用户名匹配。
类型标记
[edit | edit source]- type — V1.3–v2.8 —以前的过滤器修饰符,在历史上几乎所有资源中都存在,但它在滚动库存、场景、样条线、轨道类型(包括隧道和桥梁)以及路边资源中尤为普遍。
- 类型标记与“区域标记”一样,在 Trainz 0.9—TC3 版本中用作“在 Surveyor 中的组过滤器”,它与区域结合,提供更小的资源选择(工具组)。自 TS2009 以来,删除了这些本地可点击过滤器功能及其使用,转而采用一种新的、更繁琐的过滤器。这些使得工具选择变得快速简便,而不是在工具选项卡之间切换时变慢并暂停——如今的 pre-TANE 版本在工具选项卡之间来回切换时,通常会因重新加载整个选择列表而感到不堪重负。
- 类型和区域都默认为“全部”,提供与 TS09 及其后的工具相同的超级列表。
备注
[edit | edit source]- ↑ 资源 提交(TANE 的提交)是指将内容合并到数据库中并在 DB 索引中进行交叉引用的过程和步骤,以便它可以在运行时模块中被访问。
- ↑ 验证资源的一种方法是降低 TBV 到 2.5-3.7 范围,看看这些消息是否消失。您可能需要进行几次尝试,直到降低到足够低的水平,反之亦然,在较旧的 TBV 中无法识别的较新的关键字可能会给出不同的错误消息。但是不要害怕尝试——即使失败也能带来知识和经验,而且您不会破坏任何东西!如果是这样,您可以确信,提供一个值就是解决问题的办法。通常,一些现代需求只需要关键字对,因此在标记后面添加一个空白行或在标记后面添加一个空的花括号集就可以满足需求,而错误测试则过于严格。
- ↑ 注意:此列表在 N3V TrainzOnline Wiki 上“维基化”,这意味着在“KIND”一词之后,第一个字母已大写,而 config.txt 文件中的实际数据标记名称是全部小写文本。该维基在许多术语中也使用双引号,我们将在本文中免除您体验这种做法。
- ↑ “kind consist” 并不经常直接看到,它只存在于菜单和内容管理器列表中。
- ↑ 必须谨慎使用过时表格,它最常出现在 Auran 编写的资源中。该表格用更新的版本替换了旧的 kuid,大多数内容创建者正确地使用 kuid 的 Kuid2 形式来取代旧版本。相比之下,N3V 过度使用过时表格来更新新版本“升级”的内置资源,这会导致很多混淆,并且无法获得预期的结果。(例如,许多漂亮的“Flip-trees”在 TS10 和 TS12 中被 Speedtrees 取代,影响了许多路线,而创建者不希望也不需要 Speedtrees。在不同的安装中,这也会导致依赖关系缺失,直到找到包含过时表格的资源。
• 此外,Assets.tdx 数据库索引中每个 kuid 只支持一个过时条目,用 Kuid2 版本取代 kuid 会导致问题(即,您将看到哪个?)。
• 过时表格的一个很好的用途是使用特定部件(尤其是转向架)升级一系列资源。添加一组被更新的优质转向架取代的 kuid 可以通过一次编辑显著改善路线或会话的外观(前提是转向架(例如)兼容且尺寸正确!)。 - ↑ 最近将过时资源引入 TANE 的经验表明,至少有五个替代 kuid 取代了那台可怜的 Flip-tree 资源。看来,由于 Speedtrees 的引入以及 TANE 大力追求最合适的更新资源所带来的混淆,现在内容管理器流程中允许存在多个取代相同 kuid 的不同 kuid 资源。作为一个良好的做法,仅在绝对必要时使用过时表格……例如,用您想上传到 DLS 或自行发布到网站的依赖资源中的不希望的付费资源来取代该资源。
- ↑ 关于 category-era 标记范围:安全玩法,已知有效。其他“未来十年”值应在依赖于这些值之前进行测试。
- ↑ 许多容器在列表中使用虚拟/占位符名称。这些可以是描述性词语,只要它们不包含空格字符即可。在短语构造的名称中使用下划线或句点可以保持可读性并大大提高清晰度。例如,一辆货运车厢可能承载 45 种合法产品类型。这些将列在依赖容器中。使用 Coal、granite、crushed_limestone 等可以更容易地维护和更改表格。Jes Sayin 是一位自 1976 年以来的程序员
- ↑ 在第二个缩略图容器示例中,有一个额外的 512x512 尺寸的图像。DLS 使用哪一个尚不清楚。也可以包含更大的图像尺寸,通过电子邮件聊天,T:ANE 可能支持一个大的图像尺寸,它将在预览操作或 DLS 列表中找到用途。N3V Games 通常不会发布此类信息。
- ↑ 早期实践可以追溯到 Trainz 1.x,使用关键字/标签 'thumb',并在引号中引用一个路径说明符,指向运行时菜单的 240x180 缩略图图像。艺术文件夹包含一个 512x512 的 tga 文件,带有 alpha 遮罩(通常是 bmp 文件,但格式正确的 tga 可以用作自 alpha 遮罩)以及 64x128 的菜单图标图像及其控制纹理。txt 文件。
- ↑ 在 2014 年至 2015 年冬季与前版本经理 James Moody 的私人电子邮件对话中,针对此主题,DLS 上传验证软件很可能已被修改,以强制执行适当的缩略图容器。
- ↑ 关于 category-era-nn 与 category-era 标签值:TRS 将接受两种形式的 category-era 数据;但是 TS2009-SP0 及更高版本从以前合法关键字-值对中创建了错误,并试图强制内容创建者更改所有程序员故意破坏的资产。后来,DLS 上传软件强制执行了转换,但这要好得多,因为第一个操作导致许多人为修复工作花费了数小时,这些修复是不必要的,应该在验证旧的 trainz-build 资产时,在软件预过滤阶段自动实施。这些操作实际上保证了旧资产下载会存在错误。这是 N3V 程序员所做过的最愚蠢和最傲慢的事情之一,而 Auran 更具经验的软件人员绝不会以如此轻率的态度对待社区的时间成本。
参考资料
[edit | edit source]- 此页面的主体内容摘自 N3V TrainzOnline Wiki,来自 KIND_TrainzBaseSpec。增强的信息由 Yesterdayz-Trainz 用户组的成员添加。
脚注
[edit | edit source]- ↑ N3V 的 KIND_TrainzBaseSpec,作为未增强的源页面,缺少此处找到的历史信息(标签);accessdate=2014 年夏季
- ↑ a b "Trainz-build" 标签 直接链接
- ↑ 根据 fabartus,2014 年夏季;可能是添加此示例的同一天。
- ↑ Christoph Bergman,N3V Games 首席程序员,又名 'Windwalkr',KIND TrainzBaseSpec 历史 页面。
此参考页面改编自 TrainzOnline Wiki,根据 CC-BY-SA 3.0 许可。此页面可能包含比 同一主题的源页面 更多的文本解释、说明、历史和/或示例。 TrainzOnline Wiki 主要由程序员或精通 内容创建者维护,可能包含有关当前 trainz-build 代码标准的更新信息,这些标准随着软件功能的添加而不断变化。 |