add entity:require_component

This commit is contained in:
MihailRis 2025-09-06 22:29:55 +03:00
parent b406bc1ec4
commit 854dcf2a50
3 changed files with 11 additions and 0 deletions

View File

@ -26,6 +26,8 @@ entity:get_uid() -> int
entity:get_component(name: str) -> component or nil
-- Checks for the presence of a component by name
entity:has_component(name: str) -> bool
-- Retrieves a component by name. Throws an exception if it does not exist
entity:require_component(name: str) -> component
-- Enables/disables the component
entity:set_enabled(name: str, enable: bool)

View File

@ -26,6 +26,8 @@ entity:get_uid() -> int
entity:get_component(name: str) -> компонент или nil
-- Проверяет наличие компонента по имени
entity:has_component(name: str) -> bool
-- Запрашивает компонент по имени. Бросает исключение при отсутствии
entity:require_component(name: str) -> компонент
-- Включает/выключает компонент по имени
entity:set_enabled(name: str, enable: bool)

View File

@ -63,6 +63,13 @@ local Entity = {__index={
get_skeleton=function(self) return entities.get_skeleton(self.eid) end,
set_skeleton=function(self, s) return entities.set_skeleton(self.eid, s) end,
get_component=function(self, name) return self.components[name] end,
require_component=function(self, name)
local component = self.components[name]
if not component then
error(("entity has no required component '%s'"):format(name))
end
return component
end,
has_component=function(self, name) return self.components[name] ~= nil end,
get_uid=function(self) return self.eid end,
def_index=function(self) return entities.get_def(self.eid) end,