Mercurial > wow > hansgar_and_franzok_assist
diff Hansgar_And_Franzok_Assist.lua @ 7:fe47845b3f17
- frames movable.
| author | Tercio |
|---|---|
| date | Fri, 13 Mar 2015 17:56:08 -0300 |
| parents | 3121ac72fcda |
| children | 3a6b062ecaac |
line wrap: on
line diff
--- a/Hansgar_And_Franzok_Assist.lua Sat Mar 07 18:17:16 2015 -0300 +++ b/Hansgar_And_Franzok_Assist.lua Fri Mar 13 17:56:08 2015 -0300 @@ -9,14 +9,14 @@ local f = CreateFrame ("frame", "Hansgar_And_Franzok_Assist", UIParent) f:SetFrameStrata ("DIALOG") -f.version = "v0.7" +f.version = "v0.8" local tframe = CreateFrame ("frame", "Hansgar_And_Franzok_Assist_PTrack", UIParent) f:SetSize (155, 156) f:SetBackdrop ({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16, insets = {left = -1, right = -1, top = -1, bottom = -1}, edgeFile = "Interface\\AddOns\\Hansgar_And_Franzok_Assist\\border_2", edgeSize = 8}) -f:SetPoint ("center", UIParent, "center") +f:SetPoint ("center", UIParent, "center", 300, 200) f:SetBackdropColor (0, 0, 0, 0) f:SetBackdropBorderColor (0, 0, 0, 1) f:SetMovable (true) @@ -36,34 +36,112 @@ frame_event:RegisterEvent ("ADDON_LOADED") -- -local player_bar = CreateFrame ("statusbar", "Hansgar_And_Franzok_AssistPlayerBar", f) -player_bar:SetPoint ("topleft", f, "bottomleft", 0, -3) -player_bar:SetPoint ("topright", f, "bottomright", 0, -3) -player_bar:SetHeight (14) +local player_bar = CreateFrame ("statusbar", "Hansgar_And_Franzok_PlayerAssistBar", UIParent) + +--player_bar:SetPoint ("topleft", f, "bottomleft", 0, -3) +--player_bar:SetPoint ("topright", f, "bottomright", 0, -3) + +player_bar:SetPoint ("center", UIParent, "center", 0, 300) +player_bar:SetSize (280, 22) + +player_bar:SetMovable (true) +player_bar:EnableMouse (true) +player_bar:SetResizable (true) player_bar:SetStatusBarColor (0, 0, 0, 0) player_bar:SetMinMaxValues (0, 100) player_bar:SetValue (0) +player_bar:SetMinResize (50, 15) +player_bar:SetMaxResize (500, 40) +player_bar:Hide() + +local player_bar_backgroud = player_bar:CreateTexture (nil, "background") +player_bar_backgroud:SetTexture (0, 0, 0, 0.2) +player_bar_backgroud:SetAllPoints() + +local icon = player_bar:CreateTexture (nil, "overlay") +icon:SetTexture ([[Interface\HELPFRAME\ReportLagIcon-Movement]]) +icon:SetPoint ("left", player_bar, "left") +icon:SetDesaturated (true) +player_bar.icon = icon + +local text = player_bar:CreateFontString (nil, "overlay", "GameFontNormal") +text:SetPoint ("right", player_bar, "right", -2, 0) +player_bar.text = text + +player_bar:SetScript ("OnMouseDown", function (self) + if (not self.isMoving) then + self:StartMoving() + self.isMoving = true + end +end) +player_bar:SetScript ("OnMouseUp", function (self) + if (self.isMoving) then + self:StopMovingOrSizing() + self.isMoving = false + end +end) +player_bar:SetScript ("OnSizeChanged", function (self) + self.icon:SetSize (self:GetHeight(), self:GetHeight()) + +end) +local grip = CreateFrame ("button", "Hansgar_And_Franzok_AssistPlayerBarButton", player_bar) +grip:SetPoint ("bottomright", player_bar, "bottomright") +grip:SetSize (16, 16) +grip:SetScript ("OnMouseDown", function (self, button) + if (not player_bar.isMoving and button == "LeftButton") then + player_bar:StartSizing ("bottomright") + player_bar.isMoving = true + end +end) +grip:SetScript ("OnMouseUp", function (self, button) + if (player_bar.isMoving and button == "LeftButton") then + player_bar:StopMovingOrSizing() + player_bar.isMoving = false + end +end) +grip:SetNormalTexture ([[Interface\CHATFRAME\UI-ChatIM-SizeGrabber-Up]]) +grip:SetHighlightTexture ([[Interface\CHATFRAME\UI-ChatIM-SizeGrabber-Highlight]]) +grip:SetPushedTexture ([[Interface\CHATFRAME\UI-ChatIM-SizeGrabber-Down]]) + +player_bar.grip = grip f.player_bar = player_bar + player_bar.texture = player_bar:CreateTexture (nil, "overlay") player_bar.texture:SetTexture ("Interface\\AddOns\\Hansgar_And_Franzok_Assist\\bar_skyline") player_bar:SetStatusBarTexture (player_bar.texture) -- -local player_pos_frame = CreateFrame ("frame", "Hansgar_And_Franzok_Assist_DanceBar", UIParent) -player_pos_frame:SetPoint ("topleft", player_bar, "bottomleft", 0, -3) -player_pos_frame:SetPoint ("topright", player_bar, "bottomright", 0, -3) -player_pos_frame:SetHeight (14) -player_pos_frame:SetBackdrop ({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16, insets = {left = -1, right = -1, top = -1, bottom = -1}, -edgeFile = "Interface\\AddOns\\Hansgar_And_Franzok_Assist\\border_2", edgeSize = 8}) -player_pos_frame:SetBackdropColor (0, 0, 0, 1) +local player_pos_frame = CreateFrame ("frame", "Hansgar_And_Franzok_Assist_BarDance", UIParent) +--player_pos_frame:SetPoint ("topleft", player_bar, "bottomleft", 0, -3) +--player_pos_frame:SetPoint ("topright", player_bar, "bottomright", 0, -3) + +player_pos_frame:SetPoint ("center", UIParent, "center", 0, -75) + +player_pos_frame:SetSize (155, 6) +player_pos_frame:SetBackdrop ({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16}) +player_pos_frame:SetBackdropColor (0, 0, 0, 0.4) +player_pos_frame:SetMovable (true) +player_pos_frame:EnableMouse (true) +player_pos_frame:SetScript ("OnMouseDown", function (self) + if (not self.isMoving) then + self:StartMoving() + self.isMoving = true + end +end) +player_pos_frame:SetScript ("OnMouseUp", function (self) + if (self.isMoving) then + self:StopMovingOrSizing() + self.isMoving = false + end +end) player_pos_frame:Hide() --red local t1 = player_pos_frame:CreateTexture (nil, "artwork") t1:SetPoint ("left", player_pos_frame, "left") -t1:SetSize (player_pos_frame:GetWidth()*0.30, 14) +t1:SetSize (player_pos_frame:GetWidth()*0.30, 6) t1:SetTexture (1, 1, 1) --t1:SetTexCoord (260/512, 430/512, 29/256, 82/256) t1:SetVertexColor (1, 0.2, 0.2, 0.4) @@ -71,13 +149,13 @@ --green local t2 = player_pos_frame:CreateTexture (nil, "artwork") t2:SetPoint ("left", t1, "right") -t2:SetSize (player_pos_frame:GetWidth()*0.15, 14) +t2:SetSize (player_pos_frame:GetWidth()*0.15, 6) t2:SetTexture (0.2, 1, 0.2, 0.4) --red local middle = player_pos_frame:CreateTexture (nil, "artwork") middle:SetPoint ("left", t2, "right") -middle:SetSize (player_pos_frame:GetWidth()*0.10, 14) +middle:SetSize (player_pos_frame:GetWidth()*0.10, 6) middle:SetTexture (1, 1, 1) --middle:SetTexCoord (260/512, 430/512, 29/256, 82/256) middle:SetVertexColor (1, 0.2, 0.2, 0.4) @@ -85,13 +163,13 @@ --green local t3 = player_pos_frame:CreateTexture (nil, "artwork") t3:SetPoint ("left", middle, "right") -t3:SetSize (player_pos_frame:GetWidth()*0.15, 14) +t3:SetSize (player_pos_frame:GetWidth()*0.15, 6) t3:SetTexture (0.2, 1, 0.2, 0.4) --red local t4 = player_pos_frame:CreateTexture (nil, "artwork") t4:SetPoint ("left", t3, "right") -t4:SetSize (player_pos_frame:GetWidth()*0.30, 14) +t4:SetSize (player_pos_frame:GetWidth()*0.30, 6) t4:SetTexture (1, 1, 1) --t4:SetTexCoord (260/512, 430/512, 29/256, 82/256) t4:SetVertexColor (1, 0.2, 0.2, 0.4) @@ -194,8 +272,16 @@ if (db.FACING_SIDE == nil) then db.FACING_SIDE = 1 end + if (db.SHOW_MAIN_FRAME == nil) then + db.SHOW_MAIN_FRAME = true + end + if (db.PLAY_SOUND == nil) then + db.PLAY_SOUND = false + end -- - + + f:SetLockState (true) + elseif (event == "ENCOUNTER_START" or event == "ENCOUNTER_END") then local encounterID, encounterName, difficultyID, raidSize = select (1, ...) @@ -283,6 +369,11 @@ end f:EndTrackPlayerPosition() + elseif (command == "unlock") then + db.FRAME_LOCK = true + f:SetLockState() + print ("|cFFFFAA00Hansgar and Franzok Assist|r frame unlocked.") + elseif (command == "lock") then f:SetLockState() @@ -393,13 +484,19 @@ local time_limit_at = f.block_tracker [player_block] + db.STAMPERS_DELAY local time_now = GetTime() - f.player_bar:SetValue ((time_limit_at - time_now) / db.STAMPERS_DELAY * 100) + local timeleft = time_limit_at - time_now + f.player_bar:SetValue ((timeleft) / db.STAMPERS_DELAY * 100) + if (timeleft > 0) then + f.player_bar.text:SetText (format ("%.1f", timeleft)) + else + f.player_bar.text:SetText ("Move!") + end f.player_bar:Show() - + local block_frame = f.all_blocks [player_block] f.player_loc_box:SetPoint ("center", block_frame, "center") f.player_loc_box:Show() - player_bar:Show() + else f.player_loc_box:Hide() f.player_bar:Hide() @@ -415,17 +512,19 @@ if (not f.frames_built) then f:CreateWindow() end - + f:ResetBlocks() f.player_loc_box:Hide() f.block_tracker = f.block_tracker or {} table.wipe (f.block_tracker) - + SetMapToCurrentZone() - + frame_tracker:SetScript ("OnUpdate", on_update_tracker) f:Show() + f.player_bar:Show() + end function f:StopTracking() @@ -436,6 +535,8 @@ table.wipe (f.block_tracker) f.player_loc_box:Hide() f:Hide() + f.player_bar:SetValue (0) + f.player_bar:Hide() end local on_mouse_down = function (self) @@ -523,20 +624,46 @@ end end -function f:SetLockState() - db.FRAME_LOCK = not db.FRAME_LOCK +function f:SetLockState (just_refresh) + + if (not just_refresh) then + db.FRAME_LOCK = not db.FRAME_LOCK + end + if (db.FRAME_LOCK) then --locked f:EnableMouse (false) + player_bar:EnableMouse (false) + player_pos_frame:EnableMouse (false) + for _, block in ipairs (f.all_blocks) do block:EnableMouse (false) end + + if (f.StampersPhase and not just_refresh) then + f:EndTrackPlayerPosition() + f:StopTracking() + end else --unlocked f:EnableMouse (true) + player_bar:EnableMouse (true) + player_pos_frame:EnableMouse (true) + for _, block in ipairs (f.all_blocks) do block:EnableMouse (true) end + + if (not f.StampersPhase and not just_refresh) then + f:StartTracking() + f:StartTrackPlayerPosition() + end + end + + if (not db.FRAME_LOCK) then + player_bar.grip:Show() + else + player_bar.grip:Hide() end end @@ -601,7 +728,7 @@ end - f:SetLockState() + f:SetLockState (true) f.frames_built = true @@ -642,7 +769,7 @@ -- /hansgar test -- /run Hansgar_safe_track [1].block.x1 = 0.50154542922974 -local red_alpha_disabled = 0.15 +local red_alpha_disabled = 0.2 local red_alpha_enabled = 0.5 local green_alpha_disabled = 0.05
