Up-in-the-Air – commitdiff

You can use Git to clone the repository via the web URL. Download snapshot (zip)
Add deployment options, first one is an asset URL prefix
authorJulian Fietkau <git@fietkau.software>
Thu, 3 Oct 2024 22:48:36 +0000 (00:48 +0200)
committerJulian Fietkau <git@fietkau.software>
Thu, 3 Oct 2024 22:48:36 +0000 (00:48 +0200)
main.js

diff --git a/main.js b/main.js
index 4336a9b88917994e057081faf777c80f52b98d05..3b0511198c1d8e82f0e11ac92405424e3d8810a8 100644 (file)
--- a/main.js
+++ b/main.js
@@ -32,6 +32,18 @@ import { TextGeometry } from 'three/addons/geometries/TextGeometry.js';
 
 window['startUpInTheAirGame'] = (game) => {
 
+if(!game.hasOwnProperty('deploymentOptions')) {
+  game['deploymentOptions'] = {};
+}
+const deploymentDefaults = {
+  'assetUrlPrefix': '',
+};
+for(let k in deploymentDefaults) {
+  if(!game['deploymentOptions'].hasOwnProperty(k)) {
+    game['deploymentOptions'][k] = deploymentDefaults[k];
+  }
+}
+
 game['fn'] = {};
 
 game['fn'].playRandomSound = () => {
@@ -208,6 +220,8 @@ game['fn'].loadAllAssets = (renderProgressCallback) => {
       let url = todo;
       if(isDataUri) {
         url = todoList['data:' + todo];
+      } else {
+        url = game['deploymentOptions']['assetUrlPrefix'] + url;
       }
       loader[segments[0]].load(url, (result) => {
         if(segments[0] == 'textures') {
@@ -1203,7 +1217,7 @@ game['fn'].loadSettings = () => {
       radio.value = unlockedFeather;
       let img = document.createElement('img');
       if(unlockedFeather == 'golden' || unlockedFeather == 'ghost') {
-        img.src = 'textures/feather-' + unlockedFeather + '.png';
+        img.src = game['deploymentOptions']['assetUrlPrefix'] + 'textures/feather-' + unlockedFeather + '.png';
       } else {
         let unlock = game['fn'].unlockWithKey('NIbp2kW5' + unlockedFeather + 'e2ZDFl5Y');
         if(unlock && unlock['type'] == 'feather') {
@@ -1633,8 +1647,11 @@ game['fn'].unlockFeather = (feather, url) => {
   }
   game.settings['unlocks'].push(feather);
   if(!url) {
-    url = 'textures/feather-' + feather + '.png';
+    url = game['deploymentOptions']['assetUrlPrefix'] + 'textures/feather-' + feather + '.png';
+  } else if(url.startsWith('textures/')) {
+    url = game['deploymentOptions']['assetUrlPrefix'] + url;
   }
+
   if(!game.assets['textures']['feather-' + feather]) {
     (new THREE.TextureLoader()).load(url, (result) => {
       result.colorSpace = THREE.SRGBColorSpace;
@@ -1995,7 +2012,7 @@ game['fn'].start = () => {
     game.ui.root.querySelectorAll('.ui-page.credits .area .person').forEach((person) => {
       let personName = Array.from(person.classList).filter(c => c != 'person')[0];
       let imageFormat = (personName == 'nina') ? 'png' : 'jpg';
-      css.insertRule('.upInTheAirGame .ui-page.credits .person.' + personName + '::before { background-image: url("textures/person-' + personName + '.' + imageFormat + '"); }');
+      css.insertRule('.upInTheAirGame .ui-page.credits .person.' + personName + '::before { background-image: url("' + game['deploymentOptions']['assetUrlPrefix'] + 'textures/person-' + personName + '.' + imageFormat + '"); }');
     });
   }