GE Lua Documentation

Press F to search!

convertLegacyData

Definition


-- @/lua/ge/extensions/gameplay/drag/saveSystem.lua:200

M.convertLegacyData = function(legacyData)
  if not legacyData then
    log('E', logTag, 'No legacy data to convert')
    return nil
  end

  local convertedData = {
    strip = {
      id = legacyData.stripInfo and legacyData.stripInfo.id or "legacy_strip",
      name = legacyData.stripInfo and legacyData.stripInfo.stripName or "Legacy Strip",
      description = "Converted from legacy format",
      lanes = {}
    },
    dragType = legacyData.dragType or "",
    context = legacyData.context or "",
    phases = legacyData.phases or {},
    prefabs = legacyData.prefabs or {},
    canBeReseted = legacyData.canBeReseted or false,
    canBeTeleported = legacyData.canBeTeleported or false,
    stripInfo = legacyData.stripInfo or {}
  }

  if legacyData.strip and legacyData.strip.lanes then
    for i, lane in ipairs(legacyData.strip.lanes) do
      local convertedLane = {
        id = "legacy_lane_" .. i,
        shortName = lane.shortName or ("Lane " .. i),
        longName = lane.longName or ("Lane " .. i),
        color = lane.color or "blue",
        laneOrder = lane.laneOrder or i,
        waypoints = {},
        boundary = lane.boundary or {}
      }

      if lane.waypoints then
        for waypointType, waypoint in pairs(lane.waypoints) do
          convertedLane.waypoints[waypointType] = {
            name = waypoint.name or waypointType,
            transform = waypoint.transform or {
              pos = vec3(0, 0, 0),
              rot = quat(0, 0, 0, 1),
              scl = vec3(1, 1, 1)
            },
            waypoint = waypoint.waypoint or {
              speed = 5,
              mode = "limit"
            }
          }
        end
      end

      table.insert(convertedData.strip.lanes, convertedLane)
    end
  end

  return convertedData
end

Callers

@/lua/ge/extensions/gameplay/drag/saveSystem.lua

  return M.convertLegacyData(data)
end