MDT源码阅读

作为一位模组制作者,需要拥有一定阅读源码的能力。JSON书写方式请自行查阅教程。

源码获取
既然要阅读源码,那么必须要有源码,下面是游戏的源码的获取方式
若是github打不开,可尝试改成kgithub(一个镜像网站)
游戏的主要内容:https://github.com/Anuken/Mindustry/(下简称Mindustry)
游戏的底层逻辑:https://github.com/Anuken/Arc/

一些技巧
下方是Mindustry源码目录和一些注解,有省略
已知游戏内名称,回查定义
在翻译文件目录下找到自己所使用的语言
利用搜索功能,找到对应的内容,并找到游戏内唯一的名称
在游戏内容找到对应文件并再次搜索得出结果

已知定义,回查所属类(没有自动转到定义的情况下)
打开全局搜索搜索 "class" + `new`后面第一个单词(不含边界,开启全字匹配)
若没有可将 `class`转为`interface`或`enum`
若是看到`extends`则还可以继续延展,将上述第二项改为`extends`后面第一个词

可以看到,代码里有注释,可以直接翻译然后配合游戏知道属性的作用

接口转换
当打开一个属类后,里面有各种各样的属性,那么如何将它们转换为JSON可以用的形式呢?
数值类接口(float代表小数,int代表整数)
开关型接口(只有两种值,`true` 和 `false`分别代表 `开` 和 `关`)
游戏类接口(可以向上述方法一样查询属类)
需要和配合ContentParser才能知道接受的值类型(别尝试在JSON里写奇怪的表达式)
类型列表组(?)
在阅读源码时,你可能会看见类似 Seq<A> ObjectSet<A> A[] 的形式。其中A指定接下来传入的类型(结合上方),在JSON中以`[]`传入数据
@Nullable修饰:意为这个属性可以填`null`值

后言
这是第一次尝试用gif配合介绍,后续大概率会出ContentParser的内容了