From f66863a9fec4ff9b6da7fa80878035cafa4bdc6d Mon Sep 17 00:00:00 2001 From: MCJ <1346433660@qq.com> Date: Wed, 24 Dec 2025 15:19:28 +0800 Subject: [PATCH] Fix item image rendering failure in the game UI caused by item renaming in the new version of NMMO env --- assets/scripts/ui/UIMarket.ts | 6 ++-- assets/scripts/utils/ResourcesHelper.ts | 42 +++++++++++++++++++++---- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/assets/scripts/ui/UIMarket.ts b/assets/scripts/ui/UIMarket.ts index 694832e0f..0f3d14386 100644 --- a/assets/scripts/ui/UIMarket.ts +++ b/assets/scripts/ui/UIMarket.ts @@ -4,6 +4,7 @@ import { Market } from '../components/Market'; import { MarketDB, MarketItemDB } from '../data/Packet'; import { ItemName } from './UIItem'; import { MarketItemData, UIMarketItem } from './UIMarketItem'; +import { ResourcesHelper } from '../utils/ResourcesHelper'; const { ccclass, property } = _decorator; /** @@ -40,12 +41,13 @@ export class UIMarket extends Component { let itemDic = {}; for (let key in data) { let arr = key.split("_"); - let name = arr[0]; + let rawName = arr[0]; + let name = ResourcesHelper.NormalizeItemName(rawName); let level: number = + arr[1]; let price: number = data[key].price; if (itemDic[name] == null) { itemDic[name] = new MarketItemData(); - itemDic[name].name = name; + itemDic[name].name = rawName; itemDic[name].priceDic = {}; } itemDic[name].priceDic[level] = price; diff --git a/assets/scripts/utils/ResourcesHelper.ts b/assets/scripts/utils/ResourcesHelper.ts index 641d2a296..28852d37f 100644 --- a/assets/scripts/utils/ResourcesHelper.ts +++ b/assets/scripts/utils/ResourcesHelper.ts @@ -76,6 +76,30 @@ export class ResourcesHelper { public static ItemSprteDic: { [name: string]: SpriteFrame }; + private static ItemNameAlias: { [key: string]: string } = { + Chisel: "Arcane", + Bottom: "Bottom", + Bow:"Bow", + Axe: "Chisel", + Gloves: "Gloves", + Gold:"Gold", + Hat: "Hat", + Pickaxe: "Pickaxe", + Potion: "Poultice", + Ration: "Ration", + Rod:"Rod", + Whetstone: "Scrap", + Runes: "Shard", + Arrow: "Shaving", + Spear: "Sword", + Top: "Top", + Wand: "Wand", + }; + + public static NormalizeItemName(name: string): string { + if (!name) return name; + return this.ItemNameAlias[name] || name; + } @@ -319,25 +343,31 @@ export class ResourcesHelper { //---------------------------- item ------------------------ public static GetItemFullPath(name: string): string { - return `${this.ItemIconsPath}icon_item_${name}`; + const normalized = this.NormalizeItemName(name); + return `${this.ItemIconsPath}icon_item_${normalized}`; } public static GetItemIcon(name: string): SpriteFrame { if (this.ItemSprteDic == null) this.ItemSprteDic = {}; - if (this.ItemSprteDic[name] == null) { + const normalized = this.NormalizeItemName(name); - let fullName = this.GetItemFullPath(name); + if (this.ItemSprteDic[normalized] == null) { + + let fullName = this.GetItemFullPath(normalized); let sp = resources.get(fullName + "/spriteFrame"); if (sp != null) { - this.ItemSprteDic[name] = sp; + this.ItemSprteDic[normalized] = sp; } } - return this.ItemSprteDic[name]; + if (name != null && this.ItemSprteDic[name] == null && this.ItemSprteDic[normalized] != null) { + this.ItemSprteDic[name] = this.ItemSprteDic[normalized]; + } + return this.ItemSprteDic[normalized]; } -} \ No newline at end of file +}