aboutsummaryrefslogtreecommitdiff
path: root/source/30-game/EditorAttachmentImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/30-game/EditorAttachmentImpl.cpp')
-rw-r--r--source/30-game/EditorAttachmentImpl.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/source/30-game/EditorAttachmentImpl.cpp b/source/30-game/EditorAttachmentImpl.cpp
new file mode 100644
index 0000000..b09c133
--- /dev/null
+++ b/source/30-game/EditorAttachmentImpl.cpp
@@ -0,0 +1,23 @@
+#include "EditorAttachmentImpl.hpp"
+#include "EditorAttachment.hpp"
+
+#include <Metadata.hpp>
+
+EditorAttachment::EditorAttachment() {
+}
+
+std::unique_ptr<EditorAttachment> EaGameObject::Create(GameObject* object) {
+ EaGameObject* result;
+
+ auto kind = object->GetKind();
+ switch (kind) {
+ case GameObject::KD_Player: result = new EaPlayer(); break;
+ case GameObject::KD_LevelWrapper: result = new EaLevelWrapper(); break;
+
+ default: result = new EaGameObject(); break;
+ }
+
+ result->name = Metadata::EnumToString(kind);
+ result->eulerAnglesRotation = glm::eulerAngles(object->GetRotation());
+ return std::unique_ptr<EditorAttachment>(result);
+}