getAvailableNodeTemplates
Definition
-- @/lua/ge/extensions/core/flowgraphManager.lua:259
local function getAvailableNodeTemplates()
if not nodeLookup then
local res = {}
local lookup = {}
for i, filename in ipairs(FS:findFiles(nodePath, '*.lua', -1, true, false)) do
local dirname, fn, e = path.split(filename)
local path = dirname:sub(string.len(nodePath) + 1)
local pathArgs = split(path, '/')
local treeNode = res
for i = 1, #pathArgs do
if pathArgs[i] ~= '' then
if not treeNode[pathArgs[i]] then
treeNode[pathArgs[i]] = { nodes = {} }
end
treeNode = treeNode[pathArgs[i]]
end
end
local moduleName = string.sub(fn, 1, string.len(fn) - 4)
local requireFilename = string.sub(filename, 1, string.len(filename) - 4)
local status, node = pcall(rerequire, requireFilename)
if not status then
log('E', '', 'error while loading node ' .. tostring(requireFilename) .. ' : ' .. tostring(node) .. '. ' .. debug.tracesimple())
else
node.path = path .. moduleName
node.sourcePath = nodePath .. path .. moduleName..'.lua'
node.splitPath = pathArgs
node.splitPath[#node.splitPath] = moduleName
node.splitPath[#node.splitPath+1] = node.node.name
node.availablePinTypes = M.getAvailablePinTypes(node.node)
treeNode.nodes[moduleName] = node
lookup[path .. moduleName] = node
end
end
nodeLookup = {lookup = lookup, res = res}
end
return nodeLookup.res, nodeLookup.lookup
end
Callers
@/lua/ge/extensions/editor/flowgraph/references.lua
-- gathers all existing nodes
self:findNodesRecursive(core_flowgraphManager.getAvailableNodeTemplates())
@/lua/ge/extensions/flowgraph/graph.lua
function C:createNode(nodeType, forceId, ...)
local _, lookup = self.mgr:getAvailableNodeTemplates()
if not lookup[nodeType] then
@/lua/ge/extensions/editor/flowgraph/nodelibrary.lua
local function createStateExitNode(self, menuPos, label)
local _, lookup = core_flowgraphManager.getAvailableNodeTemplates()
local node = self:createNodeFromButon(menuPos, lookup["states/stateExit"])
end
local _, lookup = core_flowgraphManager.getAvailableNodeTemplates()
self:displayNode(nil, menuPos, "Create Comment", lookup['debug/comment'])
-- find basic nodes
local _, flat = core_flowgraphManager.getAvailableNodeTemplates()
for path, info in pairs(flat) do
end
local _, lookup = core_flowgraphManager.getAvailableNodeTemplates()
self.search:queryElement({
if mode == 'nodes' then
templates = self.mgr:getAvailableNodeTemplates()
elseif mode == 'states' then
local pins = {names = {}, pins = {}}
for dir, list in pairs(self.mgr:getAvailableNodeTemplates()) do
self:recursiveGetTags(list, tags, pins)
table.insert(libtxt, header)
for dir, list in pairs(self.mgr:getAvailableNodeTemplates()) do
self:printDir(list, dir, tags, libtxt)
@/lua/ge/extensions/flowgraph/manager.lua
function C:getAvailableNodeTemplates()
-- get basic nodes
local res, lookup = self.fgMgr.getAvailableNodeTemplates()