genshin-manager
Version:
<div align="center"> <p> <a href="https://www.npmjs.com/package/genshin-manager"><img src="https://img.shields.io/npm/v/genshin-manager.svg?maxAge=3600" alt="npm version" /></a> <a href="https://www.npmjs.com/package/genshin-manager"><img src="https:
49 lines (48 loc) • 1.71 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Material = void 0;
const Client_1 = require("../client/Client");
const ImageAssets_1 = require("../models/assets/ImageAssets");
/**
* Class of material
*/
class Material {
/**
* Create a Material
* @param materialId Material ID
*/
constructor(materialId) {
this.id = materialId;
const materialJson = Client_1.Client._getJsonFromCachedExcelBinOutput('MaterialExcelConfigData', this.id);
this.name =
Client_1.Client._cachedTextMap.get(String(materialJson.nameTextMapHash)) || '';
this.description =
Client_1.Client._cachedTextMap.get(String(materialJson.descTextMapHash)) || '';
this.icon = new ImageAssets_1.ImageAssets(materialJson.icon);
this.pictures = materialJson.picPath.map((v) => new ImageAssets_1.ImageAssets(v));
this.itemType = materialJson.itemType;
this.materialType = materialJson.materialType;
}
/**
* Get all material IDs
* @returns All material IDs
*/
static get allMaterialIds() {
const materialDatas = Object.values(Client_1.Client._getCachedExcelBinOutputByName('MaterialExcelConfigData'));
return materialDatas.map((data) => data.id);
}
/**
* Get material ID by name
* @param name Material name
* @returns Material ID
*/
static getMaterialIdByName(name) {
return Client_1.Client._searchIdInExcelBinOutByText('MaterialExcelConfigData', name).map((k) => +k);
}
}
exports.Material = Material;
_a = Material;
(() => {
Client_1.Client._addExcelBinOutputKeyFromClassPrototype(_a.prototype);
})();