const std = @import("std");
const rl = @import("raylib");

const Vec3 = rl.Vector3;
const Vec2 = rl.Vector2;

const Frug = struct {
    pos: Vec3,
    radius: f32 = 24,
    pub fn draw(self: @This()) void {
        rl.drawCircleV(
            Vec2.init(self.pos.x, self.pos.y),
            self.radius,
            .green,
        );
    }
    pub fn init() Frug {
        return Frug{
            .pos = .{ .x = 200, .y = 400, .z = 10 },
            .radius = 24,
        };
    }
};

pub fn main(init: std.process.Init) anyerror!void {
    const io = init.io;
    try std.Io.File.stdout().writeStreamingAll(io, "FRUGG!\n");

    const screenWidth = 800;
    const screenHeight = 600;

    rl.initWindow(screenWidth, screenHeight, "Zig Frugger");
    defer rl.closeWindow();

    rl.initAudioDevice();
    defer rl.closeAudioDevice();
    const frugBurp = try rl.loadSound("resources/burp.mp3");
    defer rl.unloadSound(frugBurp);

    rl.setTargetFPS(60);

    const frug = Frug.init();

    while (!rl.windowShouldClose()) {
        rl.beginDrawing();
        defer rl.endDrawing();

        if (rl.isKeyPressed(.space)) rl.playSound(frugBurp);

        rl.clearBackground(.sky_blue);

        frug.draw();

        rl.drawText("FRUGG!", 10, 10, 40, .green);
    }
}
