MDT源碼閱讀

作為一位模組制作者,需要擁有一定閱讀源碼的能力。JSON書寫方式請(qǐng)自行查閱教程。

源碼獲取
既然要閱讀源碼,那么必須要有源碼,下面是游戲的源碼的獲取方式
若是github打不開(kāi),可嘗試改成kgithub(一個(gè)鏡像網(wǎng)站)
游戲的主要內(nèi)容:https://github.com/Anuken/Mindustry/(下簡(jiǎn)稱Mindustry)
游戲的底層邏輯:https://github.com/Anuken/Arc/

一些技巧
下方是Mindustry源碼目錄和一些注解,有省略
已知游戲內(nèi)名稱,回查定義
在翻譯文件目錄下找到自己所使用的語(yǔ)言
利用搜索功能,找到對(duì)應(yīng)的內(nèi)容,并找到游戲內(nèi)唯一的名稱
在游戲內(nèi)容找到對(duì)應(yīng)文件并再次搜索得出結(jié)果

已知定義,回查所屬類(沒(méi)有自動(dòng)轉(zhuǎn)到定義的情況下)
打開(kāi)全局搜索搜索?"class" + `new`后面第一個(gè)單詞(不含邊界,開(kāi)啟全字匹配)
若沒(méi)有可將?`class`轉(zhuǎn)為`interface`或`enum`
若是看到`extends`則還可以繼續(xù)延展,將上述第二項(xiàng)改為`extends`后面第一個(gè)詞

可以看到,代碼里有注釋,可以直接翻譯然后配合游戲知道屬性的作用

接口轉(zhuǎn)換
當(dāng)打開(kāi)一個(gè)屬類后,里面有各種各樣的屬性,那么如何將它們轉(zhuǎn)換為JSON可以用的形式呢?
數(shù)值類接口(float代表小數(shù),int代表整數(shù))
開(kāi)關(guān)型接口(只有兩種值,`true` 和 `false`分別代表 `開(kāi)` 和 `關(guān)`)
游戲類接口(可以向上述方法一樣查詢屬類)
需要和配合ContentParser才能知道接受的值類型(別嘗試在JSON里寫奇怪的表達(dá)式)
類型列表組(?)
在閱讀源碼時(shí),你可能會(huì)看見(jiàn)類似?Seq<A> ObjectSet<A> A[] 的形式。其中A指定接下來(lái)傳入的類型(結(jié)合上方),在JSON中以`[]`傳入數(shù)據(jù)
@Nullable修飾:意為這個(gè)屬性可以填`null`值

后言
這是第一次嘗試用gif配合介紹,后續(xù)大概率會(huì)出ContentParser的內(nèi)容了