vanilla-wow-addons – Rev 1
?pathlinks?
--[[
Icon set definitions
]]
Gather_IconSet = {
["original"] = {
["Default"] = {["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Blue"},
["Ore"] = {["default"] = "Interface\\AddOns\\Gatherer\\Original\\Ore"},
["Herb"] = {["default"] = "Interface\\AddOns\\Gatherer\\Original\\Herb"},
["Treasure"] = {["default"] = "Interface\\AddOns\\Gatherer\\Original\\Chest"},
["Test"] = {["default"] = "Interface\\AddOns\\Gatherer\\Original\\Test"},
},
["iconshade"] = {
["Test"] = {["default"] = "Interface\\AddOns\\Gatherer\\Original\\Test"},
},
["shaded"] = {
["Default"] = {["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Blue"},
["Ore"] = {["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Red"},
["Herb"] = {["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Green"},
["Treasure"] = {["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Yellow"},
["Test"] = {["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Test"},
},
["iconic"] = {
["Default"] = {["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Blue"},
["Ore"] = {
["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Red",
[ORE_COPPER] = "Interface\\AddOns\\Gatherer\\Icons\\OreCopper",
[ORE_TIN] = "Interface\\AddOns\\Gatherer\\Icons\\OreTin",
[ORE_SILVER] = "Interface\\AddOns\\Gatherer\\Icons\\OreSilver",
[ORE_IRON] = "Interface\\AddOns\\Gatherer\\Icons\\OreIron",
[ORE_GOLD] = "Interface\\AddOns\\Gatherer\\Icons\\OreGold",
[ORE_MITHRIL] = "Interface\\AddOns\\Gatherer\\Icons\\OreMithril",
[ORE_TRUESILVER] = "Interface\\AddOns\\Gatherer\\Icons\\OreTruesilver",
[ORE_THORIUM] = "Interface\\AddOns\\Gatherer\\Icons\\OreThorium",
[ORE_RTHORIUM] = "Interface\\Addons\\Gatherer\\Icons\\OreRThorium",
[ORE_DARKIRON] = "Interface\\Addons\\Gatherer\\Icons\\OreDarkIron",
},
["Herb"] = {
["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Green",
[HERB_ARTHASTEAR] = "Interface\\AddOns\\Gatherer\\Icons\\HerbArthasTears",
[HERB_BLACKLOTUS] = "Interface\\AddOns\\Gatherer\\Icons\\HerbBlackLotus",
[HERB_BLINDWEED] = "Interface\\AddOns\\Gatherer\\Icons\\HerbBlindweed",
[HERB_BRIARTHORN] = "Interface\\AddOns\\Gatherer\\Icons\\HerbBriarthorn",
[HERB_BRUISEWEED] = "Interface\\AddOns\\Gatherer\\Icons\\HerbBruiseweed",
[HERB_DREAMFOIL] = "Interface\\AddOns\\Gatherer\\Icons\\HerbDreamfoil",
[HERB_EARTHROOT] = "Interface\\AddOns\\Gatherer\\Icons\\HerbEarthroot",
[HERB_FADELEAF] = "Interface\\AddOns\\Gatherer\\Icons\\HerbFadeleaf",
[HERB_FIREBLOOM] = "Interface\\AddOns\\Gatherer\\Icons\\HerbFirebloom",
[HERB_GHOSTMUSHROOM] = "Interface\\AddOns\\Gatherer\\Icons\\HerbGhostMushroom",
[HERB_GOLDENSANSAM] = "Interface\\AddOns\\Gatherer\\Icons\\HerbGoldenSansam",
[HERB_GOLDTHORN] = "Interface\\AddOns\\Gatherer\\Icons\\HerbGoldthorn",
[HERB_GRAVEMOSS] = "Interface\\AddOns\\Gatherer\\Icons\\HerbGraveMoss",
[HERB_GROMSBLOOD] = "Interface\\AddOns\\Gatherer\\Icons\\HerbGromsblood",
[HERB_ICECAP] = "Interface\\AddOns\\Gatherer\\Icons\\HerbIcecap",
[HERB_KHADGARSWHISKER] = "Interface\\AddOns\\Gatherer\\Icons\\HerbKhadgarsWhisker",
[HERB_KINGSBLOOD] = "Interface\\AddOns\\Gatherer\\Icons\\HerbKingsblood",
[HERB_LIFEROOT] = "Interface\\AddOns\\Gatherer\\Icons\\HerbLiferoot",
[HERB_MAGEROYAL] = "Interface\\AddOns\\Gatherer\\Icons\\HerbMageroyal",
[HERB_MOUNTAINSILVERSAGE] = "Interface\\AddOns\\Gatherer\\Icons\\HerbMountainSilversage",
[HERB_PEACEBLOOM] = "Interface\\AddOns\\Gatherer\\Icons\\HerbPeacebloom",
[HERB_PLAGUEBLOOM] = "Interface\\AddOns\\Gatherer\\Icons\\HerbPlaguebloom",
[HERB_PURPLELOTUS] = "Interface\\AddOns\\Gatherer\\Icons\\HerbPurpleLotus",
[HERB_SILVERLEAF] = "Interface\\AddOns\\Gatherer\\Icons\\HerbSilverleaf",
[HERB_STRANGLEKELP] = "Interface\\AddOns\\Gatherer\\Icons\\HerbStranglekelp",
[HERB_SUNGRASS] = "Interface\\AddOns\\Gatherer\\Icons\\HerbSungrass",
[HERB_SWIFTTHISTLE] = "Interface\\AddOns\\Gatherer\\Icons\\HerbSwiftthistle",
[HERB_WILDSTEELBLOOM] = "Interface\\AddOns\\Gatherer\\Icons\\HerbWildSteelbloom",
[HERB_WINTERSBITE] = "Interface\\AddOns\\Gatherer\\Icons\\HerbWintersbite",
[HERB_WILDVINE] = "Interface\\AddOns\\Gatherer\\Icons\\HerbKingsblood",
},
["Treasure"] = {
["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Yellow",
[TREASURE_BOX] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureCrate",
[TREASURE_CHEST] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureChest",
[TREASURE_CLAM] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureClam",
[TREASURE_CRATE] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureCrate",
[TREASURE_BARREL] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureBarrel",
[TREASURE_CASK] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureBarrel",
[TREASURE_FOOTLOCKER] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureChest",
[TREASURE_UNGOROSOIL] = "Interface\\AddOns\\Gatherer\\Icons\\UngoroDirtPile",
[TREASURE_BLOODPETAL] = "Interface\\AddOns\\Gatherer\\Icons\\UngoroSprout",
[TREASURE_POWERCRYST] = "Interface\\AddOns\\Gatherer\\Icons\\UngoroCrystal",
[TREASURE_BLOODHERO] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureBloodHero",
[TREASURE_SHELLFISHTRAP] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureShellfishTrap",
[TREASURE_FISHNODE] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureFishnode",
[TREASURE_FISHWRECK] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureFishwreck",
[TREASURE_FISHELEM] = "Interface\\AddOns\\Gatherer\\Icons\\TreasureFishElem",
[TREASURE_NIGHTDRAGON] = "Interface\\Icons\\INV_Misc_Food_45",
[TREASURE_WHIPPERROOT] = "Interface\\Icons\\INV_Misc_Food_55",
[TREASURE_WINDBLOSSOM] = "Interface\\Icons\\INV_Misc_Food_58",
[TREASURE_SONGFLOWER] = "Interface\\Icons\\Spell_Holy_MindVision",
},
["Test"] = {["default"] = "Interface\\AddOns\\Gatherer\\Shaded\\Test"},
},
};
-- Ore rare spawn/Herbs find with matching table
Gather_RareMatch = {
[ORE_TIN] = ORE_SILVER,
[ORE_IRON] = ORE_GOLD,
[ORE_MITHRIL] = ORE_TRUESILVER,
[HERB_MAGEROYAL] = HERB_SWIFTTHISTLE,
[HERB_BRIARTHORN] = HERB_SWIFTTHISTLE,
[HERB_PURPLELOTUS] = HERB_WILDVINE,
};
-- Skill levels required
Gather_SkillLevel = {
-- Ores
[ORE_COPPER] = 1,
[ORE_TIN] = 65,
[ORE_SILVER] = 75,
[ORE_IRON] = 125,
[ORE_GOLD] = 155,
[ORE_MITHRIL] = 175,
[ORE_TRUESILVER] = 230,
[ORE_THORIUM] = 245,
[ORE_RTHORIUM] = 270,
[ORE_DARKIRON] = 230,
-- Herbs
[HERB_PEACEBLOOM] = 1,
[HERB_SILVERLEAF] = 1,
[HERB_EARTHROOT] = 15,
[HERB_MAGEROYAL] = 50,
[HERB_BRIARTHORN] = 75,
[HERB_SWIFTTHISTLE] = 50,
[HERB_STRANGLEKELP] = 85,
[HERB_BRUISEWEED] = 100,
[HERB_WILDSTEELBLOOM] = 115,
[HERB_GRAVEMOSS] = 120,
[HERB_KINGSBLOOD] = 125,
[HERB_LIFEROOT] = 150,
[HERB_FADELEAF] = 160,
[HERB_GOLDTHORN] = 175,
[HERB_KHADGARSWHISKER] = 185,
[HERB_WINTERSBITE] = 195,
[HERB_FIREBLOOM] = 205,
[HERB_PURPLELOTUS] = 210,
[HERB_WILDVINE] = 210,
[HERB_SUNGRASS] = 230,
[HERB_BLINDWEED] = 235,
[HERB_GHOSTMUSHROOM] = 245,
[HERB_GROMSBLOOD] = 250,
[HERB_GOLDENSANSAM] = 260,
[HERB_ARTHASTEAR] = 220,
[HERB_DREAMFOIL] = 270,
[HERB_MOUNTAINSILVERSAGE]= 280,
[HERB_PLAGUEBLOOM] = 285,
[HERB_ICECAP] = 290,
[HERB_BLACKLOTUS] = 300,
};
-- Match tables for shorter DB format
-- converting IconIndex to IconName and vice versa
function Gatherer_GetDB_IconIndex(iconIndex, gatherType)
-- type: (Icon, Optional[Gatherer_EGatherType]) -> Tuple[Icon, Optional[Gatherer_EGatherType]]
local iconName, gatherTypeIndex;
-- if gatherType wasn't set while icon was searched by name
if ( not gatherType and type(iconIndex) == "string" ) then
-- try to find icon index by looking through *every* possible gatherType
for myGather in Gatherer_EGatherType do
local icon = Gatherer_GetDB_IconIndex(iconIndex, myGather);
if (icon) then
-- this time return both index and hitted gatherType
return icon, myGather;
end;
end
end
gatherTypeIndex = Gatherer_EGatherType_ensureIndex(gatherType)
-- when gatherType isn't set and type(iconIndex) ~= 'string'
-- it'll loudly fail since gatherTypeIndex would be nil
for iconName in Gather_DB_IconIndex[gatherTypeIndex] do
if ( type(iconIndex) == "string" and iconName == iconIndex ) then
-- return index number
return Gather_DB_IconIndex[gatherTypeIndex][iconName];
elseif ( type(iconIndex) == "number" and Gather_DB_IconIndex[gatherTypeIndex][iconName] == iconIndex ) then
-- return icon string
return iconName;
end
end
return nil;
end
function Gatherer_GetDB_IconByGatherName(gatherName)
local iconName, numType;
local iconName = Gatherer_FindOreType(gatherName);
if (iconName) then -- Ore
numType = 2;
else
iconName = Gatherer_FindTreasureType(gatherName);
if (iconName) then -- Treasure
numType = 0;
else -- Herb
iconName = gatherName;
numType = 1;
end
end
if (not iconName) then
iconName = "default";
numType = 3;
end
return iconName, numType;
end
-- Icon indexes
-- 0 => Treasures
-- 1 => Herbs
-- 2 => Ores
-- Note: If you add new items, use icon index numbers starting from 100
Gather_DB_IconIndex = {}; -- type: Dict[Gatherer_EGatherType, Dict[IconName, IconIndex]]
Gather_DB_IconIndex[0] = {
["default"] = 0,
[TREASURE_BOX] = 1,
[TREASURE_CHEST] = 2,
[TREASURE_CLAM] = 3,
[TREASURE_CRATE] = 4,
[TREASURE_BARREL] = 5,
[TREASURE_CASK] = 6,
[TREASURE_FOOTLOCKER] = 7,
[TREASURE_UNGOROSOIL] = 8,
[TREASURE_BLOODPETAL] = 9,
[TREASURE_POWERCRYST] = 10,
[TREASURE_BLOODHERO] = 11,
[TREASURE_SHELLFISHTRAP]= 12,
[TREASURE_FISHNODE] = 13,
[TREASURE_FISHWRECK] = 14,
[TREASURE_FISHELEM] = 15,
[TREASURE_NIGHTDRAGON] = 16,
[TREASURE_WHIPPERROOT] = 17,
[TREASURE_WINDBLOSSOM] = 18,
[TREASURE_SONGFLOWER] = 19,
};
Gather_DB_IconIndex[1] = {
["default"] = 0,
[HERB_PEACEBLOOM] = 1,
[HERB_SILVERLEAF] = 2,
[HERB_EARTHROOT] = 3,
[HERB_MAGEROYAL] = 4,
[HERB_BRIARTHORN] = 5,
[HERB_SWIFTTHISTLE] = 6,
[HERB_STRANGLEKELP] = 7,
[HERB_BRUISEWEED] = 8,
[HERB_WILDSTEELBLOOM] = 9,
[HERB_GRAVEMOSS] = 10,
[HERB_KINGSBLOOD] = 11,
[HERB_LIFEROOT] = 12,
[HERB_FADELEAF] = 13,
[HERB_GOLDTHORN] = 14,
[HERB_KHADGARSWHISKER] = 15,
[HERB_WINTERSBITE] = 16,
[HERB_FIREBLOOM] = 17,
[HERB_PURPLELOTUS] = 18,
[HERB_WILDVINE] = 19,
[HERB_SUNGRASS] = 20,
[HERB_BLINDWEED] = 21,
[HERB_GHOSTMUSHROOM] = 22,
[HERB_GROMSBLOOD] = 23,
[HERB_GOLDENSANSAM] = 24,
[HERB_ARTHASTEAR] = 25,
[HERB_DREAMFOIL] = 26,
[HERB_MOUNTAINSILVERSAGE]= 27,
[HERB_PLAGUEBLOOM] = 28,
[HERB_ICECAP] = 29,
[HERB_BLACKLOTUS] = 30,
};
Gather_DB_IconIndex[2] = {
["default"] = 0,
[ORE_COPPER] = 1,
[ORE_TIN] = 2,
[ORE_SILVER] = 3,
[ORE_IRON] = 4,
[ORE_GOLD] = 5,
[ORE_MITHRIL] = 6,
[ORE_TRUESILVER] = 7,
[ORE_THORIUM] = 8,
[ORE_RTHORIUM] = 9,
[ORE_DARKIRON] = 10,
};
Gather_DB_IconIndex[3] = {
["default"] = 0,
}