diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/shared.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/shared.lua index dd320b7181..1f5b1ab44f 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/shared.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/shared.lua @@ -17,7 +17,6 @@ SWEP.Spawnable = true util.PrecacheModel( SWEP.ViewModel ) util.PrecacheModel( SWEP.WorldModel ) --- Todo, make/find a better sound. SWEP.ShootSound = Sound( "Airboat.FireGunRevDown" ) SWEP.Tool = {} diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stool_cl.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stool_cl.lua index c2a7c863b9..fc5039ec36 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stool_cl.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stool_cl.lua @@ -14,7 +14,7 @@ function ToolObj:RebuildControlPanel( ... ) local cPanel = controlpanel.Get( self.Mode ) if ( !cPanel ) then ErrorNoHalt( "Couldn't find control panel to rebuild!" ) return end - cPanel:ClearControls() + cPanel:Clear() self.BuildCPanel( cPanel, ... ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/axis.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/axis.lua index 0d408cb3cb..a924d355b4 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/axis.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/axis.lua @@ -219,13 +219,19 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.axis.help" } ) + CPanel:Help( "#tool.axis.help" ) + CPanel:ToolPresets( "axis", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "axis", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:NumSlider( "#tool.forcelimit", "axis_forcelimit", 0, 50000, 2 ) + CPanel:ControlHelp( "#tool.forcelimit.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.forcelimit", Command = "axis_forcelimit", Type = "Float", Min = 0, Max = 50000, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.torquelimit", Command = "axis_torquelimit", Type = "Float", Min = 0, Max = 50000, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.hingefriction", Command = "axis_hingefriction", Type = "Float", Min = 0, Max = 200, Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.nocollide", Command = "axis_nocollide", Help = true } ) + CPanel:NumSlider( "#tool.torquelimit", "axis_torquelimit", 0, 50000, 2 ) + CPanel:ControlHelp( "#tool.torquelimit.help" ) + + CPanel:NumSlider( "#tool.hingefriction", "axis_hingefriction", 0, 200, 2 ) + CPanel:ControlHelp( "#tool.hingefriction.help" ) + + CPanel:CheckBox( "#tool.nocollide", "axis_nocollide" ) + CPanel:ControlHelp( "#tool.nocollide.help" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/balloon.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/balloon.lua index 18da5c5470..2aa51d7faa 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/balloon.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/balloon.lua @@ -218,15 +218,17 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.balloon.help" } ) + CPanel:Help( "#tool.balloon.help" ) + CPanel:ToolPresets( "balloon", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "balloon", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:NumSlider( "#tool.balloon.ropelength", "balloon_ropelength", 5, 1000, 2 ) - CPanel:AddControl( "Slider", { Label = "#tool.balloon.ropelength", Type = "Float", Command = "balloon_ropelength", Min = 5, Max = 1000 } ) - CPanel:AddControl( "Slider", { Label = "#tool.balloon.force", Type = "Float", Command = "balloon_force", Min = -1000, Max = 2000, Help = true } ) - CPanel:AddControl( "Color", { Label = "#tool.balloon.color", Red = "balloon_r", Green = "balloon_g", Blue = "balloon_b" } ) + CPanel:NumSlider( "#tool.balloon.force", "balloon_force", -1000, 2000, 2 ) + CPanel:ControlHelp( "#tool.balloon.force.help" ) - CPanel:AddControl( "PropSelect", { Label = "#tool.balloon.model", ConVar = "balloon_model", Height = 0, ModelsTable = list.Get( "BalloonModels" ) } ) + CPanel:ColorPicker( "#tool.balloon.color", "balloon_r", "balloon_g", "balloon_b" ) + + CPanel:PropSelect( "#tool.balloon.model", "balloon_model", list.Get( "BalloonModels" ), 0 ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/ballsocket.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/ballsocket.lua index bbf99c1dc6..101471d45c 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/ballsocket.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/ballsocket.lua @@ -91,12 +91,16 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.ballsocket.help" } ) + CPanel:Help( "#tool.ballsocket.help" ) + CPanel:ToolPresets( "ballsocket", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "ballsocket", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:NumSlider( "#tool.forcelimit", "ballsocket_forcelimit", 0, 50000, 2 ) + CPanel:ControlHelp( "#tool.forcelimit.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.forcelimit", Command = "ballsocket_forcelimit", Type = "Float", Min = 0, Max = 50000, Help = true } ) - --CPanel:AddControl( "Slider", { Label = "#tool.torquelimit", Command = "ballsocket_torquelimit", Type = "Float", Min = 0, Max = 50000, Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.nocollide", Command = "ballsocket_nocollide", Help = true } ) + --CPanel:NumSlider( "#tool.torquelimit", "ballsocket_torquelimit", 0, 50000, 2 ) + --CPanel:ControlHelp( "#tool.torquelimit.help" ) + + CPanel:CheckBox( "#tool.nocollide", "ballsocket_nocollide" ) + CPanel:ControlHelp( "#tool.nocollide.help" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/button.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/button.lua index 72b13bc4ce..6f3f891dc0 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/button.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/button.lua @@ -171,17 +171,17 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.button.desc" } ) + CPanel:Help( "#tool.button.desc" ) + CPanel:ToolPresets( "button", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "button", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.button.key", "button_keygroup" ) - CPanel:AddControl( "Numpad", { Label = "#tool.button.key", Command = "button_keygroup" } ) + CPanel:TextEntry( "#tool.button.text", "button_description" ) - CPanel:AddControl( "TextBox", { Label = "#tool.button.text", Command = "button_description", MaxLenth = "20" } ) + CPanel:CheckBox( "#tool.button.toggle", "button_toggle" ) + CPanel:ControlHelp( "#tool.button.toggle.help" ) - CPanel:AddControl( "CheckBox", { Label = "#tool.button.toggle", Command = "button_toggle", Help = true } ) - - CPanel:AddControl( "PropSelect", { Label = "#tool.button.model", ConVar = "button_model", Height = 0, Models = list.Get( "ButtonModels" ) } ) + CPanel:PropSelect( "#tool.button.model", "button_model", list.Get( "ButtonModels" ), 0 ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/camera.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/camera.lua index 60dcdd9806..15a12c7513 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/camera.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/camera.lua @@ -141,10 +141,13 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "camera", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:ToolPresets( "camera", ConVarsDefault ) - CPanel:AddControl( "Numpad", { Label = "#tool.camera.key", Command = "camera_key" } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.camera.static", Command = "camera_locked", Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.toggle", Command = "camera_toggle" } ) + CPanel:KeyBinder( "#tool.camera.key", "camera_key" ) + + CPanel:CheckBox( "#tool.camera.static", "camera_locked" ) + CPanel:ControlHelp( "#tool.camera.static.help" ) + + CPanel:CheckBox( "#tool.toggle", "camera_toggle" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/colour.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/colour.lua index fbde3ac72a..3fe2e116ed 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/colour.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/colour.lua @@ -94,14 +94,13 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.colour.desc" } ) - + CPanel:Help( "#tool.colour.desc" ) CPanel:ToolPresets( "colour", ConVarsDefault ) CPanel:ColorPicker( "#tool.colour.color", "colour_r", "colour_g", "colour_b", "colour_a" ) - CPanel:AddControl( "ListBox", { Label = "#tool.colour.mode", Options = list.Get( "RenderModes" ) } ) - CPanel:AddControl( "ListBox", { Label = "#tool.colour.fx", Options = list.Get( "RenderFX" ) } ) + CPanel:ComboBoxMulti( "#tool.colour.mode", list.Get( "RenderModes" ) ) + CPanel:ComboBoxMulti( "#tool.colour.fx", list.Get( "RenderFX" ) ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/duplicator.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/duplicator.lua index 3e598990a8..5b0fa35312 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/duplicator.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/duplicator.lua @@ -139,11 +139,11 @@ if ( CLIENT ) then -- function TOOL.BuildCPanel( CPanel, tool ) - CPanel:ClearControls() + CPanel:Clear() - CPanel:AddControl( "Header", { Description = "#tool.duplicator.desc" } ) + CPanel:Help( "#tool.duplicator.desc" ) - CPanel:AddControl( "Button", { Text = "#tool.duplicator.showsaves", Command = "dupe_show" } ) + CPanel:Button( "#tool.duplicator.showsaves", "dupe_show" ) if ( !tool && IsValid( LocalPlayer() ) ) then tool = LocalPlayer():GetTool( "duplicator" ) end if ( !tool || !tool.CurrentDupeName ) then return end @@ -151,14 +151,14 @@ if ( CLIENT ) then local info = "Name: " .. tool.CurrentDupeName info = info .. "\nEntities: " .. tool.CurrentDupeEntCount - CPanel:AddControl( "Label", { Text = info } ) + CPanel:Help( info ) if ( tool.CurrentDupeWSIDs && #tool.CurrentDupeWSIDs > 0 ) then - CPanel:AddControl( "Label", { Text = "Required workshop content:" } ) + CPanel:Help( "Required workshop content:" ) for _, wsid in pairs( tool.CurrentDupeWSIDs ) do local subbed = "" if ( steamworks.IsSubscribed( wsid ) ) then subbed = " (Subscribed)" end - local b = CPanel:AddControl( "Button", { Text = wsid .. subbed } ) + local b = CPanel:Button( wsid .. subbed ) b.DoClick = function( s, ... ) steamworks.ViewFile( wsid ) end steamworks.FileInfo( wsid, function( result ) if ( !IsValid( b ) ) then return end @@ -168,7 +168,7 @@ if ( CLIENT ) then end if ( tool.CurrentDupeCanSave ) then - local b = CPanel:AddControl( "Button", { Text = "#dupes.savedupe", Command = "dupe_save" } ) + local b = CPanel:Button( "#dupes.savedupe", "dupe_save" ) hook.Add( "DupeSaveUnavailable", b, function() b:Remove() end ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/dynamite.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/dynamite.lua index 0d990cafc4..8b511a78f3 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/dynamite.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/dynamite.lua @@ -162,16 +162,20 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.dynamite.help" } ) + CPanel:Help( "#tool.dynamite.help" ) + CPanel:ToolPresets( "dynamite", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "dynamite", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.dynamite.explode", "dynamite_group" ) - CPanel:AddControl( "Numpad", { Label = "#tool.dynamite.explode", Command = "dynamite_group" } ) - CPanel:AddControl( "Slider", { Label = "#tool.dynamite.damage", Command = "dynamite_damage", Type = "Float", Min = 0, Max = 500, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.dynamite.delay", Command = "dynamite_delay", Type = "Float", Min = 0, Max = 10, Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.dynamite.remove", Command = "dynamite_remove" } ) + CPanel:NumSlider( "#tool.dynamite.damage", "dynamite_damage", 0, 500, 2 ) + CPanel:ControlHelp( "#tool.dynamite.damage.help" ) - CPanel:AddControl( "PropSelect", { Label = "#tool.dynamite.model", ConVar = "dynamite_model", Height = 0, Models = list.Get( "DynamiteModels" ) } ) + CPanel:NumSlider( "#tool.dynamite.delay", "dynamite_delay", 0, 10, 2 ) + CPanel:ControlHelp( "#tool.dynamite.delay.help" ) + + CPanel:CheckBox( "#tool.dynamite.remove", "dynamite_remove" ) + + CPanel:PropSelect( "#tool.dynamite.model", "dynamite_model", list.Get( "DynamiteModels" ), 0 ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/editentity.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/editentity.lua index 422007f2c9..7ba76fc6ea 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/editentity.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/editentity.lua @@ -36,7 +36,7 @@ function TOOL:Think() local CPanel = controlpanel.Get( "editentity" ) if ( !CPanel ) then return end - CPanel:ClearControls() + CPanel:Clear() self.BuildCPanel( CPanel, CurrentEditing ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/elastic.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/elastic.lua index bb56dcacad..5584e0f4d1 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/elastic.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/elastic.lua @@ -107,17 +107,25 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.elastic.help" } ) + CPanel:Help( "#tool.elastic.help" ) + CPanel:ToolPresets( "elastic", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "elastic", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:NumSlider( "#tool.elastic.constant", "elastic_constant", 0, 4000, 2 ) + CPanel:ControlHelp( "#tool.elastic.constant.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.elastic.constant", Command = "elastic_constant", Type = "Float", Min = 0, Max = 4000, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.elastic.damping", Command = "elastic_damping", Type = "Float", Min = 0, Max = 50, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.elastic.rdamping", Command = "elastic_rdamping", Type = "Float", Min = 0, Max = 1, Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.elastic.stretchonly", Command = "elastic_stretch_only", Help = true } ) + CPanel:NumSlider( "#tool.elastic.damping", "elastic_damping", 0, 50, 2 ) + CPanel:ControlHelp( "#tool.elastic.damping.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.elastic.width", Command = "elastic_width", Type = "Float", Min = 0, Max = 20 } ) - CPanel:AddControl( "RopeMaterial", { Label = "#tool.elastic.material", ConVar = "elastic_material" } ) - CPanel:AddControl( "Color", { Label = "#tool.elastic.color", Red = "elastic_color_r", Green = "elastic_color_g", Blue = "elastic_color_b" } ) + CPanel:NumSlider( "#tool.elastic.rdamping", "elastic_rdamping", 0, 1, 2 ) + CPanel:ControlHelp( "#tool.elastic.rdamping.help" ) + + CPanel:CheckBox( "#tool.elastic.stretchonly", "elastic_stretch_only" ) + CPanel:ControlHelp( "#tool.elastic.stretchonly.help" ) + + CPanel:NumSlider( "#tool.elastic.width", "elastic_width", 0, 20, 2 ) + + CPanel:RopeSelect( "elastic_material" ) + + CPanel:ColorPicker( "#tool.elastic.color", "elastic_color_r", "elastic_color_g", "elastic_color_b" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/emitter.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/emitter.lua index 08682ab44e..7f943de913 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/emitter.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/emitter.lua @@ -184,17 +184,17 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.emitter.desc" } ) + CPanel:Help( "#tool.emitter.desc" ) + CPanel:ToolPresets( "emitter", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "emitter", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.emitter.key", "emitter_key" ) + CPanel:NumSlider( "#tool.emitter.delay", "emitter_delay", 0.01, 2, 2 ) - CPanel:AddControl( "Numpad", { Label = "#tool.emitter.key", Command = "emitter_key" } ) + CPanel:NumSlider( "#tool.emitter.scale", "emitter_scale", 0, 6, 2 ) + CPanel:ControlHelp( "#tool.emitter.scale.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.emitter.delay", Command = "emitter_delay", Type = "Float", Min = 0.01, Max = 2 } ) - CPanel:AddControl( "Slider", { Label = "#tool.emitter.scale", Command = "emitter_scale", Type = "Float", Min = 0, Max = 6, Help = true } ) - - CPanel:AddControl( "Checkbox", { Label = "#tool.emitter.toggle", Command = "emitter_toggle" } ) - CPanel:AddControl( "Checkbox", { Label = "#tool.emitter.starton", Command = "emitter_starton" } ) + CPanel:CheckBox( "#tool.emitter.toggle", "emitter_toggle" ) + CPanel:CheckBox( "#tool.emitter.starton", "emitter_starton" ) local matselect = CPanel:MatSelect( "emitter_effect", nil, true, 0.25, 0.25 ) for k, v in pairs( list.Get( "EffectType" ) ) do diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/eyeposer.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/eyeposer.lua index 427a185de4..6cce72c12d 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/eyeposer.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/eyeposer.lua @@ -251,7 +251,7 @@ function TOOL:DrawHUD() local Leye = ( attachment.Pos + attachment.Ang:Right() * 1.5 ):ToScreen() local Reye = ( attachment.Pos - attachment.Ang:Right() * 1.5 ):ToScreen() - -- Todo, make the line look less like ass + -- TODO: make the line look less like ass local scrhit = trace.HitPos:ToScreen() local x = scrhit.x local y = scrhit.y @@ -295,7 +295,7 @@ end function TOOL.BuildCPanel( CPanel, hasEntity ) - CPanel:AddControl( "Header", { Description = "#tool.eyeposer.desc" } ) + CPanel:Help( "#tool.eyeposer.desc" ) if ( hasEntity ) then @@ -325,10 +325,11 @@ function TOOL.BuildCPanel( CPanel, hasEntity ) surface.DrawRect( w / 2 - 2, h / 2 - 2, 5, 5 ) end - CPanel:AddControl( "Slider", { Label = "#tool.eyeposer.strabismus", Command = "eyeposer_strabismus", Type = "Float", Min = -1, Max = 1, Default = 0 } ) + CPanel:NumSlider( "#tool.eyeposer.strabismus", "eyeposer_strabismus", -1, 1, 2 ) end - CPanel:AddControl( "Slider", { Label = "#tool.eyeposer.size_eyes", Command = "r_eyesize", Type = "Float", Min = -0.5, Max = 2, Help = true, Default = 0 } ) + CPanel:NumSlider( "#tool.eyeposer.size_eyes", "r_eyesize", -0.5, 2, 2 ) + CPanel:ControlHelp( "#tool.eyeposer.size_eyes.help" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/faceposer.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/faceposer.lua index d56d700f1e..1d82b0c1c8 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/faceposer.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/faceposer.lua @@ -176,11 +176,11 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel, faceEntity ) - CPanel:AddControl( "Header", { Description = "#tool.faceposer.desc" } ) + CPanel:Help( "#tool.faceposer.desc" ) if ( !IsValid( faceEntity ) || faceEntity:GetFlexNum() == 0 ) then return end - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "face", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:ToolPresets( "face", ConVarsDefault ) local QuickFace = vgui.Create( "MatSelect", CPanel ) QuickFace:SetItemWidth( 64 ) @@ -335,10 +335,12 @@ function TOOL.BuildCPanel( CPanel, faceEntity ) CPanel:AddItem( QuickFace ) - CPanel:AddControl( "Slider", { Label = "#tool.faceposer.scale", Command = "faceposer_scale", Type = "Float", Min = -5, Max = 5, Help = true, Default = 1 } ):SetHeight( 16 ) - CPanel:AddControl( "Button", { Text = "#tool.faceposer.randomize", Command = "faceposer_randomize" } ) + CPanel:NumSlider( "#tool.faceposer.scale", "faceposer_scale", -5, 5, 2 ):SetHeight( 16 ) + CPanel:ControlHelp( "#tool.faceposer.scale.help" ) - local filter = CPanel:AddControl( "TextBox", { Label = "#spawnmenu.quick_filter_tool" } ) + CPanel:Button( "#tool.faceposer.randomize", "faceposer_randomize" ) + + local filter = CPanel:TextEntry( "#spawnmenu.quick_filter_tool" ) filter:SetUpdateOnType( true ) -- Group flex controllers by their type.. diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/finger.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/finger.lua index c7039ebad7..9c94f38b82 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/finger.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/finger.lua @@ -571,11 +571,11 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel, ent, hand ) - CPanel:AddControl( "Header", { Description = "#tool.finger.desc" } ) + CPanel:Help( "#tool.finger.desc" ) if ( !IsValid( ent ) ) then return end - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "finger", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:ToolPresets( "finger", ConVarsDefault ) SetupFingers( ent ) @@ -584,9 +584,11 @@ function TOOL.BuildCPanel( CPanel, ent, hand ) -- Detect mitten hands local NumVars = table.Count( ent.FingerIndex ) - CPanel:AddControl( "fingerposer", { hand = hand, numvars = NumVars } ) + local fingerPoser = vgui.Create( "fingerposer", CPanel ) + fingerPoser:ControlValues( { hand = hand, numvars = NumVars } ) + CPanel:AddPanel( fingerPoser ) - CPanel:AddControl( "Checkbox", { Label = "#tool.finger.restrict_axis", Command = "finger_restrict" } ) + CPanel:CheckBox( "#tool.finger.restrict_axis", "finger_restrict" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/hoverball.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/hoverball.lua index 7a2741e0b2..f3b1b683cf 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/hoverball.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/hoverball.lua @@ -219,17 +219,22 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.hoverball.help" } ) + CPanel:Help( "#tool.hoverball.help" ) + CPanel:ToolPresets( "hoverball", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "hoverball", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.hoverball.up", "hoverball_keyup", "#tool.hoverball.down", "hoverball_keydn" ) + CPanel:KeyBinder( "#tool.toggle", "hoverball_keyon" ) - CPanel:AddControl( "Numpad", { Label = "#tool.hoverball.up", Command = "hoverball_keyup", Label2 = "#tool.hoverball.down", Command2 = "hoverball_keydn" } ) - CPanel:AddControl( "Numpad", { Label = "#tool.toggle", Command = "hoverball_keyon" } ) - CPanel:AddControl( "Slider", { Label = "#tool.hoverball.speed", Command = "hoverball_speed", Type = "Float", Min = 0, Max = 20, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.hoverball.resistance", Command = "hoverball_resistance", Type = "Float", Min = 0, Max = 10, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.hoverball.strength", Command = "hoverball_strength", Type = "Float", Min = 0.1, Max = 10, Help = true } ) + CPanel:NumSlider( "#tool.hoverball.speed", "hoverball_speed", 0, 20, 2 ) + CPanel:ControlHelp( "#tool.hoverball.speed.help" ) - CPanel:AddControl( "PropSelect", { Label = "#tool.hoverball.model", ConVar = "hoverball_model", Models = list.Get( "HoverballModels" ), Height = 0 } ) + CPanel:NumSlider( "#tool.hoverball.resistance", "hoverball_resistance", 0, 10, 2 ) + CPanel:ControlHelp( "#tool.hoverball.resistance.help" ) + + CPanel:NumSlider( "#tool.hoverball.strength", "hoverball_strength", 0.1, 10, 2 ) + CPanel:ControlHelp( "#tool.hoverball.strength.help" ) + + CPanel:PropSelect( "#tool.hoverball.model", "hoverball_model", list.Get( "HoverballModels" ), 0 ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/hydraulic.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/hydraulic.lua index 150034dab0..bec4aa4773 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/hydraulic.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/hydraulic.lua @@ -227,18 +227,27 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.hydraulic.help" } ) + CPanel:Help( "#tool.hydraulic.help" ) + CPanel:ToolPresets( "hydraulic", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "hydraulic", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.hydraulic.controls", "hydraulic_group" ) - CPanel:AddControl( "Numpad", { Label = "#tool.hydraulic.controls", Command = "hydraulic_group" } ) - CPanel:AddControl( "Slider", { Label = "#tool.hydraulic.addlength", Command = "hydraulic_addlength", Type = "Float", Min = -1000, Max = 1000, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.hydraulic.speed", Command = "hydraulic_speed", Type = "Float", Min = 0, Max = 50, Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.hydraulic.fixed", Command = "hydraulic_fixed", Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.toggle", Command = "hydraulic_toggle", Help = true } ) + CPanel:NumSlider( "#tool.hydraulic.addlength", "hydraulic_addlength", -1000, 1000, 2 ) + CPanel:ControlHelp( "#tool.hydraulic.addlength.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.hydraulic.width", Command = "hydraulic_width", Type = "Float", Min = 0, Max = 5 } ) - CPanel:AddControl( "RopeMaterial", { Label = "#tool.hydraulic.material", ConVar = "hydraulic_material" } ) - CPanel:AddControl( "Color", { Label = "#tool.hydraulic.color", Red = "hydraulic_color_r", Green = "hydraulic_color_g", Blue = "hydraulic_color_b" } ) + CPanel:NumSlider( "#tool.hydraulic.speed", "hydraulic_speed", 0, 50, 2 ) + CPanel:ControlHelp( "#tool.hydraulic.speed.help" ) + + CPanel:CheckBox( "#tool.hydraulic.fixed", "hydraulic_fixed" ) + CPanel:ControlHelp( "#tool.hydraulic.fixed.help" ) + + CPanel:CheckBox( "#tool.toggle", "hydraulic_toggle" ) + CPanel:ControlHelp( "#tool.toggle.help" ) + + CPanel:NumSlider( "#tool.hydraulic.width", "hydraulic_width", 0, 5, 2 ) + + CPanel:RopeSelect( "hydraulic_material" ) + + CPanel:ColorPicker( "#tool.hydraulic.color", "hydraulic_color_r", "hydraulic_color_g", "hydraulic_color_b" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/inflator.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/inflator.lua index 174cb6876f..07feb84f49 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/inflator.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/inflator.lua @@ -142,6 +142,6 @@ end function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.inflator.desc" } ) + CPanel:Help( "#tool.inflator.desc" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/lamp.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/lamp.lua index d90bb071b2..1abb5721f9 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/lamp.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/lamp.lua @@ -237,28 +237,26 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.lamp.desc" } ) + CPanel:Help( "#tool.lamp.desc" ) + CPanel:ToolPresets( "lamp", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "lamp", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.lamp.key", "lamp_key" ) - CPanel:AddControl( "Numpad", { Label = "#tool.lamp.key", Command = "lamp_key" } ) + CPanel:NumSlider( "#tool.lamp.fov", "lamp_fov", 10, 170, 2 ) + CPanel:NumSlider( "#tool.lamp.distance", "lamp_distance", 64, 2048, 2 ) + CPanel:NumSlider( "#tool.lamp.brightness", "lamp_brightness", 0, 8, 2 ) - CPanel:AddControl( "Slider", { Label = "#tool.lamp.fov", Command = "lamp_fov", Type = "Float", Min = 10, Max = 170 } ) - CPanel:AddControl( "Slider", { Label = "#tool.lamp.distance", Command = "lamp_distance", Min = 64, Max = 2048 } ) - CPanel:AddControl( "Slider", { Label = "#tool.lamp.brightness", Command = "lamp_brightness", Type = "Float", Min = 0, Max = 8 } ) + CPanel:CheckBox( "#tool.lamp.toggle", "lamp_toggle" ) - CPanel:AddControl( "Checkbox", { Label = "#tool.lamp.toggle", Command = "lamp_toggle" } ) - - CPanel:AddControl( "Color", { Label = "#tool.lamp.color", Red = "lamp_r", Green = "lamp_g", Blue = "lamp_b" } ) + CPanel:ColorPicker( "#tool.lamp.color", "lamp_r", "lamp_g", "lamp_b" ) local MatSelect = CPanel:MatSelect( "lamp_texture", nil, false, 0.33, 0.33 ) MatSelect.Height = 4 - for k, v in pairs( list.Get( "LampTextures" ) ) do MatSelect:AddMaterial( v.Name or k, k ) end - CPanel:AddControl( "PropSelect", { Label = "#tool.lamp.model", ConVar = "lamp_model", Height = 0, Models = list.Get( "LampModels" ) } ) + CPanel:PropSelect( "#tool.lamp.model", "lamp_model", list.Get( "LampModels" ), 0 ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/light.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/light.lua index bd71c02b6c..9aef3dfae4 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/light.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/light.lua @@ -216,18 +216,17 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.light.desc" } ) + CPanel:Help( "#tool.light.desc" ) + CPanel:ToolPresets( "light", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "light", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.light.key", "light_key" ) - CPanel:AddControl( "Numpad", { Label = "#tool.light.key", Command = "light_key", ButtonSize = 22 } ) + CPanel:NumSlider( "#tool.light.ropelength", "light_ropelength", 0, 256, 2 ) + CPanel:NumSlider( "#tool.light.brightness", "light_brightness", -6, 6, 0 ) + CPanel:NumSlider( "#tool.light.size", "light_size", 0, 1024, 2 ) - CPanel:AddControl( "Slider", { Label = "#tool.light.ropelength", Command = "light_ropelength", Type = "Float", Min = 0, Max = 256 } ) - CPanel:AddControl( "Slider", { Label = "#tool.light.brightness", Command = "light_brightness", Type = "Int", Min = -6, Max = 6 } ) - CPanel:AddControl( "Slider", { Label = "#tool.light.size", Command = "light_size", Type = "Float", Min = 0, Max = 1024 } ) + CPanel:CheckBox( "#tool.light.toggle", "light_toggle" ) - CPanel:AddControl( "Checkbox", { Label = "#tool.light.toggle", Command = "light_toggle" } ) - - CPanel:AddControl( "Color", { Label = "#tool.light.color", Red = "light_r", Green = "light_g", Blue = "light_b" } ) + CPanel:ColorPicker( "#tool.light.color", "light_r", "light_g", "light_b" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/material.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/material.lua index f84900d95f..52de5f40e7 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/material.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/material.lua @@ -127,9 +127,9 @@ end function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.material.help" } ) + CPanel:Help( "#tool.material.help" ) - local filter = CPanel:AddControl( "TextBox", { Label = "#spawnmenu.quick_filter_tool" } ) + local filter = CPanel:TextEntry( "#spawnmenu.quick_filter_tool" ) filter:SetUpdateOnType( true ) -- Remove duplicate materials. table.HasValue is used to preserve material order diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/motor.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/motor.lua index bee5f711fb..db216178ce 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/motor.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/motor.lua @@ -142,16 +142,26 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.motor.help" } ) + CPanel:Help( "#tool.motor.help" ) + CPanel:ToolPresets( "motor", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "motor", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.motor.numpad1", "motor_fwd", "#tool.motor.numpad2", "motor_bwd" ) - CPanel:AddControl( "Numpad", { Label = "#tool.motor.numpad1", Command = "motor_fwd", Label2 = "#tool.motor.numpad2", Command2 = "motor_bwd" } ) - CPanel:AddControl( "Slider", { Label = "#tool.motor.torque", Command = "motor_torque", Type = "Float", Min = 0, Max = 10000 } ) - CPanel:AddControl( "Slider", { Label = "#tool.forcelimit", Command = "motor_forcelimit", Type = "Float", Min = 0, Max = 50000, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.hingefriction", Command = "motor_friction", Type = "Float", Min = 0, Max = 100, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.motor.forcetime", Command = "motor_forcetime", Type = "Float", Min = 0, Max = 120, Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.nocollide", Command = "motor_nocollide", Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.toggle", Command = "motor_toggle", Help = true } ) + CPanel:NumSlider( "#tool.motor.torque", "motor_torque", 0, 10000, 2 ) + + CPanel:NumSlider( "#tool.forcelimit", "motor_forcelimit", 0, 50000, 2 ) + CPanel:ControlHelp( "#tool.forcelimit.help" ) + + CPanel:NumSlider( "#tool.hingefriction", "motor_friction", 0, 100, 2 ) + CPanel:ControlHelp( "#tool.hingefriction.help" ) + + CPanel:NumSlider( "#tool.motor.forcetime", "motor_forcetime", 0, 120, 2 ) + CPanel:ControlHelp( "#tool.motor.forcetime.help" ) + + CPanel:CheckBox( "#tool.nocollide", "motor_nocollide" ) + CPanel:ControlHelp( "#tool.nocollide.help" ) + + CPanel:CheckBox( "#tool.toggle", "motor_toggle" ) + CPanel:ControlHelp( "#tool.toggle.help" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/muscle.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/muscle.lua index 224319a718..91846dd980 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/muscle.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/muscle.lua @@ -239,18 +239,27 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.muscle.help" } ) + CPanel:Help( "#tool.muscle.help" ) + CPanel:ToolPresets( "muscle", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "muscle", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.muscle.numpad", "muscle_group" ) - CPanel:AddControl( "Numpad", { Label = "#tool.muscle.numpad", Command = "muscle_group" } ) - CPanel:AddControl( "Slider", { Label = "#tool.muscle.length", Command = "muscle_addlength", Type = "Float", Min = -1000, Max = 1000, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.muscle.period", Command = "muscle_period", Type = "Float", Min = 0, Max = 10, Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.muscle.fixed", Command = "muscle_fixed", Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.muscle.starton", Command = "muscle_starton", Help = true } ) + CPanel:NumSlider( "#tool.muscle.length", "muscle_addlength", -1000, 1000, 2 ) + CPanel:ControlHelp( "#tool.muscle.length.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.muscle.width", Command = "muscle_width", Type = "Float", Min = 0, Max = 5 } ) - CPanel:AddControl( "RopeMaterial", { Label = "#tool.muscle.material", ConVar = "muscle_material" } ) - CPanel:AddControl( "Color", { Label = "#tool.muscle.color", Red = "muscle_color_r", Green = "muscle_color_g", Blue = "muscle_color_b" } ) + CPanel:NumSlider( "#tool.muscle.period", "muscle_period", 0, 10, 2 ) + CPanel:ControlHelp( "#tool.muscle.period.help" ) + + CPanel:CheckBox( "#tool.muscle.fixed", "muscle_fixed" ) + CPanel:ControlHelp( "#tool.muscle.fixed.help" ) + + CPanel:CheckBox( "#tool.muscle.starton", "muscle_starton" ) + CPanel:ControlHelp( "#tool.muscle.starton.help" ) + + CPanel:NumSlider( "#tool.muscle.width", "muscle_width", 0, 5, 2 ) + + CPanel:RopeSelect( "muscle_material" ) + + CPanel:ColorPicker( "#tool.muscle.color", "muscle_color_r", "muscle_color_g", "muscle_color_b" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/nocollide.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/nocollide.lua index 12248cdd86..46192493fb 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/nocollide.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/nocollide.lua @@ -103,6 +103,6 @@ end function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.nocollide.desc" } ) + CPanel:Help( "#tool.nocollide.desc" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/paint.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/paint.lua index 074d1aaa7b..932f9bc982 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/paint.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/paint.lua @@ -147,12 +147,22 @@ function TOOL.BuildCPanel( CPanel ) table.sort( Options ) - local listbox = CPanel:AddControl( "ListBox", { Label = "#tool.paint.texture", Height = 17 + table.Count( Options ) * 17 } ) + local listbox = vgui.Create( "DListView" ) + listbox:SetMultiSelect( false ) + listbox:AddColumn( "#tool.paint.texture" ) + listbox:SetTall( 17 + table.Count( Options ) * 17 ) + listbox:SortByColumn( 1, false ) + function listbox:OnRowSelected( LineID, Line ) + for k, v in pairs( Line.data ) do + RunConsoleCommand( k, v ) + end + end for k, decal in ipairs( Options ) do local line = listbox:AddLine( decal ) line.data = { paint_decal = decal, gmod_tool = "paint" } if ( GetConVarString( "paint_decal" ) == tostring( decal ) ) then line:SetSelected( true ) end end + CPanel:AddItem( listbox ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/physprop.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/physprop.lua index d50be47e59..00cca705c0 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/physprop.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/physprop.lua @@ -40,11 +40,11 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "physprop", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:ToolPresets( "physprop", ConVarsDefault ) - CPanel:AddControl( "ListBox", { Label = "#tool.physprop.material", Options = list.Get( "PhysicsMaterials" ) } ) + CPanel:ComboBoxMulti( "#tool.physprop.material", list.Get( "PhysicsMaterials" ) ) - CPanel:AddControl( "CheckBox", { Label = "#tool.physprop.gravity", Command = "physprop_gravity_toggle" } ) + CPanel:CheckBox( "#tool.physprop.gravity", "physprop_gravity_toggle" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/pulley.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/pulley.lua index 7a54cbe040..48d0db2573 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/pulley.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/pulley.lua @@ -107,15 +107,19 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.pulley.help" } ) + CPanel:Help( "#tool.pulley.help" ) + CPanel:ToolPresets( "pulley", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "pulley", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:NumSlider( "#tool.forcelimit", "pulley_forcelimit", 0, 1000, 2 ) + CPanel:ControlHelp( "#tool.forcelimit.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.forcelimit", Command = "pulley_forcelimit", Type = "Float", Min = 0, Max = 1000, Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.pulley.rigid", Command = "pulley_rigid", Help = true } ) + CPanel:CheckBox( "#tool.pulley.rigid", "pulley_rigid" ) + CPanel:ControlHelp( "#tool.pulley.rigid.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.pulley.width", Command = "pulley_width", Type = "Float", Min = 0, Max = 10 } ) - CPanel:AddControl( "RopeMaterial", { Label = "#tool.pulley.material", ConVar = "pulley_material" } ) - CPanel:AddControl( "Color", { Label = "#tool.pulley.color", Red = "pulley_color_r", Green = "pulley_color_g", Blue = "pulley_color_b" } ) + CPanel:NumSlider( "#tool.pulley.width", "pulley_width", 0, 10, 2 ) + + CPanel:RopeSelect( "pulley_material" ) + + CPanel:ColorPicker( "#tool.pulley.color", "pulley_color_r", "pulley_color_g", "pulley_color_b" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/remover.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/remover.lua index a29ee7422d..40ae663aba 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/remover.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/remover.lua @@ -98,6 +98,6 @@ end function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.remover.desc" } ) + CPanel:Help( "#tool.remover.desc" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/rope.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/rope.lua index d3505a989e..4e7ed1c941 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/rope.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/rope.lua @@ -178,18 +178,22 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.rope.help" } ) + CPanel:Help( "#tool.rope.help" ) + CPanel:ToolPresets( "rope", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "rope", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:NumSlider( "#tool.forcelimit", "rope_forcelimit", 0, 1000, 2 ) + CPanel:ControlHelp( "#tool.forcelimit.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.forcelimit", Command = "rope_forcelimit", Type = "Float", Min = 0, Max = 1000, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.rope.addlength", Command = "rope_addlength", Type = "Float", Min = -500, Max = 500, Help = true } ) + CPanel:NumSlider( "#tool.rope.addlength", "rope_addlength", -500, 500, 2 ) + CPanel:ControlHelp( "#tool.rope.addlength.help" ) - CPanel:AddControl( "CheckBox", { Label = "#tool.rope.rigid", Command = "rope_rigid", Help = true } ) + CPanel:CheckBox( "#tool.rope.rigid", "rope_rigid" ) + CPanel:ControlHelp( "#tool.rope.rigid.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.rope.width", Command = "rope_width", Type = "Float", Min = 0, Max = 10 } ) - CPanel:AddControl( "RopeMaterial", { Label = "#tool.rope.material", ConVar = "rope_material" } ) + CPanel:NumSlider( "#tool.rope.width", "rope_width", 0, 10, 2 ) - CPanel:AddControl( "Color", { Label = "#tool.rope.color", Red = "rope_color_r", Green = "rope_color_g", Blue = "rope_color_b" } ) + CPanel:RopeSelect( "rope_material" ) + + CPanel:ColorPicker( "#tool.rope.color", "rope_color_r", "rope_color_g", "rope_color_b" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/slider.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/slider.lua index 0a9e08a167..61c6117fab 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/slider.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/slider.lua @@ -187,13 +187,13 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.slider.help" } ) + CPanel:Help( "#tool.slider.help" ) + CPanel:ToolPresets( "slider", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "slider", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:NumSlider( "#tool.slider.width", "slider_width", 0, 10, 2 ) - CPanel:AddControl( "Slider", { Label = "#tool.slider.width", Command = "slider_width", Type = "Float", Min = 0, Max = 10 } ) - CPanel:AddControl( "RopeMaterial", { Label = "#tool.slider.material", ConVar = "slider_material" } ) + CPanel:RopeSelect( "slider_material" ) - CPanel:AddControl( "Color", { Label = "#tool.slider.color", Red = "slider_color_r", Green = "slider_color_g", Blue = "slider_color_b" } ) + CPanel:ColorPicker( "#tool.slider.color", "slider_color_r", "slider_color_g", "slider_color_b" ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/thruster.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/thruster.lua index a6c27b74fd..a4cf8604ab 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/thruster.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/thruster.lua @@ -222,26 +222,25 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.thruster.desc" } ) + CPanel:Help( "#tool.thruster.desc" ) + CPanel:ToolPresets( "thruster", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "thruster", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.thruster.forward", "thruster_keygroup", "#tool.thruster.back", "thruster_keygroup_back" ) - CPanel:AddControl( "Numpad", { Label = "#tool.thruster.forward", Command = "thruster_keygroup", Label2 = "#tool.thruster.back", Command2 = "thruster_keygroup_back" } ) + CPanel:NumSlider( "#tool.thruster.force", "thruster_force", 1, 10000, 2 ) - CPanel:AddControl( "Slider", { Label = "#tool.thruster.force", Command = "thruster_force", Type = "Float", Min = 1, Max = 10000 } ) - - local combo = CPanel:AddControl( "ListBox", { Label = "#tool.thruster.effect" } ) + local combo = CPanel:ComboBoxMulti( "#tool.thruster.effect" ) for k, v in pairs( list.Get( "ThrusterEffects" ) ) do combo:AddOption( k, { thruster_effect = v.thruster_effect } ) end - CPanel:AddControl( "ListBox", { Label = "#tool.thruster.sound", Options = list.Get( "ThrusterSounds" ) } ) + CPanel:ComboBoxMulti( "#tool.thruster.sound", list.Get( "ThrusterSounds" ) ) - CPanel:AddControl( "CheckBox", { Label = "#tool.thruster.toggle", Command = "thruster_toggle" } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.thruster.collision", Command = "thruster_collision" } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.thruster.damagable", Command = "thruster_damageable" } ) + CPanel:CheckBox( "#tool.thruster.toggle", "thruster_toggle" ) + CPanel:CheckBox( "#tool.thruster.collision", "thruster_collision" ) + CPanel:CheckBox( "#tool.thruster.damagable", "thruster_damageable" ) - CPanel:AddControl( "PropSelect", { Label = "#tool.thruster.model", ConVar = "thruster_model", Height = 0, Models = list.Get( "ThrusterModels" ) } ) + CPanel:PropSelect( "#tool.thruster.model", "thruster_model", list.Get( "ThrusterModels" ), 0 ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/trails.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/trails.lua index e1898565f4..3b164322ee 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/trails.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/trails.lua @@ -146,11 +146,10 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.trails.desc" } ) + CPanel:Help( "#tool.trails.desc" ) + CPanel:ToolPresets( "trails", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "trails", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) - - CPanel:AddControl( "Color", { Label = "#tool.trails.color", Red = "trails_r", Green = "trails_g", Blue = "trails_b", Alpha = "trails_a" } ) + CPanel:ColorPicker( "#tool.trails.color", "trails_r", "trails_g", "trails_b", "trails_a" ) CPanel:NumSlider( "#tool.trails.length", "trails_length", 0, 10, 2 ) CPanel:NumSlider( "#tool.trails.startsize", "trails_startsize", 0, 128, 2 ) diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/weld.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/weld.lua index 782ace968b..417d456ba8 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/weld.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/weld.lua @@ -288,11 +288,12 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.weld.help" } ) + CPanel:Help( "#tool.weld.help" ) + CPanel:ToolPresets( "weld", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "weld", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:NumSlider( "#tool.forcelimit", "weld_forcelimit", 0, 1000, 2 ) + CPanel:ControlHelp( "#tool.forcelimit.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.forcelimit", Command = "weld_forcelimit", Type = "Float", Min = 0, Max = 1000, Help = true } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.nocollide", Command = "weld_nocollide" } ) + CPanel:CheckBox( "#tool.nocollide", "weld_nocollide" ) end \ No newline at end of file diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/wheel.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/wheel.lua index 661e008c96..cc25832b43 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/wheel.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/wheel.lua @@ -247,20 +247,19 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.wheel.desc" } ) + CPanel:Help( "#tool.wheel.desc" ) + CPanel:ToolPresets( "wheel", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "wheel", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.wheel.forward", "wheel_fwd", "#tool.wheel.reverse", "wheel_bck" ) - CPanel:AddControl( "Numpad", { Label = "#tool.wheel.forward", Command = "wheel_fwd", Label2 = "#tool.wheel.reverse", Command2 = "wheel_bck" } ) + CPanel:NumSlider( "#tool.wheel.torque", "wheel_torque", 10, 10000, 2 ) + CPanel:NumSlider( "#tool.wheel.forcelimit", "wheel_forcelimit", 0, 50000, 2 ) + CPanel:NumSlider( "#tool.wheel.friction", "wheel_friction", 0, 100, 2 ) - CPanel:AddControl( "Slider", { Label = "#tool.wheel.torque", Command = "wheel_torque", Type = "Float", Min = 10, Max = 10000 } ) - CPanel:AddControl( "Slider", { Label = "#tool.wheel.forcelimit", Command = "wheel_forcelimit", Type = "Float", Min = 0, Max = 50000 } ) - CPanel:AddControl( "Slider", { Label = "#tool.wheel.friction", Command = "wheel_friction", Type = "Float", Min = 0, Max = 100 } ) + CPanel:CheckBox( "#tool.wheel.nocollide", "wheel_nocollide" ) + CPanel:CheckBox( "#tool.wheel.toggle", "wheel_toggle" ) - CPanel:AddControl( "CheckBox", { Label = "#tool.wheel.nocollide", Command = "wheel_nocollide" } ) - CPanel:AddControl( "CheckBox", { Label = "#tool.wheel.toggle", Command = "wheel_toggle" } ) - - CPanel:AddControl( "PropSelect", { Label = "#tool.wheel.model", ConVar = "wheel_model", Height = 0, Models = list.Get( "WheelModels" ) } ) + CPanel:PropSelect( "#tool.wheel.model", "wheel_model", list.Get( "WheelModels" ), 0 ) end diff --git a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/winch.lua b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/winch.lua index ac9d7b1f4e..dc37be6255 100644 --- a/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/winch.lua +++ b/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools/winch.lua @@ -202,17 +202,21 @@ local ConVarsDefault = TOOL:BuildConVarList() function TOOL.BuildCPanel( CPanel ) - CPanel:AddControl( "Header", { Description = "#tool.winch.help" } ) + CPanel:Help( "#tool.winch.help" ) + CPanel:ToolPresets( "winch", ConVarsDefault ) - CPanel:AddControl( "ComboBox", { MenuButton = 1, Folder = "winch", Options = { [ "#preset.default" ] = ConVarsDefault }, CVars = table.GetKeys( ConVarsDefault ) } ) + CPanel:KeyBinder( "#tool.winch.forward", "winch_fwd_group", "#tool.winch.backward", "winch_bwd_group" ) - CPanel:AddControl( "Numpad", { Label = "#tool.winch.forward", Command = "winch_fwd_group", Label2 = "#tool.winch.backward", Command2 = "winch_bwd_group" } ) + CPanel:NumSlider( "#tool.winch.fspeed", "winch_fwd_speed", 0, 1000, 2 ) + CPanel:ControlHelp( "#tool.winch.fspeed.help" ) - CPanel:AddControl( "Slider", { Label = "#tool.winch.fspeed", Command = "winch_fwd_speed", Type = "Float", Min = 0, Max = 1000, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.winch.bspeed", Command = "winch_bwd_speed", Type = "Float", Min = 0, Max = 1000, Help = true } ) - CPanel:AddControl( "Slider", { Label = "#tool.winch.width", Command = "winch_rope_width", Type = "Float", Min = 0, Max = 10 } ) + CPanel:NumSlider( "#tool.winch.bspeed", "winch_bwd_speed", 0, 1000, 2 ) + CPanel:ControlHelp( "#tool.winch.bspeed.help" ) - CPanel:AddControl( "RopeMaterial", { Label = "#tool.winch.material", ConVar = "winch_rope_material" } ) - CPanel:AddControl( "Color", { Label = "#tool.winch.color", Red = "winch_color_r", Green = "winch_color_g", Blue = "winch_color_b" } ) + CPanel:NumSlider( "#tool.winch.width", "winch_rope_width", 0, 10, 2 ) + + CPanel:RopeSelect( "winch_rope_material" ) + + CPanel:ColorPicker( "#tool.winch.color", "winch_color_r", "winch_color_g", "winch_color_b" ) end diff --git a/garrysmod/gamemodes/sandbox/gamemode/spawnmenu/controlpanel.lua b/garrysmod/gamemodes/sandbox/gamemode/spawnmenu/controlpanel.lua index 32d3bea808..3a57e20223 100644 --- a/garrysmod/gamemodes/sandbox/gamemode/spawnmenu/controlpanel.lua +++ b/garrysmod/gamemodes/sandbox/gamemode/spawnmenu/controlpanel.lua @@ -56,6 +56,47 @@ function PANEL:MatSelect( strConVar, tblOptions, bAutoStretch, iWidth, iHeight ) end +function PANEL:RopeSelect( strConVar ) + + local ctrl = vgui.Create( "RopeMaterial", self ) + ctrl:SetConVar( strConVar ) + self:AddPanel( ctrl ) + + return ctrl + +end + +function PANEL:PropSelect( label, strConVar, mdlList, height ) + + local PropSelect = vgui.Create( "PropSelect", self ) + + PropSelect:SetConVar( strConVar ) + PropSelect.Label:SetText( label or "" ) + PropSelect.Height = height or 2 + + local firstKey, firstVal = next( mdlList ) + if ( istable( firstVal ) and isstring( firstVal.model ) ) then + -- Special case for Balloon tool + local tmp = {} + for k, v in SortedPairsByMemberValue( mdlList, "model" ) do + tmp[ k ] = v.model:lower() .. ( v.skin or 0 ) + end + + for k, v in SortedPairsByValue( tmp ) do + v = mdlList[ k ] + PropSelect:AddModelEx( k, v.model, v.skin or 0 ) + end + else + for k, v in SortedPairs( mdlList ) do + PropSelect:AddModel( k, v ) + end + end + + self:AddPanel( PropSelect ) + return PropSelect + +end + function PANEL:ToolPresets( group, cvarlist ) local preset = vgui.Create( "ControlPresets", self ) @@ -112,6 +153,27 @@ function PANEL:ColorPicker( label, convarR, convarG, convarB, convarA ) end +function PANEL:ComboBoxMulti( label, list ) + + local labelPnl = vgui.Create( "DLabel", self ) + labelPnl:SetText( label ) + labelPnl:SetDark( true ) + + local cbox = vgui.Create( "CtrlListBox", self ) + cbox:SetHeight( 25 ) + cbox:Dock( TOP ) + if ( list ) then + for k, v in pairs( list ) do + cbox:AddOption( k, v ) + end + end + + self:AddItem( labelPnl, cbox ) + + return cbox, labelPnl + +end + function PANEL:FillViaTable( Table ) self:SetInitialized( true ) @@ -191,7 +253,7 @@ function PANEL:AddControl( control, data ) if ( control == "slider" ) then local Decimals = 0 - if ( data.type && string.lower(data.type) == "float" ) then Decimals = 2 end + if ( data.type and string.lower(data.type) == "float" ) then Decimals = 2 end local ctrl = self:NumSlider( data.label or "Untitled", data.command, data.min or 0, data.max or 100, Decimals ) @@ -357,20 +419,19 @@ function PANEL:AddControl( control, data ) else - local ctrl = vgui.Create( "CtrlListBox", self ) + local left = vgui.Create( "DLabel", self ) + left:SetText( data.label ) + left:SetDark( true ) + local ctrl = vgui.Create( "CtrlListBox", self ) + ctrl:SetHeight( 25 ) + ctrl:Dock( TOP ) if ( data.options ) then for k, v in pairs( data.options ) do ctrl:AddOption( k, v ) end end - local left = vgui.Create( "DLabel", self ) - left:SetText( data.label ) - left:SetDark( true ) - ctrl:SetHeight( 25 ) - ctrl:Dock( TOP ) - self:AddItem( left, ctrl ) return ctrl diff --git a/garrysmod/gamemodes/sandbox/gamemode/spawnmenu/controls/ctrllistbox.lua b/garrysmod/gamemodes/sandbox/gamemode/spawnmenu/controls/ctrllistbox.lua index 0837a94d5b..2faea89afa 100644 --- a/garrysmod/gamemodes/sandbox/gamemode/spawnmenu/controls/ctrllistbox.lua +++ b/garrysmod/gamemodes/sandbox/gamemode/spawnmenu/controls/ctrllistbox.lua @@ -1,11 +1,6 @@ local PANEL = {} ---AccessorFunc( PANEL, "m_ConVarR", "ConVarR" ) - ---[[--------------------------------------------------------- - Name: Init ------------------------------------------------------------]] function PANEL:Init() self.ConVars = {} @@ -13,9 +8,6 @@ function PANEL:Init() end ---[[--------------------------------------------------------- - Name: AddOption ------------------------------------------------------------]] function PANEL:AddOption( strName, tabConVars ) self:AddChoice( strName, tabConVars ) @@ -26,9 +18,6 @@ function PANEL:AddOption( strName, tabConVars ) end ---[[--------------------------------------------------------- - Name: OnSelect ------------------------------------------------------------]] function PANEL:OnSelect( index, value, data ) for k, v in pairs( data ) do @@ -39,18 +28,12 @@ function PANEL:OnSelect( index, value, data ) end ---[[--------------------------------------------------------- - Name: Think ------------------------------------------------------------]] -function PANEL:Think( CheckConvarChanges ) +function PANEL:Think() self:CheckConVarChanges() end ---[[--------------------------------------------------------- - Name: ConVarsChanged ------------------------------------------------------------]] function PANEL:ConVarsChanged() for k, v in pairs( self.ConVars ) do @@ -64,9 +47,6 @@ function PANEL:ConVarsChanged() end ---[[--------------------------------------------------------- - Name: CheckForMatch ------------------------------------------------------------]] function PANEL:CheckForMatch( cvars ) if ( table.IsEmpty( cvars ) ) then return false end @@ -83,9 +63,6 @@ function PANEL:CheckForMatch( cvars ) end ---[[--------------------------------------------------------- - Name: CheckConVarChanges ------------------------------------------------------------]] function PANEL:CheckConVarChanges() if (!self:ConVarsChanged()) then return end diff --git a/garrysmod/lua/vgui/dform.lua b/garrysmod/lua/vgui/dform.lua index 62cb1a31de..142381db26 100644 --- a/garrysmod/lua/vgui/dform.lua +++ b/garrysmod/lua/vgui/dform.lua @@ -183,6 +183,13 @@ function PANEL:NumSlider( strLabel, strConVar, numMin, numMax, numDecimals ) left:SetConVar( strConVar ) left:SizeToContents() + if ( strConVar != nil ) then + local cvar = GetConVar( strConVar ) + if ( cvar ) then + left:SetDefaultValue( cvar:GetDefault() ) + end + end + self:AddItem( left, nil ) return left