this repo has no description
at main 1.4 kB view raw
1import { PositionInfo } from "../renderer"; 2import { Node } from "../structs/node"; 3import { screenToWorldSpace } from "../utils/interections"; 4import { NodeManager } from "../Mangers/NodeManager"; 5import { ContextMenuItem } from "../structs/ContextMenu"; 6import { Nodes } from "../Nodes/Nodes"; 7 8export let CanvasContextMenu: ContextMenuItem[] = Nodes.map(( node ) => { 9 if(node.isSingle){ 10 return { 11 text: node.name, 12 clicked: async ( e: MouseEvent, canvas: HTMLCanvasElement, position: PositionInfo ) => { 13 let pos = screenToWorldSpace(canvas, position, e.clientX, e.clientY); 14 let id = await NodeManager.Instance.GetNewNodeId(); 15 16 NodeManager.Instance.AddNode(new Node(pos, node, id)); 17 }, 18 hovered: false 19 } 20 } else{ 21 return { 22 text: node.name, 23 menu: { 24 items: node.items!.map(x => { 25 return { 26 text: x.name, 27 clicked: async ( e: MouseEvent, canvas: HTMLCanvasElement, position: PositionInfo ) => { 28 let pos = screenToWorldSpace(canvas, position, e.clientX, e.clientY); 29 let id = await NodeManager.Instance.GetNewNodeId(); 30 31 NodeManager.Instance.AddNode(new Node(pos, x, id)); 32 }, 33 hovered: false 34 } 35 }), 36 position: [ 0, 0 ], 37 size: [ 0, 0 ], 38 visible: true 39 }, 40 hovered: false 41 } 42 } 43});