rotor-nelua icon indicating copy to clipboard operation
rotor-nelua copied to clipboard

Add new rotor concept: `entity_compatible_with(MyEntity.value)` and it's `ptr` variant

Open Andre-LA opened this issue 2 years ago • 0 comments

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

Andre-LA avatar Dec 18 '22 01:12 Andre-LA