diff --git a/Cargo.lock b/Cargo.lock index bdc3e3b..07575f6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1915,7 +1915,7 @@ dependencies = [ [[package]] name = "mission2teegarden-b" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "bincode", @@ -1938,7 +1938,7 @@ dependencies = [ [[package]] name = "mission2teegarden-b-macro" -version = "0.1.0" +version = "0.2.0" dependencies = [ "bincode", "glob", @@ -1949,7 +1949,7 @@ dependencies = [ [[package]] name = "mission2teegarden-b-map" -version = "0.1.0" +version = "0.2.0" dependencies = [ "anyhow", "basic-toml", @@ -1966,7 +1966,7 @@ dependencies = [ [[package]] name = "mission2teegarden-b-models" -version = "0.1.0" +version = "0.2.0" dependencies = [ "bincode", "serde", @@ -1976,7 +1976,7 @@ dependencies = [ [[package]] name = "mission2teegarden-b-pybadge" -version = "0.1.0" +version = "0.1.1" dependencies = [ "bincode", "embedded-graphics", diff --git a/README.md b/README.md index b84b2bf..e7fb05f 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,14 @@ # đŸȘ Mission to Teegarden b ![License: AGPL-3.0-or-later](https://img.shields.io/badge/license-AGPL--3.0--or--later-blue) -[![v0.1.0](https://img.shields.io/badge/version-v0.1.0-orange)](https://github.com/LuckyTurtleDev/mission2teegarden-b/releases/v0.1.0) +[![v0.1.1](https://img.shields.io/badge/version-v0.1.1-orange)](https://github.com/LuckyTurtleDev/mission2teegarden-b/releases/v0.1.1) [![GitHub tag (latest SemVer pre-release)](https://img.shields.io/github/v/tag/LuckyTurtleDev/mission2teegarden-b?label=latest&color=orange)](https://github.com/LuckyTurtleDev/mission2teegarden-b/releases/latest) [![Packaging status](https://repology.org/badge/tiny-repos/mission2teegarden-b.svg)](https://repology.org/project/mission2teegarden-b/versions) [![Source Code Repository](https://img.shields.io/badge/Code-On%20GitHub-blue?logo=GitHub)](https://github.com/LuckyTurtleDev/mission2teegarden-b) ![Rust Version: ^1.70](https://img.shields.io/badge/rustc-%5E1.70-orange.svg) + + Welcome to a journey to the unexplored planet Teegarden b, to find a new home for humanity. Robots were sent to the planet’s surface for exploration. Program these robots from the safety of your spaceship, by using your [pybadge][__link0].
@@ -28,9 +30,13 @@ Mission to Teegarden b is available at the following repositories: [![Packaging status][__link1]][__link2] -Prebuild binaries can also be downloaded from the [GitHub release][__link3]. +Prebuild binaries can also be downloaded from the [GitHub release][__link3]. On Unix system the binary must may be marked as executable by running `chmod u+x mission2teegarden-b` afer unpacking the zip archive. On Linux the following dependencies are needed. Regular these are already installed. + + - [`alsa-lib`][__link4] + - [`gtk3`][__link5] + - [`libudev`][__link6] -Mission to Teegarden b is only tested on Arch Linux and Ubuntu. MacOs and Windows versions complie sucessfull but are untested. Supressing standby on MacOs is temporary disable, see [#157][__link4]. +Mission to Teegarden b is only tested on Arch Linux and Ubuntu. MacOS and Windows versions complie sucessfull but are untested. Supressing standby on MacOS is temporary disable, see [#157][__link7]. #### Building from source: @@ -38,22 +44,23 @@ Mission to Teegarden b is only tested on Arch Linux and Ubuntu. MacOs and Window Alternative you can easily build Mission to Teegarden b by yourself: - On Linux, install the following development dependencies. On some distros (like Alpine and Debian), separate development packages exist, regular suffixed with `-dev`. If this is the case, make sure that you have also installed the `*-dev` version. - - [`alsa-lib`][__link5] - - [`libudev`][__link6] + - [`alsa-lib`][__link8] + - [`gtk3`][__link9] + - [`libudev`][__link10] - - [Install rust][__link7] - - [Download][__link8] and unpack the source code. - - Run `cargo install --path pc --locked` inside the unpacked folder, to build and install mission2teegarden-b. See the [rust book][__link9] for more information about cargo install. + - [Install rust][__link11] + - [Download][__link12] and unpack the source code. + - Run `cargo install --path pc --locked` inside the unpacked folder, to build and install mission2teegarden-b. See the [rust book][__link13] for more information about cargo install. - Make sure that `~/.cargo/bin` is listed in the `PATH` environment variable otherwise, the `mission2teegarden-b` executable can not be found. ## Flash Pybadge: - - Install an UF2 flasher. I recommend using [hf2-cli][__link10]. - - Download and unpack Pybadge binary from [GitHub release][__link11]. + - Install an UF2 flasher. I recommend using [hf2-cli][__link14]. + - Download and unpack Pybadge binary from [GitHub release][__link15]. - Press the reset button of the pybdage twice, to enter the bootloader. - - After this, execute `hf2 elf mission2teegarden-b-pybadge` (or the corresponding command of your flashing tool) to flash the binary to the pybadge. + - After this, execute `hf2 elf mission2teegarden-b-pybadge.elf` (or the corresponding command of your flashing tool) to flash the binary to the pybadge. - Press the reset button again. @@ -61,12 +68,11 @@ Alternative you can easily build Mission to Teegarden b by yourself: Alternative you can build m3 by yourself: - - [Install rustup][__link12] - - Run `cargo install hf2-cli --locked` to build and install the [hf2-cli][__link13] flasher. See the [rust book][__link14] for more information about cargo install. - - Make sure that `~/.cargo/bin` is listed at the `PATH` environment variable, otherwise the executeable can not be found.. + - [Install rustup][__link16] + - [Install hf2-cli][__link17] flasher. - Install the rust `thumbv7em-none-eabihf` target (the architecture of the pybadge) by executing `rustup target install thumbv7em-none-eabihf`. - Optional: install nightly toolchain for better error messages at the pybadge. `rustup toolchain install nightly --target thumbv7em-none-eabihf` - - [Download][__link15] and unpack the source code (if not already done). + - [Download][__link18] and unpack the source code (if not already done). - Press the reset button of the pybadge twice to enter bootloader - Compile and flash program by running `cargo +nightly run --release -locked` inside the downloaded `pybadge` folder. `+nightly` is optional and have to be left out if the “install nightly toolchain” step was skip. Please use `+nightly` for bug reports. - Press the reset button again. @@ -74,28 +80,31 @@ Alternative you can build m3 by yourself: ## Map/Level Editor: -Mission to Teegarden b allow creating custom maps/levels, by using the powerfull [Tiled Map editor][__link16]. See [here][__link17] for more information about creating maps. +Mission to Teegarden b allow creating custom maps/levels, by using the powerfull [Tiled Map editor][__link19]. See [here][__link20] for more information about creating maps.
- [__cargo_doc2readme_dependencies_info]: ggGkYW0BYXSEGyFeA8xDJNVnGxf23IOvNAysG80feHOCOwZiGzoQhbxoYmBeYXKEG75mhhnFHM0RG4Gtmsk0s6SEG5MP3B8ekkTDG17KfVk7DiEnYWSBgndtaXNzaW9uMnRlZWdhcmRlbl9iX21hcGUwLjEuMA + [__cargo_doc2readme_dependencies_info]: ggGkYW0BYXSEG725W3yS8k6LG7nRwoXetP2LG7u_zBaxX9sgG0s8Or3AFE-_YXKEG2UVQNayZiPaGzXCRQgvD7TDG-Ts4ECcFy6cG-HHtDuJfvRaYWSBgndtaXNzaW9uMnRlZWdhcmRlbl9iX21hcGUwLjIuMA [__link0]: https://www.adafruit.com/product/4200 [__link1]: https://repology.org/badge/vertical-allrepos/mission2teegarden-b.svg - [__link10]: https://crates.io/crates/hf2-cli - [__link11]: https://github.com/LuckyTurtleDev/mission2teegarden-b/releases/v0.1.0 - [__link12]: https://www.rust-lang.org/tools/install - [__link13]: https://crates.io/crates/hf2-cli - [__link14]: https://doc.rust-lang.org/cargo/commands/cargo-install.html - [__link15]: https://github.com/LuckyTurtleDev/mission2teegarden-b/archive/refs/tags/v0.1.0.zip - [__link16]: https://www.mapeditor.org/ - [__link17]: https://docs.rs/mission2teegarden_b_map/0.1.0 + [__link10]: https://github.com/systemd/systemd + [__link11]: https://www.rust-lang.org/tools/install + [__link12]: https://github.com/LuckyTurtleDev/mission2teegarden-b/archive/refs/tags/v0.1.1.zip + [__link13]: https://doc.rust-lang.org/cargo/commands/cargo-install.html + [__link14]: https://crates.io/crates/hf2-cli + [__link15]: https://github.com/LuckyTurtleDev/mission2teegarden-b/releases/v0.1.1 + [__link16]: https://www.rust-lang.org/tools/install + [__link17]: https://crates.io/crates/hf2-cli + [__link18]: https://github.com/LuckyTurtleDev/mission2teegarden-b/archive/refs/tags/v0.1.1.zip + [__link19]: https://www.mapeditor.org/ [__link2]: https://repology.org/project/mission2teegarden-b/versions - [__link3]: https://github.com/LuckyTurtleDev/mission2teegarden-b/releases/v0.1.0 - [__link4]: https://github.com/LuckyTurtleDev/mission2teegarden-b/issues/157 - [__link5]: https://github.com/alsa-project/alsa-lib + [__link20]: https://docs.rs/mission2teegarden_b_map/0.2.0 + [__link3]: https://github.com/LuckyTurtleDev/mission2teegarden-b/releases/v0.1.1 + [__link4]: https://github.com/alsa-project/alsa-lib + [__link5]: https://gitlab.gnome.org/GNOME/gtk [__link6]: https://github.com/systemd/systemd - [__link7]: https://www.rust-lang.org/tools/install - [__link8]: https://github.com/LuckyTurtleDev/mission2teegarden-b/archive/refs/tags/v0.1.0.zip - [__link9]: https://doc.rust-lang.org/cargo/commands/cargo-install.html + [__link7]: https://github.com/LuckyTurtleDev/mission2teegarden-b/issues/157 + [__link8]: https://github.com/alsa-project/alsa-lib + [__link9]: https://gitlab.gnome.org/GNOME/gtk diff --git a/macro/Cargo.toml b/macro/Cargo.toml index 22bfb92..dfdc998 100644 --- a/macro/Cargo.toml +++ b/macro/Cargo.toml @@ -1,7 +1,7 @@ [package] workspace = ".." name = "mission2teegarden-b-macro" -version = "0.1.0" +version = "0.2.0" edition = "2021" rust-version = "1.70" publish = false @@ -15,6 +15,6 @@ proc-macro = true [dependencies] bincode = { version = "2.0.0-rc.3", features = ["derive"] } glob = "0.3.1" -mission2teegarden-b-map = { version = "0.1.0", path = "../map" } +mission2teegarden-b-map = { version = "0.2.0", path = "../map" } proc-macro2 = "1.0.56" quote = "1.0.26" diff --git a/map/Cargo.toml b/map/Cargo.toml index e752e6c..00c46bb 100644 --- a/map/Cargo.toml +++ b/map/Cargo.toml @@ -1,7 +1,7 @@ [package] workspace = ".." name = "mission2teegarden-b-map" -version = "0.1.0" +version = "0.2.0" edition = "2021" rust-version = "1.70" description = "Private implementation detail of mission2teegarden-b" @@ -14,7 +14,7 @@ anyhow = "1.0.71" basic-toml = "0.1.2" clap = { version = "4.2.5", features = ["derive"] } log = "0.4.17" -mission2teegarden-b-models = { version = "0.1.0", path = "../models", features = ["serde"] } +mission2teegarden-b-models = { version = "0.2.0", path = "../models", features = ["serde"] } num_enum = "0.6.1" ron = "0.8.0" serde = { version = "1.0.163", features = ["derive"] } diff --git a/map/src/lib.rs b/map/src/lib.rs index ab4b0d7..29413f0 100644 --- a/map/src/lib.rs +++ b/map/src/lib.rs @@ -91,6 +91,15 @@ //! ``` //! Executing one of the commands creates a file with the same basename as the original file and the extension `.m2tb_map` inside the current working directory. //! Since the map format is not stable yet and can not be editet after exporting, it is strongly recommanded to keep the original `.tmx` file +//! +//! ### Play Map +//! To play a map start the game and navigate to +//! `Play -> Import Level`. +//! +//! Alternatvie the command line interface can be used: +//! ```bash +//! mission2teegarden-b play [FILE] +//! ``` use anyhow::{bail, Context}; use basic_toml as toml; diff --git a/models/Cargo.toml b/models/Cargo.toml index 96f25b8..6efc9e1 100644 --- a/models/Cargo.toml +++ b/models/Cargo.toml @@ -1,7 +1,7 @@ [package] workspace = ".." name = "mission2teegarden-b-models" -version = "0.1.0" +version = "0.2.0" edition = "2021" rust-version = "1.70" description = "Private implementation detail of mission2teegarden-b" diff --git a/pc/Cargo.toml b/pc/Cargo.toml index 2e39d8a..6928a2a 100644 --- a/pc/Cargo.toml +++ b/pc/Cargo.toml @@ -1,7 +1,7 @@ [package] workspace = ".." name = "mission2teegarden-b" -version = "0.1.0" +version = "0.1.1" edition = "2021" rust-version = "1.70" publish = false @@ -16,9 +16,9 @@ anyhow = "1.0.71" bincode = { version = "2.0.0-rc.3", features = ["derive"] } clap = { version = "4.3.9", features = ["derive"] } log = "0.4.17" -mission2teegarden-b-macro = { version = "0.1.0", path = "../macro" } -mission2teegarden-b-map = { version = "0.1.0", path = "../map" } -mission2teegarden-b-models = { version = "0.1.0", path = "../models" } +mission2teegarden-b-macro = { version = "0.2.0", path = "../macro" } +mission2teegarden-b-map = { version = "0.2.0", path = "../map" } +mission2teegarden-b-models = { version = "0.2.0", path = "../models" } macroquad = { version = "0.3.25", default-features = false, features = ["log-rs"] } my-env-logger-style = "0.1.0" num_enum = "0.6.1" diff --git a/pc/README.j2 b/pc/README.j2 index 932c7f1..fb11e97 100644 --- a/pc/README.j2 +++ b/pc/README.j2 @@ -7,6 +7,8 @@ [![Source Code Repository](https://img.shields.io/badge/Code-On%20GitHub-blue?logo=GitHub)]({{ repository }}) ![Rust Version: {{rust_version}}](https://img.shields.io/badge/rustc-{{ rust_version | urlencode }}-orange.svg) + + {{ readme }} {%- if links != "" %} diff --git a/pc/src/main.rs b/pc/src/main.rs index eaf925d..6b37efa 100644 --- a/pc/src/main.rs +++ b/pc/src/main.rs @@ -30,16 +30,25 @@ //! //! Prebuild binaries can also be downloaded from the #![doc=concat!("[GitHub release](https://github.com/LuckyTurtleDev/mission2teegarden-b/releases/v",env!("CARGO_PKG_VERSION"),").")] +//! On Unix system the binary must may be marked as executable by running `chmod u+x mission2teegarden-b` afer unpacking the zip archive. +//! On Linux the following dependencies are needed. +//! Regular these are already installed. +//! * [`alsa-lib`](https://github.com/alsa-project/alsa-lib) +//! * [`gtk3`](https://gitlab.gnome.org/GNOME/gtk) +//! * [`libudev`](https://github.com/systemd/systemd) //! //! Mission to Teegarden b is only tested on Arch Linux and Ubuntu. -//! MacOs and Windows versions complie sucessfull but are untested. -//! Supressing standby on MacOs is temporary disable, see [#157](https://github.com/LuckyTurtleDev/mission2teegarden-b/issues/157). +//! MacOS and Windows versions complie sucessfull but are untested. +//! Supressing standby on MacOS is temporary disable, see [#157](https://github.com/LuckyTurtleDev/mission2teegarden-b/issues/157). +//! +//! //! ### Building from source: //! Alternative you can easily build Mission to Teegarden b by yourself: //! * On Linux, install the following development dependencies. //! On some distros (like Alpine and Debian), separate development packages exist, regular suffixed with `-dev`. //! If this is the case, make sure that you have also installed the `*-dev` version. //! * [`alsa-lib`](https://github.com/alsa-project/alsa-lib) +//! * [`gtk3`](https://gitlab.gnome.org/GNOME/gtk) //! * [`libudev`](https://github.com/systemd/systemd) //! * [Install rust](https://www.rust-lang.org/tools/install) #![doc=concat!("* [Download](https://github.com/LuckyTurtleDev/mission2teegarden-b/archive/refs/tags/v",env!("CARGO_PKG_VERSION"),".zip)")] @@ -54,14 +63,12 @@ //! * Download and unpack Pybadge binary from #![doc=concat!("[GitHub release](https://github.com/LuckyTurtleDev/mission2teegarden-b/releases/v",env!("CARGO_PKG_VERSION"),").")] //! * Press the reset button of the pybdage twice, to enter the bootloader. -//! * After this, execute `hf2 elf mission2teegarden-b-pybadge` (or the corresponding command of your flashing tool) to flash the binary to the pybadge. +//! * After this, execute `hf2 elf mission2teegarden-b-pybadge.elf` (or the corresponding command of your flashing tool) to flash the binary to the pybadge. //! * Press the reset button again. //! ### Building from source: //! Alternative you can build m3 by yourself: //! * [Install rustup](https://www.rust-lang.org/tools/install) -//! * Run `cargo install hf2-cli --locked` to build and install the [hf2-cli](https://crates.io/crates/hf2-cli) flasher. -//! See the [rust book](https://doc.rust-lang.org/cargo/commands/cargo-install.html) for more information about cargo install. -//! * Make sure that `~/.cargo/bin` is listed at the `PATH` environment variable, otherwise the executeable can not be found.. +//! * [Install hf2-cli](https://crates.io/crates/hf2-cli) flasher. //! * Install the rust `thumbv7em-none-eabihf` target (the architecture of the pybadge) by executing `rustup target install thumbv7em-none-eabihf`. //! * Optional: install nightly toolchain for better error messages at the pybadge. `rustup toolchain install nightly --target thumbv7em-none-eabihf` #![doc=concat!("* [Download](https://github.com/LuckyTurtleDev/mission2teegarden-b/archive/refs/tags/v",env!("CARGO_PKG_VERSION"),".zip)")] diff --git a/pybadge/Cargo.toml b/pybadge/Cargo.toml index f8cb6d1..e4751dc 100644 --- a/pybadge/Cargo.toml +++ b/pybadge/Cargo.toml @@ -1,7 +1,7 @@ [package] workspace = ".." name = "mission2teegarden-b-pybadge" -version = "0.1.0" +version = "0.1.1" edition = "2021" rust-version = "1.70" publish = false @@ -13,7 +13,7 @@ bincode = { version = "2.0.0-rc.3", default-features = false, features = ["deriv embedded-graphics = "0.7.1" embedded-sprites = "0.1.2" heapless = "0.7.16" -mission2teegarden-b-models = { version = "0.1.0", path = "../models" } +mission2teegarden-b-models = { version = "0.2.0", path = "../models" } pybadge-high = { version = "0.2.0", features = ["usb", "time", "bluescreen", "bluescreen-message-nightly", "neopixel"] } strum = { version = "0.25.0", default-features = false }