跳到正文

Framework

作者:MrCrayfish

为MrCrayfish所有模组提供支持的通用前置库

收藏

截图

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

Discord Server MrCrayfish's Website MrCrayfish's YouTube MrCrayfish's Discord

📙 关于:

Framework 是一个旨在辅助开发多平台模组的前置库,包含注册、网络消息等系统。此外,Framework 还包含更多功能,以进一步释放模组开发的潜力,详情请见下文。

🚀 开放模型格式

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

🔑 同步数据键

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

下面是一个记录鸡被玩家攻击次数的示例。

// Creating a synced data key
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();

// Call this in your common setup
FrameworkAPI.registerSyncedDataKey(HIT_COUNT);

// Forge event for when a player attacks an entity
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 服务器。你可以获得模组安装与配置、崩溃问题解决等方面的帮助!此外,你还可以比其他地方更早获取模组更新与开发相关的新闻。

评论

登录后评论和评分

MrCrayfish 的其他作品

查看全部 →