Skip to content

Commit

Permalink
feat: Texture/Model loading errors are now displayed in window
Browse files Browse the repository at this point in the history
  • Loading branch information
OrangeUtan committed Apr 22, 2021
1 parent 38d1741 commit 5930c7e
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 10 deletions.
11 changes: 6 additions & 5 deletions src/ModelViewerPanel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,12 @@ export class ModelViewerPanel {
this._panel.webview.onDidReceiveMessage(
message => {
switch (message.command) {
case 'alert':
vscode.window.showErrorMessage(message.text);
return;
case 'resolveTextures':
this.resolveTextures(message.value)
this.resolveTextures(message.value);
break;
case 'error':
vscode.window.showErrorMessage(message.text);
break;
}
},
null,
Expand All @@ -108,7 +109,7 @@ export class ModelViewerPanel {
}
}

ModelViewerPanel.postMessage({command: "resolvedTextures", value: webviewModelTextures})
ModelViewerPanel.postMessage({command: "resolvedTextures", value: webviewModelTextures});
}

public dispose() {
Expand Down
26 changes: 21 additions & 5 deletions webviews/components/ModelViewerPanel.svelte
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script lang="ts">
import ModelCanvas from './ModelCanvas.svelte'
import { MinecraftModelLoader, MinecraftModelMesh, MinecraftTexture, MinecraftTextureLoader } from '@oran9e/three-mcmodel';
import { MinecraftModel, MinecraftModelLoader, MinecraftModelMesh, MinecraftTexture, MinecraftTextureLoader } from '@oran9e/three-mcmodel';
import { RendererSettings } from '../data/config'
import { onMount } from 'svelte';
Expand Down Expand Up @@ -28,10 +28,10 @@
window.addEventListener('message', e => {
switch(e.data.command) {
case "loadModel":
((async () => loadModel(e.data.value)))();
(async () => loadModel(e.data.value))();
break;
case "resolvedTextures":
((async () => loadTextures(e.data.value)))();
(async () => loadTextures(e.data.value))();
break;
case "updateRendererSettings":
updateRendererSettings(e.data.value)
Expand All @@ -40,7 +40,13 @@
});
async function loadModel(modelUrl: string) {
const model = await new MinecraftModelLoader().load(modelUrl)
let model: MinecraftModel;
try {
model = await new MinecraftModelLoader().load(modelUrl)
} catch(e) {
showError(`Loading model failed: ${e.message}`)
return;
}
modelMesh = new MinecraftModelMesh(model)
if(model.textures) {
Expand All @@ -53,7 +59,13 @@
const loadedTextures: {[assetPath: string]: MinecraftTexture} = {}
for(const assetPath in textureUrls) {
loadedTextures[assetPath] = await textureLoader.load(textureUrls[assetPath])
const url = textureUrls[assetPath]
try {
loadedTextures[assetPath] = await textureLoader.load(url)
} catch(e) {
showError(`Failed loading texture: ${assetPath}. System path: ${url}`)
continue;
}
}
textures = loadedTextures
Expand All @@ -70,6 +82,10 @@
)
}
function showError(text: string) {
vscode.postMessage({command: 'error', text})
}
</script>

<style lang="scss">
Expand Down

0 comments on commit 5930c7e

Please sign in to comment.