InnerCore客户端模组¶
本分区以InnerCore、CoreEngine和Horizon为中心,整理Android客户端旧模组生态的可核验资料。Nernar维护的InnerCore文档说明,InnerCore扩展Android版Minecraft的基础功能,用于创建会改变玩法的模组;它的思路与BlockLauncher相近,但模组不再只是单个脚本,而是一个带构建配置、脚本、资源、图标和设置的完整文件夹。
历史生态
InnerCore不是Mojang当前提供的国际版原生能力,也不等同于附加包、脚本API或服务器插件。这里的内容主要用于维护旧Android客户端模组、理解早期社区模组生态,以及将旧项目迁移到更现代的开发方式。
模组结构¶
一个典型模组文件夹包含这些内容:
- 模组文件夹
.dexdev.includesheader.js
assetsresourcesterrain-atlasitems-opaque
gui
launcher.jsbuild.configmod.infomod_icon.pngconfig.jsonconfig.info.json
其中build.config描述加载、编译和构建流程;dev通常放主要脚本;assets放资源;mod.info提供模组名、作者、版本和简介;config.json保存设置,默认可包含enabled来控制模组是否启用。
第一个物品¶
InnerCore物品教程从贴图、资源路径和注册脚本开始。物品贴图通常放在资源目录的items-opaque子文件夹中,文件名采用纹理名_数据值.png形式。注册物品时,先为字符串标识符生成数值ID,再创建物品。
Translation.addTranslation("item.oxidized_stick.name", {
en: "Oxidized Stick"
});
IDRegistry.genItemID("oxidized_stick");
Item.createItem("oxidized_stick", "item.oxidized_stick.name", {
name: "oxidized_stick",
data: 0
}, {
stack: 64
});
教程资料说明,生成后的物品在游戏中会表现为类似minecraft:item_oxidized_stick的形式;ItemID对象则提供由IDRegistry.genItemID生成的数值标识符。
绑定交互逻辑¶
给物品添加功能时,可以使用Item.registerUseFunction:
Item.registerUseFunction("oxidized_stick", function(coords, item, block, playerUid) {
Entity.addVelocity(playerUid, 0, 0.5 * Math.random(), 0);
});
也可以直接使用回调系统:
Callback.addCallback("ItemUse", function(coords, item, block, isExternal, playerUid) {
if (item.id == ItemID.oxidized_stick) {
Entity.addVelocity(playerUid, 0, 0.5 * Math.random(), 0);
}
});
InnerCore文档建议不要在事件回调内部反复注册新的回调,否则每次事件发生都会叠加新的处理器。它还提醒开发者在事件中先做简单判断,再执行昂贵逻辑,因为多个模组同时运行时性能压力会叠加。
和BlockLauncher的差异¶
InnerCore文档把BlockLauncher视为相近平台,并指出InnerCore相较旧BlockLauncher生态的关键差异:模组是完整文件夹,脚本可以有多个执行上下文并共享全局空间;资源由配置文件决定加载方式;可以在模组中使用Java和原生代码;多数情况下不需要提前手动编译,加载器或工具链会处理构建。
继续学习路线¶
- 先读准备环境、模组结构和构建配置。
- 再做第一个物品、第一个方块和基础配方。
- 学回调、可更新对象、保存和网络包。
- 最后再研究旧界面、世界访问对象、粒子、维度和第三方库。
兼容性优先
ICMod生态依赖特定客户端和加载器环境。开始维护旧项目之前,先确认目标Minecraft版本、InnerCore版本和所需库版本。
资料状态¶
Nernar维护的InnerCore文档同时包含英文教程、俄文翻译、库文档、变更记录和站点工程文件。英文教程中有一部分页面仅含“未本地化”占位,维度、生物群系、方块实体、发布和部分库资料并不完整。因此,本组页面只整理已有且可核验的内容;缺失处会明确标注为资料不足,不补写未经资料支持的API细节。