跳轉到內容

Trainz/refs/config.txt 檔案

來自華夏公益教科書,開放世界開放書籍
logo
中級和高階內容創作

Trainz 資源維護和建立
TOC | 開始樂趣 | AM&C | 建立 | 書中引用 ORP 引用:  • 索引 • 容器 • 種類 • 標籤 | 附錄  • 版本

這是 Trainz ini 檔案 型別的更技術性覆蓋,稱為 config.txt 檔案。

有關主題的介紹,請參見:Trainz/Config.txt 檔案,有關一般基礎知識的構建,請參見 Trainz/AM&C/config.txt 檔案

無論 Trainz 版本如何,特定版本的 Trainz 資料模型 一直都有一個名為 KIND 資料容器config.txt 檔案,其中包含一個作為 Trainz 內容專案的最小中心描述需求kuid 識別符號程式碼。這使得特定資原始檔夾中的 config.txt 檔案成為任何給定資源的中心描述;為了加強模型,當資料位於資料庫內且不開放編輯時,配置檔案定義了其所在的資料夾名稱。

每個內容專案在其資料夾中都有一個名為 config.txt 的定義檔案,該檔案確定資源的名稱,識別其 種類,並指定專案的 KUID ID 程式碼,唯一地允許從資源到資源或到執行時軟體的資料合併和引用。每個配置檔案,取決於資源 KIND,也將包含定義該資源的各種特定於 KIND 的詳細資訊,以及允許在執行使用同一資源的多個例項的 GUI 時出現多次的鍵 (例項)。(樹木、火車車廂、房屋等——其中許多都經過指令碼影響的半定製,例如隨機車廂號碼、替代皮膚、標籤和其他會話編寫者定義的特性。)


config.txt 檔案在大多數情況下所有文字格式的 Trainz 檔案型別)儲存在 ACS 文字格式 中,簡而言之,它定義了一個關鍵字和一個值對。在 Trainz 中,一些關鍵字是聚合值,對應於一個 容器,它包含此類資料對和其他容器的列表。

  • 在手工編輯檔案時,必須注意使用正確的語法,否則檔案的一部分或全部意義可能會永久丟失。當內容安裝到 Trainz 中,或者當它被存檔(以 CDP 格式 或類似的 .cdpa 檔案格式)時,config.txt 檔案以機器最佳化的二進位制格式儲存。如果內容隨後使用 內容管理器 提取,config.txt 檔案將被轉換回文字格式,但是任何自定義格式或錯誤語法都已經丟失,無法恢復。

TBS 標準標籤

[編輯 | 編輯原始碼]
主條目:TrainzBaseSpec

Trainz 數字模型基於資料定義,所有這些資料定義都遵循一種格式,其中一個 列舉的 標籤關鍵字 引導一行,隨後在同一行上由資料配對。在一些更復雜的資料允許的情況下,資料元素僅僅是開始——一個引號設定了資料或一個開括號 '{' ,它設定了其他特定的關鍵字——資料配對。即使是複雜的容器,其中一些包含子容器,也遵循這種要求的格式。從這個意義上講,容器和子容器都包含一個標籤和一個值,用匹配的括號括起來,這是一種借鑑自 C 程式語言的約定。 

