Use CookieMonsterFramework for save/load, infoMenu
This commit is contained in:
@@ -1,77 +0,0 @@
|
||||
import ConfigDefault from '../../Data/SettingsDefault.ts';
|
||||
import ConfigData from '../../Data/SettingsData';
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
import save from '../../InitSaveLoad/save';
|
||||
import CMLoopHook from '../../Main/LoopHook';
|
||||
import UpdateColours from '../../Disp/HelperFunctions/UpdateColours';
|
||||
|
||||
/** Functions related to saving, loading and restoring all settings */
|
||||
|
||||
/**
|
||||
* This function saves the config of CookieMonster without saving any of the other save-data
|
||||
* This allows saving in between the autosave intervals
|
||||
* It is called by CM.Config.LoadConfig(), CM.Config.RestoreDefault(), CM.Config.ToggleConfig(),
|
||||
* CM.ToggleConfigVolume() and changes in options with type "url", "color" or "numscale"
|
||||
*/
|
||||
export function SaveConfig() {
|
||||
const saveString = b64_to_utf8(
|
||||
unescape(localStorage.getItem('CookieClickerGame')).split('!END!')[0],
|
||||
);
|
||||
const CookieMonsterSave = saveString.match(/CookieMonster.*(;|$)/);
|
||||
if (CookieMonsterSave !== null) {
|
||||
const newSaveString = saveString.replace(CookieMonsterSave[0], `CookieMonster:${save()}`);
|
||||
localStorage.setItem('CookieClickerGame', escape(`${utf8_to_b64(newSaveString)}!END!`));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This function loads the config of CookieMonster saved in localStorage and loads it into CMOptions
|
||||
* It is called by CM.Main.DelayInit() and CM.Config.RestoreDefault()
|
||||
*/
|
||||
export function LoadConfig(settings) {
|
||||
// This removes cookies left from earlier versions of CookieMonster
|
||||
if (typeof localStorage.CMConfig !== 'undefined') {
|
||||
delete localStorage.CMConfig;
|
||||
}
|
||||
if (settings !== undefined) {
|
||||
CMOptions = settings;
|
||||
|
||||
if (typeof CMOptions.Colors !== 'undefined') {
|
||||
delete CMOptions.Colors;
|
||||
}
|
||||
if (typeof CMOptions.Colours !== 'undefined') {
|
||||
delete CMOptions.Colours;
|
||||
}
|
||||
|
||||
// Check values
|
||||
let mod = false;
|
||||
Object.keys(ConfigDefault).forEach((i) => {
|
||||
if (typeof CMOptions[i] === 'undefined') {
|
||||
mod = true;
|
||||
CMOptions[i] = ConfigDefault[i];
|
||||
} else if (i === 'Header') {
|
||||
Object.keys(ConfigDefault.Header).forEach((j) => {
|
||||
if (
|
||||
typeof CMOptions[i][j] === 'undefined' ||
|
||||
!(CMOptions[i][j] > -1 && CMOptions[i][j] < 2)
|
||||
) {
|
||||
mod = true;
|
||||
CMOptions[i][j] = ConfigDefault[i][j];
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
if (mod) SaveConfig();
|
||||
CMLoopHook(); // Do loop once
|
||||
Object.keys(ConfigDefault).forEach((i) => {
|
||||
if (i !== 'Header' && typeof ConfigData[i].func !== 'undefined') {
|
||||
ConfigData[i].func();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Default values
|
||||
LoadConfig(ConfigDefault);
|
||||
}
|
||||
Game.UpdateMenu();
|
||||
UpdateColours();
|
||||
}
|
||||
@@ -1,26 +1,35 @@
|
||||
/** Called by the "func" of individual settings */
|
||||
|
||||
import UpdateBackground from '../Disp/HelperFunctions/UpdateBackground';
|
||||
import { CMOptions } from './VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function changes the position of both the bottom and timer bar
|
||||
*/
|
||||
export function UpdateBotTimerBarPosition() {
|
||||
if (CMOptions.BotBar === 1 && CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarPos === 1
|
||||
) {
|
||||
l('CMBotBar').style.bottom = l('CMTimerBar').style.height;
|
||||
l('game').style.bottom = `${Number(l('CMTimerBar').style.height.replace('px', '')) + 70}px`;
|
||||
} else if (CMOptions.BotBar === 1) {
|
||||
} else if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar === 1) {
|
||||
l('CMBotBar').style.bottom = '0px';
|
||||
l('game').style.bottom = '70px';
|
||||
} else if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 1) {
|
||||
} else if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarPos === 1
|
||||
) {
|
||||
l('game').style.bottom = l('CMTimerBar').style.height;
|
||||
} else {
|
||||
// No bars
|
||||
l('game').style.bottom = '0px';
|
||||
}
|
||||
|
||||
if (CMOptions.TimerBar === 1 && CMOptions.TimerBarPos === 0) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1 &&
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarPos === 0
|
||||
) {
|
||||
l('sectionLeft').style.top = l('CMTimerBar').style.height;
|
||||
} else {
|
||||
l('sectionLeft').style.top = '';
|
||||
@@ -33,7 +42,8 @@ export function UpdateBotTimerBarPosition() {
|
||||
* This function changes the visibility of the timer bar
|
||||
*/
|
||||
export function ToggleTimerBar() {
|
||||
if (CMOptions.TimerBar === 1) l('CMTimerBar').style.display = '';
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBar === 1)
|
||||
l('CMTimerBar').style.display = '';
|
||||
else l('CMTimerBar').style.display = 'none';
|
||||
UpdateBotTimerBarPosition();
|
||||
}
|
||||
@@ -42,7 +52,7 @@ export function ToggleTimerBar() {
|
||||
* This function changes the position of the timer bar
|
||||
*/
|
||||
export function ToggleTimerBarPos() {
|
||||
if (CMOptions.TimerBarPos === 0) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.TimerBarPos === 0) {
|
||||
l('CMTimerBar').style.width = '30%';
|
||||
l('CMTimerBar').style.bottom = '';
|
||||
l('game').insertBefore(l('CMTimerBar'), l('sectionLeft'));
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import ConfigData from '../Data/SettingsData';
|
||||
import { SaveConfig } from './SaveLoadReload/SaveLoadReloadSettings';
|
||||
import { CMOptions } from './VariablesAndData';
|
||||
import saveFramework from '@cookiemonsterteam/cookiemonsterframework/src/saveDataFunctions/saveFramework';
|
||||
import settings from '../Data/settings';
|
||||
|
||||
/** Functions related to toggling or changing an individual setting */
|
||||
|
||||
@@ -13,18 +12,21 @@ export const ConfigPrefix = 'CMConfig';
|
||||
* @param {string} config The name of the option
|
||||
*/
|
||||
export function ToggleConfig(config) {
|
||||
CMOptions[config] += 1;
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] += 1;
|
||||
|
||||
if (CMOptions[config] === ConfigData[config].label.length) {
|
||||
CMOptions[config] = 0;
|
||||
if (ConfigData[config].toggle) l(ConfigPrefix + config).className = 'option off';
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] ===
|
||||
settings[config].label.length
|
||||
) {
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] = 0;
|
||||
if (settings[config].toggle) l(ConfigPrefix + config).className = 'option off';
|
||||
} else l(ConfigPrefix + config).className = 'option';
|
||||
|
||||
if (typeof ConfigData[config].func !== 'undefined') {
|
||||
ConfigData[config].func();
|
||||
if (typeof settings[config].func !== 'undefined') {
|
||||
settings[config].func();
|
||||
}
|
||||
|
||||
SaveConfig();
|
||||
saveFramework();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -35,9 +37,11 @@ export function ToggleConfig(config) {
|
||||
export function ToggleConfigVolume(config) {
|
||||
if (l(`slider${config}`) !== null) {
|
||||
l(`slider${config}right`).innerHTML = `${l(`slider${config}`).value}%`;
|
||||
CMOptions[config] = Math.round(l(`slider${config}`).value);
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings[config] = Math.round(
|
||||
l(`slider${config}`).value,
|
||||
);
|
||||
}
|
||||
SaveConfig();
|
||||
saveFramework();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -46,7 +50,8 @@ export function ToggleConfigVolume(config) {
|
||||
* @param {string} config The name of the header
|
||||
*/
|
||||
export function ToggleHeader(config) {
|
||||
CMOptions.Header[config] += 1;
|
||||
if (CMOptions.Header[config] > 1) CMOptions.Header[config] = 0;
|
||||
SaveConfig();
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[config] += 1;
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[config] > 1)
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[config] = 0;
|
||||
saveFramework();
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import { UpdateBotBar } from '../../Disp/InfoBars/BottomBar';
|
||||
import { UpdateBotTimerBarPosition } from '../SpecificToggles';
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggle the bottom bar
|
||||
* It is called by CM.Disp.UpdateAscendState() and a change in CMOptions.BotBar
|
||||
* It is called by CM.Disp.UpdateAscendState() and a change in Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar
|
||||
*/
|
||||
export default function ToggleBotBar() {
|
||||
if (CMOptions.BotBar === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.BotBar === 1) {
|
||||
l('CMBotBar').style.display = '';
|
||||
UpdateBotBar();
|
||||
} else {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { CMSayTime } from '../../Disp/VariablesAndData';
|
||||
import { BackupFunctions } from '../../Main/VariablesAndData';
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function changes some of the time-displays in the game to be more detailed
|
||||
* It is called by a change in CM.Options.DetailedTime
|
||||
*/
|
||||
export default function ToggleDetailedTime() {
|
||||
if (CMOptions.DetailedTime === 1) Game.sayTime = CMSayTime;
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.DetailedTime === 1)
|
||||
Game.sayTime = CMSayTime;
|
||||
else Game.sayTime = BackupFunctions.sayTime;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import { CacheGoldenShimmersByID } from '../../Cache/VariablesAndData';
|
||||
import { GCTimers } from '../../Disp/VariablesAndData';
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggles GC Timers are visible
|
||||
* It is called by a change in CM.Options.GCTimer
|
||||
*/
|
||||
export default function ToggleGCTimer() {
|
||||
if (CMOptions.GCTimer === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.GCTimer === 1) {
|
||||
Object.keys(GCTimers).forEach((i) => {
|
||||
GCTimers[i].style.display = 'block';
|
||||
GCTimers[i].style.left = CacheGoldenShimmersByID[i].l.style.left;
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function updates the display setting of the two objects created by CM.Disp.CreateWrinklerButtons()
|
||||
* It is called by changes in CM.Options.WrinklerButtons
|
||||
*/
|
||||
export default function ToggleSectionHideButtons() {
|
||||
if (CMOptions.HideSectionsButtons) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.HideSectionsButtons) {
|
||||
l('CMSectionHidButtons').style.display = '';
|
||||
} else {
|
||||
l('CMSectionHidButtons').style.display = 'none';
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggles the position of the warnings created by CM.Disp.TooltipCreateWarningSection()
|
||||
* It is called by a change in CM.Options.ToolWarnPos
|
||||
@@ -7,7 +5,7 @@ import { CMOptions } from '../VariablesAndData';
|
||||
*/
|
||||
export default function ToggleToolWarnPos() {
|
||||
if (l('CMDispTooltipWarningParent') !== null) {
|
||||
if (CMOptions.ToolWarnPos === 0) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.ToolWarnPos === 0) {
|
||||
l('CMDispTooltipWarningParent').style.top = 'auto';
|
||||
l('CMDispTooltipWarningParent').style.margin = '4px -4px';
|
||||
l('CMDispTooltipWarningParent').style.padding = '3px 4px';
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
import UpdateUpgrades from '../../Disp/BuildingsUpgrades/Upgrades';
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggles the upgrade bar and the colours of upgrades
|
||||
* It is called by a change in CM.Options.UpBarColor
|
||||
*/
|
||||
export default function ToggleUpgradeBarAndColor() {
|
||||
if (CMOptions.UpBarColor === 1) {
|
||||
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor === 1) {
|
||||
// Colours and bar on
|
||||
l('CMUpgradeBar').style.display = '';
|
||||
UpdateUpgrades();
|
||||
} else if (CMOptions.UpBarColor === 2) {
|
||||
} else if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpBarColor === 2) {
|
||||
// Colours on and bar off
|
||||
l('CMUpgradeBar').style.display = 'none';
|
||||
UpdateUpgrades();
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function toggles the position of the upgrade bar from fixed or non-fixed mode
|
||||
* It is called by a change in CM.Options.UpgradeBarFixedPos
|
||||
*/
|
||||
export default function ToggleUpgradeBarFixedPos() {
|
||||
if (CMOptions.UpgradeBarFixedPos === 1) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.UpgradeBarFixedPos === 1
|
||||
) {
|
||||
// Fix to top of screen when scrolling
|
||||
l('CMUpgradeBar').style.position = 'sticky';
|
||||
l('CMUpgradeBar').style.top = '0px';
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { CMOptions } from '../VariablesAndData';
|
||||
|
||||
/**
|
||||
* This function updates the display setting of the two objects created by CM.Disp.CreateWrinklerButtons()
|
||||
* It is called by changes in CM.Options.WrinklerButtons
|
||||
*/
|
||||
export default function ToggleWrinklerButtons() {
|
||||
if (CMOptions.WrinklerButtons && Game.elderWrath) {
|
||||
if (
|
||||
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.WrinklerButtons &&
|
||||
Game.elderWrath
|
||||
) {
|
||||
l('PopAllNormalWrinklerButton').style.display = '';
|
||||
l('PopFattestWrinklerButton').style.display = '';
|
||||
} else {
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
export let CMOptions = {}; // eslint-disable-line prefer-const
|
||||
export const ConfigPrefix = 'CMConfig';
|
||||
const ConfigPrefix = 'CMConfig';
|
||||
export default ConfigPrefix;
|
||||
|
||||
Reference in New Issue
Block a user