pages235/src/resourcesManager.ts

24 lines
947 B
TypeScript

import { Item } from 'prismarine-item'
import { ItemSpecificContextProperties } from 'renderer/viewer/lib/basePlayerState'
import { getItemDefinition } from 'mc-assets/dist/itemDefinitions'
import { playerState } from './mineflayer/playerState'
import { GeneralInputItem, getItemMetadata } from './mineflayer/items'
export const getItemModelName = (item: GeneralInputItem, specificProps: ItemSpecificContextProperties) => {
let itemModelName = item.name
const { customModel } = getItemMetadata(item)
if (customModel) {
itemModelName = customModel
}
const itemSelector = playerState.getItemSelector({
...specificProps
})
const modelFromDef = getItemDefinition(viewer.world.itemsDefinitionsStore, {
name: itemModelName,
version: viewer.world.texturesVersion!,
properties: itemSelector
})?.model
const model = (modelFromDef === 'minecraft:special' ? undefined : modelFromDef) ?? itemModelName
return model
}