/** * @file PureNode.js * @UCLASS(BlueprintType, Blueprintable) */ import { NodeBase } from './NodeBase.js'; import { NodeRegistry } from './NodeRegistry.js'; /** * @UCLASS(BlueprintType) * Pure data node — optionally renders an image body. No exec logic. */ export class PureNode extends NodeBase { /** @UCLASS(BlueprintType) */ static NodeType = "pure"; /** * @UFUNCTION(BlueprintPure) */ static BlueprintPure_GetDefaultPins() { return { inputs: [], outputs: [ { id: 'val_out', name: 'Value', direction: 'output', kind: 'string', defaultValue: '' } ] }; } /** * @UFUNCTION(BlueprintNativeEvent) * @param {HTMLElement} article * @param {import('../GraphNode.js').GraphNode} graphNode */ BlueprintNativeEvent_OnRender(article, graphNode) { if (!graphNode.imageSrc) return; const body = document.createElement("div"); body.className = "node-body node-body--image"; const img = document.createElement("img"); img.src = graphNode.imageSrc; img.alt = ""; img.className = "node-image"; body.appendChild(img); article.appendChild(body); } } NodeRegistry.UCLASS_Register(PureNode);