ModPE

来自Minecraft基岩版开发Wiki

ModPE Script(非官方译作ModPE脚本,无歧义时通常简称为ModPE)是一类相继由 ModPE 插件[注 1]BlockLauncher 支持的模组的统称,一般情况下多指后者。严格来说,前者与后者是同一对象的不同阶段,后者本质上是对前者内容的扩充。在 ModPE Script 产生的早期,同一个脚本可能能够同时在 iOS 和 Android 上运行。若无特殊说明,下文中 ModPE 均指 ModPE Script。

  1. 此处 ModPE 为 treebl 开发的插件名,而非 ModPE 所代指的脚本

概述[编辑]

ModPE(在 MinecraftPE 圈内)也称 JS(得名于该脚本文件的后缀为 .js),是一种由 JavaScript 编写的脚本。一个单独的 .js 文件可被 BlockLauncher 直接加载。ModPE 也可以和相关的资源以 zip 的格式压缩在一起并以 .modpkg 的后缀被BlockLauncher 加载(在 .modpkg 被支持前,使用 .js 文件配合材质包的方式来达到相同的效果)。BlockLauncher 本身也支持直接加载 .coffee 文件,原理上是借助 CoffeeScript 语言能直接翻译成 JavaScript。

ModPE 实际是通过 Mozilla Rhino 执行的,由 libmcpelauncher.so(BlockLauncher 内的库文件)和 JNI 向 ModPE 提供原生函数(指 MinecraftPE 本身的函数)支持,这些函数在 BlockLauncher 的 Java 层声明并由 C++ 层将其实现,实现于JVM 的 Rhino 能够直接对其调用。

ModPE 有着相对丰富的函数库,著名的工业模组的移植版因式分解便是基于 ModPE 的一个模组,因式分解盛极一时得益于 ModPE 本身易于编写和高度灵活,更重要的是其作者对 ModPE 熟练掌握和深度认知。

显而易见,ModPE 也有着它的不足和局限性,在性能上常常“为人诟病”,更多的时候是吐槽 BlockLauncher 为 ModPE 提供的函数不够丰富,功能不够全面,因此,在某些效果用 ModPE 难以实现或根本无法实现时,开发者们会编写与其配套的 NativeAddon(原生插件)以求弥补 ModPE 的缺陷。

你可以查看ModPE函数表来研究 ModPE 中的函数。ModPE 教程里有详细的ModPE开发教程。

你知道吗[编辑]

  • ModPEScript 本就叫做 ModPE,是由treebl编写的一个适用于iOS系统的插件,很快被500ISE(Zhuowei Zhang)移植到BlockLauncher 中,并在安卓系统中支持。
    • 很遗憾的是,次年treebl因为硬盘驱动器故障而放弃了iOS端的开发。ModPE 由500ISE完善至今。[1]

Template:ModFormat