跳到内容

Trainz/containers/queues 容器

来自维基教科书,开放世界中的开放书籍
[[Category:Trainz 线程|process-ID, processes container]]
logo
Trainz 注释参考页面

Trainz 资产维护和创建
TOC | 开始有趣 | AM&C | 创建 | 书内参考 ORP 参考:  • 索引 • 容器 • 种类 • 标签 | 附录  • 版本

queues 容器 是各种 config.txt 文件 条目中使用的顶级条目 内容类型.

queues 容器 是一个包含队列子容器(队列)的列表,没有独立的标签。 队列被某些资产类型(例如 kind industrykind traincar)使用,用于建立运行时内存空间分配来“容纳” kind product 实例,并定义其内容的合法值。

  • 本质上,由于产品可以在操作过程中装卸或生产和消费,因此每个队列都会建立在游戏中动态变化的变量。然后,支持的 TrainzScript 代码可以访问并使用这些内存分配。
  • 队列可以使用动画网格或自定义附件来直观地表示它们在游戏中保存的产品数量。
  • 队列子容器的实例在 TrainzScript 中通过 Class_ProductQueue 表示。
每个队列子容器使用以下格式


支持的标签

[edit | edit source]

每个队列子容器都支持以下标签。每个标签在此处都显示其默认值。

 size                  0
 product-kuid          <KUID:0:0>
 initial-count         0
 passenger-queue       0
 per-hour              120
 animated-mesh         ""
 custom-attachments    ""
 attachment-points
 {
 }
 allowed-products
 {
 }
 allowed-categories
 {
 }
 conflicts-with-queues
 {
 }

 

数据类型:正整数
数据元素描述:队列的最大大小,换句话说,这是队列可以“容纳”的最大产品量。

 

product-kuid

[edit | edit source]
数据类型:KUID
数据元素描述:与“initial-count”标签结合使用,“product-kuid”指定队列中的初始 kind product 类型。

 

initial-count

[edit | edit source]
数据类型:正整数
数据元素描述:与“product-kuid”标签结合使用,“initial-count”指定队列中的初始产品量。

 

passenger-queue

[edit | edit source]
数据类型:布尔值
数据元素描述:指定队列可以容纳乘客。

 

per-hour

[edit | edit source]
数据类型:正整数
数据元素描述:此标志用于客运站,并设置将在一个小时内累积的基本乘客数量。

 

animated-mesh

[edit | edit source]
数据类型:字符串
数据元素描述:指定网格表中动画网格的名称。此网格用于在游戏中直观地表示队列中的产品数量,并且应该从空到满进行动画处理。

 

custom-attachments

[edit | edit source]
数据类型:字符串
数据元素描述:指定此队列具有自定义附件点。自定义附件在游戏中用于直观地表示队列中的产品数量。“attachment-points”容器用于列出自定义附件。

 

attachment-points

[edit | edit source]
数据类型:字符串容器
数据元素描述:“attachment-points”容器列出所有用于直观地表示队列中产品数量的网格附件点。当队列为空时,附加在这些点上的网格将不可见,随着队列的填充,它们将逐渐显示。附件点的数量不能超过队列的总大小。

 

allowed-categories

[edit | edit source]
数据类型:KUID 容器
数据元素描述:列出所有可以累积在队列中的 kind product-category 资产的 KUID。允许产品类别意味着该类别中的所有产品都是允许的,因此它们不需要在“allowed-products”子容器中指定。
  • 另一方面,使用 kind kind product-category 意味着必须定义一个与行业或滚动库存资产的限制相匹配的类别。

 

allowed-products

[edit | edit source]

Allowed-products 可以被认为是在上面 allowed-categories 指定的产品类别过宽或不合适时,特定产品的列表。

数据类型:KUID 子容器
数据元素描述:列出所有可以累积在队列中的各种 kind product 资产的 KUID。

 

示例
   allowed-products
   {
     0                                 <kuid2:xxxxx:yyyyyy:1>
     1                                 <kuid:wwwwww:zzzzzz>
   }

 

  • 列出的 KUID 是定义的 kind product 类资产的资产。


conflicts-with-queues

[编辑 | 编辑源代码]
数据类型:字符串容器
数据元素描述:设置此队列冲突的队列数量。如果任何冲突队列中有任何产品,则无法将可冲突产品添加到此队列。
  • 否则,如果产品不相互排斥,则可以将产品添加到多个队列。

队列 ID

[编辑 | 编辑源代码]

