GE Lua Documentation

Press F to search!

spawnPrefab

Definition


-- @/lua/ge/ge_utils.lua:741

function spawnPrefab(objName, objFileName, objPos, objRotation, objScale, useGlobalTranslation)
  if string.endswith(objFileName, ".prefab.json") then
    local jsonData = jsonReadFile(objFileName)

    if jsonData.class and jsonData.class == 'PrefabV2' then
      local prefabTemplateName = prefabFilenameToTemplateName(objFileName)
      local prefab = scenetree.findObject(prefabTemplateName)
      if not prefab then
        loadPrefabv2Template(objFileName)
        prefab = scenetree.findObject(prefabTemplateName)
        if not prefab then
          log('E','','loading prefab template failed')
          return
        end
      end

      if type(objPos) == 'string' then
        local x, y, z = string.match(objPos, "([0-9]*)%s*([0-9]*)%s*([0-9]*)%s*")
        objPos = vec3(tonumber(x), tonumber(y), tonumber(z))
      end

      if type(objRotation) == 'string' then
        local x, y, z, w = string.match(objRotation, "([0-9]*)%s*([0-9]*)%s*([0-9]*)%s*([0-9]*)")
        objRotation = QuatF(x,y,z,w)
      end

      if type(objScale) == 'string' then
        local x, y, z = string.match(objScale, "([0-9]*)%s*([0-9]*)%s*([0-9]*)%s*")
        objScale = vec3(tonumber(x), tonumber(y), tonumber(z))
      end

      local instance = prefab:spawn(objName, objPos, objRotation, objScale)
      if instance then
        local missionGroup = scenetree.MissionGroup
        if missionGroup then
          missionGroup:addObject(instance)
        end
        if editor and editor.active then
          editor.requestCollisionRebuild()
        end
      else
        log('E','','spawning prefab instance failed')
      end

      return instance
    end
  end

  local p = addPrefab(objName, objFileName, objPos, objRotation, objScale, useGlobalTranslation)
  if p then
    log('D', logTag, 'loading prefab '..objName)
    p:load()
    local missionGroup = scenetree.MissionGroup
    if missionGroup then
      missionGroup:addObject(p)
    end
    if editor and editor.active then
      editor.requestCollisionRebuild()
    end
  end
  return p
end

Callers

@/lua/ge/extensions/scenario/scenarios.lua
  if val == 2 then
    return spawnPrefab(objName, objFileName, objPos, objRotation, objScale)
  elseif val == 1 then
    if not scenetree.findObject(objName) then
      local prefabObj = spawnPrefab(objName, filename, '0 0 0', '0 0 1 0', '1 1 1')
      ScenarioObjectsGroup:addObject(prefabObj.obj)
@/lua/ge/extensions/gameplay/crawl/utils.lua
    local _, fn = path.splitWithoutExt(filePath)
    local scenetreeObject = spawnPrefab(Sim.getUniqueName(fn), filePath, 0 .. " " .. 0 .. " " .. 0, "0 0 1 0", "1 1 1", false)
    scenetreeObject.canSave = false
@/flowgraphEditor/Tower/customNodes/towerNode.lua
    local name = generateObjectNameForClass('Prefab', string.format("%s - %d - ", string.sub(fn, 1, string.len(fn) - string.len(ext)-1), i))
    local scenetreeObject = spawnPrefab(name , self.mgr.savedDir .. room.file, "0 0 0", "0 0 1 0", "1 1 1", false)
    scenetreeObject.canSave = false
@/lua/ge/extensions/editor/util/editorElementHelper.lua
      if im.Selectable1("Spawn Prefab at Origin") then
        local prefab = spawnPrefab(Sim.getUniqueName(e.label..e._id),e.foundFile,"0 0 0","0 0 1 0","1 1 1")
        if prefab then
@/lua/ge/extensions/flowgraph/nodes/scene/spawnPrefab.lua
    local name = self.pinIn.name.value or generateObjectNameForClass('Prefab', "prefab_" .. self.id)
    local scenetreeObject = spawnPrefab(name , file, pos.x .. " " .. pos.y .. " " .. pos.z, "0 0 1 0", "1 1 1", self.pinIn.useGlobalTranslation.value)
    scenetreeObject.canSave = false
@/lua/ge/extensions/flowgraph/modules/prefabModule.lua

function C:spawnPrefab(fileName)
  local pos = vec3(0,0,0)
  local name = generateObjectNameForClass('Prefab', "prefab_")
  local scenetreeObject = spawnPrefab(name , file, pos.x .. " " .. pos.y .. " " .. pos.z, "0 0 1 0", "1 1 1", false)
  scenetreeObject.canSave = false
@/lua/ge/extensions/gameplay/missions/missionTypes/editorHelper.lua
      if im.Selectable1("Spawn Prefab at Origin") then
        local prefab = spawnPrefab(Sim.getUniqueName(mission.id.." - " .. e.label),e.foundFile,"0 0 0","0 0 0 1","1 1 1")
        if prefab then
@/lua/ge/extensions/editor/trafficManager.lua
      local name = generateObjectNameForClass("Prefab", fn)
      local prefab = spawnPrefab(name, prefabFilePath, "0 0 0", "0 0 1", "1 1 1", true)
@/lua/ge/extensions/gameplay/missions/missionManager.lua
      for i, p in ipairs(mission.prefabs) do
        local obj = spawnPrefab(mission.id.."_prefab_" .. i , p, "0 0 0", "0 0 0 1", "1 1 1")
        if obj == nil then
