mirror of
https://github.com/Keyslam-Group/Concord.git
synced 2025-09-01 20:03:55 -04:00
70 lines
No EOL
1.3 KiB
Lua
70 lines
No EOL
1.3 KiB
Lua
--[=[
|
|
local file = "examples.simpleDrawing"
|
|
-- local file = "examples.baseLayout.main"
|
|
|
|
require(file)
|
|
]=]--
|
|
|
|
local Concord = require("src")
|
|
local Component = require("src.component")
|
|
|
|
local test_comp_1 = Concord.component("test_comp_1", function(e, x, y)
|
|
e.x = x
|
|
e.y = y
|
|
end)
|
|
|
|
local test_comp_2 = Concord.component("test_comp_2", function(e, a)
|
|
e.a = a
|
|
end)
|
|
|
|
local test_comp_3 = Concord.component("test_comp_3", function(e, b)
|
|
e.b = b
|
|
end)
|
|
|
|
local test_system = Concord.system({Component.test_comp_1})
|
|
|
|
function onEntityAdded(e)
|
|
print("Added")
|
|
end
|
|
|
|
function onEntityRemoved(e)
|
|
print("Removed")
|
|
end
|
|
|
|
function test_system:init()
|
|
self.pool.onEntityAdded = onEntityAdded
|
|
self.pool.onEntityRemoved = onEntityRemoved
|
|
end
|
|
|
|
function test_system:update(dt)
|
|
--print(#self.pool)
|
|
end
|
|
|
|
|
|
|
|
local world = Concord.world()
|
|
|
|
local entity = Concord.entity()
|
|
entity:give(Component.test_comp_1, 100, 100)
|
|
|
|
world:addEntity(entity)
|
|
|
|
world:addSystem(test_system(), "update")
|
|
|
|
function love.update(dt)
|
|
world:flush()
|
|
|
|
world:emit("update", dt)
|
|
end
|
|
|
|
function love.keypressed(key)
|
|
if key == "q" then
|
|
entity:remove(Component.test_comp_1)
|
|
end
|
|
if key == "w" then
|
|
entity:give(Component.test_comp_1)
|
|
end
|
|
if key == "e" then
|
|
world:removeEntity(entity)
|
|
end
|
|
end |