From 3bf42c6ff3805a0d42bbc661794a95ff31bedc26 Mon Sep 17 00:00:00 2001 From: untodesu Date: Sat, 15 Mar 2025 16:22:09 +0500 Subject: Add whatever I was working on for the last month --- game/shared/factory.cc | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 game/shared/factory.cc (limited to 'game/shared/factory.cc') diff --git a/game/shared/factory.cc b/game/shared/factory.cc new file mode 100644 index 0000000..ee09a24 --- /dev/null +++ b/game/shared/factory.cc @@ -0,0 +1,36 @@ +#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(entity)); + + auto &collision = dimension->entities.emplace_or_replace(entity); + collision.aabb.min = glm::fvec3(-0.4f, -1.6f, -0.4f); + collision.aabb.max = glm::fvec3(+0.4f, +0.2f, +0.4f); + + dimension->entities.emplace_or_replace(entity); + + auto &head = dimension->entities.emplace_or_replace(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(entity); + + auto &transform = dimension->entities.emplace_or_replace(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(entity); + velocity.value = glm::fvec3(0.0f, 0.0f, 0.0f); +} -- cgit