diff options
| author | Alexander Pickering <alexandermpickering@gmail.com> | 2018-11-03 18:23:45 -0400 |
|---|---|---|
| committer | Alexander Pickering <alexandermpickering@gmail.com> | 2018-11-03 18:23:45 -0400 |
| commit | 28affa22541b9ef251707793f6b1c1a26d663592 (patch) | |
| tree | 622754894d75c74dc5e8516ccf184ad4bf328fef /gamemode/inventorysystem/prayers | |
| parent | c639e7c7c6ab1595fdce39f56312e3d6a886bbe8 (diff) | |
| download | artery-28affa22541b9ef251707793f6b1c1a26d663592.tar.gz artery-28affa22541b9ef251707793f6b1c1a26d663592.tar.bz2 artery-28affa22541b9ef251707793f6b1c1a26d663592.zip | |
Started on new npc system
Started work on the new npc system
Diffstat (limited to 'gamemode/inventorysystem/prayers')
| -rw-r--r-- | gamemode/inventorysystem/prayers/cl_prayers.lua | 96 | ||||
| -rw-r--r-- | gamemode/inventorysystem/prayers/sh_prayers.lua | 69 |
2 files changed, 0 insertions, 165 deletions
diff --git a/gamemode/inventorysystem/prayers/cl_prayers.lua b/gamemode/inventorysystem/prayers/cl_prayers.lua deleted file mode 100644 index e28db63..0000000 --- a/gamemode/inventorysystem/prayers/cl_prayers.lua +++ /dev/null @@ -1,96 +0,0 @@ - -local pray = {} - -local explain -pray.activeprayers = {} -function pray:DrawOnDPanel(panel) - print("Attempted to draw prayer panel") - --Active grid - local agrid = vgui.Create("DGrid",panel) - agrid:SetCols(4) - local w = ((ScrW() / 4) - 10) / 4 - agrid:SetHeight(w) - agrid:SetColWide(w) - agrid:SetRowHeight(w) - for i=1,4 do - local rec = vgui.Create("DImageButton",agrid) - rec:SetText("F"..i) - rec:SetSize(w,w) - rec.DoClick = function(s) - local ap = pray.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 - pray.activeprayers[i] = tbl[1].item - if tbl[1].item == nil then - print("Failed to get item, tbl was") - PrintTable(tbl) - error("Failed to get item") - end - if tbl[1].item.DoOnPanel then - tbl[1].item:DoOnPanel(rec) - end - end,{}) - agrid:AddItem(rec) - end - agrid:Dock(TOP) - --Explanation of spells - local explainpanel = vgui.Create("DPanel",panel) - explainpanel:SetHeight(w*2) - explainpanel:Dock(TOP) - explainpanel:SetText("This panel will explain information about a hovered skill") - explain = vgui.Create("DLabel",explainpanel) - explain:Dock(FILL) - explain:SetDark(true) - --All spells we know - local scroll = vgui.Create( "DScrollPanel", panel ) - scroll:Dock( FILL ) - local grid = vgui.Create("DGrid",scroll) - grid:SetCols(4) - grid:SetColWide(w) - grid:SetRowHeight(w) - local function drawprayer(prayer) - local rec = vgui.Create("DImageButton",grid) - rec:SetText(prayer.Name) - rec:SetSize(w,w) - 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") - debug.Trace() - 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 -local prayerhooks = { - ["gm_showhelp"] = 1, - ["gm_showteam"] = 2, - ["gm_showspare1"] = 3, - ["gm_showspare2"] = 4 -} -hook.Add("PlayerBindPress", "pray_hook", function( ply, bind, pressed ) - local phn = prayerhooks[bind] - if phn == nil then return end - local pap = pray.activeprayers[phn] - if pap == nil then return end - pap:Pray() -end) - -return pray diff --git a/gamemode/inventorysystem/prayers/sh_prayers.lua b/gamemode/inventorysystem/prayers/sh_prayers.lua deleted file mode 100644 index 9d8ff3b..0000000 --- a/gamemode/inventorysystem/prayers/sh_prayers.lua +++ /dev/null @@ -1,69 +0,0 @@ ---[[ - prayers must have a "Pray" method, - a "Name" string, - a "Description" string - -]] -local reg = nrequire("inventory/inventory.lua") -local itm = nrequire("item.lua") -local inv = {} -if CLIENT then - inv = nrequire("cl_prayers.lua") -end - -inv.Name = "Prayers" -inv.track = {} -function inv:FindPlaceFor(item) - if item.Pray ~= nil then - return {#self.track} - end - return nil -end -function inv:CanFitIn(pos,item) - return pos[1] == #self.track -end -function inv:Put(pos,item) - self.track[pos[1]] = item -end -function inv:Has(a) - if type(a) == "string" then - for k,v in pairs(self.track) do - if v == a then return {k} end - end - elseif type(a) == "function" then - for k,v in pairs(self.track) do - if a(v) then return {k} end - end - end - return nil -end -function inv:Remove(pos) - for i = 1,pos[1] do - self.track[i] = self.track[i + 1] - end -end -function inv:Get(pos) - return self.track[pos[1]] -end -function inv:Serialize() - local ret = {} - for k,v in pairs(self.track) do - ret[v.Name] = v:Serialize() - end - return util.TableToJSON(ret) -end - -function inv:DeSerialize(str) - self.track = {} - local tbl = util.JSONToTable(str) - tbl = tbl or {} - local i = 1 - for k,v in pairs(tbl) do - local this_prayer = itm.GetItemByName(k):DeSerialize(v) - self:Put({i},this_prayer) - end - return self -end - - -reg.RegisterInventory(inv) |