@/lua/ge/extensions/editor/barriersEditor.lua
      local dir, filename, ext = path.splitWithoutExt(f)
      local scenetreeObject = spawnPrefab("prefab_temp_" .. filename ..os.time(), f, "0 0 0 ", "0 0 1", "1 1 1")
      local short = f:sub(levelPartLength)
              if elem.selected then
                local scenetreeObject = spawnPrefab("prefab_temp_" .. filename .."__"..os.time(), f, "0 0 0 ", "0 0 1", "1 1 1")
                if scenetree and scenetreeObject and scenetree.MissionGroup then
@/lua/ge/extensions/editor/assetBrowser.lua
        if editor.assetDragDrop.data.type == 'prefab' then
          var.dragDropMesh = spawnPrefab(Sim.getUniqueName(editor.assetDragDrop.data.fileName), editor.assetDragDrop.data.path, "0 0 0", "1 0 0 0", "1 1 1")
          if var.dragDropMesh then
      fn = function(asset)
        local prefab = spawnPrefab(Sim.getUniqueName(asset.fileName),asset.path,"0 0 0","1 0 0 0","1 1 1")
        if prefab then
      fn = function(asset)
        local prefab = spawnPrefab(Sim.getUniqueName(asset.fileName),asset.path,"0 0 0","1 0 0 0","1 1 1")
        if prefab then
@/lua/ge/extensions/editor/raceEditor/tools.lua
      r = r:toTorqueQuat()
      decoration = spawnPrefab(objName, obj,
        t.pos.x.." "..t.pos.y.." "..t.pos.z,
@/lua/ge/extensions/gameplay/discover/discover_038.lua
        local name = generateObjectNameForClass('Prefab', "prefab_")
        local scenetreeObject = spawnPrefab(name , prefabFile, "0 0 0", "0 0 1 0", "1 1 1", false)
        scenetreeObject.canSave = false
        local name = generateObjectNameForClass('Prefab', "prefab_")
        local scenetreeObject = spawnPrefab(name , prefabFile, "0 0 0", "0 0 1 0", "1 1 1", false)
        scenetreeObject.canSave = false
        local name = generateObjectNameForClass('Prefab', "prefab_")
        local scenetreeObject = spawnPrefab(name , prefabFile, "0 0 0", "0 0 1 0", "1 1 1", false)
        scenetreeObject.canSave = false
@/lua/ge/extensions/gameplay/race/path.lua
      local name  = generateObjectNameForClass('Prefab',"fromTrackPrefab_")
      local scenetreeObject = spawnPrefab(name , p, "0 0 0", "0 0 1", "1 1 1")
      table.insert(spawnedPrefabs, scenetreeObject)
@/lua/ge/extensions/campaign/exploration.lua
      if not scenetree.findObject(prefabName) then
        local prefabObj = spawnPrefab(prefabName, prefabPath, '0 0 0', '0 0 1', '1 1 1')
        scenarioTriggersGroup:addObject(prefabObj.obj)
@/lua/ge/extensions/util/showroom.lua
  local pos = getSuitablePosition()
  prefab = spawnPrefab(Sim.getUniqueName("Showroom"),prefabPath,string.format("%d %d %d", pos.x, pos.y, pos.z) ,"0 0 1 0","1 1 1", true)
  if not prefab then
@/lua/ge/extensions/editor/objectTool.lua
        end
        obj = spawnPrefab(name, filename, posString, rotString, scaleString)
        if obj then
@/lua/ge/main.lua
  log('I', 'convertPrefabtoJson', '  spawning prefab as = ' .. tostring(filename) )
  local csPrefab = spawnPrefab(filename, filepath, '0 0 0', '0 0 1 0', '1 1 1')
  if csPrefab then
  log('I', 'validatePrefabJson', '  Validating prefab as = ' .. tostring(filename) )
  local prefab = spawnPrefab(filename, filepath, '0 0 0', '0 0 1', '1 1 1')
  if prefab then
function load_test_prefabv1()
  local prefab = spawnPrefab("test_v1", "/levels/smallgrid/test_v1.prefab.json", '0 0 0', '0 0 1 0', '1 1 1')
  if prefab then
function load_spawn_prefabv2_indirect()
  local prefab = spawnPrefab("test_v2", "/levels/smallgrid/test_v2.prefab.json", '0 0 0', '0 0 1 0', '1 1 1')
  if prefab then
@/lua/ge/extensions/editor/missionEditor/prefabs.lua
        local dir, filename, ext = path.split(file)
        local p = spawnPrefab(Sim.getUniqueName(self.mission.id.."-"..filename),file,"0 0 0","0 0 1 0","1 1 1")
        if p then
@/lua/ge/extensions/gameplay/drag/saveSystem.lua
      local treeName = treeNames[data.prefabs.christmasTree.treeType] or "Christmas Tree"
      local prefabId = spawnPrefab(treeName, data.prefabs.christmasTree.path, "0 0 0", "0 0 1 0", "1 1 1", false)
      if prefabId then
    if data.prefabs.displaySign.path then
      local prefabId = spawnPrefab("Display Sign", data.prefabs.displaySign.path, "0 0 0", "0 0 1 0", "1 1 1", false)
      if prefabId then
    if data.prefabs.decorations.path then
      local prefabId = spawnPrefab("Decorations", data.prefabs.decorations.path, "0 0 0", "0 0 1 0", "1 1 1", false)
      if prefabId then
    if data.prefabs.paths.path then
      local prefabId = spawnPrefab("Paths", data.prefabs.paths.path, "0 0 0", "0 0 1 0", "1 1 1", false)
      if prefabId then