Mercurial > wow > askmrrobot
comparison Import.lua @ 165:3be9cc6f7d20 v77
Updated for 8.2, initial essence support.
| author | yellowfive |
|---|---|
| date | Tue, 25 Jun 2019 10:27:20 -0700 |
| parents | f27a7c64b21f |
| children | 5c586ff5fee5 |
comparison
equal
deleted
inserted
replaced
| 164:a6aa4fa7e2dd | 165:3be9cc6f7d20 |
|---|---|
| 244 end | 244 end |
| 245 | 245 |
| 246 return importData | 246 return importData |
| 247 end | 247 end |
| 248 | 248 |
| 249 local function parseEssenceList(essenceString) | |
| 250 local ret = {} | |
| 251 | |
| 252 local parts = { strsplit("_", essenceString) } | |
| 253 for i = 1, #parts do | |
| 254 local essence = { strsplit(".", parts[i]) } | |
| 255 table.insert(ret, { tonumber(essence[0]), tonumber(essence[1]), tonumber(essence[2]) }) | |
| 256 end | |
| 257 | |
| 258 return ret | |
| 259 end | |
| 260 | |
| 249 -- | 261 -- |
| 250 -- Import a character, returning nil on success, otherwise an error message, import result stored in the db. | 262 -- Import a character, returning nil on success, otherwise an error message, import result stored in the db. |
| 251 -- | 263 -- |
| 252 function Amr:ImportCharacter(data, isTest, isChild) | 264 function Amr:ImportCharacter(data, isTest, isChild) |
| 253 | 265 |
| 261 -- if multiple setups are included in the data, parse each individually, then quit | 273 -- if multiple setups are included in the data, parse each individually, then quit |
| 262 local specParts = { strsplit("\n", data) } | 274 local specParts = { strsplit("\n", data) } |
| 263 | 275 |
| 264 if #specParts > 1 and specParts[1] == "_junk_" then | 276 if #specParts > 1 and specParts[1] == "_junk_" then |
| 265 -- if the string starts with "_junk_" then it is the junk list | 277 -- if the string starts with "_junk_" then it is the junk list |
| 266 Amr:ImportJunkList(specParts[2], currentPlayerData) | 278 return Amr:ImportJunkList(specParts[2], currentPlayerData) |
| 267 return | |
| 268 | 279 |
| 269 elseif #specParts > 1 then | 280 elseif #specParts > 1 then |
| 270 -- clear out any previously-imported BiB setups when importing new ones (non-BiB will always be imported one at a time) | 281 -- clear out any previously-imported BiB setups when importing new ones (non-BiB will always be imported one at a time) |
| 271 for i = #Amr.db.char.GearSetups, 1, -1 do | 282 for i = #Amr.db.char.GearSetups, 1, -1 do |
| 272 if Amr.db.char.GearSetups[i].IsBib then | 283 if Amr.db.char.GearSetups[i].IsBib then |
| 341 end | 352 end |
| 342 end | 353 end |
| 343 | 354 |
| 344 -- if we make it this far, the data is valid, so read item information | 355 -- if we make it this far, the data is valid, so read item information |
| 345 local specSlot = tonumber(parts[11]) | 356 local specSlot = tonumber(parts[11]) |
| 346 | 357 |
| 347 local importData = parseItemList(parts, 16, "n/a", true) | 358 local essences = parseEssenceList(parts[15]) |
| 359 | |
| 360 local importData = parseItemList(parts, 17, "n/a", true) | |
| 348 | 361 |
| 349 -- extra information contains setup id, display label, then extra enchant info | 362 -- extra information contains setup id, display label, then extra enchant info |
| 350 parts = { strsplit("@", data1[3]) } | 363 parts = { strsplit("@", data1[3]) } |
| 351 | 364 |
| 352 local setupId = parts[2] | 365 local setupId = parts[2] |
| 396 local result = { | 409 local result = { |
| 397 IsBib = string.sub(setupId, 1, 3) ~= "AMR", | 410 IsBib = string.sub(setupId, 1, 3) ~= "AMR", |
| 398 SpecSlot = tonumber(specSlot), | 411 SpecSlot = tonumber(specSlot), |
| 399 Id = setupId, | 412 Id = setupId, |
| 400 Label = setupName, | 413 Label = setupName, |
| 401 Gear = importData | 414 Gear = importData, |
| 415 Essences = essences | |
| 402 } | 416 } |
| 403 | 417 |
| 404 if not result.IsBib then | 418 if not result.IsBib then |
| 405 -- replace if this setup already exists | 419 -- replace if this setup already exists |
| 406 local key = -1 | 420 local key = -1 |
