Trainz/refs/config.txt 檔案
這是 Trainz 的 ini 檔案 型別的更技術性的覆蓋範圍,稱為 config.txt 檔案。
- 有關主題的介紹,請參見:Trainz/Config.txt 檔案,有關一般基礎知識構建,請參見 Trainz/AM&C/config.txt 檔案。
無論 Trainz 版本如何,版本特定的 Trainz 資料模型 始終具有 KIND 資料容器,它位於一個帶有 kuid 識別符號程式碼 的 config.txt 檔案中,作為 Trainz 內容專案的 最小中心描述需求。這使得 特定資產資料夾 中的 config.txt 檔案成為任何給定資產的中心描述;為了收緊模型,當資料位於資料庫中且未開啟以供編輯時,配置檔案定義了其所在資料夾的名稱。
| 每個內容專案在其資料夾中都有一個名為 config.txt 的 定義檔案,它確定資產的名稱,標識其 種類 並指定專案的 KUID ID 程式碼,唯一地允許從資產到資產或到執行時軟體的資料匹配和引用。每個 config 檔案都依賴於資產 KIND,它還會儲存定義該資產的各種特定於 KIND 的詳細資訊以及允許在使用相同資產的多個副本執行 GUI 時出現多次出現 (例項) 的任何金鑰。(樹木、火車車廂、房屋等——其中許多被指令碼影響,例如隨機的路線編號、替代皮膚、標籤和其他會話編寫器定義的功能。) |
config.txt 檔案(在大多數情況下,所有以文字格式的 Trainz 檔案型別)儲存在 ACS 文字格式 中,它簡要定義了關鍵字和值對。在 Trainz 中,一些關鍵字是聚合值,對應於包含此類資料對列表和其他容器的 容器。
- 手動編輯檔案時,必須注意使用正確的語法,否則檔案部分或全部的含義可能會永久丟失。當內容安裝到 Trainz 中,或當它被存檔(在 CDP 格式 或類似的 .cdpa 檔案格式中)時,config.txt 檔案儲存在機器最佳化的二進位制格式中。如果內容隨後使用 內容管理器 提取,則 config.txt 檔案將轉換回文字格式,但是任何自定義格式或錯誤語法都已經丟失並且無法恢復。
- 主要文章:TrainzBaseSpec
Trainz 數字模型基於資料定義,所有資料定義都遵循以下格式:列舉的 標籤關鍵字 位於一行開頭,後面緊跟著該行上的資料對。在一些更復雜的資料允許的情況下,資料元素只是開始——引號引出資料或一個 開括號 '{' 引出其他特定的關鍵字——資料對。即使是複雜的容器,其中一些帶有子容器,也遵循這種強制格式。從這個意義上講,容器和子容器都包含一個標籤和一個值,它們被匹配的括號隔開幷包含在匹配的括號內,這是一種來自 C 程式語言的約定。
請注意,這種複雜的資料定義在子程式資料處理級別很有意義,因為標籤一旦被識別,就會用於選擇相應的處理 子程式(在計算中,處理程式 例程),它輸入該行的其餘部分(或多行),知道如何解釋第一個 '{'(或引號字形)後的包含資料,直到它遇到 匹配的閉括號 '}'(或結束引號 '")。這 種類 資料子型別定義了該資產在遊戲引擎中正確渲染所需的唯一配對。 相反,各種標籤和容器在法律上可用於所有 Trainz 內容定義種類,在該種類資產的 config.txt 檔案中是合法的,無論特定資產型別如何。為了方便起見,由於 TS2009 的釋出和 TrainzOnline Wiki 的建立,這組資料關鍵字和通常強制性資料定義被稱為 Trainz 基礎規範 (TBS),它在程式設計師(駝峰式大小寫)行話 中成為 TrainzBaseSpec 規範——一個始終合法的標籤、容器及其必要定義列表。
• 合法性不涉及您當地的法律機構,而是居住在內容管理器和 DLS 錯誤檢查軟體例程核心的警察。如果標籤-值對超出上下文,例如將子容器標籤放置在容器邊界之外,或者不合適,那麼“警察”將生成錯誤訊息和投訴(“起訴書!”),並將資產標記為有故障... 使它無法使用,直到修復(至少在後來的 Trainz 版本中——早期版本更寬容)。因此,各種 config 標籤,包括必需的標籤和可選的標籤,都從 kind trainzbasespec 基礎資產型別繼承,並在那裡詳細描述。這些值型別是
標籤 或單獨的行起始詞是 '關鍵字',並且有一個 單個分配的 '鍵值' ,一個格式正確的容器資料結構,或者有時該鍵值需要組織為一個帶引號的字串陣列(實際上,一個用於該特定標籤型別定義的引數的容器),通常是受限的編碼值(列舉列表成員),由引號字形之間的分號分隔,用於定義該標籤的單個字串(一個 字串值)。(示例:"CA;MX;US" 是一個 category-region 定義,涵蓋北美所有地區——加拿大、墨西哥和美國。)
容器 是關鍵字和鍵值對以及可能子容器的集合。上層容器(與子容器相反,例如縮圖容器中的子容器)是 KIND 規範(包括 KIND TBS)的一部分,並且是高度使用的容器,尤其是那些可能採用可變數量的子容器元素的容器,例如 mesh-table 容器 通常以“ -table”結尾。
最後,但最重要的是,有 各種 種類(參見下面第二個表中的列表或 TBS 中的列表),每個 config.txt 檔案都需要一個,並且它定義了其他關鍵字,包括強制性的和可選的 必須在該 config.txt 檔案中詳細定義以滿足對該型別資產的任何定義。因此,每個種類資料組都擴充套件了必需的和可選的引數,以及必須在該 config.txt 檔案中詳細定義的標籤和容器,以正確組合用於建立數字模型的所有元素——Trainz 資產。請注意,種類是一個容器,它定義了其他容器和必須在該 config.txt 檔案中定義的其他特定標籤,以便 內容管理器 的錯誤檢查能夠接受(並 提交)該資產到資料庫中。如果數字模型不在資料庫中,則內容建立者無法使用它來製作會話或地圖。
- 下表正式稱為'Trainz 基礎規範' 或 TrainzBaseSpec (TBS). TBS 包含了 Trainz 資料模型規範中可能出現在任何資產中的 _關鍵詞和鍵值對_。其他標籤和值由 Kinds 標籤的值定義,列在 Kinds of KINDS 表格 中。
- 在缺少這些標籤的 config.txt 檔案中新增任何一個標籤都不會造成問題,只要您的語法(輸入和拼寫)正確。
- 帶有後綴“ -XX”的標籤是多語言非英語語言支援。字尾源於 ISO 標準縮寫列表,但通常很簡單。例如:-it 代表義大利語,-fr 代表法語,-cz 代表捷克語,-de 代表德語,-es 代表 Espanol(西班牙語)等等。
| kind | "'字串值'" |
| trainz-build | '浮點數', 1 位小數 |
| kuid | <Kuid 編碼值> |
| username | username "'字串值'" |
| username-XX | username-XX "'非英語語言字串值'" |
| description | description "'字串值'" |
| description-XX | description-XX "'非英語語言描述字串值'"[註釋 1] |
| kuid-table 按 kuids 列出的依賴項列表(容器) { |
此資產依賴的資產的鍵值列表。 |
| obsolete-table (容器) { } |
此資產替換的 kuids 列表(使之過時) 通常沒有(為空) |
| string-table (容器) { } |
資產中使用的字串和訊息的鍵值列表 通常為空,但! 在路線和場景中可能非常大。(地圖上的命名資產列在這裡,從軌道標記和觸發器到訊號、命名建築物和工業,到路標。 |
| string-table-XX 按每種非英語語言(容器[s]) { } |
翻譯後的字串列表 匹配到 強制性的 string-table |
| category-region "'字串陣列'" | category-region 標籤 |
| category-class "'列舉字串值'" | category-class 標籤 |
| category-era "'字串陣列'" | category-era 標籤 |
| category-keyword "'字串陣列'" | 自然語言關鍵字 (替換型別、區域) |
| custom-category-list "'字串陣列'" |
指令碼介面功能 |
| must-have-product-rights "'字串值'" |
DRM 字串陣列 |
| must-not-have-product-rights "'字串值'" |
DRM 字串陣列 |
| privileges (容器) { } |
更多 DRM |
| thumbnails (容器) { } |
縮圖容器 |
| script (檔名) | "'字串值'" |
| class (指令碼資產類) | "'字串值'", 必須與 script 規範類同步。 |
| script-include-table { } |
(列出庫指令碼的容器) |
| extensions (容器) { } |
資產也使用的正式指令碼擴充套件 |
| license "'字串值'" | 資產建立者的版權宣告 |
| author | "身份 '字串值'" |
| organisation | "第三方組身份 '字串值'" |
| contact-email | "電子郵件地址 '字串值'" |
| contact-website | "作者/組的網站 URL '字串值'" |
| member-of-groups (容器) { } |
此資產所屬的 KIND Asset-group 資產列表。 |
所有 Trainz 定義的資料(內容)都有三個必備元素:一個 config.txt 檔案 來組織資料,一個身份,即一個 kuid(僅使用者名稱沒有用,但一個合法的資產可以在沒有名字的情況下建立!),最後,一個合法定義的 kind 標籤。kind 負責一切,就像樂團的指揮、排長或 CEO 指揮一切一樣——它為 config.txt 檔案中處理的所有內容設定了要求。簡而言之,kind 的值,一個小而精密的、成員只有少數的團體,告訴 Trainz 軟體在虛擬世界中渲染和顯示什麼,以及如何(或在何處)找到其他部分,以便在該 config.txt 檔案中將資產的這些部分連結在一起。
以下每個子類都被認為具有 TrainzBaseSpec 作為其資料的“父類”。[註釋 2] 下面列出的一些 kinds,那些帶下劃線的,是過時的 kinds,早於 TS2009 釋出時對 Trainz 資料模型 的更改(即從 2008 年末開始),自那以後 N3V 程式設計師只對模型進行了逐步(增量)的更改。
目前,在 N3V Trainz Wiki TrainzOnline 站點 的 Content Creator's Guide 部分,可以找到有關基於這些過時 kinds 修復資產的詳細資訊,其中有 過時 Kinds 的示例。強烈建議 Trainz 下載站 的任何使用者或任何考慮建立內容的使用者仔細閱讀 CCG。瞭解舊內容是如何定義的背景歷史可以與 TrainzOnline 對同一種資料型別的當前覆蓋進行對比和比較,因為這種“過去與現在”的對比通常可以提供寶貴的見解,幫助修復、更改和定製資產。更重要的是,CCG 中的文字是由專業人士撰寫的,而且更具啟發性——它通常會讓你瞭解如果修改了這一點或那一點的擴充套件效果,而 Trainz Wiki 卻沒有提供這些資訊。釋出在 TrainzOnline 上的 CCG 是 TC1&2/TC3 版本——這是幾本小冊子的最後一個出版版本,可以追溯到 1999 年的 Trainz;TC3 CCG 包含了 TRS2004/TRS2006 和 UTC 資料模型中更改的 Enginespecs 機車資產,需要進行適當的更新。
本地化
[edit | edit source]- 本地化是 '學術說法' 指的是“國際化”,即資料翻譯成其他語言...
由於 ACS 文字格式 使用 UTF-8 編碼,因此非英語文字字串條目可能會出現在 config.txt 檔案中的任何字串欄位中,除了禁止的地方。(例如,使用者名稱標籤應該始終是英語,但語言字尾形式也允許在區域語言中支援多種語言環境——為了避免混淆,需要本地化支援的標準字串標籤實際上允許多個條目,因為執行時軟體使用以下約定
- username - 內容的人類可讀名稱,美式英語。資產的英文名稱必須存在,並且應該用英語定義。(不幸的是,少量的資產在上傳時沒有對該標準進行審查,因此在 DLS 上發現了一些非英語名稱。
- username-cz - 內容的人類可讀名稱,捷克語。
- username-de - 內容的人類可讀名稱,德語。
- username-es - 內容的人類可讀名稱,西班牙語(Espanol)。
- 等等。
以下標準標籤支援這種本地化形式
其中 XX 是語言的 ISO 兩字元縮寫。(例如 de=德語,fr=法語,it=義大利語,等等)
通用容器
[edit | edit source]- attached-track 容器
- extensions 容器
- kuid-table 容器
- mesh-table 容器
- obsolete-table 容器
- string-table 容器
- textures 容器
- 縮圖容器
- ...待續
相關連結
[edit | edit source]
註釋、腳註和參考文獻
[edit | edit source]Config.txt 檔案在 Trainz 資產中是普遍存在的,因為沒有資產可以在沒有這種型別的 計算機科學容器 的情況下進行定義。
註釋
[edit | edit source]
腳註
[edit | edit source]
參考文獻
[edit | edit source]- Trainz 印刷版或 pdf 檔案 手冊,適用版本 - 通常在 ..\extras 或 ..\extras\manuals 資料夾中
- TrainzOnline Wiki Config.txt 檔案頁面 和其他各種頁面
- TrainzOnline Wiki 內容創作者指南頁面 (各種)
- 各種 CCG 和 Auran 網站
| 此參考頁面改編自 TrainzOnline Wiki,根據 CC-BY-SA 3.0 許可證。與 [online.ts2009.com/mediaWiki/index.php/Config.txt_file 同一主題的源頁面] 相比,此頁面可能包含更多文字解釋、說明、歷史和/或示例。 TrainzOnline Wiki 在很大程度上由程式設計師或經驗豐富的 內容創作者 維護,可能包含有關當前 trainz-build 程式碼 標準的更新、最新資訊,這些標準隨著軟體功能的增加而有所改變。 |

