尖刺(Spikes)
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | utilitiesinexcess:wood_spike / iron_spike / gold_spike / diamond_spike |
| 基类 | com.fouristhenumber.utilitiesinexcess.common.blocks.BlockSpike(extends Block implements IWailaDataProvider) |
| 材质枚举 | BlockSpike.SpikeType.{WOOD, IRON, GOLD, DIAMOND} |
| 注册方块数 | 4 |
| ItemBlock | BlockSpike.ItemSpike(ModBlocks.java:164-167) |
| 共享 TileEntity | TileEntitySpike(ModTileEntities.java:51,注册名 TileEntitySpikeUIE) |
功能
4 个尖刺共用同一个类,只靠构造时传入的 SpikeType 区分伤害、耐久与掉落。BlockSpike 同时是 Waila 数据提供者,tooltip 会在玩家悬停时显示当前累计伤害/耐久状态。
四者按材料强弱排序:木 < 铁 < 金 < 钻石。BlockSpike 统一在 CommonProxy 的 preInit 阶段被 setCreativeTab(uieTab) 标记。
数值
| 注册名 | 枚举常量 | SpikeType | 对应材料方块 | 伤害 | 开关 |
|---|---|---|---|---|---|
wood_spike |
SPIKE_WOOD |
WOOD |
Blocks.planks |
0.5 | BlockConfig.spikes.enableWoodenSpike |
iron_spike |
SPIKE_IRON |
IRON |
Blocks.iron_block |
6.0 | BlockConfig.spikes.enableIronSpike |
gold_spike |
SPIKE_GOLD |
GOLD |
Blocks.gold_block |
4.0 | BlockConfig.spikes.enableGoldSpike |
diamond_spike |
SPIKE_DIAMOND |
DIAMOND |
Blocks.diamond_block |
7.0 | BlockConfig.spikes.enableDiamondSpike |
注册来源:ModBlocks.java:164-167;SpikeType 枚举的 material 与 damage 字段见 BlockSpike.java 的 SpikeType 定义。四个开关都在 BlockConfig.Spikes 内部类中,全部默认 true(BlockConfig.java:134-155)。
注意伤害顺序并非直觉上的 金 < 铁:金(4.0)低于铁(6.0),最高是钻石(7.0)。
ItemSpike 会把同一个 damage 值同时作为物品的攻击力属性写入(getAttributeModifiers 中 SharedMonsterAttributes.attackDamage),并设 getItemEnchantability() 返回 10、setMaxDamage(0)(BlockSpike.java 的 ItemSpike 内部类)——因此尖刺可以被附魔。
交互
| 触发 | 行为 |
|---|---|
| 玩家/生物接触 | 造成接触伤害,伤害由 SpikeType 决定 |
| 破坏 | 掉落对应材料 |
| Waila 悬停 | 显示尖刺状态(IWailaDataProvider) |
| TileEntity | 4 种尖刺共用 TileEntitySpike;注意 ModTileEntities.init() 无条件注册它,不随尖刺开关变化(ModTileEntities.java:97-103, 109-111) |
合成配方
由 RecipeConfig.enableSpikeRecipes 统一控制(默认 true),配方在 RecipeLoader.loadSpikeRecipes() 中注册。
相关条目
- TileEntity 注册总表 -
TileEntitySpike的注册细节 - 方块注册总表 - 4 个尖刺在完整表中的位置
- 配置总览 -
BlockConfig.spikes的 4 个开关 - 兼容模组 - Waila 集成方式