lyra-engine/lyra-scripting/scripts/lua/ecs.lua

56 lines
1.4 KiB
Lua

---Create a Resource query that will return the specific ECS world resource.
---
---@see ResQuery
---@param resource table|userdata
---@return ResQuery
function Res(resource)
return ResQuery.new(resource)
end
---Create a `ChangedQuery` query that will return only if the resource or component has changed
---since last tick.
---
---@see ChangedQuery
---@param val table|userdata
---@return ChangedQuery
function Changed(val)
return ChangedQuery.new(val)
end
---Create a `HasQuery` filter that will return only if the entity has a specific component.
---
---@see HasQuery
---@param val table|userdata
---@return HasQuery
function Has(val)
return HasQuery.new(val)
end
---Create a `NotQuery` filter that will allow results if the query returns nothing or
---filter denies.
---
---@see NotQuery
---@param val function|table|userdata
---@return NotQuery
function Not(val)
return NotQuery.new(val)
end
---Create a `OrQuery` filter that will allow results if any of the queries return something.
---The queries are evaluated in the order they were provided.
---
---@see OrQuery
---@param ... function|table|userdata
---@return OrQuery
function Or(...)
return OrQuery.new(...)
end
---Create a `TickOfQuery` for retrieving the tick of the resource or component on the entity.
---
---@see TickOfQuery
---@param ... table|userdata
---@return TickOfQuery
function TickOf(...)
return TickOfQuery.new(...)
end