Files
Physilinks/src/storage.js
2025-12-15 16:43:13 +01:00

52 lines
1.4 KiB
JavaScript

(() => {
const makeStorageKey = (sceneId) => `physilinks-highscore-${sceneId}`;
const makeChainKey = (sceneId) => `physilinks-longestchain-${sceneId}`;
const loadHighScore = (sceneId) => {
try {
const raw = localStorage.getItem(makeStorageKey(sceneId));
const parsed = parseInt(raw, 10);
return Number.isFinite(parsed) ? parsed : 0;
} catch (err) {
console.error("Failed to load high score", { sceneId, err });
return 0;
}
};
const loadLongestChain = (sceneId) => {
try {
const raw = localStorage.getItem(makeChainKey(sceneId));
const parsed = parseInt(raw, 10);
return Number.isFinite(parsed) ? parsed : 0;
} catch (err) {
console.error("Failed to load longest chain", { sceneId, err });
return 0;
}
};
const saveHighScore = (sceneId, highScore) => {
try {
localStorage.setItem(makeStorageKey(sceneId), String(highScore));
} catch (err) {
console.error("Failed to save high score", { sceneId, err });
}
};
const saveLongestChain = (sceneId, longestChain) => {
try {
localStorage.setItem(makeChainKey(sceneId), String(longestChain));
} catch (err) {
console.error("Failed to save longest chain", { sceneId, err });
}
};
window.PhysilinksStorage = {
makeStorageKey,
makeChainKey,
loadHighScore,
loadLongestChain,
saveHighScore,
saveLongestChain,
};
})();