Links
Tags
Creators
Details
All versions
🎛️ 新方块:动力传感器 / New Block: Kinetic Gauge (
1.2.5.1
Release
create-schematic-compute 1.2.5.12 weeks ago 586
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Client and server
Required content
Unavailable version
Changes
v1.2.5.1 — 动力传感器(Create 表同款 3 轴放置 · STRESS/RPM 节点 · 蓝屏显示)· 编辑器输入焦点与选中高亮修复 · GUI 巨型文件拆分 / Kinetic Gauge (Create-style 3-axis Placement · STRESS/RPM Nodes · Blue Screen) · Editor Input Focus & Highlight Fixes · GUI Decomposition
🎯 编辑器输入与选中修复 / Editor Input & Selection Fixes
| Fix / 修复 | Description / 说明 |
|---|---|
| ⌨️ 输入中途丢焦点 / Focus lost mid-typing | 重建 EditState 会把整批 EditBox 换成新实例并丢掉焦点;现在重建前记录聚焦字段下标与光标,重建后按下标还原(光标仅多行编辑器且文本仍够长时还原)/ An EditState rebuild replaced every box and dropped focus; the focused field index and caret are now captured and restored |
| 🔁 显示编辑器吞键 / Display editor swallowed keys | MonitorDisplayEditor.handleKeyPressed 曾无条件 return true,设置面板打开时(离开显示模式后并不关闭)节点图输入框完全收不到按键;改为「仅面板打开且未消费 → 返回 null」把输入交还屏幕(charTyped 同步修正)/ The display editor consumed every key unconditionally, so node-graph edit boxes got nothing while the settings panel was open |
| 🖱️ 设置面板点击穿透 / Settings-panel clicks fell through | 拆分丢失了「设置面板点击优先」与模式无关的语义:在显示模式点开设置面板后回到节点图,面板仍渲染但点击穿透到底下图编辑区(关闭/保存按钮、输入框不可点);现恢复面板打开即优先——handleSettingsClick 提为 public,屏幕在面板打开时直接路由 / The split lost the mode-independent settings-panel click priority: a panel opened in display mode kept rendering in graph mode while clicks fell through to the graph editor (close/save buttons and EditBoxes unreachable). Priority is restored — the screen routes to the now-public handleSettingsClick whenever the panel is open |
| 🖼️ 选中高亮消失 / 回弹 / Highlight vanished or bounced | 高亮判定原用对象相等,整图同步或重载替换节点实例后旧实例再也匹配不上;改为按 id 判定(isSelectedById / isPrimaryById)/ Highlight matching is now by id instead of object identity |
| ⚡ 每秒数次整批重建 / Edit boxes rebuilt several times per second | 图代际是 per-instance 的,跨实例用裸 int 比较永远「看起来变了」(实测 1→2→3→4→1 循环);改为绑定图实例 + 按节点结构指纹增量重建,无结构变化即零重建 / The generation compare is bound to the graph instance and rebuilds are incremental per node |
| 📝 折叠丢未提交输入 / Collapse dropped uncommitted input | 增量重建引入的清理曾把「折叠但仍在图」的节点编辑状态一并删除,整图同步导致的折叠后再展开会丢 busBox 未提交文本;现只清已离开图的节点,折叠节点保留状态与指纹、仅退出展开集合 / The cull added with the incremental rebuild also dropped collapsed-but-present nodes' edit states, so a collapse arriving via a whole-graph sync lost uncommitted busBox text on re-expand; only nodes that left the graph are culled now |
| 🔖 书签命名对话框加确认/取消按钮 / Bookmark name dialog gains Confirm/Cancel buttons | 新建/重命名对话框底部新增 确认/取消 按钮,纯鼠标即可完成,不再必须按 Enter/Esc;键盘路径保持不变(确认与 Enter 同路径,取消与 Esc 同路径);对话框内点击改为模态消费,不再穿透到底下画布 / The add/rename dialog gains Confirm/Cancel buttons for a mouse-only flow — Enter/Esc are no longer required and keep working (Confirm shares the Enter path, Cancel the Esc path); clicks inside the dialog are consumed modally instead of falling through to the canvas |
| 🏷️ 方块名输入框透明化 + 图名软锁 / Transparent block-name box + graph-name soft lock | 顶栏方块名输入框背景改为透明(聚焦时以细底边提示可编辑区);新增图名软锁:一人改名时其余玩家的名字框自动只读并交出焦点,名字框显示金色描边与编辑者名字,防止两人同时改名;焦点翻转立即上报(键盘编辑不触发鼠标移动,锁的广播与释放不等 30s 过期)/ The top-bar block-name box is now transparent (a thin underline marks the editable region while focused); a graph-name soft lock makes everyone else's box read-only and unfocused with a golden outline and the editor's name shown, preventing simultaneous renames; focus flips broadcast immediately — keyboard editing never moves the mouse, so the lock no longer waits out the 30 s presence expiry |
| 🗂️ 添加菜单节点分类按方块收敛 / Add-menu node categories scoped per block | 蓝图计算机的黑名单漏掉了齿轮箱分类——运动节点(移动/转动/等待/离合/编码器)与目标转速混进了蓝图菜单;现变速箱白名单与转速代理控制器同款(输出节点为 TX_OUT)、CNC 齿轮箱 = 编程计算机同款 + 五个运动节点、蓝图不再出现齿轮箱分类(与 node-guide 的「仅数控齿轮箱图 / 仅变速器图」声明对齐)。只影响添加菜单,旧存档中已放置的节点不受影响 / The blueprint blacklist missed the gearbox category — motion nodes (move/rotate/wait/clutch/encoder) and TX_OUT leaked into its menu; the transmission now mirrors the Speed Proxy's set (with TX_OUT as its output), the CNC gearbox = the Program Computer's set + the five motion nodes, and the blueprint menu no longer shows the gearbox category (matching node-guide's "CNC-graph-only / transmission-graph-only" claims). Menu-only: nodes already placed in old saves are unaffected |
⚙️ 图求值修复 / Graph Evaluation Fixes
| Fix / 修复 | Description / 说明 |
|---|---|
| 🎛️ 封装内的齿轮箱节点丢失宿主注入 / Gearbox nodes inside encapsulations lost host access | 子图求值器不继承宿主注入(encoderView / commandSink / radarPos):封装内的 ENCODER 恒输出 0、MOVE/ROTATE/WAIT/CLUTCH 的指令入栈被静默丢弃、雷达节点同样退化——这正是「编码器输出 0」的根因(宿主构造器的注入只到顶层求值器)。现子图求值器创建时继承全部宿主注入(GearboxNodesEvalTest 新增回归用例),并补上 recompileEvaluatorLight 漏掉的定制回调重放 / Sub-graph evaluators did not inherit host injections (encoderView / commandSink / radarPos): an encapsulated ENCODER read a null view — pinned at 0 — motion-command enqueues inside encapsulations were silently dropped, radar likewise; this is the root cause of the "encoder outputs 0" report (the constructor injection only ever reached the top-level evaluator). Sub-evaluators now inherit every host injection (regression test in GearboxNodesEvalTest), and the missed customizer replay in recompileEvaluatorLight is restored |
| ⚠️ 语义变更:编码器只在离合接合时计量 / Behaviour change: the encoder measures only while engaged | 编码器的位置积分与转速读数此前无条件跟随输入网络转速——没有指令、离合已分离甚至图已停止时仍在计数(「没有指令也在动」)。现积分与转速都门控到接合状态,且积分与指令配额逐 tick 对齐(在运动决策的同一位置积分、以本 tick 的接合决策作门控——门控读方块状态会因翻转时序在指令起止边界各丢一个 tick 的行程,256rpm 下即 76.8°);分离/空闲时位置保持、转速读 0;node-guide #88 已同步 / The encoder's position integration and velocity readout followed the input network speed unconditionally — counting with no commands, a detached clutch, even a stopped graph. Both are now gated on engagement and tick-aligned with the quota bookkeeping (integrated at the motion-decision point with this tick's engagement decision — a blockstate-read gate lags the quota across every ENGAGED flip, losing one tick of travel per command boundary = 76.8° at 256 rpm); held with zero velocity while disengaged; node-guide #88 updated |
| 📉 组合线整图同步收敛到显式全量同步 / Composition-line whole-graph sync scoped to explicit full syncs | 组合线方块实体(数控齿轮箱 / 可编程变速器)此前把整张图塞进每个客户端数据包——Create 在每次转速变化/状态翻转都会 sendData,打开编辑器的客户端因此反复整图重建(「断动力/启停时一直在刷新图」)。现仅 join / flagFullSync 挂起时携带整图,常规包只带 running 等轻量字段;图变化走 op 通道,存档走 NBT / The composition-line BEs (CNC gearbox / programmable transmission) shipped the whole graph in every client data packet — Create fires sendData on every speed change / state flip, so open editors rebuilt wholesale. The graph now travels only on join / flagFullSync; routine packets carry light fields, graph changes ride the op channel, saves write NBT |
🧩 GUI 巨型文件拆分 / GUI Decomposition(步骤 1–3)
| Refactor / 重构 | Result / 结果 |
|---|---|
| ✂️ HUD 裁剪数学抽出 / HUD clip math extracted | MonitorBlockEntityRenderer 1742 → 1465 行,新增 MonitorClipMath(纯几何/裁剪/投影,可单测)/ New MonitorClipMath, behaviour-preserving |
| 🖥️ 显示器显示编辑 GUI 脱离 / Display-layout editor extracted | MonitorScreen 1767 → 348 行,新增 MonitorDisplayEditor(显示区/图层面板/设置面板/协作存在包);评审时移除从未接线的 drawToolbarStrip 死缝(工具栏条仍由编辑器内部绘制,与原实现一致)/ Display-mode GUI, layer panel, settings panel and presence moved out; the review pass removed the never-wired drawToolbarStrip seam (the toolbar strip stays drawn inside the editor, as in the original) |
| ⚙️ 设置界面按 tab 拆分 / Settings screen split by tab | EditorSettingsScreen 1204 → 893 行;新增 EditorSettingsGuideTab、EditorSettingsColorsTab、EditorSettingsHost;键位 tab 待办(计划见 docs/gui-decomposition-plan.md)/ Guide + colours tabs extracted; the keys tab remains, with its plan documented |
新增文档 / New docs
docs/gui-decomposition-plan.md— GUI 巨型文件拆分路线图(含实施记录与两条拆分裂缝经验)docs/editor-focus-selection-loss.md— 输入焦点/选中丢失的根因分析与运行取证
🚌 总线频段解析改为服务端唯一权威 / Bus Band Resolution Now Server-Authoritative
| Fix / 修复 | Description / 说明 |
|---|---|
| 🎛️ 同一个 BUS_IN 在不同客户端显示不同频段图 / Same BUS_IN showed a different band graph per client | BUS_IN 的频段列表过去不随操作传递,而是每一侧各自查自己那份全局频段注册表解析。某个频道名失去发布方时,服务端会清掉自己那份定义却不通知客户端,各端缓存因此分叉 —— 实测同一次改名得到「服务端空 / 一个客户端空 / 另一个客户端 6 个频段」三种结果。现在解析只发生在服务端一处,结果作为一条权威 SET_BANDS 下发给该图全部编辑者(含发起者),各端只应用同一个值 / The list was resolved independently on each side against a per-side cache; the server pruned a dead channel name without telling clients, so the caches diverged (one rename produced three different answers). Resolution now happens once on the server and ships as an authoritative SET_BANDS to every editor, originator included |
| 🧹 客户端不再自行解析频段 / Clients no longer resolve bands themselves | 移除客户端四处解析:改名提交处、展开 BUS_IN 时的自动同步、收到改名 op 后按注册表同步、渲染循环逐帧按本地频段表刷新(正是它长期遮掩了 #15 的过期列表)/ Four client-side resolution sites removed: the rename commit, the expand-BUS_IN auto-sync, the per-op registry re-sync, and the per-frame render-loop refresh (the one that long masked #15's stale lists) |
| ⚠️ 语义变更:采用到无发布方的频道名会清除该节点频段上的连线 / Behaviour change: adopting a name with no publisher prunes that node's band connections | 统一走 SET_BANDS 的剪线语义后,把一个 BUS_IN 改名到一个无定义的频道名会让频段归空,从而删除该节点频段上的连线,且不可撤销(撤销只恢复名字与频段列表)。改名到有定义的频道名不受影响 / Uniform pruning via SET_BANDS means renaming a BUS_IN to a name with no publisher empties its bands and deletes the connections on them, with no undo (Ctrl+Z restores the name and band list only). Renaming to a defined name is unaffected |
| 🧪 新增回归测试 / New regression tests | BusInBandResolutionTest —— 改名不得触碰频段、解析顺序(同图节点 → 注册表 → 空)、解析不读自身、SET_BANDS 值未变时为空操作 / Rename must not touch bands; documented resolution order; no self-adoption; unchanged SET_BANDS is a no-op |
🚌 总线冲突标志与频段收敛 / Bus Conflict Flags & Band Convergence
| Fix / 修复 | Description / 说明 |
|---|---|
| ⚠️ 跨方块频道冲突警告终于显示(#12)/ Cross-block conflict warnings now show | 客户端原判定分支结构上不可达,且本地赋值会抹掉随图同步来的服务端权威冲突标志;现客户端只合并本地可证明的部分(同图重名只增不减),跨方块冲突以服务端下发的标志呈现 / The client branch was structurally unreachable and its local assignment silently erased the server-synced flag; the client now merges only what it can prove (same-graph duplicates, raise-only) while cross-block conflicts arrive from the server |
| 🚫 冲突的 BUS_OUT 不再充当频道定义来源(#14)/ A conflicted BUS_OUT is no longer a definition source | 服务端唯一解析点的「同图优先」分支未排除冲突节点:输家方块内的 BUS_IN 采纳了输家的频段图,而其它方块拿到赢家的。现定义来源必须是非冲突 BUS_OUT / The same-graph-priority branch didn't exclude conflicted nodes, so the BUS_IN inside the losing block adopted the loser's band graph; only a non-conflicted BUS_OUT may now serve as the source |
| 🔁 BUS_IN 频段列表收敛为每 tick 服务端不变量(#15)/ BUS_IN band lists converged by a per-tick server invariant | 频道定义变化后,其它方块里已有 BUS_IN 的频段列表永不刷新(重开编辑器也无效——服务端副本本身就是旧的)。现挂进 GraphHost 每 tick:把每个 BUS_IN 收敛到频道定义,变化才经节点数据通道(BusBandSyncPacket)下发,绝不走整图推送 / After a definition change, other blocks' BUS_IN lists never refreshed (reopening the editor didn't help — the server's own copy was stale). GraphHost now converges every BUS_IN per tick, shipping only real changes over the node-data channel (BusBandSyncPacket), never a whole-graph push |
| 🛡️ 收敛跳过「无已加载发布方」的频道(#15 后续修正)/ Convergence skips channels with no loaded publisher | 缺席不是定义:发布方块区块卸载、服务器重启首 tick 的注册顺序、方块被拆除,都会让频道暂时无主——照常收敛会把 BUS_IN 收敛为空、按索引剪光输入连线并落盘,发布方回归后频段恢复而连线永久丢失。现解析为空且 CHANNELS 无该名字条目时整轮跳过、保留原列表;改名到死名仍由改名路径的权威 SET_BANDS 清空(#11 语义不变)/ Absence is not a definition: an unloaded publisher chunk, a restart's registration order or a broken block leaves the channel momentarily ownerless — converging then emptied the BUS_IN, pruned every input wire by index and persisted the loss; the bands returned but the wires never did. The pass now skips channels whose name resolves empty with no CHANNELS entry and keeps the list; renaming onto a dead name is still emptied by the rename path's authoritative SET_BANDS (#11 semantics unchanged) |
| 🧬 接替的 BUS_OUT 不再带着别人的频段图上线(#16)/ A successor BUS_OUT no longer comes online with someone else's bands | 同名对齐路径(GraphBusEditor.syncBusBands)只检查了来源、没检查目标:拥有者的频段图被复制进冲突 BUS_OUT,拥有者被删后接替者带着别人的图上线。现来源与目标都过资格检查 / The same-name alignment path checked the source but not the target: the owner's band graph was copied into the conflicted BUS_OUT, and when the owner was deleted the successor came online carrying it. Source and target are now both eligibility-checked |
| 🧹 改名链路收尾(审查跟进)/ Rename-path cleanups (review follow-up) | ① BUS_IN 改名只在频段真的变化时才产生权威 SET_BANDS(相同值不再白付版本号 bump、日志与全员广播);② 改名与新频段经合并版全量同步(40 tick 宽限)带给非编辑者客户端——此前该通道仅 Monitor 宿主存在,其余宿主的非编辑者会过期到下次整图同步;③ PRIVATE 名框不再逐键按客户端本地 BAND_REGISTRY 重写频段——各端自行推导模式的最后一处残留,PRIVATE 节点本无频段引脚 / ① the authoritative SET_BANDS is emitted only when a rename actually changes the bands (no version bump / log / broadcast for an identical value); ② the rename and its bands reach non-editor clients through the coalesced full sync on every host (only the Monitor had that channel before, and the convergence had no diff left to push); ③ the PRIVATE name box no longer rewrites bands from the client's local registry per keystroke — the last leftover of per-side derivation, on nodes that have no band pins anyway |
🎛️ 新方块:动力传感器 / New Block: Kinetic Gauge (create_schematic_compute:kinetic_gauge)
- 3 轴多状态放置(Create 官方应力表/转速表同款语义):
facing(显示面朝向,恒为水平)+axis_along_first;贴着带轴的面放置时自动对齐轴。放置朝向对官方表有一处有意偏离:官方表把facing取成点击面,贴地/贴顶时点击面是竖直的,只剩axis_along_first一个自由度 —— 2 个状态换不出 4 个偏航角,屏幕只能朝西或朝北(2026-09-13 实测报告);故贴地/贴顶改为"显示面水平正对玩家"(四向可选),代价是贴顶安装时斜板朝上翘进天花板。贴墙仍保持官方语义(显示面 = 点击面)。回归测试KineticGaugePlacementTest。扳手:点击轴端面或显示面时,面板绕轴 90° 循环(轴与连接不动,即机械动力对轴端旋转的标准 90° 循环);点击其余两个侧面则整表刚性旋转一步(轴绕点击轴换向、显示随动,同可编程变速器的换轴);潜行拆除走官方默认;自身沿旋转轴贯通传轴。 3-axis multi-state placement (Create gauge semantics):facing(display direction, always horizontal) +axis_along_first; auto-aligns against shaft-bearing faces. One intentional deviation from the official gauge: it takesfacingfrom the clicked face, and a floor/ceiling click is vertical — leaving onlyaxis_along_first, so two states cannot encode four yaws and the screen could only face west or north (in-game report, 2026-09-13). Floor/ceiling placement therefore points the display horizontally at the player (all four directions selectable); the cost is that a ceiling-mounted gauge tilts its panel up into the ceiling. Wall placement keeps the official semantics (display = clicked face). Regression test:KineticGaugePlacementTest. Wrench rotation: the shaft end face and the display face cycle the panel 90° around the shaft (the shaft and its connections never move — Create's standard 90° end-face rotation); the two remaining side faces rigidly rotate the whole gauge one step (the shaft pivots onto the clicked axis and the display follows — same as the transmission's axis cycling). Deliberately NOT Create's default for this family ("click the display face = cycleaxis_along_first"), which would flip the rotation axis between horizontal and vertical, jump to the_shaft_yvariant and disconnect the gauge from its shaft. Sneak-dismantle keeps the official default; the block passes rotation through along its axis. - 模型双变体:基础变体(用户手工建模,讲台式屏幕法线上仰 45°,传动轴沿水平方向)覆盖 8 个水平轴状态;
_shaft_y变体(机架滚转 + 西面竖直平板屏)覆盖 4 个竖直轴状态——数学上单一网格无法同时覆盖(屏幕法线⊥轴是旋转不变量),竖直轴状态的屏幕由 BER 复刻 blockstate 旋转绘制,文字永远直立可读。 Two model variants: the base (hand-made lectern screen tilted 45° up) covers the 8 horizontal-shaft states;_shaft_y(rolled frame + flat west panel) covers the 4 vertical-shaft states — a single mesh provably cannot (screen normal ⊥ shaft is rotation-invariant). The BER replays the blockstate rotation, so text is always upright. - 蓝屏显示(与全息显示器同机制):图里有 DATA/TEXT 节点 → 逐行显示它们(服务端求值快照权威);否则显示内置读数——转速数字 + 应力比例条(绿→黄→红,超载闪烁,对齐 Create 的 1.125 约定)+ 百分比。全部自发光。 Blue-screen display (same mechanism as the holographic monitor): DATA/TEXT nodes when present (server eval snapshot); otherwise the built-in readout — speed digits + stress bar (green→yellow→red, overload blink aligned with Create's 1.125 convention) + percentage. Fully emissive.
- 读数自适应排版:内置读数只使用面板未被边框遮挡的窗口(脚本从模型几何推导),窄竖屏把标签与数值上下堆叠、进度条为百分比预留空间;文字/数字比例对齐全息显示器(
GeometryConstants.FONT_BLOCK_SCALE,约 0.24 模型单位/像素)。转速或应力变化时主动同步读数(Create 默认只在转速变化时同步),无需重开界面即可刷新。 Adaptive readout layout: the built-in readout stays inside the panel's bezel-unoccluded window (derived from model geometry by script); on the narrow vertical panel the label stacks above the digits and the bar reserves room for the percentage; glyph scale matches the holographic monitor (GeometryConstants.FONT_BLOCK_SCALE, ≈0.24 model units/px). The readout is pushed when speed or stress changes (Create by default only syncs on speed changes), so it live-updates without reopening the UI. - 传动轴绘制:BER 用共享的
KineticShaftRenderer按AnimationTickHolder相位绘制前后两段轴,转速/相位与相邻的 Create 轴一致。 Shaft rendering: the BER draws the front and rear shaft segments through the sharedKineticShaftRendererusing theAnimationTickHolderphase, matching neighbouring Create shafts in speed and phase.
📊 新节点:动力网络读数 / New Nodes: Kinetic Network Readings
- STRESS(应力状态):0 入 4 出——占比(0-1,超载 >1)、已用(SU)、未用(0-1)、剩余(SU);无网络/零容量全 0。 STRESS: 0-in/4-out — ratio (0-1, >1 overloaded), used (SU), unused (0-1), left (SU); all 0 offline.
- RPM(转速):0 入 1 出——网络转速(RPM 带符号,过载/无动力为 0)。 RPM: 0-in/1-out — network speed (signed RPM, 0 when unpowered/overloaded).
- 经新宿主注入视图
KineticNetworkView读取(求值器保持纯净),ENCAPSULATION 子图求值器同 propagate;动力传感器/可编程变速器/数控齿轮箱三个动力宿主的图均可使用(新增「动力读数」分类)。 Read through the new host-injectedKineticNetworkView(evaluator stays pure), propagated into ENCAPSULATION sub-evaluators; available in all three kinetic hosts (new "Kinetic Readings" category).
🧪 质量与接入 / Quality & Integration
- 新增
KineticNodesEvalTest(视图注入、无注入零退化、封装传播、超载/零容量守卫,6 用例);全仓 421 测试通过。 AddedKineticNodesEvalTest(6 cases: injection, zero degradation, encapsulation propagation, overload/zero-capacity guards); all 421 tests pass. - 模型流水线入库:手工 Blockbench 工程放在
assets-src/kinetic_gauge/(基础变体 + 竖直变体及各自贴图),由tools/gen_gauge_assets.py生成并校验方块模型/贴图/方块状态;校验项含命名契约(必须有screen元素、bezel*建议)、元素旋转后的包围盒、贴图覆盖率与屏幕面未遮挡跨度,--check模式可随时复验。 Model pipeline in-repo: the hand-made Blockbench projects live inassets-src/kinetic_gauge/(both variants and their own textures) andtools/gen_gauge_assets.pygenerates and validates the block models, textures and blockstate; checks cover the naming contract (ascreenelement is required,bezel*recommended), rotation-aware element bounds, texture coverage and the screen face's unoccluded span —--checkre-verifies at any time. - 便携终端接入修复:终端对未登记路由的方块(如刚放置、路由表尚未命中的新设备)执行"编辑"时不再抛空指针崩溃,本方块已在便携终端设备表登记(
TerminalRoutingTest覆盖)。 Portable terminal routing fix: "Edit" on a block the terminal has no route for (e.g. a freshly placed device not yet matched by the route table) no longer crashes with a null pointer, and this block is registered in the terminal's device table (TerminalRoutingTestcovers it). - 右键(非扳手、非轴端面)打开图编辑器;护目镜悬停显示转速/应力读数;创造标签页、战利品表、配方(黄铜外壳+轴+铁)、Create 蓝图 SafeNbt 全套接入。 Right-click (non-wrench, non-axis face) opens the graph editor; goggles show live readings; creative tab, loot table, recipe (brass casing + shafts + iron) and Create schematic SafeNbt all wired.
Optional dependencies
Any compatible version
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:1bUvJALH:QdJhBxdb"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:1bUvJALH:QdJhBxdb"
}

