跳转到内容

Trainz/种类

来自维基教科书,开放世界中的开放书籍
logo
Trainz 培训生基础知识

Trainz 注释参考页面
目录 | 开始趣味 | AM&C | 创作 | 书中参考资料 ORP 参考资料:  • 索引 • 容器 • 种类 • 标签 | 附录  • 版本
 词汇表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 鼠标使用
 符号

Kind 标签

[编辑 | 编辑源代码]
点击 这里快速导航到 KIND 的目录

定义 Trainz 资源 的所有元素,除了 本地安装 数据库之外,都包含在一个单个文件夹中——资源文件夹资源源文件夹——当资源被打开进行编辑或构建时,这两个文件夹都是可以访问的——两者都涉及(可能多种编辑)编辑和数据操作。

 

种类是这些资源源文件夹中的特殊父数据形式,并在文件夹中唯一的 config.txt 文件 中定义。Kind 标签的合法值受到严格限制。[note 1] 每个配置都有一个 kind,并且每个配置在本地定义的其他部分的目录中都有一个家,以创建该资源。因此,资源源文件夹也可以被分类为 Trainz 容器 的一般数据类型的上一层,每个资源类型都由其明确的唯一关键字控制,即Kind 标签的值。 

因此,每个 Kind 表示一组基本的 Trainz 资源类型或 Trainz 资源种类数据类,这些数据类在自定义的自包含 Trainz 资源定义层次结构中被列举出来。其内部的config.txt 文件的任务是定义唯一 KIND 行的“资源类型” 数据需求,并将 KIND 要求定义为必要(或可选)的这些东西与 TBS 设置的其他强制性和可选资源数据定义进行聚合——实际上,配置的任务是定义 父 KIND,将其他 TrainzBaseSpec 定义行所需的内容与 父 KIND 行(kind “名称”)值所需的内容 合并,以创建类型为 KIND 的资源,如在 TBS 中设置“kind 'KIND 列举类型名称'”行来定义。
将这种计算机科学翻译成英语:每个“kind 标签”都设置了 资源 的规则,以及其 资源文件夹 提交到 Trainz 内容管理器进行 提交(现在,奇怪地称为 提交,因为 TANE 内容管理器已经出现)或 验证(错误检查和测试,在将资源提交(或提交)到数据库之前进行的步骤。在上传到 DLS 之前也是如此)时必须包含哪些数据类型和定义。每个 kind 都与一个源 config.txt 文件配对,通常是该文件的第一行之一。[note 2]。所有内容都是 TAG--DATA 对的一部分。有些是 TAG-容器,很多是 TAG-值,但所有配置数据都是成对出现的。容器中的子容器遵循相同的规则。即使是数组数据元素——字符串、多个值、多种可能性(类别时代和类别区域)都在一行上定义为一对关系。因此,容器是关键字标签,表示期望出现“{”和“}”,并根据标签名称定义的规则处理两者之间的所有数据。

理解 KIND 的作用,可能仅略微低于理解 TrainzBaseSpec 和它们的无所不在的容器,config.txt 文件的作用。这三者在任何时候,对于用户来说都是最重要的数据元素,用于修复或创建资源。幸运的是,每种 Trainz 资源都有唯一的 KIND,因此可以在需要时掌握这些内容,或者系统地逐个掌握,类似地,理解每个 容器 也可以逐个进行。

实际上,所有三个元素都紧密地相互关联,因为它们在资源 根文件夹 中协同工作,该文件夹必须包含 配置,而配置又“必须”包含 TBS 中的 kind 标签 和其他强制性 TBS 支持定义,例如 kuid用户名,并且从 TBS 行中定义和选择的 KIND,因此“必须”包含该 kind 标签 所需的所有定义以及所有支持定义……包括必要的容器和子容器。

在较小程度上,KIND 和 类别-分类标签 协同工作,以告知 内容管理器 软件资源的 config.txt 文件 中哪些其他关键字是必要的、可选的或非法的,而后者的定义目的是将类别-分类成员(正在定义的资源)添加到 CM 排序和选择操作中使用的各种排序标准的组合中。

在 Trainz 数据模型中定义资源


Trainz 种类是上层 容器,定义了用于在单个标识 kuid 下表征资源类型的最小数据结构。

层次结构和级别

[编辑 | 编辑源代码]

Trainz 模拟器中的KIND 定义了与类别-分类一起设置模型渲染所需的必要信息字段的属性。在非常真实的意义上,KIND 数据结构(对与模型渲染和运行时模拟需求相关的不同类型相关数据的分组)是 Trainz 中的第一级 容器(虽然有一个特殊名称,“KIND”),并且几乎总是需要其他容器级数据组在 ini 文件中与其一起使用。这些是被列举出来的支持容器和标签,kind 标签和类别-分类的组合用于确定哪些其他数据元素必须为该资源定义,这些数据元素可以被认为是子种类,因为所有类似的资源都需要定义相同的数据元素。

现在,所有容器和类似容器的结构都位于 config.txt 文件中,但区别仅仅是“容器定义的类型”通常在几个不同的 KIND 定义的资源中具有范围(适用性),并代表一个共享属性(一个特征,例如转向架),而每个 KIND 对于该类资源都是唯一的。KIND 机车和 KIND 货车都具有转向架(车轮在转向架上),因此它们在 ini 文件中都有一个转向架容器。

