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