--[[
  A small script running during loading before most of AC is ready, with limited API.
  Used for patching some Python apps, adding missing data and such.
]]

local function proTyresSync(carIndex, proTyresPath)
  if io.dirExists(proTyresPath) then
    local tyresIni = ac.INIConfig.carData(carIndex, 'tyres.ini')
    if #tyresIni:get('FRONT', 'NAME', '') ~= 0 then
      local srcCarDir = ac.getFolder(ac.FolderID.ContentCars)..'/'..ac.getCarID(carIndex)..'/data'
      local dstCarDir = proTyresPath..'/'..ac.getCarID(carIndex)
      io.createDir(dstCarDir)

      local filesToCopy = {}
      for i = 0, 100 do
        local wf = tyresIni:get(i == 0 and 'FRONT' or 'FRONT_'..tostring(i), 'WEAR_CURVE', '')
        local wr = tyresIni:get(i == 0 and 'REAR' or 'REAR_'..tostring(i), 'WEAR_CURVE', '')
        local sf = tyresIni:get(i == 0 and 'THERMAL_FRONT' or 'THERMAL_FRONT_'..tostring(i), 'PERFORMANCE_CURVE', '')
        local sr = tyresIni:get(i == 0 and 'THERMAL_REAR' or 'THERMAL_REAR_'..tostring(i), 'PERFORMANCE_CURVE', '')
        if #sf == 0 and #sr == 0 and #wf == 0 and #wr == 0 then break end
        table.insert(filesToCopy, wf)
        table.insert(filesToCopy, wr)
        table.insert(filesToCopy, sf)
        table.insert(filesToCopy, sr)
      end

      if #filesToCopy > 0 then
        for _, name in ipairs(table.distinct(filesToCopy)) do
          if #name > 0 then
            local data = ac.readDataFile(srcCarDir..'/'..name)
            if #data > 0 then io.save(dstCarDir..'/'..name, data) end
          end
        end
        tyresIni:save(dstCarDir..'/tyres.ini')
      end
    end
  end
end

proTyresSync(0, ac.getFolder(ac.FolderID.Root)..'/apps/python/proTyres/cars')
proTyresSync(0, ac.getFolder(ac.FolderID.Root)..'/apps/python/proTyres/cars_extra')

