Add an option to suppress the 'Saved Game' toast

This commit is contained in:
Martin Fournier 2021-12-18 08:01:15 -05:00
parent eb002d655a
commit 733f04c343
3 changed files with 36 additions and 1 deletions

@ -67,7 +67,11 @@ class BitburnerSaveObject {
const saveString = this.getSaveString(); const saveString = this.getSaveString();
save(saveString) save(saveString)
.then(() => SnackbarEvents.emit("Game Saved!", "info")) .then(() => {
if (!Settings.SuppressSavedGameToast) {
SnackbarEvents.emit("Game Saved!", "info")
}
})
.catch((err) => console.error(err)); .catch((err) => console.error(err));
} }

@ -103,6 +103,11 @@ interface IDefaultSettings {
*/ */
SuppressTIXPopup: boolean; SuppressTIXPopup: boolean;
/**
* Whether the user should be displayed a toast alert when the game is saved.
*/
SuppressSavedGameToast: boolean;
/* /*
* Theme colors * Theme colors
*/ */
@ -186,6 +191,7 @@ export const defaultSettings: IDefaultSettings = {
SuppressTravelConfirmation: false, SuppressTravelConfirmation: false,
SuppressBladeburnerPopup: false, SuppressBladeburnerPopup: false,
SuppressTIXPopup: false, SuppressTIXPopup: false,
SuppressSavedGameToast: false,
theme: { theme: {
primarylight: "#0f0", primarylight: "#0f0",
@ -251,6 +257,7 @@ export const Settings: ISettings & ISelfInitializer & ISelfLoading = {
SuppressTravelConfirmation: defaultSettings.SuppressTravelConfirmation, SuppressTravelConfirmation: defaultSettings.SuppressTravelConfirmation,
SuppressBladeburnerPopup: defaultSettings.SuppressBladeburnerPopup, SuppressBladeburnerPopup: defaultSettings.SuppressBladeburnerPopup,
SuppressTIXPopup: defaultSettings.SuppressTIXPopup, SuppressTIXPopup: defaultSettings.SuppressTIXPopup,
SuppressSavedGameToast: defaultSettings.SuppressSavedGameToast,
MonacoTheme: "monokai", MonacoTheme: "monokai",
MonacoInsertSpaces: false, MonacoInsertSpaces: false,
MonacoFontSize: 20, MonacoFontSize: 20,

@ -70,6 +70,7 @@ export function GameOptionsRoot(props: IProps): React.ReactElement {
); );
const [suppressTIXPopup, setSuppressTIXPopup] = useState(Settings.SuppressTIXPopup); const [suppressTIXPopup, setSuppressTIXPopup] = useState(Settings.SuppressTIXPopup);
const [suppressBladeburnerPopup, setSuppressBladeburnerPopup] = useState(Settings.SuppressBladeburnerPopup); const [suppressBladeburnerPopup, setSuppressBladeburnerPopup] = useState(Settings.SuppressBladeburnerPopup);
const [suppressSavedGameToast, setSuppresSavedGameToast] = useState(Settings.SuppressSavedGameToast);
const [disableHotkeys, setDisableHotkeys] = useState(Settings.DisableHotkeys); const [disableHotkeys, setDisableHotkeys] = useState(Settings.DisableHotkeys);
const [disableASCIIArt, setDisableASCIIArt] = useState(Settings.DisableASCIIArt); const [disableASCIIArt, setDisableASCIIArt] = useState(Settings.DisableASCIIArt);
@ -138,6 +139,11 @@ export function GameOptionsRoot(props: IProps): React.ReactElement {
Settings.SuppressBladeburnerPopup = event.target.checked; Settings.SuppressBladeburnerPopup = event.target.checked;
} }
function handleSuppressSavedGameToastChange(event: React.ChangeEvent<HTMLInputElement>): void {
setSuppresSavedGameToast(event.target.checked);
Settings.SuppressSavedGameToast = event.target.checked;
}
function handleDisableHotkeysChange(event: React.ChangeEvent<HTMLInputElement>): void { function handleDisableHotkeysChange(event: React.ChangeEvent<HTMLInputElement>): void {
setDisableHotkeys(event.target.checked); setDisableHotkeys(event.target.checked);
Settings.DisableHotkeys = event.target.checked; Settings.DisableHotkeys = event.target.checked;
@ -420,6 +426,24 @@ export function GameOptionsRoot(props: IProps): React.ReactElement {
/> />
</ListItem> </ListItem>
)} )}
<ListItem>
<FormControlLabel
control={
<Switch checked={suppressSavedGameToast} onChange={handleSuppressSavedGameToastChange} />
}
label={
<Tooltip
title={
<Typography>
If this is set, there will be no "Saved Game" toast appearing after save.
</Typography>
}
>
<Typography>Suppress Saved Game Toast</Typography>
</Tooltip>
}
/>
</ListItem>
<ListItem> <ListItem>
<FormControlLabel <FormControlLabel
control={<Switch checked={disableHotkeys} onChange={handleDisableHotkeysChange} />} control={<Switch checked={disableHotkeys} onChange={handleDisableHotkeysChange} />}