comparison AskMrRobot-Serializer/AskMrRobot-Serializer.lua @ 165:3be9cc6f7d20 v77

Updated for 8.2, initial essence support.
author yellowfive
date Tue, 25 Jun 2019 10:27:20 -0700
parents 35612aee8e15
children 5c68d3fccff3
comparison
equal deleted inserted replaced
164:a6aa4fa7e2dd 165:3be9cc6f7d20
1 -- AskMrRobot-Serializer will serialize and communicate character data between users. 1 -- AskMrRobot-Serializer will serialize and communicate character data between users.
2 2
3 local MAJOR, MINOR = "AskMrRobot-Serializer", 76 3 local MAJOR, MINOR = "AskMrRobot-Serializer", 77
4 local Amr, oldminor = LibStub:NewLibrary(MAJOR, MINOR) 4 local Amr, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
5 5
6 if not Amr then return end -- already loaded by something else 6 if not Amr then return end -- already loaded by something else
7 7
8 -- event and comm used for player snapshotting on entering combat 8 -- event and comm used for player snapshotting on entering combat
490 readProfessionInfo(firstAid, ret) 490 readProfessionInfo(firstAid, ret)
491 491
492 ret.Specs = {} 492 ret.Specs = {}
493 ret.Talents = {} 493 ret.Talents = {}
494 readSpecs(ret) 494 readSpecs(ret)
495
496 -- these get updated later, since need to cache info for inactive specs
497 ret.UnlockedEssences = {}
498 ret.Essences = {}
495 499
496 ret.Equipped = {} 500 ret.Equipped = {}
497 readEquippedItems(ret) 501 readEquippedItems(ret)
498 502
499 return ret 503 return ret
685 table.insert(fields, data.ActiveSpec) 689 table.insert(fields, data.ActiveSpec)
686 for spec = 1, 4 do 690 for spec = 1, 4 do
687 if data.Specs[spec] and (complete or spec == data.ActiveSpec) then 691 if data.Specs[spec] and (complete or spec == data.ActiveSpec) then
688 table.insert(fields, ".s" .. spec) -- indicates the start of a spec block 692 table.insert(fields, ".s" .. spec) -- indicates the start of a spec block
689 table.insert(fields, data.Specs[spec]) 693 table.insert(fields, data.Specs[spec])
690 table.insert(fields, data.Talents[spec] or "") 694 table.insert(fields, data.Talents[spec] or "")
695
696 local essences = {}
697 if data.Essences and data.Essences[spec] then
698 for i, ess in ipairs(data.Essences[spec]) do
699 table.insert(essences, table.concat(ess, "."))
700 end
701 end
702 table.insert(fields, table.concat(essences, "_"))
691 end 703 end
692 end 704 end
693 705
694 -- export equipped gear 706 -- export equipped gear
695 if data.Equipped then 707 if data.Equipped then
704 end 716 end
705 717
706 appendItemsToExport(fields, itemObjects) 718 appendItemsToExport(fields, itemObjects)
707 end 719 end
708 end 720 end
721 end
722
723 -- export unlocked essences
724 if data.UnlockedEssences then
725 table.insert(fields, ".ess")
726 for i, ess in ipairs(data.UnlockedEssences) do
727 table.insert(fields, table.concat(ess, "_"))
728 end
709 end 729 end
710 730
711 -- if doing a complete export, include bank/bag items too 731 -- if doing a complete export, include bank/bag items too
712 if complete then 732 if complete then
713 733
733 753
734 return "$" .. table.concat(fields, ";") .. "$" 754 return "$" .. table.concat(fields, ";") .. "$"
735 755
736 end 756 end
737 757
758 --[[
738 -- Shortcut for the common use case: serialize the player's currently active setup with no extras. 759 -- Shortcut for the common use case: serialize the player's currently active setup with no extras.
739 function Amr:SerializePlayer() 760 function Amr:SerializePlayer()
740 local data = self:GetPlayerData() 761 local data = self:GetPlayerData()
741 return self:SerializePlayerData(data) 762 return self:SerializePlayerData(data)
742 end 763 end
764 ]]
743 765
744 --[[ 766 --[[
745 ---------------------------------------------------------------------------------------------------------------------- 767 ----------------------------------------------------------------------------------------------------------------------
746 -- Character Snapshots 768 -- Character Snapshots
747 -- This feature snapshots a player's gear/talents/artifact when entering combat. It is enabled by default. Consumers 769 -- This feature snapshots a player's gear/talents/artifact when entering combat. It is enabled by default. Consumers