火星地表方块总表(14 个)

PlanetBlocks.java 的 /* MARS blocks */ 分节注册了 14 个火星地表方块 (PlanetBlocks.java:75-169),是 PlanetBlocks 里最大的一组。 类初始化由 core/CommonProxy.java:88 的 PlanetBlocks.init() 触发。

注册名与源码

注册名 显示名 方块类 硬度 采集工具/等级 掉落 源码行
galaxia:mars_regolith Martian Regolith BlockPlanetGalaxiaFalling 0.5F 锹 / 0 自身 PlanetBlocks.java:75
galaxia:mars_andesite Martian Andesite BlockPlanetGalaxiaGeneral 1.5F 镐 / 1 自身 PlanetBlocks.java:83
galaxia:mars_basalt Martian Basalt BlockPlanetGalaxiaGeneral 1.5F 镐 / 1 自身 PlanetBlocks.java:89
galaxia:mars_snow Martian Snow BlockPlanetGalaxiaFalling 0.1F 锹 / 0 自身 PlanetBlocks.java:95
galaxia:mars_anorthosite Martian Anorthosite BlockPlanetGalaxiaGeneral 1.5F 镐 / 1 Martian Dust PlanetBlocks.java:103
galaxia:mars_tektite Martian Tektite BlockPlanetGalaxiaGeneral 2.0F 镐 / 1 Martian Tektite Shard PlanetBlocks.java:109
galaxia:mars_ice Martian Ice BlockPlanetTransparentGalaxia 0.5F 镐 / 1 Martian Ice Cubes ×2-4 PlanetBlocks.java:115
galaxia:mars_dense_ice Martian Dense Ice BlockPlanetTransparentGalaxia 0.5F 镐 / 1 Martian Ice Cubes ×4-7 PlanetBlocks.java:123
galaxia:mars_magma Martian Magma BlockPlanetGalaxiaGeneral 0.5F 镐 / 0 自身 PlanetBlocks.java:131
galaxia:mars_sand Martian Sand BlockPlanetGalaxiaFalling 0.5F 锹 / 0 自身 PlanetBlocks.java:137
galaxia:mars_sandstone Martian Sandstone BlockPlanetGalaxiaGeneral 0.8F 镐 / 0 自身 PlanetBlocks.java:145
galaxia:mars_tuff Martian Tuff BlockPlanetGalaxiaGeneral 1.5F 镐 / 1 自身 PlanetBlocks.java:151
galaxia:mars_peridotite Martian Peridotite BlockPlanetGalaxiaGeneral 2.7F 镐 / 1 自身 PlanetBlocks.java:157
galaxia:mars_rhyolite Martian Rhyolite BlockPlanetGalaxiaFalling 0.7F 锹 / 0 自身 PlanetBlocks.java:163

火星组是调用 .shovel() 的行星组:4 个方块用锹 (mars_regolith / mars_snow / mars_sand / mars_rhyolite), 其余 10 个默认镐。Tenebrae 组另有 5 个用锹(见该表)。

共同属性

属性 值
材质 Material.rock(三个 Planet 方块类构造器)
TileEntity 无
纹理路径 galaxia:mars/<注册名>
爆炸抗性 源码未定义 —— PlanetBlockBuilder 无 resistance setter,未调用 setResistance
滑度 字段存在但从未生效(PlanetBlockBuilder.java:22,无读取方)
创造模式页签 Galaxia.creativeTab
是否多方块一部分 否
合成配方 无

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

不需要。 三个 Planet 方块类都没有覆写 canPlaceBlockAt,也没有维度判定。 这 14 个方块在主世界和任何维度都能放置。「火星地表方块」指世界生成会铺它们, 不是「只能在火星放」。

在 GTNH 里的实际用途

火星是 Galaxia 三个真正接了世界生成的维度之一 (CelestialRegistry.java:427 的 .worldGeneration(Mars::configureWorldProvider))。 但 14 个方块里只有 5 个被世界生成引用,9 个完全没有:

方块 火星世界生成中的角色 源码
mars_regolith 3 个生物群系的 topBlock(Mars Craters / Mars Mountains / Mars Flatlands) Mars.java:47、:63、:83
mars_rhyolite Mars Basins 生物群系的 topBlock Mars.java:99
mars_andesite 所有生物群系 height > 32 的填充岩 Mars.java:108、:116-120(返回点 :119)
mars_anorthosite 所有生物群系 height <= 32(深层)的填充岩 Mars.java:109、:116-118
mars_snow 全部生物群系的 snowBlock,雪线高度 144 Mars.java:121
其余 9 个 无任何世界生成引用 —

未接入世界生成的 9 个: mars_basalt、mars_tektite、mars_ice、mars_dense_ice、mars_magma、 mars_sand、mars_sandstone、mars_tuff、mars_peridotite。

它们在 Galaxia 源码里除注册与创造模式页签外零引用 —— 没有配方、没有机器消耗、没有掉落表、没有多方块。 mars_ice / mars_dense_ice 虽然写了 .drop(...) 和 .dropAmount(...), 但产出它们的方块本身不会出现在世界里,只能靠 /give 或放置后挖掘获得。

掉落

方块 掉落 数量
mars_anorthosite Martian Dust 1(dropAmount 未设,取 min=max=1)
mars_tektite Martian Tektite Shard 1
mars_ice Martian Ice Cubes .dropAmount(2, 4)
mars_dense_ice Martian Ice Cubes .dropAmount(4, 7)
其余 10 个 自身 1

掉落数量有源码缺陷:BlockPlanetGalaxiaGeneral.quantityDropped 写成 random.nextInt() % (maxDrop - minDrop + 1) + minDrop (BlockPlanetGalaxiaGeneral.java:60)。nextInt() 可能为负,Java 的 % 向零截断会保留符号,所以 mars_ice 的实际区间是 0-4(不是 2-4), mars_dense_ice 是 1-7(不是 4-7)。mars_ice 可能一颗都不掉。 另:该方法完全忽略 fortune 参数,所以时运对掉率没有任何影响。

透明方块的渲染

mars_ice / mars_dense_ice 是本组仅有的两个 BlockPlanetTransparentGalaxia(PlanetBlockBuilder.java:104-113), 渲染 pass = 1、renderAsNormalBlock() = false、非不透明立方体、 同质相邻面不渲染。它们的材质仍是 Material.rock, .transparent() 唯一的副作用是把 isFalling 强制置回 false (PlanetBlockBuilder.java:50-54)。

相关条目

同属 PlanetBlocks 地表方块:

火星掉落物: