49 virtual void* populate(
const std::string& aName,
const void* aComponentData, std::size_t aComponentDataSize) = 0;
50 template <
typename ComponentData>
53 return populate(aName, &std::forward<ComponentData>(aComponentData),
sizeof(
ComponentData));
60 virtual bool has_entity_record(
entity_id aEntity)
const = 0;
61 virtual void destroy_entity_record(
entity_id aEntity) = 0;
63 virtual void* populate(
entity_id aEntity,
const void* aComponentData, std::size_t aComponentDataSize) = 0;
64 template <
typename ComponentData>
67 return populate(aEntity, &std::forward<ComponentData>(aComponentData),
sizeof(
ComponentData));
71 template <
typename ComponentData>
74 template <
typename ComponentData>
void * populate(const std::string &aName, ComponentData &&aComponentData)
virtual component_data_field_type field_type(uint32_t aFieldIndex) const =0
virtual const i_string & field_name(uint32_t aFieldIndex) const =0
virtual bool is_data_optional() const =0
virtual game::i_ecs & ecs() const =0
virtual const i_string & name() const =0
virtual const component_id & id() const =0
virtual neolib::uuid field_type_id(uint32_t aFieldIndex) const =0
void * populate(entity_id aEntity, ComponentData &&aComponentData)
virtual ~i_component_base()=default
virtual uint32_t field_count() const =0
component_data_field_type