队列 ID 是内容创建者指定的标识符名称的占位符(因此是可变的)。标识符名称(队列 ID)由 Trainz 软件的其他部分使用来识别和与队列数据结构中初始化的数据进行交互。

  • 在下面的示例中,'queues-ID' 的作用是显而易见的,因为每个都是队列数据块(元素组)内仅一个单一嵌套级别 花括号,紧接在(在...内)形成队列数据块边界的 括号 之后。
  • 按照下面示例中出现的顺序,它们是
  1. prod0
    具有两个消耗队列的机车
  2. locomotive_diesel_fuel_queue
  3. locomotive_sand_queue
    其他一些有趣的用途...
  4. load
  5. cattle_q
    客运车站 具有多个消耗队列和源队列...
  6. passengers_on_0
  7. passengers_on_1
  8. passengers_on_2
  9. passengers_off_0
  10. passengers_off_1
  11. passengers_off_2

 

  • 注意在示例中,进程 数据结构与队列 ID 标识符处于相同的缩进级别。

 

滚动库存中的示例

[编辑 | 编辑源代码]

货车中的队列

[编辑 | 编辑源代码]
在这种情况下,货车与 NASCAR 无关,而是更古老的牲畜用途:绵羊、猪、牛等。
queues
{
  prod0
  {
    size                                15
    initial-count                       0
    product-kuid                        <kuid2:30671:90102101:1>
    
    attachment-points
    {
      0                                 "a.load0"
      1                                 "a.load1"
      2                                 "a.load2"
      3                                 "a.load3"
      4                                 "a.load4"
      5                                 "a.load5"
      6                                 "a.load6"
      7                                 "a.load7"
      8                                 "a.load8"
      9                                 "a.load9"
      10                                "a.load10"
      11                                "a.load11"
      12                                "a.load12"
      13                                "a.load13"
      14                                "a.load14"
    }
    
    allowed-products
    {
      0                                 <kuid2:30671:90102101:1>
      1                                 <kuid2:68213:60038:1>
      2                                 <kuid2:68213:60037:1>
    }
  }
}

机车中的队列

[编辑 | 编辑源代码]
queues
{
  locomotive_diesel_fuel_queue
  {
    size                                18571
    initial-count                       1000
    product-kuid                        <kuid2:86105:60600:1>
    
    allowed-products
    {
      0                                 <kuid2:86105:60600:1>
    }
  }
  
  locomotive_sand_queue
  {
    size                                1585
    initial-count                       1000
    product-kuid                        <kuid2:86105:60601:1>
    
    allowed-products
    {
      0                                 <kuid2:86105:60601:1>
    }
  }
}


箱车中的队列

[编辑 | 编辑源代码]
kuid                                    <kuid:58422:1053>
username                                "40ft Southern AAR DD boxcar"
kind                                    "traincar"
mass                                    23012
engine                                  0
enginespec                              <kuid:-1:42004201>
description                             "AAR 1937 design standard 40ft 50ton  automobile boxcar as used by CNO&TP(Southern)."
author                                  "Randall (Whitepass) White"
organisation                            "TPR"

queues
{
  load
  {
    size                                7
    initial-count                       0
    product-kuid                        <kuid:-3:10013>
    
    allowed-products
    {
      0                                 <kuid:-3:10013>
      2                                 <kuid2:30671:9040690:1>
      3                                 <kuid2:30671:9080810:1>
      4                                 <kuid2:30671:9080510:1>
      5                                 <kuid2:30671:98702901:1>
      6                                 <kuid2:30671:9840820:1>
      7                                 <kuid2:124017:27009:1>
      8                                 <kuid2:30671:9870899:1>
      9                                 <kuid2:30671:9870190:1>
    }
  }
}

行业中的示例

[编辑 | 编辑源代码]
  • 这些示例可能需要放在子页面中,因为长度太长。

行业类型涉及一个配套或姊妹容器:进程容器容器,这些容器也将在下面介绍,以便最好地展示其相互作用和关联。

仅消耗行业

[编辑 | 编辑源代码]

这个肉类包装行业不输出任何东西,充当牲畜消费者。

kuid                                    <kuid2:69695:106:3>
trainz-build                            2.4
light                                   1
type                                    "industrial"*
region                                  "GP&W"*
category-region-0                       "US"
category-era-0                          "1990s"
category-era-1                          "1950s"
category-era-2                          "1940s"
category-class                          "BC"
script                                  "meatworks"
class                                   "meatworks"


queues
{
  cattle_q
  {
    size                                256
    initial-count                       256
    product-kuid                        <kuid2:30671:90102101:1>
    
    attachment-points
    {
      0                                 "a.gen_goods0"
      1                                 "a.gen_goods1"
      2                                 "a.gen_goods2"
... yes a list of 256 attachment points for cattle
      254                               "a.gen_goods254"
      255                               "a.gen_goods255"
    }
  }
}

