load("@bazel_skylib//rules:run_binary.bzl", "run_binary")

cc_library(
    name = "game",
    srcs = glob(["*.c"]) + [
        "art/game_player.c",
        "art/game_tiles.c",
        "map/game_map.c",
    ],
    hdrs = glob(["*.h", "art/*.h", "map/*.h"]),
    visibility = ["//visibility:public"],
    deps = ["//device:device", "//sys:sys"]
)

run_binary(
    name = "game_player",
    args = [
        "game_player",
        "96",  # n sprites
        "0",  # key color
        "$(location :art/game_player.png)",
        "$(location :art/game_player.c)"
    ],
    srcs = [":art/game_player.png"],
    outs = [":art/game_player.c"],
    tool = "//pytools:spritesheet",
)

run_binary(
    name = "game_tiles",
    args = [
        "game_tiles",
        "120",  # n sprites
        "0",  # key color
        "$(location :art/game_tiles.png)",
        "$(location :art/game_tiles.c)"
    ],
    srcs = [":art/game_tiles.png"],
    outs = [":art/game_tiles.c"],
    tool = "//pytools:spritesheet",
)

run_binary(
    name = "game_map",
    args = [
        "game_map",
        "$(location :map/game_map.ldtk)",
        "$(location :map/game_map.c)",
    ],
    srcs = [":map/game_map.ldtk"],
    outs = [":map/game_map.c"],
    tool = "//pytools:mapdata"
)