aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/Scripting.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/util/Scripting.ts')
-rw-r--r--src/client/util/Scripting.ts51
1 files changed, 43 insertions, 8 deletions
diff --git a/src/client/util/Scripting.ts b/src/client/util/Scripting.ts
index ab577315c..b34bf0406 100644
--- a/src/client/util/Scripting.ts
+++ b/src/client/util/Scripting.ts
@@ -49,15 +49,38 @@ export function isCompileError(toBeDetermined: CompileResult): toBeDetermined is
export namespace Scripting {
export function addGlobal(global: { name: string }): void;
export function addGlobal(name: string, global: any): void;
- export function addGlobal(nameOrGlobal: any, global?: any) {
- let n: string;
+
+ export function addGlobal(global: { name: string }, decription?: string, params?: string): void;
+ export function addGlobal(global: { name: string }, decription?: string, params?: string, name?: string): void;
+
+ export function addGlobal(first: any, second?: any, third?: string, fourth?: string) {
+ let n: any;
let obj: any;
- if (global !== undefined && typeof nameOrGlobal === "string") {
- n = nameOrGlobal;
- obj = global;
- } else if (nameOrGlobal && typeof nameOrGlobal.name === "string") {
- n = nameOrGlobal.name;
- obj = nameOrGlobal;
+
+ console.log("adding global");
+
+ if (second !== undefined) {
+ if (typeof first === "string") {
+ console.log("name first");
+ n = first;
+ obj = second;
+ } else {
+ obj = [first];
+ obj.push(second);
+ if (third !== undefined) {
+ obj.push(third);
+ }
+ if (fourth !== undefined) {
+ console.log("WE SHOULD BE HERE");
+ n = fourth;
+ } else {
+ console.log("HOW DID WE GET HERE");
+ n = first.name;
+ }
+ }
+ } else if (first && typeof first.name === "string") {
+ n = first.name;
+ obj = first;
} else {
throw new Error("Must either register an object with a name, or give a name and an object");
}
@@ -75,6 +98,14 @@ export namespace Scripting {
scriptingGlobals = globals;
}
+ export function removeGlobal(name: string) {
+ if (_scriptingGlobals.hasKey(name)) {
+ delete _scriptingGlobals.container[name];
+ return true;
+ }
+ return false;
+ }
+
export function resetScriptingGlobals() {
scriptingGlobals = _scriptingGlobals;
}
@@ -87,6 +118,10 @@ export namespace Scripting {
export function getGlobals() {
return Object.keys(scriptingGlobals);
}
+
+ export function getGlobalObj() {
+ return _scriptingGlobals;
+ }
}
export function scriptingGlobal(constructor: { new(...args: any[]): any }) {