diff options
Diffstat (limited to 'gamemode/inventorysystem/prayers/cl_prayers.lua')
| -rw-r--r-- | gamemode/inventorysystem/prayers/cl_prayers.lua | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/gamemode/inventorysystem/prayers/cl_prayers.lua b/gamemode/inventorysystem/prayers/cl_prayers.lua index aba778e..afea1cc 100644 --- a/gamemode/inventorysystem/prayers/cl_prayers.lua +++ b/gamemode/inventorysystem/prayers/cl_prayers.lua @@ -20,6 +20,13 @@ function pray:DrawOnDPanel(panel) local ap = self.activeprayers[i] explain:SetText(ap ~= nil and ap.Description or "Select a prayer") end + rec:Receiver("prayer",function(s,tbl,dropped,mi,x,y) + if not dropped then return end + self.activeprayers[i] = tbl.item + if tbl.item.DoOnPanel then + tbl.item.DoOnPanel(s) + end + end,{}) agrid:AddItem(rec) end agrid:Dock(TOP) @@ -38,15 +45,31 @@ function pray:DrawOnDPanel(panel) grid:SetCols(4) grid:SetColWide(w) grid:SetRowHeight(w) - for k,v in pairs(self.track) do + local function drawprayer(prayer) local rec = vgui.Create("DImageButton",grid) - rec:SetText(v.Name) + rec:SetText(prayer.Name) rec:SetSize(w,w) - if(v.DoOnPanel) then - v:DoOnPanel(rec) + if(prayer.DoOnPanel) then + prayer:DoOnPanel(rec) end + rec.item = prayer + rec:Droppable("prayer") grid:AddItem(rec) end + + for k,v in pairs(self.track) do + drawprayer(v) + end + + local observer = {} + observer.Put = function(obs,pos,item) + print("Prayer observer got request to put") + drawprayer(item) + end + observer.Remove = function(obs,pos,item) + print("I should never remove a prayer!") + end + return observer end --Rebind f1, f2, f3, f4 to prayers |
