aboutsummaryrefslogtreecommitdiff
path: root/light-client/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'light-client/src/main.rs')
-rw-r--r--light-client/src/main.rs44
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() {