尖刺(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() 中注册。

相关条目