LibPeriodicTable-3.1

Forum Discussion Thread

Periodic Table adds organizes many WoW items and spells into sets. Like most Ace addons it's focus is efficiency. PT is a LibStub library for managing these sets (ex: Misc.Spell.Mount, Consumable.Food.Edible.Cheese, Misc.Minipet, ClassSpell) for other addons.

If you are looking for an Ace'd alternative to ReagentInfo (the tooltip display) check out Mendeleev by MoonWolf, which you can find on Curse or WoWI.

Item sets are stored as a comma-delimited strings and parsed out into a table only if requested. This speeds up load time and ensures that memory is only used for sets that are actively used.

If you are interested in using PT with your mod feel free to read the source code (there's not a lot). The comments will tell you everything you need to know.

Modules

PeriodicTable's "modules" are simply sets of sets. Particular mods can link the exact sets they need.

  • ClassSpell - Spells for all classes with subsets for each tree.
  • Consumable - Foods, Potions, Elixirs, Buffing items including type (fruit, meat, etc), quality (inedible, buff) and HP-recovery info.
  • CurrencyItems - Items purchasable with various currencies.
  • Gear - Socketed gear, Trinkets, Vendor Badge gear
  • GearSet - Set Gear. Tier, Reputation, PvP, etc.
  • InstanceLoot - Loot tables for instances and the bosses in those instances (only higher-level instances currently)
  • InstanceLootHeroic - Loot tables for heroic instances
  • Misc - Random stuff like Currency, Containers, Mounts, etc.
  • Reputation - Rewards and Turnins for factions
  • Tradeskill : Profession recipes
  • TradeskillLevels : Profession recipes with level requirements
  • TradeskillResultMats : Some kinda mats required sets for the recipes it looks like

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of MuffinManKen MuffinManKen Jul 25, 2014 at 15:38 UTC - 0 likes

    I created a new addon that adds a few new sets:

    http:www.curse.com/addons/wow/libpt-muffinsets

  • Avatar of Innovindil Innovindil May 21, 2014 at 21:40 UTC - 0 likes

    Hey there ... I've noticed that the GearSet has a couple different formats

    Pre MoP looks like this:

    ["GearSet.Tier 13.410.Warrior.Colossal Dragonplate Armor"]="78658,78669,78689,78705,78734",
    ["GearSet.Tier 13.410.Warrior.Colossal Dragonplate Battlegear"]="78657,78668,78688,78706,78735",
    

    MoP looks like this:

    ["GearSet.Tier 15.Warrior.502.Battleplate of the Last Mogu"]="95986,95987,95988,95989,95990",
    ["GearSet.Tier 15.Warrior.502.Plate of the Last Mogu"]="95991,95992,95993,95994,95995",
    ["GearSet.Tier 15.Warrior.522.Battleplate of the Last Mogu"]="95330,95331,95332,95333,95334",
    ["GearSet.Tier 15.Warrior.522.Plate of the Last Mogu"]="95335,95336,95337,95338,95339",
    ["GearSet.Tier 15.Warrior.535.Battleplate of the Last Mogu"]="96730,96731,96732,96733,96734",
    ["GearSet.Tier 15.Warrior.535.Plate of the Last Mogu"]="96735,96736,96737,96738,96739",
    

    Any chance we can get it all formatted to the PreMoP standard? I have my bag addons filtering by ilvl and with each update i hve to manually copy/past the T14-T16 to the old format.

    Since the class is now in front of the ilvl it wont let sort T14+ by ilvl into bag/bank groups. I'd have to make a group for each class+ilvl which is more worked than needed.

    Thanks!

    Last edited May 21, 2014 by Innovindil
  • Avatar of Elkano Elkano Sep 23, 2013 at 08:37 UTC - 0 likes

    I'm still around breathing :) sadly, comments here are easy to miss... LPT has been split into separate data libs for a long time; as a lib it's meant to be run embedded by default so you'd only add those parts you need. That said, in the five years LPT-3.1 has been around by now a lot has changed within WoW. Some of these changes didn't fit that well into the data structures in place. Also, the amount of data has grown... there are almost 90k different items in the client by now (well, some aren't used). So the history has resulted in some brownfields. Also, data mining them from WoWHead has always been a pain (parsing for JSON data, 200 items max, filters, wrong data, ...), WoWDB hasn't been any better (even though we were promised special API calls :/ )

    The core library for LPT is still doing fine and I don't see any needed changes to it. Thus a new version with changed sets would imho still be a 3.x version. The data miner could use a some generic work, maybe splitting it into multiple files (core functionality, data set specific stuff) to make maintaining it a bit easier. For the data sets themselves, there are lots that need serious treatment, e.g. the instance data (currently there is a split into normal, heroic, lfr, though imho the only reasonable split, if any, would be group vs raid, using lfr/normal/hero and size [10/25] as sub-splits where applicable).

    Regarding the "which addons use it", that info sure would be nice to have. There is this "reverse relationship" for projects but iirc it has been broken for ages.

    This posting is made of 100% recycled electrons. BFAK:5708,0e876010cc9217fb077af930852ab4fc2e852191fe41bef05599aa00c446e6ad

  • Avatar of MuffinManKen MuffinManKen Sep 11, 2013 at 18:19 UTC - 0 likes

    Elkano is the Manager/Author, so I think he'd need to be on board for any major changes. I have no idea how active he is in WoW and/or addon development at this point.

  • Avatar of JCinDE JCinDE Aug 28, 2013 at 01:59 UTC - 0 likes

    @ckaotik: Go

    I'd suggest just advancing to LibPeriodicTable-4.0 rather than trying to tie it to a game version. LPT4 would be the core functionality and have no data libraries at all, though it might define a few suggested "official" high level namespaces and offer a template for a dataminer.

    LPT3.1 data libraries could be upgraded, repackaged, or split as needed to create more specialized, more tightly controlled LPT4 versions. Authors that upgrade to LPT4 would embed the core and any necessary data libraries and possibly add specialized data within their own addons (AutoBar).

    I'm sure I'm not the first to say so, but it would be nice if there were a way to officially know which addons use which data libraries and namespaces so that the impact of changes to them could be known ahead of time. Separating the data from the LPT core functionality would be a step in that direction too.

  • Avatar of ckaotik ckaotik Apr 16, 2013 at 11:17 UTC - 0 likes

    @MuffinManKen: Go

    And since many entries in LibPT are hand-maintained, it's necessary to have many people working on it since it's a pain to update.

    However, quite a few hand-maintained sets can now be mined as WowHead added quite a few more filters and useful pages, such as Tier sets. Seemed easier at that time to just add them manually instead of extending the miner... More minable sets -> less manual update required -> more frequent and up to date data, me thinks.

    I also agree with JCinDE that it's a shame LPT is so ... untidy (and in some cases outdated, incorrect, duplicate or existing in one forward but not a backward set etc). It's just such a valuable project and only having alpha releases every couple of days|weeks|months doesn't reach most of the people using it. (Also, adding Tier 12 content when Tier 15 becomes available is kind of uncool)

    To keep compatibility to current addons, we'd need a new branch. I suppose the 3.1 came from back then when patch 3.1 was released? So how about a 5.x tag? :)

    Last edited Jul 01, 2013 by ckaotik: Wowhead, not Curse, stupid me!
  • Avatar of JCinDE JCinDE Mar 19, 2013 at 02:11 UTC - 0 likes

    You raise valid points. Perhaps the obstacles could be overcome if proper advance notice were given for the addon authors to either make their LPT data part of their addon or maintain it separately as a shared dataset. Then what seems to have been the vision for LPT could become reality.

    The LPT core functionality could be packaged without data and each data module could be packaged as its own addon, available for use as needed and loaded only when an addon tries to access one of its sets.

    I dunno. It just prickles my OCD that the best and only item database library is sort of disorganized and cluttery.

  • Avatar of MuffinManKen MuffinManKen Mar 18, 2013 at 02:33 UTC - 0 likes

    The only Addon-specific data that I'm aware of is a few multisets that were added for AutoBar. I agree they shouldn't have been added here, but since they were it's hard to remove them because someone might be using them. At one point I removed the Warlock stones that don't exist anymore and it broke a bunch of addons.

    Any clean up would need to be done as a separate named version (3.2?) to avoid breaking things. Even then it would be a lot of effort and it would be hard to get people to agree on what's needed. And since many entries in LibPT are hand-maintained, it's necessary to have many people working on it since it's a pain to update.

    For example, my stance on the TradeskillLevels is that since they are horribly incorrect they should be removed if they can't be fixed. I know others feel it's better to have bad data than no data.

  • Avatar of JCinDE JCinDE Mar 15, 2013 at 21:47 UTC - 0 likes

    The built-in data in LPT really needs to be cleaned up and standardized. Addon-specific data should not be distributed with the core LPT. Too many cooks, methinks.

  • Avatar of Lufunpsy Lufunpsy Oct 09, 2012 at 00:14 UTC - 0 likes

    A lot of items don't seem to be making it into their natural set. Panderia keystones, for example, are still not getting added to keystones (see Tradeskill.Mat.ByType.Keystone).

Facts

Date created
Sep 21, 2008
Category
Last update
Aug 04, 2014
Development stage
Release
Language
  • enUS
License
GNU Lesser General Public License version 2.1 (LGPLv2.1)
Curse link
LibPeriodicTable-3.1
Reverse relationships
35
Downloads
259,176
Recent files
  • A: r452 for 5.4.8 Aug 04, 2014
  • A: r451 for 5.4.8 Jul 12, 2014
  • A: r450 for 5.4.8 Jul 11, 2014
  • A: r449 for 5.4.8 Jul 11, 2014
  • A: r448 for 5.4.8 Jul 11, 2014

Authors