mgecumshooter/esotera
nope
Commit 433152b75705 · silentevermore · 2026-10-20 20:05 +0300
Comments
No comments yet.
Diff
diff --git a/src/main.rs b/src/main.rs
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,12 +1,12 @@
// external deps
+use rlb::prelude::*;
use sola_raylib as rlb;
-use rlb::prelude::*;
// modules declarations
mod chunk;
-mod voxel;
mod player;
mod util;
+mod voxel;
mod world;
// internal modules
@@ -15,32 +15,38 @@
use util::Cube;
use world::*;
-
fn main() {
- let (mut rl, rl_thd) = rlb::init()
- .size(800, 600)
- .title("ESOTERA")
- .vsync()
- .build();
+ let (mut rl, rl_thd) = rlb::init().size(800, 600).title("ESOTERA").vsync().build();
let mut cam = Camera3D::perspective(
Vector3::new(0f32, 1f32, 10f32),
Vector3::new(0f32, 0f32, 0f32),
Vector3::new(0f32, 1f32, 0f32),
- 90f32
+ 90f32,
);
rl.hide_cursor();
rl.disable_cursor();
+ // shader stuff
+ let mut shader = rl
+ .load_shader(
+ &rl_thd,
+ Some("shaders/vert.glsl"),
+ Some("shaders/frag.glsl"),
+ )
+ .unwrap();
+ let mut post_shader = rl
+ .load_shader(&rl_thd, None, Some("shaders/post.glsl"))
+ .unwrap();
+ let mut rend_tex = rl
+ .load_render_texture(
+ &rl_thd,
+ rl.get_render_width() as u32,
+ rl.get_render_height() as u32,
+ )
+ .unwrap();
- // shader stuff
- let mut shader = rl.load_shader(&rl_thd, Some("shaders/vert.glsl"), Some("shaders/frag.glsl")).unwrap();
- let mut post_shader = rl.load_shader(&rl_thd, None, Some("shaders/post.glsl")).unwrap();
- let mut rend_tex = rl.load_render_texture
- (&rl_thd, rl.get_render_width() as u32, rl.get_render_height() as u32).unwrap();
-
-
// chunks
// let test_chunk = Chunk::new(Vector3::zero());
@@ -49,59 +55,67 @@
let mut world = World::new(2);
let mut plr = Player::new(
- Vector3::new(0f32, 10f32, 0f32),
- Cube::new(
- Vector3::new(5f32, 10f32, 5f32),
- ),
+ Vector3::new(0f32, 10f32, 0f32),
+ Cube::new(Vector3::new(5f32, 10f32, 5f32)),
);
-
// main game loop
while !rl.window_should_close() {
- world.update_around_player(plr.get_eye_pos());
+ world.update_around_player(plr.get_eye_pos());
+
+ let active_chunks: Vec<&Chunk> = world.chunks.values().collect();
+ plr.update(&rl, &active_chunks);
+ plr.apply_to_camera(&mut cam);
- let active_chunks: Vec<&Chunk> = world.chunks.values().collect();
- plr.update(&rl, &active_chunks);
- plr.apply_to_camera(&mut cam);
-
-
- if rend_tex.width() != rl.get_render_width() || rend_tex.height() != rl.get_render_height() {
- rend_tex = rl.load_render_texture
- (&rl_thd, rl.get_render_width() as u32, rl.get_render_height() as u32).unwrap();
+ if rend_tex.width() != rl.get_render_width() || rend_tex.height() != rl.get_render_height()
+ {
+ rend_tex = rl
+ .load_render_texture(
+ &rl_thd,
+ rl.get_render_width() as u32,
+ rl.get_render_height() as u32,
+ )
+ .unwrap();
}
- rl.draw(&rl_thd, |mut d| {
+ rl.draw(&rl_thd, |mut d| {
d.draw_texture_mode(&rl_thd, &mut rend_tex, |mut tx| {
tx.clear_background(Color::new(30, 30, 30, 255));
tx.draw_mode3D(cam, |mut d3, _| {
d3.draw_grid(100, 1f32);
d3.draw_shader_mode(&mut shader, |mut shd| {
// test_chunk.draw(&mut shd);
- for chunk in world.chunks.values() {
- chunk.draw(&mut shd);
- }
+ for chunk in world.chunks.values() {
+ chunk.draw(&mut shd);
+ }
});
});
});
d.draw_shader_mode(&mut post_shader, |mut shd| {
- shd.draw_texture_rec(&rend_tex, Rectangle{
- x: 0f32,
- y: 0f32,
- width: rend_tex.texture().width as f32,
- height: -rend_tex.texture().height as f32
- }, Vector2::zero(), Color::WHITE);
+ shd.draw_texture_rec(
+ &rend_tex,
+ Rectangle {
+ x: 0f32,
+ y: 0f32,
+ width: rend_tex.texture().width as f32,
+ height: -rend_tex.texture().height as f32,
+ },
+ Vector2::zero(),
+ Color::WHITE,
+ );
});
- d.draw_text(
- &format!("x: {:.2}, y: {:.2}, z: {:.2}",
- plr.get_eye_pos().x,
- plr.get_eye_pos().y,
- plr.get_eye_pos().z,
- ),
- 0,
- 0,
- 20,
- Color::WHITE
- );
+ d.draw_text(
+ &format!(
+ "x: {:.2}, y: {:.2}, z: {:.2}",
+ plr.get_eye_pos().x,
+ plr.get_eye_pos().y,
+ plr.get_eye_pos().z,
+ ),
+ 0,
+ 0,
+ 20,
+ Color::WHITE,
+ );
});
}
}