耐久度 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() 还原。
相关条目
- 耐久度条渲染注入 - 入口:
MixinRenderItem把RenderItem.renderItemOverlayIntoGUI的Item.showDurabilityBar调用重定向到 DuraDisplay - 小工具 Overlay - 接管 GT 打火机/喷漆、IC2 油漆刷、低耐久度工具等
- 充能 Overlay - 接管所有电物品的能量条
- Mod 自带条带切换 - 关闭/恢复 GT 与 EIO 自带条带的实现
- 配色与样式 - 5 种
ColorType与 3 种Style(Text/Bar/VerticalBar) - AE2 物品渲染钩子 - AE2 GUI 物品的同等覆盖