Refined Firestone Effect
基本信息
| 属性 | 值 |
|---|---|
| 来源物品 | ItemFirestoneRefined(railcraft:firestone_refined) |
| 分类 | 精炼(Refined)Firestone |
| 耐久上限 | 5000(CHARGES) |
| 燃烧值 | 250(HEAT) |
| 可堆叠 | 否 |
物品特性
耐久消耗机制
精炼 Firestone 有 5000 点耐久,每次使用消耗 1 点。
public static final int CHARGES = 5000;
public static final int HEAT = 250;
损坏几率
每次 getContainerItem 调用时,有 damageLevel * 0.0001 的几率变为裂纹版本(ItemFirestoneCracked)。
double damageLevel = (double) stack.getItemDamage() / (double) stack.getMaxDamage();
if (MiscTools.RANDOM.nextDouble() < damageLevel * 0.0001) {
newStack = ItemFirestoneCracked.getItemEmpty();
}
使用效果
onItemUse(右击方块)
当右击石头(Stone)方块时:
- 熔炉烧炼该方块(不消耗燃料)
- 将方块转换为烧炼产物
- 消耗 1 点耐久
当右击空气方块时:
- 在目标位置生成火(Fire)
- 消耗 1 点耐久
itemInteractionForEntity(右击实体)
对非火焰免疫的生物:
- 点燃目标生物(5 秒)
- 在目标脚下生成火
- 消耗 1 点耐久
@Override
public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer playerIn, EntityLivingBase target, EnumHand hand) {
if (!target.isImmuneToFire()) {
target.setFire(5);
stack.damageItem(1, playerIn);
// ...
return true;
}
return false;
}
燃料价值
作为熔炉燃料时,燃烧值 = 250。
@Override
public final int getItemBurnTime(ItemStack stack) {
if (stack.getItemDamage() < stack.getMaxDamage() || InvTools.isWildcard(stack))
return heat; // 250
return 0;
}
容器物品
精炼 Firestone 可作为容器物品(hasContainerItem 返回 true),每次 crafting 使用会:
- 消耗 1 点耐久
- 有极低概率变成裂纹 Firestone
源码依据
ItemFirestoneRefined.java- 精炼 Firestone 物品类