diff options
author | metamuffin <metamuffin@disroot.org> | 2024-07-15 17:01:29 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-07-15 17:01:29 +0200 |
commit | a09aa839cb548d9ea1ce2cdd30874054ed9a3a80 (patch) | |
tree | 061cb86d3878f62090dd080eaef1f9db6f9454f7 /light-client/src/main.rs | |
parent | e04589e8b766882375a30c00fb715687a7cc9821 (diff) | |
download | hurrycurry-a09aa839cb548d9ea1ce2cdd30874054ed9a3a80.tar hurrycurry-a09aa839cb548d9ea1ce2cdd30874054ed9a3a80.tar.bz2 hurrycurry-a09aa839cb548d9ea1ce2cdd30874054ed9a3a80.tar.zst |
first visible tiles in light client
Diffstat (limited to 'light-client/src/main.rs')
-rw-r--r-- | light-client/src/main.rs | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/light-client/src/main.rs b/light-client/src/main.rs index cb7e6caf..2145e9b6 100644 --- a/light-client/src/main.rs +++ b/light-client/src/main.rs @@ -1,3 +1,6 @@ +use atlas::SpriteRenderer; +use game::Game; +use hurrycurry_protocol::PacketC; /* Hurry Curry! - a game about cooking Copyright 2024 metamuffin @@ -16,23 +19,15 @@ */ use network::Network; -use sdl2::{ - event::Event, - image::InitFlag, - keyboard::Keycode, - pixels::{Color, PixelFormatEnum}, - render::TextureAccess, -}; +use sdl2::{event::Event, keyboard::Keycode, pixels::Color}; +pub mod atlas; pub mod game; pub mod network; fn main() { - let net = Network::connect("ws://127.0.0.1:27032/"); - let sdl_context = sdl2::init().unwrap(); let video_subsystem = sdl_context.video().unwrap(); - let _image_context = sdl2::image::init(InitFlag::WEBP).unwrap(); let window = video_subsystem .window("Hurry Curry! Light Client", 1280, 720) .position_centered() @@ -48,23 +43,28 @@ fn main() { .map_err(|e| e.to_string()) .unwrap(); let texture_creator = canvas.texture_creator(); - let mut texture = texture_creator - .create_texture( - Some(PixelFormatEnum::RGBA8888), - TextureAccess::Streaming, - 1024, - 1024, - ) - .unwrap(); - texture.update(None, &vec![128; 1024 * 1024], 1024).unwrap(); + let mut net = Network::connect("ws://127.0.0.1/").unwrap(); + let mut game = Game::new(); + let mut renderer = SpriteRenderer::init(&texture_creator); 'mainloop: loop { - canvas.set_draw_color(Color::BLACK); - canvas.clear(); + net.poll(); - canvas.copy(&texture, None, None).unwrap(); + for packet in net.queue_in.drain(..) { + match packet { + PacketC::Data { data } => { + renderer.set_sprite_map(data); + } + _ => game.packet_in(packet), + } + } + + game.render(&mut renderer); + canvas.set_draw_color(Color::BLACK); + canvas.clear(); + renderer.submit(&mut canvas); canvas.present(); for event in sdl_context.event_pump().unwrap().poll_iter() { |