截图
介绍
WindowX++
WindowX 的附属模组。
特性
控制台窗口(TUI)
为 WindowX 添加终端风格的窗口支持。通过命令创建控制台窗口,并通过其窗口 ID 寻址,渲染 ANSI 转义序列,并能将玩家输入读回游戏。输入会写入命令指定的计分板目标。
窗口状态作为计分板准则
窗口位置和大小作为目标准则公开。使用这些准则之一创建的目标会自动追踪每位玩家,无需运行任何命令。
命令
所有控制台命令均位于 windowsxc <targets> 下。
| 命令 | 描述 |
| — | — |
| add <id> <x> <y> <height> <width> <color> [@options] [title] | 创建控制台窗口 |
| remove <id> | 关闭控制台窗口 |
| title <id> <text> | 设置窗口标题 |
| top <id> <true\|false> | 使窗口保持在游戏窗口之上 |
| bg <id> <color> | 设置终端背景颜色 |
| font <id> <size> | 设置字体大小,6 到 48 |
| font <id> family <name> | 设置字体系列 |
| opacity <id> <0.1-1.0> | 设置窗口不透明度 |
| cursor <id> <true\|false> | 显示或隐藏光标 |
| print <id> <text> | 在光标处写入文本 |
| print <id> at <x> <y> <text> | 在单元格处写入文本,从 1 开始 |
| clear <id> [before\|after\|all] | 清除光标周围或整个屏幕 |
| scroll <id> <lines> | 滚动滚动区域,负值向下滚动 |
| region <id> <top> <bottom> | 将滚动限制在行范围内,0 0 重置 |
| size <id> <height> <width> | 以像素为单位调整窗口大小 |
| move <id> <x> <y> | 以屏幕坐标移动窗口 |
| read <id> <objective> [focus] [live] [prompt] | 请求输入并将其写入目标 |
| input cancel <id> [message] | 停止待处理的输入,可选打印消息 |
| input fill <id> <text> | 预填充输入缓冲区而不提交 |
| input send <id> <text> | 填充缓冲区并提交,如同玩家按下回车 |
| input mask <id> <true\|false> | 回显 * 而非输入的字符 |
| layer <id> <normal\|top\|passthrough\|solid> | 设置窗口层级 |
| palette <id> <name> | 切换 ANSI 配色方案 |
| events <id> <true\|false> | 向存储报告按键和点击 |
| list | 列出目标玩家的控制台窗口 |
| get <id> | 打印控制台的属性 |
| dump <id> | 将屏幕文本写入 data storage windowxpp:consoles <id>.dump |
调色板名称:campbell、vintage、onehalfdark、solarized、tango。切换调色板也会将终端背景切换为该方案。
list、get 和 dump 由客户端应答。前两个打印到聊天栏,dump 将整个屏幕写入上述存储路径,并附带一个 lines 计数。
read 向目标提交整数值,并始终将文本存储在 data storage windowxpp:consoles <id>.input 下。非整数提交仍会到达存储,并在控制台中报告。
取消输入、按下 Esc 或关闭窗口会将 {input: "", length: 0, aborted: true} 写入同一存储路径,因此数据包可以区分回答和从未被回答的请求。
事件
events <id> true 将控制台变为输入设备。当文本输入未挂起时,每次按键和左/右键点击都会写入 data storage windowxpp:consoles <id>:
| 字段 | 含义 |
| — | — |
| key | 最后一次按下的 GLFW 键码 |
| keyMods | GLFW 修饰键位,Shift 1、Control 2、Alt 4、Super 8 |
| keyCount | 单调计数器,比较它以检测新的按下 |
| clickX clickY | 点击的单元格,从 1 开始 |
| clickButton | GLFW 按钮,左键 0、右键 1 |
| clickCount | 单调计数器 |
仅报告按下,按住键不会流式传输事件。当 read 等待文本时,键盘属于输入行,不会报告任何内容。
常用键码:Space 32、A-Z 65-90、0-9 48-57、Escape 256、Enter 257、Tab 258、Backspace 259、Delete 261、Right 262、Left 263、Down 264、Up 265、Home 268、End 269、F1-F12 290-301。
菜单循环每 tick 读取 keyCount,当其增长时,读取 key 并据此分发。
控制台窗口内的按键:Enter 提交,Esc 取消,Backspace 跨行删除,Ctrl+V 和右键粘贴,有选区时右键复制,Ctrl + 滚轮更改字体大小,Ctrl+Shift + 滚轮更改不透明度。
文本参数接受 \e、\n 和 \r 转义,因此可以在聊天中输入 ANSI 序列。
@options 是逗号分隔的列表。窗口标志为 noshrink、nogrow 和 noclose。键值对为 bg=#RRGGBB。
准则
windowxpp:window_x、windowxpp:window_y、windowxpp:window_width、windowxpp:window_height。
要求
- Minecraft 1.21.1
- NeoForge 21.1.234
- WindowX
许可证
MIT
常见问题
WindowsX++ 支持哪些 Minecraft 版本?
WindowsX++ 支持 Minecraft Java 版 1.21.1,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。
WindowsX++ 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。
评论
登录后评论和评分