GE Lua Documentation

Press F to search!

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/flowgraph/graph.lua
function C:createNode(nodeType, forceId, ...)
  local _, lookup = self.mgr:getAvailableNodeTemplates()
  if not lookup[nodeType] then
@/lua/ge/extensions/editor/flowgraph/references.lua
  -- gathers all existing nodes
  self:findNodesRecursive(core_flowgraphManager.getAvailableNodeTemplates())
@/lua/ge/extensions/flowgraph/manager.lua

function C:getAvailableNodeTemplates()
  -- get basic nodes
  local res, lookup = self.fgMgr.getAvailableNodeTemplates()
@/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)