-- --[[ -- This file loads in all the prayers -- ]] -- do return end -- local concmd = include("concommands.lua") -- --local autolua = include("../autolua.lua") -- print("Hello from LoadItems.lua!") -- ART.Prayer = {} -- local requiredfields = { -- "Name", -- "Pray", -- } -- local defaultfields = { -- ["Serialize"] = function(self) return "" end, -- ["DeSerialize"] = function(self,string) return self end, -- ["Shape"] = {{true}}, -- } -- -- --- Adds the given prayer table to the global list of prayers. -- -- Make sure that you do not accidentally register the same prayer twice, all prayers MUST have unique names -- -- @param tbl The prayer to reigster -- function ART.RegisterPrayer(tbl) -- --print("Registering item:" .. tbl.Name) -- for k,v in pairs(requiredfields) do -- assert(tbl[v] ~= nil, "Attempted to register an prayer without field:" .. v) -- end -- assert(ART.Prayer[tbl.Name] == nil, "Attempted to register 2 Prayers with the same name!") -- for k,v in pairs(defaultfields) do -- if tbl[k] == nil then -- tbl[k] = v -- end -- end -- ART.Prayer[tbl.Name] = tbl -- --print("Art is now:") -- --PrintTable(ART) -- end -- -- --autolua.AddLuaSHFolder("/shared/itemsystem") -- -- local meta = FindMetaTable("Player") -- -- -- if SERVER then -- meta.Inventory.Prayers = {} -- -- -- TODO:Make prayers limited or something -- function meta:HasPrayer(prayername) -- return self.Inventory.Prayers[prayername] -- end -- -- function meta:RemovePrayer(prayername) -- self.Inventory.Prayers[prayername] = nil -- self:SynchPrayers() -- end -- -- function ART.RemovePrayer(player,prayername) -- player:RemovePrayer(prayername) -- end -- -- function meta:GivePrayer(prayername) -- print("Prayers are:") -- PrintTable(ART.Prayer) -- assert(ART.Prayer[prayername] ~= nil, "Attempted to give a nil prayer \"" .. prayername .. "\"") -- self.Inventory.Prayers[prayername] = true -- self:SynchPrayers() -- end -- -- function ART.GivePrayer(player,prayername) -- player:GivePrayer(prayername) -- end -- -- util.AddNetworkString( "art_synch_prayers" ) -- util.AddNetworkString( "equiphelpprayer" ) -- -- function meta:SynchPrayers() -- print("Sending " .. table.Count(self.Inventory.Prayers) .. " prayers:") -- PrintTable(self.Inventory.Prayers) -- net.Start("art_synch_prayers") -- net.WriteUInt(table.Count(self.Inventory.Prayers),16) -- for k,v in pairs(self.Inventory.Prayers) do -- print("Writeing " .. k) -- net.WriteString(k) -- end -- net.Send(self) -- end -- end -- -- concommand.Add("artery_giveprayer",function(ply,cmd,args) -- if not ply:IsAdmin() then return end -- ply:GivePrayer(args[1]) -- end, concmd.AutocompleteFunction(table.GetKeys(ART.Prayer)), "Give an instance of a prayer to yourself") -- -- if CLIENT then -- ART.MyPrayer = {} -- net.Receive("art_synch_prayers",function() -- ART.MyPrayer = {} -- for k = 1,net.ReadUInt(16) do -- local pstr = net.ReadString() -- print("Reading prayer " .. pstr) -- ART.MyPrayer[pstr] = true -- end -- print("Recived prayers:") -- PrintTable(ART.MyPrayer) -- ART.RefreshDisplays() -- end) -- end -- -- function ART.GetPrayerByName(name) -- assert(ART.Prayer[name] ~= nil,"Attempted to get a nil prayer:" .. name) -- return ART.Prayer[name] -- end -- -- concommand.Add("artery_printprayers",function(ply,cmd,args) -- if not ply:IsAdmin() then return end -- print("Items table:") -- PrintTable(ART.Prayer) -- end) -- -- concommand.Add("artery_giveprayer",function(ply,cmd,args) -- if not ply:IsAdmin() then return end -- print("Trying to give an prayer:" .. args[1]) -- ART.GivePrayer(ply,args[1]) -- end, concmd.AutocompleteFunction(table.GetKeys(ART.Prayer)), "Give an item to the specified player, or yourself if no player is specified.")