diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9cfc7e4..66e0b7d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ jobs: - uses: dtolnay/rust-toolchain@stable with: components: clippy, rustfmt - - run: cp crates/playground/src/playground.template.rs crates/playground/src/playground.rs + - run: cp tools/playground/src/playground.template.rs tools/playground/src/playground.rs - name: Set up cargo cache uses: actions/cache@v3 continue-on-error: false diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8f704ca..66a8d38 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,7 +24,7 @@ Playgrounds are meant to provide a quick and minimal environment to test out new To get started with a new playground, copy the template to `playground.rs`. ```bash -cp crates/playground/src/playground.template.rs crates/playground/src/playground.rs +cp tools/playground/src/playground.template.rs tools/playground/src/playground.rs ``` Make your changes to `crates/playground/src/playground.rs`. To run it: diff --git a/Cargo.toml b/Cargo.toml index e4c5970..9f0ba57 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,94 @@ [workspace] -members = ["crates/*"] +members = ["crates/*", "tools/*"] exclude = ["rust-mc-bot"] resolver = "2" +[workspace.package] +version = "0.2.0-dev+mc.1.19.4" +edition = "2021" +repository = "https://github.com/valence-rs/valence" +documentation = "https://docs.rs/valence/" +license = "MIT" + +[workspace.dependencies] +aes = "0.7.5" +anyhow = "1.0.70" +approx = "0.5.1" +arrayvec = "0.7.2" +async-trait = "0.1.60" +atty = "0.2.14" +base64 = "0.21.0" +bevy_app = { version = "0.10.1", default-features = false } +bevy_ecs = { version = "0.10.1", default-features = false, features = ["trace"] } +bevy_mod_debugdump = "0.7.0" +bitfield-struct = "0.3.1" +byteorder = "1.4.3" +bytes = "1.2.1" +cesu8 = "1.1.0" +cfb8 = "0.7.1" +clap = { version = "4.0.30", features = ["derive"] } +criterion = "0.4.0" +directories = "5.0.0" +eframe = { version = "0.21.0", default-features = false } +egui = "0.21.0" +enum-map = "2.4.2" +flate2 = "1.0.24" +flume = "0.10.14" +fs_extra = "1.2.0" +glam = "0.23.0" +heck = "0.4.0" +hmac = "0.12.1" +indexmap = "1.9.3" +noise = "0.8.2" +num = "0.4.0" +num-bigint = "0.4.3" +num-integer = "0.1.45" +owo-colors = "3.5.0" +parking_lot = "0.12.1" +paste = "1.0.11" +proc-macro2 = "1.0.56" +quote = "1.0.26" +rand = "0.8.5" +rayon = "1.7.0" +regex = "1.6.0" +reqwest = { version = "0.11.12", default-features = false } +rfd = "0.11.3" +rsa = "0.7.2" +rsa-der = "0.3.0" +rustc-hash = "1.1.0" +serde = "1.0.160" +serde_json = "1.0.96" +sha1 = "0.10.5" +sha2 = "0.10.6" +syn = "1.0.109" # TODO: update this. +syntect = { version = "5.0.0", default-features = false } +tempfile = "3.3.0" +thiserror = "1.0.40" +time = "0.3.17" +tokio = { version = "1.27.0", features = ["full"] } +toml = "0.7.2" +tracing = "0.1.37" +tracing-subscriber = "0.3.16" +url = { version = "2.2.2", features = ["serde"] } +uuid = "1.3.1" +valence_anvil.path = "crates/valence_anvil" +valence_biome.path = "crates/valence_biome" +valence_block.path = "crates/valence_block" +valence_build_utils.path = "crates/valence_build_utils" +valence_client.path = "crates/valence_client" +valence_core_macros.path = "crates/valence_core_macros" +valence_core.path = "crates/valence_core" +valence_dimension.path = "crates/valence_dimension" +valence_entity.path = "crates/valence_entity" +valence_instance.path = "crates/valence_instance" +valence_inventory.path = "crates/valence_inventory" +valence_nbt = { path = "crates/valence_nbt", features = ["uuid"] } +valence_network.path = "crates/valence_network" +valence_player_list.path = "crates/valence_player_list" +valence_registry.path = "crates/valence_registry" +valence.path = "crates/valence" +zip = "0.6.3" + [profile.dev.package."*"] opt-level = 3 diff --git a/README.md b/README.md index 4f3d3ec..7d3ac4c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
- +
@@ -27,6 +27,8 @@ Opinionated features like dynamic scripting, dedicated executables, and vanilla
built as optional plugins. This level of modularity is desirable for those looking to build highly custom experiences
in Minecraft such as minigame servers.
+⚠️ **Valence is still early in development with many features unimplemented or incomplete. Expect to encounter bugs, limitations, and breaking changes.**
+
# Goals
Valence aims to be the following:
@@ -45,11 +47,8 @@ Valence aims to be the following:
## Current Status
-⚠️ **Valence is still early in development with many features unimplemented or incomplete. Expect to encounter bugs, limitations, and breaking changes.** Here are some noteworthy achievements:
-
+Here are some noteworthy achievements:
- `valence_nbt`: A speedy new library for Minecraft's Named Binary Tag (NBT) format.
-- `valence_protocol`: A library for working with Minecraft's protocol. Does not depend on Valence and can be used in
- other projects.
- Authentication, encryption, and compression
- Block states
- Chunks
diff --git a/crates/dump_schedule/Cargo.toml b/crates/dump_schedule/Cargo.toml
deleted file mode 100644
index bef78ae..0000000
--- a/crates/dump_schedule/Cargo.toml
+++ /dev/null
@@ -1,8 +0,0 @@
-[package]
-name = "dump_schedule"
-version = "0.1.0"
-edition = "2021"
-
-[dependencies]
-bevy_mod_debugdump = "0.7.0"
-valence = { path = "../valence", version = "0.2.0" }
diff --git a/crates/packet_inspector/Cargo.toml b/crates/packet_inspector/Cargo.toml
deleted file mode 100644
index cefb1c8..0000000
--- a/crates/packet_inspector/Cargo.toml
+++ /dev/null
@@ -1,37 +0,0 @@
-[package]
-name = "packet_inspector"
-version = "0.1.0"
-edition = "2021"
-description = "A simple Minecraft proxy for inspecting packets."
-
-[features]
-default = ["syntax_highlighting"]
-syntax_highlighting = ["syntect"]
-
-[dependencies]
-anyhow = "1"
-clap = { version = "4.0.30", features = ["derive"] }
-regex = "1.6.0"
-tokio = { version = "1", features = ["full"] }
-tracing-subscriber = "0.3.16"
-valence_protocol = { path = "../valence_protocol", version = "0.1.0", features = [
- "compression",
-] }
-
-egui = "0.21.0"
-eframe = { version = "0.21.0", default-features = false, features = [
- "default_fonts", # Embed the default egui fonts.
- "glow", # Use the glow rendering backend. Alternative: "wgpu".
-] }
-enum-map = "2.4.2"
-syntect = { version = "5", optional = true, default-features = false, features = [
- "default-fancy",
-] }
-time = { version = "0.3.17", features = ["local-offset"] }
-rfd = "0.11"
-owo-colors = "3.5.0"
-atty = "0.2"
-directories = "4.0"
-serde = { version = "1.0.152", features = ["derive"] }
-toml = "0.7.2"
-valence_nbt = { path = "../valence_nbt", version = "0.5.0", features = ["preserve_order"] }
diff --git a/crates/playground/src/main.rs b/crates/playground/src/main.rs
deleted file mode 100644
index 54ab3c6..0000000
--- a/crates/playground/src/main.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-use tracing::Level;
-use valence::bevy_app::App;
-
-#[allow(dead_code)]
-mod extras;
-mod playground;
-
-fn main() {
- tracing_subscriber::fmt()
- .with_max_level(Level::DEBUG)
- .init();
-
- let mut app = App::new();
- playground::build_app(&mut app);
- app.run();
-}
diff --git a/crates/valence/Cargo.toml b/crates/valence/Cargo.toml
index 0646306..7c84c43 100644
--- a/crates/valence/Cargo.toml
+++ b/crates/valence/Cargo.toml
@@ -1,71 +1,61 @@
[package]
name = "valence"
-version = "0.2.0+mc1.19.4"
-edition = "2021"
+version.workspace = true
+edition.workspace = true
description = "A framework for building Minecraft servers in Rust."
-repository = "https://github.com/rj00a/valence"
+documentation.workspace = true
+repository.workspace = true
readme = "README.md"
-license = "MIT"
+license.workspace = true
keywords = ["minecraft", "gamedev", "server", "ecs"]
categories = ["game-engines"]
-build = "build/main.rs"
-authors = ["Ryan Johnson