add entity events: on_spawn, on_despawn
This commit is contained in:
@@ -4,5 +4,5 @@ Hitbox::Hitbox(glm::vec3 position, glm::vec3 halfsize)
|
||||
: position(position),
|
||||
halfsize(halfsize),
|
||||
velocity(0.0f,0.0f,0.0f),
|
||||
linear_damping(0.1f)
|
||||
linearDamping(0.1f)
|
||||
{}
|
||||
|
||||
@@ -3,12 +3,11 @@
|
||||
|
||||
#include <glm/glm.hpp>
|
||||
|
||||
class Hitbox {
|
||||
public:
|
||||
struct Hitbox {
|
||||
glm::vec3 position;
|
||||
glm::vec3 halfsize;
|
||||
glm::vec3 velocity;
|
||||
float linear_damping;
|
||||
float linearDamping;
|
||||
bool grounded = false;
|
||||
|
||||
Hitbox(glm::vec3 position, glm::vec3 halfsize);
|
||||
|
||||
@@ -22,7 +22,7 @@ void PhysicsSolver::step(
|
||||
bool collisions
|
||||
) {
|
||||
float dt = delta / static_cast<float>(substeps);
|
||||
float linear_damping = hitbox->linear_damping;
|
||||
float linearDamping = hitbox->linearDamping;
|
||||
float s = 2.0f/BLOCK_AABB_GRID;
|
||||
|
||||
const glm::vec3& half = hitbox->halfsize;
|
||||
@@ -41,8 +41,8 @@ void PhysicsSolver::step(
|
||||
colisionCalc(chunks, hitbox, vel, pos, half,
|
||||
(prevGrounded && gravityScale > 0.0f) ? 0.5f : 0.0f);
|
||||
}
|
||||
vel.x *= glm::max(0.0f, 1.0f - dt * linear_damping);
|
||||
vel.z *= glm::max(0.0f, 1.0f - dt * linear_damping);
|
||||
vel.x *= glm::max(0.0f, 1.0f - dt * linearDamping);
|
||||
vel.z *= glm::max(0.0f, 1.0f - dt * linearDamping);
|
||||
|
||||
pos += vel * dt + gravity * gravityScale * dt * dt * 0.5f;
|
||||
if (hitbox->grounded && pos.y < py) {
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
#include <glm/glm.hpp>
|
||||
|
||||
class Block;
|
||||
class Hitbox;
|
||||
class Chunks;
|
||||
struct Hitbox;
|
||||
|
||||
class PhysicsSolver {
|
||||
glm::vec3 gravity;
|
||||
|
||||
Reference in New Issue
Block a user