Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
async loadModel(modelPath: string): Promise {
const res = await this.manager.load(ResourceLocation.ofModelPath(modelPath));
if (!res) { throw new Error(`Model ${modelPath} (${ResourceLocation.ofModelPath(modelPath)}) not found`); }
const raw = JSON.parse(System.bufferToText(res.content)) as BlockModel;
if (!raw.textures) { raw.textures = {}; }
if (raw.parent) {
const parentModel = await this.loadModel(raw.parent);
if (!parentModel) { throw new Error(`Missing parent model ${raw.parent} for ${location.toString()}`); }
if (!raw.elements) { raw.elements = parentModel.elements; }
if (!raw.ambientocclusion) { raw.ambientocclusion = parentModel.ambientocclusion; }
if (!raw.display) { raw.display = parentModel.display; }
if (!raw.overrides) { raw.overrides = parentModel.overrides; }
if (parentModel.textures) { Object.assign(raw.textures, parentModel.textures); }
}
async loadModel(modelPath: string): Promise {
const res = await this.manager.load(ResourceLocation.ofModelPath(modelPath));
if (!res) { throw new Error(`Model ${modelPath} (${ResourceLocation.ofModelPath(modelPath)}) not found`); }
const raw = JSON.parse(System.bufferToText(res.content)) as BlockModel;
if (!raw.textures) { raw.textures = {}; }
if (raw.parent) {
const parentModel = await this.loadModel(raw.parent);
if (!parentModel) { throw new Error(`Missing parent model ${raw.parent} for ${location.toString()}`); }
if (!raw.elements) { raw.elements = parentModel.elements; }
if (!raw.ambientocclusion) { raw.ambientocclusion = parentModel.ambientocclusion; }
if (!raw.display) { raw.display = parentModel.display; }
if (!raw.overrides) { raw.overrides = parentModel.overrides; }
if (parentModel.textures) { Object.assign(raw.textures, parentModel.textures); }
}
raw.ambientocclusion = raw.ambientocclusion || false;