Lua

Events

Functions

Description

trigger an event with the c++ dispatcher

Entity Registry

Functions

Description

get the numbers of entities

checks whether the requested component is associated with the given entity

Events API Documentation

shiva.dispatcher:trigger_[event_name]_event

This function trigger an event using the EnTT dispatcher.

All those functions are automatically generated based on shiva::event.

-- Global signature
shiva.dispatcher:trigger_[event_name]_event(evt_arg);

-- Example of generated one
shiva.dispatcher:trigger_quit_game_event(evt_arg);

Parameters

Name

Description

evt_arg

type -> constructor of the current_event

Example

function on_key_pressed(evt)
    if (evt.keycode == Keyboard.Escape) then
        -- quit_game.hpp take a integer as argument for his construction
        shiva.dispatcher:trigger_quit_game_event(1)
    end
end

Entity Registry API Documentation

shiva.entity_registry:create

This function create an entity through the EnTT registry and return an unique identifier.

shiva.entity_registry:create();

Return value

Possible name

Description

entity_id

integer

  • the entity identifier

Example

function foo()
    local entity_id = shiva.entity_registry:create()
end

shiva.entity_registry:destroy

This function destroy an entity through the EnTT registry.

shiva.entity_registry:destroy(entity_id);

Parameters

Name

Description

entity_id

integer

  • the identifier of the entity to be destroyed.

Example

function foo()
    local id = shiva.entity_registry:create()
    shiva.entity_registry:destroy(id)
end

shiva.entity_registry:nb_entities

This function retrieve the number of entities through the EnTT registry

shiva.entity_registry:nb_entities()

Return value

Possible name

Description

nb_entities

integer

  • the number of entities

Example

function foo()
    local id = shiva.entity_registry:create()
    assert(shiva.entity_registry:nb_entities() == 1)
    shiva.entity_registry:destroy(id)
    assert(shiva.entity_registry:nb_entities() == 0)
end

shiva.entityregistry:has_[component_name]_component

This function checks whether the requested component is associated with the given entity through the EnTT registry

All those functions are automatically generated based on the common components.

-- Global signature
shiva.entity_registry:has_[component_name]_component(entity_id);

-- Example of generated one
shiva.entity_registry:has_layer_1_component(entity_id);

Parameters

Name

Description

entity_id

integer

  • the identifier of the entity to be verified

Return value

Possible name

Description

result

boolean

  • true if the entity has the component

  • false otherwise

Example

function foo()
    local entity_id = shiva.entity_registry:create()
    local component = shiva.entity_registry:add_layer_1_component(entity_id)
    local same_component = shiva.entity_registry:get_layer_1_component(entity_id)
    assert(shiva.entity_registry:has_layer_1_component(entity_id) == true, "should be true")
    shiva.entity_registry:remove_layer_1_component(entity_id)
    assert(shiva.entity_registry:has_layer_1_component(entity_id) == false, "should be false")
    return true
end

Last updated