fix blocks placing when crouching

This commit is contained in:
MihailRis 2024-07-13 04:48:03 +03:00
parent 6442a3476f
commit 8617784084
4 changed files with 13 additions and 3 deletions

View File

@ -18,7 +18,6 @@ entity:despawn()
-- Возращает имя скелета сущности
entity:get_skeleton() -> str
-- Заменяет скелет сущности
entity:set_skeleton(name: str)
@ -27,7 +26,6 @@ entity:get_uid() -> int
-- Возвращает компонент по имени
entity:get_component(name: str) -> компонент или nil
-- Проверяет наличие компонента по имени
entity:has_component(name: str) -> bool
```

View File

@ -100,6 +100,17 @@ struct AABB {
b.z >= aabb.a.z
);
}
inline bool intersect(const AABB& aabb, float margin) {
return (
a.x <= aabb.b.x+margin &&
b.x >= aabb.a.x-margin &&
a.y <= aabb.b.y+margin &&
b.y >= aabb.a.y-margin &&
a.z <= aabb.b.z+margin &&
b.z >= aabb.a.z-margin
);
}
};
#endif // MATHS_AABB_HPP_

View File

@ -407,7 +407,7 @@ void Entities::render(Assets* assets, ModelBatch& batch, const Frustum& frustum,
bool Entities::hasBlockingInside(AABB aabb) {
auto view = registry.view<EntityId, Rigidbody>();
for (auto [entity, eid, body] : view.each()) {
if (eid.def.blocking && aabb.intersect(body.hitbox.getAABB())) {
if (eid.def.blocking && aabb.intersect(body.hitbox.getAABB(), -0.05f)) {
return true;
}
}

View File

@ -88,6 +88,7 @@ static std::tuple<size_t, std::unique_ptr<Bone>> read_node(
std::string model;
root->str("name", name);
root->str("model", model);
std::vector<std::unique_ptr<Bone>> bones;
size_t count = 1;
if (auto nodesList = root->list("nodes")) {