保持世界兼容
如果你的游戏或模组已经稳定、有很多玩家在玩,尽量保持对旧世界的兼容非常重要!
不然玩家升级后会出现未知方块、贴图错误、数据崩坏,直接炸档。
别名(Aliases)
方块和物品都支持名称别名,可以把旧的内部名称映射到新名称。
最简单的用法:
1
| core.register_alias('mymod:旧物品名', 'mymod:新物品名')
|
批量重命名/重构模组命名空间时超好用:
1 2 3 4 5
| for _, item in ipairs({ "stone", "cobble", "dirt", "grass" }) do core.register_alias('旧模组名:'..item, '新模组名:'..item) end
|
加载块修正器(LBM)
LBM = Loading Block Modifier
用于在地图块加载时自动对方块执行修复逻辑,适合处理复杂升级,比如:
- 更新方块的界面(formspec)
- 修复元数据(meta)
- 升级方块状态
示例:升级方块表单到 v2 版本
1 2 3 4 5 6 7 8 9 10 11 12 13
| core.register_lbm({ label = "把酷炫方块的UI升级到v2", name = "mymod:update_formspec_coolblock_v2", nodenames = {"mymod:coolblock"}, run_at_every_load = false, action = function(pos, node) local meta = core.get_meta(pos) if meta:get_int('form_ver') < 2 then meta:set_int('form_ver', 2) meta:set_string('formspec', get_coolblock_formspec()) end end })
|