do return end --[=[ --[[ This file loads in all the items ]] local concmd = include("concommands.lua") --local autolua = include("../autolua.lua") print("Hello from LoadItems.lua!") ART.Items = {} local requiredfields = { "Name", "Shape", "Serialize", "DeSerialize", } local defaultfields = { ["Serialize"] = function(self) return "" end, ["DeSerialize"] = function(self,string) return self end, ["Shape"] = {{true}}, } function ART.RegisterItem(tbl) --print("Registering item:" .. tbl.Name) for k,v in pairs(requiredfields) do assert(tbl[v] ~= nil, "Attempted to register an item without field:" .. v) end assert(ART.Items[tbl.Name] == nil, "Attempted to register 2 items with the same name!") for k,v in pairs(defaultfields) do if tbl[k] == nil then tbl[k] = v end end ART.Items[tbl.Name] = tbl --print("Art is now:") --PrintTable(ART) end --autolua.AddLuaSHFolder("/shared/itemsystem") function ART.GiveItem(player,name) assert(ART.Items[name] ~= nil, "Attempted to give a nil item!") player:GiveItem(ART.Items[name]) player:SynchronizeInventory() end function ART.GetItemByName(name) assert(ART.Items[name] ~= nil,"Attempted to get a nil item:" .. name) return ART.Items[name] end concommand.Add("artery_printitems",function(ply,cmd,args) if not ply:IsAdmin() then return end print("Items table:") PrintTable(ART.Items) end) concommand.Add("artery_giveitem",function(ply,cmd,args) if not ply:IsAdmin() then return end print("Trying to give an item:" .. args[1]) ART.GiveItem(ply,args[1]) end, concmd.AutocompleteFunction(table.GetKeys(ART.Items)), "Give an item to the specified player, or yourself if no player is specified.") ]=]