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. 熔炉烧炼该方块(不消耗燃料)
  2. 将方块转换为烧炼产物
  3. 消耗 1 点耐久

当右击空气方块时:

  • 在目标位置生成火(Fire)
  • 消耗 1 点耐久

itemInteractionForEntity(右击实体)

对非火焰免疫的生物:

  1. 点燃目标生物(5 秒)
  2. 在目标脚下生成火
  3. 消耗 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 物品类