processes
{
  multi_consumer_producer
  {
    start-enabled                       1
    duration                            60
    
    inputs
    {
      0
      {
        amount                          1
        queue                           "cattle_q"
      }
    }
    
    outputs
    {
    }
  }
}

attached-track
{
  cattledepot
  {
    track                               <kuid:-1:15>
    
    vertices
    {
      0                                 "a.track0a"
      1                                 "a.track0b"
      2                                 "a.track0c"
      3                                 "a.track0d"
    }
  }
}

attached-trigger
{
  cattletrig1
  {
    att                                 "a.trig0"
    radius                              6.5
  }
}

多平台火车站

[编辑 | 编辑源代码]
kuid                                    <kuid2:316:28003:1>
kind                                    "industry" 
script                                  "Station"
class                                   "Station"
category-class                          "BR"
username                                "Austin Large Station"
category-region                         "CA;US"
category-era                            "1890s;1900s;1910s;1920s;1930s;1940s;1950s;1960s;1970s"
trainz-build                            2.5
queues
{
  passengers_on_0
  {
    passenger-queue                     "1"
    size                                30
    initial-count                       8
    product-kuid                        <kuid:-3:10060>
    
    attachment-points
    {
      0                                 "a.passon01"
      1                                 "a.passon02"
      2                                 "a.passon03"
      3                                 "a.passon04
...
      28                                "a.passon29"
      29                                "a.passon30"
    }
  }
  
  passengers_on_1
  {
    passenger-queue                     "1"
    size                                30
    initial-count                       8
    product-kuid                        <kuid:-3:10060>
    
    attachment-points
    {
      0                                 "a.passon31"
      1                                 "a.passon32"
      2                                 "a.passon33
...
      28                                "a.passon59"
      29                                "a.passon60"
    }
  }
  
  passengers_on_2
  {
    passenger-queue                     "1"
    size                                20
    initial-count                       8
    product-kuid                        <kuid:-3:10060>
    
    attachment-points
    {
      0                                 "a.passon61"
      1                                 "a.passon62" 
...
      18                                "a.passon79"
      19                                "a.passon80"
    }
  }
  
  passengers_off_0
  {
    passenger-queue                     "1"
    size                                18
    initial-count                       0
    product-kuid                        <kuid:-3:10060>
    
    attachment-points
    {
      0                                 "a.passoff01"
      1                                 "a.passoff02" 
...
      16                                "a.passoff17"
      17                                "a.passoff18"
    }
  }
  
  passengers_off_1
  {
    passenger-queue                     "1"
    size                                17
    initial-count                       0
    product-kuid                        <kuid:-3:10060>
    
    attachment-points
    {
      0                                 "a.passoff19"
      1                                 "a.passoff20" 
...
      16                                "a.passoff35"
    }
  }
  
  passengers_off_2
  {
    passenger-queue                     "1"
    size                                18
    initial-count                       0
    product-kuid                        <kuid:-3:10060>
    
    attachment-points
    {
      0                                 "a.passoff36"
      1                                 "a.passoff37" 
...
      15                                "a.passoff51"
      16                                "a.passoff52"
    }
  }
}

processes
{
  passenger_spawn_0
  {
    start-enabled                       1
    duration                            20
    
    outputs
    {
      0
      {
        amount                          1
        queue                           "passengers_on_0"
      }
    }
  }
  
  passenger_spawn_1
  {
    start-enabled                       1
    duration                            20
    
    outputs
    {
      0
      {
        amount                          1
        queue                           "passengers_on_1"
      }
    }
  }
  
  passenger_spawn_2
  {
    start-enabled                       1
    duration                            20
    
    outputs
    {
      0
      {
        amount                          1
        queue                           "passengers_on_2"
      }
    }
  }
  
  passenger_delete_0
  {
    start-enabled                       1
    duration                            3
    
    inputs
    {
      0
      {
        amount                          1
        queue                           "passengers_off_0"
      }
    }
  }
  
  passenger_delete_1
  {
    start-enabled                       1
    duration                            3
    
    inputs
    {
      0
      {
        amount                          1
        queue                           "passengers_off_1"
      }
    }
  }
  
  passenger_delete_2
  {
    start-enabled                       1
    duration                            3
    
    inputs
    {
      0
      {
        amount                          1
        queue                           "passengers_off_2"
      }
    }
  }
}

多产品行业

[编辑 | 编辑源代码]

 

注释和参考文献

[编辑 | 编辑源代码]
华夏公益教科书