diff --git a/data/ui_scripts/hud_info/__init__.lua b/data/ui_scripts/hud_info/__init__.lua index b6f5c8a2..07dfbdd4 100644 --- a/data/ui_scripts/hud_info/__init__.lua +++ b/data/ui_scripts/hud_info/__init__.lua @@ -1,5 +1,5 @@ if (game:issingleplayer()) then - return + return end require("settings") diff --git a/data/ui_scripts/hud_info/hud.lua b/data/ui_scripts/hud_info/hud.lua index e2889454..94acfc63 100644 --- a/data/ui_scripts/hud_info/hud.lua +++ b/data/ui_scripts/hud_info/hud.lua @@ -1,156 +1,158 @@ local mphud = luiglobals.require("LUI.mp_hud.MPHud") +local barheight = 16 +local textheight = 13 +local textoffsety = barheight / 2 - textheight / 2 function createinfobar() - local infobar = LUI.UIElement.new({ - left = luiglobals.GameX.IsHardcoreMode() and 160 or 228, - top = luiglobals.GameX.IsHardcoreMode() and 5 or 9, - height = 15, - width = 70, - leftAnchor = true, - topAnchor = true - }) + local infobar = LUI.UIElement.new({ + left = luiglobals.GameX.IsHardcoreMode() and 160 or 228, + top = luiglobals.GameX.IsHardcoreMode() and 5 or 9, + height = barheight, + width = 70, + leftAnchor = true, + topAnchor = true + }) - infobar:registerAnimationState("hud_on", { - alpha = 1 - }) + infobar:registerAnimationState("hud_on", { + alpha = 1 + }) - infobar:registerAnimationState("hud_off", { - alpha = 0 - }) + infobar:registerAnimationState("hud_off", { + alpha = 0 + }) - return infobar + return infobar end function populateinfobar(infobar) - elementoffset = 0 + elementoffset = 0 - if (Engine.GetDvarBool("cg_infobar_fps")) then - infobar:addElement(infoelement({ - label = "FPS: ", - getvalue = function() - return game:getfps() - end, - width = 70, - interval = 100 - })) - end + if (Engine.GetDvarBool("cg_infobar_fps")) then + infobar:addElement(infoelement({ + label = "FPS: ", + getvalue = function() + return game:getfps() + end, + width = 70, + interval = 100 + })) + end - if (Engine.GetDvarBool("cg_infobar_ping")) then - infobar:addElement(infoelement({ - label = "Latency: ", - getvalue = function() - return game:getping() .. " ms" - end, - width = 115, - interval = 100 - })) - end + if (Engine.GetDvarBool("cg_infobar_ping")) then + infobar:addElement(infoelement({ + label = "Latency: ", + getvalue = function() + return game:getping() .. " ms" + end, + width = 115, + interval = 100 + })) + end end function infoelement(data) - local container = LUI.UIElement.new({ - bottomAnchor = true, - leftAnchor = true, - topAnchor = true, - width = data.width, - left = elementoffset - }) + local container = LUI.UIElement.new({ + bottomAnchor = true, + leftAnchor = true, + topAnchor = true, + width = data.width, + left = elementoffset + }) - elementoffset = elementoffset + data.width + 10 + elementoffset = elementoffset + data.width + 10 - local background = LUI.UIImage.new({ - bottomAnchor = true, - leftAnchor = true, - topAnchor = true, - rightAnchor = true, - material = luiglobals.RegisterMaterial("white"), - color = luiglobals.Colors.black, - alpha = 0.5 - }) + local background = LUI.UIImage.new({ + bottomAnchor = true, + leftAnchor = true, + topAnchor = true, + rightAnchor = true, + material = luiglobals.RegisterMaterial("white"), + color = luiglobals.Colors.black, + alpha = 0.5 + }) - local labelfont = CoD.TextSettings.FontBold110 - local textheight = 13 + local labelfont = CoD.TextSettings.FontBold110 - local label = LUI.UIText.new({ - left = 5, - top = 1, - font = labelfont.Font, - height = textheight, - leftAnchor = true, - topAnchor = true, - color = { - r = 0.8, - g = 0.8, - b = 0.8, - } - }) + local label = LUI.UIText.new({ + left = 5, + top = textoffsety, + font = labelfont.Font, + height = textheight, + leftAnchor = true, + topAnchor = true, + color = { + r = 0.8, + g = 0.8, + b = 0.8, + } + }) - label:setText(data.label) + label:setText(data.label) - local _, _, left = luiglobals.GetTextDimensions(data.label, labelfont.Font, textheight) - local value = LUI.UIText.new({ - left = left + 5, - top = 1, - height = textheight, - leftAnchor = true, - topAnchor = true, - color = { - r = 0.6, - g = 0.6, - b = 0.6, - } - }) - - value:addElement(LUI.UITimer.new(data.interval, "update")) - value:setText(data.getvalue()) - value:addEventHandler("update", function() - value:setText(data.getvalue()) - end) - - container:addElement(background) - container:addElement(label) - container:addElement(value) - - return container + local _, _, left = luiglobals.GetTextDimensions(data.label, labelfont.Font, textheight) + local value = LUI.UIText.new({ + left = left + 5, + top = textoffsety, + height = textheight, + leftAnchor = true, + topAnchor = true, + color = { + r = 0.6, + g = 0.6, + b = 0.6, + } + }) + + value:addElement(LUI.UITimer.new(data.interval, "update")) + value:setText(data.getvalue()) + value:addEventHandler("update", function() + value:setText(data.getvalue()) + end) + + container:addElement(background) + container:addElement(label) + container:addElement(value) + + return container end local updatehudvisibility = mphud.updateHudVisibility mphud.updateHudVisibility = function(a1, a2) - updatehudvisibility(a1, a2) + updatehudvisibility(a1, a2) - local root = Engine.GetLuiRoot() - local menus = root:AnyActiveMenusInStack() - local infobar = root.infobar + local root = Engine.GetLuiRoot() + local menus = root:AnyActiveMenusInStack() + local infobar = root.infobar - if (not infobar) then - return - end + if (not infobar) then + return + end - if (menus) then - infobar:animateToState("hud_off") - else - infobar:animateToState("hud_on") - end + if (menus) then + infobar:animateToState("hud_off") + else + infobar:animateToState("hud_on") + end end LUI.onmenuopen("mp_hud", function(hud) - if (Engine.InFrontend()) then - return - end + if (Engine.InFrontend()) then + return + end - local infobar = createinfobar() - local root = Engine.GetLuiRoot() - root.infobar = infobar - populateinfobar(infobar) + local infobar = createinfobar() + local root = Engine.GetLuiRoot() + root.infobar = infobar + populateinfobar(infobar) - root:registerEventHandler("update_hud_infobar_settings", function() - infobar:removeAllChildren() - populateinfobar(infobar) - end) + root:registerEventHandler("update_hud_infobar_settings", function() + infobar:removeAllChildren() + populateinfobar(infobar) + end) - root:processEvent({ - name = "update_hud_infobar_settings" - }) - - hud.static:addElement(infobar) + root:processEvent({ + name = "update_hud_infobar_settings" + }) + + hud.static:addElement(infobar) end) \ No newline at end of file diff --git a/data/ui_scripts/hud_info/settings.lua b/data/ui_scripts/hud_info/settings.lua index 4ce32564..18014d33 100644 --- a/data/ui_scripts/hud_info/settings.lua +++ b/data/ui_scripts/hud_info/settings.lua @@ -28,152 +28,152 @@ end pcdisplay.CreateOptions = function( menu ) LUI.Options.AddButtonOptionVariant( - menu, - luiglobals.GenericButtonSettings.Variants.Select, - "@LUA_MENU_COLORBLIND_FILTER", - "@LUA_MENU_COLOR_BLIND_DESC", - LUI.Options.GetRenderColorBlindText, - LUI.Options.RenderColorBlindToggle, - LUI.Options.RenderColorBlindToggle - ) + menu, + luiglobals.GenericButtonSettings.Variants.Select, + "@LUA_MENU_COLORBLIND_FILTER", + "@LUA_MENU_COLOR_BLIND_DESC", + LUI.Options.GetRenderColorBlindText, + LUI.Options.RenderColorBlindToggle, + LUI.Options.RenderColorBlindToggle + ) - if Engine.IsMultiplayer() and Engine.GetDvarType( "cg_paintballFx" ) == luiglobals.DvarTypeTable.DvarBool then + if Engine.IsMultiplayer() and Engine.GetDvarType( "cg_paintballFx" ) == luiglobals.DvarTypeTable.DvarBool then LUI.Options.AddButtonOptionVariant( - menu, - luiglobals.GenericButtonSettings.Variants.Select, - "@LUA_MENU_PAINTBALL", "@LUA_MENU_PAINTBALL_DESC", - LUI.Options.GetDvarEnableTextFunc("cg_paintballFx", false), - LUI.Options.ToggleDvarFunc("cg_paintballFx"), - LUI.Options.ToggleDvarFunc("cg_paintballFx") - ) + menu, + luiglobals.GenericButtonSettings.Variants.Select, + "@LUA_MENU_PAINTBALL", "@LUA_MENU_PAINTBALL_DESC", + LUI.Options.GetDvarEnableTextFunc("cg_paintballFx", false), + LUI.Options.ToggleDvarFunc("cg_paintballFx"), + LUI.Options.ToggleDvarFunc("cg_paintballFx") + ) end LUI.Options.AddButtonOptionVariant( - menu, - luiglobals.GenericButtonSettings.Variants.Select, - "@LUA_MENU_BLOOD", - "@LUA_MENU_BLOOD_DESC", - LUI.Options.GetDvarEnableTextFunc("cg_blood", false), - LUI.Options.ToggleProfiledataFunc("showblood", Engine.GetControllerForLocalClient(0)), - LUI.Options.ToggleProfiledataFunc("showblood", Engine.GetControllerForLocalClient(0)) - ) + menu, + luiglobals.GenericButtonSettings.Variants.Select, + "@LUA_MENU_BLOOD", + "@LUA_MENU_BLOOD_DESC", + LUI.Options.GetDvarEnableTextFunc("cg_blood", false), + LUI.Options.ToggleProfiledataFunc("showblood", Engine.GetControllerForLocalClient(0)), + LUI.Options.ToggleProfiledataFunc("showblood", Engine.GetControllerForLocalClient(0)) + ) - if not Engine.IsMultiplayer() then + if not Engine.IsMultiplayer() then LUI.Options.AddButtonOptionVariant( - menu, - luiglobals.GenericButtonSettings.Variants.Select, - "@LUA_MENU_CROSSHAIR", - "@LUA_MENU_CROSSHAIR_DESC", - LUI.Options.GetDvarEnableTextFunc("cg_drawCrosshairOption", false), - LUI.Options.ToggleDvarFunc("cg_drawCrosshairOption"), - LUI.Options.ToggleDvarFunc("cg_drawCrosshairOption") - ) + menu, + luiglobals.GenericButtonSettings.Variants.Select, + "@LUA_MENU_CROSSHAIR", + "@LUA_MENU_CROSSHAIR_DESC", + LUI.Options.GetDvarEnableTextFunc("cg_drawCrosshairOption", false), + LUI.Options.ToggleDvarFunc("cg_drawCrosshairOption"), + LUI.Options.ToggleDvarFunc("cg_drawCrosshairOption") + ) - LUI.Options.CreateOptionButton( - menu, - "cg_drawDamageFeedbackOption", - "@LUA_MENU_HIT_MARKER", - "@LUA_MENU_HIT_MARKER_DESC", - { - { - text = "@LUA_MENU_ENABLED", - value = true - }, - { - text = "@LUA_MENU_DISABLED", - value = false - } - } - ) + LUI.Options.CreateOptionButton( + menu, + "cg_drawDamageFeedbackOption", + "@LUA_MENU_HIT_MARKER", + "@LUA_MENU_HIT_MARKER_DESC", + { + { + text = "@LUA_MENU_ENABLED", + value = true + }, + { + text = "@LUA_MENU_DISABLED", + value = false + } + } + ) end if Engine.IsMultiplayer() then LUI.Options.AddButtonOptionVariant( - menu, - luiglobals.GenericButtonSettings.Variants.Select, - "@MENU_DISPLAY_KILLSTREAK_COUNTER", - "@MENU_DISPLAY_KILLSTREAK_COUNTER_DESC", - pcdisplay.GetDisplayKillstreakCounterText, - pcdisplay.DisplayKillstreakCounterToggle, - pcdisplay.DisplayKillstreakCounterToggle - ) + menu, + luiglobals.GenericButtonSettings.Variants.Select, + "@MENU_DISPLAY_KILLSTREAK_COUNTER", + "@MENU_DISPLAY_KILLSTREAK_COUNTER_DESC", + pcdisplay.GetDisplayKillstreakCounterText, + pcdisplay.DisplayKillstreakCounterToggle, + pcdisplay.DisplayKillstreakCounterToggle + ) LUI.Options.AddButtonOptionVariant( - menu, - luiglobals.GenericButtonSettings.Variants.Select, - "@MENU_DISPLAY_MEDAL_SPLASHES", - "@MENU_DISPLAY_MEDAL_SPLASHES_DESC", - pcdisplay.GetDisplayMedalSplashesText, - pcdisplay.DisplayMedalSplashesToggle, - pcdisplay.DisplayMedalSplashesToggle - ) + menu, + luiglobals.GenericButtonSettings.Variants.Select, + "@MENU_DISPLAY_MEDAL_SPLASHES", + "@MENU_DISPLAY_MEDAL_SPLASHES_DESC", + pcdisplay.GetDisplayMedalSplashesText, + pcdisplay.DisplayMedalSplashesToggle, + pcdisplay.DisplayMedalSplashesToggle + ) LUI.Options.AddButtonOptionVariant( - menu, - luiglobals.GenericButtonSettings.Variants.Select, - "@MENU_DISPLAY_WEAPON_EMBLEMS", - "@MENU_DISPLAY_WEAPON_EMBLEMS_DESC", - pcdisplay.GetDisplayWeaponEmblemsText, - pcdisplay.DisplayWeaponEmblemsToggle, - pcdisplay.DisplayWeaponEmblemsToggle - ) + menu, + luiglobals.GenericButtonSettings.Variants.Select, + "@MENU_DISPLAY_WEAPON_EMBLEMS", + "@MENU_DISPLAY_WEAPON_EMBLEMS_DESC", + pcdisplay.GetDisplayWeaponEmblemsText, + pcdisplay.DisplayWeaponEmblemsToggle, + pcdisplay.DisplayWeaponEmblemsToggle + ) end - LUI.Options.AddButtonOptionVariant( - menu, - luiglobals.GenericButtonSettings.Variants.Common, - "@MENU_BRIGHTNESS", - "@MENU_BRIGHTNESS_DESC1", - nil, nil, nil, - pcdisplay.OpenBrightnessMenu, - nil, nil, nil - ) + LUI.Options.AddButtonOptionVariant( + menu, + luiglobals.GenericButtonSettings.Variants.Common, + "@MENU_BRIGHTNESS", + "@MENU_BRIGHTNESS_DESC1", + nil, nil, nil, + pcdisplay.OpenBrightnessMenu, + nil, nil, nil + ) - createdivider(menu, "TELEMETRY") + createdivider(menu, "TELEMETRY") - LUI.Options.CreateOptionButton( - menu, - "cg_infobar_ping", - "@LUA_MENU_LATENCY", - "@LUA_MENU_LATENCY_DESC", - { - { - text = "@LUA_MENU_ENABLED", - value = true - }, - { - text = "@LUA_MENU_DISABLED", - value = false - } - }, nil, nil, function(value) - Engine.SetDvarBool("cg_infobar_ping", value) - Engine.GetLuiRoot():processEvent({ - name = "update_hud_infobar_settings" - }) - end - ) + LUI.Options.CreateOptionButton( + menu, + "cg_infobar_ping", + "@LUA_MENU_LATENCY", + "@LUA_MENU_LATENCY_DESC", + { + { + text = "@LUA_MENU_ENABLED", + value = true + }, + { + text = "@LUA_MENU_DISABLED", + value = false + } + }, nil, nil, function(value) + Engine.SetDvarBool("cg_infobar_ping", value) + Engine.GetLuiRoot():processEvent({ + name = "update_hud_infobar_settings" + }) + end + ) - LUI.Options.CreateOptionButton( - menu, - "cg_infobar_fps", - "@LUA_MENU_FPS", - "@LUA_MENU_FPS_DESC", - { - { - text = "@LUA_MENU_ENABLED", - value = true - }, - { - text = "@LUA_MENU_DISABLED", - value = false - } - }, nil, nil, function(value) - Engine.SetDvarBool("cg_infobar_fps", value) - Engine.GetLuiRoot():processEvent({ - name = "update_hud_infobar_settings" - }) - end - ) + LUI.Options.CreateOptionButton( + menu, + "cg_infobar_fps", + "@LUA_MENU_FPS", + "@LUA_MENU_FPS_DESC", + { + { + text = "@LUA_MENU_ENABLED", + value = true + }, + { + text = "@LUA_MENU_DISABLED", + value = false + } + }, nil, nil, function(value) + Engine.SetDvarBool("cg_infobar_fps", value) + Engine.GetLuiRoot():processEvent({ + name = "update_hud_infobar_settings" + }) + end + ) LUI.Options.InitScrollingList(menu.list, nil) end