Michele Caini 5 лет назад
Родитель
Сommit
a40ac1c46c
2 измененных файлов с 3 добавлено и 14 удалено
  1. 0 1
      TODO
  2. 3 13
      src/entt/entity/registry.hpp

+ 0 - 1
TODO

@@ -9,7 +9,6 @@
 WIP:
 * HP: any_vector for context variables
 * HP: make const registry::view thread safe, switch to a view<T...>{registry} model (long term goal)
-* HP: remove storage category and get_as_tuple, make storage classes return tuple (+ view generator detect shared storage in future)?
 * HP: review registry::get, registry::try_get
 * HP: weak reference wrapper example with custom storage
 * HP: merge view and view pack

+ 3 - 13
src/entt/entity/registry.hpp

@@ -790,25 +790,15 @@ public:
      */
     template<typename... Component>
     [[nodiscard]] decltype(auto) get([[maybe_unused]] const entity_type entity) const {
-        ENTT_ASSERT(valid(entity));
-
-        if constexpr(sizeof...(Component) == 1) {
-            return (pool_if_exists<Component>()->get(entity), ...);
-        } else {
-            return std::forward_as_tuple(pool_if_exists<Component>()->get(entity)...);
-        }
+        ENTT_ASSERT(valid(entity) && ... && pool_if_exists<Component>());
+        return view<std::add_const_t<Component>...>().get<std::add_const_t<Component>...>(entity);
     }
 
     /*! @copydoc get */
     template<typename... Component>
     [[nodiscard]] decltype(auto) get([[maybe_unused]] const entity_type entity) {
         ENTT_ASSERT(valid(entity));
-
-        if constexpr(sizeof...(Component) == 1) {
-            return (assure<Component>()->get(entity), ...);
-        } else {
-            return std::forward_as_tuple(assure<Component>()->get(entity)...);
-        }
+        return view<Component...>().get<Component...>(entity);
     }
 
     /**