逃离塔科夫离线单机版MOD的加载与运行原理

  服务端MOD的加载依赖于ModLoader模块,我们打开服务端源码目录/loaders/ModLoader.js,在load()方法下可以看到先后执行了两个方法importMods()和executeMods()。分别查看这两个方法内部的代码,根据注释可以得知MOD是如何加载和运行的。

图片[1]|逃离塔科夫离线单机版MOD的加载与运行原理
逃离塔科夫离线单机版MOD的加载与运行原理

  在importMods()方法中,代码执行步骤如下:

  ① 利用方法VFS.exists()检测user文件夹中的mods文件夹是否存在,不存在则利用方法VFS.createDir()创建该文件夹

  ② 利用方法VFS.getDirs()获取MOD列表,并储存于mods这一常量对象中

  ③ 利用方法ModLoader.validMod()验证mods常量对象中每个MOD的有效性,该方法中会验证MOD的包文件package.json是否存在,然后会验证package.json文件中的name、author、version、license四个属性是否存在,最后会验证package.json中MOD的执行入口模块,即main属性所指向的.js是否存在且合法。

  ④ 如果所有MOD有效性都通过验证,则循环执行ModLoader.addMod()方法。该方法首先读取MOD文件夹中的package.json到内存,然后把数据转移到ModLoader模块的imported方法下。

  executeMods()方法包含了调整或读取MOD加载顺序、导入MOD模块、加载MOD模块、后加载MOD模块和更新手册内容等,代码的具体内容可以自行研究理解。

  本文转自:https://sns.oddba.cn/16676.html

© 版权声明
THE END
苦逼小编求支持
点赞8赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容