#1 - ClientWorldController refactoring
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
#include "LocalWorldController.hpp"
|
||||
#include "world/JoltPhysicsWorld.hpp"
|
||||
#include "world/WorldEntity.hpp"
|
||||
|
||||
namespace tw {
|
||||
|
||||
CharacterBody* create_player_body(World* world, JoltPhysicsWorld* physics_world, drw::WorldRenderer* renderer) {
|
||||
const auto entity = world->registry().create();
|
||||
|
||||
drw::Mesh mesh = renderer->add_mesh(drw::MeshData::cube(glm::vec3(1.0f)));
|
||||
|
||||
world->registry()
|
||||
.emplace<Transform>(entity,
|
||||
Transform(glm::vec3(0.0f, 10.0f, 0.0f)));
|
||||
|
||||
world->registry()
|
||||
.emplace<tw::WorldEntity>(entity,
|
||||
tw::WorldEntity(std::string("player"), (uint32_t)entity));
|
||||
|
||||
world->registry()
|
||||
.emplace<tw::drw::Mesh>(entity,
|
||||
mesh);
|
||||
|
||||
auto* body = &world->registry()
|
||||
.emplace<CharacterBody>(entity, physics_world->create_character(
|
||||
new JPH::BoxShape(JPH::Vec3Arg(0.5f, 0.5f, 0.5f)),
|
||||
glm::vec3(0.0f, 10.0f, 0.0f)));
|
||||
|
||||
return body;
|
||||
}
|
||||
|
||||
LocalWorldController::LocalWorldController(
|
||||
io::InputManager* inputs,
|
||||
World* world,
|
||||
JoltPhysicsWorld* physics_world,
|
||||
drw::WorldRenderer* world_renderer) :
|
||||
m_input_manager(inputs),
|
||||
m_world(world),
|
||||
m_physics_world(physics_world),
|
||||
m_world_renderer(world_renderer),
|
||||
m_player_body(create_player_body(world, physics_world, world_renderer)),
|
||||
m_player_controller(&world_renderer->camera(), glm::vec3())
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LocalWorldController::update(double delta_time) {
|
||||
m_player_controller.update(m_input_manager, delta_time);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user