aboutsummaryrefslogtreecommitdiff
path: root/src/fields/ObjectField.ts
diff options
context:
space:
mode:
authorAndy Rickert <andrew_rickert@brown.edu>2020-06-03 16:40:09 -0400
committerAndy Rickert <andrew_rickert@brown.edu>2020-06-03 16:40:09 -0400
commit954948ddd511578af4ca2c50c960765a5a7bc637 (patch)
tree16fafd254a5db95d5c39838d4313d7ddf59753af /src/fields/ObjectField.ts
parent6d8d3c00587c43ae61392db4fe6915ee492c2e4a (diff)
parent9588e56079f7e4ab98da1849f44996656649bc06 (diff)
merge
Diffstat (limited to 'src/fields/ObjectField.ts')
-rw-r--r--src/fields/ObjectField.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/fields/ObjectField.ts b/src/fields/ObjectField.ts
new file mode 100644
index 000000000..9aa1c9b04
--- /dev/null
+++ b/src/fields/ObjectField.ts
@@ -0,0 +1,20 @@
+import { RefField } from "./RefField";
+import { OnUpdate, Parent, Copy, ToScriptString, ToString } from "./FieldSymbols";
+import { Scripting } from "../client/util/Scripting";
+
+export abstract class ObjectField {
+ protected [OnUpdate](diff?: any) { }
+ private [Parent]?: RefField | ObjectField;
+ abstract [Copy](): ObjectField;
+
+ abstract [ToScriptString](): string;
+ abstract [ToString](): string;
+}
+
+export namespace ObjectField {
+ export function MakeCopy<T extends ObjectField>(field: T) {
+ return field?.[Copy]();
+ }
+}
+
+Scripting.addGlobal(ObjectField); \ No newline at end of file