欢迎光临散文网 会员登陆 & 注册

MDT源码阅读

2022-09-07 21:03 作者:NullPointerErr  | 我要投稿

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

源码获取

既然要阅读源码,那么必须要有源码,下面是游戏的源码的获取方式

若是github打不开,可尝试改成kgithub(一个镜像网站)

  • 游戏的主要内容:https://github.com/Anuken/Mindustry/(下简称Mindustry)

  • 游戏的底层逻辑:https://github.com/Anuken/Arc/

一些技巧

下方是Mindustry源码目录和一些注解,有省略

  • 已知游戏内名称,回查定义

  1. 在翻译文件目录下找到自己所使用的语言

  2. 利用搜索功能,找到对应的内容,并找到游戏内唯一的名称

  3. 在游戏内容找到对应文件并再次搜索得出结果

小示例,只是有点快,我还是卡的受不了
  • 已知定义,回查所属类(没有自动转到定义的情况下)

  1. 打开全局搜索搜索 "class" + `new`后面第一个单词(不含边界,开启全字匹配)

    若没有可将 `class`转为`interface`或`enum`

  2. 若是看到`extends`则还可以继续延展,将上述第二项改为`extends`后面第一个词

如果有自动跳转可以直接放在上面点跳转

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

接口转换

当打开一个属类后,里面有各种各样的属性,那么如何将它们转换为JSON可以用的形式呢?

  • 数值类接口(float代表小数,int代表整数)

  • 开关型接口(只有两种值,`true` 和 `false`分别代表 `开` 和 `关`)

  • 游戏类接口(可以向上述方法一样查询属类)

    需要和配合ContentParser才能知道接受的值类型(别尝试在JSON里写奇怪的表达式)

  • 类型列表组(?)

    在阅读源码时,你可能会看见类似 Seq<A> ObjectSet<A> A[] 的形式。其中A指定接下来传入的类型(结合上方),在JSON中以`[]`传入数据

  • @Nullable修饰:意为这个属性可以填`null`值

后言

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


MDT源码阅读的评论 (共 条)

分享到微博请遵守国家法律