summaryrefslogtreecommitdiff
path: root/include/queue.lua
diff options
context:
space:
mode:
authorSteph Enders <smenders@gmail.com>2022-06-16 16:14:18 -0400
committerSteph Enders <smenders@gmail.com>2022-06-16 16:16:34 -0400
commitc57ae8c42c1f2f2ed576719c00cff5cf613fe650 (patch)
tree0e0c6533b099edbe2c283a8961b1b240d29ad904 /include/queue.lua
parent750b308d70cf1c903812316deeb0a8c4befa37ce (diff)
Added onUpdate logic to move the enemies etc
Created some algorithm logic for enemy movement Allowed for default overrides
Diffstat (limited to 'include/queue.lua')
-rw-r--r--include/queue.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/include/queue.lua b/include/queue.lua
new file mode 100644
index 0000000..2eb77c6
--- /dev/null
+++ b/include/queue.lua
@@ -0,0 +1,29 @@
+Queue = {}
+
+function Queue:new()
+ o = { first = 1, top = 0, data = {} }
+ self.__index = self
+ return setmetatable(o, self)
+end
+
+function Queue:push(val)
+ local top = self.top + 1
+ self.top = top
+ self.data[top] = val
+end
+
+function Queue:pop()
+ if self:empty() then
+ return nil
+ end
+ local val = self.data[self.first]
+ self.data[self.first] = nil
+ self.first = self.first + 1
+ return val
+end
+
+function Queue:empty()
+ return self.top < self.first
+end
+
+return Queue