耐久度 Overlay(Durability Overlay)

基本信息

属性 值
实现类 com.caedis.duradisplay.overlay.OverlayDurability
配置分类 durability
默认开启 是
默认显示样式 Text
默认数字格式 PERCENT
触发的物品注册器 @Overlay(自动注册到 OverlayInfo)

功能

DuraDisplay 的默认 overlay,对所有可损坏物品显示其剩余耐久度。激活时自动关闭 GregTech 自带的耐久度条和 EnderIO 自带的耐久度条,避免双重显示。

具体行为由 OverlayDurability.handleDefault 处理:先检查 item.isDamageable(),再把 MaxDamage - getDamage(stack) 作为当前耐久。当 OverlayGadgets 的 allowlist 命中(即"小工具"类物品)时,本 overlay 自动跳过,避免与 Gadgets 重复渲染。

第三方 mod 集成

Mod 处理类 行为
GregTech gregtech.api.items.MetaBaseItem 读 GT.ToolStats NBT:Damage / MaxDamage
GregTech gregtech.api.items.ItemRadioactiveCell 用 getDamageOfStack / getMaxDamageEx
Tinkers Construct tconstruct.library.tools.ToolCore 读 InfiTool NBT;若 Unbreaking >= 10(红石 I/II/III)则交由原版 bar 处理
Tinkers Construct tconstruct.library.weaponry.AmmoItem 显式 null(让本 overlay 不处理 AmmoItem,由原版条带显示)
AE2 appeng.items.tools.powered.powersink.AEBasePoweredItem 显式 null(充电物品交给 OverlayCharge)
IC2 ic2.api.item.IElectricItem 显式 null(电物品由 Charge 处理)
IC2 ic2.core.item.armor.ItemArmorFluidTank 用 getCharge / getCapacity(电水袋护甲当成 charge 显示)
IC2 ic2.api.item.ICustomDamageItem 用 getCustomDamage / getMaxCustomDamage
IC2 ic2.core.item.tool.ItemToolPainter 显式 null(喷漆器是 Gadgets)
Botania vazkii.botania.common.item.brew.ItemBrewBase 显式 null(brew 交给 PotionBrew)
Alchemical Wizardry WayofTime.alchemicalWizardry.common.items.potion.AlchemyFlask 显式 null
Alchemical Wizardry WayofTime.alchemicalWizardry.common.items.ScribeTool 显式 null
BuildCraft buildcraft.core.ItemPaintbrush 显式 null(油漆刷交给 Gadgets)
Thaumcraft thaumcraft.api.IScribeTools 显式 null
原版 net.minecraft.item.Item handleDefault 默认实现

渲染开关

启用本 overlay 时,调用 ModSelfDrawnBar.changeDurabilitybar(false) 关闭 GT/EIO 的耐久度条;关闭或本 mod 被禁用时调 restoreDurabilitybar() 还原。

相关条目