feat(entities): derivar collision_radius del shape + scale/collision_factor al YAML

This commit is contained in:
2026-05-25 11:29:43 +02:00
parent da8eab330d
commit 866a057704
12 changed files with 149 additions and 104 deletions
+6 -5
View File
@@ -6,7 +6,6 @@
#include <cstdint>
#include "core/defaults.hpp"
#include "core/entities/entity.hpp"
#include "core/types.hpp"
#include "game/entities/player_config.hpp"
@@ -30,10 +29,9 @@ class Ship : public Entities::Entity {
// Override: Interfaz de Entity
[[nodiscard]] auto isActive() const -> bool override { return !is_hit_; }
// Override: Interfaz de colisión
[[nodiscard]] auto getCollisionRadius() const -> float override {
return config_.physics.collision_radius;
}
// Override: Interfaz de colisión. Derivat al ctor del bounding_radius del
// shape carregat × scale × collision_factor.
[[nodiscard]] auto getCollisionRadius() const -> float override { return collision_radius_; }
[[nodiscard]] auto isCollidable() const -> bool override {
return !is_hit_ && invulnerable_timer_ <= 0.0F;
}
@@ -73,6 +71,9 @@ class Ship : public Entities::Entity {
// copy/move-assignment quan GameScene crea la nau real.
PlayerConfig config_{};
// Radi de col·lisió derivat: shape.bounding_radius × shape.scale × shape.collision_factor.
float collision_radius_{0.0F};
bool is_hit_{false};
float invulnerable_timer_{0.0F}; // 0.0f = vulnerable, >0.0f = invulnerable