- `Texture` and `Color` can be picked as a variable kind, a struct field kind and a declared port kind; a new `Texture` node hands a picture id into the graph. Declared, a texture is its bare id – the `$texture` tag stays a list-only thing. - The `String` node is labelled "Text" like its kind; the type id stays. - Whole-number inputs (`Item at`, `Set item`, `Sub list`, `Fill`, `Repeat`, `Substring`, `To text`) show no decimals (`int()` in shared.ts). - All server projects are reseeded, so `legacyNodes.ts`, `migrateDeclaredLists` and the `ownerId` fallback go, with their tests. - Note `reseed-because-of-list` moved to done/; new note `refactor-types`. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
185 lines
5.0 KiB
TypeScript
185 lines
5.0 KiB
TypeScript
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);
|