TradingUtilities.ts 1.5 Ko
Télécharger le fichier
import { AdvancedMap, GetSessionDataManager, ItemDataStructure } from '@octane/renderer';
import { FurniCategory } from './FurniCategory';
import { FurnitureItem } from './FurnitureItem';
import { createGroupItem } from './FurnitureUtilities';
import { GroupItem } from './GroupItem';
const isExternalImage = (spriteId: number) => GetSessionDataManager().getWallItemData(spriteId)?.isExternalImage || false;
export const parseTradeItems = (items: ItemDataStructure[]) => {
const existingItems = new AdvancedMap<string, GroupItem>();
const totalItems = items.length;
if (totalItems) {
for (const item of items) {
const spriteId = item.spriteId;
const category = item.category;
let name = item.furniType + spriteId;
if (!item.isGroupable || isExternalImage(spriteId)) {
name = 'itemid' + item.itemId;
}
if (item.category === FurniCategory.POSTER) {
name = item.itemId + 'poster' + item.stuffData.getLegacyString();
} else if (item.category === FurniCategory.GUILD_FURNI) {
name = '';
}
let groupItem = item.isGroupable && !isExternalImage(item.spriteId) ? existingItems.getValue(name) : null;
if (!groupItem) {
groupItem = createGroupItem(spriteId, category, item.stuffData);
existingItems.add(name, groupItem);
}
groupItem.push(new FurnitureItem(item));
}
}
return existingItems;
};
