径向菜单框架

径向菜单框架

两级径向菜单,一个键代替十个。模组不再需要自己的热键:按Y或按住LB+RB,在第一环选择一组,然后在第二环选择一个操作。作者只需几行Lua代码即可注册组和操作,因此任意数量的模组操作共享一个绑定。

一键径向菜单,供其他模组接入。两级、八个槽位,无需额外快捷键。

描述

这是一个面向模组作者的框架。它本身不包含任何游戏玩法内容——在至少安装一个集成之前,每个槽位都显示为“空”。

它最初是为了解决一个具体问题:KCD2 Camping Mod 需要八个放置和打包操作,而每个操作都占用一个快捷键。将它们放在一个入口后面立即解决了这个问题。同样的结构恰好适用于任何有相同问题的模组,因此它被重建为一个框架,而露营套装则成为它的第一个集成,而非它的目的。

思路很简单:与其让五个模组占用五个按键,不如让它们全部注册到同一个轮盘中。一个按键打开它,两级就能到达任何位置,已安装模组的数量不再改变你的键盘布局。

文件

Radial Menu — 主文件。安装这个。它是框架:单独使用时轮盘会打开,每个槽位都显示“空”,这是正常的,不是故障。 Radial Menu - Camping Bridge — 可选。仅适用于 The KCD2 Camping Mod:它将该模组的八个放置和打包操作折叠为一个 Camping 条目。它需要框架和露营模组两者;如果缺少任何一个,该组会隐藏自身,不会出现任何问题。 更多集成以单独文件形式发布,每个文件都列出自己的要求。只安装你实际运行的模组对应的集成——其他所有内容都不会进入轮盘,也不会进入你的加载顺序。

安装说明

  1. 首先安装 PTFextender。它是必需的——框架的动作映射是在游戏启动时从配置文件片段合并的。
  2. 像任何其他模组一样,将 radial_menu 文件夹放入 \KingdomComeDeliverance2\Mods\(Vortex,或手动解压)。
  3. 确保它列在 Mods\mod_order.txt 中。Vortex 会为你写入。
  4. 按 Y(默认)或按住 LB+RB。在有模组注册之前,槽位显示为“空”。

模组特定的集成是单独的下载,每个都列出自己的要求。通过删除文件夹来卸载——不会在文件夹外写入任何内容。

主要功能

  • 单一入口后面的两级上下文菜单:第一级列出组,第二级列出一个组内的操作。
  • 一个按键适用于任意数量的模组操作。不会创建额外的绑定,也不会更改任何现有绑定。
  • 鼠标、键盘和手柄行为一致:移动以选择,以你习惯的方式确认,以你习惯的方式返回。左键单击或 A 确认,右键单击或 B 返回。
  • 固定八个槽位,因此位置不会随着集成的来去而移动。具有超过八个操作的组会自动分页——七个条目加一个页面槽位,总数不设上限。
  • 矢量图标。在任何分辨率下都清晰,描边宽度和悬停颜色由框架应用,因此来自不同作者的图标看起来像一套。每个路径都会重新缩放到统一的光学尺寸,因此只填充画布一部分的绘图仍能与其相邻图标匹配。
  • 一目了然的可读状态:可用的条目为金色,当前无法使用的条目为灰色并标记,确认其中一个会解释原因,而不是静默失败。
  • 结果和错误反馈会在轮盘上方显示几秒钟;完整详情写入 kcd.log。
  • 语言感知。跟随游戏语言,以英语为基线,模组标签可以以游戏提供的任何语言提供。
  • 可配置的打开键、手柄组合(六对,均为双键按住)和按住时间,位于模组旁边的纯文本 cfg 中。
  • 打开时,菜单独占输入:没有摄像机旋转,没有攻击,没有快速选择轮盘。关闭的那一刻输入就会恢复,交接是对称的。
  • 不会写入模组文件夹之外的任何内容:不编辑游戏文件,不写入存档数据,不写入按键绑定记录,不写入 attributes.xml 条目。

控制

键盘和鼠标:按下配置的键(默认 Y),移动鼠标选择扇区,左键单击确认,右键单击返回或关闭。

手柄:按住配置的组合——同时按住两个键,默认 LB+RB,有六对可用。方向键在环中步进,A 确认,B 返回。

打开键和手柄组合都可以在 radial_menu.cfg 中更改,或从控制台实时更改(rm_key / rm_padkey,需要 -devmode)。

面向模组作者

在你自己的模组内使用普通 Lua 注册——无需 SDK,无需构建工具:

Radial.RegisterGroup{ id = "my_mod", label = "My Mod", icon = "bag" }
Radial.RegisterItem{ group = "my_mod", id = "do_thing",
                    label = "Do the thing", icon = "M12 3 L21 21 L3 21 Z",
                    run = function() ... end,
                    available = function() return true end }

图标是 24x24 路径(仅 M / L / Q / Z),以字符串形式提供,或使用内置图标的名称。 因为路径以文本形式传递,你可以在不附带纹理的情况下添加图标——这一点很重要, 因为菜单是一个预先构建的影片,无法在运行时加载外部图像。

完整的文档位于模组文件夹中,提供英文和中文版本:

docs\en\02-integration.txt API:分组、项目、图标、本地化、诊断
docs\zh\02-接入规范.txt
将 PNG 图片拖入 tools\icon-tool\index.html,即可获得可粘贴的 24x24 路径

集成指南的第 13 节是编写兼容性模组的完整步骤详解,适用于 已停止维护的模组。

要求

  • 天国:拯救2(PC)
  • PTFextender — 必需 游戏启动时使用了 -devmode 参数——该参数是可选的,仅用于诊断控制台命令。

集成无需任何构建工具或 SDK;注册过程只需在您自己的模组中使用普通的 Lua 代码即可。

兼容性

游戏文件不会被修改。该框架在运行时绝不会替换游戏的动作地图:它使用的是自己的地图。 启动时从配置文件片段合并,仅在菜单打开时启用,然后再次禁用 之后。这种对称性是刻意为之——早期的实验切换了游戏自身的动作地图。 这种做法会对蹲姿和坐姿造成永久性损伤,而这种方法则完全避免了这种情况。

没有将任何按键绑定写入磁盘。打开按键是通过引擎的绑定命令应用的。 仅限会话,因此移除该模组不会在 user.cfg 或 attributes.xml 中留下任何痕迹。

框架本身的加载顺序并不重要,但集成组件必须在框架之后加载—— 运行时注册表会自动处理这个问题。

菜单打开时,会特意只接受特定输入。这样做的目的是:防止误触。 当你在选择参赛作品时。

特别鸣谢

感谢 PTFextender,它使得动作地图合并成为可能;也感谢 KCD2 Camping。 这一切都始于 Mod 设置的八个快捷键。