框架

框架

驱动MrCrayfish所有模组的通用库

Framework 横幅

图标1 图标2 Discord 服务器 MrCrayfish 网站 网站图标 MrCrayfish 的 YouTube YouTube 图标 MrCrayfish 的 Discord

📙 关于:

Framework 是一个旨在帮助开发跨平台模组的库,包含注册系统、网络消息等功能。此外,Framework 还包含进一步释放模组潜力的额外功能,如下所述。

🚀 开放模型格式

开放模型格式是原版 JSON 方块模型格式的扩展。它移除了为设计方块模型设置的人为限制,这意味着你现在可以将元素旋转到任意角度,而不仅是 22.5 度增量。它还允许元素的位置和大小超出最大范围 [-16,-16,-16] 到 [32,32,32]。以下是一个在载具模组中使用的直升机模型示例。

直升机模型示例

🔑 同步数据键

同步数据键是 Minecraft 实体数据访问器系统的改进。它允许你向任何实体附加额外数据,而无需编写复杂的能力系统。使用 Framework 同步数据键的好处在于其提供的强大功能。正如名称所示,数据可以自动同步到客户端;这意味着你无需处理数据包。数据可以保存到实体中,因此在世界重载或服务器重启时仍会保留。与 Minecraft 的系统不同,Framework 增加了一个选项,允许你的数据在死亡后持久化,而不是重置为默认值。还不信服?查看下面的示例,了解这个系统多么简单而强大。

一个跟踪鸡被玩家击打次数的示例。

// 创建一个同步数据键
private static final SyncedDataKey<Chicken, Boolean> HIT_COUNT = SyncedDataKey.builder(SyncedClassKey.CHICKEN, Serializers.INTEGER)
    .id(new ResourceLocation("your_mod_id", "hit_count"))
    .defaultValueSupplier(() -> 0)
    .saveToFile()
    .syncMode(SyncMode.TRACKING_ONLY)
    .build();

// 在你的通用设置中调用此方法
FrameworkAPI.registerSyncedDataKey(HIT_COUNT);

// Forge 事件:当玩家攻击实体时
void onHitEntity(AttackEntityEvent event) {
    if(event.getTarget() instanceof Chicken chicken) {
        int newCount = HIT_COUNT.getValue(chicken) + 1;
        HIT_COUNT.setValue(chicken, newCount);
    }
}

📦 简易登录数据包

Forge 允许开发者创建登录数据包,但实现需要大量代码。Framework 将所需代码压缩为一个简单的注册方法,并会自动将你的数据发送给客户端。

代码示例

📔 开发者:

通过阅读其特性,了解 Framework 如何对你的开发有所帮助。

代码示例

🙋‍♀️ 需要帮助?加入官方 Discord 服务器:

评论区不适合寻求帮助,请加入官方 Discord 服务器。你可以获得安装和配置模组的帮助、解决崩溃等问题!此外,你还可以抢先获取模组更新和开发新闻。

加入 Discord