optimizations

This commit is contained in:
sky
2026-02-07 14:45:07 -05:00
parent 62b2436fbf
commit 755211d4b9
12 changed files with 300 additions and 147 deletions

View File

@ -19,12 +19,17 @@ async function loadGames() {
});
let gamesElement = document.getElementById("games");
let topGElement = document.getElementById("topGames");
let gamesFragment = document.createDocumentFragment();
let topFragment = document.createDocumentFragment();
let starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]');
sorted.forEach(element => {
isStarred = starredGames.indexOf(element.directory) != -1;
let newElement = document.createElement("game");
let newElement = document.createElement("a");
newElement.setAttribute("data-target", element.directory);
newElement.setAttribute("data-image", element.image);
newElement.setAttribute("class", "game");
newElement.setAttribute("href", `/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}&type=g`);
let image = document.createElement("img");
image.src = `/resources/semag/${element.directory}/${element.image}`;
image.loading = `lazy`;
@ -43,6 +48,12 @@ async function loadGames() {
newElement.appendChild(holder);
newElement.appendChild(warnings);
if(element.tags) {
if(element.tags.includes("18+")) {
let thirteenplus = document.createElement("warning");
thirteenplus.innerText = "18+";
thirteenplus.classList = "thirteen";
warnings.appendChild(thirteenplus);
}
if(element.tags.includes("13+")) {
let thirteenplus = document.createElement("warning");
thirteenplus.innerText = "13+";
@ -62,26 +73,25 @@ async function loadGames() {
warnings.appendChild(gore);
}
if(element.tags.includes("top") && localStorage.getItem("selenite.disableTopGames") != "false") {
topGElement.appendChild(newElement);
topFragment.appendChild(newElement);
} else {
gamesElement.appendChild(newElement);
gamesFragment.appendChild(newElement);
holder.appendChild(star);
}
if(element.tags.includes("tofinish")) isDev.push(element.directory);
} else {
gamesElement.appendChild(newElement);
gamesFragment.appendChild(newElement);
holder.appendChild(star);
}
elements.push(newElement);
newElement.addEventListener("click", ()=>{
location.href=`/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}&type=g`
});
star.addEventListener("click", (e) => {
e.preventDefault();
e.stopPropagation();
starEvent(e);
});
});
gamesElement.appendChild(gamesFragment);
topGElement.appendChild(topFragment);
document.getElementById("gameCount").innerText = `${data.length} games loaded!`;
document.getElementById("loadingMsg").style.display = "none";
document.getElementById("allHeader").style.display = "block";
@ -93,12 +103,9 @@ async function loadGames() {
if(starredGames.length > 0) {
document.getElementById("starredHeader").style.display = "block";
starredGames.forEach((e) => {
let element = document.querySelector(`#games game[data-target='${e}']`);
let element = document.querySelector(`#games a.game[data-target='${e}']`);
let newElement = element.cloneNode(true);
document.getElementById("starredgames").appendChild(newElement);
newElement.addEventListener("click", ()=>{
location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}&type=g`
});
});
document.querySelectorAll("#starredgames #star").forEach((e) => {
e.addEventListener("click", (e) => {
@ -143,16 +150,13 @@ function starEvent(e) {
e.target.src = "/img/star-fill.svg";
starredgames.innerHTML = "";
starredGames.forEach((e) => {
let element = document.querySelector(`#games game[data-target='${e}']`);
let element = document.querySelector(`#games a.game[data-target='${e}']`);
let newElement = element.cloneNode(true);
document.getElementById("starredgames").appendChild(newElement);
newElement.addEventListener("click", ()=>{
location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}&type=g`
});
})
} else {
starredGames.splice(starredGames.indexOf(game), 1);
document.querySelectorAll(`game[data-target='${game}'] #star`).forEach((e) => {
document.querySelectorAll(`a.game[data-target='${game}'] #star`).forEach((e) => {
e.src = "/img/star.svg";
})
if(starredGames.length > 0) {
@ -163,12 +167,9 @@ function starEvent(e) {
localStorage.setItem("selenite.starred", JSON.stringify(starredGames));
starredgames.innerHTML = "";
starredGames.forEach((e) => {
let element = document.querySelector(`#games game[data-target='${e}']`);
let element = document.querySelector(`#games a.game[data-target='${e}']`);
let newElement = element.cloneNode(true);
document.getElementById("starredgames").appendChild(newElement);
newElement.addEventListener("click", ()=>{
location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}&type=g`
});
})
}
document.querySelectorAll("#starredgames #star").forEach((e) => {