christmas update

This commit is contained in:
sky
2025-11-27 12:13:08 -05:00
parent e60e6791d9
commit d4bd776889
8 changed files with 194 additions and 76 deletions

View File

@ -43,3 +43,12 @@ body[theme=sky] {
--color-3: #3188bd; --color-3: #3188bd;
--color-4: #23588a; --color-4: #23588a;
} }
body[theme=xmas] {
--text-color: #dcffab;
--bg-1: #a00000;
--bg-2: #400000;
--color-1: #dcffab;
--color-2: #a32a2a;
--color-3: #000000;
--color-4: #630000;
}

View File

@ -241,7 +241,7 @@
<mobile-warning><h1 class="title">your device is not supported!</h1><p>please rotate your screen for the best experience.</p></mobile-warning> <mobile-warning><h1 class="title">your device is not supported!</h1><p>please rotate your screen for the best experience.</p></mobile-warning>
<loading-game><h1 class="title">we are loading your game!</h1><p>please allow us to fetch the data first, this should only take a second.</p></loading-game> <loading-game><h1 class="title">we are loading your game!</h1><p>please allow us to fetch the data first, this should only take a second.</p></loading-game>
<body> <body>
<iframe id="iframe" src="home.html"></iframe> <iframe id="iframe" src="home.html" allow="cross-origin-isolated"></iframe>
<!-- to do <!-- to do
add colors --> add colors -->
<sidebar> <sidebar>

View File

@ -0,0 +1,110 @@
{
"particles": {
"number": {
"value": 94,
"density": {
"enable": true,
"value_area": 800
}
},
"color": {
"value": "#fff"
},
"shape": {
"type": "circle",
"stroke": {
"width": 0,
"color": "#000000"
},
"polygon": {
"nb_sides": 5
},
"image": {
"src": "img/github.svg",
"width": 100,
"height": 100
}
},
"opacity": {
"value": 0.5,
"random": true,
"anim": {
"enable": false,
"speed": 1,
"opacity_min": 0.1,
"sync": false
}
},
"size": {
"value": 10,
"random": true,
"anim": {
"enable": false,
"speed": 40,
"size_min": 0.1,
"sync": false
}
},
"line_linked": {
"enable": false,
"distance": 500,
"color": "#ffffff",
"opacity": 0.4,
"width": 2
},
"move": {
"enable": true,
"speed": 9.590256299599611,
"direction": "bottom",
"random": false,
"straight": false,
"out_mode": "out",
"bounce": false,
"attract": {
"enable": false,
"rotateX": 1678.2948524299318,
"rotateY": 3196.752099866537
}
}
},
"interactivity": {
"detect_on": "window",
"events": {
"onhover": {
"enable": true,
"mode": "bubble"
},
"onclick": {
"enable": true,
"mode": "repulse"
},
"resize": true
},
"modes": {
"grab": {
"distance": 400,
"line_linked": {
"opacity": 0.5
}
},
"bubble": {
"distance": 400,
"size": 4,
"duration": 0.3,
"opacity": 1,
"speed": 3
},
"repulse": {
"distance": 79.60199004975124,
"duration": 0.4
},
"push": {
"particles_nb": 4
},
"remove": {
"particles_nb": 2
}
}
},
"retina_detect": true
}

View File

@ -13,7 +13,7 @@ function loadPJS() {
script.src = "https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"; script.src = "https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js";
document.head.appendChild(script); document.head.appendChild(script);
script.addEventListener("load", ()=>{ script.addEventListener("load", ()=>{
particlesJS.load('pjs', "/js/particlesjs-config.json", ()=>{}); particlesJS.load('pjs', "/js/christmas-particlesjs-config.json", ()=>{});
}); });
} }

View File

@ -59,7 +59,7 @@
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
</head> </head>
<body> <body>
<iframe id="gameFrame"></iframe> <iframe id="gameFrame" allow="cross-origin-isolated"></iframe>
<div id="infobox"> <div id="infobox">
<img id="gameImage" src="favicon.png" /> <img id="gameImage" src="favicon.png" />
<h2 id="gameName">Selenite</h2> <h2 id="gameName">Selenite</h2>

View File

@ -204,6 +204,7 @@
<p style="font-size:20px;margin:6px;">themes</p> <p style="font-size:20px;margin:6px;">themes</p>
<select id="themes"> <select id="themes">
<option value="">selenite</option> <option value="">selenite</option>
<option value="xmas">CHRISTMAS! (limited)</option>
<option value="blackandwhite">black and white</option> <option value="blackandwhite">black and white</option>
<option value="grass">grass</option> <option value="grass">grass</option>
<option value="evil">evil</option> <option value="evil">evil</option>

144
sw.js
View File

