GE Lua Documentation

Press F to search!

convertCStoJson

Definition


-- @/lua/ge/main.lua:174

function convertCStoJson(filenames, newExtSuffix)
  log('I', 'convertCStoJson', 'Conversion started: '..dumps(filenames or {}))

  local persistenceMgr = PersistenceManager()
  persistenceMgr:registerObject('convert_PersistManager')

  for _, fn in pairs(filenames or {}) do
    log('I', 'resaveCSFiles', 'converting ts script: ' .. tostring(fn) )
    -- record known things
    local knownObjects = scenetree.getAllObjects()
    log('I', 'convertCStoJson', 'knownObjects: '..dumps(knownObjects))
    -- convert to map
    local newKnownObjects = {}
    for k, v in pairs(knownObjects) do
      newKnownObjects[v] = 1
    end
    knownObjects = newKnownObjects

    -- load the file
    TorqueScriptLua.exec(fn)

    -- figure out what objects were loaded from that file by diffing with the known objects above
    local knownObjects2 = scenetree.getAllObjects()
    local newObjects = {}
    for _, oName in pairs(knownObjects2) do
      if not knownObjects[oName] then
        local obj = scenetree.findObject(oName)
        log('I', '', ' adding :  ' .. tostring(oName))
        if obj then
          newObjects[oName] = obj
        end
      end
    end
    log('I', 'convertCStoJson', 'newObjects: '..dumps(newObjects))

    for _, obj in pairs(newObjects) do
      log('I', '', ' * ' .. tostring(obj:getClassName()) .. ' - ' .. tostring(obj:getName()) )
      persistenceMgr:setDirty(obj, '')
    end
    persistenceMgr:saveDirtyNewFormat()

    for _, obj in pairs(newObjects) do
      local className = obj:getClassName()
      if not className or (className and className ~= "SimSet" and className ~= "SimGroup") then
        log('I', '', ' *Deleting:  ' .. tostring(className) .. ' - ' .. tostring(obj:getName()) )
        obj:delete()
      end
    end
  end
  persistenceMgr:delete()
  log('I', 'convertCStoJson', 'Conversion all done.')
end

Callers