跳到內容

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"
      }
    }
  }
}

多產品行業

[編輯 | 編輯原始碼]

 

註釋和參考文獻

[編輯 | 編輯原始碼]
華夏公益教科書