@babylonjs/core
Version:
Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.
39 lines • 1.64 kB
JavaScript
import { FlowGraphExecutionBlockWithOutSignal } from "../../flowGraphExecutionBlockWithOutSignal.js";
import { RegisterClass } from "../../../Misc/typeStore.js";
/**
* A block that sends a custom event.
* To receive this event you need to use the ReceiveCustomEvent block.
* This block has no output, but does have inputs based on the eventData from the configuration.
* @see FlowGraphReceiveCustomEventBlock
*/
export class FlowGraphSendCustomEventBlock extends FlowGraphExecutionBlockWithOutSignal {
constructor(
/**
* the configuration of the block
*/
config) {
super(config);
this.config = config;
for (const key in this.config.eventData) {
this.registerDataInput(key, this.config.eventData[key].type, this.config.eventData[key].value);
}
}
_execute(context) {
const eventId = this.config.eventId;
// eventData is a map with the key being the data input's name, and value being the data input's value
const eventData = {};
for (const port of this.dataInputs) {
eventData[port.name] = port.getValue(context);
}
context.configuration.coordinator.notifyCustomEvent(eventId, eventData);
this.out._activateSignal(context);
}
/**
* @returns class name of the block.
*/
getClassName() {
return "FlowGraphReceiveCustomEventBlock" /* FlowGraphBlockNames.ReceiveCustomEvent */;
}
}
RegisterClass("FlowGraphReceiveCustomEventBlock" /* FlowGraphBlockNames.ReceiveCustomEvent */, FlowGraphSendCustomEventBlock);
//# sourceMappingURL=flowGraphSendCustomEventBlock.js.map