diff --git a/docker-compose/requirements/djangoserver/file/server/server/templates/lobbyPage.html b/docker-compose/requirements/djangoserver/file/server/server/templates/lobbyPage.html index 552535e..e5ad8b2 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/templates/lobbyPage.html +++ b/docker-compose/requirements/djangoserver/file/server/server/templates/lobbyPage.html @@ -74,21 +74,52 @@ -
-

The key to success is timing and precision, as you need to position your paddle correctly to deflect the ball at the right angle.

- -

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin sit amet velit vitae lorem tempor auctor. In tempor ac ex ut finibus. Duis lobortis non justo eu venenatis.

+ + + -
-
- +
diff --git a/docker-compose/requirements/nginx/static/img/skin/1.jpg b/docker-compose/requirements/nginx/static/img/skin/1.jpg new file mode 100644 index 0000000..8d59925 Binary files /dev/null and b/docker-compose/requirements/nginx/static/img/skin/1.jpg differ diff --git a/docker-compose/requirements/nginx/static/img/skin/2.jpg b/docker-compose/requirements/nginx/static/img/skin/2.jpg new file mode 100644 index 0000000..c39c5cf Binary files /dev/null and b/docker-compose/requirements/nginx/static/img/skin/2.jpg differ diff --git a/docker-compose/requirements/nginx/static/img/skin/3.jpg b/docker-compose/requirements/nginx/static/img/skin/3.jpg new file mode 100644 index 0000000..47332ae Binary files /dev/null and b/docker-compose/requirements/nginx/static/img/skin/3.jpg differ diff --git a/docker-compose/requirements/nginx/static/img/skin/4.jpg b/docker-compose/requirements/nginx/static/img/skin/4.jpg new file mode 100644 index 0000000..ba38549 Binary files /dev/null and b/docker-compose/requirements/nginx/static/img/skin/4.jpg differ diff --git a/docker-compose/requirements/nginx/static/javascript/lobbyPage/3d.js b/docker-compose/requirements/nginx/static/javascript/lobbyPage/3d.js index 4509595..7d4e657 100644 --- a/docker-compose/requirements/nginx/static/javascript/lobbyPage/3d.js +++ b/docker-compose/requirements/nginx/static/javascript/lobbyPage/3d.js @@ -6,22 +6,33 @@ /* By: edbernar { + const popup = document.getElementById('popup-background'); + const skins = document.getElementsByClassName('color-box'); + + popup.style.display = 'flex'; + for (let i = 0; i < skins.length; i++) + { + skins[i].setAttribute('skinId', this.availableSkins[i].id); + if (this.availableSkins[i].color != null) + skins[i].style.backgroundColor = `#${this.availableSkins[i].color.toString(16)}`; + else + skins[i].style.backgroundImage = `url("${this.availableSkins[i].texture}")` + skins[i].removeEventListener('click', this.changeSkin.bind(this)); + skins[i].addEventListener('click', this.changeSkin.bind(this)); + } + popup.removeEventListener('click', this.hideSkinSelector); + popup.addEventListener('click', this.hideSkinSelector); + }) + } + + hideSkinSelector(event) + { + const popup = document.getElementById('popup-background'); + + if (event.target.getAttribute('class') == 'popup-background') + popup.style.display = 'none'; + } + + changeSkin (event) + { + const popup = document.getElementById('popup-background'); + + const id = event.target.getAttribute('skinId'); + popup.style.display = 'none'; + console.log(this.bar); + this.bar.material.dispose(); + lastSelected = this.availableSkins[id]; + if (this.availableSkins[id].color != null) + this.bar.material = new THREE.MeshPhysicalMaterial({color: this.availableSkins[id].color}); + else + this.bar.material = new THREE.MeshPhysicalMaterial({map: new THREE.TextureLoader().load(this.availableSkins[id].texture)}); + this.selected = this.availableSkins[id]; } createBarPlayer(color) { - const geometry = new THREE.BoxGeometry(1, 0.1, 0.1); - const material = new THREE.MeshPhysicalMaterial({color: color}); - const mesh = new THREE.Mesh(geometry, material); + const geometry = new THREE.BoxGeometry(1, 0.1, 0.1); + let material = null; + + if (typeof(color) == 'number') + material = new THREE.MeshPhysicalMaterial({color: color}); + else + material = new THREE.MeshPhysicalMaterial({map: new THREE.TextureLoader().load(color)}); + const mesh = new THREE.Mesh(geometry, material); mesh.castShadow = true; return (mesh); diff --git a/docker-compose/requirements/nginx/static/javascript/lobbyPage/main.js b/docker-compose/requirements/nginx/static/javascript/lobbyPage/main.js index ee0f2e5..84560a4 100644 --- a/docker-compose/requirements/nginx/static/javascript/lobbyPage/main.js +++ b/docker-compose/requirements/nginx/static/javascript/lobbyPage/main.js @@ -6,7 +6,7 @@ /* By: edbernar