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 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'gamemode/client') 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 -- cgit v1.2.3-70-g09d2