跳到正文

Enhanced Block Entities Reloaded

作者:Mat0u5

【非官方移植版】大幅减少方块实体导致的 FPS 卡顿,几乎不影响体验,还能改善视觉效果

收藏

介绍

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

非官方移植版

这是原版 Enhanced Block Entities 模组的非官方移植版,增加了对更新版本 Minecraft(1.21.5+)以及 Forge 和 NeoForge 的支持!

本模组在 >=1.20 版本需要 MatLib 前置库,你可以在此处下载。

Enhanced Block Entities

EBE 是一个100% 客户端的 Minecraft 模组,旨在提升方块实体渲染的性能,并通过资源包提供自定义功能。

它是如何工作的? EBE 让部分方块实体使用烘焙方块模型,而非卡顿的实体模型。

它只是一个优化模组吗? EBE 不仅仅是一个优化模组,其优化的一些附带效果带来了许多视觉改进。

这些包括:

  • 方块实体上的平滑光照
  • 能够使用方块模型对方块实体进行重新建模
  • 可切换圣诞节箱子等功能
  • 能够从尽可能远的距离看到方块实体

那动画呢? EBE 最棒的地方在于你仍然可以保留动画,同时获得烘焙模型带来的性能提升!大多数动画方块实体模型只会在绝对必要时才渲染。

我可以和钠一起使用吗? 可以。

  • EBE 0.10.2 及以上版本与钠 0.6+ 完全兼容
  • 较早的 EBE 版本需要安装 Indium,并搭配钠 0.5.11 或更低版本。

常见问题与帮助

问:我需要关于模组的帮助/需要报告 bug!

答: 如果问题是 bug,请在我们的问题追踪器上报告(页面顶部的“Issues”标签页)

问:我的箱子隐形了!

答: 你可能使用了与 EBE 冲突的资源包。打开方块实体设置菜单(通过 EBE 的模组菜单条目或原版视频设置),并启用“强制资源包兼容”。

问:我的箱子仍然隐形!

答: 你可能使用了低于 0.4 的钠版本,该版本默认不支持某些 Fabric 渲染功能。如果你需要在 EBE 中使用低于 0.4 的钠版本,应安装 Indium。

FPS 提升

渲染 1700 个箱子:

原版

Before

使用 EBE

After

帧率提升 155%!

你的模组与 EBE 不兼容吗?

如果你是修改方块实体渲染的模组开发者,你的模组会被 EBE 破坏。幸运的是,EBE 提供了一个 API,允许你强制禁用其功能,让你的模组得以正常运行。

你也不需要在开发环境中将 EBE 添加为依赖项!

添加入口点

fabric.mod.json:

{
    "entrypoints": {
        "main": [...],
        "client": [...],
        "ebe_v1": [
            "my.mod.compat.EBECompatibility"
        ]
    }
}

需要修改配置值?实现 BiConsumer<Properties, Map<String, Text>>
my.mod.compat.EBECompatibility:

public class EBECompatibility implements BiConsumer<Properties, Map<String, Text>>, ... {
    @Override
    public void accept(Properties overrideConfigValues, Map<String, Text> overrideReasons) {
        overrideConfigValues.setProperty("render_enhanced_chests", "false");

        overrideReasons.put("render_enhanced_chests",
                Text.literal("EBE Enhanced Chests are not compatible with my mod!")
                        .formatted(Formatting.YELLOW));
    }
    
    ...
}

EBE 加载配置值时会调用 accept(Properties, Map<String, Text>) 函数。你可以通过设置 overrideConfigValues 中对应的属性来覆盖所需的配置值。这也会将该选项在配置菜单中置灰。

若要向用户说明你的模组为何进行了此项更改,可以在 overrideReasons 映射中,为你修改的选项对应的键添加一个文本组件。

使用 Yarn mappings 时,Text 是 net.minecraft.text.Text。

需要手动重新加载 EBE?实现 Consumer<Runnable>

my.mod.compat.EBECompatibility:

public class EBECompatibility implements Consumer<Runnable>, ... {
    private static Runnable ebeReloader = () -> {};
    
    ...

    @Override
    public void accept(Runnable ebeConfigReloader) {
        ebeReloader = ebeConfigReloader;
    }
}

如果你的模组需要根据已加载的资源修改 EBE 的配置值,可能会遇到加载顺序问题。手动重新加载 EBE 可以在一定程度上解决这个问题。

首次加载 EBE 时会调用 accept(Runnable) 函数。该 Runnable 会执行 EnhancedBlockEntities.load()。请将它存储在字段中,以便在需要时执行。

void onMyModResourceReload() {
    EBECompatibility.someParameter = true;
    EBECompatibility.ebeReloader.run();
    // Your config modification handler in EBECompatibility can change 
    // its behavior based on EBECompatibility.someParameter.
}

常见问题

Enhanced Block Entities Reloaded 支持哪些 Minecraft 版本?

Enhanced Block Entities Reloaded 支持 Minecraft Java 版 1.16.5–26.3,共 24 个版本,可用的加载器:Fabric / Forge / NeoForge / Quilt。下载时注意选择和你游戏版本一致的文件。

Enhanced Block Entities Reloaded 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge / Quilt,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅客户端。

评论

登录后评论和评分

Mat0u5 的其他作品

查看全部 →