aboutsummaryrefslogtreecommitdiff
path: root/gamemode/inventorysystem/prayers/sh_prayers.lua
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/inventorysystem/prayers/sh_prayers.lua')
-rw-r--r--gamemode/inventorysystem/prayers/sh_prayers.lua44
1 files changed, 44 insertions, 0 deletions
diff --git a/gamemode/inventorysystem/prayers/sh_prayers.lua b/gamemode/inventorysystem/prayers/sh_prayers.lua
new file mode 100644
index 0000000..208540d
--- /dev/null
+++ b/gamemode/inventorysystem/prayers/sh_prayers.lua
@@ -0,0 +1,44 @@
+
+local reg = nrequire("inventory.lua")
+local itm = nrequire("item.lua")
+local inv = {}
+inv.Name = "Prayers"
+inv.track = {}
+function inv:FindPlaceFor(item)
+ return {#track}
+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
+end
+
+
+reg.RegisterInventory(inv)