'use strict'; let debug = false, font, localSettings, loader; //Only for online games let socket; let antiCacheQuery = '?_=' + new Date().getTime(); let game; function preload(){ localSettings = loadJSON('data/settings/settings.json' + antiCacheQuery, json => { console.log('Local settings loaded: ', json); }, error => { console.log('Local settings failed: ', error); }); font = loadFont('data/styles/font.ttf', json => { console.log('Local font loaded: ', json); }, error => { console.log('Local font failed: ', error); }); } function setup(){ canvasSetup(); interfaceSetup(); loadDynamicScripts().then(() => game = new Game()); } function draw(){ background(40); if (game){ game.update(); game.display(); } if (loader){ loader.update(); loader.display(); } if (debug) debugInformation(); } function canvasSetup(){ setFrameRate(60); let w = $('#canvas-holder').width(), h = $('#canvas-holder').height(); let canvas = createCanvas(w, h); canvas.parent('canvas-holder'); textFont(font); } function interfaceSetup(){ $('#cell_count').attr({ 'min': localSettings.app.grid.size.min, 'max': localSettings.app.grid.size.max }); } function loadDynamicScripts(){ return httpGet('data/settings/libraries.json' + antiCacheQuery, 'json') .then(json => { let requests = []; for (let script in json){ if (json[script]){ let url = '/lib/benjocraeft/' + script + '.js' requests.push($.getScript(url, () => { console.log('Successfully loaded script: ', url) })); } } return $.when(...requests); }) .then(() => { console.log("All dynamic scripts have been loaded!"); }); }