From ea5c6452b163ec42784b403d44b4a5c04893d234 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Mon, 5 Mar 2018 21:13:29 -0500 Subject: Refactored client Moved the responsibility for calling all observers into the client's inventory code, and out of cl_invtracker. --- gamemode/client/cl_inventory.lua | 11 ++++++++--- gamemode/core/inventory/cl_invtracker.lua | 3 --- 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'gamemode') diff --git a/gamemode/client/cl_inventory.lua b/gamemode/client/cl_inventory.lua index 65c3ceb..671d16b 100644 --- a/gamemode/client/cl_inventory.lua +++ b/gamemode/client/cl_inventory.lua @@ -13,6 +13,7 @@ --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/common/items.lua") +local log = nrequire("log.lua") --local qpray = nrequire("cl_qprayers.lua") local inv = {} @@ -48,8 +49,12 @@ local function CreateSheetTree(tabs,dpropertysheet) elseif type(k) == "number" then local tsheet = vgui.Create("DPanel") dpropertysheet:AddSheet(v.Name,tsheet,"icon16/user.png") - local prox = v:DrawOnDPanel(tsheet) - v:AddObserver(prox) + if v.DrawOnDPanel then + local prox = v:DrawOnDPanel(tsheet) + v:AddObserver(prox) + else + log.warn("Failed to draw inventory:" + v.Name + ", no DrawOnDPanel()") + end else error("k was not a number or string, it was a " .. type(k)) end @@ -87,7 +92,7 @@ local function BuildInventory() local initalsheet = vgui.Create("DPropertySheet",qframe) initalsheet:Dock(FILL) - + CreateSheetTree(clt.known_inventories,initalsheet) end diff --git a/gamemode/core/inventory/cl_invtracker.lua b/gamemode/core/inventory/cl_invtracker.lua index 41c9eff..dac1cc2 100644 --- a/gamemode/core/inventory/cl_invtracker.lua +++ b/gamemode/core/inventory/cl_invtracker.lua @@ -98,9 +98,6 @@ net.Receive("art_UpdateInventory",function() local item_data = net.ReadData(net.ReadUInt(32)) local item = itm.GetItemFromData(item_name,item_data) known_inventories[id]:Put(position,item) - for k,v in pairs(known_inventories[id].observers) do - v:Put(position,item) - end --print("Inventorie's observers:") --PrintTable(known_inventories[id].observers) --print("Inventory is now") -- cgit v1.2.3-70-g09d2