mirror of
https://github.com/Ukendio/jecs.git
synced 2025-04-24 17:10:03 +00:00
70 lines
No EOL
1.5 KiB
Lua
70 lines
No EOL
1.5 KiB
Lua
local ecs = require(script.Parent).World.new()
|
|
|
|
local A, B, C, D = ecs:entity(), ecs:entity(), ecs:entity(), ecs:entity()
|
|
local E, F, G, H = ecs:entity(), ecs:entity(), ecs:entity(), ecs:entity()
|
|
print("A", A)
|
|
print("B", B)
|
|
print("C", C)
|
|
print("D", D)
|
|
print("E", E)
|
|
print("F", F)
|
|
print("G", G)
|
|
print("H", H)
|
|
|
|
for i = 1, 256 do
|
|
local entity = ecs:entity()
|
|
ecs:set(entity, A, true)
|
|
ecs:set(entity, B, true)
|
|
ecs:set(entity, C, true)
|
|
ecs:set(entity, D, true)
|
|
|
|
--[[
|
|
ecs:set(entity, E, true)
|
|
ecs:set(entity, F, true)
|
|
ecs:set(entity, G, true)
|
|
ecs:set(entity, H, true)
|
|
print("end")
|
|
]]
|
|
end
|
|
|
|
return function()
|
|
describe("World", function()
|
|
it("should add component", function()
|
|
local id = ecs:entity()
|
|
ecs:set(id, A, true)
|
|
ecs:set(id, B, 1)
|
|
|
|
local id1 = ecs:entity()
|
|
ecs:set(id1, A, "hello")
|
|
expect(ecs:get(id, A)).to.equal(true)
|
|
expect(ecs:get(id, B)).to.equal(1)
|
|
expect(ecs:get(id1, A)).to.equal("hello")
|
|
end)
|
|
it("should remove component", function()
|
|
local id = ecs:entity()
|
|
ecs:set(id, A, true)
|
|
ecs:set(id, B, 1000)
|
|
ecs:remove(id, A, false)
|
|
|
|
expect(ecs:get(id, A)).to.equal(nil)
|
|
end)
|
|
it("should override component data", function()
|
|
|
|
local id = ecs:entity()
|
|
ecs:set(id, A, true)
|
|
expect(ecs:get(id, A)).to.equal(true)
|
|
|
|
ecs:set(id, A, false)
|
|
expect(ecs:get(id, A)).to.equal(false)
|
|
|
|
end)
|
|
it("query", function()
|
|
local added = 0
|
|
for e, a, b, c, d in ecs:query(A, B, C, D) do
|
|
added += 1
|
|
end
|
|
expect(added).to.equal(256)
|
|
end)
|
|
|
|
end)
|
|
end |