|
|
|
@@ -1176,6 +1176,7 @@ document.addEventListener("DOMContentLoaded", () => { |
|
|
|
prepareMenu(); |
|
|
|
prepareEntities(); |
|
|
|
|
|
|
|
window.addEventListener("unload", () => saveScene("autosave")); |
|
|
|
document.querySelector("#options-selected-entity").addEventListener("input", e => { |
|
|
|
if (e.target.value == "none") { |
|
|
|
deselect() |
|
|
|
@@ -1353,8 +1354,14 @@ document.addEventListener("DOMContentLoaded", () => { |
|
|
|
|
|
|
|
param = new URL(window.location.href).searchParams.get("scene"); |
|
|
|
|
|
|
|
if (param === null) |
|
|
|
scenes["Default"](); |
|
|
|
if (param === null) { |
|
|
|
if (loadScene("autosave")) { |
|
|
|
deleteScene("autosave"); |
|
|
|
} else { |
|
|
|
scenes["Default"](); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
else { |
|
|
|
try { |
|
|
|
const data = JSON.parse(b64DecodeUnicode(param)); |
|
|
|
@@ -1739,26 +1746,38 @@ function setWorldHeight(oldHeight, newHeight) { |
|
|
|
updateSizes(); |
|
|
|
} |
|
|
|
|
|
|
|
function loadScene() { |
|
|
|
function loadScene(name="default") { |
|
|
|
try { |
|
|
|
const data = JSON.parse(localStorage.getItem("macrovision-save")); |
|
|
|
const data = JSON.parse(localStorage.getItem("macrovision-save-" + name)); |
|
|
|
if (data === null) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
importScene(data); |
|
|
|
return true; |
|
|
|
} catch (err) { |
|
|
|
alert("Something went wrong while loading (maybe you didn't have anything saved. Check the F12 console for the error.") |
|
|
|
console.error(err); |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function saveScene() { |
|
|
|
function saveScene(name="default") { |
|
|
|
try { |
|
|
|
const string = JSON.stringify(exportScene()); |
|
|
|
localStorage.setItem("macrovision-save", string); |
|
|
|
localStorage.setItem("macrovision-save-" + name, string); |
|
|
|
} catch (err) { |
|
|
|
alert("Something went wrong while saving (maybe I don't have localStorage permissions, or exporting failed). Check the F12 console for the error.") |
|
|
|
console.error(err); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function deleteScene(name="default") { |
|
|
|
try { |
|
|
|
localStorage.removeItem("macrovision-save-" + name) |
|
|
|
} catch(err) { |
|
|
|
console.error(err); |
|
|
|
} |
|
|
|
} |
|
|
|
function exportScene() { |
|
|
|
const results = {}; |
|
|
|
|
|
|
|
|