diff --git a/main.lua b/main.lua index 1a5ed40..e7614b0 100644 --- a/main.lua +++ b/main.lua @@ -29,9 +29,7 @@ end) Components.register("test_comp_2", test_comp_2) -local test_comp_3 = Component(function(e, b) - e.b = b -end) +local test_comp_3 = Component() Components.register("test_comp_3", test_comp_3) @@ -72,7 +70,7 @@ entity :give(Components.test_comp_1, 100, 100) :remove(Components.test_comp_1) :give(Components.test_comp_1, 200, 100) - +:give(Components.test_comp_3, 200, 100) Worlds.testWorld:addEntity(entity) diff --git a/src/component.lua b/src/component.lua index 90dcdc6..a2beddb 100644 --- a/src/component.lua +++ b/src/component.lua @@ -7,8 +7,8 @@ Component.__index = Component -- @param populate A function that populates the Bag with values -- @return A Component object function Component.new(populate) - if not (type(populate) == "function") then - error("bad argument #1 to 'Component.new' (function expected, got "..type(populate)..")", 2) + if (type(populate) ~= "function" and type(populate) ~= "nil") then + error("bad argument #1 to 'Component.new' (function/nil expected, got "..type(populate)..")", 2) end local baseComponent = setmetatable({ @@ -22,6 +22,9 @@ function Component.new(populate) return baseComponent end +function Component:__populate() -- luacheck: ignore +end + --- Creates and initializes a new Component. -- @param ... The values passed to the populate function -- @return A new initialized Component