资源开关

资源开关

添加一种方式,在游戏中即时切换所有非原版资源包,用于测试/调试。

杂项

ResourceToggle

一个客户端 Minecraft 26.2 模组,让你可以在游戏中即时切换所有非原版资源包,用于测试/调试。

功能特性

  • 切换按钮:位于标题界面和暂停界面(右上角)。
  • 快捷键:位于 控制 → 杂项 中(默认未绑定)。
  • 操作栏反馈:切换时显示提示信息。
  • 服务器不可见:资源包始终被接受、下载并上报为已应用到服务器(包括必需的服务器资源包);切换只影响渲染的资源堆栈。不发送任何数据包,不更改存储库选择。
  • 三种切换模式:可在 config/resourcetoggle.json 中配置:
模式 行为
gpu 两个资源堆栈均预加载;切换时备用堆栈保持在内存中,仅重新上传到 GPU。
ram(默认) 两个堆栈均缓存在 RAM 中;首次预热后,切换不再触碰磁盘/压缩包/网络。
on_demand 每次切换时执行常规的原版风格重载(内存占用最低)。

在 ram/gpu 模式下,会话中的首次切换仍是完整加载;之后的每次切换都从内存中提供,应明显快于常规的 F3+T 重载。

关于“即时”的说明:26.2 的新渲染管线(Vulkan/GL 渲染图、RenderPipeline、应用时图集重新上传)无论模组做什么,都会在重载的应用阶段重新上传纹理。同时保持两个完全活跃的渲染图不切实际,因此 gpu 模式提供的是预热堆栈 + 最小化 GPU 工作的切换,而非真正的零成本指针交换。

配置

config/resourcetoggle.json(首次运行时创建):

{
  "mode": "ram",
  "keepLoaderPacks": true,
  "toastOnToggle": true,
  "extraKeepPacks": [],
  "extraExcludePacks": []
}
  • mode:"gpu"、"ram" 或 "on_demand"。
  • keepLoaderPacks:在纯原版模式下保留模组提供的资源(大多数模组渲染所需)。
  • extraKeepPacks / extraExcludePacks:按资源包 ID 强制将资源包加入或移出纯原版堆栈。
  • toastOnToggle:切换时显示操作栏消息。

构建

需要 JDK 25。

./gradlew build

输出:build/libs/ResourceToggle-1.0.jar — 兼容 Fabric 和 NeoForge 客户端。放入 mods 文件夹即可。无需 Fabric API 或其他模组。