top | item 39217133

(no title)

tercmd | 2 years ago

The state can be re-imported like this: ``` a = (insert JSON output here) window.$nuxt.$root.$children[2].$children[0].$children[0]._data.elements = a.elements; window.$nuxt.$root.$children[2].$children[0].$children[0]._data.discoveries = a.discoveries; ```

discuss

order

madacol|2 years ago

I made a bookmarklet that loads the state from localstorage and also autosaves the state on each new craft

    javascript:(function(){
        const exportState = () => JSON.stringify({
            discoveries: window.$nuxt.$root.$children[2].$children[0].$children[0]._data.discoveries, 
            elements: window.$nuxt.$root.$children[2].$children[0].$children[0]._data.elements
        });

        const importState = (state) => {
            const { discoveries, elements } = JSON.parse(state);
            const gameInstance = window.$nuxt.$root.$children[2].$children[0].$children[0]._data;
            gameInstance.discoveries = discoveries;
            gameInstance.elements = elements;
        };

        /* Set up a MutationObserver to listen for changes in the DOM and automatically export the current state. */
        const observer = new MutationObserver((mutations) => {
            const state = exportState();
            localStorage.setItem('gameState', state);
        });

        /* Start observing DOM changes to auto-save the game state. */
        const startObserving = () => {
            const targetNode = document.querySelector('.sidebar');
            observer.observe(targetNode, { childList: true, subtree: true });
        };

        /* Check for a saved state in localStorage and import it if available. */
        const savedState = localStorage.getItem('gameState');
        if (savedState) importState(savedState);
        else localStorage.setItem('gameState', exportState() );

        startObserving();
    })();

beacon294|2 years ago

I used this to import my own terms.

This can be used to get a novel starting point (disregarding the original starting point).

It can also be used to start from unreachable elements, although it isn't clear to me exactly how the "First discovery" works, e.g. will your unreachable elements pollute the neal.fun datastore, or only the byproducts? Either way, it is interesting.

beacon294|2 years ago

By the way you missed a semicolon after `(insert JSON output here) `