rotor-nelua
rotor-nelua copied to clipboard
Add new rotor concept: `entity_compatible_with(MyEntity.value)` and it's `ptr` variant
This eases development with derived entities.
Usage example:
local rotor_concepts = require 'rotor.concepts'
local SpriteEntity = @entity(@record{
entity_data: EntityData,
sprite: Sprite,
painter: Painter,
})
local an_sprite_entity_ptr = #[rotor_concepts.value.entity_ptr_compatible_with(SpriteEntity.value)]#
local Inputs = @record{ --[[...]] }
function SpriteEntity.derived_init(sprite_entity: an_sprite_entity_ptr, inputs: Inputs)
sprite_entity.entity_data = {
id = inputs.sprite.id,
mask = inputs.sprite.mask,
}
-- ...
end