From 78c159c44915c0fe3131e09df25d9a3f9fd70767 Mon Sep 17 00:00:00 2001 From: DasNeids Date: Mon, 4 Jan 2021 16:30:09 -0600 Subject: [PATCH 1/2] first iteration of locking enemy data / readonly mode --- DungeonEnemies.lua | 6 +++++- DungeonTools.lua | 23 +++++++++++++++++++++++ Locales/enUS.lua | 1 + 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/DungeonEnemies.lua b/DungeonEnemies.lua index d1f04e8..a665f15 100644 --- a/DungeonEnemies.lua +++ b/DungeonEnemies.lua @@ -307,8 +307,9 @@ local function setUpMouseHandlersAwakened(self,clone,scale,riftOffsets) end function DungeonToolsEnemyMixin:OnClick(button, down) + local mapEnemiesLocked = db.mapEnemiesLocked - if button == "LeftButton" then + if button == "LeftButton" and mapEnemiesLocked == false then if IsShiftKeyDown() then local newPullIdx = MDT:GetCurrentPull() + 1 MDT:PresetsAddPull(newPullIdx) @@ -360,6 +361,9 @@ function DungeonToolsEnemyMixin:OnClick(button, down) MDT:LiveSession_SendCorruptedPositions(preset.value.riftOffsets) end end + elseif button == "LeftButton" and mapEnemiesLocked == true then + -- TODO: once enemy/route data is cleaned up we can hopefully add a reference to which pull this enemy belongs to + return elseif button == "RightButton" then if db.devMode then if IsAltKeyDown() then diff --git a/DungeonTools.lua b/DungeonTools.lua index e0a603c..733650f 100644 --- a/DungeonTools.lua +++ b/DungeonTools.lua @@ -800,6 +800,21 @@ function MDT:CreateMenu() highlight:SetPoint("TOPRIGHT", resizer, -6, 0) resizer:SetHighlightTexture(highlight) + -- Lock Enemy data on map + self.main_frame.lockButton = CreateFrame("Button", "DungeonToolsLockEnemyButton", self.main_frame, "UIPanelCloseButton") + db.mapEnemiesLocked = db.mapEnemiesLocked or false + local lockToolsButton = self.main_frame.lockButton + local lockButtonTexture = (db.mapEnemiesLocked and "Interface\\Buttons\\LockButton-Locked-Up" or "Interface\\Buttons\\LockButton-Unlocked-Up") + + lockToolsButton:ClearAllPoints() + lockToolsButton:SetPoint("TOPRIGHT", self.main_frame, "TOPRIGHT", -5, -5) + lockToolsButton.Icon = lockToolsButton:CreateTexture(nil, "OVERLAY") + lockToolsButton.Icon:SetTexture(lockButtonTexture) + lockToolsButton.Icon:SetSize(50,50) + lockToolsButton.Icon:SetPoint("CENTER",lockToolsButton,"CENTER") + lockToolsButton:SetScript("OnClick", function() self:LockEnemyPullData() end) + lockToolsButton:SetFrameLevel(4) + lockToolsButton.tooltip = L["Lock enemy data"] end function MDT:SkinMenuButtons() @@ -991,6 +1006,14 @@ function MDT:Minimize() db.maximized = false end +function DungeonTools:LockEnemyPullData() + db.mapEnemiesLocked = not db.mapEnemiesLocked + + local lockToolsButton = self.main_frame.lockButton + local lockButtonTexture = (db.mapEnemiesLocked and "Interface\\Buttons\\LockButton-Locked-Up" or "Interface\\Buttons\\LockButton-Unlocked-Up") + lockToolsButton.Icon:SetTexture(lockButtonTexture) +end + function MDT:SkinProgressBar(progressBar) local bar = progressBar and progressBar.Bar if not bar then return end diff --git a/Locales/enUS.lua b/Locales/enUS.lua index 482b5fb..f00dadc 100644 --- a/Locales/enUS.lua +++ b/Locales/enUS.lua @@ -1030,3 +1030,4 @@ L["ConnectedTip"] = "Group connections in MDT do not reflect if NPCs are linked L["theaterOfPain_miniBossNote"] = "Only one duelist will be alive." L["DataImportButtonTooltip"] = "Import external NPC Data." L["Import Data"] = "Import Data" +L["Lock enemy data"] = "Lock enemies placed on map" From a78e6bfc2c6165a2c49f62d1bed462fec6f3e293 Mon Sep 17 00:00:00 2001 From: DasNeids Date: Mon, 4 Jan 2021 22:15:34 -0600 Subject: [PATCH 2/2] Removed ReadOnly mode from addon DB / Refactored to "readonly" to be more scalable --- DungeonEnemies.lua | 6 +++--- DungeonTools.lua | 42 +++++++++++++++++++++++------------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/DungeonEnemies.lua b/DungeonEnemies.lua index a665f15..541d233 100644 --- a/DungeonEnemies.lua +++ b/DungeonEnemies.lua @@ -307,9 +307,9 @@ local function setUpMouseHandlersAwakened(self,clone,scale,riftOffsets) end function DungeonToolsEnemyMixin:OnClick(button, down) - local mapEnemiesLocked = db.mapEnemiesLocked + local readOnlyMode = MDT:GetReadOnlyMode() - if button == "LeftButton" and mapEnemiesLocked == false then + if button == "LeftButton" and readOnlyMode == false then if IsShiftKeyDown() then local newPullIdx = MDT:GetCurrentPull() + 1 MDT:PresetsAddPull(newPullIdx) @@ -361,7 +361,7 @@ function DungeonToolsEnemyMixin:OnClick(button, down) MDT:LiveSession_SendCorruptedPositions(preset.value.riftOffsets) end end - elseif button == "LeftButton" and mapEnemiesLocked == true then + elseif button == "LeftButton" and readOnlyMode == true then -- TODO: once enemy/route data is cleaned up we can hopefully add a reference to which pull this enemy belongs to return elseif button == "RightButton" then diff --git a/DungeonTools.lua b/DungeonTools.lua index 733650f..31517bd 100644 --- a/DungeonTools.lua +++ b/DungeonTools.lua @@ -11,6 +11,8 @@ local SetPortraitTextureFromCreatureDisplayID,MouseIsOver = SetPortraitTextureFr local sizex = 840 local sizey = 555 +local readOnlyMode = false + local mythicColor = "|cFFFFFFFF" MDT.BackdropColor = { 0.058823399245739, 0.058823399245739, 0.058823399245739, 0.9} @@ -800,21 +802,20 @@ function MDT:CreateMenu() highlight:SetPoint("TOPRIGHT", resizer, -6, 0) resizer:SetHighlightTexture(highlight) - -- Lock Enemy data on map - self.main_frame.lockButton = CreateFrame("Button", "DungeonToolsLockEnemyButton", self.main_frame, "UIPanelCloseButton") - db.mapEnemiesLocked = db.mapEnemiesLocked or false - local lockToolsButton = self.main_frame.lockButton - local lockButtonTexture = (db.mapEnemiesLocked and "Interface\\Buttons\\LockButton-Locked-Up" or "Interface\\Buttons\\LockButton-Unlocked-Up") + -- ReadOnly Mode Button + self.main_frame.readOnlyButton = CreateFrame("Button", "DungeonToolsLockEnemyButton", self.main_frame, "UIPanelCloseButton") + local readOnlyButton = self.main_frame.readOnlyButton + local lockTexture = (readOnlyMode and "Interface\\Buttons\\LockButton-Locked-Up" or "Interface\\Buttons\\LockButton-Unlocked-Up") - lockToolsButton:ClearAllPoints() - lockToolsButton:SetPoint("TOPRIGHT", self.main_frame, "TOPRIGHT", -5, -5) - lockToolsButton.Icon = lockToolsButton:CreateTexture(nil, "OVERLAY") - lockToolsButton.Icon:SetTexture(lockButtonTexture) - lockToolsButton.Icon:SetSize(50,50) - lockToolsButton.Icon:SetPoint("CENTER",lockToolsButton,"CENTER") - lockToolsButton:SetScript("OnClick", function() self:LockEnemyPullData() end) - lockToolsButton:SetFrameLevel(4) - lockToolsButton.tooltip = L["Lock enemy data"] + readOnlyButton:ClearAllPoints() + readOnlyButton:SetPoint("TOPRIGHT", self.main_frame, "TOPRIGHT", -5, -5) + readOnlyButton.Icon = readOnlyButton:CreateTexture(nil, "OVERLAY") + readOnlyButton.Icon:SetTexture(lockTexture) + readOnlyButton.Icon:SetSize(40,40) + readOnlyButton.Icon:SetPoint("CENTER",readOnlyButton,"CENTER") + readOnlyButton:SetScript("OnClick", function() self:ToggleReadOnlyMode() end) + readOnlyButton:SetFrameLevel(4) + readOnlyButton.tooltip = "Daa fuck" end function MDT:SkinMenuButtons() @@ -1006,12 +1007,15 @@ function MDT:Minimize() db.maximized = false end -function DungeonTools:LockEnemyPullData() - db.mapEnemiesLocked = not db.mapEnemiesLocked +function DungeonTools:GetReadOnlyMode() + return readOnlyMode +end + +function DungeonTools:ToggleReadOnlyMode() + readOnlyMode = not readOnlyMode - local lockToolsButton = self.main_frame.lockButton - local lockButtonTexture = (db.mapEnemiesLocked and "Interface\\Buttons\\LockButton-Locked-Up" or "Interface\\Buttons\\LockButton-Unlocked-Up") - lockToolsButton.Icon:SetTexture(lockButtonTexture) + local lockTexture = (readOnlyMode and "Interface\\Buttons\\LockButton-Locked-Up" or "Interface\\Buttons\\LockButton-Unlocked-Up") + self.main_frame.readOnlyButton.Icon:SetTexture(lockTexture) end function MDT:SkinProgressBar(progressBar)