Spaces:
Running
Running
| 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() | |