summaryrefslogtreecommitdiff
path: root/gamemode
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2016-04-29 22:17:10 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2016-04-29 22:17:10 -0400
commitc90d4ae74d9a51249009ebac34d3627bc3812fa3 (patch)
treef3e50280481e56bc87093490ea091bdd7a956223 /gamemode
parent6f6cce0561c19e7af14bcc6e6b1c7de2d5efc530 (diff)
downloadgmstranded-c90d4ae74d9a51249009ebac34d3627bc3812fa3.tar.gz
gmstranded-c90d4ae74d9a51249009ebac34d3627bc3812fa3.tar.bz2
gmstranded-c90d4ae74d9a51249009ebac34d3627bc3812fa3.zip
Fixed up inventory
Diffstat (limited to 'gamemode')
-rw-r--r--gamemode/client/cl_inventory.lua30
-rw-r--r--gamemode/client/cl_syncronize.lua1
-rw-r--r--gamemode/itemsystem/common.lua51
-rw-r--r--gamemode/itemsystem/items/baits.lua18
-rw-r--r--gamemode/itemsystem/items/bananaseeds.lua18
-rw-r--r--gamemode/itemsystem/items/berry.lua18
-rw-r--r--gamemode/itemsystem/items/grainseeds.lua18
-rw-r--r--gamemode/itemsystem/items/herbs.lua18
-rw-r--r--gamemode/itemsystem/items/melonseeds.lua18
-rw-r--r--gamemode/itemsystem/items/orangeseeds.lua18
-rw-r--r--gamemode/server/player_functions.lua5
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