diff options
Diffstat (limited to 'gamemode/client/qtabs/cl_qinventory.lua')
| -rw-r--r-- | gamemode/client/qtabs/cl_qinventory.lua | 52 |
1 files changed, 44 insertions, 8 deletions
diff --git a/gamemode/client/qtabs/cl_qinventory.lua b/gamemode/client/qtabs/cl_qinventory.lua index a3f8a16..e60424f 100644 --- a/gamemode/client/qtabs/cl_qinventory.lua +++ b/gamemode/client/qtabs/cl_qinventory.lua @@ -1,7 +1,6 @@ --[[ One of the tabs in the inventory ]] - local inv = nrequire("inventory/inventory.lua") local itm = nrequire("item.lua") @@ -9,13 +8,41 @@ local q = {} local known_inventories = {} local inventory_frames = {} +local invsheet +local drawsheeton = function(id,inventory) + if invsheet == nil then return end + local tpanel = vgui.Create( "DPanel", invsheet ) + --tpanel.Paint = function( self, w, h ) + -- draw.RoundedBox( 4, 0, 0, w, h, Color( 0, 128, 255 ) ) + --end + if inventory.DrawOnDPanel then + print("Has drawondpanel") + local prox = inventory:DrawOnDPanel(tpanel) + print("Prox returned was",prox) + PrintTable(prox) + known_inventories[id]:AddObserver(prox) + print("Oservers is now") + PrintTable(known_inventories[id].observers) + end + invsheet:AddSheet( inventory.Name, tpanel, "icon16/tab.png" ) +end net.Receive("art_ObserveInventory",function() local id = net.ReadUInt(32) local inv_type = net.ReadString() print("Got inv type", inv_type,"id",id) - local inital_data = net.ReadData(net.ReadUInt(32)) - known_inventories[id] = inv.CreateInventoryFromData(inv_type,initaldata) + local datalen = net.ReadUInt(32) + local inital_data = net.ReadData(datalen) + local ownent = net.ReadEntity() + local tinv = inv.CreateInventoryFromData(inv_type,inital_data) + 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) end) net.Receive("art_UpdateInventory",function() @@ -24,9 +51,15 @@ net.Receive("art_UpdateInventory",function() local position = net.ReadTable() if isput then local item_name = net.ReadString() + print("Putting ", item_name, "into inventory ",id, " at position") + PrintTable(position) local item_data = net.ReadData(net.ReadUInt(32)) local item = itm.GetItemFromData(item_name,item_data) known_inventories[id]:Put(position,item) + print("Inventorie's observers:") + PrintTable(known_inventories[id].observers) + print("Inventory is now") + PrintTable(known_inventories[id]) else known_inventories[id]:Remove(position) end @@ -41,17 +74,15 @@ net.Receive("art_CloseInventory",function() end end) -local width,height = (ScrW() / 4) - 10, ScrH() -local iconsize = width / 5 - - q.CreateInventorySheet = function(dpanel_parent) --assert(known_inventories[watch_id] ~= nil,"Attempted to watch an inventory that dosn't exist!") --Display the equipment inventories - local invsheet = vgui.Create( "DPropertySheet", dpanel_parent ) + invsheet = vgui.Create( "DPropertySheet", dpanel_parent ) invsheet:Dock( FILL ) for k,v in pairs(known_inventories) do + drawsheeton(k,v) + --[[ local tpanel = vgui.Create( "DPanel", invsheet ) tpanel.Paint = function( self, w, h ) draw.RoundedBox( 4, 0, 0, w, h, Color( 0, 128, 255 ) ) @@ -61,9 +92,14 @@ q.CreateInventorySheet = function(dpanel_parent) known_inventories[k]:AddObserver(prox) end invsheet:AddSheet( v.Name, tpanel, "icon16/tab.png" ) + ]] end return invsheet end +concommand.Add("PrintKnownInventories",function(ply,cmd,args) + PrintTable(known_inventories) +end) + return q |
