Spaces:
Sleeping
Sleeping
File size: 1,705 Bytes
8194362 fca8857 8194362 fca8857 8194362 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | class UiController {
constructor () {
this.initUiToggle()
this.initTeleportButton()
this.initRadioButtons()
}
initUiToggle () {
const uiToggle = document.querySelector('.ui-toggle input')
const onUIToggle = () => {
if (uiToggle.checked) {
document.body.classList.add('no-ui')
}
else {
document.body.classList.remove('no-ui')
}
uiToggle.blur()
}
uiToggle.addEventListener('change', onUIToggle)
onUIToggle()
}
initTeleportButton () {
document.querySelector('#teleport')
.addEventListener('touchstart', () => {
this.onTeleportClick && this.onTeleportClick()
}, false)
}
initRadioButtons () {
document.querySelector('#resolution')
.addEventListener('change', event => {
event.target.blur()
const pixelSize = this.getSelectedPixelSize()
this.onPixelSizeChange && this.onPixelSizeChange(pixelSize)
}, false)
}
setPixelSize (value) {
document.querySelector(`[name=resolution][value="${value}"]`).checked = true
}
getSelectedPixelSize () {
const element = document.querySelector('[name=resolution]:checked')
if (!element) {
return null
}
return parseInt(element.value)
}
showWebGLError () {
document.querySelector('#webgl-error').style.display = 'block'
this.removeLoadingScreen()
}
removeLoadingScreen () {
const el = document.getElementById('loading')
el.parentElement.removeChild(el)
}
setUiForDesktop () {
document.body.classList.remove('mobile-device')
}
setUiForMobile () {
document.body.classList.add('mobile-device')
}
}
export default new UiController()
|