月面地表方块总表(9 个)

PlanetBlocks.java 的 /* MOON blocks */ 分节注册了 9 个月面地表方块 (PlanetBlocks.java:17-70)。它们由 PlanetBlockBuilder 构造, 类初始化由 core/CommonProxy.java:88 的 PlanetBlocks.init() 触发。

这 9 个方块与 GalaxiaBlocksEnum 里那 30 个 moon_*_bricks 装饰方块 (月面装饰方块总表(30 个))是两套完全不同的东西: 本表的 9 个会被月面维度世界生成真的铺进世界里、可挖可掉; 装饰方块那 30 个零世界生成引用。

注册名与源码

注册名 显示名 方块类 硬度 采集工具/等级 掉落 源码行
galaxia:moon_regolith Lunar Regolith BlockPlanetGalaxiaFalling 1.0F 镐 / 1 自身 PlanetBlocks.java:17
galaxia:moon_magma Lunar Magma BlockPlanetGalaxiaGeneral 0.5F 镐 / 0 自身 PlanetBlocks.java:24
galaxia:moon_gabbro Lunar Gabbro BlockPlanetGalaxiaGeneral 1.5F 镐 / 1 自身 PlanetBlocks.java:30
galaxia:moon_breccia Lunar Breccia BlockPlanetGalaxiaGeneral 1.5F 镐 / 1 自身 PlanetBlocks.java:36
galaxia:moon_basalt Lunar Basalt BlockPlanetGalaxiaGeneral 1.5F 镐 / 1 自身 PlanetBlocks.java:42
galaxia:moon_anorthosite Lunar Anorthosite BlockPlanetGalaxiaGeneral 1.5F 镐 / 1 自身 PlanetBlocks.java:48
galaxia:moon_andesite Lunar Andesite BlockPlanetGalaxiaGeneral 1.5F 镐 / 1 自身 PlanetBlocks.java:54
galaxia:moon_obsidian Lunar Obsidian BlockPlanetGalaxiaGeneral 50.0F 镐 / 3 自身 PlanetBlocks.java:60
galaxia:moon_tektite Lunar Tektite BlockPlanetGalaxiaGeneral 2.0F 镐 / 1 Lunar Tektite Shard PlanetBlocks.java:66

共同属性

属性 值
材质 Material.rock(BlockPlanetGalaxiaGeneral.java:28、BlockPlanetGalaxiaFalling.java:26)
TileEntity 无
纹理路径 galaxia:<注册名前的维度段>/<注册名>(如 galaxia:moon/moon_basalt)
爆炸抗性 源码未定义 —— PlanetBlockBuilder 没有任何 resistance setter,全文未调用 setResistance;抗性落到 vanilla Block 基类默认行为
滑度 字段存在但从未生效 —— PlanetBlockBuilder.java:22 定义 slipperiness = 0.6F,传入构造器后仅赋给字段,三个方块类都没有任何方法读取它
创造模式页签 Galaxia.creativeTab(PlanetBlockBuilder.java:127,注册名与 Block 构造器里重复设置一次)
是否多方块一部分 否
合成配方 无。全 mod 无 addRecipe / 配方 JSON

是否需要特殊环境才能放置

不需要。 三个 Planet 方块类(BlockPlanetGalaxiaGeneral、 BlockPlanetGalaxiaFalling、BlockPlanetTransparentGalaxia)都没有覆写 canPlaceBlockAt,也没有任何维度判定;全 mod 搜索 BlockPlaceEvent / canPlaceBlockAt 只命中 BlockGantry(发射架)与 BlockUpdatable, 与本表无关。

所以这 9 个方块在主世界、太空、月面维度都能正常放置。 「月面地表方块」指的是世界生成会把它们铺在月面, 而不是「只有月面才能放」。

在 GTNH 里的实际用途

月面是 Galaxia 三个真正接了世界生成的维度之一 (CelestialRegistry.java:618 的 .worldGeneration(Moon::configureWorldProvider))。 9 个方块里 8 个被世界生成引用,1 个没有:

方块 月面世界生成中的角色 源码
moon_regolith 陆块生物群系的 topBlock(地表顶层,Moon.java:217);陨石坑的判定条件之一(:227、:288) Moon.java:217、:227、:288
moon_andesite 陆地生物群系 height > 32 的填充岩(:209、:221);地下石笋来源(:237-239);汞泉与晶洞的触发条件(:251、:258) Moon.java:209、:221、:237-239、:251、:258
moon_anorthosite 陆地生物群系 height <= 32(深层)的填充岩(:210、:220);地下石笋来源(:231-234);晶簇触发条件(:244) Moon.java:210、:220、:231-234、:244
moon_basalt 海洋生物群系的 topBlock(:277)与深层填充岩(:269、:281);陆地/海洋海洋填充(:263、:291);陨石坑判定条件(:227、:288) Moon.java:263、:269、:277、:281、:291
moon_gabbro 海洋生物群系 height <= 32 的填充岩(:270、:280) Moon.java:270、:280
moon_magma 海洋裂隙填充(oceanCracks(0.3F, MOON_MAGMA, 4),:292);陨石坑替换方块(:65、:77) Moon.java:65、:77、:292
moon_obsidian 海洋的 oceanFiller 与 seabed(陆块生物群系海洋高度 1,:263;海洋生物群系海平面 56,:291) Moon.java:263、:291
moon_tektite CraterFeature 的 tektite,即陨石坑撞击点替换成的方块(陆地稀有度默认,:226;海洋稀有度 64,:286-287) Moon.java:226、:286-287
moon_breccia 无任何世界生成引用 —— 静态导入列表(Moon.java:3-10)里就没有它,全文 0 命中 —

moon_tektite 的地壳系统值得单说:月面 createLandBiome 挂了一个 GeodeFeature(稀有度 32,高度 16-96,条件是 moon_anorthosite 或 moon_andesite, Moon.java:253-261),但它的 shell / crystal 用的是 vanilla Blocks.glass(:259)和 Blocks.stained_glass(:260),不是 Galaxia 自己的方块。 同一个 createLandBiome 还挂了 CrystalClusterFeature, 晶簇是 GalaxiaBlocksEnum.BLOCK_OF_CINNABAR (Block of Cinnabar(辰砂块),Moon.java:241-246,方块本身在 :245)。

⚠️ 本表的 Moon.java 行号此前整体偏小 1 行(如 moon_regolith 写成 :216、 实为 :217),已按源码逐条订正;表中的角色描述经复核全部正确,未作改动。

掉落

只有 moon_tektite 的掉落不是自身 —— 它掉 Lunar Tektite Shard(PlanetBlocks.java:67)。 其余 8 个 .dropSelf(),掉自身。

moon_regolith 是 BlockFalling(受重力下落),另外 8 个是普通方块。

相关条目

同属 PlanetBlocks 地表方块:

月面其它东西: