Skip to content

Commit

Permalink
adding new lock feature
Browse files Browse the repository at this point in the history
  • Loading branch information
rbgdevx committed Jan 3, 2024
1 parent 38f9942 commit a7e3ef1
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 38 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Dynamic Movement Speed

## [v1.1.4](https://github.com/rbgdevx/dynamic-movement-speed/releases/tag/v1.1.4) (2024-01-02)

- adding lock function

## [v1.1.3](https://github.com/rbgdevx/dynamic-movement-speed/releases/tag/v1.1.3) (2024-01-01)

- adding default font
Expand Down
3 changes: 2 additions & 1 deletion DynamicMovementSpeed.lua
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ do
end

function DMS:PLAYER_ENTERING_WORLD()
Interface:CreateInterface()
self:WatchForPlayerMoving()
end

Expand All @@ -68,5 +67,7 @@ function DMS:OnInitialize()
end

function DMS:OnEnable()
Interface:CreateInterface()

self:RegisterEvent("PLAYER_ENTERING_WORLD")
end
2 changes: 1 addition & 1 deletion DynamicMovementSpeed.toc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Interface: 100200
## Title: DynamicMovementSpeed
## Version: 1.1.3
## Version: 1.1.4
## Author: Ajax
## Notes: Provides real time movement speed
## X-Flavor: Mainline
Expand Down
1 change: 1 addition & 0 deletions config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ local _, NS = ...

NS.DefaultDatabase = {
["global"] = {
["lock"] = false,
["labeltext"] = "Speed:",
["showlabel"] = true,
["fontsize"] = 15,
Expand Down
96 changes: 60 additions & 36 deletions interface.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,11 @@ local AddonName, NS = ...
local Interface = {}
NS.Interface = Interface

function Interface:AddControls(frame)
frame:SetClampedToScreen(true)
frame:EnableMouse(true)
frame:SetScript("OnMouseUp", function(_, btn)
if btn == "RightButton" then
InterfaceOptionsFrame_OpenToCategory(AddonName)
end
end)
function Interface:StopMovement(frame)
frame:SetMovable(false)
end

function Interface:MakeMoveable(frame)
frame:SetMovable(true)
frame:RegisterForDrag("LeftButton")
frame:SetScript("OnDragStart", function(f)
Expand All @@ -26,33 +23,60 @@ function Interface:AddControls(frame)
end)
end

function Interface:Lock(frame)
self:StopMovement(frame)
end

function Interface:Unlock(frame)
self:MakeMoveable(frame)
end

function Interface:AddControls(frame)
frame:EnableMouse(true)
frame:SetScript("OnMouseUp", function(_, btn)
if btn == "RightButton" then
LibStub("AceConfigDialog-3.0"):Open(AddonName)
end
end)

if DMS.db.global.lock then
self:StopMovement(frame)
else
self:MakeMoveable(frame)
end
end

function Interface:CreateInterface()
local TextFrame = CreateFrame("Frame", "DMSInterfaceTextFrame", UIParent)
TextFrame:SetPoint(
DMS.db.global.position[1],
UIParent,
DMS.db.global.position[2],
DMS.db.global.position[3],
DMS.db.global.position[4]
)
self:AddControls(TextFrame)

local Text = TextFrame:CreateFontString(nil, "OVERLAY")
Text:SetTextColor(DMS.db.global.color.r, DMS.db.global.color.g, DMS.db.global.color.b, DMS.db.global.color.a)
Text:SetShadowOffset(0, 0)
Text:SetShadowColor(0, 0, 0, 1)
Text:SetJustifyH("MIDDLE")
Text:SetJustifyV("MIDDLE")
Text:SetPoint("CENTER", TextFrame, "CENTER", 0, 0)

local _, runSpeed = NS.GetSpeedInfo()
NS.UpdateFont(Text)
NS.UpdateText(Text, runSpeed)

Interface.speed = runSpeed
Interface.text = Text
Interface.textFrame = TextFrame

TextFrame:SetWidth(Text:GetStringWidth())
TextFrame:SetHeight(Text:GetStringHeight())
if not Interface.textFrame then
local TextFrame = CreateFrame("Frame", "DMSInterfaceTextFrame", UIParent)
TextFrame:SetClampedToScreen(true)
TextFrame:SetPoint(
DMS.db.global.position[1],
UIParent,
DMS.db.global.position[2],
DMS.db.global.position[3],
DMS.db.global.position[4]
)

self:AddControls(TextFrame)

local Text = TextFrame:CreateFontString(nil, "OVERLAY")
Text:SetTextColor(DMS.db.global.color.r, DMS.db.global.color.g, DMS.db.global.color.b, DMS.db.global.color.a)
Text:SetShadowOffset(0, 0)
Text:SetShadowColor(0, 0, 0, 1)
Text:SetJustifyH("MIDDLE")
Text:SetJustifyV("MIDDLE")
Text:SetPoint("CENTER", TextFrame, "CENTER", 0, 0)

local _, runSpeed = NS.GetSpeedInfo()
NS.UpdateFont(Text)
NS.UpdateText(Text, runSpeed)

Interface.speed = runSpeed
Interface.text = Text
Interface.textFrame = TextFrame

TextFrame:SetWidth(Text:GetStringWidth())
TextFrame:SetHeight(Text:GetStringHeight())
end
end
17 changes: 17 additions & 0 deletions options.lua
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,23 @@ NS.AceConfig = {
name = AddonName,
type = "group",
args = {
lock = {
name = "Lock the text into place",
type = "toggle",
width = "double",
order = 0,
set = function(_, val)
DMS.db.global.lock = val
if val then
NS.Interface:Lock(NS.Interface.textFrame)
else
NS.Interface:Unlock(NS.Interface.textFrame)
end
end,
get = function(_)
return DMS.db.global.lock
end,
},
round = {
name = "Round the percentage value",
type = "toggle",
Expand Down

0 comments on commit a7e3ef1

Please sign in to comment.