From 7bd16534d1df5308c673e8dddd8aef9042db0fc2 Mon Sep 17 00:00:00 2001 From: Fesiug Date: Sat, 16 Dec 2023 20:27:46 -0500 Subject: [PATCH] Mainmenu WIP thing --- .../gamemode/modules/gui/cl_mainmenu.lua | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 gamemodes/benny/gamemode/modules/gui/cl_mainmenu.lua diff --git a/gamemodes/benny/gamemode/modules/gui/cl_mainmenu.lua b/gamemodes/benny/gamemode/modules/gui/cl_mainmenu.lua new file mode 100644 index 0000000..0a7cb99 --- /dev/null +++ b/gamemodes/benny/gamemode/modules/gui/cl_mainmenu.lua @@ -0,0 +1,93 @@ + +-- Main menu + +local meow = { + "RESUME", + "", + "START GAME", + "LOAD GAME", + "", + "JOIN SERVER", + "START SERVER", + "", + "OPTIONS", + "QUIT", +} + +local function unimplemented() + if mb and mb:IsValid() then mb:Remove() end + mb = vgui.Create( "BFrame" ) + mb:SetSize( ss(160), ss(50) ) + mb:Center() + mb:MakePopup() + + mb:SetTitle( "Woops!" ) + + local oldpaint = mb.Paint + function mb:Paint( w, h ) + oldpaint( self, w, h ) + surface.SetDrawColor( schema("fg") ) + surface.DrawOutlinedRect( 0, 0, w, h, ss(1) ) + + draw.SimpleText( "That isn't implemented yet.", "Benny_12", w/2, ss(18), schema_c("fg"), TEXT_ALIGN_CENTER ) + end + + local okbutton = mb:Add("DButton") + okbutton:SetText("") + okbutton:SetSize( ss(30), ss(12) ) + okbutton:SetPos( mb:GetWide()/2 - okbutton:GetWide()/2, mb:GetTall() - okbutton:GetTall() - ss(6) ) + function okbutton:Paint( w, h ) + surface.SetDrawColor( schema("bg") ) + surface.DrawRect( 0, 0, w, h ) + surface.SetDrawColor( schema("fg") ) + surface.DrawOutlinedRect( 0, 0, w, h, ss(1) ) + draw.SimpleText( "OK", "Benny_10", w/2, ss(2), schema_c("fg"), TEXT_ALIGN_CENTER ) + end + function okbutton:DoClick() + mb:Remove() + end +end + +function CreateMainMenu() + if mm and mm:IsValid() then mm:Remove() end + mm = vgui.Create( "BFrame" ) + mm:SetSize( ScrW(), ScrH() ) + mm:Center() + mm:MakePopup() + mm:SetPopupStayAtBack( true ) + + mm:SetTitle("Main Menu") + + local oldpaint = mm.Paint + function mm:Paint( w, h ) + oldpaint( self, w, h ) + + draw.SimpleText( "YOUR", "Benny_48", ss(34), self:GetTall()/2 - ss(54 + (28*3)), schema_c("fg") ) + draw.SimpleText( "NAME", "Benny_48", ss(34), self:GetTall()/2 - ss(54 + (28*2)), schema_c("fg") ) + draw.SimpleText( "IS", "Benny_48", ss(34), self:GetTall()/2 - ss(54 + (28*1)), schema_c("fg") ) + draw.SimpleText( "BENNY", "Benny_72", ss(32), self:GetTall()/2 - ss(58 + (28*0)), schema_c("fg") ) + end + + local bump = -ss(16) + for i=#meow, 1, -1 do + local label = meow[i] + local spacer = label == "" + local button = mm:Add("DButton") + button:SetText("") + button:SetSize( ss(256), ss(spacer and 0 or 16) ) + button:SetPos( ss(32), mm:GetTall() + ss(bump) ) + function button:Paint( w, h ) + if !spacer then + surface.SetDrawColor( schema("bg") ) + surface.DrawRect( 0, 0, w, h ) + surface.SetDrawColor( schema("fg") ) + surface.DrawOutlinedRect( 0, 0, w, h, ss(0.5) ) + + draw.SimpleText( label, "Benny_16", ss(4+16), ss(2), schema_c("fg") ) + end + end + button.DoClick = unimplemented + bump = bump - (spacer and 12 or (16+4)) + end + +end \ No newline at end of file