import { RefField } from "./RefField"; import { OnUpdate, Parent, Copy, ToScriptString, ToString } from "./FieldSymbols"; import { Scripting } from "../client/util/Scripting"; export abstract class ObjectField { public [OnUpdate](diff?: any) { } public [Parent]?: RefField | ObjectField; abstract [Copy](): ObjectField; abstract [ToScriptString](): string; abstract [ToString](): string; } export namespace ObjectField { export function MakeCopy(field: T) { return field?.[Copy](); } } Scripting.addGlobal(ObjectField);