
create-schematic-compute
创造:蓝图计算为Create生态系统带来了基于图形的可视化编程界面,让你无需杂乱的红石粉就能构建复杂的计算蓝图。
查看大图Create: Schematic Compute
🎮 7 Programmable Blocks · 86 Node Types · Formula Syntax Highlighting & Autocomplete · Multiplayer Collaboration
七种可编程方块 · 86种节点 · 公式语法高亮与自动补全 · 多人实时协作
Drag, connect, and build logic — just like Unreal Engine Blueprints!
拖拽连接,构建逻辑 — 像虚幻引擎蓝图一样直观!
Created by StarryNight_Luo (y15173334444)
📖 简介
机械动力:蓝图计算机 是一个机械动力附属模组,添加了七种可编程方块和一个便携终端,采用可视化节点图编程系统。无需搭建复杂红石电路,只需拖拽连接节点即可构建逻辑——就像虚幻引擎的蓝图系统或 Blender 的几何节点一样直观。每台设备拥有独立的节点图,以 20Hz(每游戏刻) 的频率运行,适合实时控制应用。全部 7 种方块支持多人实时协作编辑,带实时光标追踪和节点锁定保护。FORMULA 公式脚本编辑器 支持语法高亮(9 种词法颜色)、智能自动补全(函数、变量、@output)、实时校验与错误徽章、以及命名常量 (PI)/(E)。
🖥️ 方块
🖥️ 全息显示器
3D 悬浮显示方块
| 功能 | 说明 |
|---|---|
| 🖼️ 显示节点 | 文本、数值、图片、动画 |
| 🎨 16×16像素编辑器 | 多帧动画+撤销重做 |
| 📋 图层面板 | 拖拽排序+缩略图预览 |
| 🎯 3D定位 | 自由调整位置和旋转 |
| 📡 信号驱动 | 通过输入信号驱位置旋转 |
| 📡 红石输入 | 从红石链接网络读取信号 |
🖥️ 蓝图计算机
红石链接控制器
| 功能 | 说明 |
|---|---|
| 📡 红石I/O | 读写红石链接网络 |
| 🔗 私有信号 | 命名通道跨计算机通信 |
| 🚌 总线系统 | 多频段数据共享 |
| 📦 封装导入导出 | 文件浏览器导入导出 |
⚡ 转速代理控制器
转速直控
| 功能 | 说明 |
|---|---|
| 🔄 转速控制 | 设置相邻转速控制器RPM(-256~256) |
| 🔗 私有信号输入 | 命名通道跨计算机联动 |
🔌 编程计算机
时序逻辑专用机
| 功能 | 说明 |
|---|---|
| 📡 红石I/O | 红石链接网络通信 |
| 🔗 私有信号 | 命名通道I/O |
| ⏱️ 时序节点 | 延时/锁存器/T触发器/闸门/脉冲延长/循环/保险/累计器/连续积分器 |
🪑 控制座椅
可乘坐控制器
| 功能 | 说明 |
|---|---|
| ⌨️ 58键绑定 | 点击绑定 |
| 🖱️ 双模式 | 摇杆/视角差 |
| 🎮 手柄 | 双摇杆+15键+模拟扳机 |
| 🔄 Sable兼容 | 双相机模式,四元数世界朝向追踪 |
| 🚪 操作 | 右键乘坐 / Shift+右键编辑器 / ~ 下马 / TAB 模式 / ESC 释放鼠标 |
📐 姿态传感器
物理结构姿态读取
| 功能 | 说明 |
|---|---|
| 📐 姿态 | 子世界俯仰和横滚 |
| 🧭 前方朝向 | 结构世界空间朝向 |
| ⚡ 加速度 | 结构本地加速度 |
| 🚀 速度 | 结构本地速度 |
| 🔄 姿态换算 | 坐标系转换 |
📡 3D全息显示雷达
实时实体扫描器
| 功能 | 说明 |
|---|---|
| 📡 扫描范围 | 1-128格可配置 |
| 🎯 目标锁定 | 手动右键锁定+自动最近 |
| 🖥️ 显示风格 | 经典/全息 |
| 📊 TARGET_OUT | 输出坐标/实体ID/距离 |
| 🔍 过滤 | 独立显示玩家/生物/Sable |
📱 便携终端
手持远程编辑器
| 功能 | 说明 |
|---|---|
| 📡 设备扫描 | 扫描1-128格可编程方块 |
| ✏️ 一键编辑 | 即时打开原生GUI |
| 📦 全7方块 | 显示器、蓝图、编程、雷达、座椅、传感器、转速代理 |
| 🔄 Sable兼容 | 子世界扫描+旋转修正 |
👥 多人协作(v1.2.4+)
全部 7 种方块支持多人实时协作编辑同一节点图。
| 功能 | 说明 |
|---|---|
| 🖱️ 实时光标 | 彩色十字准星+玩家名 |
| 📦 远程拖拽 | 平滑动画节点移动 |
| 🔗 连线预览 | 实时贝塞尔曲线预览 |
| 👤 玩家列表 | 右侧竖向列表,房主高亮 |
| 🔒 节点锁定 | 像素编辑时锁定IMAGE节点 |
| 🚪 自动关闭 | 方块破坏时自动关闭 |
| ⚡ 加入离开 | 打开即现,关闭即消 |
📝 公式脚本节点
多行脚本编辑器 — 支持赋值、命名输出、注释、续行。
🎨 语法高亮
9 种词法分类的实时彩色标注。
| 词法类型 | 颜色 | 示例 |
|---|---|---|
| 函数 | 🟡 黄色 | sin, cos, sqrt, exp |
| 常量 | 🩷 粉色 | (PI), (E) — 仅分组括号内视为字面量 |
| 标识符 | 🩵 浅青 | x, speed, myVar |
| 数字 | 🟠 橙色 | 3.14, 42, 0.5 |
| 运算符 | ⬜ 灰色 | +, -, *, /, ^, % |
| 括号 | ⬜ 灰色 | (, ) |
| 注释 | 🟢 绿色 | -- this is a comment |
| @output | 🟣 紫色 | @output |
| 赋值 | 🟣 紫色 | = |
| 未知 | 🔴 红色 | 非法字符 |
🔍 自动补全
输入即触发,候选框显示在光标下方、所有引脚上方。
| 触发方式 | 行为 |
|---|---|
| 输入标识符字符 | 过滤候选:函数、常量、当前变量 |
输入 @ |
立即建议 @output |
Tab / Enter |
接受选中候选项 |
↑ ↓ |
导航候选项 |
Esc / 其他任意键 |
关闭候选框 |
| 点击候选项 | 接受并插入 |
| 缩放感知 | 候选框随图缩放 |
✅ 实时校验
错误以红色 ⚠ 徽章显示在节点标题栏,悬停查看详情。
| 校验项 | 类型 |
|---|---|
| 括号匹配 | 错误 |
| 未知函数 | 错误 |
| 函数参数数量不符 | 错误 |
| 无效赋值 | 错误 |
| 重复输出名 | 警告 |
| @output 缺少变量名 | 警告 |
| 输入框红色边框 | 视觉反馈 |
📐 命名常量
(PI) 和 (E) 在分组括号内视为字面常量(π ≈ 3.14159,e ≈ 2.71828)。裸 PI/E 或函数调用内的 sin(PI) 视为变量(创建输入引脚)。
-- (PI) = 字面量π,不是变量
-- sin(PI) = PI 是变量输入
result = (PI) + sin(PI)
@output result
→ 1 输入引脚 + 1 输出
-- 弹道计算
dx = X1 - X0
dz = Z1 - Z0
w = sqrt(dx*dx + dz*dz)
secTheta = 1 / cos(THETA)
y = (99*secTheta/(20*N)+tan(THETA))*w + 99*ln(1-2*(w*secTheta-K)/(199*N))/(20*ln(100/99)) - 99*K/(20*N) + 2
@output y
@output w
@output secTheta
→ 7输入 + 3输出
18个数学函数: sin cos tan asin acos atan2 sinh cosh sqrt ln log exp sec csc cot abs
🚌 BUS 总线系统
全局命名通道跨计算机通信系统,类似发布-订阅消息总线。
| 功能 | 说明 |
|---|---|
| 🚌 BUS_OUT | 写入命名通道+频段 |
| 🚌 BUS_IN | 从通道读取频段值 |
| 📋 频段 | 每通道命名字段 |
| 🔢 引用计数 | 无引用时自动清理 |
| ⚠️ 冲突检测 | 拒绝重名通道 |
🧩 节点参考(86 种)
📦 数值
| 节点 | 说明 |
|---|---|
| 常量 | 输出常量值 |
| 红石输入 | 从红石链接网络读取 |
| 私有信号输入 | 从命名通道读取浮点数 |
| 总线输入 | 从总线通道读取频段值 |
🔢 基础运算
| 节点 | 说明 |
|---|---|
| 加法 | A + B |
| 减法 | A - B |
| 乘法 | A × B |
| 除法 | A ÷ B(B=0时为0) |
| 模运算 | A % B |
| 次幂 | A ^ B |
| 次方根 | A的B次方根 |
| 绝对值 | |input| |
| 向上取整 | 向上取整 |
| 向下取整 | 向下取整 |
📐 高级运算
| 节点 | 说明 |
|---|---|
| 公式 | 多行脚本编辑器 |
| 保留N位小数 | 保留N位小数 |
| 比较路由 | |A-B| 智能信号分流 |
| 姿态换算 | 姿态角转换 |
| 分割 | 正负信号分离 |
三角函数(度): 正弦 · 余弦 · 正切 · 反正弦 · 反余弦 · 反正切(双参数)· 双曲正弦 · 双曲余弦
其他: 平方根 · 自然对数 · 常用对数 · 指数 · 正割 · 余割 · 余切 · 角度展开 · 方向(3入3出)
🧠 逻辑
| 节点 | 说明 |
|---|---|
| 大于 | A > B |
| 小于 | A < B |
| 大于等于 | A ≥ B |
| 小于等于 | A ≤ B |
| 等于 | A = B |
| 或门 | A > 0.5 或 B > 0.5 |
| 布尔 | 布尔(可反转) |
| 闸门 | 信号门(设置/复位/切换) |
| 继电器A | 双掷继电器 — 触点 false→A, 触点 true→B |
| 继电器B | 单掷合并继电器 — 输出 = 触点 ? B : A |
🎛️ 控制
| 节点 | 说明 |
|---|---|
| PID控制器 | SP/PV PID(0~16),抗积分饱和 |
| 动力PID | 带基础动力的PID |
| 限制 | 限幅 |
| 映射范围 | 范围映射 |
📤 输出
| 节点 | 说明 |
|---|---|
| 红石输出 | 写入红石链接(0~15) |
| 私有信号输出 | 写入命名通道 |
| 总线输出 | 写入总线通道 |
| 转速控制 | 转速控制(-256~256) |
⏱️ 时序(仅编程计算机)
| 节点 | 说明 |
|---|---|
| 延时 | 延时N tick |
| 锁存器 | Set/Reset锁存器,可配置默认状态 |
| T触发器 | 切换触发器,可配置默认状态 |
| 脉冲延长 | 脉冲延长N tick |
| 循环 | 每隔一定间隔触发脉冲,循环重复N次 |
| 保险 | 触发→2-tick脉冲→冷却 |
| 累计器 | 上升沿步进计数器 |
| 连续积分器 | 连续积分,可配置限幅 |
🎮 输入(控制座椅+姿态传感器)
| 节点 | 说明 |
|---|---|
| 键盘按键 | 58键绑定 |
| 鼠标摇杆 | 双模式:增量(鼠标位移)/绝对值(带记忆摇杆)。编辑区切换 |
| 视角差 | 视角差 |
| 鼠标按键 | 鼠标左/右键 |
| 手柄摇杆 | 双摇杆 LX/LY/RX/RY |
| 手柄按键 | 15按键 |
| 手柄扳机 | 模拟扳机 LT/RT(0~1) |
| 世界视角 | 玩家绝对世界视角方向 |
| 姿态 | 子世界姿态 |
| 前方朝向 | 结构世界空间朝向 |
| 加速度 | 结构本地加速度 |
| 速度 | 结构本地速度 |
| 世界坐标 | 世界坐标(可偏移) |
| 目标输出 | 雷达目标 X/Y/Z/实体ID/距离 |
🖼️ 显示(仅全息显示器)
| 节点 | 说明 |
|---|---|
| 文本 | 带颜色的文字显示 |
| 数值显示 | 浮点数值显示 |
| 图像 | 16×16像素图片,信号驱动位置 |
| 图像序列 | 多帧动画,信号驱动帧 |
📦 结构
| 节点 | 说明 |
|---|---|
| 封装 | 在节点内嵌套子图 |
| 封装输入 | 外部输入引脚 |
| 封装输出 | 外部输出引脚 |
🔧 调试(全部方块)
| 节点 | 说明 |
|---|---|
| 便利贴 | 可调大小/滚动/三色自定义。拖拽顶部移动,父级移动携带内部节点。纯视觉辅助。选中节点按 C 包裹。 |
| 信号发生器 | 测试信号源,XY曲线预览+Y轴范围标注,手动控制点曲线或自定义 f(x) 公式,频率发生/指定模式输出,百分位数稳健自动缩放 |
| 信号探针 | 实时信号监视,100 tick趋势图,百分位数稳健自动缩放(p1-p99),冻结/清除 |
信号发生器模式:
| 模式 | 说明 |
|---|---|
| 🎯 手动曲线 | XY图上拖拽控制点。双击添加,右键删除,XY双向自由拖拽(X被相邻点夹持,服务端排序)。多人协作同步。 |
| 📐 自定义公式 | 输入公式表达式,变量 x(0~1)。支持全部数学函数(三角函数用度),自动全角括号转换。speed/amplitude 禁用。 |
| 🔄 频率发生 | X自动0→1循环推进。speed控制速度(仅手动模式)。天蓝色标记线显示当前X位置。 |
| 🎯 指定模式 | 拖拽天蓝色标记线设置X值。无输入框,纯拖拽交互。 |
信号探针功能:
- 100-tick环形缓冲趋势图,百分位数稳健自动缩放(p1-p99)
- 百分位过滤替代固定 ±5 裁剪 — 正确显示大范围数据(如 0~360)
- 右键:冻结/解冻、清除历史
- 蓝图未运行时显示 "---"
🎮 操作指南
| 操作 | 按键 |
|---|---|
| 添加节点 | 右键空白 |
| 编辑参数 | 左键→▶ |
| 连接 | 拖拽输出→输入 |
| 删除节点 | 悬停+X |
| 删除连线 | TAB+左键点击 |
| 删除选中 | Delete / Backspace |
| 框选 | TAB+拖拽 |
| 复制 | Ctrl + D |
| 撤回 | Ctrl + Z |
| 重做 | Ctrl + Y |
| 注释包裹 | 选中节点+C |
| 编辑注释文本 | 双击注释节点 |
| 调整注释大小 | 拖动右下角 |
| 滚动注释 | Ctrl+滚轮 |
| 缩放 | 滚轮 |
| 平移 | 右键拖拽 |
| 打开编辑器 | 右键 |
| 控制座椅 — 乘坐 | 右键(空手) |
| 控制座椅/雷达 — 编辑器 | Shift+右键 |
| 控制座椅 — 下马 | ~ |
| 控制座椅 — 切换模式 | TAB |
| 控制座椅 — 释放鼠标 | ESC |
| 信号发生器 — 添加控制点 | 双击XY图 |
| 信号发生器 — 删除控制点 | 右键控制点 |
| 信号发生器 — 拖拽控制点 | 左键拖拽(X被夹持,Y自由) |
| 信号发生器 — 拖拽X标记 | 左键拖拽天蓝色线(输入模式) |
| 信号发生器 — 切换模式 | 点击切换按钮(二次点击确认) |
| 探针 — 冻结/解冻 | 双击探针节点 |
| 探针 — 清除历史 | 右键探针节点 |
| 书签 — 打开面板 | 点击右下角★ |
| 书签 — 添加 | 面板内[+]或Ctrl+M |
| 书签 — 重命名 | 点击书签行✎ |
| 书签 — 删除 | 点击书签行× |
| 书签 — 跳转 | 点击→或名称 |
| 书签 — 拖拽排序 | 拖拽名称区域到新位置 |
| 书签 — 重置视角 | 面板[↺]或Home键 |
🔄 Sable 物理集成
与Sable物理引擎深度集成,支持旋转结构。
| 方块 | 功能 |
|---|---|
| 控制座椅 | 实体yaw追踪子世界 |
| 姿态传感器 | 读取姿态四元数 |
线程安全: 共享字段
volatile。无Sable: 控制座椅完全可用,传感器输出0
💾 蓝图兼容
全部七种方块支持蓝图大炮,图与状态完整保留。
采用 Create 官方 IMergeableBE + SafeNbtWriter 接口
📦 合成配方
| 方块 | 材料 |
|---|---|
| 🖥️ 全息显示器 | 红石链接×2 + 精密构件 + 玻璃板×2 + 黄铜机壳 + 萤石粉×2 |
| 🖥️ 蓝图计算机 | 红石链接×2 + 精密构件 + 玻璃板×2 + 中继器 + 比较器 + 黄铜机壳×2 |
| ⚡ 转速代理 | 黄铜锭×4 + 齿轮 + 玻璃板×2 + 比较器 + 安山岩机壳 |
| 🔌 编程计算机 | 安山岩机壳×4 + 中继器 + 玻璃板×2 + 比较器 + 安山合金 |
| 🪑 控制座椅 | 重型测重压力板 + 铁锭×2 + 黄铜机壳 + 红石 + 红石链接×4 |
| 📐 姿态传感器 | 铁锭×6 + 中继器 + 比较器 + 黄铜机壳×2 |
| 📡 雷达 | 显示器×2 + 铁锭×4 + 黄铜机壳 + 红石块×2 |
| 📱 便携终端 | 红石链接×4 + 蓝图计算机 + 玻璃板×4 |
⚙️ 方块属性
| 属性 | 值 |
|---|---|
| 硬度 | 1.0(空手可破坏) |
| 空手破坏 | 掉落无NBT |
| 扳手右键 | 旋转方向 |
| 扳手Shift+右键 | 收回保留NBT |
🔧 技术亮点
| 特性 | 说明 |
|---|---|
| 👥 多人协作 | 实时编辑、光标追踪、节点锁 |
| ⚡ 服务端权威评估 | 客户端接收快照,无本地评估器 |
| ⚡ 拓扑排序求值 | O(1) 输入查询缓存 |
| 🚀 GC友好 | 重用求值器 |
| 🔄 信号总线 | 全局命名通道通信 |
| 🧹 PID抗饱和 | 积分上限钳制 |
| 🛡️ 环检测 | 编译时循环引用检测 |
| 🎮 GLFW原始输入 | 绕过MC键位系统 |
| 🔄 Sable集成 | 子世界姿态读取 |
📜 更新日志
v1.2.4 — 多人协作 + 调试工具链 + 公式编辑器体验
👥 多人协作
全部 7 种方块支持多人实时协作编辑同一节点图。
| 功能 | 说明 |
|---|---|
| 🖱️ 实时光标 | 彩色十字准星 + 玩家名 |
| 📦 远程拖拽节点 | 远程移动平滑插值动画 |
| 🔗 连线预览 | 拖拽连线时实时贝塞尔曲线 |
| 👤 玩家列表 | 右侧竖向列表,房主高亮 |
| 🔒 节点锁定 | 像素编辑时自动锁定 |
| ⚡ 加入离开 | 打开即现,关闭即消 |
| ✏️ 操作同步 | GraphOp + OpExecutor 模型,服务器权威 ID 分配 |
⚡ 架构重构
| 改动 | 说明 |
|---|---|
| 🖥️ 服务端评估 | 移除客户端 GraphEvaluator。所有评估在服务端运行;通过 ClientboundGraphEvalPacket + EvalSnapshot 同步结果。修复客户端 PRIVATE_IN/BUS_IN 始终返回 0 的问题。 |
| 🏗️ 统一 BE 基类 | SyncedGraphBlockEntity 整合了 7 个 BE 中约 200 行重复代码(BUS 生命周期、RedstoneLink、NBT、同步、EvalSnapshot)。 |
| 📦 Blob 通道 | BlobDataPacket + BlobRegistry 用于分块传输大数据。SET_IMAGE_PIXELS 从 Base64 改为直接传输 int[]。 |
🔧 调试工具链
| 工具 | 说明 |
|---|---|
| 📶 信号发生器 | 测试信号源。手动曲线模式(可拖拽控制点、X 夹持、服务端排序)或自定义 f(x) 公式(全部数学函数、自动全角括号转换)。频率生成(自动循环 X)或输入驱动(拖拽天蓝色标记)。Y 轴自动缩放带 ±5 离群值裁剪。 |
| 📊 信号探针 | 实时监视器,100-tick 趋势图。Y 轴自动缩放带离群值裁剪。右键冻结/解冻/清除。 |
📌 视角书签
- ★ 按钮(右下角,▼ 上方)开关书签面板
[+]/Ctrl+M保存当前视角,[↺]/Home重置到原点[✎]重命名,[✕]删除,[→]或点击名称跳转,带 200ms 缓入缓出过渡- 拖拽名称区域排序,通过
MOVE_BOOKMARK操作同步 - 点击命名对话框外部取消;Esc 由统一弹窗栈处理
- 通过
ADD_BOOKMARK/REMOVE_BOOKMARK/RENAME_BOOKMARK/MOVE_BOOKMARK操作多人同步
🐛 修复与打磨
- 🔧 图初始化 —
onLoad()提升 generation 以强制首 tick 完全重编译。 - 🚌 BUS 通道 —
registerChannels()不再要求bandCount()>0;空频段通道也注册,使 BUS_IN 立即可读。 - 🎨 颜色选择器 UX — ESC 同时关闭选择器和面板。复制的节点获得
sortB = 原始值+1。 - 📝 双语注释 — 所有
graph/、blocks/、network/源码注释现在为中英双语。 - 🐛 封装调试可见性 —
EvalSnapshot现在捕获子评估器输出 + debugTimes。封装内信号发生器(蓝色 X 标记线)和探针现在正确显示。 - ⌨️ Esc 键委派 — Esc 现在先关闭子 UI(书签重命名、导出/导入对话框、颜色选择器)再关闭整个编辑界面。
- 🔒 软锁作用域 — 节点锁定现在按
ownerNodeId限定作用域。在封装内选中节点不再误锁主图同 ID 节点。 - 🖱️ 光标作用域隔离 — 远端玩家光标按作用域过滤;封装内的光标从主图视图隐藏,反之亦然。
- 🟡 封装占用高亮 — 其他玩家在封装内部编辑时,主图中的封装节点显示金色边框+玩家名。
- 📝 封装 I/O 改名同步 — 重命名
ENCAP_INPUT/ENCAP_OUTPUT现在发送SET_DISPLAY_TEXT操作以支持服务端同步 + 撤销。 - 📋 Ctrl+D 复制修复 — 复制现在使用服务端权威 ID 分配(
ADD_NODE_REQUEST→ ACK);数据操作延迟到所有真实 ID 分配完成后执行。封装节点的子图内容递归同步。修复“其他客户端上节点为空”的问题。 - 📐 手动曲线固定 Y 轴 — 信号发生器手动曲线模式现在使用固定 Y 范围
[-1.1, 1.1];公式模式保留自动缩放。控制点钳制到可见范围并在边框上方渲染。
🔗 稳定引脚ID重构
连接现在绑定到稳定的字符串引脚标识符,而非位置整数索引。引脚的插入、删除或重排不再破坏现有连接——它们按名称跟随引脚。
| 系统 | pinId 来源 | 修复前 | 修复后 |
|---|---|---|---|
| FORMULA 输入 | 变量名(如 A、B、x) |
添加/移除变量会使引脚索引偏移 — 连接断裂或指向错误的引脚 | 连接跟随变量名;ensureScriptParsed() 消除懒解析竞态条件 |
| FORMULA 输出 | @output 标签(如 result、angle) |
输出重排会破坏下游连接 | 连接跟踪输出标签;"out0" 默认值正确处理 |
| 封装 I/O | 子节点 ID(按 Y 排序,然后按 ID) | 拖拽 ENCAP_INPUT/OUTPUT 节点改变引脚顺序 — 外部连接静默偏移 | pinId = 子节点 ID,拖拽不变;子图结构编辑后重建父缓存 |
| BUS 频段 | 频段名(如 band_0、band_1) |
插入/移除/重排频段清除所有连接或导致索引漂移 | 仅实际删除的频段上的连接被移除;重排的频段保留 |
关键变更:
NodeConnection新增fromPinId/toPinId字段;save()/load()向后兼容GraphNode新增inputPinIndex(id)/outputPinIndex(id)/inputPinId(i)/outputPinId(i)— 按节点类型解析 pinId↔索引NodeGraph.rebuildInputCache()将所有 pinId 解析为当前索引,清理过期连接GraphMigrationV3→V4:一次性 NBT 升级,将 FORMULA、ENCAP、BUS 和通用节点的整数引脚转换为稳定 pinId(递归进入子图)GraphEvaluatorBUS 评估和 ENCAP 引脚注入现在按 pinId 而非缓存位置匹配BusChannelHelper.syncBandsFromServer仅断开实际删除的频段(按名称),保留重排的频段NbtVersions.DATA_VERSION从 3 提升到 4- 从 v1.2.5 路线图中消除了约 200 行 REWIRE/重连复杂度 — 引脚重排现在是免费的
相关文档:docs/v1.2.4-pin-id-stability-plan.md
🧠 继电器节点
两个用于条件信号路由的新逻辑节点 — 蓝图计算机和编程计算机均可用。
| 节点 | 说明 |
|---|---|
| 继电器A | SPDT(双掷)— 3 输入(A、B、触点),2 输出。触点 ≤0.5 → A输出=A,B输出=0;触点 >0.5 → A输出=0,B输出=B。互斥投掷,如同物理继电器。 |
| 继电器B | SPST(单掷)— 3 输入(A、B、触点),1 输出。触点 >0.5 → 输出=B;否则 → 输出=A。合并单掷变体。 |
两者都使用与 BOOL/GATE/OR 一致的标准 >0.5 阈值。无参数,纯组合逻辑 — 开箱即用兼容多人协作和封装。
🪑 Sable 子关卡控制座椅相机
Sable 旋转结构上控制座椅的两种相机模式。座椅世界朝向由客户端根据方块 FACING + Sable 渲染姿态四元数实时计算,不依赖实体 yaw 同步。
| 模式 | 相机 | 输出 |
|---|---|---|
| FIXED(默认) | 锁定到座椅世界朝向(偏航+俯仰)。ControlSeatCameraMixin 禁用 Sable 相机旋转以防止双重旋转。 |
摇杆 mx/my 来自鼠标增量 |
| VIEW_DIFFERENCE | 自由相机,鼠标控制。Sable 不旋转视角。 | vy = playerYaw - seatWorldYaw,vp = playerPitch - seatWorldPitch |
ControlSeatBlockEntitySable:修复缺失的setYRot()— 实体 yaw 现在正确更新yRot和yRotO。ControlSeatEntity:在子关卡内跳过手动setPos(Sable 处理定位)。ControlSeatCameraMixin:注册在required:false的 sable mixin 配置中 — 无 Sable 时静默跳过。
🎮 鼠标摇杆绝对值模式
编辑区提供每节点独立开关,在增量(默认,鼠标位移即输出)和绝对值(累积摇杆位置,停手保持)之间切换。
- 复用
TOGGLE_BOOL操作流水线 — 服务端权威、支持撤销、多人同步。 - 绝对值每 tick 累积系数 1/6,实现平滑控制。
- 摇杆位置在 GUI 开/关之间保持。
- X/Y 轴独立累积。
🔧 信号发生器自动缩放修复
- 根本原因:
computeVisibleRange()使用固定 ±5 裁剪,将大范围公式(如x*360)压缩到约 6 单位的 Y 窗口,而渲染使用原始值 → 曲线绘制到图表角落,看起来像反比例函数。 - 修复:将 ±5 硬裁剪替换为基于百分位数的稳健范围(p1–p99)。仅过滤极端离群值(|v| ≥ 1e6)和 NaN/Inf。
DEBUG_SIGNAL_GEN和DEBUG_PROBE图表使用相同逻辑。 - Y 轴范围标签:图表右上角现在显示
min … max(如0.0 … 360.0),缩放立即可见。 - 缓存:公式编译缓存(
debugFormulaRpn)在公式编辑时正确失效 — 图表即时刷新。
🎨 公式编辑器体验
语法高亮 — 基于标记的实时着色,9 类:函数(黄)、常量(粉)、标识符(青)、数字(橙)、运算符/括号(灰)、注释(绿)、@output/赋值(紫)、未知(红色下划线)。标记缓存避免每帧重复解析。
自动补全候选框 — 输入标识符字符触发过滤下拉列表(函数、命名常量、当前变量);输入 @ 立即建议 @output。键盘:↑↓ 导航,Tab/Enter 接受,Esc 关闭。鼠标
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。