红线组

基本信息

属性 值
抽象基类 vazkii.botania.common.block.string.BlockRedString(abstract,extends BlockModContainer<TileRedString> implements ILexiconable)
材质 Material.rock(BlockRedString.java:38)
硬度 2.0(BlockRedString.java:39)
爆炸抗性 10.0(BlockRedString.java:40)
脚步声 soundTypeStone(BlockRedString.java:41)
具体方块 6 个(string/ 目录下 7 个文件中 BlockRedString 本身为抽象类)
TileEntity 7 个,位于 common/block/tile/string/

功能

红线(Red String)是 Botania 对原版红石系统的平行替代品。它不与原版红石导通,但提供一套独立的逻辑方块,用于在纯 Botania 整合包中做条件判断而不受红石影响。

基类 BlockRedString 为所有红线方块提供统一的放置与朝向行为(BlockRedString.java:46-54):

  • 放置时用 BlockPistonBase.determineOrientation(...) 计算朝向并写入 meta(:47-50)
  • rotateBlock 复用原版活塞的旋转逻辑(RotationHelper.rotateVanillaBlock(Blocks.piston, ...),:52-55)
  • 图标区分发送端与侧面:getIcon(side, meta) 在 side == meta 时返回 redStringSender 图标,否则返回侧面图标(:65-68),发送端图标通过 IconHelper.forName(register, "redStringSender") 加载(:60-61)

每个子类通过构造参数 name 传入自己的注册名(BlockRedString.java:42),例如 BlockRedStringComparator.java:21 的 super(LibBlockNames.RED_STRING_COMPARATOR)。

数值

方块类 注册名常量 显示名(lang) TileEntity
BlockRedStringContainer RED_STRING_CONTAINER Red Stringed Container TileRedStringContainer
BlockRedStringDispenser RED_STRING_DISPENSER Red Stringed Dispenser TileRedStringDispenser
BlockRedStringFertilizer RED_STRING_FERTILIZER Red Stringed Nutrifier TileRedStringFertilizer
BlockRedStringComparator RED_STRING_COMPARATOR Red Stringed Comparator TileRedStringComparator
BlockRedStringRelay RED_STRING_RELAY Red Stringed Spoofer TileRedStringRelay
BlockRedStringInterceptor RED_STRING_INTERCEPTOR Red Stringed Interceptor TileRedStringInterceptor

显示名来源:src/main/resources/assets/botania/lang/en_US.lang 的 tile.botania:redString*.name 键,共 6 条,与 6 个具体子类一一对应。TileEntity 类名一一对应 common/block/tile/string/ 下的 6 个同名文件加基类 TileRedString.java。

6 个方块类的注册名来源:BlockRedString.java:42 的 setBlockName(name),各子类构造器以 LibBlockNames.RED_STRING_* 传入。

交互

触发 行为
放置 自动按放置者朝向设置 meta(活塞朝向算法)
旋转 复用原版活塞旋转
渲染 发送端面显示 redStringSender 图标,其余面显示侧面图标
断链 各子类的具体断链条件本次未逐个核实,标记为「无法核实」

相关条目