From d2868db28210b8c4debab2b70dca2833d582fdfd Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Fri, 23 Mar 2018 15:20:30 -0400 Subject: Refactored the inventory system Inventory system now uses flyweight pattern with metatables. --- gamemode/inventorysystem/quests/cl_quests.lua | 62 +++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 gamemode/inventorysystem/quests/cl_quests.lua (limited to 'gamemode/inventorysystem/quests/cl_quests.lua') diff --git a/gamemode/inventorysystem/quests/cl_quests.lua b/gamemode/inventorysystem/quests/cl_quests.lua new file mode 100644 index 0000000..2052e19 --- /dev/null +++ b/gamemode/inventorysystem/quests/cl_quests.lua @@ -0,0 +1,62 @@ + +local inv = {} +--the gui elements +local elements = {} + +local questlist = nil +local questlog = nil +local function add_quest(panel,quest) + +end + +inv.DrawOnDPanel = function(self,panel) + local spanel = vgui.Create("DPanel", panel) + spanel:Dock(FILL) + local halfs = vgui.Create("DVerticalDivider",spanel) + questlist = vgui.Create("DListLayout", spanel) + questlog = vgui.Create("DLabel",spanel) + halfs:SetBottom(questlist) + halfs:SetTop(questlog) + questlist:Dock(FILL) + questlog:Dock(FILL) + for k,v in pairs(self.track) do + local questbutton = vgui.Create("DButton",questlist) + questbutton:SetText(v.QuestName) + questbutton.DoClick = function() + questlog:SetText(v:GetText()) + end + for i,j in pairs(v) do + local ipanel = vgui.Create("DListLayout",layout) + local label = vgui.Create("DLabel",ipanel) + label:Dock(TOP) + label:SetDark(true) + local bar = vgui.Create("DProgress",ipanel) + bar:Dock(TOP) + elements[j] = { + ["label"] = label, + ["bar" ] = bar, + } + set_xp_of(j,self.skills[j] or 0) + ipanel:Add(label) + ipanel:Add(bar) + ipanel:InvalidateLayout() + ipanel:SizeToChildren(true,true) + layout:Add(ipanel) + end + layout:Dock(FILL) + sheet:AddSheet(k, spanel, "icon16/cross.png") + end + + local prox = {} + prox.Put = function(s,position,item) + --Observer might be called before our put() + end + + prox.Remove = function(s,position) + -- + end + + return prox +end + +return inv -- cgit v1.2.3-70-g09d2