跳转到内容

Trainz/容器

来自维基教科书,开放的世界,开放的书籍
logo
Trainz 新手基础

Trainz 数据元素介绍-2 容器
目录 | 开始乐趣 | AM&C | 创作 | 书内参考 ORP 参考:  • 索引 • 容器 • 种类 • 标签 | 附录  • 版本
 词汇表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 鼠标使用
 符号

 

关于容器

[编辑 | 编辑源代码]
有关 Trainz 容器的技术背景,请参见 Trainz/AM&C/容器.
本页面列出了此维基教科书中涵盖的特定 Trainz 容器的'
参考页面链接',并在简要介绍了它们在 Trainz 数据模型 中的作用后进行介绍。


容器 是 Trainz 对比单个参数(通常在标签中表示)更大数据的术语,但仍符合所有 Trainz 数据文件强制要求的 ACS 文本格式。在这种背景下,容器是复杂的 数据结构,包含多个基本 数据类型,从处理软件的角度来看,它们表示一个 R 值(当定义正确时)。对我们人类来说,它们是每个相关标签和值的集合,也符合 ACS 文本格式标准,而且还代表着可重用分组数据定义,这些定义是特意定义的,以便在 Trainz 的多个 种类 中重复使用。配置文件和 KIND 在抽象意义上,本身就是“合并容器”,但 KIND TBS 和 KIND 共同创建了独特的类型和容器类型。

从某种意义上说,Trainz 资产不过是由正确的 枚举代码 组织起来的一组数据,这些容器,包括称为 种类 的父类容器,定义了资产的相互关系和配置,以及数字模型在 GUI 运行时软件(游戏引擎)中的行为。容器只是资产在由资产创建者初始化时进行自我定义的元素之一。

回想一下初等数学

{X: A, B, C, ..., xx}读作“合法值的集合‘X’,这些值是其中之一:有效数据值的列表”。



数据组织

[编辑 | 编辑源代码]

所有 Trainz 数据都由关键词和值表示。容器唯一的枚举关键词(标识符)标识,对于容器,成对的花括号 '{' and '}' 内的所有值在抽象意义上都是容器关键词的值。在里面,同样,所有元素都是成对的值,通常再次是关键词和值。 

在许多容器中(或者在实践中,是子容器——参见 缩略图 中的形式、格式和示例,了解常见的易于理解的表示和示例),关键词实际上是变量(未枚举和未声明,不受约束),通常按照惯例表示为简单的整数{X: 1, 2, 3, ..., nn}后面是空格和“值”,作为 config.txt 文件中定义数据值的右栏。 

这些被称为“虚拟参数”“虚拟关键词”,或者“伪关键词”,内容创建者可能会很容易地改为使用{X: A, B, C, ..., xx}{X: throttle1, throttle2, throttle3, ..., tt},因为在这些情况下,实际上所有容器中,正在按顺序组织,以填充 KIND 依赖的内存物理地址,通常是 数组 的一部分(参见 节流功率容器)或 列表(参见 缩略图容器 中的几个示例)。

 

Trainz 维基教科书容器

[编辑 | 编辑源代码]

Trainz 维基教科书和 N3V Games TrainzOnline wiki(或 Trainz Wiki)有不同的侧重点和目的。TrainzOnline 页面旨在作为内容创建者的技术规范和参考,并作为一种交流运行时软件所需的资产在 Trainz GUI 内正常运行的数据的方式。它充当内容定义的简洁指南。

在 Trainz 维基教科书中,我们的重点是提供从初级到中级,有时甚至到高级的入门资料,即传授理解,帮助新的 Trainz 用户和老用户更详细地了解 Trainz 的来龙去脉。一家小型企业为了生存而苦苦挣扎,其成本和人力资源非常有限,这限制了 Trainz Wiki,它必须具有权威性。我们在这里力求达到相同程度的准确性,但也力求提供更宏观的视角,因此,对于 Trainz 不断发展过程中的一些变化,我们必然会有时间滞后。如果没有这样的改变,这款产品就不会生存下来,虽然这使得“追赶”变得困难,但也使得 Trainz 体验不断改进。 

如果我们认为某个主题需要进一步阐述,并且缺乏基本知识的连贯构建,我们将使用 TrainzOnline Wiki 的页面,提供更多信息、解释、示例,并希望在 N3V 程序员(他们负责管理 Trsinz Wiki)不希望使用更严格、更简洁的写作风格的地方,帮助人们理解。以下是我们迄今为止的容器页面的目录。在目录下面,您将看到 TrainzBaseSpec 中一些关键基本材料的回顾

容器目录

[编辑 | 编辑源代码]
[e]
KINDs(类型资产组)
容器


作为 TBS 一部分的容器

[edit | edit source]
  1. 扩展容器扩展
  2. kuid 表格容器
  3. 成员组容器
  4. 已过时表格容器
  5. 权限容器
  6. 脚本包含表格容器
  7. 缩略图容器缩略图容器

 

  • 上面列出的两个链接中,第一个链接到关于容器类型的专用参考页面,第二个链接到 TrainzBaseSpec (TrainzBaseSpec) 中涵盖容器关键字(名称)的部分。大多数上面的链接将导航到 TBS 的正确部分。

