GE Lua Documentation

Press F to search!

getAvailableStateTemplates

Definition


-- @/lua/ge/extensions/core/flowgraphManager.lua:323
local function getAvailableStateTemplates()
  local stateTemplatePath = '/flowgraphEditor/states/'
  if not stateLookup then
    local res = {}
    local lookup = {}
    for i, filename in ipairs(FS:findFiles(stateTemplatePath, '*state.flow.json', -1, true, false)) do
      local dirname, fn, e = path.splitWithoutExt(filename, true)
      local path = dirname:sub(string.len(stateTemplatePath) + 1)
      if path ~= "" then
        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]] = { states = {} }
            end
            treeNode = treeNode[pathArgs[i]]
          end
        end
        local moduleName = fn
        --local requireFilename = string.sub(filename, 1, string.len(filename) - 4)
        local stateData = {}

        stateData.data = jsonReadFile(filename)
        stateData.path = path .. moduleName
        stateData.sourcePath = stateTemplatePath .. path .. moduleName..'.lua'
        stateData.splitPath = pathArgs
        stateData.splitPath[#stateData.splitPath] = moduleName
        stateData.splitPath[#stateData.splitPath+1] = stateData.name
        treeNode.states[moduleName] = stateData
        lookup[path .. moduleName] = stateData
      end
    end
    stateLookup = {lookup = lookup, res = res}
  end
  return stateLookup.res, stateLookup.lookup
end

Callers

@/lua/ge/extensions/flowgraph/manager.lua

function C:getAvailableStateTemplates()
  return self.fgMgr.getAvailableStateTemplates()
function C:getAvailableStateTemplates()
  return self.fgMgr.getAvailableStateTemplates()
end
@/lua/ge/extensions/editor/flowgraph/nodelibrary.lua
  -- find basic nodes
  local _, flat = core_flowgraphManager.getAvailableStateTemplates()
  for path, info in pairs(flat) do
  --if self.mgr and self.mgr.newStateTemplateAdded then
    self.stateTemplates = self.mgr:getAvailableStateTemplates()
    self.stateTemplatesSorted = {}
    elseif mode == 'states' then
      templates = self.mgr:getAvailableStateTemplates()
    end