Complete overhaul of code structure and relevant files (#639)
This commit is contained in:
4
src/InitSaveLoad/Variables.js
Normal file
4
src/InitSaveLoad/Variables.js
Normal file
@@ -0,0 +1,4 @@
|
||||
/* eslint-disable prefer-const */
|
||||
/** Variable that shows if Cookie Moonster is initzializing */
|
||||
export let isInitializing = false;
|
||||
export let test;
|
||||
26
src/InitSaveLoad/init.js
Normal file
26
src/InitSaveLoad/init.js
Normal file
@@ -0,0 +1,26 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
import { VersionMajor, VersionMinor } from '../Data/Moddata';
|
||||
import Draw from '../Disp/Draw';
|
||||
import InitializeCookieMonster from '../Main/Initialization';
|
||||
import CMLoop from '../Main/Loop';
|
||||
import { isInitializing } from './Variables';
|
||||
|
||||
/**
|
||||
* This creates a init function for the CM object. Per Game code/comments:
|
||||
* "this function is called as soon as the mod is registered
|
||||
* declare hooks here"
|
||||
* It starts the further initialization of CookieMonster and registers hooks
|
||||
*/
|
||||
export default function init() {
|
||||
isInitializing = true;
|
||||
let proceed = true;
|
||||
if (Game.version !== Number(VersionMajor)) {
|
||||
proceed = confirm(`Cookie Monster version ${VersionMajor}.${VersionMinor} is meant for Game version ${VersionMajor}. Loading a different version may cause errors. Do you still want to load Cookie Monster?`);
|
||||
}
|
||||
if (proceed) {
|
||||
InitializeCookieMonster();
|
||||
Game.registerHook('draw', Draw);
|
||||
Game.registerHook('logic', CMLoop);
|
||||
isInitializing = false;
|
||||
}
|
||||
}
|
||||
17
src/InitSaveLoad/load.js
Normal file
17
src/InitSaveLoad/load.js
Normal file
@@ -0,0 +1,17 @@
|
||||
import { LoadConfig } from '../Config/SaveLoadReload/SaveLoadReloadSettings';
|
||||
import { VersionMajor, VersionMinor } from '../Data/Moddata';
|
||||
import InitData from '../Sim/InitializeData/InitData';
|
||||
|
||||
/**
|
||||
* This creates a load function to the CM object. Per Game code/comments:
|
||||
* "do stuff with the string data you saved previously"
|
||||
*/
|
||||
export default function load(str) {
|
||||
const save = JSON.parse(str);
|
||||
InitData();
|
||||
LoadConfig(save.settings);
|
||||
if (save.version !== `${VersionMajor}.${VersionMinor}`) {
|
||||
if (Game.prefs.popups) Game.Popup('A new version of Cookie Monster has been loaded, check out the release notes in the info tab!');
|
||||
else Game.Notify('A new version of Cookie Monster has been loaded, check out the release notes in the info tab!', '', '', 0, 1);
|
||||
}
|
||||
}
|
||||
14
src/InitSaveLoad/save.js
Normal file
14
src/InitSaveLoad/save.js
Normal file
@@ -0,0 +1,14 @@
|
||||
import { CMOptions } from '../Config/VariablesAndData';
|
||||
import { VersionMajor, VersionMinor } from '../Data/Moddata';
|
||||
|
||||
/**
|
||||
* This creates a save function to the CM object. Per Game code/comments:
|
||||
* "use this to store persistent data associated with your mod
|
||||
* return 'a string to be saved';"
|
||||
*/
|
||||
export default function save() {
|
||||
return JSON.stringify({
|
||||
settings: CMOptions,
|
||||
version: `${VersionMajor}.${VersionMinor}`,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user