GitHub - ecsact-dev/ecsact_rt_entt: EnTT implementation of ecsact runtime & other EnTT + ecsact utilities (original) (raw)

EnTT Ecsact Runtime Implementation

Ecsact runtime built with EnTT.

System Views

In the simplest cases an Ecsact system lines up 1:1 with an EnTT view.

package example;
component Health { f32 value; }
component Invincible;
system Gravity { readwrite Position; exclude Weightless; }

entt::basic_view<entt::entity, entt::get_texample::Health, entt::exclude_texample::Invincible>

Since adds implies exclude and removes implies include even adds/removes systems are almost 1:1.

package example;
component Health { f32 value; }
component Healing;
action StartHealing { include Health; adds Healing; }
action StopHealing { include Health; removes Healing; }

// EnTT view for StartHealing entt::basic_view<entt::entity, entt::get_texample::Health, entt::exclude_texample::Healing> // EnTT view for StopHealing entt::basic_view<entt::entity, entt::get_t<example::Health, example::Healing>, entt::exclude_t<>>