Glow (Carvable) —— 内部基类,游戏内无同名方块
⚠️ 已订正(重要):原文把
BlockCarvableGlow描述成一个名为 “Glow” 的 可雕刻发光方块。没有任何方块以 “glow” 之类的名字注册。BlockCarvableGlow是一个被当作基类复用的构造器类(无参构造器BlockCarvableGlow(String)), 全仓库只有 3 处 实例化,且实例化后立刻被转型为普通BlockCarvable, 用各自的业务名注册进三个互不相同的变体组。
三处真实实例化
| 实例化位置 | 局部变量 | 注册名 | 变体组 | 证据 |
|---|---|---|---|---|
Features.java:1317 |
circuits |
chisel:futuraCircuit |
futura |
:1329、:1330 |
Features.java:1817 |
hexPlating |
chisel:hexPlating |
hexPlating |
:1825 |
Features.java:1828 |
hexLargePlating |
chisel:hexLargePlating |
hexLargePlating |
:1840 |
三处用的都是单参构造器 BlockCarvableGlow(String glowTexture),
只有这个构造器会 setLightLevel(0.5f)(BlockCarvableGlow.java:22);
另外两个带 Material 的构造器(:25、:30)不设置亮度。
类基本信息
| 属性 | 值 | 证据 |
|---|---|---|
| 父类 | BlockCarvableColor |
BlockCarvableGlow.java:12 |
| 材质 | 三处实例均为无参 super(),走 BlockCarvableColor 默认材质 |
:20-23 |
| 亮度 | 0.5F(仅单参构造器) | :22 |
| 渲染 ID | Chisel.renderGlowId |
:54-56 |
| 注册名 | 无独立注册名 | — |
发光纹理机制
- 字段
glowTexturePath保存纹理路径(:16) registerBlockIcons额外注册Chisel.MOD_ID + ":" + glowTexturePath(:35-38)getGlowTexture()返回该 IIcon(:50-52)
⚠️ 源码缺陷:
hasSubmapManager()的返回值写反了 ——return submapManagerBase == null;(BlockCarvableGlow.java:40-42)。 方法名意为"是否有 submap 管理器",但返回null时为true。 而getSubmapManager()又写成return hasSubmapManager() ? submapManagerBase : null;(:44-46), 于是当确实持有 submapManagerBase 时返回 null,逻辑完全颠倒。 本条目描述的三处实例均未传SubmapManagerBase,所以实际不触发。
原文其他订正
原文"可选 SubmapManagerBase 用于高级纹理变体管理"——该能力因上述缺陷
实际不可用,已在缺陷段说明。