diff options
| author | Scott <scotth0828@gmail.com> | 2016-05-21 17:43:47 -0400 |
|---|---|---|
| committer | Scott <scotth0828@gmail.com> | 2016-05-21 17:43:47 -0400 |
| commit | 10ed1a54523fdd5bcddfbccf44dd9c0a15ab8357 (patch) | |
| tree | dc40b8a399afea729a78fef6e3a92e7a41873b3d /ftp_gmstranded/gamemode/cl_qmenu.lua | |
| parent | d73e78d8d98da223410f51f390549336554eb54d (diff) | |
| download | gmstranded-10ed1a54523fdd5bcddfbccf44dd9c0a15ab8357.tar.gz gmstranded-10ed1a54523fdd5bcddfbccf44dd9c0a15ab8357.tar.bz2 gmstranded-10ed1a54523fdd5bcddfbccf44dd9c0a15ab8357.zip | |
Fixed removing plants bug
Diffstat (limited to 'ftp_gmstranded/gamemode/cl_qmenu.lua')
| -rw-r--r-- | ftp_gmstranded/gamemode/cl_qmenu.lua | 989 |
1 files changed, 0 insertions, 989 deletions
diff --git a/ftp_gmstranded/gamemode/cl_qmenu.lua b/ftp_gmstranded/gamemode/cl_qmenu.lua deleted file mode 100644 index 2a6d248..0000000 --- a/ftp_gmstranded/gamemode/cl_qmenu.lua +++ /dev/null @@ -1,989 +0,0 @@ - -/* ToolMenuButton */ -local PANEL = {} - -AccessorFunc( PANEL, "m_bAlt", "Alt" ) -AccessorFunc( PANEL, "m_bSelected", "Selected" ) - -function PANEL:Init() - self:SetContentAlignment( 4 ) - self:SetTextInset( 5, 0 ) - self:SetTall( 15 ) -end - -function PANEL:Paint() - if ( !self.m_bSelected ) then - if ( !self.m_bAlt ) then - surface.SetDrawColor( Color( 255, 255, 255, 200 ) ) - else - surface.SetDrawColor( Color( 255, 255, 255, 150 ) ) - end - else - surface.SetDrawColor( Color( 50, 150, 255, 250 ) ) - end - - self:DrawFilledRect() -end - -function PANEL:OnMousePressed( mcode ) - if ( mcode == MOUSE_LEFT ) then - self:OnSelect() - end -end - -function PANEL:OnCursorMoved( x, y ) - if ( input.IsMouseDown( MOUSE_LEFT ) ) then - self:OnSelect() - end -end - -function PANEL:OnSelect() -end - -function PANEL:PerformLayout() - if ( self.Checkbox ) then - self.Checkbox:AlignRight( 4 ) - self.Checkbox:CenterVertical() - end -end - -function PANEL:AddCheckBox( strConVar ) - if ( !self.Checkbox ) then - self.Checkbox = vgui.Create( "DCheckBox", self ) - end - - self.Checkbox:SetConVar( strConVar ) - self:InvalidateLayout() -end - -vgui.Register( "ToolMenuButton", PANEL, "DButton" ) - -/* DPropSpawnMenu */ -local PANEL = {} - -function PANEL:Init() - self:SetSpacing( 5 ) - self:SetPadding( 5 ) - self:EnableHorizontal( false ) - self:EnableVerticalScrollbar( true ) - function self:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - for k, v in SortedPairs( GMS_SpawnLists ) do - local cat = vgui.Create( "DCollapsibleCategory", self ) - cat:SetExpanded( 0 ) - cat:SetLabel( k ) - - local IconList = vgui.Create( "DPanelList", cat ) - IconList:EnableVerticalScrollbar( true ) - IconList:EnableHorizontal( true ) - IconList:SetAutoSize( true ) - IconList:SetSpacing( 5 ) - IconList:SetPadding( 5 ) - - cat:SetContents( IconList ) - self:AddItem( cat ) - - for key, value in pairs( v ) do - local Icon = vgui.Create( "SpawnIcon", IconList ) - Icon:SetModel( value ) - Icon.DoClick = function( Icon ) RunConsoleCommand( "gm_spawn", value, 0 ) end - --Icon:SetIconSize( 64 ) - Icon:InvalidateLayout( true ) - Icon:SetToolTip( Format( "%s", value ) ) - IconList:AddItem( Icon ) - end - end -end - -vgui.Register( "stranded_propspawn", PANEL, "DPanelList" ) - -/* DToolMenu */ -local PANEL = {} - -function PANEL:Init() - self.Tools = vgui.Create( "DPanelList", self ) - self.Tools:EnableVerticalScrollbar( true ) - self.Tools:SetAutoSize( false ) - self.Tools:SetSpacing( 5 ) - self.Tools:SetPadding( 5 ) - function self.Tools:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - self.ContextPanel = vgui.Create( "DPanelList", self ) - self.ContextPanel:EnableVerticalScrollbar( false ) - self.ContextPanel:SetSpacing( 0 ) - self.ContextPanel:SetPadding( 5 ) - function self.ContextPanel:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 255, 255, 255, 150 ) ) - end - - if ( ToolsLoad == false || ToolsLoad == nil || ToolsLoad == NULL || ToolsLoad == "" ) then - AllTools = spawnmenu.GetTools() - local ToolsLoad = true - end - - local ToolTables = AllTools - - if ( !ToolTables ) then LocalPlayer():ChatPrint( "ERROR: Tools List could not be loaded." ) return end - - for k, v in pairs( ToolTables[1].Items ) do - if ( type( v ) == "table" ) then - local Name = v.ItemName - local Label = v.Text - v.ItemName = nil - v.Text = nil - self:AddCategory( Name, Label, v ) - end - end -end - -function PANEL:AddCategory( Name, Label, ToolItems ) - self.Category = vgui.Create( "DCollapsibleCategory" ) - self.Tools:AddItem( self.Category ) - self.Category:SetLabel( Label ) - self.Category:SetCookieName( "ToolMenu." .. tostring( Name ) ) - - self.CategoryContent = vgui.Create( "DPanelList" ) - self.CategoryContent:SetAutoSize( true ) - self.CategoryContent:SetDrawBackground( false ) - self.CategoryContent:SetSpacing( 0 ) - self.CategoryContent:SetPadding( 0 ) - self.Category:SetContents( self.CategoryContent ) - - local bAlt = true - local NumTools = 0 - - for k, v in pairs( ToolItems ) do - if ( table.HasValue( GMS.ProhibitedStools, v.ItemName ) && !LocalPlayer():IsAdmin() ) then continue end - NumTools = NumTools + 1 - - local Item = vgui.Create( "ToolMenuButton", self ) - Item:SetText( v.Text ) - Item.OnSelect = function( button ) self:EnableControlPanel( button ) end - concommand.Add( Format( "tool_%s", v.ItemName ), function() Item:OnSelect() end ) - - if ( v.SwitchConVar ) then - Item:AddCheckBox( v.SwitchConVar ) - end - - Item.ControlPanelBuildFunction = v.CPanelFunction - Item.Command = v.Command - Item.Name = v.ItemName - Item.Controls = v.Controls - Item.Text = v.Text - - Item:SetAlt( bAlt ) - bAlt = !bAlt - - self.CategoryContent:AddItem( Item ) - end - - if ( NumTools <= 0 ) then - self.Category:Remove() - self.CategoryContent:Remove() - end -end - -function PANEL:EnableControlPanel( button ) - if ( self.LastSelected ) then - self.LastSelected:SetSelected( false ) - end - - button:SetSelected( true ) - self.LastSelected = button - - local cp = controlpanel.Get( button.Name ) - if ( !cp:GetInitialized() ) then - cp:FillViaTable( button ) - end - - self.ContextPanel:Clear() - self.ContextPanel:AddItem( cp ) - self.ContextPanel:Rebuild() - - g_ActiveControlPanel = cp - - if ( button.Command ) then - LocalPlayer():ConCommand( button.Command ) - end -end - -function PANEL:Paint() -end - -function PANEL:PerformLayout() - self:StretchToParent( 0, 21, 0, 5 ) - self.Tools:SetPos( 5, 5 ) - self.Tools:SetSize( self:GetWide() * 0.35, self:GetTall() - 5 ) - self.ContextPanel:SetPos( self:GetWide() * 0.35 + 10, 5 ) - self.ContextPanel:SetSize( self:GetWide() - ( self:GetWide() * 0.35 ) - 14, self:GetTall() - 5 ) -end - -vgui.Register( "stranded_toolmenu", PANEL, "DPanel" ) - -/* DCommandsMenu */ -local PANEL = {} - -PANEL.SmallButs = {} -PANEL.SmallButs["Sleep"] = "gms_sleep" -PANEL.SmallButs["Wake up"] = "gms_wakeup" -PANEL.SmallButs["Drop weapon"] = "gms_dropweapon" -PANEL.SmallButs["Steal"] = "gms_steal" -PANEL.SmallButs["Make campfire"] = "gms_makefire" -PANEL.SmallButs["Drink bottle of water"] = "gms_drinkbottle" -PANEL.SmallButs["Take medicine"] = "gms_takemedicine" -PANEL.SmallButs["Combinations"] = "gms_combinations" -PANEL.SmallButs["Structures"] = "gms_structures" -PANEL.SmallButs["Help"] = "gms_help" -PANEL.SmallButs["Drop all resources"] = "gms_dropall" -PANEL.SmallButs["Salvage prop"] = "gms_salvage" -PANEL.SmallButs["Eat some berries"] = "gms_eatberry" -PANEL.SmallButs["RESET CHARACTER"] = "gms_resetcharacter" - -PANEL.BigButs = {} -PANEL.BigButs["Tribe: Create"] = "gms_tribemenu" -PANEL.BigButs["Tribe: Join"] = "gms_tribes" -PANEL.BigButs["Tribe: Leave"] = "gms_leave" -PANEL.BigButs["Save character"] = "gms_savecharacter" - -PANEL.Plantables = {} -PANEL.Plantables["Plant Melon"] = "gms_plantmelon" -PANEL.Plantables["Plant Banana"] = "gms_plantbanana" -PANEL.Plantables["Plant Orange"] = "gms_plantorange" -PANEL.Plantables["Plant Tree"] = "gms_planttree" -PANEL.Plantables["Plant Grain"] = "gms_plantgrain" -PANEL.Plantables["Plant BerryBush"] = "gms_plantbush" - -function PANEL:Init() - - self.SmallButtons = vgui.Create( "DPanelList", self ) - self.SmallButtons:EnableVerticalScrollbar( true ) - self.SmallButtons:SetSpacing( 5 ) - self.SmallButtons:SetPadding( 5 ) - function self.SmallButtons:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - for txt, cmd in SortedPairs( self.SmallButs ) do - local button = vgui.Create( "gms_CommandButton" ) - button:SetConCommand( cmd ) - button:SetText( txt ) - button:SetTall( 26 ) - self.SmallButtons:AddItem( button ) - end - - self.BigButtons = vgui.Create( "DPanelList", self ) - self.BigButtons:EnableVerticalScrollbar( false ) - self.BigButtons:SetAutoSize( false ) - self.BigButtons:SetSpacing( 5 ) - self.BigButtons:SetPadding( 5 ) - function self.BigButtons:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - for txt, cmd in SortedPairs( self.BigButs ) do - local button = vgui.Create( "gms_CommandButton" ) - button:SetConCommand( cmd ) - button:SetText( txt ) - button:SetTall( 64 ) - self.BigButtons:AddItem( button ) - end - - self.Planting = vgui.Create( "DPanelList", self ) - self.Planting:EnableVerticalScrollbar( false ) - self.Planting:SetSpacing( 5 ) - self.Planting:SetPadding( 5 ) - function self.Planting:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - for txt, cmd in SortedPairs( self.Plantables ) do - local button = vgui.Create( "gms_CommandButton" ) - button:SetConCommand( cmd ) - button:SetText( txt ) - button:SetTall( 26 ) - self.Planting:AddItem( button ) - end -end - -function PANEL:Paint() -end - -function PANEL:PerformLayout() - self:StretchToParent( 0, 21, 0, 5 ) - self.SmallButtons:SetPos( 5, 5 ) - self.SmallButtons:SetSize( self:GetWide() * 0.45, self:GetTall() - 5 ) - - self.BigButtons:SetPos( self:GetWide() * 0.45 + 10, 5 ) - self.BigButtons:SetSize( self:GetWide() - ( self:GetWide() * 0.45 ) - 14, self:GetTall() / 2 - 5 ) - - self.Planting:SetPos( self:GetWide() * 0.45 + 10, self:GetTall() / 2 + 5 ) - self.Planting:SetSize( self:GetWide() - ( self:GetWide() * 0.45 ) - 14, self:GetTall() / 2 - 5 ) -end - -vgui.Register( "stranded_commands", PANEL, "DPanel" ) - -/* DSPP Menu */ -local PANEL = {} - -PANEL.LastThink = CurTime() -PANEL.Settings = { - { text = "Enable Prop Protection", elem = "DCheckBoxLabel", cmd = "spp_enabled" }, - { text = "Enable use key protection", elem = "DCheckBoxLabel", cmd = "spp_use" }, - { text = "Enable entity damage protection", elem = "DCheckBoxLabel", cmd = "spp_entdmg" }, - { text = "", elem = "DLabel" }, - { text = "Admins can touch other player props", elem = "DCheckBoxLabel", cmd = "spp_admin" }, - { text = "Admins can touch world props", elem = "DCheckBoxLabel", cmd = "spp_admin_wp" }, - { text = "", elem = "DLabel" }, - { text = "Delete disconnected admins entities", elem = "DCheckBoxLabel", cmd = "spp_del_adminprops" }, - { text = "Delete disconnected players entities", elem = "DCheckBoxLabel", cmd = "spp_del_disconnected" }, - { text = "Deletion delay in seconds", elem = "DNumSlider", cmd = "spp_del_delay", min = 10, max = 600 }, -} - -function PANEL:Init() - if ( !LocalPlayer():IsAdmin() ) then - self.Settings = { - { text = "You are not an admin.", elem = "DLabel" } - } - end - - self.Buddies = vgui.Create( "DPanelList", self ) - self.Buddies:EnableVerticalScrollbar( true ) - self.Buddies:SetSpacing( 5 ) - self.Buddies:SetPadding( 5 ) - function self.Buddies:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - self.AdminSettings = vgui.Create( "DPanelList", self ) - self.AdminSettings:EnableVerticalScrollbar( true ) - self.AdminSettings:SetSpacing( 5 ) - self.AdminSettings:SetPadding( 5 ) - function self.AdminSettings:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - self.AdminCleanUp = vgui.Create( "DPanelList", self ) - self.AdminCleanUp:EnableVerticalScrollbar( true ) - self.AdminCleanUp:SetSpacing( 5 ) - self.AdminCleanUp:SetPadding( 5 ) - function self.AdminCleanUp:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - /* Admin settings */ - for txt, t in pairs( self.Settings ) do - local item = vgui.Create( t.elem ) - item:SetText( t.text ) - - if ( t.elem != "DLabel" ) then - item:SetConVar( t.cmd ) - end - - if ( t.elem == "DNumSlider" ) then - item:SetMin( t.min ) - item:SetMax( t.max ) - item:SetDecimals( 0 ) - item.TextArea:SetTextColor( Color( 200, 200, 200 ) ) - end - - self.AdminSettings:AddItem( item ) - end - - /* Admin cleanup */ - for i, p in pairs( player.GetAll() ) do - local item = vgui.Create( "DButton" ) - item:SetConsoleCommand( "spp_cleanup_props", p:GetNWString( "SPPSteamID" ) ) - item:SetText( p:Name() ) - item:SetTall( 26 ) - self.AdminCleanUp:AddItem( item ) - end - - local item = vgui.Create( "DButton" ) - item:SetConsoleCommand( "spp_cleanup_props_left" ) - item:SetText( "Cleanup disconnected players props" ) - item:SetTall( 26 ) - self.AdminCleanUp:AddItem( item ) - - /* Client */ - for i, p in pairs( player.GetAll() ) do - if ( p != LocalPlayer() ) then - local item = vgui.Create( "DCheckBoxLabel" ) - - local BCommand = "spp_buddy_" .. p:GetNWString( "SPPSteamID" ) - if ( !LocalPlayer():GetInfo( BCommand ) ) then CreateClientConVar( BCommand, 0, false, true ) end - item:SetConVar( BCommand ) - item:SetText( p:Name() ) - item:SetTextColor( Color( 255, 255, 255, 255 ) ) - self.Buddies:AddItem( item ) - end - end - - local item = vgui.Create( "DButton" ) - item:SetConsoleCommand( "spp_apply_buddies" ) - item:SetText( "Apply settings" ) - item:SetTall( 26 ) - self.Buddies:AddItem( item ) - - local item = vgui.Create( "DButton" ) - item:SetConsoleCommand( "spp_clear_buddies" ) - item:SetText( "Clear all buddies" ) - item:SetTall( 26 ) - self.Buddies:AddItem( item ) -end - -function PANEL:Paint() -end - -function PANEL:Think() - if ( CurTime() >= self.LastThink + 3 )then - self.LastThink = CurTime() - self.AdminCleanUp:Clear( true ) - self.Buddies:Clear( true ) - - /* Admin cleanup */ - if ( LocalPlayer():IsAdmin() ) then - for i, p in pairs( player.GetAll() ) do - local item = vgui.Create( "DButton" ) - item:SetConsoleCommand( "spp_cleanup_props", p:GetNWString( "SPPSteamID" ) ) - item:SetTall( 26 ) - item:SetText( p:Name() ) - self.AdminCleanUp:AddItem( item ) - end - - local item = vgui.Create( "DButton" ) - item:SetConsoleCommand( "spp_cleanup_props_left" ) - item:SetTall( 26 ) - item:SetText( "Cleanup disconnected players props" ) - self.AdminCleanUp:AddItem( item ) - - self.AdminSettings:SetVisible( true ) - self.AdminCleanUp:SetVisible( true ) - else - local item = vgui.Create( "DLabel" ) - item:SetText( "You are not an admin." ) - self.AdminCleanUp:AddItem( item ) - - self.AdminSettings:SetVisible( false ) - self.AdminCleanUp:SetVisible( false ) - end - - /* Client */ - for i, p in pairs( player.GetAll() ) do - if ( p != LocalPlayer() ) then - local item = vgui.Create( "DCheckBoxLabel" ) - - local BCommand = "spp_buddy_" .. p:GetNWString( "SPPSteamID" ) - if ( !LocalPlayer():GetInfo( BCommand ) ) then CreateClientConVar( BCommand, 0, false, true ) end - item:SetConVar( BCommand ) - item:SetText( p:Name() ) - self.Buddies:AddItem( item ) - end - end - - local item = vgui.Create( "DButton" ) - item:SetConsoleCommand( "spp_apply_buddies" ) - item:SetText( "Apply settings" ) - item:SetTall( 26 ) - self.Buddies:AddItem( item ) - - local item = vgui.Create( "DButton" ) - item:SetConsoleCommand( "spp_clear_buddies" ) - item:SetText( "Clear all buddies" ) - item:SetTall( 26 ) - self.Buddies:AddItem( item ) - end -end - -function PANEL:PerformLayout() - self:StretchToParent( 0, 21, 0, 5 ) - - self.Buddies:SetPos( 5, 5 ) - self.Buddies:SetSize( self:GetWide() * 0.45, self:GetTall() - 5 ) - - self.AdminSettings:SetPos( self:GetWide() * 0.45 + 10, 5 ) - self.AdminSettings:SetSize( self:GetWide() - ( self:GetWide() * 0.45 ) - 14, self:GetTall() / 2 - 5 ) - - self.AdminCleanUp:SetPos( self:GetWide() * 0.45 + 10, self:GetTall() / 2 + 5 ) - self.AdminCleanUp:SetSize( self:GetWide() - ( self:GetWide() * 0.45 ) - 14, self:GetTall() / 2 - 5 ) -end - -vgui.Register( "stranded_sppmenu", PANEL, "DPanel" ) - -/* Admin Menu */ -local PANEL = {} - -PANEL.SpawningCmds = { - { text = "Spawn tree", cmd = "gms_admin_maketree" }, - { text = "Spawn rock", cmd = "gms_admin_makerock" }, - { text = "Spawn food", cmd = "gms_admin_makefood" }, - { text = "Save all characters", cmd = "gms_admin_saveallcharacters" }, - { text = "Plant random plant", cmd = "gms_admin_makeplant" }, - { text = "Plant melons", cmd = "gms_admin_makeplant 1" }, - { text = "Plant banana tree", cmd = "gms_admin_makeplant 2" }, - { text = "Plant oranges", cmd = "gms_admin_makeplant 3" }, - { text = "Plant berry bush", cmd = "gms_admin_makeplant 4" }, - { text = "Plant grain", cmd = "gms_admin_makeplant 5" } -} - -PANEL.Settings = { - { text = "Force players to use Tribe color", elem = "DCheckBoxLabel", cmd = "gms_TeamColors" }, - { text = "Allow players to damage each other with tools", elem = "DCheckBoxLabel", cmd = "gms_PVPDamage" }, - { text = "Enable free build for everyone", elem = "DCheckBoxLabel", cmd = "gms_FreeBuild" }, - { text = "Enable free build for super admins", elem = "DCheckBoxLabel", cmd = "gms_FreeBuildSa" }, - { text = "Give all players all tools", elem = "DCheckBoxLabel", cmd = "gms_AllTools" }, - //{ text = "Enable low needs alerts ( coughing, etc )", elem = "DCheckBoxLabel", cmd = "gms_alerts" }, - { text = "Spread fire", elem = "DCheckBoxLabel", cmd = "gms_SpreadFire" }, - { text = "Fadeout rocks, just like trees", elem = "DCheckBoxLabel", cmd = "gms_FadeRocks" }, - { text = "Enable campfires", elem = "DCheckBoxLabel", cmd = "gms_campfire" }, - { text = "Spawn zombies at night", elem = "DCheckBoxLabel", cmd = "gms_zombies" }, - { text = "Enable day/night cycle", elem = "DCheckBoxLabel", cmd = "gms_daynight" }, - //{ text = "Costs scale", elem = "DNumSlider", decimals = 1, cmd = "gms_CostsScale", min = 1, max = 4 }, - { text = "Plant limit per player", elem = "DNumSlider", cmd = "gms_PlantLimit", min = 10, max = 35 }, - { text = "", elem = "DLabel" }, - { text = "Reproduce trees", elem = "DCheckBoxLabel", cmd = "gms_ReproduceTrees" }, - { text = "Max reproduced trees", elem = "DNumSlider", cmd = "gms_MaxReproducedTrees", min = 1, max = 60 }, - { text = "", elem = "DLabel" }, - { text = "Autosave user profiles", elem = "DCheckBoxLabel", cmd = "gms_AutoSave" }, - { text = "Autosave delay ( minutes )", elem = "DNumSlider", cmd = "gms_AutoSaveTime", min = 1, max = 30 }, -} - -function PANEL:Init() - - self.MapSaving = vgui.Create( "DPanelList", self ) - self.MapSaving:EnableVerticalScrollbar( true ) - self.MapSaving:SetSpacing( 5 ) - self.MapSaving:SetPadding( 5 ) - function self.MapSaving:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - self.Populating = vgui.Create( "DPanelList", self ) - self.Populating:EnableVerticalScrollbar( true ) - self.Populating:SetSpacing( 5 ) - self.Populating:SetPadding( 5 ) - function self.Populating:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - self.AdminSettings = vgui.Create( "DPanelList", self ) - self.AdminSettings:EnableVerticalScrollbar( true ) - self.AdminSettings:SetSpacing( 5 ) - self.AdminSettings:SetPadding( 5 ) - function self.AdminSettings:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - self.Spawning = vgui.Create( "DPanelList", self ) - self.Spawning:EnableVerticalScrollbar( true ) - self.Spawning:SetSpacing( 5 ) - self.Spawning:SetPadding( 5 ) - function self.Spawning:Paint() - draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) - end - - for txt, t in pairs( self.Settings ) do - local item = vgui.Create( t.elem ) - item:SetText( t.text ) - - if ( t.elem == "DNumSlider" ) then - item:SetMin( t.min ) - item:SetMax( t.max ) - item:SetDecimals( t.decimals or 0 ) - item.TextArea:SetTextColor( Color( 200, 200, 200 ) ) - end - - if ( t.elem != "DLabel" ) then item:SetConVar( t.cmd ) end - - self.AdminSettings:AddItem( item ) - end - - for txt, t in pairs( self.SpawningCmds ) do - local item = vgui.Create( "DButton" ) - item:SetText( t.text ) - item:SetTall( 26 ) - item:SetConsoleCommand( t.cmd ) - self.Spawning:AddItem( item ) - end - - // POPULATE AREA - local populatearea = vgui.Create( "DPanel", self ) - populatearea:SetTall( 100 ) - - local label = vgui.Create( "DLabel", populatearea ) - label:SetPos( 10, 5 ) - label:SetDark( true ) - label:SetText( "Amount" ) - label:SizeToContents() - - self.PopulateAmount = vgui.Create( "DTextEntry", populatearea ) - self.PopulateAmount:SetPos( 10, 20 ) - self.PopulateAmount:SetTall( 24 ) - self.PopulateAmount:SetValue( "10" ) - populatearea.PopulateAmount = self.PopulateAmount - - local label = vgui.Create( "DLabel", populatearea ) - label:SetDark( true ) - label:SetText( "Max radius" ) - label:SizeToContents() - - self.PopulateRadius = vgui.Create( "DTextEntry", populatearea ) - self.PopulateRadius:SetValue( "1000" ) - self.PopulateRadius:SetTall( 24 ) - self.PopulateRadius.Label = label - populatearea.PopulateRadius = self.PopulateRadius - - local label = vgui.Create( "DLabel", populatearea ) - label:SetPos( 10, 49 ) - label:SetDark( true ) - label:SetText( "Type" ) - label:SizeToContents() - - local typ = "Trees" - self.PopulateType = vgui.Create( "DComboBox", populatearea ) - self.PopulateType:SetTall( 24 ) - self.PopulateType:SetPos( 10, 64 ) - self.PopulateType:AddChoice( "Trees", "Trees" ) - self.PopulateType:AddChoice( "Rocks", "Rocks" ) - self.PopulateType:AddChoice( "Random plants", "Random_Plant" ) - self.PopulateType:ChooseOptionID( 1 ) - function self.PopulateType:OnSelect( index, value, data ) typ = data end - - self.PopulateArea = vgui.Create( "gms_CommandButton", populatearea ) - self.PopulateArea:SetTall( 24 ) - self.PopulateArea:SetText( "Populate Area" ) - function self.PopulateArea:DoClick() - local p = self:GetParent() - RunConsoleCommand( "gms_admin_PopulateArea", typ, string.Trim( p.PopulateAmount:GetValue() ), string.Trim( p.PopulateRadius:GetValue() ) ) - end - - self.Populating:AddItem( populatearea ) - - // POPULATE AREA: Antlions - local populatearea = vgui.Create( "DPanel", self ) - populatearea:SetTall( 54 ) - - local label = vgui.Create( "DLabel", populatearea ) - label:SetPos( 10, 5 ) - label:SetDark( true ) - label:SetText( "Amount" ) - label:SizeToContents() - - self.PopulateAmountAnt = vgui.Create( "DTextEntry", populatearea ) - self.PopulateAmountAnt:SetPos( 10, 20 ) - self.PopulateAmountAnt:SetTall( 24 ) - self.PopulateAmountAnt:SetValue( "5" ) - populatearea.PopulateAmountAnt = self.PopulateAmountAnt - - self.PopulateAreaAnt = vgui.Create( "gms_CommandButton", populatearea ) - self.PopulateAreaAnt:SetTall( 24 ) - self.PopulateAreaAnt:SetText( "Make Antlion Barrow" ) - function self.PopulateAreaAnt:DoClick() - RunConsoleCommand( "gms_admin_MakeAntlionBarrow", string.Trim( self:GetParent().PopulateAmountAnt:GetValue() ) ) - end - - self.Populating:AddItem( populatearea ) - - // Save map - local populatearea = vgui.Create( "DPanel", self ) - populatearea:SetTall( 64 ) - - self.MapName = vgui.Create( "DTextEntry", populatearea ) - self.MapName:SetPos( 5, 5 ) - self.MapName:SetTall( 24 ) - self.MapName:SetValue( "savename" ) - populatearea.MapName = self.MapName - - self.SaveMap = vgui.Create( "gms_CommandButton", populatearea ) - self.SaveMap:SetPos( 5, 34 ) - self.SaveMap:SetTall( 24 ) - self.SaveMap:SetText( "Save" ) - function self.SaveMap:DoClick() - RunConsoleCommand( "gms_admin_savemap", string.Trim( self:GetParent().MapName:GetValue() ) ) - end - - self.MapSaving:AddItem( populatearea ) - - // Load/delete map - local populatearea = vgui.Create( "DPanel", self ) - populatearea:SetTall( 64 ) - - local map = "" - self.MapNameL = vgui.Create( "DComboBox", populatearea ) - self.MapNameL:SetTall( 24 ) - self.MapNameL:SetPos( 5, 5 ) - function self.MapNameL:OnSelect( index, value, data ) map = data end - populatearea.MapNameL = self.MapNameL - - self.LoadMap = vgui.Create( "gms_CommandButton", populatearea ) - self.LoadMap:SetPos( 5, 34 ) - self.LoadMap:SetTall( 24 ) - self.LoadMap:SetText( "Load" ) - function self.LoadMap:DoClick() - RunConsoleCommand( "gms_admin_loadmap", string.Trim( map ) ) - end - - self.DeleteMap = vgui.Create( "gms_CommandButton", populatearea ) - self.DeleteMap:SetTall( 24 ) - self.DeleteMap:SetText( "Delete" ) - function self.DeleteMap:DoClick() - RunConsoleCommand( "gms_admin_deletemap", map ) - end - - self.MapSaving:AddItem( populatearea ) - -end - -function PANEL:Paint() -end - -function PANEL:PerformLayout() - self:StretchToParent( 0, 21, 0, 5 ) - - self.MapSaving:SetPos( 5, 5 ) - self.MapSaving:SetSize( self:GetWide() * 0.45, self:GetTall() / 2 - 5 ) - - self.Populating:SetPos( 5, self:GetTall() / 2 + 5 ) - self.Populating:SetSize( self:GetWide() - ( self:GetWide() * 0.45 ) - 14, self:GetTall() / 2 - 5 ) - - self.AdminSettings:SetPos( self:GetWide() * 0.45 + 10, 5 ) - self.AdminSettings:SetSize( self:GetWide() - ( self:GetWide() * 0.45 ) - 14, self:GetTall() / 2 - 5 ) - - self.Spawning:SetPos( self:GetWide() - ( self:GetWide() * 0.45 ) - 4, self:GetTall() / 2 + 5 ) - self.Spawning:SetSize( self:GetWide() * 0.45, self:GetTall() / 2 - 5 ) - - /* POPULATION */ - self.PopulateAmount:SetWide( self.Populating:GetWide() / 2 - 20 ) - self.PopulateRadius:SetWide( self.Populating:GetWide() / 2 - 20 ) - self.PopulateRadius.Label:SetPos( self.Populating:GetWide() / 2, 5 ) - self.PopulateRadius:SetPos( self.Populating:GetWide() / 2, 20 ) - - self.PopulateType:SetWide( self.Populating:GetWide() / 2 - 20 ) - self.PopulateArea:SetWide( self.Populating:GetWide() / 2 - 20 ) - self.PopulateArea:SetPos( self.Populating:GetWide() / 2, 64 ) - - /* ANTLIONS */ - self.PopulateAmountAnt:SetWide( self.Populating:GetWide() / 2 - 20 ) - self.PopulateAreaAnt:SetWide( self.Populating:GetWide() / 2 - 20 ) - self.PopulateAreaAnt:SetPos( self.Populating:GetWide() / 2, 20 ) - - // Save map - self.MapName:SetWide( self.MapSaving:GetWide() - 20 ) - self.SaveMap:SetWide( self.MapSaving:GetWide() - 20 ) - - // Load/delete map - self.MapNameL:SetSize( self.MapSaving:GetWide() - 20, 24 ) - self.LoadMap:SetWide( self.MapSaving:GetWide() / 2 - 20 ) - self.DeleteMap:SetWide( self.MapSaving:GetWide() / 2 - 20 ) - self.DeleteMap:SetPos( self.MapSaving:GetWide() / 2 + 5, 34 ) -end - -vgui.Register( "stranded_adminmenu", PANEL, "DPanel" ) - -/* Spawnpanel */ -local PANEL = {} - -function PANEL:Init() - self:SetTitle( "" ) - self:ShowCloseButton( false ) - - self.m_bHangOpen = false - - self.ContentPanel = vgui.Create( "DPropertySheet", self ) - self.ContentPanel:AddSheet( "Props", vgui.Create( "stranded_propspawn", self.ContentPanel ), "icon16/brick.png", false, false ) - self.ContentPanel:AddSheet( "Tools", vgui.Create( "stranded_toolmenu", self.ContentPanel ), "icon16/wrench.png", true, true ) - self.ContentPanel:AddSheet( "Commands", vgui.Create( "stranded_commands", self.ContentPanel ), "icon16/application.png", true, true ) - self.ContentPanel:AddSheet( "Prop Protection", vgui.Create( "stranded_sppmenu", self.ContentPanel ), "icon16/shield.png", true, true ) - - self.AdminMenu = vgui.Create( "stranded_adminmenu", self.ContentPanel ) - local tab = self.ContentPanel:AddSheet( "Admin menu", self.AdminMenu, "icon16/shield_add.png", true, true ) - self.AdminTab = tab.Tab -end - -function PANEL:Paint() -end - -function PANEL:Think() - if ( !LocalPlayer():IsAdmin() ) then - /*self.AdminMenu.MapSaving:SetVisible( false ) - self.AdminMenu.Populating:SetVisible( false ) - self.AdminMenu.AdminSettings:SetVisible( false ) - self.AdminMenu.Spawning:SetVisible( false )*/ - self.AdminTab:SetVisible( false ) - else - /*self.AdminMenu.MapSaving:SetVisible( true ) - self.AdminMenu.Populating:SetVisible( true ) - self.AdminMenu.AdminSettings:SetVisible( true ) - self.AdminMenu.Spawning:SetVisible( true )*/ - self.AdminTab:SetVisible( true ) - end -end - -function PANEL:StartKeyFocus( pPanel ) - - self.m_pKeyFocus = pPanel - self:SetKeyboardInputEnabled( true ) - self.m_bHangOpen = true - - g_ContextMenu:StartKeyFocus( pPanel ) - -end - -function PANEL:EndKeyFocus( pPanel ) - - if ( self.m_pKeyFocus != pPanel ) then return end - self:SetKeyboardInputEnabled( false ) - - g_ContextMenu:EndKeyFocus( pPanel ) - -end - -function PANEL:PerformLayout() - self:SetSize( ScrW() / 2.2 - 10, ScrH() - 10 ) - self:SetPos( ScrW() - ( ScrW() / 2.2 + 5 ), 5 ) - self.ContentPanel:StretchToParent( 0, 0, 0, 0 ) - - DFrame.PerformLayout( self ) -end - -vgui.Register( "gms_menu", PANEL, "DFrame" ) - -/* Spawn menu override */ - -local ToAdd = {} -local function UpdateSavegames() - gSpawnMenu.AdminMenu.MapNameL:Clear() - for id, st in pairs( ToAdd ) do - gSpawnMenu.AdminMenu.MapNameL:AddChoice( st, st, true ) - end -end - -usermessage.Hook( "gms_AddLoadGameToList", function( um ) - local str = um:ReadString() - if ( table.HasValue( ToAdd, str ) ) then return end - table.insert( ToAdd, str ) - - if ( !IsValid( gSpawnMenu ) ) then return end - UpdateSavegames() -end ) - -usermessage.Hook( "gms_RemoveLoadGameFromList", function( um ) - local str = um:ReadString() - for id, st in pairs( ToAdd ) do if ( st == str ) then table.remove( ToAdd, id ) break end end - - if ( !IsValid( gSpawnMenu ) ) then return end - UpdateSavegames() -end ) - -function GM:OnSpawnMenuOpen() - if ( LocalPlayer():GetNWBool( "AFK" ) ) then return end - - if ( !IsValid( gSpawnMenu ) ) then - gSpawnMenu = vgui.Create( "gms_menu" ) - gSpawnMenu:SetVisible( false ) - - UpdateSavegames() - end - - gSpawnMenu.m_bHangOpen = false - - gSpawnMenu:MakePopup() - gSpawnMenu:SetVisible( true ) - gSpawnMenu:SetKeyboardInputEnabled( false ) - gSpawnMenu:SetMouseInputEnabled( true ) - gSpawnMenu:SetAlpha( 255 ) - - GAMEMODE.SkillsHud:MakePopup() - GAMEMODE.ResourcesHud:MakePopup() - GAMEMODE.CommandsHud:MakePopup() - - GAMEMODE.SkillsHud:SetKeyboardInputEnabled( false ) - GAMEMODE.ResourcesHud:SetKeyboardInputEnabled( false ) - GAMEMODE.CommandsHud:SetKeyboardInputEnabled( false ) - - GAMEMODE.CommandsHud:SetVisible( true ) - - gui.EnableScreenClicker( true ) - RestoreCursorPosition() -end - -function GM:OnSpawnMenuClose() - if ( gSpawnMenu.m_bHangOpen ) then - gSpawnMenu.m_bHangOpen = false - return - end - - if ( IsValid( gSpawnMenu ) and gSpawnMenu:IsVisible() ) then - gSpawnMenu:SetVisible( false ) - end - - GAMEMODE.SkillsHud:SetMouseInputEnabled( false ) - GAMEMODE.ResourcesHud:SetMouseInputEnabled( false ) - GAMEMODE.CommandsHud:SetMouseInputEnabled( false ) - - GAMEMODE.CommandsHud:SetVisible( false ) - - RememberCursorPosition() - gui.EnableScreenClicker( false ) -end - -hook.Add( "OnTextEntryGetFocus", "GMSSpawnMenuKeyboardFocusOn", function( pnl ) - - if ( !IsValid( gSpawnMenu ) || !IsValid( g_ContextMenu ) ) then return end - if ( IsValid( pnl ) && pnl.HasParent && !pnl:HasParent( gSpawnMenu ) && !pnl:HasParent( g_ContextMenu ) ) then return end - - gSpawnMenu:StartKeyFocus( pnl ) - -end ) - -hook.Add( "GUIMousePressed", "GMS_KindaFixWorldClicking", function() - GAMEMODE.SkillsHud:MakePopup() - GAMEMODE.ResourcesHud:MakePopup() - GAMEMODE.CommandsHud:MakePopup() - - GAMEMODE.SkillsHud:SetKeyboardInputEnabled( false ) - GAMEMODE.ResourcesHud:SetKeyboardInputEnabled( false ) - GAMEMODE.CommandsHud:SetKeyboardInputEnabled( false ) -end ) - -hook.Add( "OnTextEntryLoseFocus", "GMSSpawnMenuKeyboardFocusOff", function( pnl ) - - if ( !IsValid( gSpawnMenu ) || !IsValid( g_ContextMenu ) ) then return end - if ( IsValid( pnl ) && pnl.HasParent && !pnl:HasParent( gSpawnMenu ) && !pnl:HasParent( g_ContextMenu ) ) then return end - - gSpawnMenu:EndKeyFocus( pnl ) - -end ) - -function GM:SpawnMenuEnabled() - return false -end - -function GM:OnContextMenuOpen() - self.BaseClass.OnContextMenuOpen( self ) - menubar.Control:SetVisible( false ) - - GAMEMODE.SkillsHud:MakePopup() - GAMEMODE.ResourcesHud:MakePopup() - GAMEMODE.CommandsHud:MakePopup() - - GAMEMODE.SkillsHud:SetKeyboardInputEnabled( false ) - GAMEMODE.ResourcesHud:SetKeyboardInputEnabled( false ) - GAMEMODE.CommandsHud:SetKeyboardInputEnabled( false ) - - GAMEMODE.CommandsHud:SetVisible( true ) -end - -function GM:OnContextMenuClose() - self.BaseClass.OnContextMenuClose( self ) - menubar.Control:SetVisible( false ) - - GAMEMODE.SkillsHud:SetMouseInputEnabled( false ) - GAMEMODE.ResourcesHud:SetMouseInputEnabled( false ) - GAMEMODE.CommandsHud:SetMouseInputEnabled( false ) - - GAMEMODE.CommandsHud:SetVisible( false ) -end |
