实现可持有魔法(载体为物品)、相应的“魔法技能树”,并提供API予以注册拓展。
- Mojang 及 Forge 的开发者们;
- TeamCovertDragon、ustc-zzzz、V2MCdec 发布的中文模组开发教程;
- 学习中参考、借鉴的开源模组源码、Minecraft Wiki、国外教程;以及在开发中遇到问题时,查找到的相关文章或帖子。
- 可持有魔法:
- 功能由相应的载体物品实现。
- 当前仅实现命令装备。
- 装备需要玩家已经解锁该魔法,并且魔法本身判断玩家是否能装备。
- 装备时替代主手或副手的物品,丢出物品或在Gui中选中物品时退还原物品。
- 魔法的接口:
a. 默认是否解锁;
b. 是否可装备;
c. 无法装备的返回信息;
d. 装备成功时将调用的方法;
f. 获取注册ID;
g. 获取描述;
h. 获取载体物品; - 魔法技能树:
- 保存玩家的魔法解锁情况,仅保留默认锁定的魔法。
- 命令,皆以
/heldmagic
,/hm
为起始:skilltree
list
: 列出玩家所有解锁魔法
check
: 检测魔法是否解锁
// TODO 加个配置,设置使用命令的玩家是否可以检测自己未解锁的命令(目前是否,就只是用来看别人了)
add
: (OP) 添加解锁
remove
:(OP) 移除解锁holeable <magic_registry_name> <hand>
装备魔法,需要玩家已经解锁该魔法,且魔法本身判断可装备。 命令仅提示玩家已解锁的魔法。test
(OP)
holeable
同上,命令提示所有魔法,无需解锁,无需确认可装备。
- 指令或按键调用 GUI 进行装备:
- 初版 GUI
- 每个命名空间(modid)、每个魔法都可禁止通过GUI装备
- 吟唱与魔法阵!
- 更多的魔法类型,允许注册两个大分类下的子类型:
- 载体魔法:
- 当前的手持魔法:载体物品。
- 可以扩展载体为装备物品、方块等?
- 无载体魔法:
- 装备时按键使用的魔法;
- 装备时作用的魔法?(作为无法卸下的简单属性判断,或是装备时持续作用。 后者感觉像是没有时限的药水效果,不过可以让开发者让它在作用的同时有消耗就是了。
- 载体魔法:
魔法的前置魔法- 事件
- 指令:批量操作