Pim Schreurs
Auto-detect the best resolution
fca8857
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()