Files
lit.ruv.wtf/website/scripts/nodes/PureNode.js

51 lines
1.3 KiB
JavaScript

/**
* @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);