mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-16 14:08:59 +07:00
world resolve function
This commit is contained in:
@@ -38,6 +38,9 @@ namespace e2d
|
|||||||
gobject_iptr instantiate();
|
gobject_iptr instantiate();
|
||||||
gobject_iptr instantiate(const prefab& prefab);
|
gobject_iptr instantiate(const prefab& prefab);
|
||||||
void destroy_instance(const gobject_iptr& inst) noexcept;
|
void destroy_instance(const gobject_iptr& inst) noexcept;
|
||||||
|
|
||||||
|
gobject_iptr resolve(ecs::entity_id ent) const noexcept;
|
||||||
|
gobject_iptr resolve(const ecs::const_entity& ent) const noexcept;
|
||||||
private:
|
private:
|
||||||
ecs::registry registry_;
|
ecs::registry registry_;
|
||||||
hash_map<ecs::entity_id, gobject_iptr> gobjects_;
|
hash_map<ecs::entity_id, gobject_iptr> gobjects_;
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ namespace
|
|||||||
shader_ptr shader_;
|
shader_ptr shader_;
|
||||||
texture_ptr texture1_;
|
texture_ptr texture1_;
|
||||||
texture_ptr texture2_;
|
texture_ptr texture2_;
|
||||||
index_buffer_ptr index_buffer_;
|
index_buffer_ptr index_buffer_;
|
||||||
vertex_buffer_ptr vertex_buffer1_;
|
vertex_buffer_ptr vertex_buffer1_;
|
||||||
vertex_buffer_ptr vertex_buffer2_;
|
vertex_buffer_ptr vertex_buffer2_;
|
||||||
render::material material_;
|
render::material material_;
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ namespace
|
|||||||
private:
|
private:
|
||||||
shader_ptr shader_;
|
shader_ptr shader_;
|
||||||
texture_ptr texture_;
|
texture_ptr texture_;
|
||||||
index_buffer_ptr index_buffer_;
|
index_buffer_ptr index_buffer_;
|
||||||
vertex_buffer_ptr vertex_buffer1_;
|
vertex_buffer_ptr vertex_buffer1_;
|
||||||
vertex_buffer_ptr vertex_buffer2_;
|
vertex_buffer_ptr vertex_buffer2_;
|
||||||
render::material material_;
|
render::material material_;
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ namespace
|
|||||||
private:
|
private:
|
||||||
shader_ptr shader_;
|
shader_ptr shader_;
|
||||||
texture_ptr texture_;
|
texture_ptr texture_;
|
||||||
index_buffer_ptr index_buffer_;
|
index_buffer_ptr index_buffer_;
|
||||||
vertex_buffer_ptr vertex_buffer_;
|
vertex_buffer_ptr vertex_buffer_;
|
||||||
render_target_ptr render_target_;
|
render_target_ptr render_target_;
|
||||||
render::property_block rt_props_;
|
render::property_block rt_props_;
|
||||||
|
|||||||
@@ -94,4 +94,20 @@ namespace e2d
|
|||||||
gobjects_.erase(inst->entity().id());
|
gobjects_.erase(inst->entity().id());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gobject_iptr world::resolve(ecs::entity_id ent) const noexcept {
|
||||||
|
E2D_ASSERT(registry_.valid_entity(ent));
|
||||||
|
const auto iter = gobjects_.find(ent);
|
||||||
|
return iter != gobjects_.end()
|
||||||
|
? iter->second
|
||||||
|
: nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
gobject_iptr world::resolve(const ecs::const_entity& ent) const noexcept {
|
||||||
|
E2D_ASSERT(registry_.valid_entity(ent));
|
||||||
|
const auto iter = gobjects_.find(ent.id());
|
||||||
|
return iter != gobjects_.end()
|
||||||
|
? iter->second
|
||||||
|
: nullptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user