import { type NodeDef, registerNode } from '../NodeRegistry'; import { Destroy } from './action/Destroy'; import { Log } from './action/Log'; import { Move } from './action/Move'; import { RestartGame } from './action/RestartGame'; import { SetPosition } from './action/SetPosition'; import { Spawn } from './action/Spawn'; import { StopGame } from './action/StopGame'; import { Abs } from './data/Abs'; import { Add } from './data/Add'; import { And } from './data/And'; import { AxisInput } from './data/AxisInput'; import { BooleanLiteral } from './data/Boolean'; import { Ceil } from './data/Ceil'; import { Clamp } from './data/Clamp'; import { Compare } from './data/Compare'; import { Distance } from './data/Distance'; import { Divide } from './data/Divide'; import { Equals } from './data/Equals'; import { FindText } from './data/FindText'; import { Floor } from './data/Floor'; import { GetPosition } from './data/GetPosition'; import { IsAsset } from './data/IsAsset'; import { IsEnabled } from './data/IsEnabled'; import { IsHovered } from './data/IsHovered'; import { IsTouching } from './data/IsTouching'; import { Join } from './data/Join'; import { KeyIsDown } from './data/KeyIsDown'; import { Length } from './data/Length'; import { Max } from './data/Max'; import { Min } from './data/Min'; import { Modulo } from './data/Modulo'; import { MouseButton } from './data/MouseButton'; import { MousePosition } from './data/MousePosition'; import { Multiply } from './data/Multiply'; import { NameOf } from './data/NameOf'; import { Normalize } from './data/Normalize'; import { Not } from './data/Not'; import { NumberLiteral } from './data/Number'; import { ObjectByName } from './data/ObjectByName'; import { Or } from './data/Or'; import { Owner } from './data/Owner'; import { PackStruct } from './data/PackStruct'; import { Properties } from './data/Properties'; import { Parent } from './data/Parent'; import { Random } from './data/Random'; import { Round } from './data/Round'; import { Self } from './data/Self'; import { Sqrt } from './data/Sqrt'; import { StringLiteral } from './data/String'; import { Substring } from './data/Substring'; import { Subtract } from './data/Subtract'; import { TextureLiteral } from './data/Texture'; import { Time } from './data/Time'; import { ToNumber } from './data/ToNumber'; import { ToText } from './data/ToText'; import { Concat } from './data/Concat'; import { Count } from './data/Count'; import { ExpandStruct } from './data/ExpandStruct'; import { Fill } from './data/Fill'; import { IndexOf } from './data/IndexOf'; import { ItemAt } from './data/ItemAt'; import { ListLiteral } from './data/ListLiteral'; import { SetItem } from './data/SetItem'; import { SubList } from './data/SubList'; import { OnAnimationFinished } from './events/OnAnimationFinished'; import { OnClick } from './events/OnClick'; import { OnCollisionEnter } from './events/OnCollisionEnter'; import { OnCollisionExit } from './events/OnCollisionExit'; import { OnCollisionStay } from './events/OnCollisionStay'; import { OnKeyDown } from './events/OnKeyDown'; import { OnKeyHeld } from './events/OnKeyHeld'; import { OnKeyUp } from './events/OnKeyUp'; import { OnStart } from './events/OnStart'; import { OnTimer } from './events/OnTimer'; import { OnUpdate } from './events/OnUpdate'; import { BehaviorEnd } from './flow/BehaviorEnd'; import { BehaviorStart } from './flow/BehaviorStart'; import { Branch } from './flow/Branch'; import { Repeat } from './flow/Repeat'; import { RunBehavior } from './flow/RunBehavior'; import { Sequence } from './flow/Sequence'; import { Variables } from './variable/Variables'; /** * Importing this module registers the built-in nodes. The palette sorts by category and label, so * the order here is documentation only. */ export const BUILT_IN_NODES: readonly NodeDef[] = [ // events OnStart, OnUpdate, OnKeyDown, OnKeyUp, OnKeyHeld, OnTimer, OnCollisionEnter, OnCollisionStay, OnCollisionExit, OnClick, OnAnimationFinished, BehaviorStart, // flow Branch, Sequence, Repeat, RunBehavior, BehaviorEnd, // variables Variables, // data: references and properties Self, Owner, Parent, ObjectByName, NameOf, IsAsset, IsEnabled, Properties, GetPosition, // data: literals and math NumberLiteral, BooleanLiteral, StringLiteral, TextureLiteral, Add, Subtract, Multiply, Divide, Min, Max, Abs, Sqrt, Clamp, Floor, Ceil, Round, Modulo, Random, Time, // data: text and comparison ToText, ToNumber, Join, Substring, FindText, Equals, Compare, And, Or, Not, // data: lists ListLiteral, Fill, Count, ItemAt, SetItem, SubList, Concat, IndexOf, // data: structs PackStruct, ExpandStruct, // data: vectors and input Length, Distance, Normalize, AxisInput, KeyIsDown, MousePosition, MouseButton, IsHovered, IsTouching, // actions Move, SetPosition, Spawn, Destroy, Log, StopGame, RestartGame, ]; for (const def of BUILT_IN_NODES) registerNode(def);