v9.7.2: Ebonhold Database integration and core logic refinements
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB");
|
||||
|
||||
|
||||
QuestieDB.itemKeys = {
|
||||
['name'] = 1, -- string
|
||||
['npcDrops'] = 2, -- table or nil, NPC IDs
|
||||
['objectDrops'] = 3, -- table or nil, object IDs
|
||||
['itemDrops'] = 4, -- table or nil, item IDs
|
||||
['startQuest'] = 5, -- int or nil, ID of the quest started by this item
|
||||
['questRewards'] = 6, -- table or nil, quest IDs
|
||||
['flags'] = 7, -- int or nil, see: https://github.com/cmangos/issues/wiki/Item_template#flags
|
||||
['foodType'] = 8, -- int or nil, see https://github.com/cmangos/issues/wiki/Item_template#foodtype
|
||||
['itemLevel'] = 9, -- int, the level of this item
|
||||
['requiredLevel'] = 10, -- int, the level required to equip/use this item
|
||||
['ammoType'] = 11, -- int,
|
||||
['class'] = 12, -- int,
|
||||
['subClass'] = 13, -- int,
|
||||
['vendors'] = 14, -- table or nil, NPC IDs
|
||||
['relatedQuests'] = 15, -- table or nil, IDs of quests that are related to this item
|
||||
['teachesSpell'] = 16, -- int, spellID taught by this item upon use
|
||||
}
|
||||
|
||||
QuestieDB.itemKeysReversed = {}
|
||||
for key, id in pairs(QuestieDB.itemKeys) do
|
||||
QuestieDB.itemKeysReversed[id] = key
|
||||
end
|
||||
|
||||
-- item class/subClass combinations
|
||||
|
||||
--class subClass
|
||||
-- 0 0 Consumable
|
||||
-- 1 0 Container, Bag
|
||||
-- 1 1 Container, Soul bag
|
||||
-- 1 2 Container, Herb bag
|
||||
-- 1 3 Container, Enchanting bag
|
||||
-- 1 4 Container, Engineering bag
|
||||
-- 2 0 Weapon, Axe 1H
|
||||
-- 2 1 Weapon, Axe 2H
|
||||
-- 2 2 Weapon, Bow
|
||||
-- 2 3 Weapon, Gun
|
||||
-- 2 4 Weapon, Mace 1H
|
||||
-- 2 5 Weapon, Mace 2H
|
||||
-- 2 6 Weapon, Polearm
|
||||
-- 2 7 Weapon, Sword 1H
|
||||
-- 2 8 Weapon, Sword 2H
|
||||
-- 2 10 Weapon, Staff
|
||||
-- 2 13 Weapon, Fist weapon
|
||||
-- 2 14 Weapon, Miscellaneous
|
||||
-- 2 15 Weapon, Dagger
|
||||
-- 2 16 Weapon, Thrown
|
||||
-- 2 17 Weapon, Spear
|
||||
-- 2 18 Weapon, Crossbow
|
||||
-- 2 19 Weapon, Wand
|
||||
-- 2 20 Weapon, Fishing pole
|
||||
-- 4 0 Armor, Miscellaneous
|
||||
-- 4 1 Armor, Cloth
|
||||
-- 4 2 Armor, Leather
|
||||
-- 4 3 Armor, Mail
|
||||
-- 4 4 Armor, Plate
|
||||
-- 4 6 Armor, Shield
|
||||
-- 4 7 Armor, Libram
|
||||
-- 4 8 Armor, Idol
|
||||
-- 4 9 Armor, Totem
|
||||
-- 5 0 Reagent
|
||||
-- 6 2 Projectile, Arrow
|
||||
-- 6 3 Projectile, Bullet
|
||||
-- 7 0 Trade goods, Trade goods
|
||||
-- 7 1 Trade goods, Parts
|
||||
-- 7 2 Trade goods, Explosives
|
||||
-- 7 3 Trade goods, Devices
|
||||
-- 9 0 Recipe, Book
|
||||
-- 9 1 Recipe, Leatherworking
|
||||
-- 9 2 Recipe, Tailoring
|
||||
-- 9 3 Recipe, Engineering
|
||||
-- 9 4 Recipe, Blacksmithing
|
||||
-- 9 5 Recipe, Cooking
|
||||
-- 9 6 Recipe, Alchemy
|
||||
-- 9 7 Recipe, First aid
|
||||
-- 9 8 Recipe, Enchanting
|
||||
-- 9 9 Recipe, Fishing
|
||||
-- 11 2 Quiver
|
||||
-- 11 3 Ammo pouch
|
||||
-- 12 0 Quest
|
||||
-- 13 0 Key
|
||||
-- 13 1 Lockpick
|
||||
-- 15 0 Miscellaneous, Junk
|
||||
|
||||
QuestieDB.itemClasses = {
|
||||
QUEST = 12,
|
||||
}
|
||||
|
||||
QuestieDB.itemCompilerTypes = {
|
||||
["foodType"] = "u8",
|
||||
["itemLevel"] = "u16",
|
||||
["flags"] = "u32",
|
||||
["startQuest"] = "u24",
|
||||
["requiredLevel"] = "u8",
|
||||
["ammoType"] = "u8",
|
||||
["class"] = "u8",
|
||||
["subClass"] = "u8",
|
||||
["npcDrops"] = "u16u24array",
|
||||
["objectDrops"] = "u8u24array",
|
||||
["itemDrops"] = "u8u24array",
|
||||
["vendors"] = "u8u24array",
|
||||
["relatedQuests"] = "u8u24array",
|
||||
["questRewards"] = "u8u24array",
|
||||
["name"] = "u8string",
|
||||
["teachesSpell"] = "u24",
|
||||
}
|
||||
|
||||
QuestieDB.itemCompilerOrder = { -- order easily skipable data first for efficiency
|
||||
--static size
|
||||
"flags", "startQuest", "itemLevel", "requiredLevel", "foodType", "ammoType", "class", "subClass", "teachesSpell",
|
||||
|
||||
-- variable size
|
||||
"name", "relatedQuests", "questRewards", "npcDrops", "objectDrops", "vendors", "itemDrops"
|
||||
}
|
||||
|
||||
-- temporary, until we remove the old db funcitons
|
||||
QuestieDB._itemAdapterQueryOrder = {}
|
||||
for key, id in pairs(QuestieDB.itemKeys) do
|
||||
QuestieDB._itemAdapterQueryOrder[id] = key
|
||||
end
|
||||
Reference in New Issue
Block a user