58 lines
1.6 KiB
Rust
58 lines
1.6 KiB
Rust
use game::Game;
|
|
use servicepoint::{
|
|
BinaryOperation, BitVecCommand, Bitmap, CharGrid, CharGridCommand, ClearCommand,
|
|
CompressionCode, DisplayBitVec, FRAME_PACING, GridMut, TILE_HEIGHT, TILE_WIDTH, UdpSocketExt,
|
|
};
|
|
use std::thread::sleep;
|
|
use std::{net::UdpSocket, time::Instant};
|
|
|
|
mod bar;
|
|
mod border_panel;
|
|
mod game;
|
|
mod row;
|
|
mod unlocks;
|
|
|
|
type Currency = f64;
|
|
|
|
//const DESTINATION: &str = "127.0.0.1:2342";
|
|
const DESTINATION: &str = "172.23.42.29:2342";
|
|
|
|
fn main() {
|
|
env_logger::init();
|
|
|
|
let mut state = Game::new();
|
|
let connection = UdpSocket::bind_connect(DESTINATION).unwrap();
|
|
connection.send_command(ClearCommand);
|
|
|
|
let mut pixels = Bitmap::max_sized();
|
|
let mut chars_cmd = CharGridCommand::from(CharGrid::new(TILE_WIDTH, TILE_HEIGHT));
|
|
|
|
let mut last_refresh = Instant::now();
|
|
loop {
|
|
let current_time = Instant::now();
|
|
let delta = current_time - last_refresh;
|
|
last_refresh = current_time;
|
|
|
|
state.progress(delta);
|
|
|
|
let chars = &mut chars_cmd.grid;
|
|
|
|
chars.fill(' ');
|
|
pixels.fill(false);
|
|
|
|
let chars_view = chars.window_mut(.., ..).unwrap();
|
|
let pixels_view = pixels.window_mut(.., ..).unwrap();
|
|
state.draw(chars_view, pixels_view);
|
|
|
|
connection.send_command(&chars_cmd).unwrap();
|
|
connection
|
|
.send_command(BitVecCommand {
|
|
offset: 0,
|
|
bitvec: DisplayBitVec::from(pixels.clone()),
|
|
operation: BinaryOperation::Or,
|
|
compression: CompressionCode::default(),
|
|
})
|
|
.unwrap();
|
|
sleep(FRAME_PACING * 2);
|
|
}
|
|
}
|