if (true) then return end local Details = _G.Details local DF = _G.DetailsFramework local libwindow = LibStub("LibWindow-1.1") --> this function isn't in use function Details.OpenDpsBenchmark() --main frame local DF = _detalhes.gump local _ = nil --declaration local f = CreateFrame ("frame", "DetailsBenchmark", UIParent,"BackdropTemplate") f:SetSize (800, 600) f:SetPoint ("left", UIParent, "left") f:SetFrameStrata ("LOW") f:EnableMouse (true) f:SetMovable (true) f:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) f:SetBackdropColor (0, 0, 0, 0.9) f:SetBackdropBorderColor (0, 0, 0, 1) --register to libwindow local LibWindow = LibStub ("LibWindow-1.1") LibWindow.RegisterConfig (f, _detalhes.benchmark_db.frame) LibWindow.RestorePosition (f) LibWindow.MakeDraggable (f) LibWindow.SavePosition (f) --titlebar f.TitleBar = CreateFrame ("frame", "$parentTitleBar", f,"BackdropTemplate") f.TitleBar:SetPoint ("topleft", f, "topleft", 2, -3) f.TitleBar:SetPoint ("topright", f, "topright", -2, -3) f.TitleBar:SetHeight (20) f.TitleBar:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) f.TitleBar:SetBackdropColor (.2, .2, .2, 1) f.TitleBar:SetBackdropBorderColor (0, 0, 0, 1) --close button f.Close = CreateFrame ("button", "$parentCloseButton", f,"BackdropTemplate") f.Close:SetPoint ("right", f.TitleBar, "right", -2, 0) f.Close:SetSize (16, 16) f.Close:SetNormalTexture (_detalhes.gump.folder .. "icons") f.Close:SetHighlightTexture (_detalhes.gump.folder .. "icons") f.Close:SetPushedTexture (_detalhes.gump.folder .. "icons") f.Close:GetNormalTexture():SetTexCoord (0, 16/128, 0, 1) f.Close:GetHighlightTexture():SetTexCoord (0, 16/128, 0, 1) f.Close:GetPushedTexture():SetTexCoord (0, 16/128, 0, 1) f.Close:SetAlpha (0.7) f.Close:SetScript ("OnClick", function() f:Hide() end) --title f.Title = f.TitleBar:CreateFontString ("$parentTitle", "overlay", "GameFontNormal") f.Title:SetPoint ("center", f.TitleBar, "center") f.Title:SetTextColor (.8, .8, .8, 1) f.Title:SetText ("Details! Benchmark") DF:InstallTemplate ("font", "DETAILS_BENCHMARK_NORMAL", {color = "white", size = 10, font = "Friz Quadrata TT"}) function f.CreateCombatObject() local t = {} return t end function f.StartNewBenchmark() end function f.StopCurrentBenchmark() end f.OnTickInterval = 0 function f.UpdateOnTick (self, deltaTime) f.OnTickInterval = f.OnTickInterval + deltaTime if (f.OnTickInterval >= 0.024) then --do the update --reset the interval f.OnTickInterval = 0 end end function f.StartUpdateOnTick() f:SetScript ("OnUpdate", f.UpdateOnTick) end --events f:RegisterEvent ("PLAYER_REGEN_DISABLED") f:RegisterEvent ("PLAYER_REGEN_ENABLED") f:SetScript ("OnEvent", function (self, event, ...) if (event == "PLAYER_REGEN_DISABLED") then f.StartNewBenchmark() elseif (event == "PLAYER_REGEN_ENABLED") then f.StopCurrentBenchmark() end end) local normal_text_template = DF:GetTemplate ("font", "DETAILS_BENCHMARK_NORMAL") local options_dropdown_template = DF:GetTemplate ("dropdown", "OPTIONS_DROPDOWN_TEMPLATE") local options_switch_template = DF:GetTemplate ("switch", "OPTIONS_CHECKBOX_TEMPLATE") local options_slider_template = DF:GetTemplate ("slider", "OPTIONS_SLIDER_TEMPLATE") local options_button_template = DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE") --locations f.FrameLocations = { summary = {10, -30}, auras = {10, -120}, spells = {10, -180}, history = {10, -280}, } f.FrameSizes = { default = {300, 200}, } --summary block --declaration local summaryFrame = CreateFrame ("frame", "$parentSummaryFrame", f,"BackdropTemplate") summaryFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.summary)) summaryFrame:SetSize (unpack (f.FrameSizes.default)) summaryFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) summaryFrame:SetBackdropColor (0, 0, 0, 0.9) summaryFrame:SetBackdropBorderColor (0, 0, 0, 1) --time to test string and dropdown local build_time_list = function() local t = { {value = 40, label = "40 seconds"}, {value = 60, label = "60 seconds"}, {value = 90, label = "90 seconds"}, {value = 120, label = "2 minutes"}, {value = 180, label = "3 minutes"}, {value = 300, label = "5 minutes"}, } return t end summaryFrame.TimeToTestLabel = DF:CreateLabel (summaryFrame, "Amount of Time", normal_text_template) summaryFrame.TimeToTestDropdown = DF:CreateDropDown (summaryFrame, build_time_list, default, 150, 20, _, _, options_dropdown_template) --description string and text entry summaryFrame.DescriptionLabel = DF:CreateLabel (summaryFrame, "Description", normal_text_template) summaryFrame.DescriptionEntry = DF:CreateTextEntry (summaryFrame, function()end, 120, 20, nil, _, nil, options_dropdown_template) --DPS Amount string summaryFrame.DPSLabel = DF:CreateLabel (summaryFrame, "100K", normal_text_template) --TIME ELAPSED string summaryFrame.TimeElapsedLabel = DF:CreateLabel (summaryFrame, "01:00", normal_text_template) --boss simulation string and dropdown local build_bosssimulation_list, default = function() local t = { {value = "patchwerk", label = "Patchwerk"}, } return t end summaryFrame.BossSimulationLabel = DF:CreateLabel (summaryFrame, "Boss Simulation", normal_text_template) summaryFrame.BossSimulationDropdown = DF:CreateDropDown (summaryFrame, build_bosssimulation_list, default, 150, 20, _, _, options_dropdown_template) --boss records line with a tooltip importing data from the storage summaryFrame.BossRecordsFrame = CreateFrame ("frame", nil, summaryFrame,"BackdropTemplate") summaryFrame.BossRecordsFrame:SetSize (f.FrameSizes.default[1]-20, 20) summaryFrame.BossRecordsFrame:SetBackdropColor (0, 0, 0, 0.3) summaryFrame.BossRecordsFrame:SetScript ("OnEnter", function() end) summaryFrame.BossRecordsFrame:SetScript ("OnLeave", function() end) --set the points do local x, y = 10, -10 summaryFrame.TimeToTestLabel:SetPoint ("topleft", summaryFrame, "topleft", x, y) summaryFrame.TimeToTestDropdown:SetPoint ("topleft", summaryFrame.TimeToTestLabel, "bottomleft", 0, -2) --y = y - 40 summaryFrame.DescriptionLabel:SetPoint ("topleft", summaryFrame, "topleft", x+160, y) summaryFrame.DescriptionEntry:SetPoint ("topleft", summaryFrame.DescriptionLabel, "bottomleft", 0, -2) y = y - 40 summaryFrame.DPSLabel:SetPoint ("topleft", summaryFrame, "topleft", x, y) summaryFrame.TimeElapsedLabel:SetPoint ("topleft", summaryFrame, "topleft", x + 100, y) y = y - 40 summaryFrame.BossSimulationLabel:SetPoint ("topleft", summaryFrame, "topleft", x, y) summaryFrame.BossSimulationDropdown:SetPoint ("topleft", summaryFrame.BossSimulationLabel, "bottomleft", 0, -2) y = y - 40 summaryFrame.BossRecordsFrame:SetPoint ("topleft", summaryFrame, "topleft", 0, 0) end --spells block --declaration local spellsFrame = CreateFrame ("frame", "$parentSpellsFrame", f,"BackdropTemplate") spellsFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.spells)) spellsFrame:SetSize (unpack (f.FrameSizes.default)) spellsFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) spellsFrame:SetBackdropColor (0, 0, 0, 0.9) spellsFrame:SetBackdropBorderColor (0, 0, 0, 1) --header with the string titles: --Spell Icon | DPS | Damage | Casts | Criticals | Highest Damage --scrollpanel --each line with: --Texture for the icon --5 strings for the data --hover over scripts --auras block --declaration local aurasFrame = CreateFrame ("frame", "$parentAurasFrame", f,"BackdropTemplate") aurasFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.auras)) aurasFrame:SetSize (unpack (f.FrameSizes.default)) aurasFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) aurasFrame:SetBackdropColor (0, 0, 0, 0.9) aurasFrame:SetBackdropBorderColor (0, 0, 0, 1) --will be 9 blocks? --each block with: --Texture for the icon --3 strings for Total Update, Applications and Refreshes --history block --declaration local historyFrame = CreateFrame ("frame", "$parentHistoryFrame", f,"BackdropTemplate") historyFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.history)) historyFrame:SetSize (unpack (f.FrameSizes.default)) historyFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) historyFrame:SetBackdropColor (0, 0, 0, 0.9) historyFrame:SetBackdropBorderColor (0, 0, 0, 1) --header with the string titles: --Spec | ILevel | DPS | Time | Talents | Crit | Haste | Versatility | Mastery | Int | Description --scrollpanel --each line with: --7 Textures for talent icons --10 strings for the data --hover over scripts --mechanics --to open the window --on target a training dummy --need to be on a specific map / sanctuary --on start a new combat: --start the timer --start the boss script if not patchwerk --create the graphic tables for *player total damage and *spell damage --create aura tables / grab auras already applied to the player / auras with no duration wont be added --on tick: --*check if the time is gone *update the time string *update the graphic *update the spells *upate the auras --on finishes: --stop the timer and check if the elapsed time is done --create a new benchmark object to store the test --export the data to this new object --add this new object to the benchmark storage table --update the history scrollbar end