diff options
| -rw-r--r-- | entities/entities/gms_furnace_generic.lua | 5 | ||||
| -rw-r--r-- | gamemode/cl_init.lua | 3 | ||||
| -rw-r--r-- | gamemode/cl_qmenu.lua | 132 | ||||
| -rw-r--r-- | gamemode/client/cl_inventory.lua | 43 | ||||
| -rw-r--r-- | gamemode/client/cl_quickmenu.lua | 19 | ||||
| -rw-r--r-- | gamemode/configure_me.lua | 12 | ||||
| -rw-r--r-- | gamemode/init.lua | 2 | ||||
| -rw-r--r-- | gamemode/itemsystem/items/berry.lua | 6 | ||||
| -rw-r--r-- | gamemode/itemsystem/loaditems.lua | 14 | ||||
| -rw-r--r-- | gamemode/resources.lua | 13 | ||||
| -rw-r--r-- | gamemode/server/entity_functions.lua | 2 | ||||
| -rw-r--r-- | gamemode/shared.lua | 12 | ||||
| -rw-r--r-- | gamemode/utility.lua | 12 |
13 files changed, 177 insertions, 98 deletions
diff --git a/entities/entities/gms_furnace_generic.lua b/entities/entities/gms_furnace_generic.lua index 124a5a8..a2650e3 100644 --- a/entities/entities/gms_furnace_generic.lua +++ b/entities/entities/gms_furnace_generic.lua @@ -32,7 +32,6 @@ function ENT:InitalizeShared() for k,v in pairs(init_table) do if (self[v[1]]) then - print("v[2] is:"..v[2]) v[2](self[v[1]]) elseif (v[3] != nil) then v[2](self[v[3]]) @@ -42,5 +41,7 @@ function ENT:InitalizeShared() end function ENT:OnUse( ply ) - ply:OpenCombiMenu( "gms_copperfurnace" ) + if(self.use != nil) then + self:use(ply) + end end diff --git a/gamemode/cl_init.lua b/gamemode/cl_init.lua index 6a17abc..2d1cb98 100644 --- a/gamemode/cl_init.lua +++ b/gamemode/cl_init.lua @@ -1,10 +1,11 @@ include( "configure_me.lua") include( "utility.lua") includeFolder("craftablesystem",true) +includeFolder("client",true) include( "shared.lua" ) -include( "cl_qmenu.lua" ) +--include( "cl_qmenu.lua" ) include( "cl_scoreboard.lua" ) include( "cl_panels.lua" ) include( "cl_hud.lua" ) diff --git a/gamemode/cl_qmenu.lua b/gamemode/cl_qmenu.lua index 2a6d248..f5e8740 100644 --- a/gamemode/cl_qmenu.lua +++ b/gamemode/cl_qmenu.lua @@ -6,7 +6,7 @@ AccessorFunc( PANEL, "m_bAlt", "Alt" ) AccessorFunc( PANEL, "m_bSelected", "Selected" ) function PANEL:Init() - self:SetContentAlignment( 4 ) + self:SetContentAlignment( 4 ) self:SetTextInset( 5, 0 ) self:SetTall( 15 ) end @@ -48,7 +48,7 @@ function PANEL:PerformLayout() end function PANEL:AddCheckBox( strConVar ) - if ( !self.Checkbox ) then + if ( !self.Checkbox ) then self.Checkbox = vgui.Create( "DCheckBox", self ) end @@ -65,7 +65,7 @@ function PANEL:Init() self:SetSpacing( 5 ) self:SetPadding( 5 ) self:EnableHorizontal( false ) - self:EnableVerticalScrollbar( true ) + self:EnableVerticalScrollbar( true ) function self:Paint() draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) ) end @@ -76,8 +76,8 @@ function PANEL:Init() cat:SetLabel( k ) local IconList = vgui.Create( "DPanelList", cat ) - IconList:EnableVerticalScrollbar( true ) - IconList:EnableHorizontal( true ) + IconList:EnableVerticalScrollbar( true ) + IconList:EnableHorizontal( true ) IconList:SetAutoSize( true ) IconList:SetSpacing( 5 ) IconList:SetPadding( 5 ) @@ -89,9 +89,9 @@ function PANEL:Init() 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 ) ) + --Icon:SetIconSize( 64 ) + Icon:InvalidateLayout( true ) + Icon:SetToolTip( Format( "%s", value ) ) IconList:AddItem( Icon ) end end @@ -119,7 +119,7 @@ function PANEL:Init() 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 @@ -129,29 +129,29 @@ function PANEL:Init() if ( !ToolTables ) then LocalPlayer():ChatPrint( "ERROR: Tools List could not be loaded." ) return end - for k, v in pairs( ToolTables[1].Items ) do + 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 ) + 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.Category = vgui.Create( "DCollapsibleCategory" ) self.Tools:AddItem( self.Category ) - self.Category:SetLabel( Label ) - self.Category:SetCookieName( "ToolMenu." .. tostring( Name ) ) + 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 ) + 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 @@ -160,23 +160,23 @@ function PANEL:AddCategory( Name, Label, ToolItems ) 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 ) + 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 + 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.ControlPanelBuildFunction = v.CPanelFunction + Item.Command = v.Command + Item.Name = v.ItemName + Item.Controls = v.Controls + Item.Text = v.Text - Item:SetAlt( bAlt ) - bAlt = !bAlt + Item:SetAlt( bAlt ) + bAlt = !bAlt self.CategoryContent:AddItem( Item ) end @@ -187,28 +187,28 @@ function PANEL:AddCategory( Name, Label, ToolItems ) end end -function PANEL:EnableControlPanel( button ) - if ( self.LastSelected ) then +function PANEL:EnableControlPanel( button ) + if ( self.LastSelected ) then self.LastSelected:SetSelected( false ) - end + end - button:SetSelected( true ) - self.LastSelected = button + button:SetSelected( true ) + self.LastSelected = button - local cp = controlpanel.Get( button.Name ) - if ( !cp:GetInitialized() ) then - cp:FillViaTable( button ) - end + local cp = controlpanel.Get( button.Name ) + if ( !cp:GetInitialized() ) then + cp:FillViaTable( button ) + end - self.ContextPanel:Clear() - self.ContextPanel:AddItem( cp ) - self.ContextPanel:Rebuild() + self.ContextPanel:Clear() + self.ContextPanel:AddItem( cp ) + self.ContextPanel:Rebuild() - g_ActiveControlPanel = cp + g_ActiveControlPanel = cp - if ( button.Command ) then - LocalPlayer():ConCommand( button.Command ) - end + if ( button.Command ) then + LocalPlayer():ConCommand( button.Command ) + end end function PANEL:Paint() @@ -427,7 +427,7 @@ function PANEL:Init() 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" ) @@ -443,7 +443,7 @@ function PANEL:Think() 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 @@ -459,18 +459,18 @@ function PANEL:Think() 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 @@ -483,13 +483,13 @@ function PANEL:Think() 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" ) @@ -773,7 +773,7 @@ function PANEL:PerformLayout() // 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 ) @@ -880,14 +880,14 @@ 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() @@ -911,7 +911,7 @@ function GM:OnSpawnMenuOpen() end function GM:OnSpawnMenuClose() - if ( gSpawnMenu.m_bHangOpen ) then + if ( gSpawnMenu.m_bHangOpen ) then gSpawnMenu.m_bHangOpen = false return end diff --git a/gamemode/client/cl_inventory.lua b/gamemode/client/cl_inventory.lua new file mode 100644 index 0000000..9e18040 --- /dev/null +++ b/gamemode/client/cl_inventory.lua @@ -0,0 +1,43 @@ +print("Custom inventory loaded") + +local function createPanel() + local frame = vgui.Create( "DFrame" ) + frame:SetSize( 300, 300 ) + frame:SetTitle( "Inventory" ) + frame:MakePopup() + frame:Center() + + local layout = vgui.Create( "DTileLayout", frame ) + layout:SetBaseSize( 32 ) -- Tile size + layout:Dock( FILL ) + + //Draw a background so we can see what it's doing + --layout:SetDrawBackground( true ) + --layout:SetBackgroundColor( Color( 0, 100, 100 ) ) + + layout:MakeDroppable( "unique_name" ) -- Allows us to rearrange children + for k, v in SortedPairs( Resources ) do + layout:Add( Label( v .. k) ) + end + /* + for i = 1, 32 do + layout:Add( Label( " Label " .. i ) ) + end + */ +end + +local invpanel = nil +function GM:OnSpawnMenuOpen() + print("Spawn menu hooked correctly") + if(invpanel == nil) then + invpanel = createPanel() + end +end + +function GM:OnSpawnMenuClose() + +end + +function GM:SpawnMenuEnabled() + return false +end diff --git a/gamemode/client/cl_quickmenu.lua b/gamemode/client/cl_quickmenu.lua new file mode 100644 index 0000000..2ce0bbb --- /dev/null +++ b/gamemode/client/cl_quickmenu.lua @@ -0,0 +1,19 @@ +function GM:OnContextMenuOpen() + print("Context menu hooked correctly") + local Menu = DermaMenu() -- Is the same as vgui.Create( "DMenu" ) + Menu:AddOption( "Simple option" ) -- Add a simple option. + + local btnWithIcon = Menu:AddOption( "Option with icon" ) -- Simple option, but we're going to add an icon + btnWithIcon:SetIcon( "icon16/bug.png" ) -- Icons are in materials/icon16 folder + + Menu:AddSpacer() -- Adds a simple line spacer + + local SubMenu = Menu:AddSubMenu( "A Sub Menu" ) -- Add a submenu + SubMenu:AddOption( "Sub Option #1" ):SetIcon( "icon16/group.png" ) -- SetIcon possible like this + + Menu:Open() +end + +function GM:OnContextMenuClose() + +end diff --git a/gamemode/configure_me.lua b/gamemode/configure_me.lua index 8b980fc..e52b961 100644 --- a/gamemode/configure_me.lua +++ b/gamemode/configure_me.lua @@ -1,3 +1,11 @@ -GMS = {} -print("Hello from configure_me.lua!") +/* Authors! + + The Stranded Team! + jA_cOp, prop_dynamic, Chewgum, Wokkel, robotboy655 + + Additional content by + Djarex, Apickx +*/ + +//Make sure that this is the gamemode folder name GM.GAMEMODE_FOLDER_NAME = "gmsurvival" diff --git a/gamemode/init.lua b/gamemode/init.lua index e8a8600..6441444 100644 --- a/gamemode/init.lua +++ b/gamemode/init.lua @@ -3,9 +3,11 @@ include( "utility.lua") include( "init_static.lua") AddCSLuaFolder("client",false) AddCSLuaFolder("craftablesystem",true) +AddCSLuaFolder("itemsystem",true) includeFolder("server",false) includeFolder("craftablesystem",true) +includeFolder("itemsystem",true) -- Send clientside files diff --git a/gamemode/itemsystem/items/berry.lua b/gamemode/itemsystem/items/berry.lua new file mode 100644 index 0000000..610147f --- /dev/null +++ b/gamemode/itemsystem/items/berry.lua @@ -0,0 +1,6 @@ +ITEM = {} + +ITEM.Name = "Berry" +ITEM.Description = "A delicious edible!" + +GMS.RegisterResource(ITEM) diff --git a/gamemode/itemsystem/loaditems.lua b/gamemode/itemsystem/loaditems.lua new file mode 100644 index 0000000..8f8313b --- /dev/null +++ b/gamemode/itemsystem/loaditems.lua @@ -0,0 +1,14 @@ +GMS.Resources = {} +function GMS.RegisterResource( tbl ) + local sname = string.Replace(tbl.Name, " ", "_") + print("Registering " .. sname) + GMS.Resources[sname] = tbl +end + +function GMS.GetItemByName(name) + if(GMS.Resources[name]) then + return GMS.Resources[name] + else + print("Resource " .. name .. " does not exist! This might be a bug!") + end +end diff --git a/gamemode/resources.lua b/gamemode/resources.lua index 16ccfcb..00c4691 100644 --- a/gamemode/resources.lua +++ b/gamemode/resources.lua @@ -1,17 +1,4 @@ //Loads all the reources into cache. - -function addResourceFolder(folderpath,recursive) - local files, directories = file.find(folderpath .. "*", "GAME") - if(recursive) then - for k,v in pairs(directories) do - addResourceFolder(folderpath..v,recursive) - end - end - for k,v in pairs(files) do - resource.AddFile(v) - end -end - addResourceFolder("models/weapons/") addResourceFolder("materials/models/weapons/") addResourceFolder("materials/gm_forest/") diff --git a/gamemode/server/entity_functions.lua b/gamemode/server/entity_functions.lua index 8f18383..e5b91c1 100644 --- a/gamemode/server/entity_functions.lua +++ b/gamemode/server/entity_functions.lua @@ -85,8 +85,6 @@ end GMS.FadingOutProps = {} GMS.FadingInProps = {} -print("GMS_FadingInProps initalized") - function EntityMeta:Fadeout( speed ) if ( !IsValid( self ) ) then return end local speed = speed or 1 diff --git a/gamemode/shared.lua b/gamemode/shared.lua index cf25565..adde491 100644 --- a/gamemode/shared.lua +++ b/gamemode/shared.lua @@ -1,15 +1,3 @@ - -/* - Authors! The Stranded Team! - jA_cOp, prop_dynamic, Chewgum, Wokkel, robotboy655 - - READ THIS: - If you want to add custom content or edit anything in gamemode - DO NOT. Please read customcontent.lua! - - ������ ���: - ���� �� ����������� ��� ��� ���� �������� - �� ����� �����. ������ ���� customcontent.lua! -*/ - DeriveGamemode( "sandbox" ) GM.Name = "Garry's Mod Stranded" diff --git a/gamemode/utility.lua b/gamemode/utility.lua index 24c59b0..ea3435e 100644 --- a/gamemode/utility.lua +++ b/gamemode/utility.lua @@ -26,3 +26,15 @@ end function includeFolder(folderstring,recursive) findRecursive(folderstring,recursive,function(string) include(string) end) end + +function addResourceFolder(folderpath,recursive) + local files, directories = file.find(folderpath .. "*", "GAME") + if(recursive) then + for k,v in pairs(directories) do + addResourceFolder(folderpath..v,recursive) + end + end + for k,v in pairs(files) do + resource.AddFile(v) + end +end |
