diff options
| author | Alexander Pickering <alexandermpickering@gmail.com> | 2016-04-29 22:17:10 -0400 |
|---|---|---|
| committer | Alexander Pickering <alexandermpickering@gmail.com> | 2016-04-29 22:17:10 -0400 |
| commit | c90d4ae74d9a51249009ebac34d3627bc3812fa3 (patch) | |
| tree | f3e50280481e56bc87093490ea091bdd7a956223 | |
| parent | 6f6cce0561c19e7af14bcc6e6b1c7de2d5efc530 (diff) | |
| download | gmstranded-c90d4ae74d9a51249009ebac34d3627bc3812fa3.tar.gz gmstranded-c90d4ae74d9a51249009ebac34d3627bc3812fa3.tar.bz2 gmstranded-c90d4ae74d9a51249009ebac34d3627bc3812fa3.zip | |
Fixed up inventory
| -rw-r--r-- | gamemode/client/cl_inventory.lua | 30 | ||||
| -rw-r--r-- | gamemode/client/cl_syncronize.lua | 1 | ||||
| -rw-r--r-- | gamemode/itemsystem/common.lua | 51 | ||||
| -rw-r--r-- | gamemode/itemsystem/items/baits.lua | 18 | ||||
| -rw-r--r-- | gamemode/itemsystem/items/bananaseeds.lua | 18 | ||||
| -rw-r--r-- | gamemode/itemsystem/items/berry.lua | 18 | ||||
| -rw-r--r-- | gamemode/itemsystem/items/grainseeds.lua | 18 | ||||
| -rw-r--r-- | gamemode/itemsystem/items/herbs.lua | 18 | ||||
| -rw-r--r-- | gamemode/itemsystem/items/melonseeds.lua | 18 | ||||
| -rw-r--r-- | gamemode/itemsystem/items/orangeseeds.lua | 18 | ||||
| -rw-r--r-- | gamemode/server/player_functions.lua | 5 |
11 files changed, 88 insertions, 125 deletions
diff --git a/gamemode/client/cl_inventory.lua b/gamemode/client/cl_inventory.lua index 94690ac..ab6f196 100644 --- a/gamemode/client/cl_inventory.lua +++ b/gamemode/client/cl_inventory.lua @@ -25,6 +25,13 @@ local function createPanel() frame:SetTitle( "Inventory" ) frame:MakePopup() frame:SetPos(scrx-invxsize,0) + frame:SetKeyboardInputEnabled(true) + frame:ShowCloseButton(false) + frame.OnKeyCodePressed = function(self, key) + if(key == KEY_Q) then + frame:Close() + end + end local tabsheet = vgui.Create("DPropertySheet", frame) tabsheet:Dock(FILL) @@ -41,6 +48,7 @@ local function createPanel() end --Inventory + local layout = vgui.Create( "DTileLayout", invtab ) layout:SetBaseSize( 64 ) -- Tile size layout:Dock( FILL ) @@ -48,6 +56,9 @@ local function createPanel() layout:MakeDroppable( "unique_name" ) -- Allows us to rearrange children PrintTable(Resources) for k, v in SortedPairs( Resources ) do + if(v == 0) then + continue + end local selection = vgui.Create("DImageButton") if(GMS.Resources[k] == nil) then --This resource is not registered! selection:SetImage("vgui/avatar_default") @@ -77,13 +88,32 @@ local function createPanel() end layout:Add( selection ) end + + return frame end local invpanel = nil function GM:OnSpawnMenuOpen() print("Spawn menu hooked correctly") + if(invpanel == nil) then invpanel = createPanel() + return + end + print("Not nil") + if(! invpanel:IsValid()) then + invpanel = createPanel() + return + end +end + +function GM:ReloadSpawnMenu() + if(!invpanel:IsValid()) then + return + end + if(invpanel != nil) then + invpanel:Close() + invpanel = createPanel() end end diff --git a/gamemode/client/cl_syncronize.lua b/gamemode/client/cl_syncronize.lua index 32d667c..189dd08 100644 --- a/gamemode/client/cl_syncronize.lua +++ b/gamemode/client/cl_syncronize.lua @@ -21,6 +21,7 @@ net.Receive( "gms_SetResource", function( length, pl) Resources[name] = num end print("Finished resource get") + GAMEMODE:ReloadSpawnMenu() end) concommand.Add("gms_cl_printresources",function(ply,cmd,args) diff --git a/gamemode/itemsystem/common.lua b/gamemode/itemsystem/common.lua index f7d6c72..65239d6 100644 --- a/gamemode/itemsystem/common.lua +++ b/gamemode/itemsystem/common.lua @@ -17,6 +17,43 @@ function startProcessGeneric(player, string, time, ondone) end) end +function genericMakeDroppable(tbl) + local drop1 = function(player) + genericDropResource(player,tbl.Name,1) + end + local dropall = function(player) + PrintTable(Resources) + print("Ammount:" .. Resources[tbl.Name]) + genericDropResource(player,tbl.Name,Resources[tbl.Name]) + end + local dropx = function(player) + if(SERVER) then return end + local frame = vgui.Create( "DFrame" ) + frame:SetSize( 400, 200 ) + frame:Center() + frame:MakePopup() + + local TextEntry = vgui.Create( "DTextEntry", frame ) -- create the form as a child of frame + TextEntry:SetPos( 25, 50 ) + TextEntry:SetSize( 75, 85 ) + TextEntry:SetText( "Sample String" ) + TextEntry.OnEnter = function( self ) + genericDropResource(player,tbl.Name,self:GetValue()) + end + + end + if(tbl.Actions == nil) then + tbl.Actions = {} + end + if(tbl.Actions["Drop"] == nil) then + tbl.Actions["Drop"] = {} + end + tbl.Actions["Drop"]["Drop 1"] = drop1 + tbl.Actions["Drop"]["Drop all"] = dropall + tbl.Actions["Drop"]["Drop X"] = dropx +end + + if(SERVER) then util.AddNetworkString( "gms_dropresources" ) end @@ -28,19 +65,23 @@ function genericDropResource(player, resource, ammount) net.SendToServer() end if(SERVER) then - if(player.Resources[resource] <= ammount) then + if(player.Resources[resource] < ammount) then player:SendMessage("You don't have that many to drop!", 3, Color(255, 255, 255, 255)) return end - local res = ply:GetResource( Type ) + local res = player.Resources[resource] if ( ammount > res ) then ammount = res end - ply:DropResource( Type, int ) - ply:DecResource( Type, int ) + player:DropResource( resource, ammount ) + player:DecResource( resource, ammount ) end end net.Receive( "gms_dropresources", function(len,pl) - genericDropResource(pl,net.ReadString(),net.ReadInt(GMS.NETINT_BITCOUNT)) + local resourcename = net.ReadString() + local resourcenum = net.ReadInt(GMS.NETINT_BITCOUNT) + print("resourcename:" .. resourcename) + print("resourcenum:" .. resourcenum) + genericDropResource(pl,resourcename,resourcenum) end) diff --git a/gamemode/itemsystem/items/baits.lua b/gamemode/itemsystem/items/baits.lua index 47bf1d0..f6824cd 100644 --- a/gamemode/itemsystem/items/baits.lua +++ b/gamemode/itemsystem/items/baits.lua @@ -5,22 +5,6 @@ ITEM.Description = "Something you can plant!" ITEM.Icon = "test.png" ITEM.UniqueData = false -local drop1 = function(player) - print("Drop 1 called") -end - -local dropall = function(player) - print("Drop all called") -end - -local dropx = function(player) - print("Drop x called") -end - -ITEM.Actions = {} -ITEM.Actions["Drop"] = {} -ITEM.Actions["Drop"]["Drop 1"] = drop1 -ITEM.Actions["Drop"]["Drop all"] = dropall -ITEM.Actions["Drop"]["Drop X"] = dropx +genericMakeDroppable(ITEM) GMS.RegisterResource(ITEM) diff --git a/gamemode/itemsystem/items/bananaseeds.lua b/gamemode/itemsystem/items/bananaseeds.lua index 358ed63..103bca9 100644 --- a/gamemode/itemsystem/items/bananaseeds.lua +++ b/gamemode/itemsystem/items/bananaseeds.lua @@ -5,22 +5,6 @@ ITEM.Description = "Something you can plant!" ITEM.Icon = "test.png" ITEM.UniqueData = false -local drop1 = function(player) - print("Drop 1 called") -end - -local dropall = function(player) - print("Drop all called") -end - -local dropx = function(player) - print("Drop x called") -end - -ITEM.Actions = {} -ITEM.Actions["Drop"] = {} -ITEM.Actions["Drop"]["Drop 1"] = drop1 -ITEM.Actions["Drop"]["Drop all"] = dropall -ITEM.Actions["Drop"]["Drop X"] = dropx +genericMakeDroppable(ITEM) GMS.RegisterResource(ITEM) diff --git a/gamemode/itemsystem/items/berry.lua b/gamemode/itemsystem/items/berry.lua index 2021ffd..125a78b 100644 --- a/gamemode/itemsystem/items/berry.lua +++ b/gamemode/itemsystem/items/berry.lua @@ -30,24 +30,8 @@ local eat = function(ln, player) end net.Receive( "gms_eatberry", eat) -local drop1 = function(player) - genericDropResource(player,ITEM.Name,1) -end - -local dropall = function(player) - genericDropResource(player,ITEM.Name,9999) -end - -local dropx = function(player) - print("Drop x called") -end - ITEM.Actions = {} +genericMakeDroppable(ITEM) ITEM.Actions["EatBerry"] = eat -ITEM.Actions["Drop"] = {} -ITEM.Actions["Drop"]["Drop 1"] = drop1 -ITEM.Actions["Drop"]["Drop all"] = dropall -ITEM.Actions["Drop"]["Drop X"] = dropx - GMS.RegisterResource(ITEM) diff --git a/gamemode/itemsystem/items/grainseeds.lua b/gamemode/itemsystem/items/grainseeds.lua index 9b22a0b..be81e5f 100644 --- a/gamemode/itemsystem/items/grainseeds.lua +++ b/gamemode/itemsystem/items/grainseeds.lua @@ -5,22 +5,6 @@ ITEM.Description = "Something you can plant, or mash up into flour" ITEM.Icon = "test.png" ITEM.UniqueData = false -local drop1 = function(player) - print("Drop 1 called") -end - -local dropall = function(player) - print("Drop all called") -end - -local dropx = function(player) - print("Drop x called") -end - -ITEM.Actions = {} -ITEM.Actions["Drop"] = {} -ITEM.Actions["Drop"]["Drop 1"] = drop1 -ITEM.Actions["Drop"]["Drop all"] = dropall -ITEM.Actions["Drop"]["Drop X"] = dropx +genericMakeDroppable(ITEM) GMS.RegisterResource(ITEM) diff --git a/gamemode/itemsystem/items/herbs.lua b/gamemode/itemsystem/items/herbs.lua index 9db5417..c9339ce 100644 --- a/gamemode/itemsystem/items/herbs.lua +++ b/gamemode/itemsystem/items/herbs.lua @@ -5,22 +5,6 @@ ITEM.Description = "Something you can plant!" ITEM.Icon = "test.png" ITEM.UniqueData = false -local drop1 = function(player) - print("Drop 1 called") -end - -local dropall = function(player) - print("Drop all called") -end - -local dropx = function(player) - print("Drop x called") -end - -ITEM.Actions = {} -ITEM.Actions["Drop"] = {} -ITEM.Actions["Drop"]["Drop 1"] = drop1 -ITEM.Actions["Drop"]["Drop all"] = dropall -ITEM.Actions["Drop"]["Drop X"] = dropx +genericMakeDroppable(ITEM) GMS.RegisterResource(ITEM) diff --git a/gamemode/itemsystem/items/melonseeds.lua b/gamemode/itemsystem/items/melonseeds.lua index 874ac46..84d4f95 100644 --- a/gamemode/itemsystem/items/melonseeds.lua +++ b/gamemode/itemsystem/items/melonseeds.lua @@ -5,22 +5,6 @@ ITEM.Description = "Something you can plant!" ITEM.Icon = "test.png" ITEM.UniqueData = false -local drop1 = function(player) - print("Drop 1 called") -end - -local dropall = function(player) - print("Drop all called") -end - -local dropx = function(player) - print("Drop x called") -end - -ITEM.Actions = {} -ITEM.Actions["Drop"] = {} -ITEM.Actions["Drop"]["Drop 1"] = drop1 -ITEM.Actions["Drop"]["Drop all"] = dropall -ITEM.Actions["Drop"]["Drop X"] = dropx +genericMakeDroppable(ITEM) GMS.RegisterResource(ITEM) diff --git a/gamemode/itemsystem/items/orangeseeds.lua b/gamemode/itemsystem/items/orangeseeds.lua index 33fd698..39a2bec 100644 --- a/gamemode/itemsystem/items/orangeseeds.lua +++ b/gamemode/itemsystem/items/orangeseeds.lua @@ -5,22 +5,6 @@ ITEM.Description = "Something you can plant!" ITEM.Icon = "test.png" ITEM.UniqueData = false -local drop1 = function(player) - print("Drop 1 called") -end - -local dropall = function(player) - print("Drop all called") -end - -local dropx = function(player) - print("Drop x called") -end - -ITEM.Actions = {} -ITEM.Actions["Drop"] = {} -ITEM.Actions["Drop"]["Drop 1"] = drop1 -ITEM.Actions["Drop"]["Drop all"] = dropall -ITEM.Actions["Drop"]["Drop X"] = dropx +genericMakeDroppable(ITEM) GMS.RegisterResource(ITEM) diff --git a/gamemode/server/player_functions.lua b/gamemode/server/player_functions.lua index b335553..646f851 100644 --- a/gamemode/server/player_functions.lua +++ b/gamemode/server/player_functions.lua @@ -199,7 +199,7 @@ function PlayerMeta:IncResource( resource, int ) end function PlayerMeta:DecResource( resource, int ) - if ( !self.Resources[resource] ) then self.Resources[resource] = 0 end + if ( self.Resources[resource] == nil ) then self.Resources[resource] = 0 end self.Resources[resource] = self.Resources[resource] - int local r = self.Resources[resource] @@ -290,6 +290,9 @@ function PlayerMeta:GetBuildingSite() end function PlayerMeta:DropResource( resource, int ) + print("PlayerMeta:DropResource") + print("Resource:" .. resource) + print("Ammount:" .. int) local nearby = {} for k, v in pairs( ents.FindByClass( "gms_resource*" ) ) do |
