diff --git a/snow-rider/UnityProgress.js b/snow-rider/UnityProgress.js new file mode 100644 index 0000000..a327719 --- /dev/null +++ b/snow-rider/UnityProgress.js @@ -0,0 +1,167 @@ +const rootPath = 'TemplateData'; + +function UnityProgress(gameInstance, progress) { + if (!gameInstance.Module) { + return; + } + + if (!gameInstance.logo) { + gameInstance.logo = document.createElement("div"); + gameInstance.logo.className = "logo " + gameInstance.Module.splashScreenStyle; + gameInstance.container.appendChild(gameInstance.logo); + } + + if (!gameInstance.progress) { + gameInstance.progress = document.createElement("div"); + gameInstance.progress.className = "progress " + gameInstance.Module.splashScreenStyle; + gameInstance.progress.empty = document.createElement("div"); + gameInstance.progress.empty.className = "empty"; + gameInstance.progress.appendChild(gameInstance.progress.empty); + gameInstance.progress.full = document.createElement("div"); + gameInstance.progress.full.className = "full"; + gameInstance.progress.appendChild(gameInstance.progress.full); + gameInstance.container.appendChild(gameInstance.progress); + gameInstance.textProgress = document.createElement("div"); + gameInstance.textProgress.className = "text"; + gameInstance.container.appendChild(gameInstance.textProgress); + } + + gameInstance.progress.full.style.width = (100 * progress) + "%"; + gameInstance.progress.empty.style.width = (100 * (1 - progress)) + "%"; + + //gameInstance.textProgress.innerHTML = 'Loading - ' + Math.floor(progress * 100) + '%' + ' '; + + if(progress>= 0.9 && progress<1) + { + gameInstance.textProgress.innerHTML = '100% - Running, Wait..'; + gameInstance.progress.style.display = 'none'; + } + else + { + gameInstance.textProgress.innerHTML = 'Loading - ' + Math.floor(progress * 100) + '%'; + } + + /* + if (progress == 1) { + gameInstance.textProgress.innerHTML = 'Running, Please Wait.. '; + gameInstance.progress.style.display = 'none'; + } + */ + + if (progress == 'complete') { + SendMessage = gameInstance.SendMessage; + gameInstance.logo.style.display = 'none'; + gameInstance.progress.style.display = 'none'; + gameInstance.textProgress.style.display = 'none'; + } +} + +window.Game = (function() { + var Game = function() { + this.registerEvents(); + }; + + Game.prototype.registerEvents = function() { + var _this = this; + + window.addEventListener("keydown", function(e) { + // space and arrow keys + if ([8, 37, 38, 39, 40].indexOf(e.keyCode) > -1) { + e.preventDefault(); + } + }, false); + + document.onmousedown = function() { + window.focus(); + }; + + document.addEventListener('DOMContentLoaded', function() { + _this.resize(); + }, false); + + window.addEventListener('resize', function() { + setTimeout(function() { + _this.resize(); + }, 1000); + }, false); + }; + + Game.prototype.getQueryVariable = function(variable) { + var query = window.location.search.substring(1); + var vars = query.split("&"); + for (var i = 0; i < vars.length; i++) { + var pair = vars[i].split("="); + if (pair[0] == variable) { + return pair[1]; + } + } + return (false); + } + + var enableratioTolerant = true; + Game.prototype.resize = function() { + + var ratioTolerant = this.getQueryVariable('ratio_tolerant'); + + if (!enableratioTolerant || this.fullscreen()) { + return; + } + + document.getElementsByTagName('body')[0].style.overflow = 'hidden'; + var gameContainer = document.getElementById('gameContainer'); + var canvas = document.getElementById('#canvas'); + + var gameSizeRatio = gameContainer.offsetWidth / gameContainer.offsetHeight; + var maxHeight = this.maxHeight(); + var maxWidth = window.innerWidth; + var windowSizeRatio = maxWidth / maxHeight; + var newStyle = { + width: gameContainer.offsetWidth, + height: gameContainer.offsetHeight + }; + + if (ratioTolerant == 'true') { + newStyle = { width: maxWidth, height: maxHeight }; + } else if (ratioTolerant == 'false') { + if (gameSizeRatio > windowSizeRatio) { + newStyle = { width: maxWidth, height: maxWidth / gameSizeRatio }; + } else { + newStyle = { width: maxHeight * gameSizeRatio, height: maxHeight }; + } + } + + if(enableratioTolerant) + { + newStyle = { width: maxWidth, height: maxHeight }; + } + + this.updateStyle(gameContainer, newStyle); + + // canvas does not exists on page load + if (canvas) { + this.updateStyle(canvas, newStyle); + } + }; + + Game.prototype.maxHeight = function() { + return window.innerHeight; + }; + + Game.prototype.updateStyle = function(element, size) { + element.setAttribute('width', size.width); + element.setAttribute('height', size.height); + element.style.width = size.width + 'px'; + element.style.height = size.height + 'px'; + }; + + Game.prototype.fullscreen = function() { + return document.fullscreenElement || + document.webkitFullscreenElement || + document.mozFullScreenElement || + document.msFullscreenElement; + }; + + return Game; +})(); + +new Game();