summaryrefslogtreecommitdiffstats
path: root/src/game/shared/factory.cc
diff options
context:
space:
mode:
authoruntodesu <kirill@untode.su>2025-06-29 22:24:42 +0500
committeruntodesu <kirill@untode.su>2025-06-29 22:24:42 +0500
commit6cd00aacfa22fed6a54a9b812f6b069ad16feec0 (patch)
treeb77f4e665da3dd235cdb01e7e6ea78c1c02ecf2e /src/game/shared/factory.cc
parentf440914e1ae453768d09383f332bc7844e0a700e (diff)
downloadvoxelius-6cd00aacfa22fed6a54a9b812f6b069ad16feec0.tar.bz2
voxelius-6cd00aacfa22fed6a54a9b812f6b069ad16feec0.zip
Move game sources into src subdirectory
Diffstat (limited to 'src/game/shared/factory.cc')
-rw-r--r--src/game/shared/factory.cc35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/game/shared/factory.cc b/src/game/shared/factory.cc
new file mode 100644
index 0000000..ad65928
--- /dev/null
+++ b/src/game/shared/factory.cc
@@ -0,0 +1,35 @@
+#include "shared/pch.hh"
+
+#include "shared/factory.hh"
+
+#include "shared/collision.hh"
+#include "shared/dimension.hh"
+#include "shared/globals.hh"
+#include "shared/gravity.hh"
+#include "shared/head.hh"
+#include "shared/player.hh"
+#include "shared/transform.hh"
+#include "shared/velocity.hh"
+
+void shared_factory::create_player(Dimension* dimension, entt::entity entity)
+{
+ spdlog::debug("factory[{}]: assigning player components to {}", dimension->get_name(), static_cast<std::uint64_t>(entity));
+
+ auto& collision = dimension->entities.emplace_or_replace<CollisionComponent>(entity);
+ collision.aabb.min = glm::fvec3(-0.4f, -1.6f, -0.4f);
+ collision.aabb.max = glm::fvec3(+0.4f, +0.2f, +0.4f);
+
+ auto& head = dimension->entities.emplace_or_replace<HeadComponent>(entity);
+ head.angles = glm::fvec3(0.0f, 0.0f, 0.0f);
+ head.offset = glm::fvec3(0.0f, 0.0f, 0.0f);
+
+ dimension->entities.emplace_or_replace<PlayerComponent>(entity);
+
+ auto& transform = dimension->entities.emplace_or_replace<TransformComponent>(entity);
+ transform.chunk = chunk_pos(0, 2, 0);
+ transform.local = glm::fvec3(0.0f, 0.0f, 0.0f);
+ transform.angles = glm::fvec3(0.0f, 0.0f, 0.0f);
+
+ auto& velocity = dimension->entities.emplace_or_replace<VelocityComponent>(entity);
+ velocity.value = glm::fvec3(0.0f, 0.0f, 0.0f);
+}