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()