diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 56c47ee..341424c 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,8 @@ { "recommendations": [ "venner.vscode-glua-enhanced", - "goz3rr.vscode-glualint" + "goz3rr.vscode-glualint", + "stefan-h-at.source-engine-support" ] -} \ No newline at end of file +} + diff --git a/addon.json b/addon.json index 284e4fa..1cc4f32 100644 --- a/addon.json +++ b/addon.json @@ -23,4 +23,5 @@ "LICENSE", "git-*" ] -} \ No newline at end of file +} + diff --git a/glualint.json b/glualint.json index 5e77f2c..158eecd 100644 --- a/glualint.json +++ b/glualint.json @@ -1,29 +1,50 @@ { - "lint_maxScopeDepth": 7, - "lint_syntaxErrors": true, - "lint_syntaxInconsistencies": true, - "lint_deprecated": true, - "lint_trailingWhitespace": true, - "lint_whitespaceStyle": true, - "lint_beginnerMistakes": true, - "lint_emptyBlocks": true, - "lint_shadowing": false, - "lint_gotos": true, - "lint_doubleNegations": true, - "lint_redundantIfStatements": false, - "lint_redundantParentheses": true, - "lint_duplicateTableKeys": true, - "lint_profanity": true, - "lint_unusedVars": true, - "lint_unusedParameters": false, - "lint_unusedLoopVars": false, + "lint_maxScopeDepth": 7, + "lint_syntaxErrors": true, + "lint_syntaxInconsistencies": true, + "lint_deprecated": true, + "lint_trailingWhitespace": true, + "lint_whitespaceStyle": true, + "lint_beginnerMistakes": true, + "lint_emptyBlocks": true, + "lint_shadowing": false, + "lint_gotos": true, + "lint_goto_identifier": true, + "lint_doubleNegations": true, + "lint_redundantIfStatements": false, + "lint_redundantParentheses": true, + "lint_duplicateTableKeys": true, + "lint_profanity": true, + "lint_unusedVars": true, + "lint_unusedParameters": false, + "lint_unusedLoopVars": false, + "lint_inconsistentVariableStyle": false, + "lint_spaceBetweenParens": false, + "lint_spaceBetweenBrackets": false, + "lint_spaceBetweenBraces": false, + "lint_ignoreFiles": [ + "lua/streamradio_core/external/*.lua" + ], + "lint_spaceBeforeComma": false, + "lint_spaceAfterComma": true, + "lint_maxLineLength": 0, + + "prettyprint_spaceBetweenParens": false, + "prettyprint_spaceBetweenBrackets": false, + "prettyprint_spaceBetweenBraces": false, + "prettyprint_spaceEmptyParens": false, + "prettyprint_spaceEmptyBraces": false, + "prettyprint_spaceAfterLabel": false, + "prettyprint_spaceBeforeComma": false, + "prettyprint_spaceAfterComma": true, + "prettyprint_semicolons": false, + "prettyprint_cStyle": false, + "prettyprint_removeRedundantParens": true, + "prettyprint_minimizeParens": true, + "prettyprint_assumeOperatorAssociativity": true, + "prettyprint_rejectInvalidCode": false, + "prettyprint_indentation": "\t", + + "log_format": "auto" +} - "prettyprint_spaceAfterParens": false, - "prettyprint_spaceAfterBrackets": false, - "prettyprint_spaceAfterBraces": false, - "prettyprint_spaceBeforeComma": false, - "prettyprint_spaceAfterComma": true, - "prettyprint_semicolons": false, - "prettyprint_cStyle": false, - "prettyprint_indentation": "\t" -} \ No newline at end of file diff --git a/lua/entities/base_streamradio.lua b/lua/entities/base_streamradio.lua index adc2555..851b548 100644 --- a/lua/entities/base_streamradio.lua +++ b/lua/entities/base_streamradio.lua @@ -481,10 +481,10 @@ function ENT:OnRemove() if g_isLoaded then StreamRadioLib.UnregisterRadio(creationID) - end - LIBUtil.EmptyTableSafe(classobjs_data) - LIBUtil.EmptyTableSafe(classobjs_nw_register) + LIBUtil.EmptyTableSafe(classobjs_data) + LIBUtil.EmptyTableSafe(classobjs_nw_register) + end end) if SERVER then diff --git a/lua/entities/sent_streamradio/cl_init.lua b/lua/entities/sent_streamradio/cl_init.lua index 92b07cd..15191cd 100644 --- a/lua/entities/sent_streamradio/cl_init.lua +++ b/lua/entities/sent_streamradio/cl_init.lua @@ -345,7 +345,7 @@ function ENT:GetWallVolumeFactorSmoothed() end function ENT:IsMuted() - ply = LocalPlayer() + local ply = LocalPlayer() if not IsValid(ply) then return true end if not ply:IsPlayer() then return true end diff --git a/lua/entities/sent_streamradio/shared.lua b/lua/entities/sent_streamradio/shared.lua index be3a218..b78bbdf 100644 --- a/lua/entities/sent_streamradio/shared.lua +++ b/lua/entities/sent_streamradio/shared.lua @@ -2,7 +2,6 @@ AddCSLuaFile() DEFINE_BASECLASS( "base_streamradio_gui" ) local StreamRadioLib = StreamRadioLib -local LIBNetwork = StreamRadioLib.Network local LIBWire = StreamRadioLib.Wire local g_isLoaded = StreamRadioLib and StreamRadioLib.Loaded @@ -134,7 +133,7 @@ function ENT:SetupDataTables( ) self._radio_EditValue = self._radio_EditValue or self.EditValue self.EditValue = function(this, variable, value) - // This workaround allows for clientonly traffic on those data table vars. + -- This workaround allows for clientonly traffic on those data table vars. if variable == "CLMute" then if SERVER then diff --git a/lua/streamradio_core/bass3.lua b/lua/streamradio_core/bass3.lua index b4aad5e..aefb0b7 100644 --- a/lua/streamradio_core/bass3.lua +++ b/lua/streamradio_core/bass3.lua @@ -32,8 +32,6 @@ local g_cvar_cl_bass3_enable = nil local g_cvar_sv_bass3_enable = nil local g_cvar_sv_bass3_allow_client = nil -local g_cvar_sv_bass3_installed = nil - local function resetCache(...) g_bass_loaded = nil g_bass_can_loaded = nil @@ -48,22 +46,16 @@ if CLIENT then cvars.AddChangeCallback("sv_streamradio_bass3_allow_client", resetCache, "streamradio_bass3_callback") end -local g_colDefault = Color(255,255,255) -local g_colOk = Color(100,200,100) -local g_colCL = Color(255,222,137) -local g_colSV = Color(137,222,255) +local g_colDefault = Color(255, 255, 255) +local g_colOk = Color(100, 200, 100) +local g_colCL = Color(255, 222, 137) +local g_colSV = Color(137, 222, 255) local function printBass3Info() if g_bass_info_shown then return end - local realmname = "CLIENT" - - if SERVER then - realmname = "SERVER" - end - g_bass_info_shown = true local baseString = string.format( diff --git a/lua/streamradio_core/cache.lua b/lua/streamradio_core/cache.lua index 23b594c..caf0125 100644 --- a/lua/streamradio_core/cache.lua +++ b/lua/streamradio_core/cache.lua @@ -409,12 +409,10 @@ function LIB.Download(url, callback, saveAsUrl) end function LIB.Load() - if StreamRadioLib.DataDirectory then - local cacheRealm = SERVER and "sv" or "cl" + local cacheRealm = SERVER and "sv" or "cl" - g_mainDir = string.format("%s/cache-%s", StreamRadioLib.DataDirectory, cacheRealm) - g_mainDirLegacy = string.format("%s/cache", StreamRadioLib.DataDirectory) - end + g_mainDir = LIBUtil.GetMainDirectory(string.format("cache-%s", cacheRealm)) + g_mainDirLegacy = LIBUtil.GetMainDirectory("cache") LIBUtil.DeleteFolder(g_mainDirLegacy) Cache_Cleanup(true) diff --git a/lua/streamradio_core/classes.lua b/lua/streamradio_core/classes.lua index f96cf11..00736f3 100644 --- a/lua/streamradio_core/classes.lua +++ b/lua/streamradio_core/classes.lua @@ -55,7 +55,7 @@ local function CreateClass( classname, baseClass ) function new_class:new(useproxy) local newinst = {} - for k,v in pairs(metamethods) do + for k, v in pairs(metamethods) do if rawget(class_mt, v) then continue end class_mt[v] = self[v] end diff --git a/lua/streamradio_core/classes/base.lua b/lua/streamradio_core/classes/base.lua index bc8f876..333b567 100644 --- a/lua/streamradio_core/classes/base.lua +++ b/lua/streamradio_core/classes/base.lua @@ -144,9 +144,9 @@ local function getTrace(level, maxcount) return trace end -local color1 = Color(60, 200, 60); -local color2 = Color(120,200,120); -local color3 = Color(240,120,60); +local color1 = Color(60, 200, 60) +local color2 = Color(120, 200, 120) +local color3 = Color(240, 120, 60) function CLASS:Print(...) local trace = getTrace(3) diff --git a/lua/streamradio_core/classes/base_listener.lua b/lua/streamradio_core/classes/base_listener.lua index f7b29c5..0ce423c 100644 --- a/lua/streamradio_core/classes/base_listener.lua +++ b/lua/streamradio_core/classes/base_listener.lua @@ -575,7 +575,7 @@ function CLASS:AssignToListenGroupInternal() return end - listengroupid = self:AssignToListenGroup() + local listengroupid = self:AssignToListenGroup() listengroupid = tonumber(listengroupid) if not listengroupid then diff --git a/lua/streamradio_core/classes/gui_controller.lua b/lua/streamradio_core/classes/gui_controller.lua index d68bb74..da6d11e 100644 --- a/lua/streamradio_core/classes/gui_controller.lua +++ b/lua/streamradio_core/classes/gui_controller.lua @@ -94,7 +94,7 @@ function CLASS:Create() end local ResizeRT = function() - local x, y = self:GetPos() + local x = self:GetPos() local w, h = self:GetSize() self._RT:SetPos(x, x) @@ -242,7 +242,7 @@ function CLASS:PosTooltipToCursor(force) local x, y = self:GetPos() local cx, cy = self:GetCursor() - local cw, ch = self:GetCursorSize() + local _, ch = self:GetCursorSize() local pw, ph = self:GetClientSize() local tw, th = self.Tooltip:GetSize() @@ -389,7 +389,7 @@ function CLASS:DrawCursor() if not self:GetAllowCursor() then return end if not self:IsCursorInBounds() then return end - local ax1, ay1, ax2, ay2 = self:GetArea() + local _, _, ax2, ay2 = self:GetArea() local cx, cy = self:GetCursor() local cw, ch = self:GetCursorSize() diff --git a/lua/streamradio_core/classes/rendertarget.lua b/lua/streamradio_core/classes/rendertarget.lua index 7acd9a7..0943bae 100644 --- a/lua/streamradio_core/classes/rendertarget.lua +++ b/lua/streamradio_core/classes/rendertarget.lua @@ -365,7 +365,6 @@ function CLASS:Clear() if self:IsDisabled() then return end local rt = self._RT - local mat = rt.mat local tex = rt.tex render.PushRenderTarget( tex ) diff --git a/lua/streamradio_core/classes/stream.lua b/lua/streamradio_core/classes/stream.lua index 7ce8f4c..4e0a414 100644 --- a/lua/streamradio_core/classes/stream.lua +++ b/lua/streamradio_core/classes/stream.lua @@ -7,17 +7,12 @@ end local tostring = tostring local tonumber = tonumber -local type = type local isfunction = isfunction local IsValid = IsValid local Vector = Vector -local setmetatable = setmetatable -local sound = sound -local util = util local string = string local math = math -local hook = hook local SERVER = SERVER local CLIENT = CLIENT @@ -33,7 +28,7 @@ local LIBUrl = StreamRadioLib.Url local LIBStream = StreamRadioLib.Stream local BASE = CLASS:GetBaseClass() -local g_maxSongLenForCache = 60 * 60 * 1.5 // 1.5 Hours +local g_maxSongLenForCache = 60 * 60 * 1.5 -- 1.5 Hours local function LoadBass() local hasBass = LIBBass.LoadDLL() @@ -142,7 +137,7 @@ function CLASS:Create() v = LIBUrl.SanitizeUrl(v) if rawv ~= v then - // avoid calling it twice on unclean input + -- avoid calling it twice on unclean input self.URL.external = v return end @@ -223,7 +218,7 @@ function CLASS:Create() self.StateTable_r = {} - for i,v in ipairs(self.StateTable) do + for i, v in ipairs(self.StateTable) do self.StateTable_r[v] = i end diff --git a/lua/streamradio_core/classes/ui/radio/gui_browser.lua b/lua/streamradio_core/classes/ui/radio/gui_browser.lua index 15aac83..dea4314 100644 --- a/lua/streamradio_core/classes/ui/radio/gui_browser.lua +++ b/lua/streamradio_core/classes/ui/radio/gui_browser.lua @@ -416,7 +416,7 @@ end function CLASS:_PerformButtonLayout(buttonx, buttony) if not self.SideButtons then return end - local w, h = self:GetClientSize() + local _, h = self:GetClientSize() local buttonw = 0 for k, v in ipairs(self.SideButtons) do diff --git a/lua/streamradio_core/classes/ui/radio/gui_errorbox.lua b/lua/streamradio_core/classes/ui/radio/gui_errorbox.lua index e0914d4..dd1f7cd 100644 --- a/lua/streamradio_core/classes/ui/radio/gui_errorbox.lua +++ b/lua/streamradio_core/classes/ui/radio/gui_errorbox.lua @@ -226,7 +226,7 @@ end function CLASS:_PerformButtonLayout(buttonx, buttony) if not self.SideButtons then return end - local w, h = self:GetClientSize() + local _, h = self:GetClientSize() local buttonw = 0 for k, v in ipairs(self.SideButtons) do diff --git a/lua/streamradio_core/classes/ui/radio/gui_player.lua b/lua/streamradio_core/classes/ui/radio/gui_player.lua index 6289ba2..f0923a6 100644 --- a/lua/streamradio_core/classes/ui/radio/gui_player.lua +++ b/lua/streamradio_core/classes/ui/radio/gui_player.lua @@ -65,7 +65,7 @@ function CLASS:Create() self.StreamOBJ:SetVolume(v) end - self.VolumeBar:SetSize(1,1) + self.VolumeBar:SetSize(1, 1) self.ControlPanel = self:AddPanelByClassname("radio/gui_player_controls", true) self.ControlPanel:SetSize(1, 1) diff --git a/lua/streamradio_core/classes/ui/radio/gui_player_controls.lua b/lua/streamradio_core/classes/ui/radio/gui_player_controls.lua index 0771b1d..7208fe0 100644 --- a/lua/streamradio_core/classes/ui/radio/gui_player_controls.lua +++ b/lua/streamradio_core/classes/ui/radio/gui_player_controls.lua @@ -114,7 +114,7 @@ function CLASS:Create() end local isPlayMode = stream:IsPlayMode() - + if isPlayMode then self:CallHook("OnPause") stream:Pause() @@ -320,7 +320,7 @@ function CLASS:Create() self:UpdatePlaybackLoopMode() self:UpdatePlayBar() - self.PlayBar:SetSize(1,1) + self.PlayBar:SetSize(1, 1) if CLIENT then self:StartFastThink() diff --git a/lua/streamradio_core/classes/ui/text.lua b/lua/streamradio_core/classes/ui/text.lua index e288c78..c126adf 100644 --- a/lua/streamradio_core/classes/ui/text.lua +++ b/lua/streamradio_core/classes/ui/text.lua @@ -49,7 +49,7 @@ function CLASS:Create() self:QueueCall("BuildLines") end - self.Colors.Main = Color(0,0,0) + self.Colors.Main = Color(0, 0, 0) end self:SetSkinAble(false) @@ -72,7 +72,7 @@ function CLASS:BuildLines(force) local font = self.TextData.Font local text = self.TextData.Text - local w, h = self:GetSize() + local w = self:GetSize() self:GetWidth() @@ -80,13 +80,12 @@ function CLASS:BuildLines(force) local line = {} local linew = 0 - local linehend = false surface.SetFont( font ) local checksize = {"W", "M", "L", "I", "i", "l", ".", "g", "|", "_"} for k, v in ipairs(checksize) do - local tsw, tsh = surface.GetTextSize(v) + local tsw = surface.GetTextSize(v) if tsw >= w then self:InvalidateLayout() @@ -121,12 +120,12 @@ function CLASS:BuildLines(force) return end - local tsw, tsh = surface.GetTextSize( text ) + local tsw = surface.GetTextSize( text ) local newlinew = linew + tsw -- Word to long, seperate it if tsw > w then - for i=1, #text do + for i = 1, #text do addtoline(text[i]) end @@ -188,22 +187,20 @@ function CLASS:Render() local x, y = self:GetRenderPos() local w, h = self:GetSize() - local xalign, yalign = self.TextData.AlignX, self.TextData.AlignY local col = self.Colors.Main or color_black local font = self.TextData.Font - + surface.SetFont( font ) surface.SetTextColor( col:Unpack() ) local lines = self:GetVisibleLines() - local textw, texth = self:GetTextSize() + local _, texth = self:GetTextSize() for i, v in ipairs(lines) do local text = v.text local ox = v.x local oy = v.y local ow = v.w - local oh = v.h self:DrawText(text, x + ox, y + oy, w, h, ow, texth) end @@ -253,11 +250,11 @@ function CLASS:GetTotalTextSize() end function CLASS:FitToText(minw, maxw) - self:SetWidth(maxw) - self:BuildLines() + self:SetWidth(maxw) + self:BuildLines() - local w, h = self:GetTotalTextSize() - w = math.Clamp(w, minw, maxw) + local w, h = self:GetTotalTextSize() + w = math.Clamp(w, minw, maxw) self:SetSize(w, h) end @@ -312,9 +309,8 @@ function CLASS:GetVisibleLines() if chlines then return chlines end local liney = 0 - local textw, texth = self:GetTextSize() + local _, texth = self:GetTextSize() - local count = self:GetLineCount() local startline = self:GetStartLine() local lines = {} diff --git a/lua/streamradio_core/client/cl_lib.lua b/lua/streamradio_core/client/cl_lib.lua index 411b68a..7769000 100644 --- a/lua/streamradio_core/client/cl_lib.lua +++ b/lua/streamradio_core/client/cl_lib.lua @@ -1,44 +1,5 @@ --- //////////////////////////////////// --- Stream Radio Lip --- //////////////////////////////////// -local IsValid = IsValid -local tonumber = tonumber -local tostring = tostring -local Color = Color -local LocalPlayer = LocalPlayer -local concommand = concommand -local hook = hook -local math = math -local string = string -local net = net local LIBNet = StreamRadioLib.Net -local LIBError = StreamRadioLib.Error - -LIBNet.Receive("PlaylistMenu", function( length ) - if ( not istable( StreamRadioLib ) ) then return end - if ( not StreamRadioLib.NetReceiveFileEntry ) then return end - local entity, name, type, x, y = StreamRadioLib.NetReceiveFileEntry( ) - if ( not IsValid( entity ) ) then return end - if ( not entity.PlaylistMenu ) then return end - local fileinfo = {} - fileinfo.filename = name - fileinfo.filetype = type - entity.PlaylistMenu[x] = entity.PlaylistMenu[x] or {} - entity.PlaylistMenu[x][y] = fileinfo -end) - -LIBNet.Receive("Playlist", function( length ) - if ( not istable( StreamRadioLib ) ) then return end - if ( not StreamRadioLib.NetReceivePlaylistEntry ) then return end - local entity, name, x, y = StreamRadioLib.NetReceivePlaylistEntry( ) - if ( not IsValid( entity ) ) then return end - if ( not entity.Playlist ) then return end - local fileinfo = {} - fileinfo.filename = name - entity.Playlist[x] = entity.Playlist[x] or {} - entity.Playlist[x][y] = fileinfo -end) local g_camPos = nil local g_inRenderScene = false @@ -222,43 +183,17 @@ end function StreamRadioLib.CalcDistanceVolume( distance, max ) distance = distance or 0 local threshold = 0.25 - max = math.min( max or 0, StreamRadioLib.GetMuteDistance( ) ) - local min = ( max or 0 ) / 3 + max = math.min(max or 0, StreamRadioLib.GetMuteDistance()) + local min = (max or 0) / 3 local fullmin = min / 4 - if ( min <= 0 ) then return 0 end - if ( max <= 0 ) then return 0 end - if ( distance > max ) then return 0 end - if ( distance <= 0 ) then return 1 end - if ( distance <= fullmin ) then return 1 end - if ( distance <= min ) then return Lerp( ( distance - fullmin ) / ( min - fullmin ), 1, threshold ) end + if min <= 0 then return 0 end + if max <= 0 then return 0 end + if distance > max then return 0 end + if distance <= 0 then return 1 end + if distance <= fullmin then return 1 end + if distance <= min then return Lerp((distance - fullmin) / (min - fullmin), 1, threshold) end - return Lerp( ( distance - min ) / ( max - min ), threshold, 0 ) -end - -local oldfloat = 0 - -function StreamRadioLib.PrintFloat( float, len, ... ) - local float = math.Clamp( float, 0, 1 ) - local str = "" - - if ( float >= oldfloat ) then - oldfloat = float - end - - local bar = math.Round( float * len ) - local space = len - math.Round( float * len ) - local space1 = math.Round( ( oldfloat - float ) * len ) - local space2 = space - space1 - 1 - str = string.rep( "#", bar ) .. string.rep( " ", space1 ) .. ( math.Round( oldfloat * len ) < len and "|" or "" ) .. string.rep( " ", space2 ) - MsgC( Color( 510 * float, 510 * ( 1 - float ), 0, 255 ), str, " ", string.format( "% 7.2f%%\t", float * 100 ), ..., "\n" ) - - if ( float < oldfloat ) then - oldfloat = oldfloat - 0.5 * RealFrameTime( ) - end - - oldvar = float - - return str + return Lerp((distance - min) / (max - min), threshold, 0) end return true diff --git a/lua/streamradio_core/client/cl_menu.lua b/lua/streamradio_core/client/cl_menu.lua index fce09dc..f77bf5c 100644 --- a/lua/streamradio_core/client/cl_menu.lua +++ b/lua/streamradio_core/client/cl_menu.lua @@ -210,8 +210,19 @@ function LIB.GetWarnLabel(text) return label end +function LIB.GetImportantLabel(text) + local label = LIB.GetLabel(text) + + local skindata = label:GetSkin() + + label:SetTextColor(skindata.Colours.Tree.Hover) + + return label +end + + function LIB.GetWhitelistEnabledLabel(text) - local label = LIB.GetWarnLabel(text) + local label = LIB.GetImportantLabel(text) local function handleWhitelistEnabled(this) local lastisUrlWhitelistEnabled = this._isUrlWhitelistEnabled diff --git a/lua/streamradio_core/client/cl_playlist_edit.lua b/lua/streamradio_core/client/cl_playlist_edit.lua index e7804de..52f1fb7 100644 --- a/lua/streamradio_core/client/cl_playlist_edit.lua +++ b/lua/streamradio_core/client/cl_playlist_edit.lua @@ -7,29 +7,20 @@ table.Empty(LIB) local LIBNet = StreamRadioLib.Net -local pairs = pairs -local type = type -local IsValid = IsValid -local file = file -local table = table -local string = string -local util = util -local player = player -local ents = ents -local net = net -local ListenPath = "" -local CallbackFunc = nil -local CallbackArgs = {} -local CallbackSelf = nil +local g_listenPath = "" + +local g_callbackFunc = nil +local g_callbackArgs = {} +local g_callbackObj = nil function LIB.ListenToPath( path ) - ListenPath = tostring( path or "" ) + g_listenPath = tostring( path or "" ) - return ListenPath + return g_listenPath end function LIB.GetListenPath( ) - return ListenPath + return g_listenPath end function LIB.CreateDir( path ) @@ -149,50 +140,50 @@ function LIB.Rename(path_old, path_new) return true end -function LIB.SetCallback(func, self, ...) +function LIB.SetCallback(func, this, ...) if not isfunction(func) then - CallbackFunc = nil - CallbackArgs = {} - CallbackSelf = nil + g_callbackFunc = nil + g_callbackArgs = {} + g_callbackObj = nil return end - CallbackFunc = func - CallbackArgs = {...} - CallbackSelf = self + g_callbackFunc = func + g_callbackArgs = {...} + g_callbackObj = this end LIBNet.Receive("Editor_Return_Files", function( length ) local path, name, type, filepath = StreamRadioLib.NetReceiveFileEditor( ) - if not isfunction(CallbackFunc) then return end + if not isfunction(g_callbackFunc) then return end - if CallbackSelf then - CallbackFunc( CallbackSelf, "files", path, name, filepath, type, unpack( CallbackArgs or {} ) ) + if g_callbackObj then + g_callbackFunc( g_callbackObj, "files", path, name, filepath, type, unpack( g_callbackArgs or {} ) ) else - CallbackFunc( "files", path, name, filepath, type, unpack( CallbackArgs or {} ) ) + g_callbackFunc( "files", path, name, filepath, type, unpack( g_callbackArgs or {} ) ) end end) LIBNet.Receive("Editor_Return_Playlist", function( length ) local url, name, filepath = StreamRadioLib.NetReceivePlaylistEditor( ) - if not isfunction(CallbackFunc) then return end + if not isfunction(g_callbackFunc) then return end - if CallbackSelf then - CallbackFunc( CallbackSelf, "playlist", url, name, filepath, unpack( CallbackArgs or {} ) ) + if g_callbackObj then + g_callbackFunc( g_callbackObj, "playlist", url, name, filepath, unpack( g_callbackArgs or {} ) ) else - CallbackFunc( "playlist", url, name, filepath, unpack( CallbackArgs or {} ) ) + g_callbackFunc( "playlist", url, name, filepath, unpack( g_callbackArgs or {} ) ) end end) LIBNet.Receive("Editor_Error", function( length ) local path, code = StreamRadioLib.NetReceiveEditorError( ) - if not isfunction(CallbackFunc) then return end + if not isfunction(g_callbackFunc) then return end - if CallbackSelf then - CallbackFunc( CallbackSelf, "error", path, code, unpack( CallbackArgs or {} ) ) + if g_callbackObj then + g_callbackFunc( g_callbackObj, "error", path, code, unpack( g_callbackArgs or {} ) ) else - CallbackFunc( "error", path, code, unpack( CallbackArgs or {} ) ) + g_callbackFunc( "error", path, code, unpack( g_callbackArgs or {} ) ) end end) diff --git a/lua/streamradio_core/client/cl_presets.lua b/lua/streamradio_core/client/cl_presets.lua index 576e4fe..e14876a 100644 --- a/lua/streamradio_core/client/cl_presets.lua +++ b/lua/streamradio_core/client/cl_presets.lua @@ -1,726 +1,871 @@ -local RadioColorTool = "streamradio_gui_color_global" +local StreamRadioLib = StreamRadioLib -local Settings = { - [RadioColorTool] = { +local LIBPrint = StreamRadioLib.Print +local LIBUtil = StreamRadioLib.Util + +local g_mainPath = LIBUtil.GetMainDirectory("presets_test") +local g_radioColorToolName = "streamradio_gui_color_global" + +-- Generated stock presets via concommand "debug_streamradio_convertpresets" +local g_settings = { + [g_radioColorToolName] = { ["Cold"] = { - [RadioColorTool .. "_border_color_border_a"] = "255", - [RadioColorTool .. "_border_color_border_b"] = "0", - [RadioColorTool .. "_border_color_border_g"] = "0", - [RadioColorTool .. "_border_color_border_r"] = "0", - [RadioColorTool .. "_button_color_a"] = "255", - [RadioColorTool .. "_button_color_b"] = "173", - [RadioColorTool .. "_button_color_disabled_a"] = "255", - [RadioColorTool .. "_button_color_disabled_b"] = "64", - [RadioColorTool .. "_button_color_disabled_g"] = "64", - [RadioColorTool .. "_button_color_disabled_r"] = "64", - [RadioColorTool .. "_button_color_foreground_a"] = "255", - [RadioColorTool .. "_button_color_foreground_b"] = "0", - [RadioColorTool .. "_button_color_foreground_disabled_a"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_b"] = "0", - [RadioColorTool .. "_button_color_foreground_disabled_g"] = "0", - [RadioColorTool .. "_button_color_foreground_disabled_r"] = "0", - [RadioColorTool .. "_button_color_foreground_g"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_a"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_b"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_g"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_r"] = "0", - [RadioColorTool .. "_button_color_foreground_r"] = "0", - [RadioColorTool .. "_button_color_g"] = "173", - [RadioColorTool .. "_button_color_hover_a"] = "255", - [RadioColorTool .. "_button_color_hover_b"] = "128", - [RadioColorTool .. "_button_color_hover_g"] = "128", - [RadioColorTool .. "_button_color_hover_r"] = "128", - [RadioColorTool .. "_button_color_icon_a"] = "255", - [RadioColorTool .. "_button_color_icon_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_a"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_g"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_r"] = "255", - [RadioColorTool .. "_button_color_icon_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_a"] = "255", - [RadioColorTool .. "_button_color_icon_hover_b"] = "255", - [RadioColorTool .. "_button_color_icon_hover_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_r"] = "255", - [RadioColorTool .. "_button_color_icon_r"] = "255", - [RadioColorTool .. "_button_color_r"] = "0", - [RadioColorTool .. "_button_color_shadow_a"] = "255", - [RadioColorTool .. "_button_color_shadow_b"] = "40", - [RadioColorTool .. "_button_color_shadow_g"] = "40", - [RadioColorTool .. "_button_color_shadow_r"] = "40", - [RadioColorTool .. "_cursor_color_cursor_a"] = "255", - [RadioColorTool .. "_cursor_color_cursor_b"] = "255", - [RadioColorTool .. "_cursor_color_cursor_g"] = "255", - [RadioColorTool .. "_cursor_color_cursor_r"] = "255", - [RadioColorTool .. "_error_color_a"] = "255", - [RadioColorTool .. "_error_color_b"] = "113", - [RadioColorTool .. "_error_color_foreground_a"] = "255", - [RadioColorTool .. "_error_color_foreground_b"] = "255", - [RadioColorTool .. "_error_color_foreground_g"] = "255", - [RadioColorTool .. "_error_color_foreground_r"] = "255", - [RadioColorTool .. "_error_color_g"] = "105", - [RadioColorTool .. "_error_color_r"] = "90", - [RadioColorTool .. "_error_color_shadow_a"] = "255", - [RadioColorTool .. "_error_color_shadow_b"] = "40", - [RadioColorTool .. "_error_color_shadow_g"] = "40", - [RadioColorTool .. "_error_color_shadow_r"] = "40", - [RadioColorTool .. "_header_color_a"] = "255", - [RadioColorTool .. "_header_color_b"] = "88", - [RadioColorTool .. "_header_color_foreground_a"] = "255", - [RadioColorTool .. "_header_color_foreground_b"] = "255", - [RadioColorTool .. "_header_color_foreground_g"] = "255", - [RadioColorTool .. "_header_color_foreground_r"] = "255", - [RadioColorTool .. "_header_color_g"] = "82", - [RadioColorTool .. "_header_color_r"] = "68", - [RadioColorTool .. "_header_color_shadow_a"] = "255", - [RadioColorTool .. "_header_color_shadow_b"] = "40", - [RadioColorTool .. "_header_color_shadow_g"] = "40", - [RadioColorTool .. "_header_color_shadow_r"] = "40", - [RadioColorTool .. "_main_color_a"] = "255", - [RadioColorTool .. "_main_color_b"] = "68", - [RadioColorTool .. "_main_color_g"] = "0", - [RadioColorTool .. "_main_color_r"] = "15", - [RadioColorTool .. "_spectrum_color_a"] = "255", - [RadioColorTool .. "_spectrum_color_b"] = "52", - [RadioColorTool .. "_spectrum_color_foreground_a"] = "255", - [RadioColorTool .. "_spectrum_color_foreground_b"] = "182", - [RadioColorTool .. "_spectrum_color_foreground_g"] = "170", - [RadioColorTool .. "_spectrum_color_foreground_r"] = "110", - [RadioColorTool .. "_spectrum_color_g"] = "50", - [RadioColorTool .. "_spectrum_color_icon_a"] = "255", - [RadioColorTool .. "_spectrum_color_icon_b"] = "255", - [RadioColorTool .. "_spectrum_color_icon_g"] = "255", - [RadioColorTool .. "_spectrum_color_icon_r"] = "255", - [RadioColorTool .. "_spectrum_color_r"] = "46", - [RadioColorTool .. "_spectrum_color_shadow_a"] = "255", - [RadioColorTool .. "_spectrum_color_shadow_b"] = "40", - [RadioColorTool .. "_spectrum_color_shadow_g"] = "40", - [RadioColorTool .. "_spectrum_color_shadow_r"] = "40", + ["streamradio_gui_color_global_border_color_border_a"] = "255", + ["streamradio_gui_color_global_border_color_border_b"] = "0", + ["streamradio_gui_color_global_border_color_border_g"] = "0", + ["streamradio_gui_color_global_border_color_border_r"] = "0", + ["streamradio_gui_color_global_button_color_a"] = "255", + ["streamradio_gui_color_global_button_color_b"] = "173", + ["streamradio_gui_color_global_button_color_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_disabled_b"] = "64", + ["streamradio_gui_color_global_button_color_disabled_g"] = "64", + ["streamradio_gui_color_global_button_color_disabled_r"] = "64", + ["streamradio_gui_color_global_button_color_foreground_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_b"] = "0", + ["streamradio_gui_color_global_button_color_foreground_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_b"] = "0", + ["streamradio_gui_color_global_button_color_foreground_disabled_g"] = "0", + ["streamradio_gui_color_global_button_color_foreground_disabled_r"] = "0", + ["streamradio_gui_color_global_button_color_foreground_g"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_b"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_g"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_r"] = "0", + ["streamradio_gui_color_global_button_color_foreground_r"] = "0", + ["streamradio_gui_color_global_button_color_g"] = "173", + ["streamradio_gui_color_global_button_color_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_hover_b"] = "128", + ["streamradio_gui_color_global_button_color_hover_g"] = "128", + ["streamradio_gui_color_global_button_color_hover_r"] = "128", + ["streamradio_gui_color_global_button_color_icon_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_r"] = "255", + ["streamradio_gui_color_global_button_color_r"] = "0", + ["streamradio_gui_color_global_button_color_shadow_a"] = "255", + ["streamradio_gui_color_global_button_color_shadow_b"] = "40", + ["streamradio_gui_color_global_button_color_shadow_g"] = "40", + ["streamradio_gui_color_global_button_color_shadow_r"] = "40", + ["streamradio_gui_color_global_cursor_color_cursor_a"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_b"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_g"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_r"] = "255", + ["streamradio_gui_color_global_error_color_a"] = "255", + ["streamradio_gui_color_global_error_color_b"] = "113", + ["streamradio_gui_color_global_error_color_foreground_a"] = "255", + ["streamradio_gui_color_global_error_color_foreground_b"] = "255", + ["streamradio_gui_color_global_error_color_foreground_g"] = "255", + ["streamradio_gui_color_global_error_color_foreground_r"] = "255", + ["streamradio_gui_color_global_error_color_g"] = "105", + ["streamradio_gui_color_global_error_color_r"] = "90", + ["streamradio_gui_color_global_error_color_shadow_a"] = "255", + ["streamradio_gui_color_global_error_color_shadow_b"] = "40", + ["streamradio_gui_color_global_error_color_shadow_g"] = "40", + ["streamradio_gui_color_global_error_color_shadow_r"] = "40", + ["streamradio_gui_color_global_header_color_a"] = "255", + ["streamradio_gui_color_global_header_color_b"] = "88", + ["streamradio_gui_color_global_header_color_foreground_a"] = "255", + ["streamradio_gui_color_global_header_color_foreground_b"] = "255", + ["streamradio_gui_color_global_header_color_foreground_g"] = "255", + ["streamradio_gui_color_global_header_color_foreground_r"] = "255", + ["streamradio_gui_color_global_header_color_g"] = "82", + ["streamradio_gui_color_global_header_color_r"] = "68", + ["streamradio_gui_color_global_header_color_shadow_a"] = "255", + ["streamradio_gui_color_global_header_color_shadow_b"] = "40", + ["streamradio_gui_color_global_header_color_shadow_g"] = "40", + ["streamradio_gui_color_global_header_color_shadow_r"] = "40", + ["streamradio_gui_color_global_main_color_a"] = "255", + ["streamradio_gui_color_global_main_color_b"] = "68", + ["streamradio_gui_color_global_main_color_g"] = "0", + ["streamradio_gui_color_global_main_color_r"] = "15", + ["streamradio_gui_color_global_spectrum_color_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_b"] = "52", + ["streamradio_gui_color_global_spectrum_color_foreground_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_foreground_b"] = "182", + ["streamradio_gui_color_global_spectrum_color_foreground_g"] = "170", + ["streamradio_gui_color_global_spectrum_color_foreground_r"] = "110", + ["streamradio_gui_color_global_spectrum_color_g"] = "50", + ["streamradio_gui_color_global_spectrum_color_icon_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_b"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_g"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_r"] = "255", + ["streamradio_gui_color_global_spectrum_color_r"] = "46", + ["streamradio_gui_color_global_spectrum_color_shadow_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_shadow_b"] = "40", + ["streamradio_gui_color_global_spectrum_color_shadow_g"] = "40", + ["streamradio_gui_color_global_spectrum_color_shadow_r"] = "40", }, ["Gray"] = { - [RadioColorTool .. "_border_color_border_a"] = "255", - [RadioColorTool .. "_border_color_border_b"] = "2", - [RadioColorTool .. "_border_color_border_g"] = "2", - [RadioColorTool .. "_border_color_border_r"] = "2", - [RadioColorTool .. "_button_color_a"] = "255", - [RadioColorTool .. "_button_color_b"] = "173", - [RadioColorTool .. "_button_color_disabled_a"] = "255", - [RadioColorTool .. "_button_color_disabled_b"] = "52", - [RadioColorTool .. "_button_color_disabled_g"] = "52", - [RadioColorTool .. "_button_color_disabled_r"] = "52", - [RadioColorTool .. "_button_color_foreground_a"] = "255", - [RadioColorTool .. "_button_color_foreground_b"] = "0", - [RadioColorTool .. "_button_color_foreground_disabled_a"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_b"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_g"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_r"] = "255", - [RadioColorTool .. "_button_color_foreground_g"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_a"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_b"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_g"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_r"] = "255", - [RadioColorTool .. "_button_color_foreground_r"] = "0", - [RadioColorTool .. "_button_color_g"] = "173", - [RadioColorTool .. "_button_color_hover_a"] = "255", - [RadioColorTool .. "_button_color_hover_b"] = "79", - [RadioColorTool .. "_button_color_hover_g"] = "79", - [RadioColorTool .. "_button_color_hover_r"] = "79", - [RadioColorTool .. "_button_color_icon_a"] = "255", - [RadioColorTool .. "_button_color_icon_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_a"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_g"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_r"] = "255", - [RadioColorTool .. "_button_color_icon_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_a"] = "255", - [RadioColorTool .. "_button_color_icon_hover_b"] = "255", - [RadioColorTool .. "_button_color_icon_hover_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_r"] = "255", - [RadioColorTool .. "_button_color_icon_r"] = "255", - [RadioColorTool .. "_button_color_r"] = "173", - [RadioColorTool .. "_button_color_shadow_a"] = "255", - [RadioColorTool .. "_button_color_shadow_b"] = "40", - [RadioColorTool .. "_button_color_shadow_g"] = "40", - [RadioColorTool .. "_button_color_shadow_r"] = "40", - [RadioColorTool .. "_cursor_color_cursor_a"] = "255", - [RadioColorTool .. "_cursor_color_cursor_b"] = "255", - [RadioColorTool .. "_cursor_color_cursor_g"] = "255", - [RadioColorTool .. "_cursor_color_cursor_r"] = "255", - [RadioColorTool .. "_error_color_a"] = "255", - [RadioColorTool .. "_error_color_b"] = "200", - [RadioColorTool .. "_error_color_foreground_a"] = "255", - [RadioColorTool .. "_error_color_foreground_b"] = "0", - [RadioColorTool .. "_error_color_foreground_g"] = "0", - [RadioColorTool .. "_error_color_foreground_r"] = "0", - [RadioColorTool .. "_error_color_g"] = "200", - [RadioColorTool .. "_error_color_r"] = "200", - [RadioColorTool .. "_error_color_shadow_a"] = "255", - [RadioColorTool .. "_error_color_shadow_b"] = "40", - [RadioColorTool .. "_error_color_shadow_g"] = "40", - [RadioColorTool .. "_error_color_shadow_r"] = "40", - [RadioColorTool .. "_header_color_a"] = "255", - [RadioColorTool .. "_header_color_b"] = "107", - [RadioColorTool .. "_header_color_foreground_a"] = "255", - [RadioColorTool .. "_header_color_foreground_b"] = "0", - [RadioColorTool .. "_header_color_foreground_g"] = "0", - [RadioColorTool .. "_header_color_foreground_r"] = "0", - [RadioColorTool .. "_header_color_g"] = "107", - [RadioColorTool .. "_header_color_r"] = "109", - [RadioColorTool .. "_header_color_shadow_a"] = "255", - [RadioColorTool .. "_header_color_shadow_b"] = "40", - [RadioColorTool .. "_header_color_shadow_g"] = "40", - [RadioColorTool .. "_header_color_shadow_r"] = "40", - [RadioColorTool .. "_main_color_a"] = "255", - [RadioColorTool .. "_main_color_b"] = "0", - [RadioColorTool .. "_main_color_g"] = "0", - [RadioColorTool .. "_main_color_r"] = "0", - [RadioColorTool .. "_spectrum_color_a"] = "255", - [RadioColorTool .. "_spectrum_color_b"] = "59", - [RadioColorTool .. "_spectrum_color_foreground_a"] = "255", - [RadioColorTool .. "_spectrum_color_foreground_b"] = "194", - [RadioColorTool .. "_spectrum_color_foreground_g"] = "194", - [RadioColorTool .. "_spectrum_color_foreground_r"] = "195", - [RadioColorTool .. "_spectrum_color_g"] = "59", - [RadioColorTool .. "_spectrum_color_icon_a"] = "255", - [RadioColorTool .. "_spectrum_color_icon_b"] = "255", - [RadioColorTool .. "_spectrum_color_icon_g"] = "255", - [RadioColorTool .. "_spectrum_color_icon_r"] = "255", - [RadioColorTool .. "_spectrum_color_r"] = "59", - [RadioColorTool .. "_spectrum_color_shadow_a"] = "255", - [RadioColorTool .. "_spectrum_color_shadow_b"] = "40", - [RadioColorTool .. "_spectrum_color_shadow_g"] = "40", - [RadioColorTool .. "_spectrum_color_shadow_r"] = "40", + ["streamradio_gui_color_global_border_color_border_a"] = "255", + ["streamradio_gui_color_global_border_color_border_b"] = "2", + ["streamradio_gui_color_global_border_color_border_g"] = "2", + ["streamradio_gui_color_global_border_color_border_r"] = "2", + ["streamradio_gui_color_global_button_color_a"] = "255", + ["streamradio_gui_color_global_button_color_b"] = "173", + ["streamradio_gui_color_global_button_color_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_disabled_b"] = "52", + ["streamradio_gui_color_global_button_color_disabled_g"] = "52", + ["streamradio_gui_color_global_button_color_disabled_r"] = "52", + ["streamradio_gui_color_global_button_color_foreground_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_b"] = "0", + ["streamradio_gui_color_global_button_color_foreground_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_b"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_g"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_r"] = "255", + ["streamradio_gui_color_global_button_color_foreground_g"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_foreground_r"] = "0", + ["streamradio_gui_color_global_button_color_g"] = "173", + ["streamradio_gui_color_global_button_color_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_hover_b"] = "79", + ["streamradio_gui_color_global_button_color_hover_g"] = "79", + ["streamradio_gui_color_global_button_color_hover_r"] = "79", + ["streamradio_gui_color_global_button_color_icon_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_r"] = "255", + ["streamradio_gui_color_global_button_color_r"] = "173", + ["streamradio_gui_color_global_button_color_shadow_a"] = "255", + ["streamradio_gui_color_global_button_color_shadow_b"] = "40", + ["streamradio_gui_color_global_button_color_shadow_g"] = "40", + ["streamradio_gui_color_global_button_color_shadow_r"] = "40", + ["streamradio_gui_color_global_cursor_color_cursor_a"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_b"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_g"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_r"] = "255", + ["streamradio_gui_color_global_error_color_a"] = "255", + ["streamradio_gui_color_global_error_color_b"] = "200", + ["streamradio_gui_color_global_error_color_foreground_a"] = "255", + ["streamradio_gui_color_global_error_color_foreground_b"] = "0", + ["streamradio_gui_color_global_error_color_foreground_g"] = "0", + ["streamradio_gui_color_global_error_color_foreground_r"] = "0", + ["streamradio_gui_color_global_error_color_g"] = "200", + ["streamradio_gui_color_global_error_color_r"] = "200", + ["streamradio_gui_color_global_error_color_shadow_a"] = "255", + ["streamradio_gui_color_global_error_color_shadow_b"] = "40", + ["streamradio_gui_color_global_error_color_shadow_g"] = "40", + ["streamradio_gui_color_global_error_color_shadow_r"] = "40", + ["streamradio_gui_color_global_header_color_a"] = "255", + ["streamradio_gui_color_global_header_color_b"] = "107", + ["streamradio_gui_color_global_header_color_foreground_a"] = "255", + ["streamradio_gui_color_global_header_color_foreground_b"] = "0", + ["streamradio_gui_color_global_header_color_foreground_g"] = "0", + ["streamradio_gui_color_global_header_color_foreground_r"] = "0", + ["streamradio_gui_color_global_header_color_g"] = "107", + ["streamradio_gui_color_global_header_color_r"] = "109", + ["streamradio_gui_color_global_header_color_shadow_a"] = "255", + ["streamradio_gui_color_global_header_color_shadow_b"] = "40", + ["streamradio_gui_color_global_header_color_shadow_g"] = "40", + ["streamradio_gui_color_global_header_color_shadow_r"] = "40", + ["streamradio_gui_color_global_main_color_a"] = "255", + ["streamradio_gui_color_global_main_color_b"] = "0", + ["streamradio_gui_color_global_main_color_g"] = "0", + ["streamradio_gui_color_global_main_color_r"] = "0", + ["streamradio_gui_color_global_spectrum_color_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_b"] = "59", + ["streamradio_gui_color_global_spectrum_color_foreground_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_foreground_b"] = "194", + ["streamradio_gui_color_global_spectrum_color_foreground_g"] = "194", + ["streamradio_gui_color_global_spectrum_color_foreground_r"] = "195", + ["streamradio_gui_color_global_spectrum_color_g"] = "59", + ["streamradio_gui_color_global_spectrum_color_icon_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_b"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_g"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_r"] = "255", + ["streamradio_gui_color_global_spectrum_color_r"] = "59", + ["streamradio_gui_color_global_spectrum_color_shadow_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_shadow_b"] = "40", + ["streamradio_gui_color_global_spectrum_color_shadow_g"] = "40", + ["streamradio_gui_color_global_spectrum_color_shadow_r"] = "40", }, ["Jamaica"] = { - [RadioColorTool .. "_border_color_border_a"] = "255", - [RadioColorTool .. "_border_color_border_b"] = "0", - [RadioColorTool .. "_border_color_border_g"] = "0", - [RadioColorTool .. "_border_color_border_r"] = "0", - [RadioColorTool .. "_button_color_a"] = "255", - [RadioColorTool .. "_button_color_b"] = "0", - [RadioColorTool .. "_button_color_disabled_a"] = "255", - [RadioColorTool .. "_button_color_disabled_b"] = "0", - [RadioColorTool .. "_button_color_disabled_g"] = "0", - [RadioColorTool .. "_button_color_disabled_r"] = "43", - [RadioColorTool .. "_button_color_foreground_a"] = "255", - [RadioColorTool .. "_button_color_foreground_b"] = "0", - [RadioColorTool .. "_button_color_foreground_disabled_a"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_b"] = "161", - [RadioColorTool .. "_button_color_foreground_disabled_g"] = "161", - [RadioColorTool .. "_button_color_foreground_disabled_r"] = "161", - [RadioColorTool .. "_button_color_foreground_g"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_a"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_b"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_g"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_r"] = "0", - [RadioColorTool .. "_button_color_foreground_r"] = "0", - [RadioColorTool .. "_button_color_g"] = "86", - [RadioColorTool .. "_button_color_hover_a"] = "255", - [RadioColorTool .. "_button_color_hover_b"] = "91", - [RadioColorTool .. "_button_color_hover_g"] = "91", - [RadioColorTool .. "_button_color_hover_r"] = "91", - [RadioColorTool .. "_button_color_icon_a"] = "255", - [RadioColorTool .. "_button_color_icon_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_a"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_g"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_r"] = "255", - [RadioColorTool .. "_button_color_icon_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_a"] = "255", - [RadioColorTool .. "_button_color_icon_hover_b"] = "255", - [RadioColorTool .. "_button_color_icon_hover_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_r"] = "255", - [RadioColorTool .. "_button_color_icon_r"] = "255", - [RadioColorTool .. "_button_color_r"] = "0", - [RadioColorTool .. "_button_color_shadow_a"] = "255", - [RadioColorTool .. "_button_color_shadow_b"] = "0", - [RadioColorTool .. "_button_color_shadow_g"] = "0", - [RadioColorTool .. "_button_color_shadow_r"] = "0", - [RadioColorTool .. "_cursor_color_cursor_a"] = "255", - [RadioColorTool .. "_cursor_color_cursor_b"] = "255", - [RadioColorTool .. "_cursor_color_cursor_g"] = "255", - [RadioColorTool .. "_cursor_color_cursor_r"] = "255", - [RadioColorTool .. "_error_color_a"] = "255", - [RadioColorTool .. "_error_color_b"] = "64", - [RadioColorTool .. "_error_color_foreground_a"] = "255", - [RadioColorTool .. "_error_color_foreground_b"] = "200", - [RadioColorTool .. "_error_color_foreground_g"] = "200", - [RadioColorTool .. "_error_color_foreground_r"] = "200", - [RadioColorTool .. "_error_color_g"] = "64", - [RadioColorTool .. "_error_color_r"] = "64", - [RadioColorTool .. "_error_color_shadow_a"] = "255", - [RadioColorTool .. "_error_color_shadow_b"] = "0", - [RadioColorTool .. "_error_color_shadow_g"] = "0", - [RadioColorTool .. "_error_color_shadow_r"] = "0", - [RadioColorTool .. "_header_color_a"] = "255", - [RadioColorTool .. "_header_color_b"] = "0", - [RadioColorTool .. "_header_color_foreground_a"] = "255", - [RadioColorTool .. "_header_color_foreground_b"] = "0", - [RadioColorTool .. "_header_color_foreground_g"] = "0", - [RadioColorTool .. "_header_color_foreground_r"] = "0", - [RadioColorTool .. "_header_color_g"] = "86", - [RadioColorTool .. "_header_color_r"] = "86", - [RadioColorTool .. "_header_color_shadow_a"] = "255", - [RadioColorTool .. "_header_color_shadow_b"] = "0", - [RadioColorTool .. "_header_color_shadow_g"] = "0", - [RadioColorTool .. "_header_color_shadow_r"] = "0", - [RadioColorTool .. "_main_color_a"] = "255", - [RadioColorTool .. "_main_color_b"] = "40", - [RadioColorTool .. "_main_color_g"] = "40", - [RadioColorTool .. "_main_color_r"] = "40", - [RadioColorTool .. "_spectrum_color_a"] = "255", - [RadioColorTool .. "_spectrum_color_b"] = "0", - [RadioColorTool .. "_spectrum_color_foreground_a"] = "255", - [RadioColorTool .. "_spectrum_color_foreground_b"] = "0", - [RadioColorTool .. "_spectrum_color_foreground_g"] = "195", - [RadioColorTool .. "_spectrum_color_foreground_r"] = "195", - [RadioColorTool .. "_spectrum_color_g"] = "0", - [RadioColorTool .. "_spectrum_color_icon_a"] = "255", - [RadioColorTool .. "_spectrum_color_icon_b"] = "255", - [RadioColorTool .. "_spectrum_color_icon_g"] = "255", - [RadioColorTool .. "_spectrum_color_icon_r"] = "255", - [RadioColorTool .. "_spectrum_color_r"] = "77", - [RadioColorTool .. "_spectrum_color_shadow_a"] = "255", - [RadioColorTool .. "_spectrum_color_shadow_b"] = "0", - [RadioColorTool .. "_spectrum_color_shadow_g"] = "0", - [RadioColorTool .. "_spectrum_color_shadow_r"] = "0", + ["streamradio_gui_color_global_border_color_border_a"] = "255", + ["streamradio_gui_color_global_border_color_border_b"] = "0", + ["streamradio_gui_color_global_border_color_border_g"] = "0", + ["streamradio_gui_color_global_border_color_border_r"] = "0", + ["streamradio_gui_color_global_button_color_a"] = "255", + ["streamradio_gui_color_global_button_color_b"] = "0", + ["streamradio_gui_color_global_button_color_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_disabled_b"] = "0", + ["streamradio_gui_color_global_button_color_disabled_g"] = "0", + ["streamradio_gui_color_global_button_color_disabled_r"] = "43", + ["streamradio_gui_color_global_button_color_foreground_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_b"] = "0", + ["streamradio_gui_color_global_button_color_foreground_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_b"] = "161", + ["streamradio_gui_color_global_button_color_foreground_disabled_g"] = "161", + ["streamradio_gui_color_global_button_color_foreground_disabled_r"] = "161", + ["streamradio_gui_color_global_button_color_foreground_g"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_b"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_g"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_r"] = "0", + ["streamradio_gui_color_global_button_color_foreground_r"] = "0", + ["streamradio_gui_color_global_button_color_g"] = "86", + ["streamradio_gui_color_global_button_color_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_hover_b"] = "91", + ["streamradio_gui_color_global_button_color_hover_g"] = "91", + ["streamradio_gui_color_global_button_color_hover_r"] = "91", + ["streamradio_gui_color_global_button_color_icon_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_r"] = "255", + ["streamradio_gui_color_global_button_color_r"] = "0", + ["streamradio_gui_color_global_button_color_shadow_a"] = "255", + ["streamradio_gui_color_global_button_color_shadow_b"] = "0", + ["streamradio_gui_color_global_button_color_shadow_g"] = "0", + ["streamradio_gui_color_global_button_color_shadow_r"] = "0", + ["streamradio_gui_color_global_cursor_color_cursor_a"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_b"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_g"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_r"] = "255", + ["streamradio_gui_color_global_error_color_a"] = "255", + ["streamradio_gui_color_global_error_color_b"] = "64", + ["streamradio_gui_color_global_error_color_foreground_a"] = "255", + ["streamradio_gui_color_global_error_color_foreground_b"] = "200", + ["streamradio_gui_color_global_error_color_foreground_g"] = "200", + ["streamradio_gui_color_global_error_color_foreground_r"] = "200", + ["streamradio_gui_color_global_error_color_g"] = "64", + ["streamradio_gui_color_global_error_color_r"] = "64", + ["streamradio_gui_color_global_error_color_shadow_a"] = "255", + ["streamradio_gui_color_global_error_color_shadow_b"] = "0", + ["streamradio_gui_color_global_error_color_shadow_g"] = "0", + ["streamradio_gui_color_global_error_color_shadow_r"] = "0", + ["streamradio_gui_color_global_header_color_a"] = "255", + ["streamradio_gui_color_global_header_color_b"] = "0", + ["streamradio_gui_color_global_header_color_foreground_a"] = "255", + ["streamradio_gui_color_global_header_color_foreground_b"] = "0", + ["streamradio_gui_color_global_header_color_foreground_g"] = "0", + ["streamradio_gui_color_global_header_color_foreground_r"] = "0", + ["streamradio_gui_color_global_header_color_g"] = "86", + ["streamradio_gui_color_global_header_color_r"] = "86", + ["streamradio_gui_color_global_header_color_shadow_a"] = "255", + ["streamradio_gui_color_global_header_color_shadow_b"] = "0", + ["streamradio_gui_color_global_header_color_shadow_g"] = "0", + ["streamradio_gui_color_global_header_color_shadow_r"] = "0", + ["streamradio_gui_color_global_main_color_a"] = "255", + ["streamradio_gui_color_global_main_color_b"] = "40", + ["streamradio_gui_color_global_main_color_g"] = "40", + ["streamradio_gui_color_global_main_color_r"] = "40", + ["streamradio_gui_color_global_spectrum_color_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_b"] = "0", + ["streamradio_gui_color_global_spectrum_color_foreground_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_foreground_b"] = "0", + ["streamradio_gui_color_global_spectrum_color_foreground_g"] = "195", + ["streamradio_gui_color_global_spectrum_color_foreground_r"] = "195", + ["streamradio_gui_color_global_spectrum_color_g"] = "0", + ["streamradio_gui_color_global_spectrum_color_icon_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_b"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_g"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_r"] = "255", + ["streamradio_gui_color_global_spectrum_color_r"] = "77", + ["streamradio_gui_color_global_spectrum_color_shadow_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_shadow_b"] = "0", + ["streamradio_gui_color_global_spectrum_color_shadow_g"] = "0", + ["streamradio_gui_color_global_spectrum_color_shadow_r"] = "0", }, ["Lava"] = { - [RadioColorTool .. "_border_color_border_a"] = "255", - [RadioColorTool .. "_border_color_border_b"] = "0", - [RadioColorTool .. "_border_color_border_g"] = "0", - [RadioColorTool .. "_border_color_border_r"] = "104", - [RadioColorTool .. "_button_color_a"] = "255", - [RadioColorTool .. "_button_color_b"] = "84", - [RadioColorTool .. "_button_color_disabled_a"] = "255", - [RadioColorTool .. "_button_color_disabled_b"] = "64", - [RadioColorTool .. "_button_color_disabled_g"] = "64", - [RadioColorTool .. "_button_color_disabled_r"] = "64", - [RadioColorTool .. "_button_color_foreground_a"] = "255", - [RadioColorTool .. "_button_color_foreground_b"] = "130", - [RadioColorTool .. "_button_color_foreground_disabled_a"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_b"] = "200", - [RadioColorTool .. "_button_color_foreground_disabled_g"] = "200", - [RadioColorTool .. "_button_color_foreground_disabled_r"] = "200", - [RadioColorTool .. "_button_color_foreground_g"] = "130", - [RadioColorTool .. "_button_color_foreground_hover_a"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_b"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_g"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_r"] = "255", - [RadioColorTool .. "_button_color_foreground_r"] = "255", - [RadioColorTool .. "_button_color_g"] = "84", - [RadioColorTool .. "_button_color_hover_a"] = "255", - [RadioColorTool .. "_button_color_hover_b"] = "0", - [RadioColorTool .. "_button_color_hover_g"] = "0", - [RadioColorTool .. "_button_color_hover_r"] = "38", - [RadioColorTool .. "_button_color_icon_a"] = "255", - [RadioColorTool .. "_button_color_icon_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_a"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_g"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_r"] = "255", - [RadioColorTool .. "_button_color_icon_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_a"] = "255", - [RadioColorTool .. "_button_color_icon_hover_b"] = "255", - [RadioColorTool .. "_button_color_icon_hover_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_r"] = "255", - [RadioColorTool .. "_button_color_icon_r"] = "255", - [RadioColorTool .. "_button_color_r"] = "84", - [RadioColorTool .. "_button_color_shadow_a"] = "255", - [RadioColorTool .. "_button_color_shadow_b"] = "27", - [RadioColorTool .. "_button_color_shadow_g"] = "27", - [RadioColorTool .. "_button_color_shadow_r"] = "27", - [RadioColorTool .. "_cursor_color_cursor_a"] = "255", - [RadioColorTool .. "_cursor_color_cursor_b"] = "255", - [RadioColorTool .. "_cursor_color_cursor_g"] = "255", - [RadioColorTool .. "_cursor_color_cursor_r"] = "255", - [RadioColorTool .. "_error_color_a"] = "255", - [RadioColorTool .. "_error_color_b"] = "16", - [RadioColorTool .. "_error_color_foreground_a"] = "255", - [RadioColorTool .. "_error_color_foreground_b"] = "64", - [RadioColorTool .. "_error_color_foreground_g"] = "64", - [RadioColorTool .. "_error_color_foreground_r"] = "255", - [RadioColorTool .. "_error_color_g"] = "16", - [RadioColorTool .. "_error_color_r"] = "16", - [RadioColorTool .. "_error_color_shadow_a"] = "255", - [RadioColorTool .. "_error_color_shadow_b"] = "27", - [RadioColorTool .. "_error_color_shadow_g"] = "27", - [RadioColorTool .. "_error_color_shadow_r"] = "27", - [RadioColorTool .. "_header_color_a"] = "255", - [RadioColorTool .. "_header_color_b"] = "36", - [RadioColorTool .. "_header_color_foreground_a"] = "255", - [RadioColorTool .. "_header_color_foreground_b"] = "0", - [RadioColorTool .. "_header_color_foreground_g"] = "0", - [RadioColorTool .. "_header_color_foreground_r"] = "255", - [RadioColorTool .. "_header_color_g"] = "36", - [RadioColorTool .. "_header_color_r"] = "36", - [RadioColorTool .. "_header_color_shadow_a"] = "255", - [RadioColorTool .. "_header_color_shadow_b"] = "27", - [RadioColorTool .. "_header_color_shadow_g"] = "27", - [RadioColorTool .. "_header_color_shadow_r"] = "27", - [RadioColorTool .. "_main_color_a"] = "255", - [RadioColorTool .. "_main_color_b"] = "45", - [RadioColorTool .. "_main_color_g"] = "45", - [RadioColorTool .. "_main_color_r"] = "45", - [RadioColorTool .. "_spectrum_color_a"] = "255", - [RadioColorTool .. "_spectrum_color_b"] = "0", - [RadioColorTool .. "_spectrum_color_foreground_a"] = "255", - [RadioColorTool .. "_spectrum_color_foreground_b"] = "0", - [RadioColorTool .. "_spectrum_color_foreground_g"] = "0", - [RadioColorTool .. "_spectrum_color_foreground_r"] = "255", - [RadioColorTool .. "_spectrum_color_g"] = "14", - [RadioColorTool .. "_spectrum_color_icon_a"] = "255", - [RadioColorTool .. "_spectrum_color_icon_b"] = "255", - [RadioColorTool .. "_spectrum_color_icon_g"] = "255", - [RadioColorTool .. "_spectrum_color_icon_r"] = "255", - [RadioColorTool .. "_spectrum_color_r"] = "54", - [RadioColorTool .. "_spectrum_color_shadow_a"] = "255", - [RadioColorTool .. "_spectrum_color_shadow_b"] = "27", - [RadioColorTool .. "_spectrum_color_shadow_g"] = "27", - [RadioColorTool .. "_spectrum_color_shadow_r"] = "27", + ["streamradio_gui_color_global_border_color_border_a"] = "255", + ["streamradio_gui_color_global_border_color_border_b"] = "0", + ["streamradio_gui_color_global_border_color_border_g"] = "0", + ["streamradio_gui_color_global_border_color_border_r"] = "104", + ["streamradio_gui_color_global_button_color_a"] = "255", + ["streamradio_gui_color_global_button_color_b"] = "84", + ["streamradio_gui_color_global_button_color_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_disabled_b"] = "64", + ["streamradio_gui_color_global_button_color_disabled_g"] = "64", + ["streamradio_gui_color_global_button_color_disabled_r"] = "64", + ["streamradio_gui_color_global_button_color_foreground_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_b"] = "130", + ["streamradio_gui_color_global_button_color_foreground_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_b"] = "200", + ["streamradio_gui_color_global_button_color_foreground_disabled_g"] = "200", + ["streamradio_gui_color_global_button_color_foreground_disabled_r"] = "200", + ["streamradio_gui_color_global_button_color_foreground_g"] = "130", + ["streamradio_gui_color_global_button_color_foreground_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_b"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_g"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_foreground_r"] = "255", + ["streamradio_gui_color_global_button_color_g"] = "84", + ["streamradio_gui_color_global_button_color_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_hover_b"] = "0", + ["streamradio_gui_color_global_button_color_hover_g"] = "0", + ["streamradio_gui_color_global_button_color_hover_r"] = "38", + ["streamradio_gui_color_global_button_color_icon_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_r"] = "255", + ["streamradio_gui_color_global_button_color_r"] = "84", + ["streamradio_gui_color_global_button_color_shadow_a"] = "255", + ["streamradio_gui_color_global_button_color_shadow_b"] = "27", + ["streamradio_gui_color_global_button_color_shadow_g"] = "27", + ["streamradio_gui_color_global_button_color_shadow_r"] = "27", + ["streamradio_gui_color_global_cursor_color_cursor_a"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_b"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_g"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_r"] = "255", + ["streamradio_gui_color_global_error_color_a"] = "255", + ["streamradio_gui_color_global_error_color_b"] = "16", + ["streamradio_gui_color_global_error_color_foreground_a"] = "255", + ["streamradio_gui_color_global_error_color_foreground_b"] = "64", + ["streamradio_gui_color_global_error_color_foreground_g"] = "64", + ["streamradio_gui_color_global_error_color_foreground_r"] = "255", + ["streamradio_gui_color_global_error_color_g"] = "16", + ["streamradio_gui_color_global_error_color_r"] = "16", + ["streamradio_gui_color_global_error_color_shadow_a"] = "255", + ["streamradio_gui_color_global_error_color_shadow_b"] = "27", + ["streamradio_gui_color_global_error_color_shadow_g"] = "27", + ["streamradio_gui_color_global_error_color_shadow_r"] = "27", + ["streamradio_gui_color_global_header_color_a"] = "255", + ["streamradio_gui_color_global_header_color_b"] = "36", + ["streamradio_gui_color_global_header_color_foreground_a"] = "255", + ["streamradio_gui_color_global_header_color_foreground_b"] = "0", + ["streamradio_gui_color_global_header_color_foreground_g"] = "0", + ["streamradio_gui_color_global_header_color_foreground_r"] = "255", + ["streamradio_gui_color_global_header_color_g"] = "36", + ["streamradio_gui_color_global_header_color_r"] = "36", + ["streamradio_gui_color_global_header_color_shadow_a"] = "255", + ["streamradio_gui_color_global_header_color_shadow_b"] = "27", + ["streamradio_gui_color_global_header_color_shadow_g"] = "27", + ["streamradio_gui_color_global_header_color_shadow_r"] = "27", + ["streamradio_gui_color_global_main_color_a"] = "255", + ["streamradio_gui_color_global_main_color_b"] = "45", + ["streamradio_gui_color_global_main_color_g"] = "45", + ["streamradio_gui_color_global_main_color_r"] = "45", + ["streamradio_gui_color_global_spectrum_color_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_b"] = "0", + ["streamradio_gui_color_global_spectrum_color_foreground_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_foreground_b"] = "0", + ["streamradio_gui_color_global_spectrum_color_foreground_g"] = "0", + ["streamradio_gui_color_global_spectrum_color_foreground_r"] = "255", + ["streamradio_gui_color_global_spectrum_color_g"] = "14", + ["streamradio_gui_color_global_spectrum_color_icon_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_b"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_g"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_r"] = "255", + ["streamradio_gui_color_global_spectrum_color_r"] = "54", + ["streamradio_gui_color_global_spectrum_color_shadow_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_shadow_b"] = "27", + ["streamradio_gui_color_global_spectrum_color_shadow_g"] = "27", + ["streamradio_gui_color_global_spectrum_color_shadow_r"] = "27", }, ["Nature"] = { - [RadioColorTool .. "_border_color_border_a"] = "255", - [RadioColorTool .. "_border_color_border_b"] = "23", - [RadioColorTool .. "_border_color_border_g"] = "128", - [RadioColorTool .. "_border_color_border_r"] = "0", - [RadioColorTool .. "_button_color_a"] = "255", - [RadioColorTool .. "_button_color_b"] = "0", - [RadioColorTool .. "_button_color_disabled_a"] = "255", - [RadioColorTool .. "_button_color_disabled_b"] = "3", - [RadioColorTool .. "_button_color_disabled_g"] = "36", - [RadioColorTool .. "_button_color_disabled_r"] = "0", - [RadioColorTool .. "_button_color_foreground_a"] = "255", - [RadioColorTool .. "_button_color_foreground_b"] = "0", - [RadioColorTool .. "_button_color_foreground_disabled_a"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_b"] = "175", - [RadioColorTool .. "_button_color_foreground_disabled_g"] = "175", - [RadioColorTool .. "_button_color_foreground_disabled_r"] = "175", - [RadioColorTool .. "_button_color_foreground_g"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_a"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_b"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_g"] = "0", - [RadioColorTool .. "_button_color_foreground_hover_r"] = "0", - [RadioColorTool .. "_button_color_foreground_r"] = "0", - [RadioColorTool .. "_button_color_g"] = "132", - [RadioColorTool .. "_button_color_hover_a"] = "255", - [RadioColorTool .. "_button_color_hover_b"] = "112", - [RadioColorTool .. "_button_color_hover_g"] = "175", - [RadioColorTool .. "_button_color_hover_r"] = "116", - [RadioColorTool .. "_button_color_icon_a"] = "255", - [RadioColorTool .. "_button_color_icon_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_a"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_g"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_r"] = "255", - [RadioColorTool .. "_button_color_icon_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_a"] = "255", - [RadioColorTool .. "_button_color_icon_hover_b"] = "255", - [RadioColorTool .. "_button_color_icon_hover_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_r"] = "255", - [RadioColorTool .. "_button_color_icon_r"] = "255", - [RadioColorTool .. "_button_color_r"] = "0", - [RadioColorTool .. "_button_color_shadow_a"] = "255", - [RadioColorTool .. "_button_color_shadow_b"] = "40", - [RadioColorTool .. "_button_color_shadow_g"] = "40", - [RadioColorTool .. "_button_color_shadow_r"] = "40", - [RadioColorTool .. "_cursor_color_cursor_a"] = "255", - [RadioColorTool .. "_cursor_color_cursor_b"] = "255", - [RadioColorTool .. "_cursor_color_cursor_g"] = "255", - [RadioColorTool .. "_cursor_color_cursor_r"] = "255", - [RadioColorTool .. "_error_color_a"] = "255", - [RadioColorTool .. "_error_color_b"] = "64", - [RadioColorTool .. "_error_color_foreground_a"] = "255", - [RadioColorTool .. "_error_color_foreground_b"] = "175", - [RadioColorTool .. "_error_color_foreground_g"] = "175", - [RadioColorTool .. "_error_color_foreground_r"] = "175", - [RadioColorTool .. "_error_color_g"] = "64", - [RadioColorTool .. "_error_color_r"] = "64", - [RadioColorTool .. "_error_color_shadow_a"] = "255", - [RadioColorTool .. "_error_color_shadow_b"] = "40", - [RadioColorTool .. "_error_color_shadow_g"] = "40", - [RadioColorTool .. "_error_color_shadow_r"] = "40", - [RadioColorTool .. "_header_color_a"] = "255", - [RadioColorTool .. "_header_color_b"] = "0", - [RadioColorTool .. "_header_color_foreground_a"] = "255", - [RadioColorTool .. "_header_color_foreground_b"] = "177", - [RadioColorTool .. "_header_color_foreground_g"] = "177", - [RadioColorTool .. "_header_color_foreground_r"] = "177", - [RadioColorTool .. "_header_color_g"] = "80", - [RadioColorTool .. "_header_color_r"] = "91", - [RadioColorTool .. "_header_color_shadow_a"] = "255", - [RadioColorTool .. "_header_color_shadow_b"] = "40", - [RadioColorTool .. "_header_color_shadow_g"] = "40", - [RadioColorTool .. "_header_color_shadow_r"] = "40", - [RadioColorTool .. "_main_color_a"] = "255", - [RadioColorTool .. "_main_color_b"] = "34", - [RadioColorTool .. "_main_color_g"] = "56", - [RadioColorTool .. "_main_color_r"] = "0", - [RadioColorTool .. "_spectrum_color_a"] = "255", - [RadioColorTool .. "_spectrum_color_b"] = "0", - [RadioColorTool .. "_spectrum_color_foreground_a"] = "255", - [RadioColorTool .. "_spectrum_color_foreground_b"] = "0", - [RadioColorTool .. "_spectrum_color_foreground_g"] = "128", - [RadioColorTool .. "_spectrum_color_foreground_r"] = "51", - [RadioColorTool .. "_spectrum_color_g"] = "0", - [RadioColorTool .. "_spectrum_color_icon_a"] = "255", - [RadioColorTool .. "_spectrum_color_icon_b"] = "255", - [RadioColorTool .. "_spectrum_color_icon_g"] = "255", - [RadioColorTool .. "_spectrum_color_icon_r"] = "255", - [RadioColorTool .. "_spectrum_color_r"] = "0", - [RadioColorTool .. "_spectrum_color_shadow_a"] = "255", - [RadioColorTool .. "_spectrum_color_shadow_b"] = "40", - [RadioColorTool .. "_spectrum_color_shadow_g"] = "40", - [RadioColorTool .. "_spectrum_color_shadow_r"] = "40", + ["streamradio_gui_color_global_border_color_border_a"] = "255", + ["streamradio_gui_color_global_border_color_border_b"] = "23", + ["streamradio_gui_color_global_border_color_border_g"] = "128", + ["streamradio_gui_color_global_border_color_border_r"] = "0", + ["streamradio_gui_color_global_button_color_a"] = "255", + ["streamradio_gui_color_global_button_color_b"] = "0", + ["streamradio_gui_color_global_button_color_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_disabled_b"] = "3", + ["streamradio_gui_color_global_button_color_disabled_g"] = "36", + ["streamradio_gui_color_global_button_color_disabled_r"] = "0", + ["streamradio_gui_color_global_button_color_foreground_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_b"] = "0", + ["streamradio_gui_color_global_button_color_foreground_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_b"] = "175", + ["streamradio_gui_color_global_button_color_foreground_disabled_g"] = "175", + ["streamradio_gui_color_global_button_color_foreground_disabled_r"] = "175", + ["streamradio_gui_color_global_button_color_foreground_g"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_b"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_g"] = "0", + ["streamradio_gui_color_global_button_color_foreground_hover_r"] = "0", + ["streamradio_gui_color_global_button_color_foreground_r"] = "0", + ["streamradio_gui_color_global_button_color_g"] = "132", + ["streamradio_gui_color_global_button_color_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_hover_b"] = "112", + ["streamradio_gui_color_global_button_color_hover_g"] = "175", + ["streamradio_gui_color_global_button_color_hover_r"] = "116", + ["streamradio_gui_color_global_button_color_icon_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_r"] = "255", + ["streamradio_gui_color_global_button_color_r"] = "0", + ["streamradio_gui_color_global_button_color_shadow_a"] = "255", + ["streamradio_gui_color_global_button_color_shadow_b"] = "40", + ["streamradio_gui_color_global_button_color_shadow_g"] = "40", + ["streamradio_gui_color_global_button_color_shadow_r"] = "40", + ["streamradio_gui_color_global_cursor_color_cursor_a"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_b"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_g"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_r"] = "255", + ["streamradio_gui_color_global_error_color_a"] = "255", + ["streamradio_gui_color_global_error_color_b"] = "64", + ["streamradio_gui_color_global_error_color_foreground_a"] = "255", + ["streamradio_gui_color_global_error_color_foreground_b"] = "175", + ["streamradio_gui_color_global_error_color_foreground_g"] = "175", + ["streamradio_gui_color_global_error_color_foreground_r"] = "175", + ["streamradio_gui_color_global_error_color_g"] = "64", + ["streamradio_gui_color_global_error_color_r"] = "64", + ["streamradio_gui_color_global_error_color_shadow_a"] = "255", + ["streamradio_gui_color_global_error_color_shadow_b"] = "40", + ["streamradio_gui_color_global_error_color_shadow_g"] = "40", + ["streamradio_gui_color_global_error_color_shadow_r"] = "40", + ["streamradio_gui_color_global_header_color_a"] = "255", + ["streamradio_gui_color_global_header_color_b"] = "0", + ["streamradio_gui_color_global_header_color_foreground_a"] = "255", + ["streamradio_gui_color_global_header_color_foreground_b"] = "177", + ["streamradio_gui_color_global_header_color_foreground_g"] = "177", + ["streamradio_gui_color_global_header_color_foreground_r"] = "177", + ["streamradio_gui_color_global_header_color_g"] = "80", + ["streamradio_gui_color_global_header_color_r"] = "91", + ["streamradio_gui_color_global_header_color_shadow_a"] = "255", + ["streamradio_gui_color_global_header_color_shadow_b"] = "40", + ["streamradio_gui_color_global_header_color_shadow_g"] = "40", + ["streamradio_gui_color_global_header_color_shadow_r"] = "40", + ["streamradio_gui_color_global_main_color_a"] = "255", + ["streamradio_gui_color_global_main_color_b"] = "34", + ["streamradio_gui_color_global_main_color_g"] = "56", + ["streamradio_gui_color_global_main_color_r"] = "0", + ["streamradio_gui_color_global_spectrum_color_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_b"] = "0", + ["streamradio_gui_color_global_spectrum_color_foreground_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_foreground_b"] = "0", + ["streamradio_gui_color_global_spectrum_color_foreground_g"] = "128", + ["streamradio_gui_color_global_spectrum_color_foreground_r"] = "51", + ["streamradio_gui_color_global_spectrum_color_g"] = "0", + ["streamradio_gui_color_global_spectrum_color_icon_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_b"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_g"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_r"] = "255", + ["streamradio_gui_color_global_spectrum_color_r"] = "0", + ["streamradio_gui_color_global_spectrum_color_shadow_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_shadow_b"] = "40", + ["streamradio_gui_color_global_spectrum_color_shadow_g"] = "40", + ["streamradio_gui_color_global_spectrum_color_shadow_r"] = "40", }, ["Pink"] = { - [RadioColorTool .. "_border_color_border_a"] = "255", - [RadioColorTool .. "_border_color_border_b"] = "0", - [RadioColorTool .. "_border_color_border_g"] = "0", - [RadioColorTool .. "_border_color_border_r"] = "0", - [RadioColorTool .. "_button_color_a"] = "255", - [RadioColorTool .. "_button_color_b"] = "186", - [RadioColorTool .. "_button_color_disabled_a"] = "255", - [RadioColorTool .. "_button_color_disabled_b"] = "61", - [RadioColorTool .. "_button_color_disabled_g"] = "61", - [RadioColorTool .. "_button_color_disabled_r"] = "61", - [RadioColorTool .. "_button_color_foreground_a"] = "255", - [RadioColorTool .. "_button_color_foreground_b"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_a"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_b"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_g"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_r"] = "255", - [RadioColorTool .. "_button_color_foreground_g"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_a"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_b"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_g"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_r"] = "255", - [RadioColorTool .. "_button_color_foreground_r"] = "255", - [RadioColorTool .. "_button_color_g"] = "0", - [RadioColorTool .. "_button_color_hover_a"] = "255", - [RadioColorTool .. "_button_color_hover_b"] = "0", - [RadioColorTool .. "_button_color_hover_g"] = "0", - [RadioColorTool .. "_button_color_hover_r"] = "168", - [RadioColorTool .. "_button_color_icon_a"] = "255", - [RadioColorTool .. "_button_color_icon_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_a"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_g"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_r"] = "255", - [RadioColorTool .. "_button_color_icon_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_a"] = "255", - [RadioColorTool .. "_button_color_icon_hover_b"] = "255", - [RadioColorTool .. "_button_color_icon_hover_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_r"] = "255", - [RadioColorTool .. "_button_color_icon_r"] = "255", - [RadioColorTool .. "_button_color_r"] = "174", - [RadioColorTool .. "_button_color_shadow_a"] = "255", - [RadioColorTool .. "_button_color_shadow_b"] = "91", - [RadioColorTool .. "_button_color_shadow_g"] = "91", - [RadioColorTool .. "_button_color_shadow_r"] = "91", - [RadioColorTool .. "_cursor_color_cursor_a"] = "255", - [RadioColorTool .. "_cursor_color_cursor_b"] = "255", - [RadioColorTool .. "_cursor_color_cursor_g"] = "255", - [RadioColorTool .. "_cursor_color_cursor_r"] = "255", - [RadioColorTool .. "_error_color_a"] = "255", - [RadioColorTool .. "_error_color_b"] = "29", - [RadioColorTool .. "_error_color_foreground_a"] = "255", - [RadioColorTool .. "_error_color_foreground_b"] = "255", - [RadioColorTool .. "_error_color_foreground_g"] = "255", - [RadioColorTool .. "_error_color_foreground_r"] = "255", - [RadioColorTool .. "_error_color_g"] = "29", - [RadioColorTool .. "_error_color_r"] = "93", - [RadioColorTool .. "_error_color_shadow_a"] = "255", - [RadioColorTool .. "_error_color_shadow_b"] = "91", - [RadioColorTool .. "_error_color_shadow_g"] = "91", - [RadioColorTool .. "_error_color_shadow_r"] = "91", - [RadioColorTool .. "_header_color_a"] = "255", - [RadioColorTool .. "_header_color_b"] = "71", - [RadioColorTool .. "_header_color_foreground_a"] = "255", - [RadioColorTool .. "_header_color_foreground_b"] = "255", - [RadioColorTool .. "_header_color_foreground_g"] = "255", - [RadioColorTool .. "_header_color_foreground_r"] = "255", - [RadioColorTool .. "_header_color_g"] = "0", - [RadioColorTool .. "_header_color_r"] = "102", - [RadioColorTool .. "_header_color_shadow_a"] = "255", - [RadioColorTool .. "_header_color_shadow_b"] = "91", - [RadioColorTool .. "_header_color_shadow_g"] = "91", - [RadioColorTool .. "_header_color_shadow_r"] = "91", - [RadioColorTool .. "_main_color_a"] = "255", - [RadioColorTool .. "_main_color_b"] = "125", - [RadioColorTool .. "_main_color_g"] = "0", - [RadioColorTool .. "_main_color_r"] = "102", - [RadioColorTool .. "_spectrum_color_a"] = "255", - [RadioColorTool .. "_spectrum_color_b"] = "141", - [RadioColorTool .. "_spectrum_color_foreground_a"] = "255", - [RadioColorTool .. "_spectrum_color_foreground_b"] = "152", - [RadioColorTool .. "_spectrum_color_foreground_g"] = "0", - [RadioColorTool .. "_spectrum_color_foreground_r"] = "127", - [RadioColorTool .. "_spectrum_color_g"] = "141", - [RadioColorTool .. "_spectrum_color_icon_a"] = "255", - [RadioColorTool .. "_spectrum_color_icon_b"] = "255", - [RadioColorTool .. "_spectrum_color_icon_g"] = "255", - [RadioColorTool .. "_spectrum_color_icon_r"] = "255", - [RadioColorTool .. "_spectrum_color_r"] = "141", - [RadioColorTool .. "_spectrum_color_shadow_a"] = "255", - [RadioColorTool .. "_spectrum_color_shadow_b"] = "91", - [RadioColorTool .. "_spectrum_color_shadow_g"] = "91", - [RadioColorTool .. "_spectrum_color_shadow_r"] = "91", + ["streamradio_gui_color_global_border_color_border_a"] = "255", + ["streamradio_gui_color_global_border_color_border_b"] = "0", + ["streamradio_gui_color_global_border_color_border_g"] = "0", + ["streamradio_gui_color_global_border_color_border_r"] = "0", + ["streamradio_gui_color_global_button_color_a"] = "255", + ["streamradio_gui_color_global_button_color_b"] = "186", + ["streamradio_gui_color_global_button_color_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_disabled_b"] = "61", + ["streamradio_gui_color_global_button_color_disabled_g"] = "61", + ["streamradio_gui_color_global_button_color_disabled_r"] = "61", + ["streamradio_gui_color_global_button_color_foreground_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_b"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_b"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_g"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_r"] = "255", + ["streamradio_gui_color_global_button_color_foreground_g"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_foreground_r"] = "255", + ["streamradio_gui_color_global_button_color_g"] = "0", + ["streamradio_gui_color_global_button_color_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_hover_b"] = "0", + ["streamradio_gui_color_global_button_color_hover_g"] = "0", + ["streamradio_gui_color_global_button_color_hover_r"] = "168", + ["streamradio_gui_color_global_button_color_icon_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_r"] = "255", + ["streamradio_gui_color_global_button_color_r"] = "174", + ["streamradio_gui_color_global_button_color_shadow_a"] = "255", + ["streamradio_gui_color_global_button_color_shadow_b"] = "91", + ["streamradio_gui_color_global_button_color_shadow_g"] = "91", + ["streamradio_gui_color_global_button_color_shadow_r"] = "91", + ["streamradio_gui_color_global_cursor_color_cursor_a"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_b"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_g"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_r"] = "255", + ["streamradio_gui_color_global_error_color_a"] = "255", + ["streamradio_gui_color_global_error_color_b"] = "29", + ["streamradio_gui_color_global_error_color_foreground_a"] = "255", + ["streamradio_gui_color_global_error_color_foreground_b"] = "255", + ["streamradio_gui_color_global_error_color_foreground_g"] = "255", + ["streamradio_gui_color_global_error_color_foreground_r"] = "255", + ["streamradio_gui_color_global_error_color_g"] = "29", + ["streamradio_gui_color_global_error_color_r"] = "93", + ["streamradio_gui_color_global_error_color_shadow_a"] = "255", + ["streamradio_gui_color_global_error_color_shadow_b"] = "91", + ["streamradio_gui_color_global_error_color_shadow_g"] = "91", + ["streamradio_gui_color_global_error_color_shadow_r"] = "91", + ["streamradio_gui_color_global_header_color_a"] = "255", + ["streamradio_gui_color_global_header_color_b"] = "71", + ["streamradio_gui_color_global_header_color_foreground_a"] = "255", + ["streamradio_gui_color_global_header_color_foreground_b"] = "255", + ["streamradio_gui_color_global_header_color_foreground_g"] = "255", + ["streamradio_gui_color_global_header_color_foreground_r"] = "255", + ["streamradio_gui_color_global_header_color_g"] = "0", + ["streamradio_gui_color_global_header_color_r"] = "102", + ["streamradio_gui_color_global_header_color_shadow_a"] = "255", + ["streamradio_gui_color_global_header_color_shadow_b"] = "91", + ["streamradio_gui_color_global_header_color_shadow_g"] = "91", + ["streamradio_gui_color_global_header_color_shadow_r"] = "91", + ["streamradio_gui_color_global_main_color_a"] = "255", + ["streamradio_gui_color_global_main_color_b"] = "125", + ["streamradio_gui_color_global_main_color_g"] = "0", + ["streamradio_gui_color_global_main_color_r"] = "102", + ["streamradio_gui_color_global_spectrum_color_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_b"] = "141", + ["streamradio_gui_color_global_spectrum_color_foreground_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_foreground_b"] = "152", + ["streamradio_gui_color_global_spectrum_color_foreground_g"] = "0", + ["streamradio_gui_color_global_spectrum_color_foreground_r"] = "127", + ["streamradio_gui_color_global_spectrum_color_g"] = "141", + ["streamradio_gui_color_global_spectrum_color_icon_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_b"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_g"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_r"] = "255", + ["streamradio_gui_color_global_spectrum_color_r"] = "141", + ["streamradio_gui_color_global_spectrum_color_shadow_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_shadow_b"] = "91", + ["streamradio_gui_color_global_spectrum_color_shadow_g"] = "91", + ["streamradio_gui_color_global_spectrum_color_shadow_r"] = "91", + }, + ["Steam Original"] = { + ["streamradio_gui_color_global_border_color_border_a"] = "255", + ["streamradio_gui_color_global_border_color_border_b"] = "68", + ["streamradio_gui_color_global_border_color_border_g"] = "88", + ["streamradio_gui_color_global_border_color_border_r"] = "76", + ["streamradio_gui_color_global_button_color_a"] = "255", + ["streamradio_gui_color_global_button_color_b"] = "68", + ["streamradio_gui_color_global_button_color_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_disabled_b"] = "61", + ["streamradio_gui_color_global_button_color_disabled_g"] = "61", + ["streamradio_gui_color_global_button_color_disabled_r"] = "61", + ["streamradio_gui_color_global_button_color_foreground_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_b"] = "149", + ["streamradio_gui_color_global_button_color_foreground_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_b"] = "120", + ["streamradio_gui_color_global_button_color_foreground_disabled_g"] = "120", + ["streamradio_gui_color_global_button_color_foreground_disabled_r"] = "120", + ["streamradio_gui_color_global_button_color_foreground_g"] = "170", + ["streamradio_gui_color_global_button_color_foreground_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_foreground_r"] = "160", + ["streamradio_gui_color_global_button_color_g"] = "88", + ["streamradio_gui_color_global_button_color_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_hover_b"] = "103", + ["streamradio_gui_color_global_button_color_hover_g"] = "123", + ["streamradio_gui_color_global_button_color_hover_r"] = "113", + ["streamradio_gui_color_global_button_color_icon_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_r"] = "255", + ["streamradio_gui_color_global_button_color_r"] = "76", + ["streamradio_gui_color_global_button_color_shadow_a"] = "255", + ["streamradio_gui_color_global_button_color_shadow_b"] = "34", + ["streamradio_gui_color_global_button_color_shadow_g"] = "46", + ["streamradio_gui_color_global_button_color_shadow_r"] = "40", + ["streamradio_gui_color_global_cursor_color_cursor_a"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_b"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_g"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_r"] = "255", + ["streamradio_gui_color_global_error_color_a"] = "255", + ["streamradio_gui_color_global_error_color_b"] = "46", + ["streamradio_gui_color_global_error_color_foreground_a"] = "255", + ["streamradio_gui_color_global_error_color_foreground_b"] = "80", + ["streamradio_gui_color_global_error_color_foreground_g"] = "181", + ["streamradio_gui_color_global_error_color_foreground_r"] = "196", + ["streamradio_gui_color_global_error_color_g"] = "56", + ["streamradio_gui_color_global_error_color_r"] = "99", + ["streamradio_gui_color_global_error_color_shadow_a"] = "255", + ["streamradio_gui_color_global_error_color_shadow_b"] = "34", + ["streamradio_gui_color_global_error_color_shadow_g"] = "46", + ["streamradio_gui_color_global_error_color_shadow_r"] = "40", + ["streamradio_gui_color_global_header_color_a"] = "255", + ["streamradio_gui_color_global_header_color_b"] = "68", + ["streamradio_gui_color_global_header_color_foreground_a"] = "255", + ["streamradio_gui_color_global_header_color_foreground_b"] = "80", + ["streamradio_gui_color_global_header_color_foreground_g"] = "181", + ["streamradio_gui_color_global_header_color_foreground_r"] = "196", + ["streamradio_gui_color_global_header_color_g"] = "88", + ["streamradio_gui_color_global_header_color_r"] = "76", + ["streamradio_gui_color_global_header_color_shadow_a"] = "255", + ["streamradio_gui_color_global_header_color_shadow_b"] = "34", + ["streamradio_gui_color_global_header_color_shadow_g"] = "46", + ["streamradio_gui_color_global_header_color_shadow_r"] = "40", + ["streamradio_gui_color_global_main_color_a"] = "255", + ["streamradio_gui_color_global_main_color_b"] = "46", + ["streamradio_gui_color_global_main_color_g"] = "58", + ["streamradio_gui_color_global_main_color_r"] = "52", + ["streamradio_gui_color_global_spectrum_color_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_b"] = "68", + ["streamradio_gui_color_global_spectrum_color_foreground_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_foreground_b"] = "80", + ["streamradio_gui_color_global_spectrum_color_foreground_g"] = "181", + ["streamradio_gui_color_global_spectrum_color_foreground_r"] = "196", + ["streamradio_gui_color_global_spectrum_color_g"] = "88", + ["streamradio_gui_color_global_spectrum_color_icon_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_b"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_g"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_r"] = "255", + ["streamradio_gui_color_global_spectrum_color_r"] = "76", + ["streamradio_gui_color_global_spectrum_color_shadow_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_shadow_b"] = "34", + ["streamradio_gui_color_global_spectrum_color_shadow_g"] = "46", + ["streamradio_gui_color_global_spectrum_color_shadow_r"] = "40", }, ["Warm"] = { - [RadioColorTool .. "_border_color_border_a"] = "255", - [RadioColorTool .. "_border_color_border_b"] = "0", - [RadioColorTool .. "_border_color_border_g"] = "0", - [RadioColorTool .. "_border_color_border_r"] = "0", - [RadioColorTool .. "_button_color_a"] = "255", - [RadioColorTool .. "_button_color_b"] = "0", - [RadioColorTool .. "_button_color_disabled_a"] = "255", - [RadioColorTool .. "_button_color_disabled_b"] = "132", - [RadioColorTool .. "_button_color_disabled_g"] = "132", - [RadioColorTool .. "_button_color_disabled_r"] = "132", - [RadioColorTool .. "_button_color_foreground_a"] = "255", - [RadioColorTool .. "_button_color_foreground_b"] = "190", - [RadioColorTool .. "_button_color_foreground_disabled_a"] = "255", - [RadioColorTool .. "_button_color_foreground_disabled_b"] = "0", - [RadioColorTool .. "_button_color_foreground_disabled_g"] = "0", - [RadioColorTool .. "_button_color_foreground_disabled_r"] = "0", - [RadioColorTool .. "_button_color_foreground_g"] = "190", - [RadioColorTool .. "_button_color_foreground_hover_a"] = "255", - [RadioColorTool .. "_button_color_foreground_hover_b"] = "190", - [RadioColorTool .. "_button_color_foreground_hover_g"] = "190", - [RadioColorTool .. "_button_color_foreground_hover_r"] = "190", - [RadioColorTool .. "_button_color_foreground_r"] = "190", - [RadioColorTool .. "_button_color_g"] = "35", - [RadioColorTool .. "_button_color_hover_a"] = "255", - [RadioColorTool .. "_button_color_hover_b"] = "0", - [RadioColorTool .. "_button_color_hover_g"] = "0", - [RadioColorTool .. "_button_color_hover_r"] = "79", - [RadioColorTool .. "_button_color_icon_a"] = "255", - [RadioColorTool .. "_button_color_icon_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_a"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_b"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_g"] = "255", - [RadioColorTool .. "_button_color_icon_disabled_r"] = "255", - [RadioColorTool .. "_button_color_icon_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_a"] = "255", - [RadioColorTool .. "_button_color_icon_hover_b"] = "255", - [RadioColorTool .. "_button_color_icon_hover_g"] = "255", - [RadioColorTool .. "_button_color_icon_hover_r"] = "255", - [RadioColorTool .. "_button_color_icon_r"] = "255", - [RadioColorTool .. "_button_color_r"] = "97", - [RadioColorTool .. "_button_color_shadow_a"] = "255", - [RadioColorTool .. "_button_color_shadow_b"] = "63", - [RadioColorTool .. "_button_color_shadow_g"] = "63", - [RadioColorTool .. "_button_color_shadow_r"] = "113", - [RadioColorTool .. "_cursor_color_cursor_a"] = "255", - [RadioColorTool .. "_cursor_color_cursor_b"] = "255", - [RadioColorTool .. "_cursor_color_cursor_g"] = "255", - [RadioColorTool .. "_cursor_color_cursor_r"] = "255", - [RadioColorTool .. "_error_color_a"] = "255", - [RadioColorTool .. "_error_color_b"] = "52", - [RadioColorTool .. "_error_color_foreground_a"] = "255", - [RadioColorTool .. "_error_color_foreground_b"] = "190", - [RadioColorTool .. "_error_color_foreground_g"] = "190", - [RadioColorTool .. "_error_color_foreground_r"] = "190", - [RadioColorTool .. "_error_color_g"] = "52", - [RadioColorTool .. "_error_color_r"] = "75", - [RadioColorTool .. "_error_color_shadow_a"] = "255", - [RadioColorTool .. "_error_color_shadow_b"] = "63", - [RadioColorTool .. "_error_color_shadow_g"] = "63", - [RadioColorTool .. "_error_color_shadow_r"] = "113", - [RadioColorTool .. "_header_color_a"] = "255", - [RadioColorTool .. "_header_color_b"] = "54", - [RadioColorTool .. "_header_color_foreground_a"] = "255", - [RadioColorTool .. "_header_color_foreground_b"] = "190", - [RadioColorTool .. "_header_color_foreground_g"] = "190", - [RadioColorTool .. "_header_color_foreground_r"] = "190", - [RadioColorTool .. "_header_color_g"] = "54", - [RadioColorTool .. "_header_color_r"] = "93", - [RadioColorTool .. "_header_color_shadow_a"] = "255", - [RadioColorTool .. "_header_color_shadow_b"] = "63", - [RadioColorTool .. "_header_color_shadow_g"] = "63", - [RadioColorTool .. "_header_color_shadow_r"] = "113", - [RadioColorTool .. "_main_color_a"] = "255", - [RadioColorTool .. "_main_color_b"] = "0", - [RadioColorTool .. "_main_color_g"] = "47", - [RadioColorTool .. "_main_color_r"] = "61", - [RadioColorTool .. "_spectrum_color_a"] = "255", - [RadioColorTool .. "_spectrum_color_b"] = "0", - [RadioColorTool .. "_spectrum_color_foreground_a"] = "255", - [RadioColorTool .. "_spectrum_color_foreground_b"] = "129", - [RadioColorTool .. "_spectrum_color_foreground_g"] = "129", - [RadioColorTool .. "_spectrum_color_foreground_r"] = "139", - [RadioColorTool .. "_spectrum_color_g"] = "46", - [RadioColorTool .. "_spectrum_color_icon_a"] = "255", - [RadioColorTool .. "_spectrum_color_icon_b"] = "255", - [RadioColorTool .. "_spectrum_color_icon_g"] = "255", - [RadioColorTool .. "_spectrum_color_icon_r"] = "255", - [RadioColorTool .. "_spectrum_color_r"] = "100", - [RadioColorTool .. "_spectrum_color_shadow_a"] = "255", - [RadioColorTool .. "_spectrum_color_shadow_b"] = "63", - [RadioColorTool .. "_spectrum_color_shadow_g"] = "63", - [RadioColorTool .. "_spectrum_color_shadow_r"] = "113", + ["streamradio_gui_color_global_border_color_border_a"] = "255", + ["streamradio_gui_color_global_border_color_border_b"] = "0", + ["streamradio_gui_color_global_border_color_border_g"] = "0", + ["streamradio_gui_color_global_border_color_border_r"] = "0", + ["streamradio_gui_color_global_button_color_a"] = "255", + ["streamradio_gui_color_global_button_color_b"] = "0", + ["streamradio_gui_color_global_button_color_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_disabled_b"] = "132", + ["streamradio_gui_color_global_button_color_disabled_g"] = "132", + ["streamradio_gui_color_global_button_color_disabled_r"] = "132", + ["streamradio_gui_color_global_button_color_foreground_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_b"] = "190", + ["streamradio_gui_color_global_button_color_foreground_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_disabled_b"] = "0", + ["streamradio_gui_color_global_button_color_foreground_disabled_g"] = "0", + ["streamradio_gui_color_global_button_color_foreground_disabled_r"] = "0", + ["streamradio_gui_color_global_button_color_foreground_g"] = "190", + ["streamradio_gui_color_global_button_color_foreground_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_foreground_hover_b"] = "190", + ["streamradio_gui_color_global_button_color_foreground_hover_g"] = "190", + ["streamradio_gui_color_global_button_color_foreground_hover_r"] = "190", + ["streamradio_gui_color_global_button_color_foreground_r"] = "190", + ["streamradio_gui_color_global_button_color_g"] = "35", + ["streamradio_gui_color_global_button_color_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_hover_b"] = "0", + ["streamradio_gui_color_global_button_color_hover_g"] = "0", + ["streamradio_gui_color_global_button_color_hover_r"] = "79", + ["streamradio_gui_color_global_button_color_icon_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_disabled_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_a"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_b"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_g"] = "255", + ["streamradio_gui_color_global_button_color_icon_hover_r"] = "255", + ["streamradio_gui_color_global_button_color_icon_r"] = "255", + ["streamradio_gui_color_global_button_color_r"] = "97", + ["streamradio_gui_color_global_button_color_shadow_a"] = "255", + ["streamradio_gui_color_global_button_color_shadow_b"] = "63", + ["streamradio_gui_color_global_button_color_shadow_g"] = "63", + ["streamradio_gui_color_global_button_color_shadow_r"] = "113", + ["streamradio_gui_color_global_cursor_color_cursor_a"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_b"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_g"] = "255", + ["streamradio_gui_color_global_cursor_color_cursor_r"] = "255", + ["streamradio_gui_color_global_error_color_a"] = "255", + ["streamradio_gui_color_global_error_color_b"] = "52", + ["streamradio_gui_color_global_error_color_foreground_a"] = "255", + ["streamradio_gui_color_global_error_color_foreground_b"] = "190", + ["streamradio_gui_color_global_error_color_foreground_g"] = "190", + ["streamradio_gui_color_global_error_color_foreground_r"] = "190", + ["streamradio_gui_color_global_error_color_g"] = "52", + ["streamradio_gui_color_global_error_color_r"] = "75", + ["streamradio_gui_color_global_error_color_shadow_a"] = "255", + ["streamradio_gui_color_global_error_color_shadow_b"] = "63", + ["streamradio_gui_color_global_error_color_shadow_g"] = "63", + ["streamradio_gui_color_global_error_color_shadow_r"] = "113", + ["streamradio_gui_color_global_header_color_a"] = "255", + ["streamradio_gui_color_global_header_color_b"] = "54", + ["streamradio_gui_color_global_header_color_foreground_a"] = "255", + ["streamradio_gui_color_global_header_color_foreground_b"] = "190", + ["streamradio_gui_color_global_header_color_foreground_g"] = "190", + ["streamradio_gui_color_global_header_color_foreground_r"] = "190", + ["streamradio_gui_color_global_header_color_g"] = "54", + ["streamradio_gui_color_global_header_color_r"] = "93", + ["streamradio_gui_color_global_header_color_shadow_a"] = "255", + ["streamradio_gui_color_global_header_color_shadow_b"] = "63", + ["streamradio_gui_color_global_header_color_shadow_g"] = "63", + ["streamradio_gui_color_global_header_color_shadow_r"] = "113", + ["streamradio_gui_color_global_main_color_a"] = "255", + ["streamradio_gui_color_global_main_color_b"] = "0", + ["streamradio_gui_color_global_main_color_g"] = "47", + ["streamradio_gui_color_global_main_color_r"] = "61", + ["streamradio_gui_color_global_spectrum_color_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_b"] = "0", + ["streamradio_gui_color_global_spectrum_color_foreground_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_foreground_b"] = "129", + ["streamradio_gui_color_global_spectrum_color_foreground_g"] = "129", + ["streamradio_gui_color_global_spectrum_color_foreground_r"] = "139", + ["streamradio_gui_color_global_spectrum_color_g"] = "46", + ["streamradio_gui_color_global_spectrum_color_icon_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_b"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_g"] = "255", + ["streamradio_gui_color_global_spectrum_color_icon_r"] = "255", + ["streamradio_gui_color_global_spectrum_color_r"] = "100", + ["streamradio_gui_color_global_spectrum_color_shadow_a"] = "255", + ["streamradio_gui_color_global_spectrum_color_shadow_b"] = "63", + ["streamradio_gui_color_global_spectrum_color_shadow_g"] = "63", + ["streamradio_gui_color_global_spectrum_color_shadow_r"] = "113", }, }, } function StreamRadioLib.GetPresets( Toolname, Setting ) - if ( not Toolname ) then return end - if ( not Setting ) then return end - if ( Toolname == "" ) then return end - if ( Setting == "" ) then return end - if ( not Settings[Toolname] ) then return end + if not Toolname then return end + if not Setting then return end + if Toolname == "" then return end + if Setting == "" then return end + if not g_settings[Toolname] then return end - return table.Copy(Settings[Toolname][Setting]) + return table.Copy(g_settings[Toolname][Setting]) end function StreamRadioLib.GetPresetsTable( Toolname ) - if ( not Toolname ) then return end - if ( Toolname == "" ) then return end + if not Toolname then return end + if Toolname == "" then return end - return table.Copy(Settings[Toolname]) + return table.Copy(g_settings[Toolname]) end --- Preset to lua converter ---[[ -local function createpresets( ply, cmd, args ) - local files = file.Find( "settings/presets/streamradio_gui_color_global/*.txt", "GAME" ) - file.CreateDir( "presets_test" ) - - local Data = "" - - local function addline(k, v) - Data = Data .. '\t[' .. string.gsub(k, 'streamradio_gui_color_global', 'RadioColorTool .. "', 1) .. '"] = "' .. tostring(v or "") .. '",\r\n' - end - - for _, f in pairs( files or {} ) do - local data = file.Read( "settings/presets/streamradio_gui_color_global/" .. f, "GAME" ) or "" - local Presets = util.KeyValuesToTable(data) - local name = string.sub( f, 1, -5 ) - - Data = Data .. '["' .. name .. '"] = {\r\n' - - for k, v in SortedPairs(Presets or {}) do - local len = #k - local is_t = string.sub(k, len - 1) == "_t" - - if is_t then - if name == "default" then - v = 1 - else - continue - end - end - - addline(k, v) +do + -- Preset to lua converter + local function createpresets( ply, cmd, args ) + if not LIBUtil.IsAdminForCMD(ply) then + return end - Data = Data .. "},\r\n" + local files = file.Find( "settings/presets/streamradio_gui_color_global/*.txt", "GAME" ) + local data = {} + + local settings = StreamRadioLib.GetPresetsTable(g_radioColorToolName) + + for _, f in pairs( files or {} ) do + local presetsString = file.Read( "settings/presets/streamradio_gui_color_global/" .. f, "GAME" ) or "" + if presetsString == "" then + continue + end + + local presetsData = util.KeyValuesToTable(presetsString) or {} + if table.IsEmpty(presetsData) then + continue + end + + local name = string.sub( f, 1, -5 ) + settings[name] = presetsData + end + + table.insert(data, "{") + table.insert(data, "\n") + + for name, items in SortedPairs(settings) do + table.insert(data, "\t") + table.insert(data, "[\"") + table.insert(data, name) + table.insert(data, "\"] = {") + table.insert(data, "\n") + + for k, v in SortedPairs(items) do + local len = #k + local is_t = string.sub(k, len - 1) == "_t" + + if is_t then + if name == "default" then + v = 1 + else + continue + end + end + + table.insert(data, "\t\t") + table.insert(data, "[\"") + table.insert(data, tostring(k or "")) + table.insert(data, "\"] = \"") + table.insert(data, tostring(v or "")) + table.insert(data, "\",") + table.insert(data, "\n") + end + + table.insert(data, "\t") + table.insert(data, "},") + table.insert(data, "\n") + end + + table.insert(data, "}") + table.insert(data, "\n") + + data = table.concat(data, "") + + local filePath = g_mainPath .. "/streamradio_gui_color_global.txt" + + LIBUtil.CreateDirectoryForFile(filePath) + + file.Delete(filePath) + file.Write(filePath, data) + + if file.Exists(filePath, "DATA") then + LIBPrint.Msg(ply, "Lua formated presets for 'streamradio_gui_color_global' saved to '%s'", filePath) + else + LIBPrint.Msg(ply, "Could not write to '%s'", filePath) + end end - file.Write( "presets_test/streamradio_gui_color_global.txt", Data ) -end -concommand.Add( "debug_streamradio_convertpresets", createpresets ) -- ]] + concommand.Add( "debug_streamradio_convertpresets", createpresets, nil, nil, FCVAR_CHEAT ) +end return true diff --git a/lua/streamradio_core/client/cl_skin.lua b/lua/streamradio_core/client/cl_skin.lua index fd689de..8ab10d2 100644 --- a/lua/streamradio_core/client/cl_skin.lua +++ b/lua/streamradio_core/client/cl_skin.lua @@ -3,18 +3,10 @@ local StreamRadioLib = StreamRadioLib StreamRadioLib.Skin = StreamRadioLib.Skin or {} local LIB = StreamRadioLib.Skin -local MainPath = StreamRadioLib.DataDirectory .. "/skin" -local function CreateDirForFile(filename) - local folder = string.GetPathFromFilename(filename) or "" - if folder == "" then return true end +local LIBUtil = StreamRadioLib.Util - if not file.IsDir(folder, "DATA") then - file.CreateDir(folder) - end - - return file.IsDir(folder, "DATA") -end +local g_mainPath = LIBUtil.GetMainDirectory("skin") local function IsValidFile(filename) return not file.IsDir(filename, "DATA") and file.Exists(filename, "DATA") @@ -36,10 +28,10 @@ function LIB.GetPath(name) name = tostring(name or "") if name == "" then - return MainPath .. "/" + return g_mainPath .. "/" end - local filepath = MainPath .. "/" .. name .. ".txt" + local filepath = g_mainPath .. "/" .. name .. ".txt" return filepath end @@ -64,7 +56,7 @@ function LIB.Open(name) if not skindata then return end skindata.name = name - return skindata + return skindata end local filepath = LIB.GetPath(name) @@ -77,7 +69,7 @@ function LIB.Open(name) local skindata = StreamRadioLib.JSON.Decode(skinjson) if not skindata then return end - + skindata.name = name return skindata end @@ -98,7 +90,7 @@ function LIB.Save(name, skindata) local skinjson = StreamRadioLib.JSON.Encode(skindata, true) or "" local filepath = LIB.GetPath(name) - if not CreateDirForFile(filepath) then return false end + if not LIBUtil.CreateDirectoryForFile(filepath) then return false end file.Write(filepath, skinjson) return IsValidFile(filepath) @@ -121,7 +113,7 @@ function LIB.Delete(name) end function LIB.GetList() - local files = file.Find(MainPath .. "/*.txt", "DATA", "nameasc") + local files = file.Find(g_mainPath .. "/*.txt", "DATA", "nameasc") table.insert(files, 1, "default.txt") diff --git a/lua/streamradio_core/client/cl_surface.lua b/lua/streamradio_core/client/cl_surface.lua index c8b301a..6c1eb3f 100644 --- a/lua/streamradio_core/client/cl_surface.lua +++ b/lua/streamradio_core/client/cl_surface.lua @@ -5,17 +5,6 @@ StreamRadioLib.Surface = StreamRadioLib.Surface or {} local LIB = StreamRadioLib.Surface table.Empty(LIB) -local cam = cam -local surface = surface -local string = string -local math = math -local draw = draw -local render = render -local ipairs = ipairs -local pairs = pairs -local tonumber = tonumber -local Color = Color - local g_font_template = { font = "Arial", size = 0, diff --git a/lua/streamradio_core/client/cl_vgui_editor.lua b/lua/streamradio_core/client/cl_vgui_editor.lua index a1f5f5e..2b44a6f 100644 --- a/lua/streamradio_core/client/cl_vgui_editor.lua +++ b/lua/streamradio_core/client/cl_vgui_editor.lua @@ -67,32 +67,30 @@ local RENAME_ERRORS = { [StreamRadioLib.EDITOR_ERROR_RENAME_READ] = true, } -local Disabled_Gray = Color( 140, 140, 140, 255 ) - -local function ShowError( errorheader, errortext, self, func, ... ) - if not IsValid(self) then return false end - if not self:IsVisible() then return false end +local function ShowError( errorheader, errortext, this, func, ... ) + if not IsValid(this) then return false end + if not this:IsVisible() then return false end local args = {...} Derma_Query( errortext, errorheader, "OK", function( ) - if not IsValid(self) then return end - if self:IsLoading() then return end + if not IsValid(this) then return end + if this:IsLoading() then return end if not func then return end - func(self, unpack(args)) + func(this, unpack(args)) end) return true end --Ask for save: Opens a confirmation box. -local function AsForSave( self, func, ... ) - if not IsValid(self) then return false end - if not self:IsVisible() then return false end +local function AsForSave( this, func, ... ) + if not IsValid(this) then return false end + if not this:IsVisible() then return false end if not func then return false end - if not self.m_bUnsaved then - func( self, ... ) + if not this.m_bUnsaved then + func( this, ... ) return true end @@ -100,11 +98,11 @@ local function AsForSave( self, func, ... ) Derma_Query("Are you sure to discard the changes?", "Unsaved playlist!", "Yes", function() -- Discard the changes. - if not IsValid(self) then return end - if self:IsLoading() then return end + if not IsValid(this) then return end + if this:IsLoading() then return end - self:RemoveNewFile() - func( self, unpack( args ) ) + this:RemoveNewFile() + func( this, unpack( args ) ) end, "No") -- Don't discard the changes. @@ -455,44 +453,6 @@ local function FileMenu(self, item, path, name, filetype, parentpath) MenuItem:SetImage("icon16/folder_add.png") - -- Copy/Paste -- @TODO - --[[ - if (filetype ~= StreamRadioLib.TYPE_FOLDER and not newfile) then - MenuItem = Menu:AddOption("Copy", function() - if ( not IsValid( self ) ) then return end - if ( self:IsLoading() ) then return end - - self.Clipboard = path - end) - MenuItem:SetImage("icon16/page_paste.png") - - MenuItem = Menu:AddOption("Paste", function() - if ( not IsValid( self ) ) then return end - if ( self:IsLoading() ) then return end - - StreamRadioLib.Editor.Copy( self.Clipboard, path ) - end) - MenuItem:SetImage("icon16/page_paste.png") - if ( not self.Clipboard or self.Clipboard == "" ) then - MenuItem:SetTextColor( Disabled_Gray ) -- custom disabling - MenuItem.DoClick = function() end - end - - MenuItem = Menu:AddOption("Cut", function() - if ( not IsValid( self ) ) then return end - if ( self:IsLoading() ) then return end - - StreamRadioLib.Editor.Rename( self.Clipboard, path ) - self.Clipboard = nil - end) - MenuItem:SetImage("icon16/page_paste.png") - if ( not self.Clipboard or self.Clipboard == "" ) then - MenuItem:SetTextColor( Disabled_Gray ) -- custom disabling - MenuItem.DoClick = function() end - end - end - ]] - --Delete if StreamRadioLib.Filesystem.CanDeleteFormat(filetype) and not StreamRadioLib.String.IsVirtualPath(path) then Menu:AddSpacer( ) @@ -668,7 +628,7 @@ function PANEL:Init( ) if self:IsLoading( ) then return end local url = line.streamradio_url local name = line.streamradio_name - local id = line.streamradio_id + PlaylistMenu( self, line, url, name, self.PlaylistItems["parentpath"] ) self:SelectPlaylistItem( line ) end @@ -1129,7 +1089,7 @@ function PANEL:BuildPlaylistFromTextPanel() return end - lines = self.PlaylistText:GetText() + local lines = self.PlaylistText:GetText() lines = StreamRadioLib.String.NormalizeNewlines(lines, '\n') lines = string.Explode("\n", lines, false) or {} @@ -1689,8 +1649,6 @@ function PANEL:RemovePlaylistItem(item) if not self.PlaylistItems then return false end if self:IsLoading() then return false end - local url = item.streamradio_url - local name = item.streamradio_name local id = item.streamradio_id self.PlaylistItems[id] = nil diff --git a/lua/streamradio_core/client/settings/admin.lua b/lua/streamradio_core/client/settings/admin.lua index b6a3c07..57f5bc8 100644 --- a/lua/streamradio_core/client/settings/admin.lua +++ b/lua/streamradio_core/client/settings/admin.lua @@ -13,9 +13,11 @@ LIB.g_CV_List["admin"] = {} local function AddDangerMenuPanel(CPanel) local subpanel = vgui.Create("DForm") + subpanel:SetName("Playlists rebuild setting") CPanel:AddPanel(subpanel) + subpanel:SetCookieName("streamradio_admin_playlists_rebuild") subpanel:AddItem(LIBMenu.GetWarnLabel("CAUTION: Be careful what you in this section!\nUnanticipated loss of CUSTOM playlist files can be caused by mistakes!")) @@ -99,9 +101,11 @@ end local function AddSecurityMenuPanel(CPanel) local subpanel = vgui.Create("DForm") + subpanel:SetName("Security Options") CPanel:AddPanel(subpanel) + subpanel:SetCookieName("streamradio_admin_playlists_rebuild") subpanel:AddItem(LIBMenu.GetWarnLabel("CAUTION: This affects the server security of this addon.\nOnly disable the whitelist if you know what you are doing!\nBetter you never turn this off!")) @@ -153,9 +157,11 @@ end local function AddBassMenuPanel(CPanel) local subpanel = vgui.Create("DForm") + subpanel:SetName("GM_BASS3 Options") CPanel:AddPanel(subpanel) + subpanel:SetCookieName("streamradio_admin_bass3") local hasBass = StreamRadioLib.Bass.IsInstalledOnServer() diff --git a/lua/streamradio_core/neturl.lua b/lua/streamradio_core/external/neturl.lua similarity index 100% rename from lua/streamradio_core/neturl.lua rename to lua/streamradio_core/external/neturl.lua diff --git a/lua/streamradio_core/filesystem.lua b/lua/streamradio_core/filesystem.lua index b2b6260..3164db8 100644 --- a/lua/streamradio_core/filesystem.lua +++ b/lua/streamradio_core/filesystem.lua @@ -5,11 +5,11 @@ StreamRadioLib.Filesystem = StreamRadioLib.Filesystem or {} local LIB = StreamRadioLib.Filesystem table.Empty(LIB) - local LIBString = StreamRadioLib.String +local LIBUtil = StreamRadioLib.Util -local g_playlistdir = ( StreamRadioLib.DataDirectory or "" ) .. "/playlists" -local LuaFilesystemDirectory = "streamradio_core/filesystem" +local g_playlistdir = LIBUtil.GetMainDirectory("playlists") +local g_luaFilesystemDirectory = "streamradio_core/filesystem" local g_Filesystem = {} local g_FilesystemBlacklist = {} @@ -79,15 +79,8 @@ local function AddCommonFunctions(fs) return true end - function fs:CreateDirForFile(globalpath) - local folder = string.GetPathFromFilename(globalpath) or "" - if folder == "" then return true end - - if not file.IsDir(folder, "DATA") then - file.CreateDir(folder) - end - - return file.IsDir(folder, "DATA") + function fs:CreateDirectoryForFile(globalpath) + return LIBUtil.CreateDirectoryForFile(globalpath) end function fs:IsType(globalpath, vpath) @@ -141,7 +134,7 @@ local function loadFilesystem(script) script = script or "" if script == "" then return nil end - local scriptpath = LuaFilesystemDirectory .. "/" + local scriptpath = g_luaFilesystemDirectory .. "/" local scriptfile = scriptpath .. script if not file.Exists(scriptfile, "LUA") then return nil end @@ -280,7 +273,7 @@ local function SanitizeData(data) end function LIB.Load() - local files = file.Find(LuaFilesystemDirectory .. "/*", "LUA") + local files = file.Find(g_luaFilesystemDirectory .. "/*", "LUA") local filesystems = {}; diff --git a/lua/streamradio_core/filesystem/addon-mx-radio.lua b/lua/streamradio_core/filesystem/addon-mx-radio.lua index 87b7b97..0d4dd37 100644 --- a/lua/streamradio_core/filesystem/addon-mx-radio.lua +++ b/lua/streamradio_core/filesystem/addon-mx-radio.lua @@ -162,7 +162,7 @@ end function RADIOFS:Write(globalpath, vpath, data, callback) globalpath = self._filepath - if not self:CreateDirForFile(globalpath) then + if not self:CreateDirectoryForFile(globalpath) then callback(false) return false end diff --git a/lua/streamradio_core/filesystem/addon-web-radio.lua b/lua/streamradio_core/filesystem/addon-web-radio.lua index c8c6cf1..7532796 100644 --- a/lua/streamradio_core/filesystem/addon-web-radio.lua +++ b/lua/streamradio_core/filesystem/addon-web-radio.lua @@ -160,7 +160,7 @@ end function RADIOFS:Write(globalpath, vpath, data, callback) globalpath = self._filepath - if not self:CreateDirForFile(globalpath) then + if not self:CreateDirectoryForFile(globalpath) then callback(false) return false end diff --git a/lua/streamradio_core/filesystem/json.lua b/lua/streamradio_core/filesystem/json.lua index 31bb3f7..0fc635e 100644 --- a/lua/streamradio_core/filesystem/json.lua +++ b/lua/streamradio_core/filesystem/json.lua @@ -34,7 +34,7 @@ function RADIOFS:Read(globalpath, vpath, callback) end function RADIOFS:Write(globalpath, vpath, data, callback) - if not self:CreateDirForFile(globalpath) then + if not self:CreateDirectoryForFile(globalpath) then callback(false) return false end diff --git a/lua/streamradio_core/filesystem/m3u.lua b/lua/streamradio_core/filesystem/m3u.lua index d75efa4..1374449 100644 --- a/lua/streamradio_core/filesystem/m3u.lua +++ b/lua/streamradio_core/filesystem/m3u.lua @@ -15,7 +15,7 @@ RADIOFS.loadToWhitelist = true local function decodeM3U(RawPlaylist) local RawPlaylistTab = string.Split( RawPlaylist, "\n" ) - local AdvancedM3U = string.lower( string.Trim( RawPlaylistTab[1] or "" ) ) == '#extm3u' + local AdvancedM3U = string.lower( string.Trim( RawPlaylistTab[1] or "" ) ) == "#extm3u" local Playlist = {} if not AdvancedM3U then @@ -91,7 +91,7 @@ function RADIOFS:Read(globalpath, vpath, callback) end function RADIOFS:Write(globalpath, vpath, data, callback) - if not self:CreateDirForFile(globalpath) then + if not self:CreateDirectoryForFile(globalpath) then callback(false) return false end diff --git a/lua/streamradio_core/filesystem/pls.lua b/lua/streamradio_core/filesystem/pls.lua index 3e53bb8..a36d943 100644 --- a/lua/streamradio_core/filesystem/pls.lua +++ b/lua/streamradio_core/filesystem/pls.lua @@ -27,7 +27,7 @@ local function decodePLS(RawPlaylist) end local CountHeader = string.lower( string.Trim( RawPlaylistTab[2] or "" ) ) - local Count = tonumber(string.match(CountHeader, '%s*numberofentries%s*=%s*([0-9]+)')) or 0 + local Count = tonumber(string.match(CountHeader, "%s*numberofentries%s*=%s*([0-9]+)")) or 0 local Playlist = {} @@ -36,7 +36,7 @@ local function decodePLS(RawPlaylist) end for i = 1, Count do - line = i * 3 + local line = i * 3 local UrlLine = RawPlaylistTab[line] or "" local NameLine = RawPlaylistTab[line + 1] or "" @@ -89,7 +89,7 @@ function RADIOFS:Read(globalpath, vpath, callback) end function RADIOFS:Write(globalpath, vpath, data, callback) - if not self:CreateDirForFile(globalpath) then + if not self:CreateDirectoryForFile(globalpath) then callback(false) return false end diff --git a/lua/streamradio_core/filesystem/vdf.lua b/lua/streamradio_core/filesystem/vdf.lua index 35aa823..e4dccbe 100644 --- a/lua/streamradio_core/filesystem/vdf.lua +++ b/lua/streamradio_core/filesystem/vdf.lua @@ -34,7 +34,7 @@ function RADIOFS:Read(globalpath, vpath, callback) end function RADIOFS:Write(globalpath, vpath, data, callback) - if not self:CreateDirForFile(globalpath) then + if not self:CreateDirectoryForFile(globalpath) then callback(false) return false end diff --git a/lua/streamradio_core/hook.lua b/lua/streamradio_core/hook.lua index 1ecdda8..9be3ced 100644 --- a/lua/streamradio_core/hook.lua +++ b/lua/streamradio_core/hook.lua @@ -10,7 +10,7 @@ local g_hooks = {} local g_orderCounter = 0 function LIB.GetMainHookIdentifier(eventName) - identifier = g_nameprefix .. tostring(eventName or "") + local identifier = g_nameprefix .. tostring(eventName or "") return identifier end @@ -151,7 +151,7 @@ function LIB.Remove(eventName, identifier) end function LIB.GetBenchmark(eventName) - identifier = tostring(identifier or "") + eventName = tostring(eventName or "") local hookData = g_hooks[eventName] if not hookData then diff --git a/lua/streamradio_core/init.lua b/lua/streamradio_core/init.lua index 7c6523a..4e51fc7 100644 --- a/lua/streamradio_core/init.lua +++ b/lua/streamradio_core/init.lua @@ -63,13 +63,22 @@ end LIB.DataDirectory = "streamradio" -local _, NetURL = LIB.LoadSH("streamradio_core/neturl.lua") -LIB.NetURL = NetURL +do + local status, lib = LIBLoadSH("streamradio_core/external/neturl.lua") + + LIB.NetURL = nil + + if not status then + g_ok = false + else + LIB.NetURL = lib + end +end loadSH("streamradio_core/api.lua") -loadSH("streamradio_core/util.lua") loadSH("streamradio_core/string.lua") loadSH("streamradio_core/string_accents.lua") +loadSH("streamradio_core/util.lua") loadSH("streamradio_core/url.lua") loadSH("streamradio_core/hook.lua") loadSH("streamradio_core/timedpairs.lua") diff --git a/lua/streamradio_core/json.lua b/lua/streamradio_core/json.lua index af3a398..f85267d 100644 --- a/lua/streamradio_core/json.lua +++ b/lua/streamradio_core/json.lua @@ -32,12 +32,12 @@ function LIB.Decode(json) json = string.gsub(json, "//.-\n" , "\n") -- singleline comment json = string.gsub(json, "/%*.-%*/" , "\n") -- multiline comment - json = string.gsub(json, ",([%s]*)([%]%}])","%1%2") -- trailing comma of arrays/objects + json = string.gsub(json, ",([%s]*)([%]%}])", "%1%2") -- trailing comma of arrays/objects - json = string.gsub(json, "\n[%s]*","\n") -- remove all spaces at the start of lines - json = string.gsub(json, "[%s\n]*\n","\n") -- remove all empty lines and all spaces at the end of lines - json = string.gsub(json, "^\n","") -- remove first empty new line - json = string.gsub(json, "\n$","") -- remove last empty new line + json = string.gsub(json, "\n[%s]*", "\n") -- remove all spaces at the start of lines + json = string.gsub(json, "[%s\n]*\n", "\n") -- remove all empty lines and all spaces at the end of lines + json = string.gsub(json, "^\n", "") -- remove first empty new line + json = string.gsub(json, "\n$", "") -- remove last empty new line json = string.Trim(json) diff --git a/lua/streamradio_core/language.lua b/lua/streamradio_core/language.lua index 52bdf61..7feced8 100644 --- a/lua/streamradio_core/language.lua +++ b/lua/streamradio_core/language.lua @@ -42,7 +42,7 @@ function LIB.Translate(identifier, defaultEnglishText) defaultEnglishText = tostring(defaultEnglishText or "") if #defaultEnglishText >= 1024 then - // Limit by GMod: https://github.com/Facepunch/garrysmod-issues/issues/5524 + -- Limit by GMod: https://github.com/Facepunch/garrysmod-issues/issues/5524 error("defaultEnglishText is too long (length >= 1024)") end diff --git a/lua/streamradio_core/lib.lua b/lua/streamradio_core/lib.lua index 5b60b73..39ca617 100644 --- a/lua/streamradio_core/lib.lua +++ b/lua/streamradio_core/lib.lua @@ -11,6 +11,8 @@ local CLIENT = CLIENT local StreamRadioLib = StreamRadioLib +local catchAndErrorNoHaltWithStack = StreamRadioLib.Util.CatchAndErrorNoHaltWithStack + function StreamRadioLib.IsGUIHidden(ply) if not IsValid(ply) and CLIENT then ply = LocalPlayer() @@ -142,6 +144,8 @@ function StreamRadioLib.GetControlPosDir(ent) if not IsValid(ent) then return nil end if not IsValid(camera) then return nil end + local pos, dir + if camera:IsPlayer() then pos = camera:EyePos() dir = camera:GetAimVector() @@ -158,7 +162,9 @@ end local g_PlayerTraceCache = {} local g_PlayerTraceCacheCount = 0 + local g_PlayerTrace = {} +g_PlayerTrace.filter = {} function StreamRadioLib.Trace(ent) if not IsValid(ent) and CLIENT then @@ -212,7 +218,8 @@ function StreamRadioLib.Trace(ent) tmp[entVehicle] = entVehicle tmp[cameraVehicle] = cameraVehicle - filter = {} + local filter = g_PlayerTrace.filter + table.Empty(filter) for _, filterEnt in pairs(tmp) do if not IsValid(filterEnt) then continue end @@ -435,8 +442,6 @@ local function ClearCheckPropProtectionCache() g_checkPropProtectionCacheExpire = nil end -catchAndErrorNoHaltWithStack = StreamRadioLib.Util.CatchAndErrorNoHaltWithStack - function StreamRadioLib.CheckPropProtectionAgainstUse(ent, ply) if not IsValid( ent ) then return false end if not IsValid( ply ) then return false end diff --git a/lua/streamradio_core/load.lua b/lua/streamradio_core/load.lua index a3208a8..d3be100 100644 --- a/lua/streamradio_core/load.lua +++ b/lua/streamradio_core/load.lua @@ -272,11 +272,11 @@ local function loadAddon() LIB.Loading = nil end -local g_colDefault = Color(255,255,255) -local g_colError = Color(255,128,128) -local g_colOk = Color(100,200,100) -local g_colCL = Color(255,222,137) -local g_colSV = Color(137,222,255) +local g_colDefault = Color(255, 255, 255) +local g_colError = Color(255, 128, 128) +local g_colOk = Color(100, 200, 100) +local g_colCL = Color(255, 222, 137) +local g_colSV = Color(137, 222, 255) local function printAddon() local errors = LIB.Errors diff --git a/lua/streamradio_core/models/kresopolski_radio.lua b/lua/streamradio_core/models/kresopolski_radio.lua index f99c3d9..32bb75f 100644 --- a/lua/streamradio_core/models/kresopolski_radio.lua +++ b/lua/streamradio_core/models/kresopolski_radio.lua @@ -13,7 +13,7 @@ RADIOMDL.SpawnFlatOnWall = true RADIOMDL.SoundPosOffset = Vector(0, 0, 5) RADIOMDL.SoundAngOffset = Angle(0, 0, 0) -RADIOMDL.DisplayAngles = Angle(0, 89.5, 1,5) +RADIOMDL.DisplayAngles = Angle(0, 89.5, 1, 5) -- F, R, U RADIOMDL.DisplayOffset = Vector(-4.20, -7.60, 9.38) -- Top Left diff --git a/lua/streamradio_core/models/portal_turret.lua b/lua/streamradio_core/models/portal_turret.lua index 2ad778d..7c8533d 100644 --- a/lua/streamradio_core/models/portal_turret.lua +++ b/lua/streamradio_core/models/portal_turret.lua @@ -126,8 +126,8 @@ function RADIOMDL:_StateCloseWings(ent) local RightWing = ent:LookupBone( "RT_Wing" ) or 0 local LeftWing = ent:LookupBone( "LFT_Wing" ) or 0 - local RPos = math.Clamp( ( self.RightWing or 0 ), 0, 1 ) - local LPos = math.Clamp( ( self.LeftWing or 0 ), 0, 1 ) + local RPos = math.Clamp(self.RightWing or 0, 0, 1) + local LPos = math.Clamp(self.LeftWing or 0, 0, 1) if RPos <= 0 and LPos <= 0 then self.WingOpened = false @@ -147,8 +147,8 @@ function RADIOMDL:_StateOpenWings(ent) local RightWing = ent:LookupBone( "RT_Wing" ) or 0 local LeftWing = ent:LookupBone( "LFT_Wing" ) or 0 - local RPos = math.Clamp( ( self.RightWing or 0 ), 0, 0.5 ) - local LPos = math.Clamp( ( self.LeftWing or 0 ), 0, 0.5 ) + local RPos = math.Clamp(self.RightWing or 0, 0, 0.5) + local LPos = math.Clamp(self.LeftWing or 0, 0, 0.5) if RPos >= 0.5 and LPos >= 0.5 then self.WingClosed = false @@ -328,8 +328,8 @@ function RADIOMDL:Speaker(ent, speakerlevel) local RightWing = ent:LookupBone( "RT_Wing" ) or 0 local LeftWing = ent:LookupBone( "LFT_Wing" ) or 0 - local RPos = math.Clamp( ( self.RightWing or 0 ), 0.25, 1 ) - local LPos = math.Clamp( ( self.LeftWing or 0 ), 0.25, 1 ) + local RPos = math.Clamp(self.RightWing or 0, 0.25, 1) + local LPos = math.Clamp(self.LeftWing or 0, 0.25, 1) ent:ManipulateBonePosition( RightWing, Vector( RPos * self.WingSpan, 0, 0 ) ) ent:ManipulateBonePosition( LeftWing, Vector( -LPos * self.WingSpan, 0, 0 ) ) diff --git a/lua/streamradio_core/net.lua b/lua/streamradio_core/net.lua index 0b84388..dd69cba 100644 --- a/lua/streamradio_core/net.lua +++ b/lua/streamradio_core/net.lua @@ -9,8 +9,6 @@ local LIBNetwork = StreamRadioLib.Network LIBNetwork.AddNetworkString("StaticState") LIBNetwork.AddNetworkString("Control") -LIBNetwork.AddNetworkString("PlaylistMenu") -LIBNetwork.AddNetworkString("Playlist") LIBNetwork.AddNetworkString("Editor_Return_Files") LIBNetwork.AddNetworkString("Editor_Return_Playlist") @@ -182,59 +180,6 @@ function StreamRadioLib.NetReceivePlaylistEditor( ) return url, name, parentpath end -function StreamRadioLib.NetSendFileEntry( ent, name, format, x, y ) - if ( not IsValid( ent ) ) then return end - if ( not ent.__IsRadio ) then return end - if ( not name ) then return end - if ( not format ) then return end - if ( not x ) then return end - if ( not y ) then return end - - net.WriteEntity( ent ) - net.WriteString( name ) - net.WriteUInt( format, 8 ) - net.WriteUInt( x, 4 ) - net.WriteUInt( y, 4 ) -end - -function StreamRadioLib.NetReceiveFileEntry( ) - local ent = net.ReadEntity( ) - if ( not IsValid( ent ) ) then return end - if ( not ent.__IsRadio ) then return end - - local name = net.ReadString( ) or "" - local format = net.ReadUInt( 8 ) or StreamRadioLib.TYPE_FOLDER - local x = net.ReadUInt( 4 ) or 1 - local y = net.ReadUInt( 4 ) or 1 - - return ent, name, format, x, y -end - -function StreamRadioLib.NetSendPlaylistEntry( ent, name, x, y ) - if ( not IsValid( ent ) ) then return end - if ( not ent.__IsRadio ) then return end - if ( not name ) then return end - if ( not x ) then return end - if ( not y ) then return end - - net.WriteEntity( ent ) - net.WriteString( name ) - net.WriteUInt( x, 4 ) - net.WriteUInt( y, 4 ) -end - -function StreamRadioLib.NetReceivePlaylistEntry( ) - local ent = net.ReadEntity( ) - if ( not IsValid( ent ) ) then return end - if ( not ent.__IsRadio ) then return end - - local name = net.ReadString( ) or "" - local x = net.ReadUInt( 4 ) or 1 - local y = net.ReadUInt( 4 ) or 1 - - return ent, name, x, y -end - local function networkStaticAddonStates() if SERVER then StreamRadioLib.Hook.Add("PlayerInitialSpawn", "StaticState", function(ply) diff --git a/lua/streamradio_core/print.lua b/lua/streamradio_core/print.lua index e1e664e..b9f4430 100644 --- a/lua/streamradio_core/print.lua +++ b/lua/streamradio_core/print.lua @@ -78,10 +78,10 @@ function LIB.GetPlayerString(ply) return playerStr end -local g_colorSeparator = Color(255,255,255) -local g_colorDateTime = Color(180,180,180) -local g_colorAddonName = Color(0,200,0) -local g_colorPlayer = Color(200,200,0) +local g_colorSeparator = Color(255, 255, 255) +local g_colorDateTime = Color(180, 180, 180) +local g_colorAddonName = Color(0, 200, 0) +local g_colorPlayer = Color(200, 200, 0) function LIB.Log(ply, format, ...) local msgstring = LIB.Format(format, ...) @@ -113,5 +113,30 @@ function LIB.Log(ply, format, ...) MsgN(msgstring) end +local g_oldfloat = 0 + +function LIB.PrintFloatBar( float, len, ... ) + local float = math.Clamp( float, 0, 1 ) + local str = "" + + if float >= g_oldfloat then + g_oldfloat = float + end + + local bar = math.Round(float * len) + local space = len - math.Round(float * len) + local space1 = math.Round((g_oldfloat - float) * len) + + local space2 = space - space1 - 1 + str = string.rep("#", bar) .. string.rep(" ", space1) .. (math.Round(g_oldfloat * len) < len and "|" or "") .. string.rep(" ", space2) + MsgC(Color(510 * float, 510 * (1 - float), 0, 255), str, " ", string.format("% 7.2f%%\t", float * 100), ..., "\n") + + if float < g_oldfloat then + g_oldfloat = g_oldfloat - 0.5 * RealFrameTime() + end + + return str +end + return true diff --git a/lua/streamradio_core/properties.lua b/lua/streamradio_core/properties.lua index b199dc3..28e3011 100644 --- a/lua/streamradio_core/properties.lua +++ b/lua/streamradio_core/properties.lua @@ -7,7 +7,6 @@ local LIB = StreamRadioLib.properties table.Empty(LIB) local LIBNet = StreamRadioLib.Net -local LIBNetwork = StreamRadioLib.Network local LIBError = StreamRadioLib.Error local LIBUtil = StreamRadioLib.Util @@ -236,7 +235,7 @@ local g_VolumeMenuOpen = function( self, optionPanel, ent ) optionPanel.DoClickInternal = g_emptyFunction optionPanel:SetTextInset(10, 0) - optionPanel:DockPadding(5,5,5,5) + optionPanel:DockPadding(5, 5, 5, 5) local ply = LocalPlayer() @@ -246,7 +245,7 @@ local g_VolumeMenuOpen = function( self, optionPanel, ent ) upButton:Dock(RIGHT) upButton:SetImage(StreamRadioLib.GetPNGIconPath("sound_add")) upButton:SetText("") - upButton:DockMargin(5,0,0,0) + upButton:DockMargin(5, 0, 0, 0) upButton:SetTooltip("Increase volume") upButton.DoClick = function(panel) @@ -268,7 +267,7 @@ local g_VolumeMenuOpen = function( self, optionPanel, ent ) downButton:Dock(RIGHT) downButton:SetImage(StreamRadioLib.GetPNGIconPath("sound_delete")) downButton:SetText("") - downButton:DockMargin(5,0,0,0) + downButton:DockMargin(5, 0, 0, 0) downButton:SetTooltip("Decrease volume") downButton.DoClick = function(panel) @@ -290,7 +289,7 @@ local g_VolumeMenuOpen = function( self, optionPanel, ent ) muteButton:Dock(RIGHT) muteButton:SetImage(StreamRadioLib.GetPNGIconPath("sound_mute")) muteButton:SetText("") - muteButton:DockMargin(0,0,0,0) + muteButton:DockMargin(0, 0, 0, 0) muteButton:SetTooltip("Mute") muteButton.DoClick = function(panel) @@ -312,7 +311,7 @@ local g_VolumeMenuOpen = function( self, optionPanel, ent ) unmuteButton:Dock(RIGHT) unmuteButton:SetImage(StreamRadioLib.GetPNGIconPath("sound")) unmuteButton:SetText("") - unmuteButton:DockMargin(0,0,0,0) + unmuteButton:DockMargin(0, 0, 0, 0) unmuteButton:SetTooltip("Unmute") unmuteButton.DoClick = function(panel) @@ -350,7 +349,7 @@ local g_PlaylistControlsMenuOpen = function( self, optionPanel, ent ) optionPanel.DoClickInternal = g_emptyFunction optionPanel:SetTextInset(5, 0) - optionPanel:DockPadding(5,5,5,5) + optionPanel:DockPadding(5, 5, 5, 5) local ply = LocalPlayer() @@ -360,7 +359,7 @@ local g_PlaylistControlsMenuOpen = function( self, optionPanel, ent ) playButton:Dock(LEFT) playButton:SetImage(StreamRadioLib.GetPNGIconPath("control_play")) playButton:SetText("") - playButton:DockMargin(0,0,0,0) + playButton:DockMargin(0, 0, 0, 0) playButton:SetTooltip("Play") playButton.DoClick = function(panel) @@ -382,7 +381,7 @@ local g_PlaylistControlsMenuOpen = function( self, optionPanel, ent ) pauseButton:Dock(LEFT) pauseButton:SetImage(StreamRadioLib.GetPNGIconPath("control_pause")) pauseButton:SetText("") - pauseButton:DockMargin(0,0,0,0) + pauseButton:DockMargin(0, 0, 0, 0) pauseButton:SetTooltip("Pause") pauseButton.DoClick = function(panel) @@ -404,7 +403,7 @@ local g_PlaylistControlsMenuOpen = function( self, optionPanel, ent ) stopButton:Dock(LEFT) stopButton:SetImage(StreamRadioLib.GetPNGIconPath("control_stop")) stopButton:SetText("") - stopButton:DockMargin(5,0,0,0) + stopButton:DockMargin(5, 0, 0, 0) stopButton:SetTooltip("Stop") stopButton.DoClick = function(panel) @@ -426,7 +425,7 @@ local g_PlaylistControlsMenuOpen = function( self, optionPanel, ent ) previousTrackButton:Dock(LEFT) previousTrackButton:SetImage(StreamRadioLib.GetPNGIconPath("control_start")) previousTrackButton:SetText("") - previousTrackButton:DockMargin(5,0,0,0) + previousTrackButton:DockMargin(5, 0, 0, 0) previousTrackButton:SetTooltip("Previous track") previousTrackButton.DoClick = function(panel) @@ -448,7 +447,7 @@ local g_PlaylistControlsMenuOpen = function( self, optionPanel, ent ) nextTrackButton:Dock(LEFT) nextTrackButton:SetImage(StreamRadioLib.GetPNGIconPath("control_end")) nextTrackButton:SetText("") - nextTrackButton:DockMargin(5,0,0,0) + nextTrackButton:DockMargin(5, 0, 0, 0) nextTrackButton:SetTooltip("Next track") nextTrackButton.DoClick = function(panel) @@ -470,7 +469,7 @@ local g_PlaylistControlsMenuOpen = function( self, optionPanel, ent ) rewindButton:Dock(LEFT) rewindButton:SetImage(StreamRadioLib.GetPNGIconPath("control_rewind")) rewindButton:SetText("") - rewindButton:DockMargin(5,0,0,0) + rewindButton:DockMargin(5, 0, 0, 0) rewindButton:SetTooltip("Rewind 10 seconds") rewindButton.DoClick = function(panel) @@ -492,7 +491,7 @@ local g_PlaylistControlsMenuOpen = function( self, optionPanel, ent ) fastForwardButton:Dock(LEFT) fastForwardButton:SetImage(StreamRadioLib.GetPNGIconPath("control_fastforward")) fastForwardButton:SetText("") - fastForwardButton:DockMargin(5,0,0,0) + fastForwardButton:DockMargin(5, 0, 0, 0) fastForwardButton:SetTooltip("Fast forward 10 seconds") fastForwardButton.DoClick = function(panel) diff --git a/lua/streamradio_core/tool.lua b/lua/streamradio_core/tool.lua index 5727e6e..2ae5083 100644 --- a/lua/streamradio_core/tool.lua +++ b/lua/streamradio_core/tool.lua @@ -8,25 +8,29 @@ table.Empty(LIB) local LIBNetwork = StreamRadioLib.Network local LIBNet = StreamRadioLib.Net -function LIB.GetTool(ply) +function LIB.GetTool(ply, toolmode) if not IsValid(ply) then - if SERVER then return end + if SERVER then + return nil + end + ply = LocalPlayer() end - if not IsValid(ply) then return end + if not IsValid(ply) then + return nil + end - local tool = ply:GetWeapon("gmod_tool") - if not IsValid(tool) then return end + local toolobj = ply:GetTool(toolmode) + if not toolobj then + return nil + end - if not tool.GetToolObject then return end - if not tool.GetMode then return end + if toolobj.Mode ~= toolmode then + return nil + end - local toolobj = tool:GetToolObject() - if not toolobj then return end - if toolobj.Mode ~= tool:GetMode() then return end - - return toolobj, tool + return toolobj end local g_locale_specialcases = { @@ -189,9 +193,9 @@ function LIB.Setup(toolobj) end var = tostring(var) - var = string.Replace(var, '"', "") + var = string.Replace(var, "\"", "") - ply:ConCommand(self.Mode .. "_" .. name .. ' "' .. var .. '"') + ply:ConCommand(self.Mode .. "_" .. name .. " \"" .. var .. "\"") end function toolobj:SetClientNumber(name, var) @@ -236,9 +240,11 @@ function LIB.Setup(toolobj) function toolobj:AddReadOnlyTextBox( panel, name ) local boxPanel = vgui.Create("DForm") + boxPanel:SetName(StreamRadioLib.Tool.GetLocale(self, name)) panel:AddPanel(boxPanel) + boxPanel:SetCookieName(name) local label = vgui.Create( "Streamradio_VGUI_ReadOnlyTextEntry" ) boxPanel:AddItem( label ) @@ -263,6 +269,17 @@ function LIB.Setup(toolobj) return label end + function toolobj:AddImportantLabel( panel, name, descbool ) + local label = StreamRadioLib.Menu.GetImportantLabel(StreamRadioLib.Tool.GetLocale(self, name)) + panel:AddPanel( label ) + + if descbool then + label:SetTooltip(StreamRadioLib.Tool.GetLocale(self, name .. ".desc")) + end + + return label + end + function toolobj:AddButton( panel, name, descbool ) local button = vgui.Create( "DButton" ) panel:AddPanel( button ) @@ -386,16 +403,15 @@ function LIB.Setup(toolobj) end StreamRadioLib.Timer.Until("ToolReload_" .. _toolmode, 0.1, function() - local this = LIB.GetTool() + local ply = LocalPlayer() + local this = LIB.GetTool(ply, _toolmode) if not this then return end - if this.Mode ~= _toolmode then return end local CPanel = g_reloadpanels[_toolmode] if not IsValid(CPanel) then return end if not this.BuildToolPanel then return end - CPanel._toolobj = this this.ToolPanel = CPanel local toolpresets = this.Presets or {} @@ -403,7 +419,7 @@ function LIB.Setup(toolobj) local CVars = toolpresets.CVars or {} if #CVars <= 0 then - for k,v in pairs(this.ClientConVar or {}) do + for k, v in pairs(this.ClientConVar or {}) do table.insert(CVars, this.Mode .. "_" .. k) end end @@ -474,15 +490,8 @@ function LIB.RegisterClientToolHook(tool, toolhook) local nwtoolname = net.ReadString() local bwhook = net.ReadString() - local tool = ply:GetWeapon("gmod_tool") - - if not IsValid(tool) then return end - if tool:GetMode() ~= nwtoolname then return end - - local toolobj = tool:GetToolObject() - + local toolobj = LIB.GetTool(ply, nwtoolname) if not toolobj then return end - if toolobj.Mode ~= nwtoolname then return end local func = toolobj[bwhook .. "Client"] if not func then return end diff --git a/lua/streamradio_core/url.lua b/lua/streamradio_core/url.lua index 8a2a0e5..2868888 100644 --- a/lua/streamradio_core/url.lua +++ b/lua/streamradio_core/url.lua @@ -13,8 +13,6 @@ local g_sanitizeOnlineUrlCache = LIBUtil.CreateCacheArray(2048) local g_sanitizeOfflineUrlCache = LIBUtil.CreateCacheArray(2048) local g_isOfflineURLCache = LIBUtil.CreateCacheArray(2048) -local g_customProtocols = {} - local function GetProtocol(url) url = tostring(url or "") diff --git a/lua/streamradio_core/util.lua b/lua/streamradio_core/util.lua index 98a5aaf..da15a08 100644 --- a/lua/streamradio_core/util.lua +++ b/lua/streamradio_core/util.lua @@ -5,6 +5,8 @@ StreamRadioLib.Util = StreamRadioLib.Util or {} local LIB = StreamRadioLib.Util table.Empty(LIB) +local LIBString = StreamRadioLib.String + local g_debug = false local g_debug_nextcheck = 0 @@ -172,6 +174,49 @@ function LIB.EmptyTableSafe(tab) table.Empty(tab) end +function LIB.GetMainDirectory(directory) + local baseDirectory = StreamRadioLib.DataDirectory or "" + + if baseDirectory == "" then + error("StreamRadioLib.DataDirectory is empty") + return + end + + directory = tostring(directory or "") + + local mainPath = baseDirectory .. "/" .. directory + mainPath = LIBString.NormalizeSlashes(mainPath) + + return mainPath +end + +function LIB.CreateDirectoryForFile(path) + local baseDirectory = StreamRadioLib.DataDirectory or "" + + if baseDirectory == "" then + return false + end + + path = tostring(path or "") + + if path == "" then + return false + end + + if not string.StartsWith(path, baseDirectory) then + return false + end + + local directory = string.GetPathFromFilename(path) or "" + if directory == "" then return true end + + if not file.IsDir(directory, "DATA") then + file.CreateDir(directory) + end + + return file.IsDir(directory, "DATA") +end + function LIB.DeleteFolder(path) local baseDirectory = StreamRadioLib.DataDirectory or "" diff --git a/lua/streamradio_core/vr.lua b/lua/streamradio_core/vr.lua index c60ed35..677f290 100644 --- a/lua/streamradio_core/vr.lua +++ b/lua/streamradio_core/vr.lua @@ -163,7 +163,9 @@ end local g_PlayerHandTraceCache = nil local g_PlayerHandTrace = {} + g_PlayerHandTrace.output = {} +g_PlayerHandTrace.filter = {} function LIB.TraceHand() if not CLIENT then @@ -205,12 +207,12 @@ function LIB.TraceHand() tmp[ply] = ply tmp[plyVehicle] = plyVehicle - filter = {} + local filter = g_PlayerHandTrace.filter + table.Empty(filter) for _, filterEnt in pairs(tmp) do if not IsValid(filterEnt) then continue end - - filter[#filter + 1] = filterEnt + table.insert(filter, filterEnt) end g_PlayerHandTrace.filter = filter diff --git a/lua/streamradio_core/wire.lua b/lua/streamradio_core/wire.lua index 545fd0e..b29d9e4 100644 --- a/lua/streamradio_core/wire.lua +++ b/lua/streamradio_core/wire.lua @@ -141,7 +141,9 @@ function LIB.GetUserPos(ent) return nil end - pos = ent:GetPos() + local pos = ent:GetPos() + + return pos end function LIB.GetUserPosDir(ent) diff --git a/lua/weapons/gmod_tool/stools/streamradio.lua b/lua/weapons/gmod_tool/stools/streamradio.lua index 611f0b0..0212fe1 100644 --- a/lua/weapons/gmod_tool/stools/streamradio.lua +++ b/lua/weapons/gmod_tool/stools/streamradio.lua @@ -85,7 +85,7 @@ if StreamRadioLib and StreamRadioLib.Loaded then StreamRadioLib.Tool.AddLocale(TOOL, "mute_volume_info", "NOTE: These are entity options too. So they only affect the radio they are applied on. The global settings for your client are at 'General Settings'.") StreamRadioLib.Tool.AddLocale(TOOL, "mute_volume_info.desc", "NOTE: These are entity options too. So they only affect the radio they are applied on. The global settings for your client are at 'General Settings'.") - StreamRadioLib.Tool.AddLocale(TOOL, "streamurl_whitelist_info", "Whitelist protected server: Only approved Stream URLs will work on this server!") + StreamRadioLib.Tool.AddLocale(TOOL, "streamurl_whitelist_info", "Whitelist protected server:\nOnly approved Stream URLs will work on this server!") StreamRadioLib.Tool.Setup(TOOL) else @@ -154,7 +154,7 @@ function TOOL:BuildToolPanel(CPanel) CPanel:AddPanel(StreamRadioLib.Menu.GetSpacerLine()) - self:AddLabel( CPanel, "mute_volume_info", true ) + self:AddImportantLabel( CPanel, "mute_volume_info", true ) CPanel:AddPanel(StreamRadioLib.Menu.GetSpacer()) diff --git a/lua/weapons/gmod_tool/stools/streamradio_gui_color_global.lua b/lua/weapons/gmod_tool/stools/streamradio_gui_color_global.lua index 707207b..5801316 100644 --- a/lua/weapons/gmod_tool/stools/streamradio_gui_color_global.lua +++ b/lua/weapons/gmod_tool/stools/streamradio_gui_color_global.lua @@ -380,7 +380,7 @@ function TOOL:AddModeList( panel ) listpanel:SetMultiSelect(false) local col1 = listpanel:AddColumn("No.") - local col2 = listpanel:AddColumn("Item") + listpanel:AddColumn("Item") local col3 = listpanel:AddColumn("Color") local col4 = listpanel:AddColumn("Active") @@ -400,8 +400,8 @@ function TOOL:AddModeList( panel ) local data = self:GetColors(true) local changed = false - if ( input.IsMouseDown( MOUSE_LEFT ) ) then return end - if ( listpanel.NextConVarCheck > RealTime() ) then return end + if input.IsMouseDown(MOUSE_LEFT) then return end + if listpanel.NextConVarCheck > RealTime() then return end listpanel.NextConVarCheck = RealTime() + 0.2 @@ -535,7 +535,6 @@ function TOOL:GetAimedGui(trace) if not trace.Hit then return end local ent = trace.Entity - local owner = self:GetOwner() if not self:IsValidGUIRadio(ent) then return end @@ -548,7 +547,7 @@ end function TOOL:LeftClick(trace) if not self.ToolLibLoaded then return end - local entgui, ent = self:GetAimedGui(trace) + local entgui = self:GetAimedGui(trace) if not IsValid(entgui) then return false end if CLIENT then return true end @@ -560,7 +559,7 @@ end function TOOL:RightClick(trace) if not self.ToolLibLoaded then return end - local entgui, ent = self:GetAimedGui(trace) + local entgui = self:GetAimedGui(trace) if not IsValid(entgui) then return false end if CLIENT then return true end @@ -572,7 +571,7 @@ end function TOOL:LeftClickClient() if not self.ToolLibLoaded then return end - local entgui, ent = self:GetAimedGui() + local entgui = self:GetAimedGui() if not IsValid(entgui) then return end local data = self:GetColors() @@ -591,7 +590,7 @@ end function TOOL:RightClickClient() if not self.ToolLibLoaded then return end - local entgui, ent = self:GetAimedGui() + local entgui = self:GetAimedGui() if not IsValid(entgui) then return end local skindata = {} @@ -599,6 +598,7 @@ function TOOL:RightClickClient() for varname, skinvar in pairs(self.SkinVars) do local hierarchies = skinvar.hierarchies or {} local hrvarname = skinvar.name + local value = nil for _, skinhierarchy in pairs(hierarchies) do local panels = entgui:GetPanelsBySkinIdentifyer(skinhierarchy) @@ -622,7 +622,7 @@ end function TOOL:Reload(trace) if not self.ToolLibLoaded then return end - local entgui, ent = self:GetAimedGui() + local entgui = self:GetAimedGui() if not IsValid(entgui) then return false end if CLIENT then return true end @@ -634,7 +634,7 @@ end function TOOL:ReloadClient() if not self.ToolLibLoaded then return end - local entgui, ent = self:GetAimedGui() + local entgui = self:GetAimedGui() if not IsValid(entgui) then return end entgui:SetSkinOnServer(StreamRadioLib.Skin.GetDefaultSkin(), false) diff --git a/lua/weapons/gmod_tool/stools/streamradio_gui_color_individual.lua b/lua/weapons/gmod_tool/stools/streamradio_gui_color_individual.lua index f9269ed..0db76fa 100644 --- a/lua/weapons/gmod_tool/stools/streamradio_gui_color_individual.lua +++ b/lua/weapons/gmod_tool/stools/streamradio_gui_color_individual.lua @@ -28,7 +28,7 @@ TOOL.SkinVars = { }, color_hover = { - default = Color(192,192,192, 255), + default = Color(192, 192, 192, 255), order = 5, }, @@ -43,7 +43,7 @@ TOOL.SkinVars = { }, color_disabled = { - default = Color(128,128,128, 255), + default = Color(128, 128, 128, 255), order = 8, }, @@ -178,7 +178,7 @@ function TOOL:AddModeList( panel ) listpanel:SetMultiSelect(false) local col1 = listpanel:AddColumn("No.") - local col2 = listpanel:AddColumn("Item") + listpanel:AddColumn("Item") local col3 = listpanel:AddColumn("Color") local col4 = listpanel:AddColumn("Active") @@ -410,7 +410,7 @@ end function TOOL:LeftClick(trace) if not self.ToolLibLoaded then return end - local aimedpanel, entgui, ent = self:GetAimedObject(trace) + local aimedpanel = self:GetAimedObject(trace) if not IsValid(aimedpanel) then return false end if CLIENT then return true end @@ -421,7 +421,7 @@ end function TOOL:RightClick(trace) if not self.ToolLibLoaded then return end - local aimedpanel, entgui, ent = self:GetAimedObject(trace) + local aimedpanel = self:GetAimedObject(trace) if not IsValid(aimedpanel) then return false end if CLIENT then return true end @@ -432,7 +432,7 @@ end function TOOL:LeftClickClient() if not self.ToolLibLoaded then return end - local aimedpanel, entgui, ent = self:GetAimedObject() + local aimedpanel, entgui = self:GetAimedObject() if not IsValid(aimedpanel) then return end local skinhierarchy = aimedpanel:GetSkinIdentifyerHierarchy() @@ -454,7 +454,7 @@ end function TOOL:RightClickClient() if not self.ToolLibLoaded then return end - local aimedpanel, entgui, ent = self:GetAimedObject() + local aimedpanel, entgui = self:GetAimedObject() if not IsValid(aimedpanel) then return end local skindata = aimedpanel:GetSkinValues() or {} @@ -489,7 +489,7 @@ function TOOL:Think() if not self.ToolLibLoaded then return end if SERVER then return end - local aimedpanel, entgui, ent = self:GetAimedObject() + local aimedpanel, entgui = self:GetAimedObject() if not IsValid(aimedpanel) then if IsValid(self.highlighter_hover) then self.highlighter_hover:Remove() diff --git a/lua/weapons/gmod_tool/stools/streamradio_gui_skin.lua b/lua/weapons/gmod_tool/stools/streamradio_gui_skin.lua index c7410ea..f5bef67 100644 --- a/lua/weapons/gmod_tool/stools/streamradio_gui_skin.lua +++ b/lua/weapons/gmod_tool/stools/streamradio_gui_skin.lua @@ -99,7 +99,7 @@ function TOOL:AddSkinList( panel ) listpanel:SetMultiSelect(false) local col1 = listpanel:AddColumn("No.") - local col2 = listpanel:AddColumn("Name") + listpanel:AddColumn("Name") local col3 = listpanel:AddColumn("Open") col1:SetFixedWidth(30) @@ -265,8 +265,6 @@ function TOOL:AddFileControlPanel( panel ) local name = bgpanel:GetFile() checkfile(name) - local filepath = StreamRadioLib.Skin.GetPath(name) - Derma_Query( StreamRadioLib.Tool.GetLocaleTranslation(self, "file.delete.desc"), StreamRadioLib.Tool.GetLocaleTranslation(self, "file.delete"), @@ -487,19 +485,18 @@ function TOOL:GetAimedGui(trace) if not trace.Hit then return end local ent = trace.Entity - local owner = self:GetOwner() if not self:IsValidGUIRadio(ent) then return end local entgui = ent:GetGUI() if not IsValid(entgui) then return end - return ent, entgui + return entgui, ent end function TOOL:LeftClick(trace) if not self.ToolLibLoaded then return end - local ent, entgui = self:GetAimedGui(trace) + local entgui = self:GetAimedGui(trace) if not IsValid(entgui) then return false end if CLIENT then return true end @@ -510,7 +507,7 @@ end function TOOL:LeftClickClient() if not self.ToolLibLoaded then return end - local ent, entgui = self:GetAimedGui() + local entgui = self:GetAimedGui() if not IsValid(entgui) then return false end entgui:SetSkinOnServer(self:GetSkin(), false) @@ -518,7 +515,7 @@ end function TOOL:RightClick(trace) if not self.ToolLibLoaded then return end - local ent, entgui = self:GetAimedGui(trace) + local entgui = self:GetAimedGui(trace) if not IsValid(entgui) then return false end if CLIENT then return true end @@ -529,7 +526,7 @@ end function TOOL:RightClickClient() if not self.ToolLibLoaded then return end - local ent, entgui = self:GetAimedGui() + local entgui = self:GetAimedGui() if not IsValid(entgui) then return false end self:SetSkin(entgui:GetSkin()) @@ -537,7 +534,7 @@ end function TOOL:Reload(trace) if not self.ToolLibLoaded then return end - local ent, entgui = self:GetAimedGui(trace) + local entgui = self:GetAimedGui(trace) if not IsValid(entgui) then return false end if CLIENT then return true end @@ -548,7 +545,7 @@ end function TOOL:ReloadClient() if not self.ToolLibLoaded then return end - local ent, entgui = self:GetAimedGui() + local entgui = self:GetAimedGui() if not IsValid(entgui) then return false end entgui:SetSkinOnServer(StreamRadioLib.Skin.GetDefaultSkin(), false) diff --git a/materials/3dstreamradio/_data/version.vmt b/materials/3dstreamradio/_data/version.vmt index c718d24..5f6328e 100644 --- a/materials/3dstreamradio/_data/version.vmt +++ b/materials/3dstreamradio/_data/version.vmt @@ -1,2 +1,2 @@ -435 -1698622804 +436 +1699498359