@ -1,79 +1,77 @@
importScripts( // importScripts(
'https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js' // 'https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js'
); // );
let localStorageData = { // let localStorageData = {
cdns: [], // cdns: [],
disableCDN: true, // disableCDN: true,
}; // };
// yandere sim big files, cuphead, renpy, renpy, buckshot roulette, half life, undertale & deltarune, hollow knight // // yandere sim big files, cuphead, ddlc assets, renpy, renpy, buckshot roulette, half life, undertale & deltarune, hollow knight
let cacheable_files = ["YandereSim.data", "cuphead/Build/Build.data.unityweb.", "renpy.data", "game.zip", "buckshot-roulette.pck", "halva_en-", "game.unx", "bog.data"]; // let cacheable_files = ["YandereSim.data", "cuphead/Build/Build.data.unityweb.", "/ddlc/game/", "/co09/game/", "/co09flipside/game/", "/co09reup/game/", "renpy.data", "game.zip", "buckshot-roulette.pck", "halva_en-", "game.unx", "bog.data", "FTFHAPort.data.unityweb"];
self.addEventListener("message", e => { // self.addEventListener("message", e => {
if(e.data && e.data.type == "localStorage") { // if(e.data && e.data.type == "localStorage") {
localStorageData = e.data; // localStorageData = e.data;
console.log(localStorageData); // }
} // });
});
if(workbox) { // if(workbox) {
self.skipWaiting(); // self.skipWaiting();
workbox.core.clientsClaim(); // workbox.core.clientsClaim();
workbox.routing.registerRoute( // workbox.routing.registerRoute(
({url}) => { // ({url}) => {
console.log(localStorageData) // if(localStorageData.disableCDN) return false;
if(localStorageData.disableCDN) return false; // if(localStorageData.cdns.length == 0) return false;
if(localStorageData.cdns.length == 0) return false; // if(url.origin != location.origin) return false;
if(url.origin != location.origin) return false; // if(!url.pathname.includes("/resources/")) return false;
if(!url.pathname.includes("/resources/")) return false; // for (const file of cacheable_files) {
for (const file of cacheable_files) { // if(url.pathname.includes(file)) return true;
if(url.pathname.includes(file)) return true; // }
} // return false;
return false; // },
}, // async ({url}) => {
async ({url}) => { // let cdn = localStorageData.cdns[0];
let cdn = localStorageData.cdns[0]; // console.warn(url.href);
console.warn(url.href); // return Response.redirect(cdn + url.pathname, 302);
return Response.redirect(cdn + url.pathname, 302); // }
} // );
);
workbox.routing.registerRoute( // workbox.routing.registerRoute(
/\.(?:png|gif|jpg|jpeg|svg|webp|avif|gif)$/, // /\.(?:png|gif|jpg|jpeg|svg|webp|avif|gif)$/,
new workbox.strategies.CacheFirst({ // new workbox.strategies.CacheFirst({
cacheName: 'images-cache', // cacheName: 'images-cache',
plugins: [ // plugins: [
new workbox.expiration.ExpirationPlugin({ // new workbox.expiration.ExpirationPlugin({
maxEntries: 1200, // maxEntries: 1200,
maxAgeSeconds: 365 * 24 * 60 * 60, // maxAgeSeconds: 365 * 24 * 60 * 60,
}), // }),
], // ],
}) // })
); // );
workbox.routing.registerRoute( // workbox.routing.registerRoute(
/.*resources\/(semag|sppa).*/, // /.*resources\/(semag|sppa).*/,
new workbox.strategies.CacheFirst({ // new workbox.strategies.CacheFirst({
cacheName: 'resources-cache', // cacheName: 'resources-cache',
plugins: [ // plugins: [
new workbox.expiration.ExpirationPlugin({ // new workbox.expiration.ExpirationPlugin({
maxEntries: 500, // maxEntries: 500,
maxAgeSeconds: 365 * 24 * 60 * 60, // maxAgeSeconds: 365 * 24 * 60 * 60,
}), // }),
], // ],
}) // })
); // );
workbox.routing.registerRoute( // workbox.routing.registerRoute(
/.*resources\/(games|apps)\.json$/, // /.*resources\/(games|apps)\.json$/,
new workbox.strategies.StaleWhileRevalidate({ // new workbox.strategies.StaleWhileRevalidate({
cacheName: 'json-cache', // cacheName: 'json-cache',
plugins: [ // plugins: [
new workbox.expiration.ExpirationPlugin({ // new workbox.expiration.ExpirationPlugin({
maxAgeSeconds: 3 * 60 * 60, // maxAgeSeconds: 3 * 60 * 60,
maxEntries: 2, // maxEntries: 2,
}), // }),
], // ],
}) // })
); // );
}; // };