在 Trainz 数据模型中定义资源-II


以下列表截至页面撰写时已全面涵盖,并定期更新。请查看 Trainz-Wiki KIND TrainzBaseSpec以获取可能的更新。(下面许多链接连接到 N3V TrainzOnline Wiki,这些链接与 Wikibook 部分链接之间存在细微的颜色差异。截至 2014 年 8 月底,那些仍然是红链接的链接尚未在 N3V Wiki 中正式定义,尽管该类别可能已在 内容创作者 的论坛中发布。 


KIND 的类型

[编辑 | 编辑源代码]

所有 Trainz 定义的数据(内容)都具有三个必需元素:一个 config.txt 文件 来组织数据,一个表示 kuid 的标识(仅用户名是不够的,但合法资产可以在没有名称的情况下创建!),最后是一个合法定义的种类标签。种类负责,是管弦乐队的指挥,是排长或首席执行官给出指示——为在之后处理的所有内容设置要求。简而言之,种类的价值,一小部分严格定义的会员制小组——告诉 Trainz 软件要在我们创建的虚拟世界中渲染和显示什么,以及如何在(或在何处)找到将 config.txt 文件中链接在一起的资产其他部分所需的其余部分。
  以下每个子类别都被认为具有 TrainzBaseSpec 作为其数据的“父类”。[注 4] 以下列出的一些种类,那些带下划线的种类是早于 Trainz 数据模型TS2009 版本(即 2008 年后期)中的更改的传统种类,N3V 程序员仅在此后实施了渐进的(增量)更改。
  目前可以在 内容创建者指南 的 N3V Trainz Wiki TrainzOnline 网站此处 中找到基于这些传统种类的修复资产的详细信息,并附有说明性的 传统种类示例此处。强烈建议任何使用 Trainz 下载站 或考虑创建内容的用户仔细阅读 CCG。从理解旧内容定义方式的历史背景中获得的见解,可以与当前 TrainzOnline 对同类数据的覆盖范围进行对比和比较,因为这种过去与现在的比较通常可以为修复、更改和定制资产提供宝贵的见解。更重要的是,CCG 中的写作是由专业人员制作的,并且更具有语义学——它通常会让你了解如果更改了某些内容,会产生哪些扩展影响,而 Trainz Wiki 并没有提供这些信息。发布在 TrainzOnline 上的 CCG 是 TC1&2/TC3 版本——这是自 1999 年 Trainz 以来出版的几本小册子中的最新版本;TC3 CCG 包含来自 TRS2004/TRS2006 和 UTC 数据模型的已更改的 Enginespecs 机车资产,需要进行适当的更新。

TrainzBaseSpec 子类别 KIND(资产类型组)

 


重要的日常 KIND

[编辑 | 编辑源代码]
本节提供指向一组示例子页面的链接,这些子页面展示了常见资产的演变
从 v1.3-v1.5、v2.2、v2.5、v2.9、v3.7、v3.9 或其他类似版本中,数据模型 发生了变化,可以使用 文件比较软件 查看差异。
什么是最重要的 KIND?

答案取决于您当前正在处理的资产和资产子类型。机车和货车在人类思维中都是 "traincars",但在 Trainz 配置文件中却是不同的 KIND 声明。柴油机车和蒸汽机车都需要定义不同的数据参数来模拟资产;这种配置中的差异来自 kind 的定义,以及强制性的 category-class 标签 仅在 CMsurveyor 选择和排序过滤器中使用。

景观 KIND

[edit | edit source]

这些通常比较简单,因此可以引入 KIND 的使用。

轨道 KIND

[edit | edit source]

轨道边 KIND

[edit | edit source]

机车 KIND

[edit | edit source]

发动机规格

[edit | edit source]

kind engine

注释

[edit | edit source]
  1. KIND 和许多其他 Trainz 数据定义,虽然范围广泛,但都是枚举数据类型... 意味着它们必须来自允许词语的合法列表。其他词语均不适用!
  2. 所有标签和容器在 配置文件 中的位置无关紧要,只要数据结构在引号、方括号和圆括号中正确嵌套即可
  3. 虽然 N3V 程序员没有正式承认(我在任何地方都没见过),但 LOD 文件[1],例如 "meshname.LM.txt" 和 filespec.texture.txt 可以看作是 ini 文件 类型或 包含文件 类型,实际上扩展了配置文件中内联定义。(texture.txt 文件 + LM.txt 文件) 每个文件不仅包含路径信息,还包含必要的 "如何实现数据指令行",并且与 config.txt 文件行一样,需要以正确的格式编写,否则资产将生成错误。
     • config.txt 文件和此类包含文件之间的一个主要区别是,它们不严格遵循 Trainz 的 "关键字—<值> 对" 行格式,而是经常使用等号作为其语法的一部分。
  4. 注意: 此列表在 N3V TrainzOnline Wiki 上是 "维基化" 的,这意味着词语 "KIND" 后的第一个字母已大写,而 config.txt 文件中的实际数据标签名称为 全小写 文本。该维基在许多术语中还使用双引号,这种做法我们将在本书中避免。
  5. 'kind consist' 并不常见,它只存在于菜单和内容管理器列表中。

参考资料

[edit | edit source]


华夏公益教科书