User:Monster Domosed/common.js: Difference between revisions

No edit summary
No edit summary
Line 40: Line 40:


     function switchModel(viewer, icon) {
     function switchModel(viewer, icon) {
        const isHQ = !viewer.src.endsWith('-compressed.glb');
const isHQ = !viewer.src.endsWith('-compressed.glb');
 
        const currentTime = viewer.currentTime || 0;
viewer.src = isHQ
        const animationName = viewer.animationName;
    ? viewer.src.replace(/\.glb$/i, '-compressed.glb')
        const cameraOrbit = viewer.getAttribute('camera-orbit');
    : viewer.src.replace(/-compressed\.glb$/i, '.glb');
        const cameraTarget = viewer.getAttribute('camera-target');
 
icon.src = isHQ ? LQ_ICON : HQ_ICON;
        const newSrc = isHQ
            ? viewer.src.replace(/\.glb$/i, '-compressed.glb')
            : viewer.src.replace(/-compressed\.glb$/i, '.glb');
 
        viewer.src = newSrc;
 
        viewer.addEventListener('load', function restore() {
            if (cameraOrbit) {
                viewer.setAttribute('camera-orbit', cameraOrbit);
            }
 
            if (cameraTarget) {
                viewer.setAttribute('camera-target', cameraTarget);
            }
 
            if (animationName) {
                viewer.animationName = animationName;
            }
 
            viewer.currentTime = currentTime;
 
            if (viewer.hasAttribute('autoplay')) {
                viewer.play();
            }
 
            icon.src = isHQ ? LQ_ICON : HQ_ICON;
        }, { once: true });
    }


     function initViewer(viewer) {
     function initViewer(viewer) {