mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-09-19 20:38:42 +02:00
Add ns.ui.[getStyles, setStyles, resetStyles]
Adds three Netscript functions to manipulate the user's styles like the player can with theme.
This commit is contained in:
parent
e9db656e13
commit
9b638b911f
23
markdown/bitburner.userinterface.getstyles.md
Normal file
23
markdown/bitburner.userinterface.getstyles.md
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||||
|
|
||||||
|
[Home](./index.md) > [bitburner](./bitburner.md) > [UserInterface](./bitburner.userinterface.md) > [getStyles](./bitburner.userinterface.getstyles.md)
|
||||||
|
|
||||||
|
## UserInterface.getStyles() method
|
||||||
|
|
||||||
|
Get the current styles
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
getStyles(): IStyleSettings;
|
||||||
|
```
|
||||||
|
<b>Returns:</b>
|
||||||
|
|
||||||
|
IStyleSettings
|
||||||
|
|
||||||
|
An object containing the player's styles
|
||||||
|
|
||||||
|
## Remarks
|
||||||
|
|
||||||
|
RAM cost: cost: 0 GB
|
||||||
|
|
@ -16,7 +16,10 @@ interface UserInterface
|
|||||||
|
|
||||||
| Method | Description |
|
| Method | Description |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
|
| [getStyles()](./bitburner.userinterface.getstyles.md) | Get the current styles |
|
||||||
| [getTheme()](./bitburner.userinterface.gettheme.md) | Get the current theme |
|
| [getTheme()](./bitburner.userinterface.gettheme.md) | Get the current theme |
|
||||||
|
| [resetStyles()](./bitburner.userinterface.resetstyles.md) | Resets the player's styles to the default values |
|
||||||
| [resetTheme()](./bitburner.userinterface.resettheme.md) | Resets the player's theme to the default values |
|
| [resetTheme()](./bitburner.userinterface.resettheme.md) | Resets the player's theme to the default values |
|
||||||
|
| [setStyles(newStyles)](./bitburner.userinterface.setstyles.md) | Sets the current styles |
|
||||||
| [setTheme(newTheme)](./bitburner.userinterface.settheme.md) | Sets the current theme |
|
| [setTheme(newTheme)](./bitburner.userinterface.settheme.md) | Sets the current theme |
|
||||||
|
|
||||||
|
21
markdown/bitburner.userinterface.resetstyles.md
Normal file
21
markdown/bitburner.userinterface.resetstyles.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||||
|
|
||||||
|
[Home](./index.md) > [bitburner](./bitburner.md) > [UserInterface](./bitburner.userinterface.md) > [resetStyles](./bitburner.userinterface.resetstyles.md)
|
||||||
|
|
||||||
|
## UserInterface.resetStyles() method
|
||||||
|
|
||||||
|
Resets the player's styles to the default values
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
resetStyles(): void;
|
||||||
|
```
|
||||||
|
<b>Returns:</b>
|
||||||
|
|
||||||
|
void
|
||||||
|
|
||||||
|
## Remarks
|
||||||
|
|
||||||
|
RAM cost: cost: 0 GB
|
||||||
|
|
38
markdown/bitburner.userinterface.setstyles.md
Normal file
38
markdown/bitburner.userinterface.setstyles.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||||
|
|
||||||
|
[Home](./index.md) > [bitburner](./bitburner.md) > [UserInterface](./bitburner.userinterface.md) > [setStyles](./bitburner.userinterface.setstyles.md)
|
||||||
|
|
||||||
|
## UserInterface.setStyles() method
|
||||||
|
|
||||||
|
Sets the current styles
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
setStyles(newStyles: IStyleSettings): void;
|
||||||
|
```
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| newStyles | IStyleSettings | |
|
||||||
|
|
||||||
|
<b>Returns:</b>
|
||||||
|
|
||||||
|
void
|
||||||
|
|
||||||
|
## Remarks
|
||||||
|
|
||||||
|
RAM cost: cost: 0 GB
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
Usage example (NS2)
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const styles = ns.ui.getStyles();
|
||||||
|
styles.fontFamily = 'Comic Sans Ms';
|
||||||
|
ns.ui.setStyles(styles);
|
||||||
|
```
|
||||||
|
|
@ -364,6 +364,9 @@ export const RamCosts: IMap<any> = {
|
|||||||
getTheme: 0,
|
getTheme: 0,
|
||||||
setTheme: 0,
|
setTheme: 0,
|
||||||
resetTheme: 0,
|
resetTheme: 0,
|
||||||
|
getStyles: 0,
|
||||||
|
setStyles: 0,
|
||||||
|
resetStyles: 0,
|
||||||
},
|
},
|
||||||
|
|
||||||
heart: {
|
heart: {
|
||||||
|
@ -2,10 +2,11 @@ import { INetscriptHelper } from "./INetscriptHelper";
|
|||||||
import { WorkerScript } from "../Netscript/WorkerScript";
|
import { WorkerScript } from "../Netscript/WorkerScript";
|
||||||
import { IPlayer } from "../PersonObjects/IPlayer";
|
import { IPlayer } from "../PersonObjects/IPlayer";
|
||||||
import { getRamCost } from "../Netscript/RamCostGenerator";
|
import { getRamCost } from "../Netscript/RamCostGenerator";
|
||||||
import { UserInterface as IUserInterface, UserInterfaceTheme } from "../ScriptEditor/NetscriptDefinitions";
|
import { IStyleSettings, UserInterface as IUserInterface, UserInterfaceTheme } from "../ScriptEditor/NetscriptDefinitions";
|
||||||
import { Settings } from "../Settings/Settings";
|
import { Settings } from "../Settings/Settings";
|
||||||
import { ThemeEvents } from "../ui/React/Theme";
|
import { ThemeEvents } from "../ui/React/Theme";
|
||||||
import { defaultTheme } from "../Settings/Themes";
|
import { defaultTheme } from "../Settings/Themes";
|
||||||
|
import { defaultStyles } from "../Settings/Styles";
|
||||||
|
|
||||||
export function NetscriptUserInterface(
|
export function NetscriptUserInterface(
|
||||||
player: IPlayer,
|
player: IPlayer,
|
||||||
@ -18,6 +19,11 @@ export function NetscriptUserInterface(
|
|||||||
return { ...Settings.theme };
|
return { ...Settings.theme };
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getStyles: function (): IStyleSettings {
|
||||||
|
helper.updateDynamicRam("getStyles", getRamCost(player, "ui", "getStyles"));
|
||||||
|
return { ...Settings.styles };
|
||||||
|
},
|
||||||
|
|
||||||
setTheme: function (newTheme: UserInterfaceTheme): void {
|
setTheme: function (newTheme: UserInterfaceTheme): void {
|
||||||
helper.updateDynamicRam("setTheme", getRamCost(player, "ui", "setTheme"));
|
helper.updateDynamicRam("setTheme", getRamCost(player, "ui", "setTheme"));
|
||||||
const hex = /^(#)((?:[A-Fa-f0-9]{3}){1,2})$/;
|
const hex = /^(#)((?:[A-Fa-f0-9]{3}){1,2})$/;
|
||||||
@ -43,11 +49,41 @@ export function NetscriptUserInterface(
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setStyles: function (newStyles: IStyleSettings): void {
|
||||||
|
helper.updateDynamicRam("setStyles", getRamCost(player, "ui", "setStyles"));
|
||||||
|
|
||||||
|
const currentStyles = {...Settings.styles}
|
||||||
|
const errors: string[] = [];
|
||||||
|
for (const key of Object.keys(newStyles)) {
|
||||||
|
if (!((currentStyles as any)[key])) {
|
||||||
|
// Invalid key
|
||||||
|
errors.push(`Invalid key "${key}"`);
|
||||||
|
} else {
|
||||||
|
(currentStyles as any)[key] = (newStyles as any)[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errors.length === 0) {
|
||||||
|
Object.assign(Settings.styles, currentStyles);
|
||||||
|
ThemeEvents.emit();
|
||||||
|
workerScript.log("ui.setStyles", () => `Successfully set styles`);
|
||||||
|
} else {
|
||||||
|
workerScript.log("ui.setStyles", () => `Failed to set styles. Errors: ${errors.join(', ')}`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
resetTheme: function (): void {
|
resetTheme: function (): void {
|
||||||
helper.updateDynamicRam("resetTheme", getRamCost(player, "ui", "resetTheme"));
|
helper.updateDynamicRam("resetTheme", getRamCost(player, "ui", "resetTheme"));
|
||||||
Settings.theme = defaultTheme;
|
Settings.theme = { ...defaultTheme };
|
||||||
ThemeEvents.emit();
|
ThemeEvents.emit();
|
||||||
workerScript.log("ui.resetTheme", () => `Reinitialized theme to default`);
|
workerScript.log("ui.resetTheme", () => `Reinitialized theme to default`);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
resetStyles: function (): void {
|
||||||
|
helper.updateDynamicRam("resetStyles", getRamCost(player, "ui", "resetStyles"));
|
||||||
|
Settings.styles = { ...defaultStyles };
|
||||||
|
ThemeEvents.emit();
|
||||||
|
workerScript.log("ui.resetStyles", () => `Reinitialized styles to default`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
42
src/ScriptEditor/NetscriptDefinitions.d.ts
vendored
42
src/ScriptEditor/NetscriptDefinitions.d.ts
vendored
@ -1,3 +1,5 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @public
|
* @public
|
||||||
*/
|
*/
|
||||||
@ -3880,6 +3882,37 @@ interface UserInterface {
|
|||||||
* RAM cost: cost: 0 GB
|
* RAM cost: cost: 0 GB
|
||||||
*/
|
*/
|
||||||
resetTheme(): void;
|
resetTheme(): void;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current styles
|
||||||
|
* @remarks
|
||||||
|
* RAM cost: cost: 0 GB
|
||||||
|
*
|
||||||
|
* @returns An object containing the player's styles
|
||||||
|
*/
|
||||||
|
getStyles(): IStyleSettings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the current styles
|
||||||
|
* @remarks
|
||||||
|
* RAM cost: cost: 0 GB
|
||||||
|
* @example
|
||||||
|
* Usage example (NS2)
|
||||||
|
* ```ts
|
||||||
|
* const styles = ns.ui.getStyles();
|
||||||
|
* styles.fontFamily = 'Comic Sans Ms';
|
||||||
|
* ns.ui.setStyles(styles);
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
setStyles(newStyles: IStyleSettings): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resets the player's styles to the default values
|
||||||
|
* @remarks
|
||||||
|
* RAM cost: cost: 0 GB
|
||||||
|
*/
|
||||||
|
resetStyles(): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -6354,3 +6387,12 @@ interface UserInterfaceTheme {
|
|||||||
backgroundsecondary: string;
|
backgroundsecondary: string;
|
||||||
button: string;
|
button: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface Styles
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
interface IStyleSettings {
|
||||||
|
fontFamily: React.CSSProperties["fontFamily"];
|
||||||
|
lineHeight: React.CSSProperties["lineHeight"];
|
||||||
|
}
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { ISelfInitializer, ISelfLoading } from "../types";
|
import { ISelfInitializer, ISelfLoading } from "../types";
|
||||||
import { OwnedAugmentationsOrderSetting, PurchaseAugmentationsOrderSetting } from "./SettingEnums";
|
import { OwnedAugmentationsOrderSetting, PurchaseAugmentationsOrderSetting } from "./SettingEnums";
|
||||||
import { defaultTheme, ITheme } from "./Themes";
|
import { defaultTheme, ITheme } from "./Themes";
|
||||||
import { defaultStyles, IStyleSettings } from "./Styles";
|
import { defaultStyles } from "./Styles";
|
||||||
import { WordWrapOptions } from "../ScriptEditor/ui/Options";
|
import { WordWrapOptions } from "../ScriptEditor/ui/Options";
|
||||||
import { OverviewSettings } from "../ui/React/Overview";
|
import { OverviewSettings } from "../ui/React/Overview";
|
||||||
|
import { IStyleSettings } from "../ScriptEditor/NetscriptDefinitions";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the default settings the player could customize.
|
* Represents the default settings the player could customize.
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
import React from "react";
|
import { IStyleSettings } from "../ScriptEditor/NetscriptDefinitions";
|
||||||
|
|
||||||
export interface IStyleSettings {
|
|
||||||
fontFamily: React.CSSProperties["fontFamily"];
|
|
||||||
lineHeight: React.CSSProperties["lineHeight"];
|
|
||||||
}
|
|
||||||
|
|
||||||
export const defaultStyles: IStyleSettings = {
|
export const defaultStyles: IStyleSettings = {
|
||||||
lineHeight: 1.5,
|
lineHeight: 1.5,
|
||||||
|
@ -11,8 +11,9 @@ import SaveIcon from '@mui/icons-material/Save';
|
|||||||
|
|
||||||
import { ThemeEvents } from "./Theme";
|
import { ThemeEvents } from "./Theme";
|
||||||
import { Settings } from "../../Settings/Settings";
|
import { Settings } from "../../Settings/Settings";
|
||||||
import { IStyleSettings, defaultStyles } from "../../Settings/Styles";
|
import { defaultStyles } from "../../Settings/Styles";
|
||||||
import { Tooltip } from "@mui/material";
|
import { Tooltip } from "@mui/material";
|
||||||
|
import { IStyleSettings } from "../../ScriptEditor/NetscriptDefinitions";
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
open: boolean;
|
open: boolean;
|
||||||
|
Loading…
Reference in New Issue
Block a user