library CB-Library;
library CB-Library.FPS;
library CB-Library.Graphics;
library CB-Library.Threaded;
library CB-UI;
library CB-Render;
library CB-Physics;

fn main() {
    init_window(960, 540, "ClosedBit Keyboard Game Lab");
    set_background_color(0x050914);
    i256 player_x = 468;
    i256 player_y = 258;
    u256 frame = 0;

    while (!should_close()) {
        handle_events();
        if (is_key_down("Left") || is_key_down("A")) { player_x -= 5; }
        if (is_key_down("Right") || is_key_down("D")) { player_x += 5; }
        if (is_key_down("Up") || is_key_down("W")) { player_y -= 5; }
        if (is_key_down("Down") || is_key_down("S")) { player_y += 5; }
        player_x = math.clamp(player_x, 0, 928);
        player_y = math.clamp(player_y, 0, 508);

        CB-Render.starfield(5_000, frame, 0x546878);
        draw_rect(player_x, player_y, 32, 32, 0xCEE55C);
        draw_circle(720, 248, 44, 0xFF6B5B);
        draw_text(18, 16, "CLOSEDBIT KEYBOARD GAME LAB", 0xFFFFFF, 20);
        draw_text(18, 44, "Move with arrows or WASD | close this window to stop", 0xCEE55C, 15);
        draw_text(18, 68, "Renderer: " + CB-Render.backend(), 0x65CBD2, 15);
        swap_buffers();
        frame++;
    }

    cleanup();
}
