mirror of
https://github.com/zhenyan121/Cubed.git
synced 2026-06-18 00:27:02 +08:00
feat: water rendering (#13)
* refactor: update water texture * feat(gameplay): implement transparent block rendering with depth sorting * fix(world): use camera pos for distance calculations, make water passable * refactor(player): use ivec3 for block pass check * feat(camera): add underwater detection * feat(renderer): add underwater effect with framebuffer post-processing * feat(block): add gas property and refactor solid block check * fix(assets): set leaf block transparency to false * fix(block): set leaf as transparent
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "Cubed/camera.hpp"
|
||||
|
||||
#include "Cubed/gameplay/player.hpp"
|
||||
#include "Cubed/gameplay/world.hpp"
|
||||
#include "Cubed/tools/cubed_assert.hpp"
|
||||
|
||||
namespace Cubed {
|
||||
@@ -12,6 +13,13 @@ void Camera::update_move_camera() {
|
||||
auto pos = m_player->get_player_pos();
|
||||
// pos.y need to add 1.6f to center
|
||||
m_camera_pos = glm::vec3(pos.x, pos.y + 1.6f, pos.z);
|
||||
glm::ivec3 block_pos = glm::floor(m_camera_pos);
|
||||
auto& world = m_player->get_world();
|
||||
if (world.get_block_tpye(block_pos) == 7) {
|
||||
m_under_water = true;
|
||||
} else {
|
||||
m_under_water = false;
|
||||
}
|
||||
}
|
||||
|
||||
void Camera::camera_init(Player* player) {
|
||||
@@ -50,4 +58,6 @@ const glm::mat4 Camera::get_camera_lookat() const {
|
||||
|
||||
const glm::vec3& Camera::get_camera_pos() const { return m_camera_pos; }
|
||||
|
||||
bool Camera::is_under_water() const { return m_under_water; }
|
||||
|
||||
} // namespace Cubed
|
||||
|
||||
Reference in New Issue
Block a user