23#define KTECH_DEFINITION
24#include "../ktech.hpp"
25#undef KTECH_DEFINITION
63 for (
size_t i = (
id.m_i < m_vec.size() ?
id.m_i : m_vec.size() - 1);; i--)
65 if (m_vec[i]->m_id ==
id)
90 return IDToIndex(
id) != m_vec.size();
94 std::vector<T*> m_vec;
99 auto Add(T* structure) ->
ID<T>
101 structure->m_id.m_i = m_vec.size();
102 m_vec.push_back(structure);
103 return m_vec[m_vec.size() - 1]->m_id;
109 auto Remove(
const ID<T>&
id) ->
bool
111 size_t toRemove = IDToIndex(
id);
112 if (toRemove == m_vec.size())
116 m_vec.erase(m_vec.begin() + toRemove);
122 auto IDToIndex(
const ID<T>&
id) ->
size_t
126 for (
size_t i = (
id.m_i < m_vec.size() ?
id.m_i : m_vec.size() - 1);; i--)
128 if (m_vec[i]->m_id ==
id)
Registry that retrieves world structure pointers by serializable ID.
Definition cachingregistry.hpp:49
auto Exists(const ID< T > &id) -> bool
Check if an ID matches a registered structure.
Definition cachingregistry.hpp:88
auto operator[](const ID< T > &id) -> T *
Retrieve structure using its ID.
Definition cachingregistry.hpp:59
Serializable world structure identifier.
Definition id.hpp:38