diff --git a/AIResearchGrid.lua b/AIResearchGrid.lua index 7479c53..eac1bf9 100644 --- a/AIResearchGrid.lua +++ b/AIResearchGrid.lua @@ -9,9 +9,7 @@ -- Glass, Xivkyn, Ancient Orc, and Mercenary Akaviri added in by Scinutz local _ -local COLOR_ORANGE = ZO_ColorDef:New(220/255, 129/255, 34/255) -local COLOR_RED = ZO_ColorDef:New(255/255, 25/255, 25/255) -local COLOR_MOTIF_KNOWN = ZO_ColorDef:New(0.2, 1, 0.2, 1) -- Green + AIRG = {} AIRG.name = "AIResearchGrid" @@ -25,8 +23,6 @@ AIRG.L = {} -- declare language strings -- Set-up the defaults options for saved variables. AIRG.defaults = { - traits = {}, - styles = {}, showMotifs = true, } @@ -38,7 +34,6 @@ function AIRG.PlayerActivated() AIRG.PopulateStyleData() AIRG.DisplayStyles() AIRG.PopulateAll() -- do last - end function AIRG.ToggleMainWindow() @@ -91,7 +86,7 @@ function AIRG.initUI() AIRG.UI.WindowSubTitle:SetColor(0, 1, 0, 1); -- green AIRG.UI.WindowSubTitle:SetText("") -- Nice little line under the main title - -- ## Check is htis showing right? + AIRG.UI.TopDivider = WINDOW_MANAGER:CreateControl("AIResearchGridTopDivider", AIResearchGrid, CT_TEXTURE) AIRG.UI.TopDivider:SetDimensions(750, 5) AIRG.UI.TopDivider:SetAnchor(TOPLEFT, AIResearchGrid, TOPLEFT, 25, 32) @@ -143,7 +138,7 @@ function AIRG.initUI() AIRG.UI.btnUpdateOther:SetState(BSTATE_NORMAL) AIRG.UI.btnUpdateOther:SetMouseOverBlendMode(0) -- AIRG.UI.btnUpdateOther:SetNormalTexture("/esoui/art/icons/ability_tradecraft_008.dds") - AIRG.UI.btnUpdateOther:SetMouseOverTexture("ESOUI/art/buttons/generic_highlight.dds") + AIRG.UI.btnUpdateOther:SetMouseOverTexture("esoui/art/buttons/generic_highlight.dds") AIRG.UI.btnUpdateOther:SetClickSound("Click") AIRG.UI.btnUpdateOther:SetDisabledFontColor(ZO_DEFAULT_DISABLED_COLOR:UnpackRGBA()) AIRG.UI.btnUpdateOther:SetFont("ZoFontGame") @@ -161,10 +156,6 @@ function AIRG.initUI() end AIRG.OnCraftSelected() --redisplay end) - -- The following have caused bugs to be reported, that I can't duplicate. As there is no tooltip text, disable it entirely. - -- AIRG.UI.btnUpdateOther:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) - -- AIRG.UI.btnUpdateOther:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) - AIRG.UI.btnUpdateOther:SetMouseEnabled(true) @@ -178,7 +169,7 @@ function AIRG.initUI() AIRG.UI.btnBlacksmithing:SetEnabled(true) AIRG.UI.btnBlacksmithing:SetClickSound(SOUNDS.WOODWORKER_EXTRACTED_BOOSTER) AIRG.UI.btnBlacksmithing:SetNormalTexture("/esoui/art/icons/ability_smith_007.dds") - AIRG.UI.btnBlacksmithing:SetMouseOverTexture("ESOUI/art/buttons/generic_highlight.dds") + AIRG.UI.btnBlacksmithing:SetMouseOverTexture("esoui/art/buttons/generic_highlight.dds") AIRG.UI.btnBlacksmithing:SetHandler("OnClicked", function(self) AIRG:OnCraftSelected(CRAFTING_TYPE_BLACKSMITHING) end) -- CREATE BUTTON FOR PROFESSION: WOODWORKING AIRG.UI.btnWoodworking = WINDOW_MANAGER:CreateControl("AIResearchGridButtonWoodworking", AIResearchGrid, CT_BUTTON) @@ -190,7 +181,7 @@ function AIRG.initUI() AIRG.UI.btnWoodworking:SetEnabled(true) AIRG.UI.btnWoodworking:SetClickSound(SOUNDS.BLACKSMITH_EXTRACTED_BOOSTER) AIRG.UI.btnWoodworking:SetNormalTexture("/esoui/art/icons/ability_tradecraft_009.dds") - AIRG.UI.btnWoodworking:SetMouseOverTexture("ESOUI/art/buttons/generic_highlight.dds") + AIRG.UI.btnWoodworking:SetMouseOverTexture("esoui/art/buttons/generic_highlight.dds") AIRG.UI.btnWoodworking:SetHandler("OnClicked", function(self) AIRG:OnCraftSelected(CRAFTING_TYPE_WOODWORKING) end) -- CREATE BUTTON FOR PROFESSION: CLOTHING AIRG.UI.btnClothing = WINDOW_MANAGER:CreateControl("AIResearchGridButtonClothing", AIResearchGrid, CT_BUTTON) @@ -202,7 +193,7 @@ function AIRG.initUI() AIRG.UI.btnClothing:SetEnabled(true) AIRG.UI.btnClothing:SetClickSound(SOUNDS.CLOTHIER_EXTRACTED_BOOSTER) AIRG.UI.btnClothing:SetNormalTexture("/esoui/art/icons/ability_tradecraft_008.dds") - AIRG.UI.btnClothing:SetMouseOverTexture("ESOUI/art/buttons/generic_highlight.dds") + AIRG.UI.btnClothing:SetMouseOverTexture("esoui/art/buttons/generic_highlight.dds") AIRG.UI.btnClothing:SetHandler("OnClicked", function(self) AIRG:OnCraftSelected(CRAFTING_TYPE_CLOTHIER) end) -- BUILD THE TRAIT LABELS ON THE LEFT-SIDE using built-in language strings @@ -249,7 +240,7 @@ function AIRG.initUI() AIRG.UI.columnButtons[i]:SetAnchor(TOPLEFT, AIResearchGrid, TOPLEFT, 40*i + 150, 55) AIRG.UI.columnButtons[i]:SetHidden(true) AIRG.UI.columnButtons[i]:SetEnabled(true) - AIRG.UI.columnButtons[i]:SetMouseOverTexture("ESOUI/art/buttons/generic_highlight.dds") + AIRG.UI.columnButtons[i]:SetMouseOverTexture("esoui/art/buttons/generic_highlight.dds") AIRG.UI.columnButtons[i].text = i -- placeholder AIRG.UI.columnButtons[i]:SetHandler("OnMouseEnter", function (self) ZO_Tooltips_ShowTextTooltip(self, TOP, self.text) @@ -357,7 +348,7 @@ function AIRG.initUI() -- BUILD LABEL FOR STYLES AIRG.UI.StyleLabel = WINDOW_MANAGER:CreateControl("AIResearchStylelabel", AIRG.UI.motifSection, CT_LABEL) AIRG.UI.StyleLabel:SetAnchor(TOPLEFT, AIRG.UI.motifSection, TOPLEFT, 5, 6) - AIRG.UI.StyleLabel:SetText("")-- AIRG.UI.StyleLabel:SetText(GetString(SI_SMITHING_HEADER_STYLE)) + AIRG.UI.StyleLabel:SetText("") AIRG.UI.StyleLabel:SetDimensions(150, 24) AIRG.UI.StyleLabel:SetFont("ZoFontGame") AIRG.UI.StyleLabel:SetHorizontalAlignment(TEXT_ALIGN_RIGHT) @@ -377,7 +368,6 @@ function AIRG.OnCraftSelected(_,thisCraft) end - AIRG.UI.WindowSubTitle:SetText(AIRG.craftNames[thisCraft]) local busy @@ -452,12 +442,12 @@ function AIRG.OnCraftSelected(_,thisCraft) AIRG.UI.gridButtons[i][rowNum].tooltipText = tooltiptext AIRG.UI.gridButtons[i][rowNum]:SetMouseEnabled(true) elseif (tKnown > 0) then -- Trait is being researched - AIRG.UI.gridButtons[i][rowNum]:SetTexture("ESOUI/art/mounts/timer_icon.dds") - AIRG.UI.gridButtons[i][rowNum]:SetColor(0.5, 0.5, 1, 1) -- Blue + AIRG.UI.gridButtons[i][rowNum]:SetTexture("/esoui/art/miscellaneous/gamepad/gp_icon_timer32.dds") + AIRG.UI.gridButtons[i][rowNum]:SetColor(0.0, .5, .75, 1) -- Blue AIRG.UI.gridButtons[i][rowNum]:SetMouseEnabled(true) else -- Trait is NOT known AIRG.UI.gridButtons[i][rowNum]:SetColor(1, 0.2, 0.2, 1) -- Red - AIRG.UI.gridButtons[i][rowNum]:SetTexture("ESOUI/art/buttons/decline_up.dds") -- an "X". + AIRG.UI.gridButtons[i][rowNum]:SetTexture("esoui/art/buttons/decline_up.dds") -- an "X". end end end --Relative @@ -552,7 +542,6 @@ function AIRG.PopulateStyleData() for StyleIndex, Style in ipairs (AIRG.StyleChapterDat) do AIRG.vars.char[AIRG.curCharacter].StyleChapter[StyleIndex] = {} -- Table for each Chapter (weapon/clothing) - for ChapterIndex, Chapter in ipairs(AIRG.styleChaptersLookup) do local desc, numCompleted = GetAchievementCriterion(Style[4], Chapter) @@ -562,8 +551,6 @@ function AIRG.PopulateStyleData() AIRG.vars.char[AIRG.curCharacter].StyleChapter[StyleIndex][Chapter] = numCompleted == 1 end end - - end -- AIRG.PopulateStyleData -- When any character data changes we have to go through and create our virtual "All" from the beginning. @@ -620,7 +607,6 @@ function AIRG.DisplayStyles() if (known) then AIRG.UI.StyleSingleButtons[StyleIndex]:SetTexture(AIRG.StyleSingleDat[StyleIndex][3] .. "down.dds") AIRG.UI.StyleSingleButtons[StyleIndex]:SetColor(0.2, 1, 0.2, 1) -- Green - else AIRG.UI.StyleSingleButtons[StyleIndex]:SetTexture(AIRG.StyleSingleDat[StyleIndex][3] .. "up.dds") AIRG.UI.StyleSingleButtons[StyleIndex]:SetColor(1, 1, 1, 0.7) -- grey @@ -770,38 +756,38 @@ function AIRG.LoadStatic() AIRG.StyleSingleDat ={ -- Styles without Chapters. - {ITEMSTYLE_RACIAL_HIGH_ELF, 8, "ESOUI/art/charactercreate/charactercreate_altmericon_"}, - {ITEMSTYLE_RACIAL_DARK_ELF, 5, "ESOUI/art/charactercreate/charactercreate_dunmericon_"}, - {ITEMSTYLE_RACIAL_WOOD_ELF, 9, "ESOUI/art/charactercreate/charactercreate_bosmericon_"}, - {ITEMSTYLE_RACIAL_NORD, 6, "ESOUI/art/charactercreate/charactercreate_nordicon_"}, - {ITEMSTYLE_RACIAL_BRETON, 2, "ESOUI/art/charactercreate/charactercreate_bretonicon_"}, - {ITEMSTYLE_RACIAL_REDGUARD, 3, "ESOUI/art/charactercreate/charactercreate_redguardicon_"}, - {ITEMSTYLE_RACIAL_KHAJIIT, 10, "ESOUI/art/charactercreate/charactercreate_khajiiticon_"}, - {ITEMSTYLE_RACIAL_ORC, 4, "ESOUI/art/charactercreate/charactercreate_orcicon_"}, - {ITEMSTYLE_RACIAL_ARGONIAN, 7, "ESOUI/art/charactercreate/charactercreate_argonianicon_"}, - {ITEMSTYLE_RACIAL_IMPERIAL, 35, "ESOUI/art/charactercreate/charactercreate_imperialicon_"}, - {ITEMSTYLE_AREA_ANCIENT_ELF, 16, "ESOUI/art/progression/progression_indexicon_weapons_"}, - {ITEMSTYLE_AREA_REACH, 18, "ESOUI/art/progression/progression_indexicon_weapons_"}, -- Barbaric - {ITEMSTYLE_ENEMY_DAEDRIC, 21, "ESOUI/art/progression/progression_indexicon_weapons_"}, - {ITEMSTYLE_ENEMY_PRIMITIVE, 20, "ESOUI/art/progression/progression_indexicon_weapons_"}, -- Primal - {ITEMSTYLE_AREA_SOUL_SHRIVEN, 31, "ESOUI/art/progression/progression_indexicon_weapons_"} + {ITEMSTYLE_RACIAL_HIGH_ELF, 8, "esoui/art/charactercreate/charactercreate_altmericon_"}, + {ITEMSTYLE_RACIAL_DARK_ELF, 5, "esoui/art/charactercreate/charactercreate_dunmericon_"}, + {ITEMSTYLE_RACIAL_WOOD_ELF, 9, "esoui/art/charactercreate/charactercreate_bosmericon_"}, + {ITEMSTYLE_RACIAL_NORD, 6, "esoui/art/charactercreate/charactercreate_nordicon_"}, + {ITEMSTYLE_RACIAL_BRETON, 2, "esoui/art/charactercreate/charactercreate_bretonicon_"}, + {ITEMSTYLE_RACIAL_REDGUARD, 3, "esoui/art/charactercreate/charactercreate_redguardicon_"}, + {ITEMSTYLE_RACIAL_KHAJIIT, 10, "esoui/art/charactercreate/charactercreate_khajiiticon_"}, + {ITEMSTYLE_RACIAL_ORC, 4, "esoui/art/charactercreate/charactercreate_orcicon_"}, + {ITEMSTYLE_RACIAL_ARGONIAN, 7, "esoui/art/charactercreate/charactercreate_argonianicon_"}, + {ITEMSTYLE_RACIAL_IMPERIAL, 35, "esoui/art/charactercreate/charactercreate_imperialicon_"}, + {ITEMSTYLE_AREA_ANCIENT_ELF, 16, "esoui/art/progression/progression_indexicon_weapons_"}, + {ITEMSTYLE_AREA_REACH, 18, "esoui/art/progression/progression_indexicon_weapons_"}, -- Barbaric + {ITEMSTYLE_ENEMY_DAEDRIC, 21, "esoui/art/progression/progression_indexicon_weapons_"}, + {ITEMSTYLE_ENEMY_PRIMITIVE, 20, "esoui/art/progression/progression_indexicon_weapons_"}, -- Primal + {ITEMSTYLE_AREA_SOUL_SHRIVEN, 31, "esoui/art/progression/progression_indexicon_weapons_"} } -- Style Number,Mat Number, Icon, Achievment ID AIRG.StyleChapterDat ={ - {ITEMSTYLE_AREA_DWEMER, 15, "ESOUI/art/progression/progression_indexicon_weapons_", 1144}, - {ITEMSTYLE_GLASS, 29, "ESOUI/art/progression/progression_indexicon_weapons_", 1319}, - {ITEMSTYLE_AREA_XIVKYN, 30, "ESOUI/art/progression/progression_indexicon_weapons_", 1181}, - {ITEMSTYLE_AREA_ANCIENT_ORC, 23, "ESOUI/art/progression/progression_indexicon_weapons_", 1341}, - {ITEMSTYLE_AREA_AKAVIRI, 34, "ESOUI/art/progression/progression_indexicon_weapons_", 1318}, - {ITEMSTYLE_UNDAUNTED, 27, "ESOUI/art/progression/progression_indexicon_weapons_",1348}, --Mercenary - {ITEMSTYLE_DEITY_MALACATH, 14, "ESOUI/art/progression/progression_indexicon_weapons_", 1412}, - {ITEMSTYLE_DEITY_TRINIMAC, 21, "ESOUI/art/progression/progression_indexicon_weapons_", 1411}, - {47, 48, "ESOUI/art/progression/progression_indexicon_weapons_", 1417}, -- Outlaw - {ITEMSTYLE_ALLIANCE_EBONHEART, 25, "ESOUI/art/progression/progression_indexicon_weapons_",1414}, - {ITEMSTYLE_ALLIANCE_ALDMERI, 26, "ESOUI/art/progression/progression_indexicon_weapons_", 1415}, - {ITEMSTYLE_ALLIANCE_DAGGERFALL, 24, "ESOUI/art/progression/progression_indexicon_weapons_", 1416} + {ITEMSTYLE_AREA_DWEMER, 15, "esoui/art/progression/progression_indexicon_weapons_", 1144}, + {ITEMSTYLE_GLASS, 29, "esoui/art/progression/progression_indexicon_weapons_", 1319}, + {ITEMSTYLE_AREA_XIVKYN, 30, "esoui/art/progression/progression_indexicon_weapons_", 1181}, + {ITEMSTYLE_AREA_ANCIENT_ORC, 23, "esoui/art/progression/progression_indexicon_weapons_", 1341}, + {ITEMSTYLE_AREA_AKAVIRI, 34, "esoui/art/progression/progression_indexicon_weapons_", 1318}, + {ITEMSTYLE_UNDAUNTED, 27, "esoui/art/progression/progression_indexicon_weapons_",1348}, --Mercenary + {ITEMSTYLE_DEITY_MALACATH, 14, "esoui/art/progression/progression_indexicon_weapons_", 1412}, + {ITEMSTYLE_DEITY_TRINIMAC, 21, "esoui/art/progression/progression_indexicon_weapons_", 1411}, + {47, 48, "esoui/art/progression/progression_indexicon_weapons_", 1417}, -- Outlaw + {ITEMSTYLE_ALLIANCE_EBONHEART, 25, "esoui/art/progression/progression_indexicon_weapons_",1414}, + {ITEMSTYLE_ALLIANCE_ALDMERI, 26, "esoui/art/progression/progression_indexicon_weapons_", 1415}, + {ITEMSTYLE_ALLIANCE_DAGGERFALL, 24, "esoui/art/progression/progression_indexicon_weapons_", 1416} } end -- AIRG.LoadStatic @@ -814,7 +800,7 @@ function AIRG.Initialise(eventCode, addOnName) AIRG.InitialiseLanguage() -- Load the saved variables - AIRG.vars = ZO_SavedVars:NewAccountWide("AIRG_SavedVariables", 2, nil, AIRG.defaults) + AIRG.vars = ZO_SavedVars:NewAccountWide("AIRG_SavedVariables", 3, nil, AIRG.defaults) AIRG.all = AIRG.L["ALL"] -- replace Default with localise string -- Register Keybinding @@ -832,13 +818,6 @@ function AIRG.Initialise(eventCode, addOnName) AIRG.LoadStatic() -- tables for new Data on version 3.4.0 - if type (AIRG.vars.StyleSingle) ~= "table" then - AIRG.vars.StyleSingle = {} - end - - if type (AIRG.vars.StyleChapter) ~= "table" then - AIRG.vars.StyleChapter = {} - end if type(AIRG.vars.char) ~= "table" then AIRG.vars.char = {} @@ -855,9 +834,6 @@ function AIRG.Initialise(eventCode, addOnName) AIRG.vars.char[AIRG.playerName].traits = {} -- create a table for this character's matrix AIRG.vars.char[AIRG.playerName].StyleChapter = {} AIRG.vars.char[AIRG.playerName].StyleSingle = {} - AIRG.vars.StyleSingle = nil --TEMP - AIRG.vars.StyleChapter= nil - -- Create Empty data for "ALL" set to 0, (Not known) @@ -867,14 +843,14 @@ function AIRG.Initialise(eventCode, addOnName) AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_BLACKSMITHING][i] = {} -- Cycle through the traits for this item for j = 1, 9 do - AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_BLACKSMITHING][i][j] = 0 -- set to not known + AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_BLACKSMITHING][i][j] = 0 -- set to not known end end for i = 8, 14 do -- Armour AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_BLACKSMITHING][i] = {} -- Cycle through the traits for this item for j = 10, 18 do - AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_BLACKSMITHING][i][j] = 0 -- set to not known + AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_BLACKSMITHING][i][j] = 0 -- set to not known end end @@ -884,7 +860,7 @@ function AIRG.Initialise(eventCode, addOnName) AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_CLOTHIER][i] = {} -- Cycle through the traits for this item for j = 10, 18 do - AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_CLOTHIER][i][j] = 0 -- set to not known + AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_CLOTHIER][i][j] = 0 -- set to not known end end @@ -894,14 +870,14 @@ function AIRG.Initialise(eventCode, addOnName) AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_WOODWORKING][i] = {} -- Cycle through the traits for this item for j = 1, 9 do - AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_WOODWORKING][i][j] = 0 -- set to not known + AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_WOODWORKING][i][j] = 0 -- set to not known end end for i = 6, 6 do --Shields AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_WOODWORKING][i] = {} -- Cycle through the traits for this item for j = 10, 18 do - AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_WOODWORKING][i][j] = 0 -- set to not known + AIRG.vars.char[AIRG.all].traits[CRAFTING_TYPE_WOODWORKING][i][j] = 0 -- set to not known end end @@ -924,9 +900,7 @@ function AIRG.Initialise(eventCode, addOnName) -- REGISTER for events that aren't initialise. EVENT_MANAGER:RegisterForEvent("AIRG", EVENT_SMITHING_TRAIT_RESEARCH_STARTED, AIRG.ResearchStarted) EVENT_MANAGER:RegisterForEvent("AIRG", EVENT_SMITHING_TRAIT_RESEARCH_COMPLETED, AIRG.ResearchCompleted) - EVENT_MANAGER:RegisterForEvent("AIRG", EVENT_STYLE_LEARNED, AIRG.StyleLearned) - EVENT_MANAGER:RegisterForEvent("AIRG", EVENT_PLAYER_ACTIVATED, AIRG.PlayerActivated) SCENE_MANAGER:RegisterTopLevel(AIResearchGrid, false) -- enables close on Esc AIRG.initialised = true diff --git a/AIresearchGridConfig.lua b/AIresearchGridConfig.lua index 8dfc2a9..4427f5f 100644 --- a/AIresearchGridConfig.lua +++ b/AIresearchGridConfig.lua @@ -1,7 +1,7 @@ function AIRG.CreateConfigMenu() local charList = {} table.insert(charList,"") - for charName, _ in pairs(AIRG.vars.data) do + for charName, _ in pairs(AIRG.vars.char) do if charName ~= AIRG.all and charName ~= AIRG.playerName -- Can't Delete, All, or yourself or the Character displaying then table.insert(charList, charName) -- Set at load time so Charater displaying cannot be filtered here. Check on Click end