diff --git a/Bindings.xml b/Bindings.xml
index d435ba7..74323fc 100644
--- a/Bindings.xml
+++ b/Bindings.xml
@@ -4,6 +4,9 @@
<Action name="LEOALTHOLIC_TOGGLE_WINDOW">
<Down>LeoAltholic:ToggleUI()</Down>
</Action>
+ <Action name="LEOALTHOLIC_TOGGLE_CHECKLIST">
+ <Down>LeoAltholicChecklistUI.ToggleUI()</Down>
+ </Action>
<Action name="LEOALTHOLIC_TRACK_QUEST">
<Down>LeoAltholic.trackQuest(QUEST_JOURNAL_MANAGER:GetFocusedQuestIndex())</Down>
</Action>
diff --git a/Lang/de.lua b/Lang/de.lua
index f461bb4..3cf9b62 100644
--- a/Lang/de.lua
+++ b/Lang/de.lua
@@ -24,6 +24,7 @@ ZO_CreateStringId("LEOALT_MAXIMUM", "Maximum")
ZO_CreateStringId("LEOALT_RECOVERY", "Wiederherst.")
ZO_CreateStringId("LEOALT_WRIT", "schrieb")
+ZO_CreateStringId("LEOALT_DELIVER", "Beliefert")
ZO_CreateStringId("LEOALT_ALCHEMIST", "Alchemisten")
ZO_CreateStringId("LEOALT_BLACKSMITH", "Schmiede")
ZO_CreateStringId("LEOALT_CLOTHIER", "Schneider")
@@ -39,9 +40,12 @@ ZO_CreateStringId("LEOALT_MAIL_ENCHANTER", "Verzauberermaterial")
ZO_CreateStringId("LEOALT_MAIL_PROVISIONER", "Versorgerzutaten")
ZO_CreateStringId('SI_BINDING_NAME_LEOALTHOLIC_TOGGLE_WINDOW', "Zeige/Verstecke Haupt Fenster")
+ZO_CreateStringId('SI_BINDING_NAME_LEOALTHOLIC_TOGGLE_CHECKLIST', "Zeige/Verstecke Checkliste")
ZO_CreateStringId('SI_BINDING_NAME_LEOALTHOLIC_TRACK_QUEST', "Verfolge tägliche Quest")
ZO_CreateStringId("LEOALT_CHECKLIST", "Checkliste")
+ZO_CreateStringId("LEOALT_CHECKLIST_UPWARDS", "Neue Anzeigen oben anfügen")
ZO_CreateStringId("LEOALT_TOOLBAR", "Toolbar")
ZO_CreateStringId("LEOALT_BUMP_COMPASS", "Bump Game Compass down")
ZO_CreateStringId("LEOALT_ACCOUNT_CONFIGURATION", "Accountweite Einstellung")
+ZO_CreateStringId("LEOALT_CHAR_CONFIGURATION", "Charakter spezifisch")
diff --git a/Lang/en.lua b/Lang/en.lua
index 54fe05d..80fb885 100644
--- a/Lang/en.lua
+++ b/Lang/en.lua
@@ -24,6 +24,7 @@ ZO_CreateStringId("LEOALT_MAXIMUM", "Maximum")
ZO_CreateStringId("LEOALT_RECOVERY", "Recovery")
ZO_CreateStringId("LEOALT_WRIT", "Writ")
+ZO_CreateStringId("LEOALT_DELIVER", "Deliver")
ZO_CreateStringId("LEOALT_ALCHEMIST", "Alchemist")
ZO_CreateStringId("LEOALT_BLACKSMITH", "Blacksmith")
ZO_CreateStringId("LEOALT_CLOTHIER", "Clothier")
@@ -39,9 +40,12 @@ ZO_CreateStringId("LEOALT_MAIL_ENCHANTER", "Raw Enchanter Materials")
ZO_CreateStringId("LEOALT_MAIL_PROVISIONER", "Raw Provisioner Materials")
ZO_CreateStringId('SI_BINDING_NAME_LEOALTHOLIC_TOGGLE_WINDOW', "Show/Hide Main Window")
+ZO_CreateStringId("SI_BINDING_NAME_LEOALTHOLIC_TOGGLE_CHECKLIST", "Show/Hide Checklist")
ZO_CreateStringId('SI_BINDING_NAME_LEOALTHOLIC_TRACK_QUEST', "Track Daily Quest")
ZO_CreateStringId("LEOALT_CHECKLIST", "Checklist")
+ZO_CreateStringId("LEOALT_CHECKLIST_UPWARDS", "Add Frames Upwards")
ZO_CreateStringId("LEOALT_TOOLBAR", "Toolbar")
ZO_CreateStringId("LEOALT_BUMP_COMPASS", "Bump Game Compass down")
ZO_CreateStringId("LEOALT_ACCOUNT_CONFIGURATION", "Account Wide Configuration")
+ZO_CreateStringId("LEOALT_CHAR_CONFIGURATION", "Character Specific")
diff --git a/Lang/fr.lua b/Lang/fr.lua
index 2678e74..c27c79d 100644
--- a/Lang/fr.lua
+++ b/Lang/fr.lua
@@ -24,6 +24,7 @@ ZO_CreateStringId("LEOALT_MAXIMUM", "Maximum")
ZO_CreateStringId("LEOALT_RECOVERY", "Recovery")
ZO_CreateStringId("LEOALT_WRIT", "Commande")
+ZO_CreateStringId("LEOALT_DELIVER", "Livrez")
ZO_CreateStringId("LEOALT_ALCHEMIST", "d'alchimie")
ZO_CreateStringId("LEOALT_BLACKSMITH", "forge")
ZO_CreateStringId("LEOALT_CLOTHIER", "tailleur")
@@ -39,9 +40,12 @@ ZO_CreateStringId("LEOALT_MAIL_ENCHANTER", "Matériaux bruts d'enchantement")
ZO_CreateStringId("LEOALT_MAIL_PROVISIONER", "Matériaux bruts de cuisine")
ZO_CreateStringId('SI_BINDING_NAME_LEOALTHOLIC_TOGGLE_WINDOW', "Show/Hide Main Window")
+ZO_CreateStringId("SI_BINDING_NAME_LEOALTHOLIC_TOGGLE_CHECKLIST", "Show/Hide Checklist")
ZO_CreateStringId('SI_BINDING_NAME_LEOALTHOLIC_TRACK_QUEST', "Track Daily Quest")
ZO_CreateStringId("LEOALT_CHECKLIST", "Liste de contrôle")
+ZO_CreateStringId("LEOALT_CHECKLIST_UPWARDS", "Add Frames Upwards")
ZO_CreateStringId("LEOALT_TOOLBAR", "Toolbar")
ZO_CreateStringId("LEOALT_BUMP_COMPASS", "Bump Game Compass down")
ZO_CreateStringId("LEOALT_ACCOUNT_CONFIGURATION", "Account Wide Configuration")
+ZO_CreateStringId("LEOALT_CHAR_CONFIGURATION", "Character Specific")
diff --git a/Lang/jp.lua b/Lang/jp.lua
index 037b775..425d753 100644
--- a/Lang/jp.lua
+++ b/Lang/jp.lua
@@ -24,6 +24,7 @@ ZO_CreateStringId("LEOALT_MAXIMUM", "最大")
ZO_CreateStringId("LEOALT_RECOVERY", "回復")
ZO_CreateStringId("LEOALT_WRIT", "依頼を調べる")
+ZO_CreateStringId("LEOALT_DELIVER", "Deliver")
ZO_CreateStringId("LEOALT_ALCHEMIST", "錬金術")
ZO_CreateStringId("LEOALT_BLACKSMITH", "鍛冶")
ZO_CreateStringId("LEOALT_CLOTHIER", "仕立")
@@ -39,9 +40,12 @@ ZO_CreateStringId("LEOALT_MAIL_ENCHANTER", "付呪師用素材")
ZO_CreateStringId("LEOALT_MAIL_PROVISIONER", "調理師用素材")
ZO_CreateStringId('SI_BINDING_NAME_LEOALTHOLIC_TOGGLE_WINDOW', "表示/非表示 メイン 画面")
+ZO_CreateStringId("SI_BINDING_NAME_LEOALTHOLIC_TOGGLE_CHECKLIST", "表示/非表示 チェックリスト")
ZO_CreateStringId('SI_BINDING_NAME_LEOALTHOLIC_TRACK_QUEST', "デイリークエストを追跡")
ZO_CreateStringId("LEOALT_CHECKLIST", "チェックリスト")
+ZO_CreateStringId("LEOALT_CHECKLIST_UPWARDS", "挑発バーを上方向に追加")
ZO_CreateStringId("LEOALT_TOOLBAR", "Toolbar")
ZO_CreateStringId("LEOALT_BUMP_COMPASS", "Bump Game Compass down")
ZO_CreateStringId("LEOALT_ACCOUNT_CONFIGURATION", "Account Wide Configuration")
+ZO_CreateStringId("LEOALT_CHAR_CONFIGURATION", "Character Specific")
diff --git a/LeoAltholic.lua b/LeoAltholic.lua
index 9fd204c..de55e86 100644
--- a/LeoAltholic.lua
+++ b/LeoAltholic.lua
@@ -660,7 +660,7 @@ local function createMessageQueue()
}
LeoAltholic.AddToQueue(data)
end
- for _, craft in pairs(char.research.doing) do
+ for _, craft in pairs(LeoAltholic.craftResearch) do
if char.research.doing[craft] then
for _, research in pairs(char.research.doing[craft]) do
local lineName, lineIcon = GetSmithingResearchLineInfo(research.craft, research.line)
@@ -674,7 +674,7 @@ local function createMessageQueue()
GetString('SI_ITEMTRAITTYPE',traitType),
lineName
),
- time = research..time
+ time = research.time
}
LeoAltholic.AddToQueue(data)
end
@@ -708,8 +708,8 @@ local function onUpdate()
processQueue()
- LeoAltholicChecklistUI:checkReset()
- LeoAltholicToolbarUI:update()
+ LeoAltholicChecklistUI.checkReset()
+ --LeoAltholicToolbarUI:update()
LeoAltholic.numUpdates = LeoAltholic.numUpdates + 1
@@ -732,7 +732,7 @@ local function onUpdate()
--[[
if LeoAltholic.numUpdates >= 30 then -- 60 seconds
LeoAltholic.numUpdates = 1
- LeoAltholicChecklistUI:update()
+ LeoAltholicChecklistUI.update()
For reference only!!
LeoAltholicUI.bioList:RefreshData()
LeoAltholicUI.statsList:RefreshData()
@@ -789,31 +789,72 @@ function LeoAltholic.trackQuest(questId)
trackQuest(questId)
end
-local function onQuestAdded(eventCode, journalIndex, questName, objectiveName)
- local quest = createQuestEntry(journalIndex)
+local function onQuestAdded(eventCode, journalQuestIndex, questName, objectiveName)
+ local quest = createQuestEntry(journalQuestIndex)
if quest.isDaily == false then return end
if LeoAltholic.globalData.settings.tracked.allDaily == true or
(quest.questType == QUEST_TYPE_CRAFTING and LeoAltholic.globalData.settings.tracked.dailyWrits == true) then
- trackQuest(journalIndex, true)
+ trackQuest(journalQuestIndex, true)
end
-end
-local function onQuestCounterChanged(eventId, questIndex, questName, conditionText, conditionType, currConditionVal, newConditionVal, conditionMax, isFailCondition, stepOverrideText, isPushed, isComplete, isConditionComplete, isStepHidden)
for i,trackedQuest in pairs(LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs) do
if (trackedQuest.name == questName) then
LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].lastStarted = GetTimeStamp()
- LeoAltholicChecklistUI:startedWrit(trackedQuest.craft)
+ LeoAltholicChecklistUI.startedWrit(trackedQuest.craft)
+
+ local numConditions = GetJournalQuestNumConditions(journalQuestIndex, QUEST_MAIN_STEP_INDEX)
+ local hasUpdated = false
+ for condition = 1, numConditions do
+ local current, max = GetJournalQuestConditionValues(journalQuestIndex, QUEST_MAIN_STEP_INDEX, condition)
+ if hasUpdated == false and current > 0 then
+ hasUpdated = true
+ end
+ local condText = GetJournalQuestConditionInfo(journalQuestIndex, QUEST_MAIN_STEP_INDEX, condition)
+ if string.find(condText, GetString(LEOALT_DELIVER)) then
+ LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].lastPreDeliver = GetTimeStamp()
+ LeoAltholicChecklistUI.preDeliverWrit(trackedQuest.craft)
+ return
+ end
+ end
+ if hasUpdated then
+ LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].lastUpdated = GetTimeStamp()
+ LeoAltholicChecklistUI.updateWrit(trackedQuest.craft)
+ end
+ return
+ end
+ end
+end
+
+local function onQuestCounterChanged(eventCode, journalQuestIndex, questName, conditionText, conditionType, currConditionVal, newConditionVal, conditionMax, isFailCondition, stepOverrideText, isPushed, isComplete, isConditionComplete, isStepHidden)
+ for i,trackedQuest in pairs(LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs) do
+ if (trackedQuest.name == questName) then
+ LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].lastUpdated = GetTimeStamp()
+ LeoAltholicChecklistUI.updateWrit(trackedQuest.craft)
+
+ local numConditions = GetJournalQuestNumConditions(journalQuestIndex, QUEST_MAIN_STEP_INDEX)
+ for condition = 1, numConditions do
+ local cur, max = GetJournalQuestConditionValues(journalQuestIndex, QUEST_MAIN_STEP_INDEX, condition)
+ local condText = GetJournalQuestConditionInfo(journalQuestIndex, QUEST_MAIN_STEP_INDEX, condition)
+ if string.find(condText, GetString(LEOALT_DELIVER)) then
+ LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].lastPreDeliver = GetTimeStamp()
+ LeoAltholicChecklistUI.preDeliverWrit(trackedQuest.craft)
+ return
+ end
+ end
+
return
end
end
end
-local function onQuestRemoved(eventId, isCompleted, journalIndex, questName, zoneIndex, poiIndex)
+local function onQuestRemoved(eventCode, isCompleted, journalQuestIndex, questName, zoneIndex, poiIndex)
if not isCompleted then
for i,trackedQuest in pairs(LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs) do
if (trackedQuest.name == questName) then
LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].lastStarted = nil
- LeoAltholicChecklistUI:stoppedWrit(trackedQuest.craft)
+ LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].lastPreDeliver = nil
+ LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].lastUpdated = nil
+ LeoAltholicChecklistUI.stoppedWrit(trackedQuest.craft)
return
end
end
@@ -826,7 +867,7 @@ local function onQuestComplete(eventCode, questName, level, previousExperience,
LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].lastDone = GetTimeStamp()
LeoAltholic.log(zo_strformat(GetString(LEOALT_QUEST_DONE_TODAY), questName))
LeoAltholicUI.writsList:RefreshData()
- LeoAltholicChecklistUI:doneWrit(trackedQuest.craft)
+ LeoAltholicChecklistUI.doneWrit(trackedQuest.craft)
return
end
end
@@ -872,6 +913,7 @@ local function initializeVars()
settings = {
checklist = {
enabled = true,
+ hidden = false,
craft = {},
riding = true
}
@@ -899,9 +941,16 @@ local function initializeVars()
},
toolbar = {
enabled = false
+ },
+ checklist = {
+ fontScale = 100,
+ upwards = false
}
}
end
+
+ LeoAltholicChecklistUI.normalizeSettings()
+
if not LeoAltholic.globalData.dataVersion or LeoAltholic.globalData.dataVersion < 2 then
migrateDataToV2()
LeoAltholic.globalData.dataVersion = 2
@@ -928,7 +977,7 @@ local function initialize()
LeoAltholic.feedback = feedbackWindow
LeoAltholic.RestorePosition()
- LeoAltholicToolbarUI.RestorePosition()
+ --LeoAltholicToolbarUI.RestorePosition()
LeoAltholicChecklistUI.RestorePosition()
LeoAltholicUI.InitPanels()
@@ -977,10 +1026,9 @@ local function initialize()
LeoAltholic.initialized = true
CALLBACK_MANAGER:FireCallbacks("LeoAltholicInitialized")
- if LeoAltholic.globalData.settings.toolbar.enabled == true then
- LeoAltholicToolbarUI:update()
- end
- LeoAltholicChecklistUI:update()
+ --LeoAltholicToolbarUI:update()
+ LeoAltholicChecklistUI.updateQuests()
+ LeoAltholicChecklistUI.update()
end
local orig_ZO_QuestJournalNavigationEntry_OnMouseUp = ZO_QuestJournalNavigationEntry_OnMouseUp
@@ -1027,7 +1075,7 @@ local function onRidingSkillImprovement(ridingSkill, previous, current, source)
speedMax = riding[6],
time = ridetime
}
- LeoAltholicChecklistUI:doneRiding()
+ LeoAltholicChecklistUI.doneRiding()
end
local function onAddOnLoaded(event, addonName)
diff --git a/LeoAltholic.txt b/LeoAltholic.txt
index 6c22ef1..8dc9a2e 100644
--- a/LeoAltholic.txt
+++ b/LeoAltholic.txt
@@ -1,6 +1,6 @@
## Title: Leo's Altholic
## APIVersion: 100024 100025
-## Version: 1.4.1
+## Version: 1.4.2
## Author: |c39B027@LeandroSilva|r
## SavedVariables: LeoAltholicSavedVariables LeoAltholicCharVariables
## OptionalDependsOn: LibStub LibFeedback LibAddonMenu-2.0
diff --git a/LeoAltholic.xml b/LeoAltholic.xml
index 97a2d69..d3ae14e 100644
--- a/LeoAltholic.xml
+++ b/LeoAltholic.xml
@@ -1909,13 +1909,13 @@
</TopLevelControl>
<TopLevelControl name="LeoAltholicChecklist" mouseEnabled="true" movable="true" hidden="false" clampedToScreen="true">
- <Dimensions x="250" y="50" />
+ <Dimensions x="200" y="50" />
<Anchor point="TOPLEFT" relativeTo="GuiRoot" relativePoint="TOPLEFT" offsetX="100" offsetY="100" />
- <OnMoveStop> LeoAltholicChecklistUI:OnWindowMoveStop() </OnMoveStop>
+ <OnMoveStop> LeoAltholicChecklistUI.OnWindowMoveStop() </OnMoveStop>
<Controls>
- <Backdrop name="$(parent)BGHeader" mouseEnabled="true" centerColor="000000" edgeColor="222222" alpha="0.6">
+ <Backdrop name="$(parent)BGHeader" mouseEnabled="false" centerColor="000000" edgeColor="222222" alpha="0.6">
<Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeTo="$(parent)"/>
- <Dimensions x="250" y="40"/>
+ <Dimensions x="200" y="40"/>
<Edge edgeSize="1"/>
</Backdrop>
<Label name="$(parent)Header" color="39B027" font="LeoAltholicLargeFont" verticalAlignment="CENTER" inheritAlpha="false">
@@ -1945,70 +1945,140 @@
</Button>
<Backdrop name="$(parent)Panel" centerColor="000000" edgeColor="222222" alpha="0.3" hidden="false">
- <Dimensions x="250" y="10"/>
+ <Dimensions x="200" y="10"/>
<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="0" offsetY="40"/>
<Edge edgeSize="1"/>
<Controls>
- <Texture name="$(parent)Craft1Status" hidden="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
+ <Texture name="$(parent)Craft1Status" hidden="true" mouseEnabled="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
<Dimensions x="28" y="28"/>
<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="10" offsetY="44"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, RIGHT, self.tooltip) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
+ </Texture>
+ <Texture name="$(parent)Craft1Icon" hidden="true" mouseEnabled="true" inheritAlpha="false" color="FFFFFF" textureFile="/esoui/art/icons/servicetooltipicons/gamepad/gp_servicetooltipicon_weaponsmithingstation.dds">
+ <Dimensions x="36" y="36"/>
+ <Anchor point="TOPLEFT" relativeTo="$(parent)Craft1Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, TOP, GetString(SI_ITEMFILTERTYPE13)) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
</Texture>
<Label name="$(parent)Craft1" hidden="true" font="LeoAltholicLargeFont" color="FFFFFF" verticalAlignment="CENTER" inheritAlpha="false">
<Dimensions x="200" y="32" />
<Anchor point="TOPLEFT" relativeTo="$(parent)Craft1Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
</Label>
- <Texture name="$(parent)Craft2Status" hidden="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
+
+ <Texture name="$(parent)Craft2Status" hidden="true" mouseEnabled="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
<Dimensions x="28" y="28"/>
<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="10" offsetY="44"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, RIGHT, self.tooltip) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
+ </Texture>
+ <Texture name="$(parent)Craft2Icon" hidden="true" mouseEnabled="true" inheritAlpha="false" color="FFFFFF" textureFile="/esoui/art/icons/servicetooltipicons/gamepad/gp_servicetooltipicon_armorsmithingstation.dds">
+ <Dimensions x="36" y="36"/>
+ <Anchor point="TOPLEFT" relativeTo="$(parent)Craft2Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, TOP, GetString(SI_ITEMFILTERTYPE14)) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
</Texture>
<Label name="$(parent)Craft2" hidden="true" font="LeoAltholicLargeFont" color="FFFFFF" verticalAlignment="CENTER" inheritAlpha="false">
<Dimensions x="200" y="32" />
<Anchor point="TOPLEFT" relativeTo="$(parent)Craft2Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
</Label>
- <Texture name="$(parent)Craft3Status" hidden="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
+
+ <Texture name="$(parent)Craft3Status" hidden="true" mouseEnabled="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
<Dimensions x="28" y="28"/>
<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="10" offsetY="44"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, RIGHT, self.tooltip) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
+ </Texture>
+ <Texture name="$(parent)Craft3Icon" hidden="true" mouseEnabled="true" inheritAlpha="false" color="FFFFFF" textureFile="/esoui/art/icons/servicetooltipicons/gamepad/gp_servicetooltipicon_enchantingstation.dds">
+ <Dimensions x="36" y="36"/>
+ <Anchor point="TOPLEFT" relativeTo="$(parent)Craft3Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, TOP, GetString(SI_ITEMFILTERTYPE17)) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
</Texture>
<Label name="$(parent)Craft3" hidden="true" font="LeoAltholicLargeFont" color="FFFFFF" verticalAlignment="CENTER" inheritAlpha="false">
<Dimensions x="200" y="32" />
<Anchor point="TOPLEFT" relativeTo="$(parent)Craft3Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
</Label>
- <Texture name="$(parent)Craft4Status" hidden="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
+
+ <Texture name="$(parent)Craft4Status" hidden="true" mouseEnabled="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
<Dimensions x="28" y="28"/>
<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="10" offsetY="44"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, RIGHT, self.tooltip) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
+ </Texture>
+ <Texture name="$(parent)Craft4Icon" hidden="true" mouseEnabled="true" inheritAlpha="false" color="FFFFFF" textureFile="/esoui/art/icons/servicetooltipicons/gamepad/gp_servicetooltipicon_alchemystation.dds">
+ <Dimensions x="36" y="36"/>
+ <Anchor point="TOPLEFT" relativeTo="$(parent)Craft4Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, TOP, GetString(SI_ITEMFILTERTYPE16)) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
</Texture>
<Label name="$(parent)Craft4" hidden="true" font="LeoAltholicLargeFont" color="FFFFFF" verticalAlignment="CENTER" inheritAlpha="false">
<Dimensions x="200" y="32" />
<Anchor point="TOPLEFT" relativeTo="$(parent)Craft4Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
</Label>
- <Texture name="$(parent)Craft5Status" hidden="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
+
+ <Texture name="$(parent)Craft5Status" hidden="true" mouseEnabled="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
<Dimensions x="28" y="28"/>
<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="10" offsetY="44"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, RIGHT, self.tooltip) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
+ </Texture>
+ <Texture name="$(parent)Craft5Icon" hidden="true" mouseEnabled="true" inheritAlpha="false" color="FFFFFF" textureFile="/esoui/art/icons/servicetooltipicons/gamepad/gp_servicetooltipicon_provisioner.dds">
+ <Dimensions x="36" y="36"/>
+ <Anchor point="TOPLEFT" relativeTo="$(parent)Craft5Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, TOP, GetString(SI_ITEMFILTERTYPE18)) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
</Texture>
<Label name="$(parent)Craft5" hidden="true" font="LeoAltholicLargeFont" color="FFFFFF" verticalAlignment="CENTER" inheritAlpha="false">
<Dimensions x="200" y="32" />
<Anchor point="TOPLEFT" relativeTo="$(parent)Craft5Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
</Label>
- <Texture name="$(parent)Craft6Status" hidden="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
+
+ <Texture name="$(parent)Craft6Status" hidden="true" mouseEnabled="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
<Dimensions x="28" y="28"/>
<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="10" offsetY="44"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, RIGHT, self.tooltip) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
+ </Texture>
+ <Texture name="$(parent)Craft6Icon" hidden="true" mouseEnabled="true" inheritAlpha="false" color="FFFFFF" textureFile="/esoui/art/icons/servicetooltipicons/gamepad/gp_servicetooltipicon_woodworker.dds">
+ <Dimensions x="36" y="36"/>
+ <Anchor point="TOPLEFT" relativeTo="$(parent)Craft6Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, TOP, GetString(SI_ITEMFILTERTYPE15)) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
</Texture>
<Label name="$(parent)Craft6" hidden="true" font="LeoAltholicLargeFont" color="FFFFFF" verticalAlignment="CENTER" inheritAlpha="false">
<Dimensions x="200" y="32" />
<Anchor point="TOPLEFT" relativeTo="$(parent)Craft6Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
</Label>
- <Texture name="$(parent)Craft7Status" hidden="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
+
+ <Texture name="$(parent)Craft7Status" hidden="true" mouseEnabled="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
<Dimensions x="28" y="28"/>
<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="10" offsetY="44"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, RIGHT, self.tooltip) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
+ </Texture>
+ <Texture name="$(parent)Craft7Icon" hidden="true" mouseEnabled="true" inheritAlpha="false" color="FFFFFF" textureFile="/esoui/art/icons/servicetooltipicons/gamepad/gp_servicetooltipicon_jewelrycrafting.dds">
+ <Dimensions x="36" y="36"/>
+ <Anchor point="TOPLEFT" relativeTo="$(parent)Craft7Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, TOP, GetString(SI_ITEMFILTERTYPE24)) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
</Texture>
<Label name="$(parent)Craft7" hidden="true" font="LeoAltholicLargeFont" color="FFFFFF" verticalAlignment="CENTER" inheritAlpha="false">
<Dimensions x="200" y="32" />
<Anchor point="TOPLEFT" relativeTo="$(parent)Craft7Status" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
</Label>
- <Texture name="$(parent)RidingStatus" hidden="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
+ <Texture name="$(parent)RidingStatus" hidden="true" mouseEnabled="true" textureFile="/esoui/art/buttons/decline_up.dds" inheritAlpha="false">
<Dimensions x="28" y="28"/>
<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="10" offsetY="44"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, RIGHT, self.tooltip) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
+ </Texture>
+ <Texture name="$(parent)RidingIcon" hidden="true" mouseEnabled="true" inheritAlpha="false" color="FFFFFF" textureFile="/esoui/art/icons/servicetooltipicons/gamepad/gp_servicetooltipicon_stablemaster.dds">
+ <Dimensions x="36" y="36"/>
+ <Anchor point="TOPLEFT" relativeTo="$(parent)RidingStatus" relativePoint="TOPRIGHT" offsetX="10" offsetY="0"/>
+ <OnMouseEnter> ZO_Tooltips_ShowTextTooltip(self, TOP, GetString(SI_STAT_GAMEPAD_RIDING_HEADER_TRAINING)) </OnMouseEnter>
+ <OnMouseExit> ZO_Tooltips_HideTextTooltip() </OnMouseExit>
</Texture>
<Label name="$(parent)Riding" hidden="true" font="LeoAltholicLargeFont" color="FFFFFF" verticalAlignment="CENTER" inheritAlpha="false">
<Dimensions x="200" y="32" />
diff --git a/LeoAltholicInit.lua b/LeoAltholicInit.lua
index 42901a7..1fc33b5 100644
--- a/LeoAltholicInit.lua
+++ b/LeoAltholicInit.lua
@@ -6,7 +6,7 @@ LeoAltholicToolbarUI = LeoAltholicToolbarUI or {}
LeoAltholic.name = "LeoAltholic"
LeoAltholic.displayName = "Leo's Altholic"
-LeoAltholic.version = "1.4.1"
+LeoAltholic.version = "1.4.2"
LeoAltholic.chatPrefix = "|c39B027" .. LeoAltholic.name .. "|r: "
LeoAltholic.TAB_BIO = "Bio"
@@ -45,3 +45,12 @@ LeoAltholic.craftResearch = {
CRAFTING_TYPE_WOODWORKING,
CRAFTING_TYPE_JEWELRYCRAFTING
}
+LeoAltholic.craftIcons = {
+ [CRAFTING_TYPE_BLACKSMITHING] = "esoui/art/inventory/inventory_tabicon_craftbag_blacksmithing_up.dds",
+ [CRAFTING_TYPE_CLOTHIER] = "esoui/art/inventory/inventory_tabicon_craftbag_clothing_up.dds",
+ [CRAFTING_TYPE_WOODWORKING] = "esoui/art/inventory/inventory_tabicon_craftbag_woodworking_up.dds",
+ [CRAFTING_TYPE_ALCHEMY] = "esoui/art/inventory/inventory_tabicon_craftbag_alchemy_up.dds",
+ [CRAFTING_TYPE_ENCHANTING] = "esoui/art/inventory/inventory_tabicon_craftbag_enchanting_up.dds",
+ [CRAFTING_TYPE_PROVISIONING] = "esoui/art/inventory/inventory_tabicon_craftbag_provisioning_up.dds",
+ [CRAFTING_TYPE_JEWELRYCRAFTING] = "esoui/art/inventory/inventory_tabicon_craftbag_jewelrycrafting_up.dds",
+}
diff --git a/Settings.lua b/Settings.lua
index 5c8c84b..065a54d 100644
--- a/Settings.lua
+++ b/Settings.lua
@@ -34,106 +34,128 @@ function LeoAltholic_Settings:CreatePanel()
type = "checkbox",
name = GetString(SI_ADDON_MANAGER_ENABLED),
default = true,
- getFunc = function() return LeoAltholic.charData.settings.checklist.enabled end,
- setFunc = function(value)
- LeoAltholic.charData.settings.checklist.enabled = value
- LeoAltholicChecklistUI.RestorePosition()
- end,
+ getFunc = LeoAltholicChecklistUI.IsEnabled,
+ setFunc = LeoAltholicChecklistUI.SetEnabled,
+ },{
+ type = "button",
+ name = GetString(SI_OUTFIT_STYLES_BOOK_PREVIEW_KEYBIND),
+ func = function() LeoAltholicChecklistUI.ShowUI() end,
+ width = "full",
+ },{
+ type = "slider",
+ name = GetString(SI_VIDEO_OPTIONS_UI_USE_CUSTOM_SCALE),
+ getFunc = LeoAltholicChecklistUI.GetFontScale,
+ setFunc = LeoAltholicChecklistUI.SetFontScale,
+ min = 80,
+ max = 120,
+ default = 100,
+ },{
+ type = "checkbox",
+ name = GetString(LEOALT_CHECKLIST_UPWARDS),
+ default = false,
+ getFunc = LeoAltholicChecklistUI.IsUpwards,
+ setFunc = LeoAltholicChecklistUI.SetUpwards,
+ },{
+ type = "checkbox",
+ name = GetString(SI_GAMEPAD_INTERFACE_OPTIONS_PRIMARY_PLAYER_NAME),
+ default = false,
+ getFunc = LeoAltholicChecklistUI.DisplayName,
+ setFunc = LeoAltholicChecklistUI.SetDisplayName,
+ --[[},{
+ type = "checkbox",
+ name = GetString(SI_INTERFACE_OPTIONS_CAMERA_THIRD_PERSON_HORIZONTAL_POSITION_MULTIPLIER),
+ default = false,
+ getFunc = LeoAltholicChecklistUI.IsHorizontal,
+ setFunc = LeoAltholicChecklistUI.SetHorizontal,
+ disabled = function() return LeoAltholicChecklistUI.DisplayName() end]]
},{
type = "submenu",
- name = GetString(SI_GAMEPAD_OPTIONS_MENU),
+ name = GetString(SI_INVENTORY_MODE_ITEMS),
controls = {
{
+ type = "description",
+ text = GetString(LEOALT_CHAR_CONFIGURATION)
+ },{
type = "checkbox",
name = GetString(SI_ITEMFILTERTYPE16),
default = true,
- disabled = function() return not LeoAltholic.charData.settings.checklist.enabled end,
+ disabled = function() return not LeoAltholicChecklistUI.IsEnabled() end,
width = "half",
- getFunc = function() return LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_ALCHEMY] end,
+ getFunc = function() return LeoAltholicChecklistUI.GetCraft(CRAFTING_TYPE_ALCHEMY) end,
setFunc = function(value)
- LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_ALCHEMY] = value
- LeoAltholicChecklistUI.update()
+ LeoAltholicChecklistUI.SetCraft(CRAFTING_TYPE_ALCHEMY, value)
end,
},{
type = "checkbox",
name = GetString(SI_ITEMFILTERTYPE13),
default = true,
- disabled = function() return not LeoAltholic.charData.settings.checklist.enabled end,
+ disabled = function() return not LeoAltholicChecklistUI.IsEnabled() end,
width = "half",
- getFunc = function() return LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_BLACKSMITHING] end,
+ getFunc = function() return LeoAltholicChecklistUI.GetCraft(CRAFTING_TYPE_BLACKSMITHING) end,
setFunc = function(value)
- LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_BLACKSMITHING] = value
- LeoAltholicChecklistUI.update()
+ LeoAltholicChecklistUI.SetCraft(CRAFTING_TYPE_BLACKSMITHING, value)
end,
},{
type = "checkbox",
name = GetString(SI_ITEMFILTERTYPE14),
default = true,
- disabled = function() return not LeoAltholic.charData.settings.checklist.enabled end,
+ disabled = function() return not LeoAltholicChecklistUI.IsEnabled() end,
width = "half",
- getFunc = function() return LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_CLOTHIER] end,
+ getFunc = function() return LeoAltholicChecklistUI.GetCraft(CRAFTING_TYPE_CLOTHIER) end,
setFunc = function(value)
- LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_CLOTHIER] = value
- LeoAltholicChecklistUI.update()
+ LeoAltholicChecklistUI.SetCraft(CRAFTING_TYPE_CLOTHIER, value)
end,
},{
type = "checkbox",
name = GetString(SI_ITEMFILTERTYPE17),
default = true,
- disabled = function() return not LeoAltholic.charData.settings.checklist.enabled end,
+ disabled = function() return not LeoAltholicChecklistUI.IsEnabled() end,
width = "half",
- getFunc = function() return LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_ENCHANTING] end,
+ getFunc = function() return LeoAltholicChecklistUI.GetCraft(CRAFTING_TYPE_ENCHANTING) end,
setFunc = function(value)
- LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_ENCHANTING] = value
- LeoAltholicChecklistUI.update()
+ LeoAltholicChecklistUI.SetCraft(CRAFTING_TYPE_ENCHANTING, value)
end,
},{
type = "checkbox",
name = GetString(SI_ITEMFILTERTYPE25),
default = true,
- disabled = function() return not LeoAltholic.charData.settings.checklist.enabled end,
+ disabled = function() return not LeoAltholicChecklistUI.IsEnabled() end,
width = "half",
- getFunc = function() return LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_JEWELRYCRAFTING] end,
+ getFunc = function() return LeoAltholicChecklistUI.GetCraft(CRAFTING_TYPE_JEWELRYCRAFTING) end,
setFunc = function(value)
- LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_JEWELRYCRAFTING] = value
- LeoAltholicChecklistUI.update()
+ LeoAltholicChecklistUI.SetCraft(CRAFTING_TYPE_JEWELRYCRAFTING, value)
end,
},{
type = "checkbox",
name = GetString(SI_ITEMFILTERTYPE18),
default = true,
- disabled = function() return not LeoAltholic.charData.settings.checklist.enabled end,
+ disabled = function() return not LeoAltholicChecklistUI.IsEnabled() end,
width = "half",
- getFunc = function() return LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_PROVISIONING] end,
+ getFunc = function() return LeoAltholicChecklistUI.GetCraft(CRAFTING_TYPE_PROVISIONING) end,
setFunc = function(value)
- LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_PROVISIONING] = value
- LeoAltholicChecklistUI.update()
+ LeoAltholicChecklistUI.SetCraft(CRAFTING_TYPE_PROVISIONING, value)
end,
},{
type = "checkbox",
name = GetString(SI_ITEMFILTERTYPE15),
default = true,
- disabled = function() return not LeoAltholic.charData.settings.checklist.enabled end,
+ disabled = function() return not LeoAltholicChecklistUI.IsEnabled() end,
width = "half",
- getFunc = function() return LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_WOODWORKING] end,
+ getFunc = function() return LeoAltholicChecklistUI.GetCraft(CRAFTING_TYPE_WOODWORKING) end,
setFunc = function(value)
- LeoAltholic.charData.settings.checklist.craft[CRAFTING_TYPE_WOODWORKING] = value
- LeoAltholicChecklistUI.update()
+ LeoAltholicChecklistUI.SetCraft(CRAFTING_TYPE_WOODWORKING, value)
end,
},{
type = "checkbox",
name = GetString(SI_STAT_GAMEPAD_RIDING_HEADER_TRAINING),
default = true,
- disabled = function() return not LeoAltholic.charData.settings.checklist.enabled end,
+ disabled = function() return not LeoAltholicChecklistUI.IsEnabled() end,
width = "half",
- getFunc = function() return LeoAltholic.charData.settings.checklist.riding end,
- setFunc = function(value)
- LeoAltholic.charData.settings.checklist.riding = value
- LeoAltholicChecklistUI.update()
- end,
+ getFunc = LeoAltholicChecklistUI.GetRiding,
+ setFunc = LeoAltholicChecklistUI.SetRiding,
}
}
- },{
+ --[[},{
type = "header",
name = "|c3f7fff"..GetString(LEOALT_TOOLBAR).."|r"
},{
@@ -198,7 +220,7 @@ function LeoAltholic_Settings:CreatePanel()
LeoAltholicToolbarUI.update()
end,
}
- }
+ }]]
},{
type = "header",
name = "|c3f7fff"..GetString(LEOALT_TRACKED_QUESTS).."|r"
diff --git a/ui/checklist.lua b/ui/checklist.lua
index 9363199..d293bee 100644
--- a/ui/checklist.lua
+++ b/ui/checklist.lua
@@ -1,22 +1,105 @@
-function LeoAltholicChecklistUI:OnWindowMoveStop()
- LeoAltholic.globalData.positionChecklist = {
- left = LeoAltholicChecklist:GetLeft(),
- top = LeoAltholicChecklist:GetTop()
+function LeoAltholicChecklistUI.normalizeSettings()
+ if not LeoAltholic.globalData.checklist then LeoAltholic.globalData.checklist = {} end
+ if not LeoAltholic.globalData.settings.checklist then LeoAltholic.globalData.settings.checklist = {} end
+ if not LeoAltholic.charData.settings.checklist then LeoAltholic.charData.settings.checklist = {} end
+end
+
+function LeoAltholicChecklistUI.SetPosition(left, top)
+ LeoAltholic.globalData.checklist.position = {
+ left = left,
+ top = top
}
end
+function LeoAltholicChecklistUI.GetPosition()
+ return LeoAltholic.globalData.checklist.position or { left = 100; top = 200; }
+end
+
+function LeoAltholicChecklistUI.SetFontScale(value)
+ LeoAltholic.globalData.settings.checklist.fontScale = value
+ LeoAltholicChecklistUI.update()
+end
+function LeoAltholicChecklistUI.GetFontScale()
+ return LeoAltholic.globalData.settings.checklist.fontScale or 100
+end
+function LeoAltholicChecklistUI.SetDisplayName(value)
+ LeoAltholic.globalData.settings.checklist.displayName = value
+ LeoAltholicChecklistUI.update()
+end
+function LeoAltholicChecklistUI.DisplayName()
+ if LeoAltholic.globalData.settings.checklist.displayName == nil then LeoAltholic.globalData.settings.checklist.displayName = true end
+ return LeoAltholic.globalData.settings.checklist.displayName
+end
+function LeoAltholicChecklistUI.SetHorizontal(value)
+ LeoAltholic.globalData.settings.checklist.horizontal = value
+ LeoAltholicChecklistUI.update()
+end
+function LeoAltholicChecklistUI.IsHorizontal()
+ if LeoAltholic.globalData.settings.checklist.horizontal == nil then LeoAltholic.globalData.settings.checklist.horizontal = false end
+ return LeoAltholic.globalData.settings.checklist.horizontal
+end
+
+function LeoAltholicChecklistUI.SetUpwards(value)
+ LeoAltholic.globalData.settings.checklist.upwards = value
+ LeoAltholicChecklistUI.update()
+end
+function LeoAltholicChecklistUI.IsUpwards()
+ return LeoAltholic.globalData.settings.checklist.upwards or false
+end
+
+function LeoAltholicChecklistUI.SetEnabled(value)
+ LeoAltholic.charData.settings.checklist.enabled = value
+ LeoAltholicChecklistUI.RestorePosition()
+end
+function LeoAltholicChecklistUI.IsEnabled()
+ return LeoAltholic.charData.settings.checklist.enabled or true
+end
+
+function LeoAltholicChecklistUI.SetCraft(craft, value)
+ if not LeoAltholic.charData.settings.checklist.craft then LeoAltholic.charData.settings.checklist.craft = {} end
+ LeoAltholic.charData.settings.checklist.craft[craft] = value
+ LeoAltholicChecklistUI.update()
+end
+function LeoAltholicChecklistUI.GetCraft(craft)
+ if not LeoAltholic.charData.settings.checklist.craft then LeoAltholic.charData.settings.checklist.craft = {} end
+ return LeoAltholic.charData.settings.checklist.craft[craft] or false
+end
+function LeoAltholicChecklistUI.SetRiding(value)
+ LeoAltholic.charData.settings.checklist.riding = value
+ LeoAltholicChecklistUI.update()
+end
+function LeoAltholicChecklistUI.GetRiding()
+ return LeoAltholic.charData.settings.checklist.riding or false
+end
+
+
+function LeoAltholicChecklistUI.OnWindowMoveStop()
+ LeoAltholicChecklistUI.SetPosition(LeoAltholicChecklist:GetLeft(), LeoAltholicChecklist:GetTop())
+end
+
+function LeoAltholicChecklistUI.ToggleUI()
+ if not LeoAltholicChecklistUI.IsEnabled() then return end
+ LeoAltholicChecklist:SetHidden(not LeoAltholicChecklist:IsHidden())
+end
+
+function LeoAltholicChecklistUI.ShowUI()
+ if not LeoAltholicChecklistUI.IsEnabled() then return end
+ LeoAltholicChecklist:SetHidden(false)
+end
function LeoAltholicChecklistUI.RestorePosition()
- local position = LeoAltholic.globalData.positionChecklist or { left = 100; top = 200; }
+ local position = LeoAltholicChecklistUI.GetPosition()
local left = position.left
local top = position.top
LeoAltholicChecklist:ClearAnchors()
LeoAltholicChecklist:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, left, top)
- if LeoAltholic.charData.settings.checklist.enabled == false then
- LeoAltholicChecklist:SetHidden(true)
+ if LeoAltholicChecklistUI.IsEnabled() then
+ if not LeoAltholicChecklistUI.checkAllDone() then
+ LeoAltholicChecklist:SetHidden(false)
+ end
else
- LeoAltholicChecklist:SetHidden(false)
+ LeoAltholicChecklist:SetHidden(true)
end
end
@@ -24,30 +107,36 @@ local SPACE = 32
local checklist = WINDOW_MANAGER:GetControlByName("LeoAltholicChecklist")
local panel = GetControl(checklist, "Panel")
local height = 0
-local anchorY = SPACE + 4
local lastChecklist = GetTimeStamp()
-local checklistDone = 0
-local function createItem(label, labelText, texture, canShow)
- if canShow then
+local function createItem(label, labelText, texture, craftIcon, canShow)
+ if canShow == true then
texture:SetTexture("esoui/art/buttons/decline_up.dds")
texture:SetColor(1,0,0,1)
texture:SetDimensions(32, 32)
- texture:SetAnchor(TOPLEFT, checklist, TOPLEFT, 10, height + anchorY)
+ texture:SetAnchor(TOPLEFT, panel, TOPLEFT, 10, height)
+ texture.tooltip = "Quest not started"
height = height + SPACE
- label:SetText(labelText)
- label:SetHidden(false)
+ if LeoAltholicChecklistUI.DisplayName() then
+ label:SetText(labelText)
+ label:SetHidden(false)
+ craftIcon:SetHidden(true)
+ else
+ craftIcon:SetHidden(false)
+ label:SetHidden(true)
+ end
texture:SetHidden(false)
else
label:SetHidden(true)
texture:SetHidden(true)
+ craftIcon:SetHidden(false)
end
end
-function LeoAltholicChecklistUI:checkReset()
+function LeoAltholicChecklistUI.checkReset()
if LeoAltholic.IsBeforeReset(lastChecklist) then
- LeoAltholicChecklistUI:update()
+ LeoAltholicChecklistUI.update()
lastChecklist = GetTimeStamp()
end
end
@@ -55,94 +144,206 @@ end
local function doneItem(label, texture)
texture:SetTexture("esoui/art/loot/loot_finesseItem.dds")
texture:SetColor(0,1,0,1)
+ texture.tooltip = GetString(SI_ACHIEVEMENTS_TOOLTIP_COMPLETE)
end
local function startItem(label, texture)
+ texture:SetTexture("esoui/art/buttons/pointsminus_up.dds")
+ texture:SetColor(1,1,1,1)
+ texture.tooltip = "Quest Started"
+end
+
+local function updateItem(label, texture)
+ texture:SetTexture("esoui/art/loot/loot_finesseItem.dds")
+ texture:SetColor(1,0.65,0,1)
+ texture.tooltip = "Quest Updated"
+end
+
+local function preDeliverItem(label, texture)
texture:SetTexture("esoui/art/loot/loot_finesseItem.dds")
texture:SetColor(1,1,0,1)
+ texture.tooltip = "Ready for deliver"
end
local function stoppedItem(label, texture)
texture:SetTexture("esoui/art/buttons/decline_up.dds")
texture:SetColor(1,0,0,1)
+ texture.tooltip = "Quest Deleted"
end
-local function incrementDone()
- checklistDone = checklistDone + 1
- if checklistDone == 8 then
- LeoAltholicChecklistPanel:SetHidden(true)
- LeoAltholicChecklistMinButton:SetHidden(true)
- LeoAltholicChecklistMaxButton:SetHidden(false)
+function LeoAltholicChecklistUI.checkAllDone()
+ local char = LeoAltholic.GetMyself()
+
+ for _, craft in pairs(LeoAltholic.allCrafts) do
+ if LeoAltholicChecklistUI.GetCraft(craft) then
+ for _, writ in pairs(char.quests.writs) do
+ if craft == writ.craft then
+ if writ.lastDone == nil or not LeoAltholic.IsAfterReset(writ.lastDone) then return false end
+ end
+ end
+ end
end
+ if LeoAltholicChecklistUI.GetRiding() and char.attributes.riding.time - GetTimeStamp() < 0 then
+ return false
+ end
+ LeoAltholicChecklist:SetHidden(true)
+ return true
end
-function LeoAltholicChecklistUI:doneWrit(craft)
- if not LeoAltholic.charData.settings.checklist.enabled then return end
+function LeoAltholicChecklistUI.doneWrit(craft)
+ if not LeoAltholicChecklistUI.IsEnabled() then return end
local label = GetControl(panel, "Craft"..craft)
local texture = GetControl(panel, "Craft"..craft.."Status")
doneItem(label, texture)
- incrementDone()
+ LeoAltholicChecklistUI.checkAllDone()
end
-function LeoAltholicChecklistUI:startedWrit(craft)
- if not LeoAltholic.charData.settings.checklist.enabled then return end
+function LeoAltholicChecklistUI.startedWrit(craft)
+ if not LeoAltholicChecklistUI.IsEnabled() then return end
local label = GetControl(panel, "Craft"..craft)
local texture = GetControl(panel, "Craft"..craft.."Status")
startItem(label, texture)
end
-function LeoAltholicChecklistUI:stoppedWrit(craft)
- if not LeoAltholic.charData.settings.checklist.enabled then return end
+function LeoAltholicChecklistUI.updateWrit(craft)
+ if not LeoAltholicChecklistUI.IsEnabled() then return end
+
+ local label = GetControl(panel, "Craft"..craft)
+ local texture = GetControl(panel, "Craft"..craft.."Status")
+ updateItem(label, texture)
+end
+
+function LeoAltholicChecklistUI.preDeliverWrit(craft)
+ if not LeoAltholicChecklistUI.IsEnabled() then return end
+
+ local label = GetControl(panel, "Craft"..craft)
+ local texture = GetControl(panel, "Craft"..craft.."Status")
+ preDeliverItem(label, texture)
+end
+
+function LeoAltholicChecklistUI.stoppedWrit(craft)
+ if not LeoAltholicChecklistUI.IsEnabled() then return end
local label = GetControl(panel, "Craft"..craft)
local texture = GetControl(panel, "Craft"..craft.."Status")
stoppedItem(label, texture)
end
-function LeoAltholicChecklistUI:doneRiding()
- if not LeoAltholic.charData.settings.checklist.enabled then return end
+function LeoAltholicChecklistUI.doneRiding()
+ if not LeoAltholicChecklistUI.IsEnabled() then return end
local label = GetControl(panel, "Riding")
local texture = GetControl(panel, "RidingStatus")
doneItem(label, texture)
- incrementDone()
end
-function LeoAltholicChecklistUI:update()
+function LeoAltholicChecklistUI.updateQuests()
+ for i,trackedQuest in pairs(LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs) do
+ for questIndex = 1, MAX_JOURNAL_QUESTS do
+ if IsValidQuestIndex(questIndex) and GetJournalQuestName(questIndex) == trackedQuest.name then
+ LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].questIndex = questIndex
+ local numConditions = GetJournalQuestNumConditions(questIndex, QUEST_MAIN_STEP_INDEX)
+ for condition = 1, numConditions do
+ local condText = GetJournalQuestConditionInfo(questIndex, QUEST_MAIN_STEP_INDEX, condition)
+ if string.find(condText, GetString(LEOALT_DELIVER)) then
+ LeoAltholic.globalData.CharList[LeoAltholic.CharName].quests.writs[i].lastPreDeliver = GetTimeStamp()
+ LeoAltholicChecklistUI.preDeliverWrit(trackedQuest.craft)
+ end
+ end
+ break
+ end
+ end
+ end
+end
+
+function LeoAltholicChecklistUI.update()
- if not LeoAltholic.charData.settings.checklist.enabled then return end
+ if not LeoAltholicChecklistUI.IsEnabled() then return end
local char = LeoAltholic.GetMyself()
- local texture, label
- local done = false
+ local texture, label, craftIcon
height = 0
- anchorY = 44
+
+ local scale = LeoAltholicChecklistUI.GetFontScale() / 100
for _, craft in pairs(LeoAltholic.allCrafts) do
label = GetControl(panel, "Craft"..craft)
+ label:SetScale(scale)
+ craftIcon = GetControl(panel, "Craft"..craft.."Icon")
+ craftIcon:SetScale(scale)
texture = GetControl(panel, "Craft"..craft.."Status")
- createItem(label, GetCraftingSkillName(craft), texture, LeoAltholic.charData.settings.checklist.craft[craft])
- if LeoAltholic.IsWritDoneToday(craft) then
- doneItem(label, texture)
- done = true
- incrementDone()
- elseif LeoAltholic.IsWritStartedToday(craft) then
- startItem(label, texture)
+ texture:SetScale(scale)
+
+ local isDone = false
+ local isPreDeliver = false
+ local isUpdated = false
+ local isStarted = false
+ for _, writ in pairs(char.quests.writs) do
+ if craft == writ.craft then
+ if writ.lastDone ~= nil and LeoAltholic.IsAfterReset(writ.lastDone) then
+ isDone = true
+ elseif writ.lastPreDeliver ~= nil and LeoAltholic.IsAfterReset(writ.lastPreDeliver) then
+ isPreDeliver = true
+ elseif writ.lastUpdated ~= nil and LeoAltholic.IsAfterReset(writ.lastUpdated) then
+ isUpdated = true
+ elseif writ.lastStarted ~= nil and LeoAltholic.IsAfterReset(writ.lastStarted) then
+ isStarted = true
+ end
+ end
+ end
+
+ local canShow = LeoAltholicChecklistUI.GetCraft(craft)
+
+ createItem(label, GetCraftingSkillName(craft), texture, craftIcon, canShow)
+ if canShow then
+ if isDone then
+ doneItem(label, texture)
+ LeoAltholicChecklistUI.checkAllDone()
+ elseif isPreDeliver then
+ preDeliverItem(label, texture)
+ elseif isUpdated then
+ updateItem(label, texture)
+ elseif isStarted then
+ startItem(label, texture)
+ end
end
end
label = GetControl(panel, "Riding")
+ label:SetScale(scale)
+ label:SetColor(1,1,1,1)
texture = GetControl(panel, "RidingStatus")
- createItem(label, GetString(SI_STAT_GAMEPAD_RIDING_HEADER_TRAINING), texture, LeoAltholic.charData.settings.checklist.riding)
+ texture:SetScale(scale)
+ craftIcon = GetControl(panel, "RidingIcon")
+ craftIcon:SetScale(scale)
+ createItem(label, GetString(SI_STAT_GAMEPAD_RIDING_HEADER_TRAINING), texture, craftIcon, LeoAltholicChecklistUI.GetRiding())
if char.attributes.riding.time - GetTimeStamp() > 0 then
doneItem(label, texture)
- incrementDone()
+ LeoAltholicChecklistUI.checkAllDone()
end
- panel:SetHeight(10 + height)
checklist:SetHeight(60 + height)
+ panel:SetHeight(10 + height)
+ panel:ClearAnchors()
+ local header = GetControl(checklist, "BGHeader")
+ header:ClearAnchors()
+ if LeoAltholicChecklistUI.IsUpwards() then
+ header:SetAnchor(BOTTOMLEFT, checklist, BOTTOMLEFT, 0, 0)
+ panel:SetAnchor(BOTTOMLEFT, header, TOPLEFT, 0, 2)
+ else
+ header:SetAnchor(TOPLEFT, checklist, TOPLEFT, 0, 0)
+ panel:SetAnchor(TOPLEFT, checklist, TOPLEFT, 0, 40)
+ end
+
+ local width = 200
+ if not LeoAltholicChecklistUI.DisplayName() then
+ width = 120
+ end
+ checklist:SetWidth(width)
+ panel:SetWidth(width)
+ header:SetWidth(width)
end