File tree Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -447,6 +447,36 @@ ECSACT_ALWAYS_INLINE auto system_capabilities(SystemLikeID id) {
447
447
return result;
448
448
}
449
449
450
+ template <typename SystemLikeID>
451
+ ECSACT_ALWAYS_INLINE auto system_capabilities_list (SystemLikeID id) {
452
+ using result_t =
453
+ std::vector<std::pair<ecsact_component_like_id, ecsact_system_capability>>;
454
+
455
+ const auto sys_like_id = ecsact_id_cast<ecsact_system_like_id>(id);
456
+ auto count = ecsact_meta_system_capabilities_count (sys_like_id);
457
+ std::vector<ecsact_component_like_id> components;
458
+ std::vector<ecsact_system_capability> capabilities;
459
+ components.resize (count);
460
+ capabilities.resize (count);
461
+
462
+ ecsact_meta_system_capabilities (
463
+ sys_like_id,
464
+ count,
465
+ components.data (),
466
+ capabilities.data (),
467
+ nullptr
468
+ );
469
+
470
+ result_t result;
471
+ result.reserve (count);
472
+
473
+ for (decltype (count) i = 0 ; count > i; ++i) {
474
+ result.emplace_back (components[i], capabilities[i]);
475
+ }
476
+
477
+ return result;
478
+ }
479
+
450
480
template <typename SystemLikeID>
451
481
ECSACT_ALWAYS_INLINE auto get_system_generates_ids (SystemLikeID id) {
452
482
auto sys_like_id = ecsact_id_cast<ecsact_system_like_id>(id);
You can’t perform that action at this time.
0 commit comments