import { CommonAssetType } from "@/native/AssetBinds";

const LOOKUP_CAPITALIZED: Record<CommonAssetType, string> = {
  [CommonAssetType.PHYS_PRESET]: "Phys preset",
  [CommonAssetType.XANIM]: "XAnim",
  [CommonAssetType.XMODEL]: "XModel",
  [CommonAssetType.MATERIAL]: "Material",
  [CommonAssetType.TECHNIQUE_SET]: "Technique set",
  [CommonAssetType.IMAGE]: "Image",
  [CommonAssetType.SOUND]: "Sound",
  [CommonAssetType.SOUND_CURVE]: "Sound curve",
  [CommonAssetType.LOADED_SOUND]: "Loaded sound",
  [CommonAssetType.CLIP_MAP]: "Clip map",
  [CommonAssetType.COM_WORLD]: "Com world",
  [CommonAssetType.GAME_WORLD_SP]: "Game world SP",
  [CommonAssetType.GAME_WORLD_MP]: "Game world MP",
  [CommonAssetType.MAP_ENTS]: "Map ents",
  [CommonAssetType.GFX_WORLD]: "Gfx world",
  [CommonAssetType.LIGHT_DEF]: "Light def",
  [CommonAssetType.UI_MAP]: "UI map",
  [CommonAssetType.FONT]: "Font",
  [CommonAssetType.MENU_LIST]: "Menu list",
  [CommonAssetType.MENU]: "Menu",
  [CommonAssetType.LOCALIZE_ENTRY]: "Localize entry",
  [CommonAssetType.WEAPON]: "Weapon",
  [CommonAssetType.SOUND_DRIVER_GLOBALS]: "Sound driver globals",
  [CommonAssetType.FX]: "FX",
  [CommonAssetType.IMPACT_FX]: "Impact FX",
  [CommonAssetType.AI_TYPE]: "AI type",
  [CommonAssetType.MP_TYPE]: "MP type",
  [CommonAssetType.CHARACTER]: "Character",
  [CommonAssetType.XMODEL_ALIAS]: "XModel alias",
  [CommonAssetType.RAW_FILE]: "Raw file",
  [CommonAssetType.STRING_TABLE]: "String table",
  [CommonAssetType.XMODEL_PIECES]: "XModel pieces",
  [CommonAssetType.PHYS_COLL_MAP]: "Phys coll map",
  [CommonAssetType.XMODEL_SURFS]: "XModel surfs",
  [CommonAssetType.PIXEL_SHADER]: "Pixel shader",
  [CommonAssetType.VERTEX_SHADER]: "Vertex shader",
  [CommonAssetType.VERTEX_DECL]: "Vertex decl",
  [CommonAssetType.FX_WORLD]: "FX world",
  [CommonAssetType.LEADERBOARD]: "Leaderboard",
  [CommonAssetType.STRUCTURED_DATA_DEF]: "Structured data def",
  [CommonAssetType.TRACER]: "Tracer",
  [CommonAssetType.VEHICLE]: "Vehicle",
  [CommonAssetType.ADDON_MAP_ENTS]: "Addon map ents",
  [CommonAssetType.GLASS_WORLD]: "Glass world",
  [CommonAssetType.PATH_DATA]: "Path data",
  [CommonAssetType.VEHICLE_TRACK]: "Vehicle track",
  [CommonAssetType.ATTACHMENT]: "Attachment",
  [CommonAssetType.SURFACE_FX]: "Surface FX",
  [CommonAssetType.SCRIPT]: "Script",
  [CommonAssetType.PHYS_CONSTRAINTS]: "Phys constraints",
  [CommonAssetType.DESTRUCTIBLE_DEF]: "Destructible def",
  [CommonAssetType.SOUND_PATCH]: "Sound patch",
  [CommonAssetType.WEAPON_DEF]: "Weapon def",
  [CommonAssetType.WEAPON_VARIANT]: "Weapon variant",
  [CommonAssetType.MP_BODY]: "MP body",
  [CommonAssetType.MP_HEAD]: "MP head",
  [CommonAssetType.PACK_INDEX]: "Pack index",
  [CommonAssetType.XGLOBALS]: "XGlobals",
  [CommonAssetType.DDL]: "DDL",
  [CommonAssetType.GLASSES]: "Glasses",
  [CommonAssetType.EMBLEM_SET]: "Emblem set",
  [CommonAssetType.FONT_ICON]: "Font icon",
  [CommonAssetType.WEAPON_FULL]: "Weapon full",
  [CommonAssetType.ATTACHMENT_UNIQUE]: "Attachment unique",
  [CommonAssetType.WEAPON_CAMO]: "Weapon camo",
  [CommonAssetType.KEY_VALUE_PAIRS]: "Key value pairs",
  [CommonAssetType.MEMORY_BLOCK]: "Memory block",
  [CommonAssetType.SKINNED_VERTS]: "Skinned verts",
  [CommonAssetType.QDB]: "Qdb",
  [CommonAssetType.SLUG]: "Slug",
  [CommonAssetType.FOOTSTEP_TABLE]: "Footstep table",
  [CommonAssetType.FOOTSTEP_FX_TABLE]: "Footstep FX table",
  [CommonAssetType.ZBARRIER]: "ZBarrier",
};

export function getAssetTypeNameCapitalized(assetType: CommonAssetType): string {
  return LOOKUP_CAPITALIZED[assetType];
}

export function getAssetTypeNameLower(assetType: CommonAssetType): string {
  return getAssetTypeNameCapitalized(assetType).toLocaleLowerCase();
}
