- 致编者:请牢记我们的域名wiki.mcbe-dev.net!
- 致编者:欢迎加入本Wiki的官方交流QQ群或Discord服务器!
- 基岩版1.19.31现已发布!(了解更多)
- Inner Core现已支持Xbox模组联机!(了解更多)
- 如果您是第一次来到本Wiki,欢迎注册一个账户
- 点击顶部的“编辑”或“编辑源代码”按钮即可编辑当前页面
- 请知悉:在不登录时也可以编辑和新建页面,但是您当前的IP地址会记录在编辑历史中
MP:InnerCore/遊戲模組結構
遊戲模組結構 [編輯] InnerCore下的遊戲模組是一個帶有名為build.config的構築檔案的目錄,其中也有一些附加的檔案,比如有一個描述檔案和一個標準組態檔(最後一個會自動被建立)。
如果你不想詳細地構築遊戲模組,你可以使用遊戲模組的標準模板,它將在下面展示。
組態和描述 [編輯]
組態檔 - config.json - 是JSON格式的,並且會自動生成或修復。enabled的值會一直存在,它決定了啟用還是關閉整個遊戲模組。這個檔案的內容會在遊戲模組選單被可視化,遊戲模組選單是透過InnerCore選單開啟的。編輯這個檔案將會影響整個遊戲模組。
資訊檔案 - mod.info - 是JSON格式的,並且可能不會出現,但是如果這樣的話就不會有關於這個遊戲模組的任何資訊在InnerCore選單中顯示,並且遊戲模組的名字那裏將會顯示目錄的名字等等。 mod.info檔案的格式:
{
"name": "模组的名字", "author": "模组的作者", "version": "模组的版本(任何格式皆可)", "description": "模组的简介"
} 同樣的,遊戲模組的根目錄下可以包含mod_icon.png檔案,它將顯示為InnerCore選單中此遊戲模組的圖示。唯有它的格式 - png - 是必要的,它的大小可以隨便。
基本參數 [編輯]
構築檔案[譯者按:是build.config]也是JSON格式的,並且它有幾個部分組成,它們描述了遊戲模組的各種設定和元素。
第一個部分 - defaultConfig - 是必需的,並且它描述了構築這個遊戲模組的主要參數。在它的參與下,構築檔案的內容應該看起來像這樣(帶有#號的註釋不是必要的):
{
"defaultConfig": { "api": "CoreEngine", #API,它会被所有所执行的文件默认使用,API选项将在下面被列出 "buildType": "develop", #这个参数在开发时必须为develop,然后在使用InnerCore时可进行更改 "libraryDir": "lib/", #一个可选的参数,用来指定库将从哪里被加载的默认目录 }
} API指定了能被用在可執行遊戲模組檔案中的幾乎大部分的方法。然而,有一組基本方法是可用於特定型別的可執行文[譯者按:可執行檔在本Wiki中專指js檔案]的。
API的種類:
CoreEngine - 一個主要的和大部分的用以開發遊戲模組的廣泛API。基本上你都需要使用它,其他的選擇是情境性的並且大部分時候你都用不到。 AdaptedScript - 能實現基本的特性,但並不擁有能大大簡化開發的內容,如方塊實體。
可執行檔 [編輯] 可執行檔包含了這個遊戲模組的資原始碼,它為所需的JavaScript API版本編寫,根據它們的型別,它們將在不同的時間執行。你也可以從各個目錄構築它們,並在InnerCore選單中編譯成字節碼,以便更快更好地除錯(該遊戲模組的公開發布的版本)。
可執行檔以以下陣列形式的compile部分被描述。這個編譯部分可以有很多:
{
"defaultConfig": { ... }, ... "compile": [ { "path": "文件的本地路径,例如main.js、source/logger.js", "sourceType": "可执行文件的类型,它们将在下面被列出", "sourceName": "名字,可选参数,在显示错误时会被调用", "api": "API种类,如果你想选择在defaultConfig中指定的错误类型的话,否则这个参数不是必须的" }, ... ]
} 可執行檔種類:
mod - 這種檔案包含了定義遊戲模組內容的主要原始碼。 launcher - 整個遊戲模組中只能有一個檔案是這種型別的。它會在一個特定的時間開啟這個遊戲模組(例如,如果你的遊戲模組使用了另一個遊戲模組的API,那麼它會在那個遊戲模組載入後才會載入,等等)。如果無需什麼額外的條件來執行,它就只需簡單地包含一個Launch();指令。 library - 庫。它能使用一些只有這種型別的檔案才能存取的特殊方法,來註冊一個遊戲模組可以使用的新API模組,如果這些庫被匯入的話。如果庫檔案位於libraryDir參數中指定的目錄中,則不需要對其進行描述。 preloader - 一個特定的檔案型別,它會在MCPE載入之前但資源載入之後執行,並且需要用它建立和修改它們。在編寫這個檔案時,使用了一種單獨型別但仍然執行不力的API。 custom - 只有在一個特殊的方法 - runCustomSource() - 的幫助下它才能執行,並得從其他可執行檔中呼叫。它可以帶一些參數。 更多關於每種可執行檔的資訊和它們的特殊方法和值將在以後獨立的章節中展開。
構築可執行檔 [編輯]
可執行檔可以在不同獨立的目錄中編寫,最後把構築檔案中描述的多個可執行檔整合在一起。這種方法允許你把程式碼分離到不同的檔案中,而不是單獨寫一個龐大的檔案。這不僅增加了可讀性,而且允許你在編寫時更好地編譯遊戲模組並除錯它。
構築目錄由buildDirs部分所規定,它也是一個陣列:
{
"defaultConfig": { ... }, ... "buildDirs": [ { "dir": "dir/to/build/", #构筑目录必须以/结尾 "targetSource": "dir/to/source/file", #构筑的目标文件所在目录。注意:目标文件的内容在每次构筑中都会被完全重写,所以不要在这个文件中进行你的更改。 }, ... ]
} 構築目錄有以下規定:
它必須包含含有你想合併到一個可執行檔中去的程式碼的檔案,它們可以在這個目錄的子目錄中,並且可以有各種各樣的名字。 它必須包含.includes檔案。這個檔案按一定的順序包含了所有本地的參與構築檔案的路徑,它裏面也可以有註釋(用//或#)和空行。 .includes檔案內容的實例: //假定這個.includes在dev/目錄下
//這個檔案必須位於dev/header.js header.js
//這些檔案必須在dev/source/目錄中 source/blocks.js source/items.js 明白這裏每一個檔案必須是一小段完整的程式碼是非常重要的,因為它們的每一個檔案都是分開編譯的。因此,你不能在其中一個檔案中寫一個開頭,然後在另一個中寫結尾。
資源 [編輯]
遊戲模組的資源分為兩組 - 介面材質(GUI)和其他(方塊、物品、模型的材質等等)。資源的種類將在一個單獨的章節中展開。
資源目錄在resources部分中描述,它的內容可以有很多很多:
{
"defaultConfig": { ... }, ... "resources": [ { "path": "resource/dir/", #资源目录必须以/结尾 "resourceType": "resource|gui", #资源加载的种类:resource - 游戏中的资源,gui - 界面材质 }, ... ]
} 關於資源及其應用的具體細節將在單獨的章節中討論。 ru-mp:InnerCore/Структура_модов