VoxelEngine/src/physics/PhysicsSolver.hpp
MihailRis 47c6e35a0b fix
2024-05-19 08:40:43 +03:00

38 lines
826 B
C++

#ifndef PHYSICS_PHYSICSSOLVER_HPP_
#define PHYSICS_PHYSICSSOLVER_HPP_
#include "../typedefs.hpp"
#include <glm/glm.hpp>
class Block;
class Hitbox;
class Chunks;
class PhysicsSolver {
glm::vec3 gravity;
public:
PhysicsSolver(glm::vec3 gravity);
void step(
Chunks* chunks,
Hitbox* hitbox,
float delta,
uint substeps,
bool shifting,
float gravityScale,
bool collisions
);
void colisionCalc(
Chunks* chunks,
Hitbox* hitbox,
glm::vec3& vel,
glm::vec3& pos,
const glm::vec3 half,
float stepHeight
);
bool isBlockInside(int x, int y, int z, Hitbox* hitbox);
bool isBlockInside(int x, int y, int z, Block* def, blockstate_t states, Hitbox* hitbox);
};
#endif // PHYSICS_PHYSICSSOLVER_HPP_