Sponge

基本信息

属性 值
注册名 VillageNames:sponge(单个注册名 + 2 个 metadata)
类 astrotibs.villagenames.prismarine.block.BlockSpongeVN(继承 BlockGeneric)
注册条件 GeneralConfig.addSponges == true
注册处 block/ModBlocksVN.java:67
材质 Material.sponge
硬度 0.6(prismarine/block/BlockSpongeVN.java:27)
脚步声 Block.soundTypeGrass(草方块脚步声,prismarine/block/BlockSpongeVN.java:28)
创造标签 CreativeTabs.tabBlock

功能

Sponge(海绵)是 1.8 海洋更新的方块,本 mod 移植版本引入了原版 1.7.10 不具备的"吸水性"——这是它与原版海绵的核心区别。

一个注册名下有 2 个变体(prismarine/block/BlockSpongeVN.java:25,构造参数为 "dry", "wet"):

metadata 变体 显示名 语言键
0 dry Sponge tile.sponge.dry.name
1 wet Wet Sponge tile.sponge.wet.name

另有 tile.sponge.name = Inert Sponge(en_US.lang:114-116),对应不吸水的原版 1.7.10 海绵行为——本 mod 通过物品字典互转让玩家可自由切换。

吸水行为

触发 行为
放置于主世界 调用 tryAbsorb(),湿海绵(meta 1) 吸水后变为干海绵(meta 0)
放置于下界 直接变为干海绵(meta 0),并播放 random.fizz 音效(音量 0.5,音高 2.6 + (rand-0.5)*0.8)
邻接方块变化 调用 tryAbsorb() 重新尝试吸水
干海绵吸水 仅 meta 1 执行 tryAbsorb;meta 0 不吸水

来源:prismarine/block/BlockSpongeVN.java:33-58。下界判定为 world.provider.isHellWorld(:35)。

源码中"下界放置时冒烟粒子"的代码被注释掉了,作者注明 "doesn't seem to be working"(prismarine/block/BlockSpongeVN.java:45-49),因此放置于下界只有音效、无烟雾粒子。

熔炼与互转

方向 配方 来源
湿海绵 → 干海绵 熔炼,经验 0.0 init/Recipes.java:85
本 mod 干海绵 → 原版海绵 无序合成 init/Recipes.java:87
原版海绵 → 本 mod 干海绵 无序合成 init/Recipes.java:88

即干海绵与原版海绵可 1:1 无损互转,湿海绵可由熔炼干海绵得到。全部受 GeneralConfig.addSponges 控制(init/Recipes.java:84)。

相关条目