fortunes_foundation/engine.lua

80 lines
1.1 KiB
Lua
Raw Normal View History

2024-02-05 04:55:56 +00:00
-- setup
modules={}
function _init()
_doall("init")
end
function _update60()
_doall("update") end
function _draw()
cls(0)
_doall("draw") end
function _doall(x)
for n in all{x.."0",x,x.."2",x.."3"} do
for mod in all(modules) do
local f=mod[n]
if (f) f(mod)
end
end
end
function klass()
local k={}
k.__index=k
function k:new(...)
local n={}
setmetatable(n,k)
n:init(...)
return n
end
return k
end
function alives(tbl)
local tbl2={}
for i in all(tbl) do
if (not i.dead) add(tbl2,i)
end
return tbl2
end
function trunc4(x)
if (x < 0) return -trunc4(-x)
return x\0.25/4
end
function stepstep(by,x0,x1,f)
local x=x0
if (x==x1) return
if x0>x1 then
return stepstep(by,-x0,-x1,function(x) return f(-x) end)
end
x=x\by*by
while true do
x+=by
if (x>=x1) f(x1) break
if (not f(x)) break
end
end
function lerp(x,x0,x1)
return x0+x*(x1-x0)
end
2024-02-11 21:44:45 +00:00
function gsv(s)
2024-02-05 04:55:56 +00:00
local ret=split(s,"\n")
for i,v in ipairs(ret) do
2024-02-11 21:44:45 +00:00
ret[i] = type(v) == "string" and split(v,"`") or {v} end
2024-02-05 04:55:56 +00:00
return ret
end
function shuf(t)
for i=#t,1,-1 do
local j=flr(rnd(i))+1
t[i],t[j]=t[j],t[i]
end
end