diff --git a/main.lua b/main.lua index a671c69..c48bd62 100644 --- a/main.lua +++ b/main.lua @@ -70,11 +70,9 @@ end local world = World() -local entity = Entity() +local entity = Entity(world) entity:give(test_comp_1, 100, 100) -world:addEntity(entity) - world:addSystem(test_system_1, "test") world:addSystem(test_system_2, "test") diff --git a/src/entity.lua b/src/entity.lua index 755e75e..ff60a66 100644 --- a/src/entity.lua +++ b/src/entity.lua @@ -9,7 +9,11 @@ Entity.__index = Entity --- Creates and initializes a new Entity. -- @return A new Entity -function Entity.new() +function Entity.new(world) + if (world ~= nil and not Type.isWorld(world)) then + error("bad argument #1 to 'Entity.new' (world/nil expected, got "..type(world)..")", 2) + end + local e = setmetatable({ __world = nil, __components = {}, @@ -17,6 +21,10 @@ function Entity.new() __isEntity = true, }, Entity) + if (world) then + world:addEntity(e) + end + return e end