1
0
dodge-bolt/src/states/main.lua

64 lines
1.2 KiB
Lua

local MainState = {}
local pprint = require("lib.pprint")
local nata = require("lib.nata")
local Vec = require("lib.brinevector")
local data = require("data")
function MainState:enter()
self.ecs = nata.new{
groups = {
physical = {filter = {"pos", "vel"}},
player = {filter = {
"pos", "acc", "speed",
"bolt_count",
"bolt_cooldown", "bolt_speed", "bolt_friction"
}},
sprite = {filter = {"sprite"}},
bolt = {filter={"pos", "vel", "bolt"}}
},
systems = {
require("systems.physics"),
require("systems.player"),
require("systems.sprite")
},
data = {}
}
self.ecs:queue{
pos = Vec(100, 100),
vel = Vec(0, 0),
acc = Vec(),
sprite = {},
friction = 0.998,
speed = 800,
bolt_count = 1,
bolt_speed = 1000,
bolt_cooldown = 0.2,
bolt_friction = 0.9
}
end
function MainState:update(dt)
self.ecs:flush()
self.ecs:emit("update", dt)
if love.keyboard.isDown("escape") then
love.event.quit()
end
end
function MainState:mousemoved(...)
self.ecs:emit("mousemoved", ...)
end
function MainState:keypressed(...)
self.ecs:emit("keypressed", ...)
end
function MainState:draw()
self.ecs:emit("draw")
end
return MainState