Remove redundant classes & added some Position methods.
This commit is contained in:
parent
99b1ddf44c
commit
ce9e443c60
|
@ -1,44 +0,0 @@
|
||||||
--[[
|
|
||||||
@Authors: Ben Dol (BeniS)
|
|
||||||
@Details: CallbackEvent class shell for callback events
|
|
||||||
]]
|
|
||||||
|
|
||||||
CallbackEvent = newclass("CallbackEvent")
|
|
||||||
|
|
||||||
CallbackEvent.create = function(id, callback)
|
|
||||||
local event = CallbackEvent.internalCreate()
|
|
||||||
|
|
||||||
event.id = id
|
|
||||||
event.callback = callback
|
|
||||||
|
|
||||||
return event
|
|
||||||
end
|
|
||||||
|
|
||||||
-- gets/sets
|
|
||||||
|
|
||||||
--@RequiredBy:Queue
|
|
||||||
function CallbackEvent:getId()
|
|
||||||
return self.id
|
|
||||||
end
|
|
||||||
|
|
||||||
--@RequiredBy:Queue
|
|
||||||
function CallbackEvent:setId(id)
|
|
||||||
self.id = id
|
|
||||||
end
|
|
||||||
|
|
||||||
--@RequiredBy:Queue
|
|
||||||
function CallbackEvent:getCallback()
|
|
||||||
return self.callback
|
|
||||||
end
|
|
||||||
|
|
||||||
--@RequiredBy:Queue
|
|
||||||
function CallbackEvent:setCallback(callback)
|
|
||||||
self.callback = callback
|
|
||||||
end
|
|
||||||
|
|
||||||
-- logic
|
|
||||||
|
|
||||||
--@RequiredBy:Queue
|
|
||||||
function CallbackEvent:start()
|
|
||||||
-- Do nothing by default
|
|
||||||
end
|
|
|
@ -1,70 +0,0 @@
|
||||||
--[[
|
|
||||||
@Authors: Ben Dol (BeniS)
|
|
||||||
@Details: Queue class for event queuing.
|
|
||||||
]]
|
|
||||||
|
|
||||||
Queue = newclass("Queue")
|
|
||||||
|
|
||||||
Queue.create = function(callback)
|
|
||||||
local obj = Queue.internalCreate()
|
|
||||||
|
|
||||||
obj.queue = {}
|
|
||||||
obj.callback = callback
|
|
||||||
|
|
||||||
return obj
|
|
||||||
end
|
|
||||||
|
|
||||||
-- gets/sets
|
|
||||||
|
|
||||||
function Queue:getQueue()
|
|
||||||
return self.queue
|
|
||||||
end
|
|
||||||
|
|
||||||
function Queue:setQueue(queue)
|
|
||||||
self.queue = queue
|
|
||||||
end
|
|
||||||
|
|
||||||
function Queue:getCallback()
|
|
||||||
return self.callback
|
|
||||||
end
|
|
||||||
|
|
||||||
function Queue:setCallback(callback)
|
|
||||||
self.callback = callback
|
|
||||||
end
|
|
||||||
|
|
||||||
-- logic
|
|
||||||
|
|
||||||
function Queue:add(item)
|
|
||||||
table.insert(self.queue, item)
|
|
||||||
end
|
|
||||||
|
|
||||||
function Queue:start()
|
|
||||||
local compiled = function() self:finished() end
|
|
||||||
for k,event in pairs(self.queue) do
|
|
||||||
print("Compiling " .. tostring(event:getId()))
|
|
||||||
local snip = compiled
|
|
||||||
compiled = function()
|
|
||||||
local realCallback = event:getCallback()
|
|
||||||
event:setCallback(function()
|
|
||||||
print("Event compiled callback called")
|
|
||||||
realCallback()
|
|
||||||
-- next queue item
|
|
||||||
snip()
|
|
||||||
end)
|
|
||||||
print("Event started from queue chain")
|
|
||||||
event:start()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- Start the queue chain
|
|
||||||
print("Start compiled chain")
|
|
||||||
compiled()
|
|
||||||
end
|
|
||||||
|
|
||||||
function Queue:finished()
|
|
||||||
print("Queue:finished")
|
|
||||||
local done = function()
|
|
||||||
local callback = self:getCallback()
|
|
||||||
if callback then callback() end
|
|
||||||
end
|
|
||||||
done()
|
|
||||||
end
|
|
|
@ -22,4 +22,16 @@ end
|
||||||
|
|
||||||
function Position.isInRange(pos1, pos2, xRange, yRange)
|
function Position.isInRange(pos1, pos2, xRange, yRange)
|
||||||
return math.abs(pos1.x-pos2.x) <= xRange and math.abs(pos1.y-pos2.y) <= yRange and pos1.z == pos2.z;
|
return math.abs(pos1.x-pos2.x) <= xRange and math.abs(pos1.y-pos2.y) <= yRange and pos1.z == pos2.z;
|
||||||
|
end
|
||||||
|
|
||||||
|
function Position.isValid(pos)
|
||||||
|
return not (pos.x == 65535 and pos.y == 65535 and pos.z == 255)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Position.distance(pos1, pos2)
|
||||||
|
return math.sqrt(math.pow((pos2.x - pos1.x), 2) + math.pow((pos2.y - pos1.y), 2))
|
||||||
|
end
|
||||||
|
|
||||||
|
function Position.manhattanDistance(pos1, pos2)
|
||||||
|
return math.abs(pos2.x - pos1.x) + math.abs(pos2.y - pos1.y)
|
||||||
end
|
end
|
Loading…
Reference in New Issue