diff --git a/res/content/base/entities/player.json b/res/content/base/entities/player.json index aa789b3b..cfbc80db 100644 --- a/res/content/base/entities/player.json +++ b/res/content/base/entities/player.json @@ -1,3 +1,3 @@ { - "hitbox": [0.4, 0.9, 0.4] + "hitbox": [0.3, 0.9, 0.3] } diff --git a/src/logic/LevelController.cpp b/src/logic/LevelController.cpp index cd460c19..501abd0c 100644 --- a/src/logic/LevelController.cpp +++ b/src/logic/LevelController.cpp @@ -40,10 +40,11 @@ void LevelController::update(float delta, bool input, bool pause) { } } blocks->update(delta); + player->update(delta, input, pause); level->entities->updatePhysics(delta); level->entities->update(); } - player->update(delta, input, pause); + player->postUpdate(delta, input, pause); // erease null pointers level->objects.erase( diff --git a/src/logic/PlayerController.cpp b/src/logic/PlayerController.cpp index a929381e..8305e0b0 100644 --- a/src/logic/PlayerController.cpp +++ b/src/logic/PlayerController.cpp @@ -239,11 +239,16 @@ void PlayerController::update(float delta, bool input, bool pause) { } else { resetKeyboard(); } + updatePlayer(delta); + } +} + +void PlayerController::postUpdate(float delta, bool input, bool pause) { + if (!pause) { updateFootsteps(delta); updateCamera(delta, input); - updatePlayer(delta); - } + player->postUpdate(this->input, delta); camControl.refresh(); if (input) { updateInteraction(); diff --git a/src/logic/PlayerController.hpp b/src/logic/PlayerController.hpp index 7c3fc112..521e7ec3 100644 --- a/src/logic/PlayerController.hpp +++ b/src/logic/PlayerController.hpp @@ -89,7 +89,7 @@ public: BlocksController* blocksController ); void update(float delta, bool input, bool pause); - + void postUpdate(float delta, bool input, bool pause); Player* getPlayer(); void listenBlockInteraction(const on_block_interaction& callback); diff --git a/src/logic/scripting/scripting.cpp b/src/logic/scripting/scripting.cpp index 1f38165e..6191d909 100644 --- a/src/logic/scripting/scripting.cpp +++ b/src/logic/scripting/scripting.cpp @@ -286,11 +286,10 @@ void scripting::on_entity_spawn( lua::call(L, 1); } if (components.size() > 1) { - for (int i = 0; i < components.size()-1; i++) { + for (size_t i = 0; i < components.size()-1; i++) { lua::pushvalue(L, -1); } } - std::cout << "entity duplicated " << (components.size()-1) << " times" << std::endl; for (auto& component : components) { auto compenv = create_component_environment(get_root_environment(), -1, component->name); diff --git a/src/objects/Entities.cpp b/src/objects/Entities.cpp index 43154d98..311a907a 100644 --- a/src/objects/Entities.cpp +++ b/src/objects/Entities.cpp @@ -66,7 +66,6 @@ entityid_t Entities::spawn( dynamic::Map_sptr saved, entityid_t uid) { - std::cout << "spawn entity " << def.name << std::endl; auto rig = level->content->getRig(def.rigName); if (rig == nullptr) { throw std::runtime_error("rig "+def.rigName+" not found"); @@ -109,10 +108,8 @@ entityid_t Entities::spawn( componentName, entity_funcs_set {}, nullptr); scripting.components.emplace_back(std::move(component)); } - std::cout << "on_entity_spawn" << std::endl; scripting::on_entity_spawn( def, id, scripting.components, std::move(args), std::move(saved)); - std::cout << "done" << std::endl; return id; } diff --git a/src/objects/Player.cpp b/src/objects/Player.cpp index 6f456a83..0c08e30d 100644 --- a/src/objects/Player.cpp +++ b/src/objects/Player.cpp @@ -96,9 +96,15 @@ void Player::updateInput(PlayerInput& input, float delta) { dir = glm::normalize(dir); hitbox->velocity += dir * speed * delta * 9.0f; } +} + +void Player::postUpdate(PlayerInput& input, float delta) { + auto hitbox = getHitbox(); + if (hitbox == nullptr) { + return; + } + position = hitbox->position; - // physics calculation was here - if (flight && hitbox->grounded) { flight = false; } @@ -272,7 +278,6 @@ void Player::deserialize(dynamic::Map *src) { if (auto invmap = src->map("inventory")) { getInventory()->deserialize(invmap.get()); } - std::cout << "Player::DESERIALIZE " << eid << std::endl; } void Player::convert(dynamic::Map* data, const ContentLUT* lut) { diff --git a/src/objects/Player.hpp b/src/objects/Player.hpp index b136b45f..2b04c077 100644 --- a/src/objects/Player.hpp +++ b/src/objects/Player.hpp @@ -65,6 +65,7 @@ public: void teleport(glm::vec3 position); void updateEntity(); void updateInput(PlayerInput& input, float delta); + void postUpdate(PlayerInput& input, float delta); void attemptToFindSpawnpoint();