aboutsummaryrefslogtreecommitdiff
path: root/gamemode/client/cl_inventory.lua
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/client/cl_inventory.lua')
-rw-r--r--gamemode/client/cl_inventory.lua48
1 files changed, 43 insertions, 5 deletions
diff --git a/gamemode/client/cl_inventory.lua b/gamemode/client/cl_inventory.lua
index b1f5728..0c84e5c 100644
--- a/gamemode/client/cl_inventory.lua
+++ b/gamemode/client/cl_inventory.lua
@@ -10,7 +10,9 @@
]]
local qinv = nrequire("cl_qinventory.lua")
local state = nrequire("cl_state.lua") --Holds weather or not player is in inventory
+local itm = nrequire("core/inventory/item.lua")
--local qpray = nrequire("cl_qprayers.lua")
+local inv = {}
print("Hello from cl_inventory.lua")
--debug.Trace()
@@ -31,6 +33,9 @@ local qtabs = {} --The tabs
local width = ScrW()
local height = ScrH()
+local credits = 0
+local creditslabel
+local droppanel --Dpanel to drop things on when they are dropped, should be the backmost panel, and cover the entire screen.
local player_data --The data the player needs to show the q panel
net.Receive("art_load_player_data",function()
@@ -38,12 +43,15 @@ net.Receive("art_load_player_data",function()
player_data = net.ReadTable()
print("It was")
PrintTable(player_data)
+ credits = player_data.credits
+ if creditslabel then creditslabel:SetText(credits) end
+ print("Credits was", credits)
end)
local function BuildInventory()
print("Building inventory")
- if qframe then return end
- if not player_data then print("no player data!") return end
+ if qframe and IsValid(qframe) then return end
+ if not player_data then print("no player data!") player_data = {credits = 0} end
qframe = vgui.Create("DFrame")
qframe:SetPos(0,0)
qframe:SetSize(width / 4, height)
@@ -51,6 +59,7 @@ local function BuildInventory()
qframe:SetDraggable(true)
qframe:MakePopup()
qframe.OnClose = function(self)
+ droppanel:Hide()
state.invopen = false
self:Hide()
return
@@ -58,8 +67,18 @@ local function BuildInventory()
qframe.Remove = function(self)
state.invopen = false
self:Hide()
+ droppanel:Hide()
return
end
+
+ creditslabel = vgui.Create("DLabel",qframe)
+ creditslabel:SetText(credits)
+ creditslabel:SetPos(150,5)
+
+ local creditstext = vgui.Create("DLabel",qframe)
+ creditstext:SetText("Credits:")
+ creditstext:SetPos(100,5)
+
local tabsheet = vgui.Create("DPropertySheet",qframe)
tabsheet:Dock(FILL)
@@ -74,17 +93,34 @@ local function BuildInventory()
end
-local function ShowInventory()
+function inv.ShowInventory()
print("qframe is ", qframe)
if not qframe then BuildInventory()
else qframe:Show() end
state.invopen = true
+ droppanel = vgui.Create("DPanel")
+ droppanel:SetSize(ScrW(),ScrH())
+ droppanel:SetPos(0,0)
+ droppanel:MoveToBack()
+ droppanel:SetAlpha(10)
+ droppanel:Receiver("item",function(self,panels,dropped,_,_,_)
+ if not dropped then return end
+ print("Dropedpanel had something dropped on it!")
+ --Drop the item
+ print("Pnl:",pnl)
+ local froment = panels[1].info.owner
+ local fromid = panels[1].info.id
+ local frompos = panels[1].info.pos
+ local frominv = panels[1].info.inv
+ itm.DropItem(froment,fromid,frompos)
+ end,{})
end
-hook.Add("OnSpawnMenuOpen","ArteryOpenInventory",ShowInventory)
+hook.Add("OnSpawnMenuOpen","ArteryOpenInventory",inv.ShowInventory)
hook.Add("OnSpawnMenuClose","ArteryCloseInventory",function()
+ droppanel:Remove()
state.invopen = false
qframe:Hide()
if (not sheet) or (not sheet:GetActiveTab()) or (not sheet:GetActiveTab():GetPanel()) then return end
@@ -97,7 +133,7 @@ hook.Add("OnSpawnMenuClose","ArteryCloseInventory",function()
end
end)
-concommand.Add("showinventory",ShowInventory)
+concommand.Add("showinventory",inv.ShowInventory)
local viewdistance = 100
local rotatespeed = 65
local bone = nil
@@ -128,3 +164,5 @@ hook.Add("CalcView","ArteryInventoryView",function(ply,pos,ang,fov,nearz,farz)
return view
end)
+
+return inv