当前位置:
AIGC文章详情

张大妈

【mod开发】海克斯支持库更新,带粗略讲解

源自UP主:人哉肥

03-04 13:33

海克斯支持库迎来重大重构更新,这次改动让开发者可以更灵活地自定义海克斯卡牌行为。新版本将HCAD改为抽象类,必须继承后实现三个核心方法,大幅扩展了自定义空间,同时UI界面也加入了滚动条支持,让选择体验更加流畅。

【mod开发】海克斯支持库更新,带粗略讲解智能速览

  • HCAD类改为抽象类,需继承并实现三个方法

  • 新增玩家选择、克隆事件、放弃海克斯的回调机制

  • UI界面重构,支持滚动条和自适应布局

  • 提供完整的NBT数据管理方法集合

  • 指令系统优化,权限等级设为0开放所有玩家

  • 支持单例模式管理类设计,确保数据一致性

【mod开发】海克斯支持库更新,带粗略讲解精华内容

这次重构不仅是代码层面的优化,更是对整个海克斯系统架构的重新思考。让我们深入了解具体改动和实现方式。

类结构重构

新版本中HCAD类被改造为抽象类,开发者无法直接实例化,必须先继承该基类。需要实现三个核心方法:玩家选择时调用、玩家触发克隆事件时调用(如死亡重生)、玩家放弃海克斯时调用。这种设计让开发者可以更精细地控制每个环节的行为逻辑。

继承示例中展示了如何在构造函数中使用super传递参数,并建议提前定义好静态的ResourceLocation ID,方便后续翻译和管理。ID定义采用模组ID加类名的组合方式,确保唯一性。

管理类实现

推荐采用单例模式创建管理类,通过私有构造方法防止外部实例化。管理类内部维护静态数组存放所有海克斯实例,提供统一的注册方法。

创建海克斯实例需要传入ID、标题翻译键、简介翻译键、品质等级(普通、稀有、史诗、传奇)和图标ItemStack。品质系统直接影响卡牌的稀有度和视觉效果,为游戏平衡提供更多维度。

在主类中通过FMLCommonSetupEvent事件初始化管理类,调用注册方法将所有自定义海克斯加入卡池。事件总线注册确保在适当时机执行初始化逻辑。

UI界面优化

新版本对选择界面进行了彻底重写,加入了底部滚动条支持。当卡片数量较少时自动居中排列,超出屏幕范围则启用横向滚动功能。这一改进解决了多卡片显示不全的问题。

打开选择面板提供两种重载方法,必须传入ServerPlayer对象和品质参数,可选择性传入选择数量限制。实际应用中可以监听玩家右键物品事件,判断特定物品后触发选择界面,同时消耗物品数量。

指令系统更新

指令权限等级调整为0,意味着所有玩家都可以使用。通过`-hex list`指令直接调用控制面板,让普通玩家也能管理已选择的海克斯。指令底层调用getControl方法,与界面选择保持一致的用户体验。

放弃海克斯功能通过flag=2标识触发,会自动调用自定义类中的放弃方法,并从玩家NBT数据中移除对应ID。这种设计让玩家可以灵活调整自己的海克斯组合。

数据管理API

库提供了完整的NBT操作方法集合,包括GET获取玩家所有海克斯ID、SET替换整个数组、ADD添加单个海克斯、REMOVE移除指定海克斯、CLEAR清空所有数据、forContents遍历内容、forSize获取数量等。

这些API让开发者可以精确控制海克斯数据,实现复杂的业务逻辑。所有操作都基于ServerPlayer对象,确保数据同步和服务端权威性。源码中还包含了卡池相关的静态方法,方便扩展功能。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章