mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-16 06:18:42 +02:00
51 lines
2.0 KiB
TypeScript
51 lines
2.0 KiB
TypeScript
import { WorkerScript } from "../../../src/Netscript/WorkerScript";
|
|
import { NetscriptFunctions, type NSFull } from "../../../src/NetscriptFunctions";
|
|
import type { ScriptFilePath } from "../../../src/Paths/ScriptFilePath";
|
|
import { PlayerObject } from "../../../src/PersonObjects/Player/PlayerObject";
|
|
import { Player, setPlayer } from "../../../src/Player";
|
|
import { RunningScript } from "../../../src/Script/RunningScript";
|
|
import { GetServerOrThrow, initForeignServers, prestigeAllServers } from "../../../src/Server/AllServers";
|
|
import { SpecialServers } from "../../../src/Server/data/SpecialServers";
|
|
import { initSourceFiles } from "../../../src/SourceFile/SourceFiles";
|
|
import { FormatsNeedToChange } from "../../../src/ui/formatNumber";
|
|
import { Router } from "../../../src/ui/GameRoot";
|
|
|
|
export function initGameEnvironment() {
|
|
// We need to patch this function. Some APIs call it, but it only works properly after the main UI is loaded.
|
|
Router.toPage = () => {};
|
|
|
|
/**
|
|
* In src\ui\formatNumber.ts, there are some variables that need to be initialized before other functions can be
|
|
* called. We have to call FormatsNeedToChange.emit() to initialize those variables.
|
|
*/
|
|
FormatsNeedToChange.emit();
|
|
|
|
initSourceFiles();
|
|
}
|
|
|
|
export function setupBasicTestingEnvironment(): void {
|
|
prestigeAllServers();
|
|
setPlayer(new PlayerObject());
|
|
Player.init();
|
|
Player.sourceFiles.set(4, 3);
|
|
initForeignServers(Player.getHomeComputer());
|
|
}
|
|
|
|
export function getNS(): NSFull {
|
|
const home = GetServerOrThrow(SpecialServers.Home);
|
|
home.maxRam = 1024;
|
|
const filePath = "test.js" as ScriptFilePath;
|
|
home.writeToScriptFile(filePath, "");
|
|
const script = home.scripts.get(filePath);
|
|
if (!script) {
|
|
throw new Error("Invalid script");
|
|
}
|
|
const runningScript = new RunningScript(script, 1024);
|
|
const workerScript = new WorkerScript(runningScript, 1, NetscriptFunctions);
|
|
const ns = workerScript.env.vars;
|
|
if (!ns) {
|
|
throw new Error("Invalid NS instance");
|
|
}
|
|
return ns;
|
|
}
|