aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/ComponentManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/ComponentManager.cpp')
-rw-r--r--src/crepe/ComponentManager.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/crepe/ComponentManager.cpp b/src/crepe/ComponentManager.cpp
index 7123905..c6b658c 100644
--- a/src/crepe/ComponentManager.cpp
+++ b/src/crepe/ComponentManager.cpp
@@ -1,13 +1,10 @@
+#include "api/GameObject.h"
#include "util/Log.h"
#include "ComponentManager.h"
using namespace crepe;
-
-ComponentManager & ComponentManager::get_instance() {
- static ComponentManager instance;
- return instance;
-}
+using namespace std;
void ComponentManager::delete_all_components_of_id(game_object_id_t id) {
// Loop through all the types (in the unordered_map<>)
@@ -26,5 +23,15 @@ void ComponentManager::delete_all_components() {
}
ComponentManager::ComponentManager() { dbg_trace(); }
-
ComponentManager::~ComponentManager() { dbg_trace(); }
+
+GameObject & ComponentManager::new_object(const string & name,
+ const string & tag,
+ const Vector2 & position,
+ double rotation, double scale) {
+ GameObject * object = new GameObject(*this, this->next_id, name, tag,
+ position, rotation, scale);
+ this->objects.push_front(unique_ptr<GameObject>(object));
+ this->next_id++;
+ return *object;
+}