diff options
Diffstat (limited to 'gamemode/client/cl_inventory.lua')
| -rw-r--r-- | gamemode/client/cl_inventory.lua | 48 |
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 |