不属于 TBS 的容器

[edit | edit source]

这些是 Trainz 配置容器,不属于 TrainzBaseSpec,但被多个 种类 的资产使用。不属于 TrainzBaseSpec 的容器是常态,而不是例外,因为容器被定义为用于多个 KIND 的资产或资产部分的自定义的多用途数据子组。

  • 附加样条线容器 -- kind track 资产的可选平行样条线定义,也就是说自 TS2009 数据模型发布以来 Trainz 中任何完全更新的样条线资产。
  • 转向架容器 -- 在某些铁路文化中也被称为转向架,Trainz 使用转向架NN 符号来表示在车架上哪个车轮组在哪里布置,以及其他修饰符来调整车轮组的方向、滑动或旋转。转向架容器是火车车厢类资产的固有部分。
  • 流量大小容器 -- Enginespec
  • 交叉点顶点容器 -- 交叉点顶点容器
  • 队列容器 -- 工业和交互式资产;此容器的定义用于装载火车车厢,以及在工业中卸载或装载商品。
  • 音量容器 -- Enginespec
  • 网格表格容器 -- 任何“显现”资产的基础,如果没有网格,就没有东西可以用纹理绘制,所以就没有东西可以看。
  • 季节选择器容器 -- 在样条线资产中添加用于多季节纹理修改(自 TB v2.9/TS2009 数据模型 以来,所有资产都是 kind Track 的变体),TS12(TB V3.5)中的新功能。
  • 烟雾容器 -- 最古老的容器类型之一。从水龙头喷出的水流到轨道旁牧场小屋烟囱上方的刺鼻松树烟雾,火车场周围到处都是烟雾和蒸汽;半透明的薄雾状物体创造了许多几乎神奇的效果。有人想要烟雾和镜子来帮助可信度吗?这种容器被用在各种资产中。不止一个获得了 NN 号作为后缀,形成 smoke0、smoke1、smoke2、…、smokeNN,因为资产需要。烟雾也是交互式的,并与软件具有各种接口,烟雾容器定义构成此类软件链接的一部分。
  • 轨道 LOD 树容器 -- 在 TS2009 数据模型更改中新增,轨道 LOD 树容器用于呈现决定参数,用于在更高分辨率和更低多边形网格之间进行选择。实际上,它经常被递归地使用,为渲染软件提供在 LOD 系列中三个或更多网格之间进行选择。因此,它的主要功能是在对象距离越来越远时(无论是在近处、附近、更远、中间或远方)通过减少多边形计算数量来保持游戏帧速率高。

 


TBS 中的种类列表

[edit | edit source]

TrainzBaseSpec (TrainzBaseSpec) 是所有 Trainz 数据模型 标签和容器的综合列表,这些标签和容器是必需的可选的在任何和所有 trainz 资产中。下面概括的部分列出了 Trainz 数据模型 中的 KIND,并提供指向上面的 TOC 或 N3V Wiki 的链接,以方便参考。

  • KIND 是一种特殊的容器,因为它们的 defines 还包括偷偷潜入隐藏在 config.txt 文件中的标签的标签,因此看起来好像根本没有被包含。定义 kind 标签 会使这种判断处于危险之中——通过定义种类,就好像程序员在高级语言中添加了一个包含文件一样。在这种情况下,需要手动添加,而不是读取真正的包含文件的文本。
  • KIND 定义中的标签也是 config 文件中的标签。理解这一点,就赢得了半场胜利。


KIND 的种类

[edit | edit source]

所有 Trainz 定义的数据(内容)都有三个必需的元素:一个 config.txt 文件 来组织数据,一个身份,即 kuid(仅用户名对你无用,但合法资产可以在没有名称的情况下创建!),最后,一个合法定义的种类标签。种类是负责的,是管弦乐队的指挥,是排长或 CEO 指挥——设置在之后处理的所有事物的要求。简而言之,种类的价值——一个小的、精选的、严格定义的会员制小组——告诉 Trainz 软件在虚拟世界中渲染和显示什么,以及如何在虚拟世界中渲染和显示(或在虚拟世界中在哪里)找到在该 config.txt 文件中链接在一起的资产的其他部分。
  下面的每个子类都被认为具有 TrainzBaseSpec 作为其数据的“父类”。[note 1] 下面列出的一些种类(带下划线的种类)是早于 TS2009 发布时的 Trainz 数据模型 更改的传统种类(即从 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(资产组类型)

 

 

注释和脚注

[编辑 | 编辑源代码]
  1. 注意:此列表在 N3V TrainzOnline Wiki 上进行了“维基化”,这意味着单词“KIND”后面的第一个字母已大写,而 config.txt 文件中的实际数据标签名称则为全部小写文本。该维基在许多术语中也使用双引号,这种做法我们将在此处免去。
  2. 'kind consist' 并不经常直接出现,它只存在于菜单和内容管理器列表中。

 

华夏公益教科书