mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-18 23:38:35 +02:00
Implemented new Editor Option: CodeMirror. (Vim mode not 100% done yet)
This commit is contained in:
83
src/Settings/SettingEnums.ts
Normal file
83
src/Settings/SettingEnums.ts
Normal file
@@ -0,0 +1,83 @@
|
||||
// Enums that defined allowed values for setting configuration
|
||||
|
||||
export enum CodeMirrorThemeSetting {
|
||||
Monokai = "monokai",
|
||||
Day_3024 = "3024-day",
|
||||
Night_3024 = "3024-night",
|
||||
abcdef = "abcdef",
|
||||
Ambiance_mobile = "ambiance-mobile",
|
||||
Ambiance = "ambiance",
|
||||
Base16_dark = "base16-dark",
|
||||
Base16_light = "base16-light",
|
||||
Bespin = "bespin",
|
||||
Blackboard = "blackboard",
|
||||
Cobalt = "cobalt",
|
||||
Colorforth = "colorforth",
|
||||
Darcula = "darcula",
|
||||
Dracula = "dracula",
|
||||
Duotone_dark = "duotone-dark",
|
||||
Duotone_light = "duotone-light",
|
||||
Eclipse = "eclipse",
|
||||
Elegant = "elegant",
|
||||
Erlang_dark = "erlang-dark",
|
||||
Gruvbox_dark = "gruvbox-dark",
|
||||
Hopscotch = "hopscotch",
|
||||
Icecoder = "icecoder",
|
||||
Idea = "idea",
|
||||
Isotope = "isotope",
|
||||
Lesser_dark = "lesser-dark",
|
||||
Liquibyte = "liquibyte",
|
||||
Lucario = "lucario",
|
||||
Material = "material",
|
||||
Mbo = "mbo",
|
||||
Mdn_like = "mdn-like",
|
||||
Midnight = "midnight",
|
||||
Neat = "neat",
|
||||
Neo = "neo",
|
||||
Night = "night",
|
||||
Oceanic_next = "oceanic-next",
|
||||
Panda_syntax = "panda-syntax",
|
||||
Paraiso_dark = "paraiso-dark",
|
||||
Paraiso_light = "paraiso-light",
|
||||
Pastel_on_dark = "pastel-on-dark",
|
||||
Railscasts = "railscasts",
|
||||
Rubyblue = "rubyblue",
|
||||
Seti = "seti",
|
||||
Shadowfox = "shadowfox",
|
||||
Solarized = "solarized",
|
||||
ssms = "ssms",
|
||||
The_matrix = "the-matrix",
|
||||
Tomorrow_night_bright = "tomorrow-night-bright",
|
||||
Tomorrow_night_eighties = "tomorrow-night-eighties",
|
||||
Ttcn = "ttcn",
|
||||
Twilight = "twilight",
|
||||
Vibrant_ink = "vibrant-ink",
|
||||
xq_dark = "xq-dark",
|
||||
xq_light = "xq-light",
|
||||
Yeti = "yeti",
|
||||
Zenburn = "zenburn",
|
||||
}
|
||||
/**
|
||||
* Allowed values for the "Editor" setting
|
||||
*/
|
||||
export enum EditorSetting {
|
||||
Ace = "Ace",
|
||||
CodeMirror = "CodeMirror",
|
||||
}
|
||||
|
||||
/**
|
||||
* Allowed values for the 'OwnedAugmentationsOrder' setting
|
||||
*/
|
||||
export enum PurchaseAugmentationsOrderSetting {
|
||||
Cost,
|
||||
Default,
|
||||
Reputation,
|
||||
}
|
||||
|
||||
/**
|
||||
* Allowed values for the 'OwnedAugmentationsOrder' setting
|
||||
*/
|
||||
export enum OwnedAugmentationsOrderSetting {
|
||||
Alphabetically,
|
||||
AcquirementTime,
|
||||
}
|
||||
140
src/Settings/Settings.ts
Normal file
140
src/Settings/Settings.ts
Normal file
@@ -0,0 +1,140 @@
|
||||
import { ISelfInitializer, ISelfLoading } from "../types";
|
||||
import { CodeMirrorThemeSetting,
|
||||
EditorSetting,
|
||||
OwnedAugmentationsOrderSetting,
|
||||
PurchaseAugmentationsOrderSetting } from "./SettingEnums";
|
||||
|
||||
/**
|
||||
* Represents the default settings the player could customize.
|
||||
*/
|
||||
interface IDefaultSettings {
|
||||
/**
|
||||
* How often the game should autosave the player's progress, in seconds.
|
||||
*/
|
||||
AutosaveInterval: number;
|
||||
|
||||
/**
|
||||
* How many milliseconds between execution points for Netscript 1 statements.
|
||||
*/
|
||||
CodeInstructionRunTime: number;
|
||||
|
||||
/**
|
||||
* Whether global keyboard shortcuts should be recognized throughout the game.
|
||||
*/
|
||||
DisableHotkeys: boolean;
|
||||
|
||||
/**
|
||||
* Locale used for display numbers
|
||||
*/
|
||||
Locale: string;
|
||||
|
||||
/**
|
||||
* Limit the number of log entries for each script being executed on each server.
|
||||
*/
|
||||
MaxLogCapacity: number;
|
||||
|
||||
/**
|
||||
* Limit how many entries can be written to a Netscript Port before entries start to get pushed out.
|
||||
*/
|
||||
MaxPortCapacity: number;
|
||||
|
||||
/**
|
||||
* Whether the player should be asked to confirm purchasing each and every augmentation.
|
||||
*/
|
||||
SuppressBuyAugmentationConfirmation: boolean;
|
||||
|
||||
/**
|
||||
* Whether the user should be prompted to join each faction via a dialog box.
|
||||
*/
|
||||
SuppressFactionInvites: boolean;
|
||||
|
||||
/**
|
||||
* Whether to show a popup message when player is hospitalized from taking too much damage
|
||||
*/
|
||||
SuppressHospitalizationPopup: boolean;
|
||||
|
||||
/**
|
||||
* Whether the user should be shown a dialog box whenever they receive a new message file.
|
||||
*/
|
||||
SuppressMessages: boolean;
|
||||
|
||||
/**
|
||||
* Whether the user should be asked to confirm travelling between cities.
|
||||
*/
|
||||
SuppressTravelConfirmation: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents all possible settings the player wants to customize to their play style.
|
||||
*/
|
||||
interface ISettings extends IDefaultSettings {
|
||||
/**
|
||||
* Which editor should be used (CodeMirror or Ace)?
|
||||
*/
|
||||
Editor: EditorSetting;
|
||||
|
||||
/**
|
||||
* The keybinding to use in the script editor.
|
||||
* TODO: This should really be an enum of allowed values.
|
||||
*/
|
||||
EditorKeybinding: string;
|
||||
|
||||
/**
|
||||
* The theme used in the script editor.
|
||||
* TODO: This should really be an enum of allowed values.
|
||||
*/
|
||||
EditorTheme: string | CodeMirrorThemeSetting;
|
||||
|
||||
/**
|
||||
* What order the player's owned Augmentations/Source Files should be displayed in
|
||||
*/
|
||||
OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting;
|
||||
|
||||
/**
|
||||
* What order the Augmentations should be displayed in when purchasing from a Faction
|
||||
*/
|
||||
PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting;
|
||||
}
|
||||
|
||||
const defaultSettings: IDefaultSettings = {
|
||||
AutosaveInterval: 60,
|
||||
CodeInstructionRunTime: 50,
|
||||
DisableHotkeys: false,
|
||||
Locale: "en",
|
||||
MaxLogCapacity: 50,
|
||||
MaxPortCapacity: 50,
|
||||
SuppressBuyAugmentationConfirmation: false,
|
||||
SuppressFactionInvites: false,
|
||||
SuppressHospitalizationPopup: false,
|
||||
SuppressMessages: false,
|
||||
SuppressTravelConfirmation: false,
|
||||
};
|
||||
|
||||
/**
|
||||
* The current options the player has customized to their play style.
|
||||
*/
|
||||
// tslint:disable-next-line:variable-name
|
||||
export const Settings: ISettings & ISelfInitializer & ISelfLoading = {
|
||||
AutosaveInterval: defaultSettings.AutosaveInterval,
|
||||
CodeInstructionRunTime: 25,
|
||||
DisableHotkeys: defaultSettings.DisableHotkeys,
|
||||
Editor: EditorSetting.Ace,
|
||||
EditorKeybinding: "ace",
|
||||
EditorTheme: "Monokai",
|
||||
Locale: "en",
|
||||
MaxLogCapacity: defaultSettings.MaxLogCapacity,
|
||||
MaxPortCapacity: defaultSettings.MaxPortCapacity,
|
||||
OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting.AcquirementTime,
|
||||
PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting.Default,
|
||||
SuppressBuyAugmentationConfirmation: defaultSettings.SuppressBuyAugmentationConfirmation,
|
||||
SuppressFactionInvites: defaultSettings.SuppressFactionInvites,
|
||||
SuppressHospitalizationPopup: defaultSettings.SuppressHospitalizationPopup,
|
||||
SuppressMessages: defaultSettings.SuppressMessages,
|
||||
SuppressTravelConfirmation: defaultSettings.SuppressTravelConfirmation,
|
||||
init() {
|
||||
Object.assign(Settings, defaultSettings);
|
||||
},
|
||||
load(saveString: string) {
|
||||
Object.assign(Settings, JSON.parse(saveString));
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user