diff options
| author | Alexander Pickering <alexandermpickering@gmail.com> | 2017-02-18 21:55:55 -0500 |
|---|---|---|
| committer | Alexander Pickering <alexandermpickering@gmail.com> | 2017-02-18 21:55:55 -0500 |
| commit | a22cbeddc5f8fb61e87a30aa14ba354de5cf4431 (patch) | |
| tree | 297c1dbfb23185c5246e1dd7bdec52253a24ba60 /gamemode/client/qtabs | |
| parent | f4ee62bb0725a3ae94477b2818071f506e4dfd9f (diff) | |
| download | artery-a22cbeddc5f8fb61e87a30aa14ba354de5cf4431.tar.gz artery-a22cbeddc5f8fb61e87a30aa14ba354de5cf4431.tar.bz2 artery-a22cbeddc5f8fb61e87a30aa14ba354de5cf4431.zip | |
Updates
Diffstat (limited to 'gamemode/client/qtabs')
| -rw-r--r-- | gamemode/client/qtabs/cl_qinventory.lua | 51 |
1 files changed, 46 insertions, 5 deletions
diff --git a/gamemode/client/qtabs/cl_qinventory.lua b/gamemode/client/qtabs/cl_qinventory.lua index e60424f..e4dfaa8 100644 --- a/gamemode/client/qtabs/cl_qinventory.lua +++ b/gamemode/client/qtabs/cl_qinventory.lua @@ -3,13 +3,44 @@ ]] local inv = nrequire("inventory/inventory.lua") local itm = nrequire("item.lua") +--local state = nrequire("cl_state.lua") local q = {} local known_inventories = {} local inventory_frames = {} local invsheet + +local drawfloatinginventory = function(id, inventory) + print("Drawing a floating inventory!") + local frame = vgui.Create("DFrame") + frame:SetPos( 100, 100 ) + frame:SetSize( 300, 200 ) + frame:SetTitle( "My new Derma frame" ) + frame:SetDraggable( true ) + local panel = vgui.Create("DPanel",frame) + panel:Dock(FILL) + if inventory.DrawOnDPanel then + local prox = inventory:DrawOnDPanel(panel) + frame.id = known_inventories[id]:AddObserver(prox) + else + error("Inventory needs a DrawOnDPanel method!") + end + frame:MakePopup() + frame.OnClose = function(self) + print("Closeing chest id", id) + print("entity is", known_inventories[id].Owner) + known_inventories[id]:RemoveObserver(self.id) + net.Start("closechestinv") + net.WriteEntity(known_inventories[id].Owner) + net.SendToServer() + known_inventories[id] = nil + self:Remove() + end +end + local drawsheeton = function(id,inventory) + print("Drawing an inventory on a sheet!") if invsheet == nil then return end local tpanel = vgui.Create( "DPanel", invsheet ) --tpanel.Paint = function( self, w, h ) @@ -34,15 +65,20 @@ net.Receive("art_ObserveInventory",function() local datalen = net.ReadUInt(32) local inital_data = net.ReadData(datalen) local ownent = net.ReadEntity() + print("Owning ent of this inventory is", ownent) + assert(known_inventories[id] == nil, "Trying to observe the same inventory twice!",id) local tinv = inv.CreateInventoryFromData(inv_type,inital_data) - tinv.owner = ownent + tinv.Owner = ownent tinv.id = id print("Created new inventory:") PrintTable(tinv) known_inventories[id] = tinv - drawsheeton(id,tinv) - print("known inventories is now:") - PrintTable(known_inventories) + if id > 10 then + drawfloatinginventory(id,tinv) + hook.Call("OnSpawnMenuOpen") + else + drawsheeton(id,tinv) + end end) net.Receive("art_UpdateInventory",function() @@ -81,7 +117,12 @@ q.CreateInventorySheet = function(dpanel_parent) invsheet:Dock( FILL ) for k,v in pairs(known_inventories) do - drawsheeton(k,v) + print("This inventory id in known_inventories is", k) + if k <= 10 then + drawsheeton(k,v) + else + drawfloatinginventory(k,v) + end --[[ local tpanel = vgui.Create( "DPanel", invsheet ) tpanel.Paint = function( self, w, h ) |
