• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua vector helper

Lyu

Well-Known Member
Joined
Jul 13, 2018
Messages
14
Solutions
1
Reaction score
50
Hi, here's a simple lua vector helper i just wrote:
Lua:
--[[
    Lua vector helper created by Lyµ
    Discord: Lyµ#8767
]]

vector = {}

setmetatable(vector, {
    __call = function(self, ...)
        local obj = {...}
        return setmetatable(obj, {__index = self})
    end
})

function vector:front()
    return self[1]
end

function vector:back()
    return self[#self]
end

function vector:at(index)
    return self[index]
end

function vector:empty()
    return #self == 0
end

function vector:size()
    return #self
end

function vector:clear()
    for i = 1, #self do
        self[i] = nil
    end
end

function vector:emplace_back(element)
    self[#self + 1] = element
end

function vector:emplace_front(element)
    table.insert(self, 1, element)
end

function vector:erase(element)
    for i = 1, #self do
        if self[i] == element then
            table.remove(self, i)
            break
        end
    end
end

function vector:pop_back()
    self[#self] = nil
end

function vector:pop_front()
    self:erase(self[1])
end

function vector:rand()
    return self[math.random(#self)]
end

github gist: lua vector helper (https://gist.github.com/Lyuzera/83e7fde34862140eff8739d2ca3e5d8f)

example of how to use:
Lua:
local vec = vector(5, 2)

vec:pop_front()
vec:emplace_back(10)

print(vec:front(), vec:back()) --> 2    10
 
Last edited:
Back
Top