feat(entities): derivar collision_radius del shape + scale/collision_factor al YAML
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user