請注意,這種複雜的資料定義在子程式資料處理級別非常有意義,因為標籤一旦被識別,就會被用來選擇適當的處理子程式(在計算中,一個 處理程式 例程),它輸入行的其餘部分(或多行)知道如何解釋在第一個 '{'(或引號標記符號)之後包含的資料,直到它遇到 匹配的閉括號 '}'(或結束引號 '")種類 資料子型別定義了該資源在遊戲引擎內正確渲染所需的獨特配對。  相反,各種標籤和容器在法律上可用於所有 Trainz 內容定義種類,在該種類資源的 config.txt 檔案中是合法的,無論具體的資源型別如何。為了方便起見,由於 TS2009 的釋出和 TrainzOnline Wiki 的誕生,這組資料關鍵字和通常強制性資料定義被稱為Trainz 基本規範 (TBS),在程式設計師的 (駝峰式命名法) 行話 中成為TrainzBaseSpec 規範——一個始終合法的標籤、容器及其必需定義的列表。
 • 合法性不涉及您當地的法律機構,而是內容管理器核心和 DLS 錯誤檢查軟體例程中的“警察”。如果標籤-值對不在上下文中,例如在容器邊界之外放置子容器標籤,或者不合適,那麼“警察”將生成故障訊息和投訴(“起訴書!”)以及將資源標記為故障... 使其無法使用,直到修復為止(至少在後來的 Trainz 版本中——早期的版本更寬容)。因此,各種配置檔案標籤,包括必需標籤和可選標籤,都繼承自 kind trainzbasespec 基本資源型別,並在其中進行了詳細描述。這些值型別是

標籤 或單獨的行首詞是 '關鍵字',並具有一個 單個分配的 '鍵值' ,一個正確格式的容器資料結構,或者有時該鍵值需要被組織成一個引號字串陣列(實際上是該特定標籤型別定義的引數的容器),通常是受限的編碼值(列舉列表成員),用分號分隔,分號位於定義單個字串(一個 字串值)的引號符號之間,用於該標籤。(示例:"CA;MX;US" 是一個 類別區域 定義,涵蓋了整個北美——加拿大、墨西哥和美國。)

容器 是關鍵字和鍵值對以及可能的子容器的集合。上層容器(與子容器相反,例如縮圖容器內的子容器)作為 KIND 規範的一部分是必需的(包括 KIND TBS),並且是高使用容器,特別是那些可能包含可變數量的子容器元素的容器,例如 網格表容器,通常以 '-table' 為字尾。

最後,但最重要的是,有 各種種類(見下面的第二個表格或 TBS 中的列表),每個 config.txt 檔案都需要一個,它定義了那些其他關鍵字,包括強制性的和可選的 這些關鍵字是滿足該型別資源的任何定義所必需的。每個 KIND 資料組因此擴充套件了必需和可選引數,這些標籤和容器必須在該 config.txt 檔案中詳細定義,以正確地將用於建立數字模型的所有元素組合在一起——Trainz 資源。請注意,種類是一個容器,它定義了其他容器和其他特定標籤,這些標籤必須得到令人滿意的定義,才能使 內容管理器 的錯誤檢查接受(並 提交)資源到資料庫中。如果數字模型不在資料庫中,它就不能被內容創作者用來製作會話或地圖。

任何 config.txt 中發現的表格-1 鍵

[編輯 | 編輯原始碼]
下表被稱為'Trainz 基礎規範' 或 TrainzBaseSpec (TBS). TBS 包含 Trainz 資料模型規範中的關鍵字和鍵值對,這些規範可能存在於任何資產中。其他標籤和值由 Kinds 標籤的值定義,這些值列在 Kinds of KINDS 表格 中。
  1. 在缺少這些標籤的 config.txt 檔案中新增任何一個標籤都不會導致問題,前提是您的語法(鍵入和拼寫)完全正確。
  2. 帶有後綴“-XX”的標籤表示多語言非英語語言支援。這些字尾源自 ISO 標準縮寫列表,但通常很簡單。例如:-it 表示義大利語,-fr 表示法語,-cz 表示捷克語,-de 表示德語,-es 表示西班牙語(Español),等等。
  kind     "'string-value'"
  trainz-build 'float',一位小數
  kuid   <Kuid 編碼值>
  username     username "'string-value'"
  username-XX     username-XX "'非英語語言字串值'"
  description     description "'string-value'"
  description-XX     description-XX "'非英語語言描述字串值'"[注 1]
  kuid-table 按 kuids 列出的依賴項(容器)

  {
  }

  此資產依賴的資產的鍵值對列表。
  obsolete-table (容器)
    {
    }
  kuids 列表,此資產替換(使其過時)
通常為無(空)
  string-table (容器)
    {
    }
  資產中使用的字串和訊息的鍵值對列表
通常為空,但是!
在路線和場景中可能非常大。(地圖上的命名資產列在這裡,從軌道標記和觸發器到訊號,命名建築物和工業,到路標。
 string-table-XX 按每種非英語語言(容器[s])
    {
    }
  翻譯後的字串列表 匹配到 強制性的 string-table
  category-region "'string-array'"     category-region 標籤
  category-class "'列舉字串值'   category-class 標籤
  category-era "'string-array'"     category-era 標籤
  category-keyword "'string-array'"     自然語言關鍵字
  (替換 type、region)
  custom-category-list 
 "'string-array'"
  指令碼介面功能
  must-have-product-rights 
 "'string-value'"  
  DRM 字串陣列
  must-not-have-product-rights 
 "'string-value'"  
  DRM 字串陣列
  privileges (容器)
    {
    }
  更多 DRM
  thumbnails (容器)
    {
    }
  縮圖容器
  script (檔名)     "'string-value'"
  class (指令碼資產類)     "'string-value'",必須與 script 規範類同步。
  script-include-table
    {
    }
  (列出庫指令碼的容器)
  extensions (容器)
    {
    }
  資產也使用的正式指令碼擴充套件
  license "'string-value'"   資產建立者的版權宣告
  author     "身份 'string-value'"
  organisation     "第三方組身份 'string-value'"
  contact-email     "電子郵件地址 'string-value'"
  contact-website     "作者/組的網站 URL 'string-value'"
  member-of-groups (容器)
    {
    }
  此資產所屬的 KIND Asset-group 資產列表。

 

Kinds of KINDs

[編輯 | 編輯原始碼]

所有 Trainz 定義的資料(內容)都包含三個必備元素:一個 config.txt 檔案 用於組織資料,一個身份,即一個 kuid(僅使用者名稱是不夠的,但可以建立一個沒有名稱的合法資產!)最後,一個合法定義的 kind 標籤。kind 負責,它是樂團的指揮,排長或 CEO 負責指揮——為 config.txt 檔案中處理的之後所有內容設定要求。簡而言之,kind 的值是一個小而緊密的定義良好的成員組——它告訴 Trainz 軟體應該在虛擬世界中渲染和顯示什麼,以及如何在虛擬世界中渲染和顯示(或在虛擬世界中尋找)構成資產的各個部分。
  下面的每個子類都被視為具有 TrainzBaseSpec 作為其資料的“父類”。[注 2] 下面列出的一些 kind,那些帶下劃線的 kind 是在 TS2009 版本(即 2008 年後期至今)中對 Trainz 資料模型 進行更改之前存在的 legacy kind,N3V 程式設計師只對這些 legacy kind 進行了逐漸的(增量的)更改。
  目前可以在 N3V Trainz Wiki 的 內容建立者指南 部分找到修復基於這些 legacy kind 的資產的詳細資訊。 TrainzOnline 網站的此處 具有啟發性的 此處 的 legacy Kinds 例子。強烈建議 Trainz 下載站 的任何使用者或任何考慮建立內容的人仔細閱讀 CCG。通過了解舊內容的定義方式的歷史背景,可以將其與 TrainzOnline 對相同資料型別的當前覆蓋範圍進行對比,因為這種過去與現在的對比通常能為修復、更改和自定義資產提供寶貴的見解。更重要的是,CCG 在 TrainzOnline 上釋出,是 TC1&2/TC3 版本——是幾本小冊子中的最新版本,這些小冊子可以追溯到 1999 年的 Trainz;TC3 CCG 包含 TRS2004/TRS2006 和 UTC 資料模型中需要更新的更改後的 Enginespecs 機車資產。

TrainzBaseSpec 子類 KINDs(型別資產組)

 


本地化

[編輯 | 編輯原始碼]
  • 本地化 是學術界對“國際化”的說法,指的是將資料翻譯成其他語言…

由於 ACS 文字格式 使用 UTF-8 編碼,因此非英語文字字串條目可能出現在 config.txt 檔案中的任何字串欄位中,除非另有規定。(例如,使用者名稱標籤 應該始終為英語,但語言字尾形式也允許在地區語言中支援多種語言環境 - 為了避免混淆,需要本地化支援的標準字串標籤實際上允許使用多個條目,因為執行時軟體使用以下約定

  • username - 內容的人類可讀名稱,用美式英語表示。資產的英語名稱必須存在,並且應該用英語定義。(不幸的是,一些資產在上傳時沒有對該標準進行審查,因此在 DLS 上發現了一些非英語名稱。
  • username-cz - 內容的人類可讀名稱,用捷克語表示。
  • username-de - 內容的人類可讀名稱,用德語表示。
  • username-es - 內容的人類可讀名稱,用西班牙語 (Espanol) 表示。
  • 等等。

以下標準標籤支援這種本地化形式
其中 XX 是語言的 ISO 兩字母縮寫。(例如,de=德語,fr=法語,it=義大利語,等等)。

常見容器

[編輯 | 編輯原始碼]
[編輯 | 編輯原始碼]

 

註釋、腳註和參考文獻

[編輯 | 編輯原始碼]

Config.txt 檔案在 Trainz 資產中是普遍存在的,因為沒有資產可以在沒有這種型別的 計算機科學容器 的情況下被定義。 

  1. 大多數內容創作者對提供清晰、經過深思熟慮的英語描述文字的關注度很低。這些標籤的使用在源自非英語地區的資產中很少見。
  2. 注意: 此列表在 N3V TrainzOnline Wiki 上被“wiki 化”,這意味著在“KIND”這個詞後面第一個字母被大寫,而 config.txt 檔案中實際的資料標籤名稱是全部小寫文字。該 wiki 在一些術語中還使用雙引號,我們將在這裡免除您體驗這種做法。
  3. 'kind consist' 並不經常直接被看到,它只是存在於選單和內容管理器列表中。

 

 

參考文獻

[編輯 | 編輯原始碼]

 

華夏公益教科書