summaryrefslogtreecommitdiffstats
path: root/src/game/client/factory.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/client/factory.cc')
-rw-r--r--src/game/client/factory.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/game/client/factory.cc b/src/game/client/factory.cc
new file mode 100644
index 0000000..4c1c24e
--- /dev/null
+++ b/src/game/client/factory.cc
@@ -0,0 +1,28 @@
+#include "client/pch.hh"
+
+#include "client/factory.hh"
+
+#include "shared/dimension.hh"
+#include "shared/factory.hh"
+#include "shared/head.hh"
+#include "shared/transform.hh"
+
+#include "client/globals.hh"
+#include "client/sound_emitter.hh"
+
+void client_factory::create_player(Dimension* dimension, entt::entity entity)
+{
+ shared_factory::create_player(dimension, entity);
+
+ const auto& head = dimension->entities.get<HeadComponent>(entity);
+ dimension->entities.emplace_or_replace<HeadComponentIntr>(entity, head);
+ dimension->entities.emplace_or_replace<HeadComponentPrev>(entity, head);
+
+ const auto& transform = dimension->entities.get<TransformComponent>(entity);
+ dimension->entities.emplace_or_replace<TransformComponentIntr>(entity, transform);
+ dimension->entities.emplace_or_replace<TransformComponentPrev>(entity, transform);
+
+ if(globals::sound_ctx) {
+ dimension->entities.emplace_or_replace<SoundEmitterComponent>(entity);
+ }
+}