From 5be633fa761caff1e614a6a025edd01ded4bd1d8 Mon Sep 17 00:00:00 2001 From: core Date: Fri, 24 Nov 2023 18:26:52 -0500 Subject: [PATCH] its json now, also remove the old client --- Cargo.lock | 2912 ++---------------- client/.gitignore | 24 - client/assets | 1 - client/hearty.png | Bin 37202 -> 0 bytes client/index.html | 119 - client/package.json | 19 - client/play.html | 49 - client/src/gateway.ts | 175 -- client/src/index.ts | 500 --- client/src/logger.ts | 118 - client/src/particle.ts | 80 - client/src/protocol/goodbye_reason.ts | 66 - client/src/protocol/input.ts | 48 - client/src/protocol/message_c2s.ts | 1176 ------- client/src/protocol/message_s2c.ts | 1015 ------ client/src/protocol/module.ts | 429 --- client/src/protocol/planet.ts | 172 -- client/src/protocol/player.ts | 127 - client/src/protocol/starkingdoms-protocol.ts | 157 - client/src/protocol/state.ts | 42 - client/src/serde.ts | 14 - client/src/vite-env.d.ts | 1 - client/tsconfig.json | 19 - client/vite.config.ts | 17 - client/yarn.lock | 379 --- server/Cargo.toml | 7 +- server/src/main.rs | 109 +- server/src/packet.rs | 4 +- 28 files changed, 252 insertions(+), 7527 deletions(-) delete mode 100644 client/.gitignore delete mode 120000 client/assets delete mode 100644 client/hearty.png delete mode 100644 client/index.html delete mode 100644 client/package.json delete mode 100644 client/play.html delete mode 100644 client/src/gateway.ts delete mode 100644 client/src/index.ts delete mode 100644 client/src/logger.ts delete mode 100644 client/src/particle.ts delete mode 100644 client/src/protocol/goodbye_reason.ts delete mode 100644 client/src/protocol/input.ts delete mode 100644 client/src/protocol/message_c2s.ts delete mode 100644 client/src/protocol/message_s2c.ts delete mode 100644 client/src/protocol/module.ts delete mode 100644 client/src/protocol/planet.ts delete mode 100644 client/src/protocol/player.ts delete mode 100644 client/src/protocol/starkingdoms-protocol.ts delete mode 100644 client/src/protocol/state.ts delete mode 100644 client/src/serde.ts delete mode 100644 client/src/vite-env.d.ts delete mode 100644 client/tsconfig.json delete mode 100644 client/vite.config.ts delete mode 100644 client/yarn.lock diff --git a/Cargo.lock b/Cargo.lock index 425321303d2363089982c5eba75a20e754b26948..3c2df72b498b153e60e2c5ae418f0a0f99f40c93 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,90 +2,12 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "ab_glyph" -version = "0.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225" -dependencies = [ - "ab_glyph_rasterizer", - "owned_ttf_parser", -] - -[[package]] -name = "ab_glyph_rasterizer" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" - [[package]] name = "accesskit" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca8410747ed85a17c4a1e9ed3f5a74d3e7bdcc876cf9a18ff40ae21d645997b2" -[[package]] -name = "accesskit_consumer" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c17cca53c09fbd7288667b22a201274b9becaa27f0b91bf52a526db95de45e6" -dependencies = [ - "accesskit", -] - -[[package]] -name = "accesskit_macos" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3b6ae1eabbfbced10e840fd3fce8a93ae84f174b3e4ba892ab7bcb42e477a7" -dependencies = [ - "accesskit", - "accesskit_consumer", - "objc2", - "once_cell", -] - -[[package]] -name = "accesskit_windows" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcae27ec0974fc7c3b0b318783be89fd1b2e66dd702179fe600166a38ff4a0b" -dependencies = [ - "accesskit", - "accesskit_consumer", - "once_cell", - "paste", - "static_assertions", - "windows 0.48.0", -] - -[[package]] -name = "accesskit_winit" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88e39fcec2e10971e188730b7a76bab60647dacc973d4591855ebebcadfaa738" -dependencies = [ - "accesskit", - "accesskit_macos", - "accesskit_windows", - "winit", -] - -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "ahash" version = "0.8.3" @@ -113,107 +35,12 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" -[[package]] -name = "alsa" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2562ad8dcf0f789f65c6fdaad8a8a9708ed6b488e649da28c01656ad66b8b47" -dependencies = [ - "alsa-sys", - "bitflags 1.3.2", - "libc", - "nix 0.24.3", -] - -[[package]] -name = "alsa-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" -dependencies = [ - "libc", - "pkg-config", -] - -[[package]] -name = "android-activity" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0" -dependencies = [ - "android-properties", - "bitflags 1.3.2", - "cc", - "jni-sys", - "libc", - "log", - "ndk", - "ndk-context", - "ndk-sys", - "num_enum 0.6.1", -] - -[[package]] -name = "android-properties" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" - [[package]] name = "android_log-sys" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "approx" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" -dependencies = [ - "num-traits", -] - -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "ash" -version = "0.37.3+1.3.251" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" -dependencies = [ - "libloading 0.7.4", -] - -[[package]] -name = "async-broadcast" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" -dependencies = [ - "event-listener", - "futures-core", -] - [[package]] name = "async-channel" version = "1.9.0" @@ -239,18 +66,6 @@ dependencies = [ "slab", ] -[[package]] -name = "async-fs" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" -dependencies = [ - "async-lock", - "autocfg", - "blocking", - "futures-lite", -] - [[package]] name = "async-lock" version = "2.8.0" @@ -266,39 +81,12 @@ version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" -[[package]] -name = "atomic-waker" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" - [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "backtrace" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.2" @@ -326,25 +114,6 @@ dependencies = [ "bevy_ecs", ] -[[package]] -name = "bevy_animation" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab94187a1253433e14f175293d8a86ec1c2822fda2a17807908f11ec21f45f00" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_ecs", - "bevy_hierarchy", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_time", - "bevy_transform", - "bevy_utils", -] - [[package]] name = "bevy_app" version = "0.12.0" @@ -361,68 +130,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "bevy_asset" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb2b67984088b23e223cfe9ec1befd89a110665a679acb06839bc4334ed37d6" -dependencies = [ - "async-broadcast", - "async-fs", - "async-lock", - "bevy_app", - "bevy_asset_macros", - "bevy_ecs", - "bevy_log", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", - "bevy_winit", - "blake3", - "crossbeam-channel", - "downcast-rs", - "futures-io", - "futures-lite", - "js-sys", - "parking_lot", - "ron", - "serde", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "bevy_asset_macros" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b3245193e90fc8abcf1059a467cb224501dcda083d114c67c10ac66b7171e3a" -dependencies = [ - "bevy_macro_utils", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "bevy_audio" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478de80ff25cb7decbcb22797774d1597e8c32914e81431c67d64faadc08f84a" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_derive", - "bevy_ecs", - "bevy_math", - "bevy_reflect", - "bevy_transform", - "bevy_utils", - "oboe", - "rodio", -] - [[package]] name = "bevy_core" version = "0.12.0" @@ -438,28 +145,6 @@ dependencies = [ "bytemuck", ] -[[package]] -name = "bevy_core_pipeline" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e4b08a2d53ba62d9ec1fca3f7f4e0f556e9f59e1c8e63a4b7c2a18c0701152c" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_derive", - "bevy_ecs", - "bevy_log", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", - "bitflags 2.4.0", - "radsort", - "serde", -] - [[package]] name = "bevy_derive" version = "0.12.0" @@ -468,7 +153,7 @@ checksum = "24bf40259be12a1a24d9fd536f5ff18d31eeb5665b77e2732899783be6edc5d6" dependencies = [ "bevy_macro_utils", "quote", - "syn 2.0.29", + "syn", ] [[package]] @@ -516,83 +201,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.29", -] - -[[package]] -name = "bevy_encase_derive" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65b9fb5a62c4e3ab70caaa839470d35fa932001b1b34b08bc7f7f1909bd2b3a7" -dependencies = [ - "bevy_macro_utils", - "encase_derive_impl", -] - -[[package]] -name = "bevy_gilrs" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad31cc2c84315e0759d793d6c5bcb7d8789bbc16359c98d1b766e708c1bbae49" -dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_input", - "bevy_log", - "bevy_time", - "bevy_utils", - "gilrs", - "thiserror", -] - -[[package]] -name = "bevy_gizmos" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87d1cc978b91f416b23eb16f00e69f95c3a04582021827d8082e92d4725cc510" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_core_pipeline", - "bevy_ecs", - "bevy_math", - "bevy_pbr", - "bevy_reflect", - "bevy_render", - "bevy_sprite", - "bevy_transform", - "bevy_utils", -] - -[[package]] -name = "bevy_gltf" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f933745c0c86e2c07948def581259b466f99708328657054e956275430ccfd7" -dependencies = [ - "base64 0.13.1", - "bevy_animation", - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_core_pipeline", - "bevy_ecs", - "bevy_hierarchy", - "bevy_log", - "bevy_math", - "bevy_pbr", - "bevy_reflect", - "bevy_render", - "bevy_scene", - "bevy_tasks", - "bevy_transform", - "bevy_utils", - "gltf", - "percent-encoding", - "serde", - "serde_json", - "thiserror", + "syn", ] [[package]] @@ -631,36 +240,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55124e486814c4d3632d5cfad9c4f4e46d052c028593ec46fef5bfbfb0f840b1" dependencies = [ "bevy_a11y", - "bevy_animation", "bevy_app", - "bevy_asset", - "bevy_audio", "bevy_core", - "bevy_core_pipeline", "bevy_derive", "bevy_diagnostic", "bevy_ecs", - "bevy_gilrs", - "bevy_gizmos", - "bevy_gltf", "bevy_hierarchy", "bevy_input", "bevy_log", "bevy_math", - "bevy_pbr", "bevy_ptr", "bevy_reflect", - "bevy_render", - "bevy_scene", - "bevy_sprite", "bevy_tasks", - "bevy_text", "bevy_time", "bevy_transform", - "bevy_ui", "bevy_utils", "bevy_window", - "bevy_winit", ] [[package]] @@ -688,8 +283,8 @@ dependencies = [ "proc-macro2", "quote", "rustc-hash", - "syn 2.0.29", - "toml_edit 0.20.7", + "syn", + "toml_edit", ] [[package]] @@ -703,51 +298,16 @@ dependencies = [ ] [[package]] -name = "bevy_mikktspace" +name = "bevy_ptr" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b596c41a56f2268ec7cde560edc588bc7b5886e4b49c8b27c4dcc9f7c743424c" -dependencies = [ - "glam", -] +checksum = "308a02679f6ce21ef71de20fae6d6a2016c07baa21d8e8d0558e6b7851e8adf2" [[package]] -name = "bevy_pbr" +name = "bevy_reflect" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb6a35a78d355cc21c10f277dcd171eca65e30a90e76eb89f4dacf606621fe1" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core_pipeline", - "bevy_derive", - "bevy_ecs", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", - "bevy_window", - "bitflags 2.4.0", - "bytemuck", - "fixedbitset", - "naga_oil", - "radsort", - "smallvec", - "thread_local", -] - -[[package]] -name = "bevy_ptr" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308a02679f6ce21ef71de20fae6d6a2016c07baa21d8e8d0558e6b7851e8adf2" - -[[package]] -name = "bevy_reflect" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdd56914a8ad57621d7a1a099f7e6b1f7482c9c76cedc9c3d4c175a203939c5d" +checksum = "cdd56914a8ad57621d7a1a099f7e6b1f7482c9c76cedc9c3d4c175a203939c5d" dependencies = [ "bevy_math", "bevy_ptr", @@ -771,115 +331,10 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.29", - "uuid", -] - -[[package]] -name = "bevy_render" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90d777f4c51bd58e9e40777c6cb8dde0778df7e2c5298b3f9e3455bd12a9856c" -dependencies = [ - "async-channel", - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_derive", - "bevy_ecs", - "bevy_encase_derive", - "bevy_hierarchy", - "bevy_log", - "bevy_math", - "bevy_mikktspace", - "bevy_reflect", - "bevy_render_macros", - "bevy_tasks", - "bevy_time", - "bevy_transform", - "bevy_utils", - "bevy_window", - "bitflags 2.4.0", - "bytemuck", - "codespan-reporting", - "downcast-rs", - "encase", - "futures-lite", - "hexasphere", - "image", - "js-sys", - "ktx2", - "naga", - "naga_oil", - "ruzstd", - "serde", - "smallvec", - "thiserror", - "thread_local", - "wasm-bindgen", - "web-sys", - "wgpu", -] - -[[package]] -name = "bevy_render_macros" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35b00c3d0abff94a729460fc9aa95c2ceac71b49b3041166bb5ba3098e9657e7" -dependencies = [ - "bevy_macro_utils", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "bevy_scene" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6294396a6375f0b14341d8003408c10aa040e3f833ac8bd49677170ec55d73" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_derive", - "bevy_ecs", - "bevy_hierarchy", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", - "ron", - "serde", - "thiserror", + "syn", "uuid", ] -[[package]] -name = "bevy_sprite" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f7d1f88a6e5497fdafd95c20984a1d1b5517bc39d51600b4988cd60c51837a" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core_pipeline", - "bevy_derive", - "bevy_ecs", - "bevy_log", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", - "bitflags 2.4.0", - "bytemuck", - "fixedbitset", - "guillotiere", - "radsort", - "rectangle-pack", - "thiserror", -] - [[package]] name = "bevy_tasks" version = "0.12.0" @@ -894,28 +349,6 @@ dependencies = [ "wasm-bindgen-futures", ] -[[package]] -name = "bevy_text" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c136af700af4f87c94f68d6e019528c371bf09ebf4a8ff7468bb3c73806b34f5" -dependencies = [ - "ab_glyph", - "bevy_app", - "bevy_asset", - "bevy_ecs", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_sprite", - "bevy_transform", - "bevy_utils", - "bevy_window", - "glyph_brush_layout", - "serde", - "thiserror", -] - [[package]] name = "bevy_time" version = "0.12.0" @@ -954,36 +387,6 @@ dependencies = [ "twite", ] -[[package]] -name = "bevy_ui" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd5ecbf2dceaab118769dd870e34d780bfde556af561fd10d8d613b0f237297e" -dependencies = [ - "bevy_a11y", - "bevy_app", - "bevy_asset", - "bevy_core_pipeline", - "bevy_derive", - "bevy_ecs", - "bevy_hierarchy", - "bevy_input", - "bevy_log", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_sprite", - "bevy_text", - "bevy_transform", - "bevy_utils", - "bevy_window", - "bytemuck", - "serde", - "smallvec", - "taffy", - "thiserror", -] - [[package]] name = "bevy_utils" version = "0.12.0" @@ -993,7 +396,7 @@ dependencies = [ "ahash", "bevy_utils_proc_macros", "getrandom", - "hashbrown 0.14.0", + "hashbrown", "instant", "nonmax", "petgraph", @@ -1010,7 +413,7 @@ checksum = "f7dfd3735a61a1b681ed1e176afe4eae731bbb03e51ad871e9eb39e76a2d170e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn", ] [[package]] @@ -1030,1542 +433,330 @@ dependencies = [ ] [[package]] -name = "bevy_winit" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f8294e78c6a1f9c34d36501a377c5d20bf0fa23a0958187bb270187741448ba" -dependencies = [ - "accesskit_winit", - "approx", - "bevy_a11y", - "bevy_app", - "bevy_derive", - "bevy_ecs", - "bevy_hierarchy", - "bevy_input", - "bevy_math", - "bevy_tasks", - "bevy_utils", - "bevy_window", - "crossbeam-channel", - "raw-window-handle", - "wasm-bindgen", - "web-sys", - "winit", -] - -[[package]] -name = "bindgen" -version = "0.69.1" +name = "block-buffer" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ffcebc3849946a7170a05992aac39da343a90676ab392c51a4280981d6379c2" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "bitflags 2.4.0", - "cexpr", - "clang-sys", - "lazy_static", - "lazycell", - "peeking_take_while", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.29", + "generic-array", ] [[package]] -name = "bit-set" -version = "0.5.3" +name = "bumpalo" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] -name = "bit-vec" -version = "0.6.3" +name = "bytemuck" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" [[package]] -name = "bitflags" -version = "1.3.2" +name = "cfg-if" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "bitflags" -version = "2.4.0" +name = "concurrent-queue" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" dependencies = [ - "serde", + "crossbeam-utils", ] [[package]] -name = "blake3" -version = "1.5.0" +name = "console_error_panic_hook" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" dependencies = [ - "arrayref", - "arrayvec", - "cc", "cfg-if", - "constant_time_eq", + "wasm-bindgen", ] [[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.10.4" +name = "core-foundation-sys" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] -name = "block-sys" -version = "0.1.0-beta.1" +name = "cpufeatures" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ - "objc-sys", + "libc", ] [[package]] -name = "block2" -version = "0.2.0-alpha.6" +name = "crossbeam-channel" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ - "block-sys", - "objc2-encode", + "cfg-if", + "crossbeam-utils", ] [[package]] -name = "blocking" -version = "1.3.1" +name = "crossbeam-utils" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ - "async-channel", - "async-lock", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", - "log", + "cfg-if", ] [[package]] -name = "bumpalo" -version = "3.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" - -[[package]] -name = "bytemuck" -version = "1.14.0" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "bytemuck_derive", + "generic-array", + "typenum", ] [[package]] -name = "bytemuck_derive" -version = "1.5.0" +name = "digest" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", + "block-buffer", + "crypto-common", ] [[package]] -name = "byteorder" -version = "1.4.3" +name = "downcast-rs" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] -name = "bytes" -version = "1.4.0" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "cc" -version = "1.0.83" +name = "erased-serde" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c" dependencies = [ - "jobserver", - "libc", + "serde", ] [[package]] -name = "cesu8" -version = "1.1.0" +name = "event-listener" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] -name = "cexpr" -version = "0.6.0" +name = "fastrand" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ - "nom", + "instant", ] [[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - -[[package]] -name = "clang-sys" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" -dependencies = [ - "glob", - "libc", - "libloading 0.7.4", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - -[[package]] -name = "com-rs" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642" - -[[package]] -name = "combine" -version = "4.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "concurrent-queue" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if", - "wasm-bindgen", -] - -[[package]] -name = "const_panic" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6051f239ecec86fde3410901ab7860d458d160371533842974fc61f96d15879b" - -[[package]] -name = "const_soft_float" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ca1caa64ef4ed453e68bb3db612e51cf1b2f5b871337f0fcab1c8f87cc3dff" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "constgebra" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd23e864550e6dafc1e41ac78ce4f1ccddc8672b40c403524a04ff3f0518420" -dependencies = [ - "const_soft_float", -] - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" - -[[package]] -name = "core-graphics" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-graphics-types", - "foreign-types 0.3.2", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "libc", -] - -[[package]] -name = "coreaudio-rs" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" -dependencies = [ - "bitflags 1.3.2", - "core-foundation-sys", - "coreaudio-sys", -] - -[[package]] -name = "coreaudio-sys" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3120ebb80a9de008e638ad833d4127d50ea3d3a960ea23ea69bc66d9358a028" -dependencies = [ - "bindgen", -] - -[[package]] -name = "cpal" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d959d90e938c5493000514b446987c07aed46c668faaa7d34d6c7a67b1a578c" -dependencies = [ - "alsa", - "core-foundation-sys", - "coreaudio-rs", - "dasp_sample", - "jni 0.19.0", - "js-sys", - "libc", - "mach2", - "ndk", - "ndk-context", - "oboe", - "once_cell", - "parking_lot", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows 0.46.0", -] - -[[package]] -name = "cpufeatures" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "d3d12" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20" -dependencies = [ - "bitflags 2.4.0", - "libloading 0.8.1", - "winapi", -] - -[[package]] -name = "dasp_sample" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" - -[[package]] -name = "data-encoding" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "dispatch" -version = "0.2.0" +name = "fixedbitset" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] -name = "downcast-rs" +name = "form_urlencoded" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" - -[[package]] -name = "encase" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fce2eeef77fd4a293a54b62aa00ac9daebfbcda4bf8998c5a815635b004aa1c" -dependencies = [ - "const_panic", - "encase_derive", - "glam", - "thiserror", -] - -[[package]] -name = "encase_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e520cde08cbf4f7cc097f61573ec06ce467019803de8ae82fb2823fa1554a0e" -dependencies = [ - "encase_derive_impl", -] - -[[package]] -name = "encase_derive_impl" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fe2568f851fd6144a45fa91cfed8fe5ca8fc0b56ba6797bfc1ed2771b90e37c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "erased-serde" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c" -dependencies = [ - "serde", -] - -[[package]] -name = "euclid" -version = "0.22.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f253bc5c813ca05792837a0ff4b3a580336b224512d48f7eda1d7dd9210787" -dependencies = [ - "num-traits", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ - "instant", + "percent-encoding", ] [[package]] -name = "fdeflate" -version = "0.3.1" +name = "futures-core" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" -dependencies = [ - "simd-adler32", -] +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] -name = "fixedbitset" -version = "0.4.2" +name = "futures-io" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared 0.1.1", -] - -[[package]] -name = "foreign-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared 0.3.1", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "gilrs" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e9eec02069fcbd7abe00a28adf216547774889129a777cb5e53fdfb75d59f09" -dependencies = [ - "fnv", - "gilrs-core", - "log", - "uuid", - "vec_map", -] - -[[package]] -name = "gilrs-core" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "178769da179a47b187837d1ab2b5b9b684a21180166a77a4ca37e7e58ee3833d" -dependencies = [ - "core-foundation", - "inotify", - "io-kit-sys", - "js-sys", - "libc", - "libudev-sys", - "log", - "nix 0.27.1", - "uuid", - "vec_map", - "wasm-bindgen", - "web-sys", - "windows 0.48.0", -] - -[[package]] -name = "gimli" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" - -[[package]] -name = "glam" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" -dependencies = [ - "bytemuck", - "serde", -] - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "glow" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "gltf" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2dcfb6dd7a66f9eb3d181a29dcfb22d146b0bcdc2e1ed1713cbf03939a88ea" -dependencies = [ - "byteorder", - "gltf-json", - "lazy_static", -] - -[[package]] -name = "gltf-derive" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cbcea5dd47e7ad4e9ee6f040384fcd7204bbf671aa4f9e7ca7dfc9bfa1de20" -dependencies = [ - "inflections", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "gltf-json" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5b810806b78dde4b71a95cc0e6fdcab34c4c617da3574df166f9987be97d03" -dependencies = [ - "gltf-derive", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "glyph_brush_layout" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38" -dependencies = [ - "ab_glyph", - "approx", - "xi-unicode", -] - -[[package]] -name = "gpu-alloc" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" -dependencies = [ - "bitflags 2.4.0", - "gpu-alloc-types", -] - -[[package]] -name = "gpu-alloc-types" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" -dependencies = [ - "bitflags 2.4.0", -] - -[[package]] -name = "gpu-allocator" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce95f9e2e11c2c6fadfce42b5af60005db06576f231f5c92550fdded43c423e8" -dependencies = [ - "backtrace", - "log", - "thiserror", - "winapi", - "windows 0.44.0", -] - -[[package]] -name = "gpu-descriptor" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" -dependencies = [ - "bitflags 2.4.0", - "gpu-descriptor-types", - "hashbrown 0.14.0", -] - -[[package]] -name = "gpu-descriptor-types" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" -dependencies = [ - "bitflags 2.4.0", -] - -[[package]] -name = "grid" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eec1c01eb1de97451ee0d60de7d81cf1e72aabefb021616027f3d1c3ec1c723c" - -[[package]] -name = "guillotiere" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782" -dependencies = [ - "euclid", - "svg_fmt", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" -dependencies = [ - "ahash", - "allocator-api2", - "serde", -] - -[[package]] -name = "hassle-rs" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0" -dependencies = [ - "bitflags 1.3.2", - "com-rs", - "libc", - "libloading 0.7.4", - "thiserror", - "widestring", - "winapi", -] - -[[package]] -name = "hexasphere" -version = "9.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb3df16a7bcb1b5bc092abd55e14f77ca70aea14445026e264586fc62889a10" -dependencies = [ - "constgebra", - "glam", -] - -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "image" -version = "0.24.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-rational", - "num-traits", - "png", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" -dependencies = [ - "equivalent", - "hashbrown 0.14.0", -] - -[[package]] -name = "inflections" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a" - -[[package]] -name = "inotify" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" -dependencies = [ - "bitflags 1.3.2", - "inotify-sys", - "libc", -] - -[[package]] -name = "inotify-sys" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" -dependencies = [ - "libc", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "io-kit-sys" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4769cb30e5dcf1710fc6730d3e94f78c47723a014a567de385e113c737394640" -dependencies = [ - "core-foundation-sys", - "mach2", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "jni" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "jobserver" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "khronos-egl" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" -dependencies = [ - "libc", - "libloading 0.7.4", - "pkg-config", -] - -[[package]] -name = "ktx2" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "lewton" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" -dependencies = [ - "byteorder", - "ogg", - "tinyvec", -] - -[[package]] -name = "libc" -version = "0.2.147" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" - -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - -[[package]] -name = "libloading" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "libredox" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" -dependencies = [ - "bitflags 2.4.0", - "libc", - "redox_syscall 0.4.1", -] - -[[package]] -name = "libudev-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" -dependencies = [ - "libc", - "pkg-config", -] - -[[package]] -name = "lock_api" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "mach2" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" -dependencies = [ - "libc", -] - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "metal" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "623b5e6cefd76e58f774bd3cc0c6f5c7615c58c03a97815245a25c3c9bdee318" -dependencies = [ - "bitflags 2.4.0", - "block", - "core-graphics-types", - "foreign-types 0.5.0", - "log", - "objc", - "paste", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.48.0", -] - -[[package]] -name = "naga" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ceaaa4eedaece7e4ec08c55c640ba03dbb73fb812a6570a59bcf1930d0f70e" -dependencies = [ - "bit-set", - "bitflags 2.4.0", - "codespan-reporting", - "hexf-parse", - "indexmap 1.9.3", - "log", - "num-traits", - "pp-rs", - "rustc-hash", - "spirv", - "termcolor", - "thiserror", - "unicode-xid", -] - -[[package]] -name = "naga_oil" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac54c77b3529887f9668d3dd81e955e58f252b31a333f836e3548c06460b958" -dependencies = [ - "bit-set", - "codespan-reporting", - "data-encoding", - "indexmap 1.9.3", - "naga", - "once_cell", - "regex", - "regex-syntax 0.7.4", - "rustc-hash", - "thiserror", - "tracing", - "unicode-ident", -] - -[[package]] -name = "ndk" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" -dependencies = [ - "bitflags 1.3.2", - "jni-sys", - "ndk-sys", - "num_enum 0.5.11", - "raw-window-handle", - "thiserror", -] - -[[package]] -name = "ndk-context" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" - -[[package]] -name = "ndk-sys" -version = "0.4.1+23.1.7779620" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" -dependencies = [ - "jni-sys", -] - -[[package]] -name = "nix" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", -] - -[[package]] -name = "nix" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" -dependencies = [ - "bitflags 2.4.0", - "cfg-if", - "libc", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nonmax" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4a593ea4fffed8684ad13d75c82cf0b6dc2b88947e0ed85b9e70f555a7e422" - -[[package]] -name = "ntapi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" -dependencies = [ - "winapi", -] +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] -name = "nu-ansi-term" -version = "0.46.0" +name = "futures-lite" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ - "overload", - "winapi", + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", ] [[package]] -name = "num-derive" -version = "0.3.3" +name = "generic-array" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "typenum", + "version_check", ] [[package]] -name = "num-integer" -version = "0.1.45" +name = "getrandom" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ - "autocfg", - "num-traits", + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", ] [[package]] -name = "num-rational" -version = "0.4.1" +name = "glam" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" dependencies = [ - "autocfg", - "num-integer", - "num-traits", + "bytemuck", + "serde", ] [[package]] -name = "num-traits" -version = "0.2.16" +name = "hashbrown" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" dependencies = [ - "autocfg", + "ahash", + "allocator-api2", + "serde", ] [[package]] -name = "num_enum" -version = "0.5.11" +name = "idna" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ - "num_enum_derive 0.5.11", + "unicode-bidi", + "unicode-normalization", ] [[package]] -name = "num_enum" -version = "0.6.1" +name = "indexmap" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" dependencies = [ - "num_enum_derive 0.6.1", + "equivalent", + "hashbrown", ] [[package]] -name = "num_enum_derive" -version = "0.5.11" +name = "instant" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", ] [[package]] -name = "num_enum_derive" -version = "0.6.1" +name = "itoa" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.29", -] +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] -name = "objc" -version = "0.2.7" +name = "js-sys" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" dependencies = [ - "malloc_buf", - "objc_exception", + "wasm-bindgen", ] [[package]] -name = "objc-sys" -version = "0.2.0-beta.2" +name = "lazy_static" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] -name = "objc2" -version = "0.3.0-beta.3.patch-leaks.3" +name = "libc" +version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" -dependencies = [ - "block2", - "objc-sys", - "objc2-encode", -] +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] -name = "objc2-encode" -version = "2.0.0-pre.2" +name = "log" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" -dependencies = [ - "objc-sys", -] +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] -name = "objc_exception" -version = "0.1.2" +name = "matchers" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "cc", + "regex-automata 0.1.10", ] [[package]] -name = "object" -version = "0.32.0" +name = "memchr" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe" -dependencies = [ - "memchr", -] +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] -name = "oboe" -version = "0.5.0" +name = "nonmax" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8868cc237ee02e2d9618539a23a8d228b9bb3fc2e7a5b11eed3831de77c395d0" -dependencies = [ - "jni 0.20.0", - "ndk", - "ndk-context", - "num-derive", - "num-traits", - "oboe-sys", -] +checksum = "6e4a593ea4fffed8684ad13d75c82cf0b6dc2b88947e0ed85b9e70f555a7e422" [[package]] -name = "oboe-sys" -version = "0.5.0" +name = "ntapi" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f44155e7fb718d3cfddcf70690b2b51ac4412f347cd9e4fbe511abe9cd7b5f2" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" dependencies = [ - "cc", + "winapi", ] [[package]] -name = "ogg" -version = "0.8.0" +name = "nu-ansi-term" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ - "byteorder", + "overload", + "winapi", ] [[package]] @@ -2574,71 +765,18 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" -[[package]] -name = "orbclient" -version = "0.3.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" -dependencies = [ - "libredox", -] - [[package]] name = "overload" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" -[[package]] -name = "owned_ttf_parser" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7" -dependencies = [ - "ttf-parser", -] - [[package]] name = "parking" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.3.5", - "smallvec", - "windows-targets 0.48.5", -] - -[[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - [[package]] name = "percent-encoding" version = "2.3.0" @@ -2652,7 +790,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.0.0", + "indexmap", ] [[package]] @@ -2661,50 +799,12 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" -[[package]] -name = "pkg-config" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" - -[[package]] -name = "png" -version = "0.17.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" -dependencies = [ - "bitflags 1.3.2", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - -[[package]] -name = "pp-rs" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee" -dependencies = [ - "unicode-xid", -] - [[package]] name = "ppv-lite86" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.14", -] - [[package]] name = "proc-macro2" version = "1.0.66" @@ -2714,12 +814,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "profiling" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89dff0959d98c9758c88826cc002e2c3d0b9dfac4139711d1f30de442f1139b" - [[package]] name = "quote" version = "1.0.33" @@ -2729,12 +823,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "radsort" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b" - [[package]] name = "rand" version = "0.8.5" @@ -2765,42 +853,12 @@ dependencies = [ "getrandom", ] -[[package]] -name = "range-alloc" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" - [[package]] name = "raw-window-handle" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" -[[package]] -name = "rectangle-pack" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "regex" version = "1.9.3" @@ -2845,100 +903,18 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" -[[package]] -name = "renderdoc-sys" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b" - -[[package]] -name = "rmp" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rodio" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b1bb7b48ee48471f55da122c0044fcc7600cfcc85db88240b89cb832935e611" -dependencies = [ - "cpal", - "lewton", -] - -[[package]] -name = "ron" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" -dependencies = [ - "base64 0.21.2", - "bitflags 2.4.0", - "serde", - "serde_derive", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - [[package]] name = "rustc-hash" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" -[[package]] -name = "ruzstd" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" -dependencies = [ - "byteorder", - "thiserror-core", - "twox-hash", -] - [[package]] name = "ryu" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - [[package]] name = "serde" version = "1.0.192" @@ -2956,14 +932,14 @@ checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn", ] [[package]] name = "serde_json" -version = "1.0.105" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -2990,18 +966,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shlex" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" - -[[package]] -name = "simd-adler32" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" - [[package]] name = "slab" version = "0.4.9" @@ -3011,15 +975,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "slotmap" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" -dependencies = [ - "version_check", -] - [[package]] name = "smallvec" version = "1.11.0" @@ -3030,22 +985,12 @@ dependencies = [ ] [[package]] -name = "smol_str" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" -dependencies = [ - "serde", -] - -[[package]] -name = "spirv" -version = "0.2.0+1.5.4" +name = "smol_str" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830" +checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" dependencies = [ - "bitflags 1.3.2", - "num-traits", + "serde", ] [[package]] @@ -3054,35 +999,11 @@ version = "0.0.1" dependencies = [ "bevy", "bevy_twite", - "rmp", - "rmp-serde", "serde", + "serde_json", "tracing-subscriber", ] -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "svg_fmt" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.29" @@ -3108,27 +1029,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "taffy" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2287b6d7f721ada4cddf61ade5e760b2c6207df041cac9bfaa192897362fd3" -dependencies = [ - "arrayvec", - "grid", - "num-traits", - "slotmap", -] - -[[package]] -name = "termcolor" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" -dependencies = [ - "winapi-util", -] - [[package]] name = "thiserror" version = "1.0.47" @@ -3138,26 +1038,6 @@ dependencies = [ "thiserror-impl", ] -[[package]] -name = "thiserror-core" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d97345f6437bb2004cd58819d8a9ef8e36cdd7661c2abc4bbde0a7c40d9f497" -dependencies = [ - "thiserror-core-impl", -] - -[[package]] -name = "thiserror-core-impl" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "thiserror-impl" version = "1.0.47" @@ -3166,7 +1046,7 @@ checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn", ] [[package]] @@ -3200,24 +1080,13 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" -[[package]] -name = "toml_edit" -version = "0.19.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" -dependencies = [ - "indexmap 2.0.0", - "toml_datetime", - "winnow", -] - [[package]] name = "toml_edit" version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.0.0", + "indexmap", "toml_datetime", "winnow", ] @@ -3242,7 +1111,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn", ] [[package]] @@ -3295,33 +1164,17 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "ttf-parser" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" - [[package]] name = "twite" version = "0.1.0" source = "git+https://gitlab.com/ghostlyzsh/twite.git#6d54f37b7c392d2df993ee1cae2064b7ac410da7" dependencies = [ - "base64 0.21.2", + "base64", "rand", "sha1", "url", ] -[[package]] -name = "twox-hash" -version = "1.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" -dependencies = [ - "cfg-if", - "static_assertions", -] - [[package]] name = "typenum" version = "1.16.0" @@ -3349,18 +1202,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-width" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - [[package]] name = "url" version = "2.4.0" @@ -3388,12 +1229,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - [[package]] name = "version_check" version = "0.9.4" @@ -3406,16 +1241,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" -[[package]] -name = "walkdir" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3443,7 +1268,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.29", + "syn", "wasm-bindgen-shared", ] @@ -3477,7 +1302,7 @@ checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3488,17 +1313,6 @@ version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" -[[package]] -name = "wayland-scanner" -version = "0.29.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" -dependencies = [ - "proc-macro2", - "quote", - "xml-rs", -] - [[package]] name = "web-sys" version = "0.3.65" @@ -3509,111 +1323,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "wgpu" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "752e44d3998ef35f71830dd1ad3da513e628e2e4d4aedb0ab580f850827a0b41" -dependencies = [ - "arrayvec", - "cfg-if", - "js-sys", - "log", - "naga", - "parking_lot", - "profiling", - "raw-window-handle", - "smallvec", - "static_assertions", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "wgpu-core", - "wgpu-hal", - "wgpu-types", -] - -[[package]] -name = "wgpu-core" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f8a44dd301a30ceeed3c27d8c0090433d3da04d7b2a4042738095a424d12ae7" -dependencies = [ - "arrayvec", - "bit-vec", - "bitflags 2.4.0", - "codespan-reporting", - "log", - "naga", - "parking_lot", - "profiling", - "raw-window-handle", - "rustc-hash", - "smallvec", - "thiserror", - "web-sys", - "wgpu-hal", - "wgpu-types", -] - -[[package]] -name = "wgpu-hal" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a80bf0e3c77399bb52850cb0830af9bad073d5cfcb9dd8253bef8125c42db17" -dependencies = [ - "android_system_properties", - "arrayvec", - "ash", - "bit-set", - "bitflags 2.4.0", - "block", - "core-graphics-types", - "d3d12", - "glow", - "gpu-alloc", - "gpu-allocator", - "gpu-descriptor", - "hassle-rs", - "js-sys", - "khronos-egl", - "libc", - "libloading 0.8.1", - "log", - "metal", - "naga", - "objc", - "parking_lot", - "profiling", - "range-alloc", - "raw-window-handle", - "renderdoc-sys", - "rustc-hash", - "smallvec", - "thiserror", - "wasm-bindgen", - "web-sys", - "wgpu-types", - "winapi", -] - -[[package]] -name = "wgpu-types" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee64d7398d0c2f9ca48922c902ef69c42d000c759f3db41e355f4a570b052b67" -dependencies = [ - "bitflags 2.4.0", - "js-sys", - "web-sys", -] - -[[package]] -name = "widestring" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" - [[package]] name = "winapi" version = "0.3.9" @@ -3630,234 +1339,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-implement" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "windows-interface" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "winit" -version = "0.28.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94" -dependencies = [ - "android-activity", - "bitflags 1.3.2", - "cfg_aliases", - "core-foundation", - "core-graphics", - "dispatch", - "instant", - "libc", - "log", - "mio", - "ndk", - "objc2", - "once_cell", - "orbclient", - "percent-encoding", - "raw-window-handle", - "redox_syscall 0.3.5", - "wasm-bindgen", - "wayland-scanner", - "web-sys", - "windows-sys 0.45.0", - "x11-dl", -] - [[package]] name = "winnow" version = "0.5.14" @@ -3866,26 +1353,3 @@ checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97" dependencies = [ "memchr", ] - -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc", - "once_cell", - "pkg-config", -] - -[[package]] -name = "xi-unicode" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" - -[[package]] -name = "xml-rs" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" diff --git a/client/.gitignore b/client/.gitignore deleted file mode 100644 index a547bf36d8d11a4f89c59c144f24795749086dd1..0000000000000000000000000000000000000000 --- a/client/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/client/assets b/client/assets deleted file mode 120000 index ec2e4be2f839d0372d9c88d9a8b826596a361e64..0000000000000000000000000000000000000000 --- a/client/assets +++ /dev/null @@ -1 +0,0 @@ -../assets \ No newline at end of file diff --git a/client/hearty.png b/client/hearty.png deleted file mode 100644 index 20a6a7203aaa346611aec3cb85e7317835d68ce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37202 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 K+WL{D7v=v)pc26V diff --git a/client/index.html b/client/index.html deleted file mode 100644 index 80c2b6f37b7a097116d82bf2da2a7a4127ed1729..0000000000000000000000000000000000000000 --- a/client/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - StarKingdoms - - - -

StarKingdoms

-
- Join Game -
- - -
- - -
- -
- -
- -
-

You are not logged in.

- - Click here to log in or change accounts. -
-
- - - - - - - diff --git a/client/package.json b/client/package.json deleted file mode 100644 index b0b9a49d147ceb329ab659210ba5b55227212ca6..0000000000000000000000000000000000000000 --- a/client/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "starkingdoms-client", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "tsc && vite build", - "preview": "vite preview", - "protobuf": "mkdir -p ./src/protocol && protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_opt=forceLong=number --ts_proto_out=./src/protocol -I ../protocol/src/pbuf ../protocol/src/pbuf/starkingdoms-protocol.proto && sed -i 's/\\/\\* eslint-disable \\*\\//\\/\\/@ts-nocheck/' src/protocol/*.ts" - }, - "devDependencies": { - "ts-proto": "^1.146.0", - "typescript": "^4.9.3", - "vite": "^4.2.0" - }, - "dependencies": {}, - "entry": ["index.html", "play.html"] -} diff --git a/client/play.html b/client/play.html deleted file mode 100644 index 8e2864883a1b832221ab01f4e66f5f25fcb8e297..0000000000000000000000000000000000000000 --- a/client/play.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - StarKingdoms - - - - - - -
-

Position: NaN, NaN

-

Velocity: NaN

-

Relative to Moon: NaN, NaN

-

Track Angle: NaN

- -
- - - - diff --git a/client/src/gateway.ts b/client/src/gateway.ts deleted file mode 100644 index e920e5150b8c45b9db4d27f014be1160990ae310..0000000000000000000000000000000000000000 --- a/client/src/gateway.ts +++ /dev/null @@ -1,175 +0,0 @@ -import {Logger} from "./logger"; -import {decode, encode} from "./serde"; -import {global} from "./index"; - -const logger = new Logger("Gateway"); - -export interface GatewayClient { - //state: State; - socket: WebSocket; - username: string | null; - version: number | null; - // @ts-ignore - ping_timeout: Timeout | null; // i am aware that these types dont exist - // @ts-ignore - ping_timeout_left: Timeout; // its fine -} - -/*export interface AttachedModule { - module_type: ModuleType, - rotation: number, - x: number, - y: number, - children: Attachment[], -}*/ - -export async function gateway_connect(gateway_url: string, username: string): Promise { - logger.info("FAST CONNECT - Connecting to gateway socket at " + gateway_url); - - let ws = await _websocket_connect(gateway_url); - - logger.debug("[fastconnect] connected to gateway, performing handshake with server"); - - let client: GatewayClient = { - //state: State.Handshake, - socket: ws, - username: null, - version: null, - ping_timeout: null, - ping_timeout_left: null - }; - - client.socket.addEventListener('message', async (msg) => { - let pkt_info = decode(new Uint8Array(await msg.data.arrayBuffer())); - let pkt_id = pkt_info[0]; - let pkt_data = pkt_info[1]; - - if (pkt_id == 0) { - // not a real message, skip - return; - } - - if (client.state == State.Handshake) { - if (pkt_id == MessageS2CHello_packetInfo.type) { - let pkt = MessageS2CHello.decode(pkt_data); - - logger.info(`FAST CONNECT - Handshake finished with server with protocol v${pkt.version}, assigned username ${pkt.givenUsername}, switching to state ${pkt.nextState}`); - - client.state = pkt.nextState; - client.username = pkt.givenUsername; - client.version = pkt.version; - } else if (pkt_id == MessageS2CGoodbye_packetInfo.type) { - let pkt = MessageS2CGoodbye.decode(pkt_data); - - logger.error(`Disconnected by server. Reason: ${pkt.reason}`); - - client.state = State.Handshake; - client.username = null; - client.version = null; - - throw "Disconnected by server"; - } else { - logger.warn(`server sent unexpected packet ${pkt_id} for state Handshake`); - } - } else if (client.state == State.Play) { - if (pkt_id == MessageS2CGoodbye_packetInfo.type) { - let pkt = MessageS2CGoodbye.decode(pkt_data); - - logger.error(`Disconnected by server. Reason: ${pkt.reason}`); - - client.state = State.Handshake; - client.username = null; - client.version = null; - - throw "Disconnected by server"; - } else if (pkt_id == MessageS2CChat_packetInfo.type) { - let pkt = MessageS2CChat.decode(pkt_data); - - logger.info(`CHAT: [${pkt.from}] ${pkt.message}`); - } else if (pkt_id == MessageS2CPong_packetInfo.type) { - clearTimeout(client.ping_timeout_left); - client.ping_timeout_left = setTimeout(ping_timeout_fn, 10 * 1000); - } else if (pkt_id == MessageS2CPlayersUpdate_packetInfo.type) { - let pkt = MessageS2CPlayersUpdate.decode(pkt_data); - global.players = pkt.players; - - for (let i = 0; i < pkt.players.length; i++) { - if (pkt.players[i].username == client.username) { - if (global.me !== null) { - let x_vel = (global.me.x - pkt.players[i].x) / (1 / 20); - let y_vel = (global.me.y - pkt.players[i].y) / (1 / 20); - let total_vel = Math.sqrt(x_vel * x_vel + y_vel * y_vel); - global.x_vel = x_vel; - global.y_vel = y_vel; - global.velocity = total_vel; - - // calc theta - global.direction_radians = Math.atan2(global.y_vel, global.x_vel); - } - - global.me = pkt.players[i]; - } - } - } else if (pkt_id == MessageS2CPlanetData_packetInfo.type) { - let pkt = MessageS2CPlanetData.decode(pkt_data); - global.planets = pkt.planets; - } else if (pkt_id == MessageS2CModulesUpdate_packetInfo.type) { - let pkt = MessageS2CModulesUpdate.decode(pkt_data); - global.modules = pkt.modules; - } else if (pkt_id == MessageS2CModuleAdd_packetInfo.type) { - let pkt = MessageS2CModuleAdd.decode(pkt_data); - let module = { - module_type: pkt.module!.moduleType, - rotation: pkt.module!.rotation, - x: pkt.module!.x, - y: pkt.module!.y, - children: pkt.module!.children, - }; - global.tree.set(pkt.module!.id, module); - global.clicked = null; - } else if (pkt_id == MessageS2CModuleRemove_packetInfo.type) { - let pkt = MessageS2CModuleRemove.decode(pkt_data); - global.clicked = pkt.module!.id; - } else if (pkt_id == MessageS2CModuleTreeUpdate_packetInfo.type) { - let pkt = MessageS2CModuleTreeUpdate.decode(pkt_data); - let modules: Map = new Map(); - pkt.tree.forEach((value: ProtocolAttachedModule) => { - modules.set(value.id, { - module_type: value.moduleType, - rotation: value.rotation, - x: value.x, - y: value.y, - children: value.children, - }); - }); - global.tree = modules; - } else { - logger.warn(`server sent unexpected packet ${pkt_id} for state Play`); - } - } - }); - - - - return client; -} - -let socket: WebSocket | undefined = undefined; - -function _websocket_connect(url: string): Promise { - if (socket && socket.readyState < 2) { - // reuse socket connection - return Promise.resolve(socket); - } - - return new Promise((resolve, reject) => { - socket = new WebSocket(url); - socket.onopen = () => { - // @ts-ignore if here, guaranteed that `socket` != undefined - resolve(socket); - } - socket.onerror = (err) => { - reject(err); - } - }); -} diff --git a/client/src/index.ts b/client/src/index.ts deleted file mode 100644 index d2ad7e09aa18c8c7626750f425f5bccc941061a3..0000000000000000000000000000000000000000 --- a/client/src/index.ts +++ /dev/null @@ -1,500 +0,0 @@ -import {Logger, logSetup} from "./logger"; -import {AttachedModule, gateway_connect, GatewayClient} from "./gateway"; -import {Player} from "./protocol/player"; -import {Planet, PlanetType} from "./protocol/planet"; -import {Module, ModuleType} from "./protocol/module"; -/*import { - MessageC2SAuthenticateAndBeamOut, - MessageC2SAuthenticateAndBeamOut_packetInfo, - MessageC2SInput, - MessageC2SInput_packetInfo, - MessageC2SModuleDetach, - MessageC2SModuleDetach_packetInfo, - MessageC2SModuleGrabBegin, - MessageC2SModuleGrabBegin_packetInfo, - MessageC2SModuleGrabEnd, - MessageC2SModuleGrabEnd_packetInfo, - MessageC2SMouseInput, - MessageC2SMouseInput_packetInfo -} from "./protocol/message_c2s"; -import {encode} from "./serde"; -import {InputType} from "./protocol/input";*/ -import {createParticle, tickAndDrawParticles} from "./particle"; - -logSetup(); -const logger = new Logger("client"); - -export interface GlobalData { - client: GatewayClient | null, - players: Player[], - planets: Planet[], - modules: Module[], - me: Player | null, - canvas: HTMLCanvasElement, - spritesheet_img: HTMLImageElement | null, - spritesheet: object | null, - context: CanvasRenderingContext2D, - /*keys: Keys, - velocity: number, - x_vel: number, - y_vel: number - can_beam_out: boolean,*/ - direction_radians: number, - /*mouse_x: number, - mouse_y: number, - tree: Map, - clicked: number | null,*/ -} - -export interface Keys { - up: boolean, - left: boolean, - down: boolean, - right: boolean -} - -export const global: GlobalData = { - client: null, - players: [], - planets: [], - modules: [], - me: null, - canvas: document.getElementById("canvas"), - spritesheet_img: null, - spritesheet: null, - context: (document.getElementById("canvas")).getContext("2d"), - /*keys: { - up: false, - down: false, - left: false, - right: false - }, - velocity: 0, - x_vel: 0, - y_vel: 0, - can_beam_out: false,*/ - direction_radians: 0, - /*mouse_x: 0, - mouse_y: 0, - tree: new Map(), - clicked: null,*/ -} - -async function client_main(server: string, username: string, texture_quality: string) { - logger.info("StarKingdoms client - starting"); - - logger.info("Loading textures"); - let spritesheet_url = `/assets/dist/spritesheet-${texture_quality}.png`; - let spritesheet_data_url = `/assets/dist/spritesheet-${texture_quality}.json`; - - let load_textures = new Promise(async (resolve) => { - const image_promise: Promise = new Promise((resolve, reject) => { - const image = document.createElement("img"); - image.src = spritesheet_url; - image.onload = () => { resolve(image); } - image.onerror = err => reject(err); - }); - const dat_promise: Promise = fetch(spritesheet_data_url).then(res => res.json()); - let image = await image_promise; - let data = await dat_promise; - - global.spritesheet_img = image; - global.spritesheet = data; - - resolve(); - }); - await load_textures; - - logger.info("Starting the renderer"); - - - //let sprite = PIXI.Sprite.from(global.spritesheet?.textures["hearty.png"]); - - global.client = await gateway_connect(server, username); - - global.canvas.width = window.innerWidth; - global.canvas.height = window.innerHeight; - - window.onresize = () => { - global.canvas.width = window.innerWidth; - global.canvas.height = window.innerHeight; - } - - global.canvas.style.setProperty("background-image", `url("/assets/final/${texture_quality}/starfield.png")`); - let canvas = document.getElementById("canvas")!; - - let thruster_counter = 0; - - /*document.onkeydown = (e) => { - if (e.code == "ArrowLeft" || e.code == "KeyA") { // arrow-left - global.keys.left = true; - } else if (e.code == "ArrowRight" || e.code == "KeyD") { // arrow-right - global.keys.right = true; - } else if (e.code == "ArrowUp" || e.code == "KeyW") { // arrow-up - global.keys.up = true; - } else if (e.code == "ArrowDown" || e.code == "KeyS") { // arrow-down - global.keys.down = true; - } - - let msg = MessageC2SInput.encode({ - upPressed: global.keys.up, - downPressed: global.keys.down, - leftPressed: global.keys.left, - rightPressed: global.keys.right - }).finish(); - - global.client?.socket.send(encode(MessageC2SInput_packetInfo.type, msg)); - } - document.onkeyup = (e) => { - if (e.code == "ArrowLeft" || e.code == "KeyA") { // arrow-left - global.keys.left = false; - } else if (e.code == "ArrowRight" || e.code == "KeyD") { // arrow-right - global.keys.right = false; - } else if (e.code == "ArrowUp" || e.code == "KeyW") { // arrow-up - global.keys.up = false; - } else if (e.code == "ArrowDown" || e.code == "KeyS") { // arrow-down - global.keys.down = false; - } - - let msg = MessageC2SInput.encode({ - upPressed: global.keys.up, - downPressed: global.keys.down, - leftPressed: global.keys.left, - rightPressed: global.keys.right - }).finish(); - global.client?.socket.send(encode(MessageC2SInput_packetInfo.type, msg)); - }*/ - - let t = performance.now(); - let delta = 0.0; - - let render = (newT: DOMHighResTimeStamp) => { - - delta = newT - t; - t = newT; - - let viewer_size_x = global.canvas.width; - let viewer_size_y = global.canvas.height; - - global.canvas.style.setProperty("background-position", `${-global.me?.x!/5}px ${-global.me?.y!/5}px`); - - global.context.setTransform(1, 0, 0, 1, 0, 0); - global.context.clearRect(0, 0, viewer_size_x, viewer_size_y); - - // *dont* translate the camera. we're movign everything else around us. cameracentrism. - // only translation will be to center our core module. - global.context.translate(viewer_size_x / 2, viewer_size_y / 2); - - global.context.save(); - global.context.rotate(global.direction_radians + Math.PI); - - // @ts-ignore - let indic_tex = global.spritesheet!["frames"]["trackindicator.png"]; - - global.context.drawImage(global.spritesheet_img!, indic_tex.frame.x, - indic_tex.frame.y+1, - indic_tex.frame.w-1, - indic_tex.frame.h-2, - -indic_tex.frame.w/2, - -indic_tex.frame.h/2, - indic_tex.frame.w, - indic_tex.frame.h - ); - - global.context.restore(); - - if (global.me !== null) { - document.getElementById("pos")!.innerText = `Position: ${Math.trunc(global.me.x)}, ${Math.trunc(global.me.y)}`; - } - //document.getElementById("vel")!.innerText = `Velocity: ${Math.trunc(global.velocity)}`; - document.getElementById("vel-dir")!.innerText = `Track Angle: ${global.direction_radians}` - - for (let i = 0; i < global.planets.length; i++) { - let planet = global.planets[i]; - // @ts-ignore - let tex = global.spritesheet!["frames"][planet_type_to_tex_id(planet.planetType)]; - global.context.drawImage(global.spritesheet_img!, - tex.frame.x, // sx - tex.frame.y, // sy - tex.frame.w-1, // sw - tex.frame.h-1, // sh - (planet.x - planet.radius - global.me?.x!), // dx - (planet.y - planet.radius - global.me?.y!), // dy - planet.radius * 2, // dw - planet.radius * 2); // dh - - if (planet.planetType == PlanetType.Moon) { - if (global.me !== null) { - global.context.beginPath(); - global.context.strokeStyle = "gray"; - global.context.lineWidth = 5; - global.context.moveTo(global.me!.x - global.me!.x, global.me!.y - global.me!.y); - global.context.lineTo(planet.x - global.me!.x, planet.y - global.me!.y); - global.context.stroke(); - - document.getElementById("pos-moon")!.innerText = `Relative to Moon: ${Math.trunc(global.me!.x - planet.x)}, ${Math.trunc(global.me!.y - planet.y)}` - } - } else if (planet.planetType == PlanetType.Earth) { - if (global.me !== null) { - global.context.beginPath(); - global.context.strokeStyle = "limegreen"; - global.context.lineWidth = 5; - global.context.moveTo(global.me!.x - global.me!.x, global.me!.y - global.me!.y); - global.context.lineTo(planet.x - global.me!.x, planet.y - global.me!.y); - global.context.stroke(); - } - } else if (planet.planetType == PlanetType.Mars) { - if (global.me !== null) { - global.context.beginPath(); - global.context.strokeStyle = "orange"; - global.context.lineWidth = 5; - global.context.moveTo(global.me!.x - global.me!.x, global.me!.y - global.me!.y); - global.context.lineTo(planet.x - global.me!.x, planet.y - global.me!.y); - global.context.stroke(); - } - } - } - - for (let i = 0; i < global.modules.length; i++) { - if (global.me !== null) { - let module = global.modules[i]; - // @ts-ignore - let tex = global.spritesheet!["frames"][module_type_to_tex_id(module.moduleType, (module.flags & 1) != 0)]; - - global.context.save(); - - // x_{screen} = x_{world} - player_{x_{world}} - // x_{world} = x_{screen} + player_{x_{world}} - - global.context.translate(module.x - global.me!.x, module.y - global.me!.y); - - global.context.rotate(module.rotation); - - global.context.drawImage(global.spritesheet_img!, - tex.frame.x, - tex.frame.y, - tex.frame.w-1, - tex.frame.h-1, - -25, - -25, 50, 50); - - global.context.restore(); - - /*if (global.clicked == module.id) { - global.context.save(); - global.context.translate(global.mouse_x - window.innerWidth/2, - global.mouse_y - window.innerHeight/2); - - global.context.rotate(module.rotation); - - global.context.globalAlpha = 0.6; - global.context.drawImage(global.spritesheet_img!, - tex.frame.x, - tex.frame.y, - tex.frame.w-1, - tex.frame.h-1, - -25, - -25, 50, 50); - global.context.globalAlpha = 1.0; - global.context.restore(); - }*/ - } - } - - /*global.tree.forEach((value: AttachedModule, _key: number) => { - if (global.me !== null) { - // @ts-ignore - let tex = global.spritesheet!["frames"][module_type_to_tex_id(value.module_type, true)]; - - global.context.save(); - global.context.translate(value.x - global.me!.x, value.y - global.me!.y); - global.context.rotate(value.rotation); - - global.context.drawImage(global.spritesheet_img!, - tex.frame.x, - tex.frame.y, - tex.frame.w-1, - tex.frame.h-1, - -25, - -25, 50, 50); - - global.context.restore(); - } - });*/ - - function isStarkingdomsBirthday() { - let inputDate = new Date("3/20/2022"); - let todaysDate = new Date(); - return inputDate.getMonth() == todaysDate.getMonth() && inputDate.getDate() == todaysDate.getDate(); - } - - function isRustBirthday() { - let inputDate = new Date("5/15/2015"); - let todaysDate = new Date(); - return inputDate.getMonth() == todaysDate.getMonth() && inputDate.getDate() == todaysDate.getDate(); - } - - for (let i = 0; i < global.players.length; i++) { - if (global.me !== null) { - let player = global.players[i]; - // @ts-ignore - //let tex = global.spritesheet!["frames"]["hearty.png"]; - //let tex = global.spritesheet!["frames"]["hearty_party.png"]; - //let tex = global.spritesheet!["frames"]["hearty_ferris.png"]; - let tex; - if (isStarkingdomsBirthday()) { - // @ts-ignore - tex = global.spritesheet!["frames"]["hearty_party.png"]; - } else if (isRustBirthday()) { - // @ts-ignore - tex = global.spritesheet!["frames"]["hearty_ferris.png"]; - } else { - // @ts-ignore - tex = global.spritesheet!["frames"]["hearty.png"]; - } - - global.context.save(); - - global.context.translate(player.x - global.me!.x, player.y - global.me!.y); - - global.context.textAlign = "center"; - global.context.font = "30px Segoe UI"; - global.context.fillStyle = "white"; - global.context.fillText(player.username, 0, -35); - - global.context.rotate(player.rotation); - - global.context.drawImage(global.spritesheet_img!, - tex.frame.x, // sx - tex.frame.y, // sy - tex.frame.w-1, // sw - tex.frame.h-1, // sh - -25, -25, 50, 50); // dh - - global.context.restore(); - } - } - - function calculateRotated(x: number, y: number, rotation: number): [number, number] { - let x2 = x * Math.cos(rotation) - y * Math.sin(rotation); - let y2 = x * Math.sin(rotation) + y * Math.cos(rotation); - return [x2, y2]; - } - - const thruster_r = 52; - const thruster_g = 189; - const thruster_b = 235; - const thruster_start_a = 80; - const thruster_end_a = 0; - const thruster_start_size = 4; - const thruster_end_size = 50; - const thruster_final_rotation = 90; - - function createThrusterParticle(x: number, y: number, vel_x: number, vel_y: number) { - createParticle({ - x: global.me!.x + calculateRotated(x, y, global.me!.rotation)[0], - y: global.me!.y + calculateRotated(x, y, global.me!.rotation)[1], - lifetime: 500, - timer: 0, - startSize: thruster_start_size, - finalSize: thruster_end_size, - startRotation: 0, - finalRotation: thruster_final_rotation, - startOpacity: thruster_start_a, - endOpacity: thruster_end_a, - startR: thruster_r, - startG: thruster_g, - startB: thruster_b, - endR: thruster_r, - endG: thruster_g, - endB: thruster_b, - velocity_x: calculateRotated(vel_x, vel_y, global.me!.rotation)[0], - velocity_y: calculateRotated(vel_x, vel_y, global.me!.rotation)[1] - }); - } - - /*if (global.me !== null) { - thruster_counter += 1; - //thruster_counter = 1; // uncomment this line to disable particle limits - if (thruster_counter > 3) { - thruster_counter = 0; - } else if (thruster_counter == 1) { - if (global.keys.up) { - // two backward thrusters - // this one is blue - createThrusterParticle(-25, 25, 0, 0.5); - createThrusterParticle(25, 25, 0, 0.5); - } - - if (global.keys.down) { - // two backward thrusters - // this one is blue - createThrusterParticle(25, -25, 0, -0.5); - createThrusterParticle(-25, -25, 0, -0.5); - } - - if (global.keys.left) { - // two backward thrusters - // this one is blue - createThrusterParticle(25, 25, 0, 0.5); - createThrusterParticle(-25, -25, 0, -0.5); - } - - if (global.keys.right) { - // two backward thrusters - // this one is blue - createThrusterParticle(-25, 25, 0,0.5); - createThrusterParticle(25, -25, 0, -0.5); - } - } - - tickAndDrawParticles(delta); - }*/ - - requestAnimationFrame(render); - } - requestAnimationFrame(render); -} - -let query = new URLSearchParams(window.location.search); - -if (!(query.has("server") || query.has("username") || query.has("textures"))) { - window.location.href = "/index.html"; -} - -client_main(query.get("server")!, query.get("username")!, query.get("textures")!).then(() => {}); - -function planet_type_to_tex_id(ty: PlanetType): string { - if (ty == PlanetType.Earth) { - return "earth.png" - } else if (ty == PlanetType.Moon) { - return "moon.png" - } else if (ty == PlanetType.Mars) { - return "mars.png" - } - return "unknown.png" -} -function module_type_to_tex_id(ty: ModuleType, is_on: boolean): string { - if (!is_on) { - if (ty == ModuleType.Cargo) { - return "cargo_off.png" - } else if (ty == ModuleType.LandingThruster) { - return "landingthruster_off.png" - } else if (ty == ModuleType.LandingThrusterSuspension) { - return "landingleg.png" - } else if (ty == ModuleType.Hub) { - return "hub_off.png" - } - } else { - if (ty == ModuleType.Cargo) { - return "cargo_on.png" - } else if (ty == ModuleType.LandingThruster) { - return "landingthruster_on.png" - } else if (ty == ModuleType.LandingThrusterSuspension) { - return "landingleg.png" - } else if (ty == ModuleType.Hub) { - return "hub_on.png" - } - } - return "unknown.png" -} diff --git a/client/src/logger.ts b/client/src/logger.ts deleted file mode 100644 index a4d9a87c099753061669f26afb110fcfe87a745d..0000000000000000000000000000000000000000 --- a/client/src/logger.ts +++ /dev/null @@ -1,118 +0,0 @@ -// LOG LEVELS: -// 0: Fatal -// 1: Error -// 2: Warn -// 3: Info -// 4: Debug -// Logs are written in-memory and logged to console if logLevel > showLogLevel -let loglevel = 0; - -export const LEVEL_FATAL = 0; -export const LEVEL_ERROR = 1; -export const LEVEL_WARN = 2; -export const LEVEL_INFO = 3; -export const LEVEL_DEBUG = 4; - -interface LogLine { - level: number, - module: string, - message: string, - timestamp: number, - deltaStart: number, - deltaLast: number -} - -const debugLog: Array = []; -let timestampStart: number; -let deltaTimestamp: number; -let logger: Logger; -let loggerSetup = false; - -export function logSetup() { - if (loggerSetup) return; - loggerSetup = true; - timestampStart = Date.now(); - deltaTimestamp = Date.now(); - logger = new Logger("Logger.ts"); - consoleLogLevel(LEVEL_INFO); - logger.info("Logger setup complete"); -} - -function log(level: number, module: string, message: string) { - const log = { - level: level, - module: module, - message: message, - timestamp: Date.now(), - deltaStart: Date.now() - timestampStart, - deltaLast: Date.now() - deltaTimestamp - }; - deltaTimestamp = Date.now(); - - debugLog.push(log); - - consoleLogHandler(log); -} - -function consoleLogHandler(log: LogLine) { - if (import.meta.env.SSR) return; // no logging in ssr - if (log.level <= loglevel) { - let textstyle = ""; - switch (log.level) { - case 0: - textstyle = "color:red;font-weight:bold;"; - break; - case 1: - textstyle = "color:red;"; - break; - case 2: - textstyle = "color:yellow;"; - break; - case 3: - textstyle = ""; - break; - case 4: - textstyle = "color:gray;"; - break; - } - console.log(`%c${new Date(log.timestamp).toISOString()} ${(log.deltaStart / 1000).toFixed(3)}Σ ${(log.deltaLast / 1000).toFixed(3)}Δ\n%c[${log.module}]%c ${log.message}`, "color:gray", "color:#8c188c", textstyle); - } -} - -export function consoleLogLevel(level: number) { - loglevel = level; -} - -export function consoleLogDump() { - for (let i = 0; i < debugLog.length; i++) { - consoleLogHandler(debugLog[i]); - } -} - -export class Logger { - private readonly name: string; - - constructor(name: string) { - this.name = name; - } - - fatal(message: any) { - log(LEVEL_FATAL, this.name, message) - } - - error(message: any) { - log(LEVEL_ERROR, this.name, message) - } - - warn(message: any) { - log(LEVEL_WARN, this.name, message) - } - - info(message: any) { - log(LEVEL_INFO, this.name, message) - } - - debug(message: any) { - log(LEVEL_DEBUG, this.name, message) - } -} \ No newline at end of file diff --git a/client/src/particle.ts b/client/src/particle.ts deleted file mode 100644 index 9807815399789605fd027eed1ffa40b62c01b929..0000000000000000000000000000000000000000 --- a/client/src/particle.ts +++ /dev/null @@ -1,80 +0,0 @@ -import {global} from "./index"; - -export interface Particle { - x: number, - y: number, - lifetime: number, - timer: number, - startSize: number, - finalSize: number, - startRotation: number, - finalRotation: number, - startOpacity: number, - endOpacity: number, - startR: number, - endR: number, - startG: number, - endG: number, - startB: number, - endB: number, - velocity_x: number, - velocity_y: number -} - -let particles: Particle[] = []; - -export function createParticle(particle: Particle) { - particles.push(particle); -} - -function lerp(start: number, end: number, time: number): number { - return start + time * (end - start); -} - -export function drawParticle(particle: Particle) { - let t = particle.timer / particle.lifetime; - let size = lerp(particle.startSize, particle.finalSize, t); - let rotation = lerp(particle.startRotation, particle.finalRotation, t); - - global.context.save(); - - global.context.translate(particle.x - global.me!.x, particle.y - global.me!.y); - - global.context.rotate(rotation); - - let opacity = Math.trunc(lerp(particle.startOpacity, particle.endOpacity, t)); - let r = Math.trunc(lerp(particle.startR, particle.endR, t)); - let g = Math.trunc(lerp(particle.startG, particle.endG, t)); - let b = Math.trunc(lerp(particle.startB, particle.endB, t)); - - global.context.fillStyle = `rgb(${r} ${g} ${b} / ${opacity}%)`; - global.context.fillRect(-size/2, -size/2, size, size); - - global.context.restore(); -} - -export function drawParticles() { - for (let i = 0; i < particles.length; i++) { - drawParticle(particles[i]); - } -} - -export function tickParticles(delta: number) { - let keptParticles = [] - for (let i = 0; i < particles.length; i++) { - particles[i].timer += delta; - - particles[i].x += particles[i].velocity_x * delta; - particles[i].y += particles[i].velocity_y * delta; - - if (!(particles[i].timer > particles[i].lifetime)) { - keptParticles.push(particles[i]); - } - } - particles = keptParticles; -} - -export function tickAndDrawParticles(delta: number) { - tickParticles(delta); - drawParticles(); -} diff --git a/client/src/protocol/goodbye_reason.ts b/client/src/protocol/goodbye_reason.ts deleted file mode 100644 index 1eb900315125071cc95ae9da94af63e42458c4a6..0000000000000000000000000000000000000000 --- a/client/src/protocol/goodbye_reason.ts +++ /dev/null @@ -1,66 +0,0 @@ -//@ts-nocheck - -export const protobufPackage = "protocol.goodbye_reason"; - -export enum GoodbyeReason { - UNKNOWN = 0, - UnsupportedProtocol = 1, - UnexpectedPacket = 2, - UnexpectedNextState = 3, - UsernameTaken = 4, - PingPongTimeout = 5, - Done = 6, - UNRECOGNIZED = -1, -} - -export function goodbyeReasonFromJSON(object: any): GoodbyeReason { - switch (object) { - case 0: - case "UNKNOWN": - return GoodbyeReason.UNKNOWN; - case 1: - case "UnsupportedProtocol": - return GoodbyeReason.UnsupportedProtocol; - case 2: - case "UnexpectedPacket": - return GoodbyeReason.UnexpectedPacket; - case 3: - case "UnexpectedNextState": - return GoodbyeReason.UnexpectedNextState; - case 4: - case "UsernameTaken": - return GoodbyeReason.UsernameTaken; - case 5: - case "PingPongTimeout": - return GoodbyeReason.PingPongTimeout; - case 6: - case "Done": - return GoodbyeReason.Done; - case -1: - case "UNRECOGNIZED": - default: - return GoodbyeReason.UNRECOGNIZED; - } -} - -export function goodbyeReasonToJSON(object: GoodbyeReason): string { - switch (object) { - case GoodbyeReason.UNKNOWN: - return "UNKNOWN"; - case GoodbyeReason.UnsupportedProtocol: - return "UnsupportedProtocol"; - case GoodbyeReason.UnexpectedPacket: - return "UnexpectedPacket"; - case GoodbyeReason.UnexpectedNextState: - return "UnexpectedNextState"; - case GoodbyeReason.UsernameTaken: - return "UsernameTaken"; - case GoodbyeReason.PingPongTimeout: - return "PingPongTimeout"; - case GoodbyeReason.Done: - return "Done"; - case GoodbyeReason.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} diff --git a/client/src/protocol/input.ts b/client/src/protocol/input.ts deleted file mode 100644 index 43db23d6d7e1204cf217c5b76002b18969d5849c..0000000000000000000000000000000000000000 --- a/client/src/protocol/input.ts +++ /dev/null @@ -1,48 +0,0 @@ -//@ts-nocheck - -export const protobufPackage = "protocol.input"; - -export enum InputType { - UNKNOWN = 0, - Left = 1, - Middle = 2, - Right = 3, - UNRECOGNIZED = -1, -} - -export function inputTypeFromJSON(object: any): InputType { - switch (object) { - case 0: - case "UNKNOWN": - return InputType.UNKNOWN; - case 1: - case "Left": - return InputType.Left; - case 2: - case "Middle": - return InputType.Middle; - case 3: - case "Right": - return InputType.Right; - case -1: - case "UNRECOGNIZED": - default: - return InputType.UNRECOGNIZED; - } -} - -export function inputTypeToJSON(object: InputType): string { - switch (object) { - case InputType.UNKNOWN: - return "UNKNOWN"; - case InputType.Left: - return "Left"; - case InputType.Middle: - return "Middle"; - case InputType.Right: - return "Right"; - case InputType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} diff --git a/client/src/protocol/message_c2s.ts b/client/src/protocol/message_c2s.ts deleted file mode 100644 index ba671db8e293f939339452c1c9f44f039b2aaa86..0000000000000000000000000000000000000000 --- a/client/src/protocol/message_c2s.ts +++ /dev/null @@ -1,1176 +0,0 @@ -//@ts-nocheck -import * as _m0 from "protobufjs/minimal"; -import { GoodbyeReason, goodbyeReasonFromJSON, goodbyeReasonToJSON } from "./goodbye_reason"; -import { InputType, inputTypeFromJSON, inputTypeToJSON } from "./input"; -import { State, stateFromJSON, stateToJSON } from "./state"; - -export const protobufPackage = "protocol.message_c2s"; - -export interface MessageC2SHello { - /** Version of the protocol. Currently always 1 */ - version: number; - /** The username that the client is requesting. */ - requestedUsername: string; - /** The state the connection will go into after the handshake. */ - nextState: State; - token: string; - user: string; -} - -export enum MessageC2SHello_packetInfo { - unknown = 0, - type = 1, - UNRECOGNIZED = -1, -} - -export function messageC2SHello_packetInfoFromJSON(object: any): MessageC2SHello_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageC2SHello_packetInfo.unknown; - case 1: - case "type": - return MessageC2SHello_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageC2SHello_packetInfo.UNRECOGNIZED; - } -} - -export function messageC2SHello_packetInfoToJSON(object: MessageC2SHello_packetInfo): string { - switch (object) { - case MessageC2SHello_packetInfo.unknown: - return "unknown"; - case MessageC2SHello_packetInfo.type: - return "type"; - case MessageC2SHello_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageC2SGoodbye { - /** The reason the client is disconnecting the server */ - reason: GoodbyeReason; -} - -export enum MessageC2SGoodbye_packetInfo { - unknown = 0, - type = 2, - UNRECOGNIZED = -1, -} - -export function messageC2SGoodbye_packetInfoFromJSON(object: any): MessageC2SGoodbye_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageC2SGoodbye_packetInfo.unknown; - case 2: - case "type": - return MessageC2SGoodbye_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageC2SGoodbye_packetInfo.UNRECOGNIZED; - } -} - -export function messageC2SGoodbye_packetInfoToJSON(object: MessageC2SGoodbye_packetInfo): string { - switch (object) { - case MessageC2SGoodbye_packetInfo.unknown: - return "unknown"; - case MessageC2SGoodbye_packetInfo.type: - return "type"; - case MessageC2SGoodbye_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageC2SChat { - /** The chat message to sent */ - message: string; -} - -export enum MessageC2SChat_packetInfo { - unknown = 0, - type = 3, - UNRECOGNIZED = -1, -} - -export function messageC2SChat_packetInfoFromJSON(object: any): MessageC2SChat_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageC2SChat_packetInfo.unknown; - case 3: - case "type": - return MessageC2SChat_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageC2SChat_packetInfo.UNRECOGNIZED; - } -} - -export function messageC2SChat_packetInfoToJSON(object: MessageC2SChat_packetInfo): string { - switch (object) { - case MessageC2SChat_packetInfo.unknown: - return "unknown"; - case MessageC2SChat_packetInfo.type: - return "type"; - case MessageC2SChat_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageC2SPing { -} - -export enum MessageC2SPing_packetInfo { - unknown = 0, - type = 4, - UNRECOGNIZED = -1, -} - -export function messageC2SPing_packetInfoFromJSON(object: any): MessageC2SPing_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageC2SPing_packetInfo.unknown; - case 4: - case "type": - return MessageC2SPing_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageC2SPing_packetInfo.UNRECOGNIZED; - } -} - -export function messageC2SPing_packetInfoToJSON(object: MessageC2SPing_packetInfo): string { - switch (object) { - case MessageC2SPing_packetInfo.unknown: - return "unknown"; - case MessageC2SPing_packetInfo.type: - return "type"; - case MessageC2SPing_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageC2SInput { - upPressed: boolean; - downPressed: boolean; - leftPressed: boolean; - rightPressed: boolean; -} - -export enum MessageC2SInput_packetInfo { - unknown = 0, - type = 11, - UNRECOGNIZED = -1, -} - -export function messageC2SInput_packetInfoFromJSON(object: any): MessageC2SInput_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageC2SInput_packetInfo.unknown; - case 11: - case "type": - return MessageC2SInput_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageC2SInput_packetInfo.UNRECOGNIZED; - } -} - -export function messageC2SInput_packetInfoToJSON(object: MessageC2SInput_packetInfo): string { - switch (object) { - case MessageC2SInput_packetInfo.unknown: - return "unknown"; - case MessageC2SInput_packetInfo.type: - return "type"; - case MessageC2SInput_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageC2SAuthenticateAndBeamOut { - /** The user ID that the client is authenticating as */ - userId: string; - /** The token from the authentication server that the user is authenticating as */ - token: string; -} - -export enum MessageC2SAuthenticateAndBeamOut_packetInfo { - unknown = 0, - type = 12, - UNRECOGNIZED = -1, -} - -export function messageC2SAuthenticateAndBeamOut_packetInfoFromJSON( - object: any, -): MessageC2SAuthenticateAndBeamOut_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageC2SAuthenticateAndBeamOut_packetInfo.unknown; - case 12: - case "type": - return MessageC2SAuthenticateAndBeamOut_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageC2SAuthenticateAndBeamOut_packetInfo.UNRECOGNIZED; - } -} - -export function messageC2SAuthenticateAndBeamOut_packetInfoToJSON( - object: MessageC2SAuthenticateAndBeamOut_packetInfo, -): string { - switch (object) { - case MessageC2SAuthenticateAndBeamOut_packetInfo.unknown: - return "unknown"; - case MessageC2SAuthenticateAndBeamOut_packetInfo.type: - return "type"; - case MessageC2SAuthenticateAndBeamOut_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageC2SMouseInput { - worldposX: number; - worldposY: number; - button: InputType; - released: boolean; -} - -export enum MessageC2SMouseInput_packetInfo { - unknown = 0, - type = 13, - UNRECOGNIZED = -1, -} - -export function messageC2SMouseInput_packetInfoFromJSON(object: any): MessageC2SMouseInput_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageC2SMouseInput_packetInfo.unknown; - case 13: - case "type": - return MessageC2SMouseInput_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageC2SMouseInput_packetInfo.UNRECOGNIZED; - } -} - -export function messageC2SMouseInput_packetInfoToJSON(object: MessageC2SMouseInput_packetInfo): string { - switch (object) { - case MessageC2SMouseInput_packetInfo.unknown: - return "unknown"; - case MessageC2SMouseInput_packetInfo.type: - return "type"; - case MessageC2SMouseInput_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageC2SModuleGrabBegin { - moduleId: number; - worldposX: number; - worldposY: number; -} - -export enum MessageC2SModuleGrabBegin_packetInfo { - unknown = 0, - type = 14, - UNRECOGNIZED = -1, -} - -export function messageC2SModuleGrabBegin_packetInfoFromJSON(object: any): MessageC2SModuleGrabBegin_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageC2SModuleGrabBegin_packetInfo.unknown; - case 14: - case "type": - return MessageC2SModuleGrabBegin_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageC2SModuleGrabBegin_packetInfo.UNRECOGNIZED; - } -} - -export function messageC2SModuleGrabBegin_packetInfoToJSON(object: MessageC2SModuleGrabBegin_packetInfo): string { - switch (object) { - case MessageC2SModuleGrabBegin_packetInfo.unknown: - return "unknown"; - case MessageC2SModuleGrabBegin_packetInfo.type: - return "type"; - case MessageC2SModuleGrabBegin_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageC2SModuleGrabEnd { - moduleId: number; - worldposX: number; - worldposY: number; -} - -export enum MessageC2SModuleGrabEnd_packetInfo { - unknown = 0, - type = 15, - UNRECOGNIZED = -1, -} - -export function messageC2SModuleGrabEnd_packetInfoFromJSON(object: any): MessageC2SModuleGrabEnd_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageC2SModuleGrabEnd_packetInfo.unknown; - case 15: - case "type": - return MessageC2SModuleGrabEnd_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageC2SModuleGrabEnd_packetInfo.UNRECOGNIZED; - } -} - -export function messageC2SModuleGrabEnd_packetInfoToJSON(object: MessageC2SModuleGrabEnd_packetInfo): string { - switch (object) { - case MessageC2SModuleGrabEnd_packetInfo.unknown: - return "unknown"; - case MessageC2SModuleGrabEnd_packetInfo.type: - return "type"; - case MessageC2SModuleGrabEnd_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageC2SModuleDetach { - moduleId: number; -} - -export enum MessageC2SModuleDetach_packetInfo { - unknown = 0, - type = 16, - UNRECOGNIZED = -1, -} - -export function messageC2SModuleDetach_packetInfoFromJSON(object: any): MessageC2SModuleDetach_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageC2SModuleDetach_packetInfo.unknown; - case 16: - case "type": - return MessageC2SModuleDetach_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageC2SModuleDetach_packetInfo.UNRECOGNIZED; - } -} - -export function messageC2SModuleDetach_packetInfoToJSON(object: MessageC2SModuleDetach_packetInfo): string { - switch (object) { - case MessageC2SModuleDetach_packetInfo.unknown: - return "unknown"; - case MessageC2SModuleDetach_packetInfo.type: - return "type"; - case MessageC2SModuleDetach_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -function createBaseMessageC2SHello(): MessageC2SHello { - return { version: 0, requestedUsername: "", nextState: 0, token: "", user: "" }; -} - -export const MessageC2SHello = { - encode(message: MessageC2SHello, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.version !== 0) { - writer.uint32(8).uint32(message.version); - } - if (message.requestedUsername !== "") { - writer.uint32(18).string(message.requestedUsername); - } - if (message.nextState !== 0) { - writer.uint32(24).int32(message.nextState); - } - if (message.token !== "") { - writer.uint32(34).string(message.token); - } - if (message.user !== "") { - writer.uint32(42).string(message.user); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageC2SHello { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageC2SHello(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.version = reader.uint32(); - continue; - case 2: - if (tag != 18) { - break; - } - - message.requestedUsername = reader.string(); - continue; - case 3: - if (tag != 24) { - break; - } - - message.nextState = reader.int32() as any; - continue; - case 4: - if (tag != 34) { - break; - } - - message.token = reader.string(); - continue; - case 5: - if (tag != 42) { - break; - } - - message.user = reader.string(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageC2SHello { - return { - version: isSet(object.version) ? Number(object.version) : 0, - requestedUsername: isSet(object.requestedUsername) ? String(object.requestedUsername) : "", - nextState: isSet(object.nextState) ? stateFromJSON(object.nextState) : 0, - token: isSet(object.token) ? String(object.token) : "", - user: isSet(object.user) ? String(object.user) : "", - }; - }, - - toJSON(message: MessageC2SHello): unknown { - const obj: any = {}; - message.version !== undefined && (obj.version = Math.round(message.version)); - message.requestedUsername !== undefined && (obj.requestedUsername = message.requestedUsername); - message.nextState !== undefined && (obj.nextState = stateToJSON(message.nextState)); - message.token !== undefined && (obj.token = message.token); - message.user !== undefined && (obj.user = message.user); - return obj; - }, - - create, I>>(base?: I): MessageC2SHello { - return MessageC2SHello.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageC2SHello { - const message = createBaseMessageC2SHello(); - message.version = object.version ?? 0; - message.requestedUsername = object.requestedUsername ?? ""; - message.nextState = object.nextState ?? 0; - message.token = object.token ?? ""; - message.user = object.user ?? ""; - return message; - }, -}; - -function createBaseMessageC2SGoodbye(): MessageC2SGoodbye { - return { reason: 0 }; -} - -export const MessageC2SGoodbye = { - encode(message: MessageC2SGoodbye, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.reason !== 0) { - writer.uint32(8).int32(message.reason); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageC2SGoodbye { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageC2SGoodbye(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.reason = reader.int32() as any; - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageC2SGoodbye { - return { reason: isSet(object.reason) ? goodbyeReasonFromJSON(object.reason) : 0 }; - }, - - toJSON(message: MessageC2SGoodbye): unknown { - const obj: any = {}; - message.reason !== undefined && (obj.reason = goodbyeReasonToJSON(message.reason)); - return obj; - }, - - create, I>>(base?: I): MessageC2SGoodbye { - return MessageC2SGoodbye.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageC2SGoodbye { - const message = createBaseMessageC2SGoodbye(); - message.reason = object.reason ?? 0; - return message; - }, -}; - -function createBaseMessageC2SChat(): MessageC2SChat { - return { message: "" }; -} - -export const MessageC2SChat = { - encode(message: MessageC2SChat, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.message !== "") { - writer.uint32(10).string(message.message); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageC2SChat { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageC2SChat(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 10) { - break; - } - - message.message = reader.string(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageC2SChat { - return { message: isSet(object.message) ? String(object.message) : "" }; - }, - - toJSON(message: MessageC2SChat): unknown { - const obj: any = {}; - message.message !== undefined && (obj.message = message.message); - return obj; - }, - - create, I>>(base?: I): MessageC2SChat { - return MessageC2SChat.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageC2SChat { - const message = createBaseMessageC2SChat(); - message.message = object.message ?? ""; - return message; - }, -}; - -function createBaseMessageC2SPing(): MessageC2SPing { - return {}; -} - -export const MessageC2SPing = { - encode(_: MessageC2SPing, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageC2SPing { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageC2SPing(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(_: any): MessageC2SPing { - return {}; - }, - - toJSON(_: MessageC2SPing): unknown { - const obj: any = {}; - return obj; - }, - - create, I>>(base?: I): MessageC2SPing { - return MessageC2SPing.fromPartial(base ?? {}); - }, - - fromPartial, I>>(_: I): MessageC2SPing { - const message = createBaseMessageC2SPing(); - return message; - }, -}; - -function createBaseMessageC2SInput(): MessageC2SInput { - return { upPressed: false, downPressed: false, leftPressed: false, rightPressed: false }; -} - -export const MessageC2SInput = { - encode(message: MessageC2SInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.upPressed === true) { - writer.uint32(8).bool(message.upPressed); - } - if (message.downPressed === true) { - writer.uint32(16).bool(message.downPressed); - } - if (message.leftPressed === true) { - writer.uint32(24).bool(message.leftPressed); - } - if (message.rightPressed === true) { - writer.uint32(32).bool(message.rightPressed); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageC2SInput { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageC2SInput(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.upPressed = reader.bool(); - continue; - case 2: - if (tag != 16) { - break; - } - - message.downPressed = reader.bool(); - continue; - case 3: - if (tag != 24) { - break; - } - - message.leftPressed = reader.bool(); - continue; - case 4: - if (tag != 32) { - break; - } - - message.rightPressed = reader.bool(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageC2SInput { - return { - upPressed: isSet(object.upPressed) ? Boolean(object.upPressed) : false, - downPressed: isSet(object.downPressed) ? Boolean(object.downPressed) : false, - leftPressed: isSet(object.leftPressed) ? Boolean(object.leftPressed) : false, - rightPressed: isSet(object.rightPressed) ? Boolean(object.rightPressed) : false, - }; - }, - - toJSON(message: MessageC2SInput): unknown { - const obj: any = {}; - message.upPressed !== undefined && (obj.upPressed = message.upPressed); - message.downPressed !== undefined && (obj.downPressed = message.downPressed); - message.leftPressed !== undefined && (obj.leftPressed = message.leftPressed); - message.rightPressed !== undefined && (obj.rightPressed = message.rightPressed); - return obj; - }, - - create, I>>(base?: I): MessageC2SInput { - return MessageC2SInput.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageC2SInput { - const message = createBaseMessageC2SInput(); - message.upPressed = object.upPressed ?? false; - message.downPressed = object.downPressed ?? false; - message.leftPressed = object.leftPressed ?? false; - message.rightPressed = object.rightPressed ?? false; - return message; - }, -}; - -function createBaseMessageC2SAuthenticateAndBeamOut(): MessageC2SAuthenticateAndBeamOut { - return { userId: "", token: "" }; -} - -export const MessageC2SAuthenticateAndBeamOut = { - encode(message: MessageC2SAuthenticateAndBeamOut, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.userId !== "") { - writer.uint32(10).string(message.userId); - } - if (message.token !== "") { - writer.uint32(18).string(message.token); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageC2SAuthenticateAndBeamOut { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageC2SAuthenticateAndBeamOut(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 10) { - break; - } - - message.userId = reader.string(); - continue; - case 2: - if (tag != 18) { - break; - } - - message.token = reader.string(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageC2SAuthenticateAndBeamOut { - return { - userId: isSet(object.userId) ? String(object.userId) : "", - token: isSet(object.token) ? String(object.token) : "", - }; - }, - - toJSON(message: MessageC2SAuthenticateAndBeamOut): unknown { - const obj: any = {}; - message.userId !== undefined && (obj.userId = message.userId); - message.token !== undefined && (obj.token = message.token); - return obj; - }, - - create, I>>( - base?: I, - ): MessageC2SAuthenticateAndBeamOut { - return MessageC2SAuthenticateAndBeamOut.fromPartial(base ?? {}); - }, - - fromPartial, I>>( - object: I, - ): MessageC2SAuthenticateAndBeamOut { - const message = createBaseMessageC2SAuthenticateAndBeamOut(); - message.userId = object.userId ?? ""; - message.token = object.token ?? ""; - return message; - }, -}; - -function createBaseMessageC2SMouseInput(): MessageC2SMouseInput { - return { worldposX: 0, worldposY: 0, button: 0, released: false }; -} - -export const MessageC2SMouseInput = { - encode(message: MessageC2SMouseInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.worldposX !== 0) { - writer.uint32(9).double(message.worldposX); - } - if (message.worldposY !== 0) { - writer.uint32(17).double(message.worldposY); - } - if (message.button !== 0) { - writer.uint32(24).int32(message.button); - } - if (message.released === true) { - writer.uint32(32).bool(message.released); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageC2SMouseInput { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageC2SMouseInput(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 9) { - break; - } - - message.worldposX = reader.double(); - continue; - case 2: - if (tag != 17) { - break; - } - - message.worldposY = reader.double(); - continue; - case 3: - if (tag != 24) { - break; - } - - message.button = reader.int32() as any; - continue; - case 4: - if (tag != 32) { - break; - } - - message.released = reader.bool(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageC2SMouseInput { - return { - worldposX: isSet(object.worldposX) ? Number(object.worldposX) : 0, - worldposY: isSet(object.worldposY) ? Number(object.worldposY) : 0, - button: isSet(object.button) ? inputTypeFromJSON(object.button) : 0, - released: isSet(object.released) ? Boolean(object.released) : false, - }; - }, - - toJSON(message: MessageC2SMouseInput): unknown { - const obj: any = {}; - message.worldposX !== undefined && (obj.worldposX = message.worldposX); - message.worldposY !== undefined && (obj.worldposY = message.worldposY); - message.button !== undefined && (obj.button = inputTypeToJSON(message.button)); - message.released !== undefined && (obj.released = message.released); - return obj; - }, - - create, I>>(base?: I): MessageC2SMouseInput { - return MessageC2SMouseInput.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageC2SMouseInput { - const message = createBaseMessageC2SMouseInput(); - message.worldposX = object.worldposX ?? 0; - message.worldposY = object.worldposY ?? 0; - message.button = object.button ?? 0; - message.released = object.released ?? false; - return message; - }, -}; - -function createBaseMessageC2SModuleGrabBegin(): MessageC2SModuleGrabBegin { - return { moduleId: 0, worldposX: 0, worldposY: 0 }; -} - -export const MessageC2SModuleGrabBegin = { - encode(message: MessageC2SModuleGrabBegin, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.moduleId !== 0) { - writer.uint32(8).uint32(message.moduleId); - } - if (message.worldposX !== 0) { - writer.uint32(17).double(message.worldposX); - } - if (message.worldposY !== 0) { - writer.uint32(25).double(message.worldposY); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageC2SModuleGrabBegin { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageC2SModuleGrabBegin(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.moduleId = reader.uint32(); - continue; - case 2: - if (tag != 17) { - break; - } - - message.worldposX = reader.double(); - continue; - case 3: - if (tag != 25) { - break; - } - - message.worldposY = reader.double(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageC2SModuleGrabBegin { - return { - moduleId: isSet(object.moduleId) ? Number(object.moduleId) : 0, - worldposX: isSet(object.worldposX) ? Number(object.worldposX) : 0, - worldposY: isSet(object.worldposY) ? Number(object.worldposY) : 0, - }; - }, - - toJSON(message: MessageC2SModuleGrabBegin): unknown { - const obj: any = {}; - message.moduleId !== undefined && (obj.moduleId = Math.round(message.moduleId)); - message.worldposX !== undefined && (obj.worldposX = message.worldposX); - message.worldposY !== undefined && (obj.worldposY = message.worldposY); - return obj; - }, - - create, I>>(base?: I): MessageC2SModuleGrabBegin { - return MessageC2SModuleGrabBegin.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageC2SModuleGrabBegin { - const message = createBaseMessageC2SModuleGrabBegin(); - message.moduleId = object.moduleId ?? 0; - message.worldposX = object.worldposX ?? 0; - message.worldposY = object.worldposY ?? 0; - return message; - }, -}; - -function createBaseMessageC2SModuleGrabEnd(): MessageC2SModuleGrabEnd { - return { moduleId: 0, worldposX: 0, worldposY: 0 }; -} - -export const MessageC2SModuleGrabEnd = { - encode(message: MessageC2SModuleGrabEnd, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.moduleId !== 0) { - writer.uint32(8).uint32(message.moduleId); - } - if (message.worldposX !== 0) { - writer.uint32(17).double(message.worldposX); - } - if (message.worldposY !== 0) { - writer.uint32(25).double(message.worldposY); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageC2SModuleGrabEnd { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageC2SModuleGrabEnd(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.moduleId = reader.uint32(); - continue; - case 2: - if (tag != 17) { - break; - } - - message.worldposX = reader.double(); - continue; - case 3: - if (tag != 25) { - break; - } - - message.worldposY = reader.double(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageC2SModuleGrabEnd { - return { - moduleId: isSet(object.moduleId) ? Number(object.moduleId) : 0, - worldposX: isSet(object.worldposX) ? Number(object.worldposX) : 0, - worldposY: isSet(object.worldposY) ? Number(object.worldposY) : 0, - }; - }, - - toJSON(message: MessageC2SModuleGrabEnd): unknown { - const obj: any = {}; - message.moduleId !== undefined && (obj.moduleId = Math.round(message.moduleId)); - message.worldposX !== undefined && (obj.worldposX = message.worldposX); - message.worldposY !== undefined && (obj.worldposY = message.worldposY); - return obj; - }, - - create, I>>(base?: I): MessageC2SModuleGrabEnd { - return MessageC2SModuleGrabEnd.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageC2SModuleGrabEnd { - const message = createBaseMessageC2SModuleGrabEnd(); - message.moduleId = object.moduleId ?? 0; - message.worldposX = object.worldposX ?? 0; - message.worldposY = object.worldposY ?? 0; - return message; - }, -}; - -function createBaseMessageC2SModuleDetach(): MessageC2SModuleDetach { - return { moduleId: 0 }; -} - -export const MessageC2SModuleDetach = { - encode(message: MessageC2SModuleDetach, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.moduleId !== 0) { - writer.uint32(8).uint32(message.moduleId); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageC2SModuleDetach { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageC2SModuleDetach(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.moduleId = reader.uint32(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageC2SModuleDetach { - return { moduleId: isSet(object.moduleId) ? Number(object.moduleId) : 0 }; - }, - - toJSON(message: MessageC2SModuleDetach): unknown { - const obj: any = {}; - message.moduleId !== undefined && (obj.moduleId = Math.round(message.moduleId)); - return obj; - }, - - create, I>>(base?: I): MessageC2SModuleDetach { - return MessageC2SModuleDetach.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageC2SModuleDetach { - const message = createBaseMessageC2SModuleDetach(); - message.moduleId = object.moduleId ?? 0; - return message; - }, -}; - -type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; - -export type DeepPartial = T extends Builtin ? T - : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> - : T extends {} ? { [K in keyof T]?: DeepPartial } - : Partial; - -type KeysOfUnion = T extends T ? keyof T : never; -export type Exact = P extends Builtin ? P - : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; - -function isSet(value: any): boolean { - return value !== null && value !== undefined; -} diff --git a/client/src/protocol/message_s2c.ts b/client/src/protocol/message_s2c.ts deleted file mode 100644 index 1c20c8ff6f3a0721e6b9086a72d3180abfe0ba59..0000000000000000000000000000000000000000 --- a/client/src/protocol/message_s2c.ts +++ /dev/null @@ -1,1015 +0,0 @@ -//@ts-nocheck -import * as _m0 from "protobufjs/minimal"; -import { GoodbyeReason, goodbyeReasonFromJSON, goodbyeReasonToJSON } from "./goodbye_reason"; -import { AttachedModule, Module } from "./module"; -import { Planet } from "./planet"; -import { Player } from "./player"; -import { State, stateFromJSON, stateToJSON } from "./state"; - -export const protobufPackage = "protocol.message_s2c"; - -export interface MessageS2CHello { - /** The version of the protocol in use. Currently always 1. */ - version: number; - /** The username actually assigned to the player */ - givenUsername: string; - /** The state to switch the game into */ - nextState: State; -} - -export enum MessageS2CHello_packetInfo { - unknown = 0, - type = 5, - UNRECOGNIZED = -1, -} - -export function messageS2CHello_packetInfoFromJSON(object: any): MessageS2CHello_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageS2CHello_packetInfo.unknown; - case 5: - case "type": - return MessageS2CHello_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageS2CHello_packetInfo.UNRECOGNIZED; - } -} - -export function messageS2CHello_packetInfoToJSON(object: MessageS2CHello_packetInfo): string { - switch (object) { - case MessageS2CHello_packetInfo.unknown: - return "unknown"; - case MessageS2CHello_packetInfo.type: - return "type"; - case MessageS2CHello_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageS2CGoodbye { - /** The reason for the disconnect */ - reason: GoodbyeReason; -} - -export enum MessageS2CGoodbye_packetInfo { - unknown = 0, - type = 6, - UNRECOGNIZED = -1, -} - -export function messageS2CGoodbye_packetInfoFromJSON(object: any): MessageS2CGoodbye_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageS2CGoodbye_packetInfo.unknown; - case 6: - case "type": - return MessageS2CGoodbye_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageS2CGoodbye_packetInfo.UNRECOGNIZED; - } -} - -export function messageS2CGoodbye_packetInfoToJSON(object: MessageS2CGoodbye_packetInfo): string { - switch (object) { - case MessageS2CGoodbye_packetInfo.unknown: - return "unknown"; - case MessageS2CGoodbye_packetInfo.type: - return "type"; - case MessageS2CGoodbye_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageS2CChat { - /** The username of the player who sent the message */ - from: string; - /** The contents of the chat message */ - message: string; -} - -export enum MessageS2CChat_packetInfo { - unknown = 0, - type = 7, - UNRECOGNIZED = -1, -} - -export function messageS2CChat_packetInfoFromJSON(object: any): MessageS2CChat_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageS2CChat_packetInfo.unknown; - case 7: - case "type": - return MessageS2CChat_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageS2CChat_packetInfo.UNRECOGNIZED; - } -} - -export function messageS2CChat_packetInfoToJSON(object: MessageS2CChat_packetInfo): string { - switch (object) { - case MessageS2CChat_packetInfo.unknown: - return "unknown"; - case MessageS2CChat_packetInfo.type: - return "type"; - case MessageS2CChat_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageS2CPong { -} - -export enum MessageS2CPong_packetInfo { - unknown = 0, - type = 8, - UNRECOGNIZED = -1, -} - -export function messageS2CPong_packetInfoFromJSON(object: any): MessageS2CPong_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageS2CPong_packetInfo.unknown; - case 8: - case "type": - return MessageS2CPong_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageS2CPong_packetInfo.UNRECOGNIZED; - } -} - -export function messageS2CPong_packetInfoToJSON(object: MessageS2CPong_packetInfo): string { - switch (object) { - case MessageS2CPong_packetInfo.unknown: - return "unknown"; - case MessageS2CPong_packetInfo.type: - return "type"; - case MessageS2CPong_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageS2CPlayersUpdate { - /** List of all players in the server */ - players: Player[]; -} - -export enum MessageS2CPlayersUpdate_packetInfo { - unknown = 0, - type = 9, - UNRECOGNIZED = -1, -} - -export function messageS2CPlayersUpdate_packetInfoFromJSON(object: any): MessageS2CPlayersUpdate_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageS2CPlayersUpdate_packetInfo.unknown; - case 9: - case "type": - return MessageS2CPlayersUpdate_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageS2CPlayersUpdate_packetInfo.UNRECOGNIZED; - } -} - -export function messageS2CPlayersUpdate_packetInfoToJSON(object: MessageS2CPlayersUpdate_packetInfo): string { - switch (object) { - case MessageS2CPlayersUpdate_packetInfo.unknown: - return "unknown"; - case MessageS2CPlayersUpdate_packetInfo.type: - return "type"; - case MessageS2CPlayersUpdate_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageS2CPlanetData { - /** List of all planets on the server */ - planets: Planet[]; -} - -export enum MessageS2CPlanetData_packetInfo { - unknown = 0, - type = 10, - UNRECOGNIZED = -1, -} - -export function messageS2CPlanetData_packetInfoFromJSON(object: any): MessageS2CPlanetData_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageS2CPlanetData_packetInfo.unknown; - case 10: - case "type": - return MessageS2CPlanetData_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageS2CPlanetData_packetInfo.UNRECOGNIZED; - } -} - -export function messageS2CPlanetData_packetInfoToJSON(object: MessageS2CPlanetData_packetInfo): string { - switch (object) { - case MessageS2CPlanetData_packetInfo.unknown: - return "unknown"; - case MessageS2CPlanetData_packetInfo.type: - return "type"; - case MessageS2CPlanetData_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageS2CModulesUpdate { - modules: Module[]; -} - -export enum MessageS2CModulesUpdate_packetInfo { - unknown = 0, - type = 11, - UNRECOGNIZED = -1, -} - -export function messageS2CModulesUpdate_packetInfoFromJSON(object: any): MessageS2CModulesUpdate_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageS2CModulesUpdate_packetInfo.unknown; - case 11: - case "type": - return MessageS2CModulesUpdate_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageS2CModulesUpdate_packetInfo.UNRECOGNIZED; - } -} - -export function messageS2CModulesUpdate_packetInfoToJSON(object: MessageS2CModulesUpdate_packetInfo): string { - switch (object) { - case MessageS2CModulesUpdate_packetInfo.unknown: - return "unknown"; - case MessageS2CModulesUpdate_packetInfo.type: - return "type"; - case MessageS2CModulesUpdate_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageS2CModuleTreeUpdate { - tree: AttachedModule[]; -} - -export enum MessageS2CModuleTreeUpdate_packetInfo { - unknown = 0, - type = 12, - UNRECOGNIZED = -1, -} - -export function messageS2CModuleTreeUpdate_packetInfoFromJSON(object: any): MessageS2CModuleTreeUpdate_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageS2CModuleTreeUpdate_packetInfo.unknown; - case 12: - case "type": - return MessageS2CModuleTreeUpdate_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageS2CModuleTreeUpdate_packetInfo.UNRECOGNIZED; - } -} - -export function messageS2CModuleTreeUpdate_packetInfoToJSON(object: MessageS2CModuleTreeUpdate_packetInfo): string { - switch (object) { - case MessageS2CModuleTreeUpdate_packetInfo.unknown: - return "unknown"; - case MessageS2CModuleTreeUpdate_packetInfo.type: - return "type"; - case MessageS2CModuleTreeUpdate_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageS2CModuleAdd { - module: AttachedModule | undefined; -} - -export enum MessageS2CModuleAdd_packetInfo { - unknown = 0, - type = 13, - UNRECOGNIZED = -1, -} - -export function messageS2CModuleAdd_packetInfoFromJSON(object: any): MessageS2CModuleAdd_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageS2CModuleAdd_packetInfo.unknown; - case 13: - case "type": - return MessageS2CModuleAdd_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageS2CModuleAdd_packetInfo.UNRECOGNIZED; - } -} - -export function messageS2CModuleAdd_packetInfoToJSON(object: MessageS2CModuleAdd_packetInfo): string { - switch (object) { - case MessageS2CModuleAdd_packetInfo.unknown: - return "unknown"; - case MessageS2CModuleAdd_packetInfo.type: - return "type"; - case MessageS2CModuleAdd_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface MessageS2CModuleRemove { - module: Module | undefined; -} - -export enum MessageS2CModuleRemove_packetInfo { - unknown = 0, - type = 14, - UNRECOGNIZED = -1, -} - -export function messageS2CModuleRemove_packetInfoFromJSON(object: any): MessageS2CModuleRemove_packetInfo { - switch (object) { - case 0: - case "unknown": - return MessageS2CModuleRemove_packetInfo.unknown; - case 14: - case "type": - return MessageS2CModuleRemove_packetInfo.type; - case -1: - case "UNRECOGNIZED": - default: - return MessageS2CModuleRemove_packetInfo.UNRECOGNIZED; - } -} - -export function messageS2CModuleRemove_packetInfoToJSON(object: MessageS2CModuleRemove_packetInfo): string { - switch (object) { - case MessageS2CModuleRemove_packetInfo.unknown: - return "unknown"; - case MessageS2CModuleRemove_packetInfo.type: - return "type"; - case MessageS2CModuleRemove_packetInfo.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -function createBaseMessageS2CHello(): MessageS2CHello { - return { version: 0, givenUsername: "", nextState: 0 }; -} - -export const MessageS2CHello = { - encode(message: MessageS2CHello, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.version !== 0) { - writer.uint32(8).uint32(message.version); - } - if (message.givenUsername !== "") { - writer.uint32(18).string(message.givenUsername); - } - if (message.nextState !== 0) { - writer.uint32(24).int32(message.nextState); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageS2CHello { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageS2CHello(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.version = reader.uint32(); - continue; - case 2: - if (tag != 18) { - break; - } - - message.givenUsername = reader.string(); - continue; - case 3: - if (tag != 24) { - break; - } - - message.nextState = reader.int32() as any; - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageS2CHello { - return { - version: isSet(object.version) ? Number(object.version) : 0, - givenUsername: isSet(object.givenUsername) ? String(object.givenUsername) : "", - nextState: isSet(object.nextState) ? stateFromJSON(object.nextState) : 0, - }; - }, - - toJSON(message: MessageS2CHello): unknown { - const obj: any = {}; - message.version !== undefined && (obj.version = Math.round(message.version)); - message.givenUsername !== undefined && (obj.givenUsername = message.givenUsername); - message.nextState !== undefined && (obj.nextState = stateToJSON(message.nextState)); - return obj; - }, - - create, I>>(base?: I): MessageS2CHello { - return MessageS2CHello.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageS2CHello { - const message = createBaseMessageS2CHello(); - message.version = object.version ?? 0; - message.givenUsername = object.givenUsername ?? ""; - message.nextState = object.nextState ?? 0; - return message; - }, -}; - -function createBaseMessageS2CGoodbye(): MessageS2CGoodbye { - return { reason: 0 }; -} - -export const MessageS2CGoodbye = { - encode(message: MessageS2CGoodbye, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.reason !== 0) { - writer.uint32(8).int32(message.reason); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageS2CGoodbye { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageS2CGoodbye(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.reason = reader.int32() as any; - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageS2CGoodbye { - return { reason: isSet(object.reason) ? goodbyeReasonFromJSON(object.reason) : 0 }; - }, - - toJSON(message: MessageS2CGoodbye): unknown { - const obj: any = {}; - message.reason !== undefined && (obj.reason = goodbyeReasonToJSON(message.reason)); - return obj; - }, - - create, I>>(base?: I): MessageS2CGoodbye { - return MessageS2CGoodbye.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageS2CGoodbye { - const message = createBaseMessageS2CGoodbye(); - message.reason = object.reason ?? 0; - return message; - }, -}; - -function createBaseMessageS2CChat(): MessageS2CChat { - return { from: "", message: "" }; -} - -export const MessageS2CChat = { - encode(message: MessageS2CChat, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.from !== "") { - writer.uint32(10).string(message.from); - } - if (message.message !== "") { - writer.uint32(18).string(message.message); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageS2CChat { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageS2CChat(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 10) { - break; - } - - message.from = reader.string(); - continue; - case 2: - if (tag != 18) { - break; - } - - message.message = reader.string(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageS2CChat { - return { - from: isSet(object.from) ? String(object.from) : "", - message: isSet(object.message) ? String(object.message) : "", - }; - }, - - toJSON(message: MessageS2CChat): unknown { - const obj: any = {}; - message.from !== undefined && (obj.from = message.from); - message.message !== undefined && (obj.message = message.message); - return obj; - }, - - create, I>>(base?: I): MessageS2CChat { - return MessageS2CChat.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageS2CChat { - const message = createBaseMessageS2CChat(); - message.from = object.from ?? ""; - message.message = object.message ?? ""; - return message; - }, -}; - -function createBaseMessageS2CPong(): MessageS2CPong { - return {}; -} - -export const MessageS2CPong = { - encode(_: MessageS2CPong, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageS2CPong { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageS2CPong(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(_: any): MessageS2CPong { - return {}; - }, - - toJSON(_: MessageS2CPong): unknown { - const obj: any = {}; - return obj; - }, - - create, I>>(base?: I): MessageS2CPong { - return MessageS2CPong.fromPartial(base ?? {}); - }, - - fromPartial, I>>(_: I): MessageS2CPong { - const message = createBaseMessageS2CPong(); - return message; - }, -}; - -function createBaseMessageS2CPlayersUpdate(): MessageS2CPlayersUpdate { - return { players: [] }; -} - -export const MessageS2CPlayersUpdate = { - encode(message: MessageS2CPlayersUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.players) { - Player.encode(v!, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageS2CPlayersUpdate { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageS2CPlayersUpdate(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 10) { - break; - } - - message.players.push(Player.decode(reader, reader.uint32())); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageS2CPlayersUpdate { - return { players: Array.isArray(object?.players) ? object.players.map((e: any) => Player.fromJSON(e)) : [] }; - }, - - toJSON(message: MessageS2CPlayersUpdate): unknown { - const obj: any = {}; - if (message.players) { - obj.players = message.players.map((e) => e ? Player.toJSON(e) : undefined); - } else { - obj.players = []; - } - return obj; - }, - - create, I>>(base?: I): MessageS2CPlayersUpdate { - return MessageS2CPlayersUpdate.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageS2CPlayersUpdate { - const message = createBaseMessageS2CPlayersUpdate(); - message.players = object.players?.map((e) => Player.fromPartial(e)) || []; - return message; - }, -}; - -function createBaseMessageS2CPlanetData(): MessageS2CPlanetData { - return { planets: [] }; -} - -export const MessageS2CPlanetData = { - encode(message: MessageS2CPlanetData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.planets) { - Planet.encode(v!, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageS2CPlanetData { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageS2CPlanetData(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 10) { - break; - } - - message.planets.push(Planet.decode(reader, reader.uint32())); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageS2CPlanetData { - return { planets: Array.isArray(object?.planets) ? object.planets.map((e: any) => Planet.fromJSON(e)) : [] }; - }, - - toJSON(message: MessageS2CPlanetData): unknown { - const obj: any = {}; - if (message.planets) { - obj.planets = message.planets.map((e) => e ? Planet.toJSON(e) : undefined); - } else { - obj.planets = []; - } - return obj; - }, - - create, I>>(base?: I): MessageS2CPlanetData { - return MessageS2CPlanetData.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageS2CPlanetData { - const message = createBaseMessageS2CPlanetData(); - message.planets = object.planets?.map((e) => Planet.fromPartial(e)) || []; - return message; - }, -}; - -function createBaseMessageS2CModulesUpdate(): MessageS2CModulesUpdate { - return { modules: [] }; -} - -export const MessageS2CModulesUpdate = { - encode(message: MessageS2CModulesUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.modules) { - Module.encode(v!, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageS2CModulesUpdate { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageS2CModulesUpdate(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 10) { - break; - } - - message.modules.push(Module.decode(reader, reader.uint32())); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageS2CModulesUpdate { - return { modules: Array.isArray(object?.modules) ? object.modules.map((e: any) => Module.fromJSON(e)) : [] }; - }, - - toJSON(message: MessageS2CModulesUpdate): unknown { - const obj: any = {}; - if (message.modules) { - obj.modules = message.modules.map((e) => e ? Module.toJSON(e) : undefined); - } else { - obj.modules = []; - } - return obj; - }, - - create, I>>(base?: I): MessageS2CModulesUpdate { - return MessageS2CModulesUpdate.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageS2CModulesUpdate { - const message = createBaseMessageS2CModulesUpdate(); - message.modules = object.modules?.map((e) => Module.fromPartial(e)) || []; - return message; - }, -}; - -function createBaseMessageS2CModuleTreeUpdate(): MessageS2CModuleTreeUpdate { - return { tree: [] }; -} - -export const MessageS2CModuleTreeUpdate = { - encode(message: MessageS2CModuleTreeUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.tree) { - AttachedModule.encode(v!, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageS2CModuleTreeUpdate { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageS2CModuleTreeUpdate(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 10) { - break; - } - - message.tree.push(AttachedModule.decode(reader, reader.uint32())); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageS2CModuleTreeUpdate { - return { tree: Array.isArray(object?.tree) ? object.tree.map((e: any) => AttachedModule.fromJSON(e)) : [] }; - }, - - toJSON(message: MessageS2CModuleTreeUpdate): unknown { - const obj: any = {}; - if (message.tree) { - obj.tree = message.tree.map((e) => e ? AttachedModule.toJSON(e) : undefined); - } else { - obj.tree = []; - } - return obj; - }, - - create, I>>(base?: I): MessageS2CModuleTreeUpdate { - return MessageS2CModuleTreeUpdate.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageS2CModuleTreeUpdate { - const message = createBaseMessageS2CModuleTreeUpdate(); - message.tree = object.tree?.map((e) => AttachedModule.fromPartial(e)) || []; - return message; - }, -}; - -function createBaseMessageS2CModuleAdd(): MessageS2CModuleAdd { - return { module: undefined }; -} - -export const MessageS2CModuleAdd = { - encode(message: MessageS2CModuleAdd, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.module !== undefined) { - AttachedModule.encode(message.module, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageS2CModuleAdd { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageS2CModuleAdd(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 10) { - break; - } - - message.module = AttachedModule.decode(reader, reader.uint32()); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageS2CModuleAdd { - return { module: isSet(object.module) ? AttachedModule.fromJSON(object.module) : undefined }; - }, - - toJSON(message: MessageS2CModuleAdd): unknown { - const obj: any = {}; - message.module !== undefined && (obj.module = message.module ? AttachedModule.toJSON(message.module) : undefined); - return obj; - }, - - create, I>>(base?: I): MessageS2CModuleAdd { - return MessageS2CModuleAdd.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageS2CModuleAdd { - const message = createBaseMessageS2CModuleAdd(); - message.module = (object.module !== undefined && object.module !== null) - ? AttachedModule.fromPartial(object.module) - : undefined; - return message; - }, -}; - -function createBaseMessageS2CModuleRemove(): MessageS2CModuleRemove { - return { module: undefined }; -} - -export const MessageS2CModuleRemove = { - encode(message: MessageS2CModuleRemove, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.module !== undefined) { - Module.encode(message.module, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MessageS2CModuleRemove { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMessageS2CModuleRemove(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 10) { - break; - } - - message.module = Module.decode(reader, reader.uint32()); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): MessageS2CModuleRemove { - return { module: isSet(object.module) ? Module.fromJSON(object.module) : undefined }; - }, - - toJSON(message: MessageS2CModuleRemove): unknown { - const obj: any = {}; - message.module !== undefined && (obj.module = message.module ? Module.toJSON(message.module) : undefined); - return obj; - }, - - create, I>>(base?: I): MessageS2CModuleRemove { - return MessageS2CModuleRemove.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): MessageS2CModuleRemove { - const message = createBaseMessageS2CModuleRemove(); - message.module = (object.module !== undefined && object.module !== null) - ? Module.fromPartial(object.module) - : undefined; - return message; - }, -}; - -type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; - -export type DeepPartial = T extends Builtin ? T - : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> - : T extends {} ? { [K in keyof T]?: DeepPartial } - : Partial; - -type KeysOfUnion = T extends T ? keyof T : never; -export type Exact = P extends Builtin ? P - : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; - -function isSet(value: any): boolean { - return value !== null && value !== undefined; -} diff --git a/client/src/protocol/module.ts b/client/src/protocol/module.ts deleted file mode 100644 index c514298b337d30cd96a3997fd117abc7fc091883..0000000000000000000000000000000000000000 --- a/client/src/protocol/module.ts +++ /dev/null @@ -1,429 +0,0 @@ -//@ts-nocheck -import * as _m0 from "protobufjs/minimal"; - -export const protobufPackage = "protocol.module"; - -export enum ModuleType { - UNKNOWN = 0, - Cargo = 1, - LandingThruster = 2, - LandingThrusterSuspension = 3, - Hub = 4, - UNRECOGNIZED = -1, -} - -export function moduleTypeFromJSON(object: any): ModuleType { - switch (object) { - case 0: - case "UNKNOWN": - return ModuleType.UNKNOWN; - case 1: - case "Cargo": - return ModuleType.Cargo; - case 2: - case "LandingThruster": - return ModuleType.LandingThruster; - case 3: - case "LandingThrusterSuspension": - return ModuleType.LandingThrusterSuspension; - case 4: - case "Hub": - return ModuleType.Hub; - case -1: - case "UNRECOGNIZED": - default: - return ModuleType.UNRECOGNIZED; - } -} - -export function moduleTypeToJSON(object: ModuleType): string { - switch (object) { - case ModuleType.UNKNOWN: - return "UNKNOWN"; - case ModuleType.Cargo: - return "Cargo"; - case ModuleType.LandingThruster: - return "LandingThruster"; - case ModuleType.LandingThrusterSuspension: - return "LandingThrusterSuspension"; - case ModuleType.Hub: - return "Hub"; - case ModuleType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface Module { - moduleType: ModuleType; - rotation: number; - x: number; - y: number; - id: number; - flags: number; - children: Attachment[]; -} - -export interface AttachedModule { - moduleType: ModuleType; - rotation: number; - x: number; - y: number; - id: number; - children: Attachment[]; -} - -export interface Attachment { - id: number; - slot: number; -} - -function createBaseModule(): Module { - return { moduleType: 0, rotation: 0, x: 0, y: 0, id: 0, flags: 0, children: [] }; -} - -export const Module = { - encode(message: Module, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.moduleType !== 0) { - writer.uint32(8).int32(message.moduleType); - } - if (message.rotation !== 0) { - writer.uint32(17).double(message.rotation); - } - if (message.x !== 0) { - writer.uint32(25).double(message.x); - } - if (message.y !== 0) { - writer.uint32(33).double(message.y); - } - if (message.id !== 0) { - writer.uint32(40).uint32(message.id); - } - if (message.flags !== 0) { - writer.uint32(48).uint32(message.flags); - } - for (const v of message.children) { - Attachment.encode(v!, writer.uint32(58).fork()).ldelim(); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Module { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModule(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.moduleType = reader.int32() as any; - continue; - case 2: - if (tag != 17) { - break; - } - - message.rotation = reader.double(); - continue; - case 3: - if (tag != 25) { - break; - } - - message.x = reader.double(); - continue; - case 4: - if (tag != 33) { - break; - } - - message.y = reader.double(); - continue; - case 5: - if (tag != 40) { - break; - } - - message.id = reader.uint32(); - continue; - case 6: - if (tag != 48) { - break; - } - - message.flags = reader.uint32(); - continue; - case 7: - if (tag != 58) { - break; - } - - message.children.push(Attachment.decode(reader, reader.uint32())); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): Module { - return { - moduleType: isSet(object.moduleType) ? moduleTypeFromJSON(object.moduleType) : 0, - rotation: isSet(object.rotation) ? Number(object.rotation) : 0, - x: isSet(object.x) ? Number(object.x) : 0, - y: isSet(object.y) ? Number(object.y) : 0, - id: isSet(object.id) ? Number(object.id) : 0, - flags: isSet(object.flags) ? Number(object.flags) : 0, - children: Array.isArray(object?.children) ? object.children.map((e: any) => Attachment.fromJSON(e)) : [], - }; - }, - - toJSON(message: Module): unknown { - const obj: any = {}; - message.moduleType !== undefined && (obj.moduleType = moduleTypeToJSON(message.moduleType)); - message.rotation !== undefined && (obj.rotation = message.rotation); - message.x !== undefined && (obj.x = message.x); - message.y !== undefined && (obj.y = message.y); - message.id !== undefined && (obj.id = Math.round(message.id)); - message.flags !== undefined && (obj.flags = Math.round(message.flags)); - if (message.children) { - obj.children = message.children.map((e) => e ? Attachment.toJSON(e) : undefined); - } else { - obj.children = []; - } - return obj; - }, - - create, I>>(base?: I): Module { - return Module.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): Module { - const message = createBaseModule(); - message.moduleType = object.moduleType ?? 0; - message.rotation = object.rotation ?? 0; - message.x = object.x ?? 0; - message.y = object.y ?? 0; - message.id = object.id ?? 0; - message.flags = object.flags ?? 0; - message.children = object.children?.map((e) => Attachment.fromPartial(e)) || []; - return message; - }, -}; - -function createBaseAttachedModule(): AttachedModule { - return { moduleType: 0, rotation: 0, x: 0, y: 0, id: 0, children: [] }; -} - -export const AttachedModule = { - encode(message: AttachedModule, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.moduleType !== 0) { - writer.uint32(8).int32(message.moduleType); - } - if (message.rotation !== 0) { - writer.uint32(17).double(message.rotation); - } - if (message.x !== 0) { - writer.uint32(25).double(message.x); - } - if (message.y !== 0) { - writer.uint32(33).double(message.y); - } - if (message.id !== 0) { - writer.uint32(40).uint32(message.id); - } - for (const v of message.children) { - Attachment.encode(v!, writer.uint32(50).fork()).ldelim(); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): AttachedModule { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAttachedModule(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.moduleType = reader.int32() as any; - continue; - case 2: - if (tag != 17) { - break; - } - - message.rotation = reader.double(); - continue; - case 3: - if (tag != 25) { - break; - } - - message.x = reader.double(); - continue; - case 4: - if (tag != 33) { - break; - } - - message.y = reader.double(); - continue; - case 5: - if (tag != 40) { - break; - } - - message.id = reader.uint32(); - continue; - case 6: - if (tag != 50) { - break; - } - - message.children.push(Attachment.decode(reader, reader.uint32())); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): AttachedModule { - return { - moduleType: isSet(object.moduleType) ? moduleTypeFromJSON(object.moduleType) : 0, - rotation: isSet(object.rotation) ? Number(object.rotation) : 0, - x: isSet(object.x) ? Number(object.x) : 0, - y: isSet(object.y) ? Number(object.y) : 0, - id: isSet(object.id) ? Number(object.id) : 0, - children: Array.isArray(object?.children) ? object.children.map((e: any) => Attachment.fromJSON(e)) : [], - }; - }, - - toJSON(message: AttachedModule): unknown { - const obj: any = {}; - message.moduleType !== undefined && (obj.moduleType = moduleTypeToJSON(message.moduleType)); - message.rotation !== undefined && (obj.rotation = message.rotation); - message.x !== undefined && (obj.x = message.x); - message.y !== undefined && (obj.y = message.y); - message.id !== undefined && (obj.id = Math.round(message.id)); - if (message.children) { - obj.children = message.children.map((e) => e ? Attachment.toJSON(e) : undefined); - } else { - obj.children = []; - } - return obj; - }, - - create, I>>(base?: I): AttachedModule { - return AttachedModule.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): AttachedModule { - const message = createBaseAttachedModule(); - message.moduleType = object.moduleType ?? 0; - message.rotation = object.rotation ?? 0; - message.x = object.x ?? 0; - message.y = object.y ?? 0; - message.id = object.id ?? 0; - message.children = object.children?.map((e) => Attachment.fromPartial(e)) || []; - return message; - }, -}; - -function createBaseAttachment(): Attachment { - return { id: 0, slot: 0 }; -} - -export const Attachment = { - encode(message: Attachment, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); - } - if (message.slot !== 0) { - writer.uint32(16).uint32(message.slot); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Attachment { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAttachment(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.id = reader.uint32(); - continue; - case 2: - if (tag != 16) { - break; - } - - message.slot = reader.uint32(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): Attachment { - return { id: isSet(object.id) ? Number(object.id) : 0, slot: isSet(object.slot) ? Number(object.slot) : 0 }; - }, - - toJSON(message: Attachment): unknown { - const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); - message.slot !== undefined && (obj.slot = Math.round(message.slot)); - return obj; - }, - - create, I>>(base?: I): Attachment { - return Attachment.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): Attachment { - const message = createBaseAttachment(); - message.id = object.id ?? 0; - message.slot = object.slot ?? 0; - return message; - }, -}; - -type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; - -export type DeepPartial = T extends Builtin ? T - : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> - : T extends {} ? { [K in keyof T]?: DeepPartial } - : Partial; - -type KeysOfUnion = T extends T ? keyof T : never; -export type Exact = P extends Builtin ? P - : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; - -function isSet(value: any): boolean { - return value !== null && value !== undefined; -} diff --git a/client/src/protocol/planet.ts b/client/src/protocol/planet.ts deleted file mode 100644 index 45c5f06feaa4dcdeb51d4d20437c97a93132b0c0..0000000000000000000000000000000000000000 --- a/client/src/protocol/planet.ts +++ /dev/null @@ -1,172 +0,0 @@ -//@ts-nocheck -import * as _m0 from "protobufjs/minimal"; - -export const protobufPackage = "protocol.planet"; - -export enum PlanetType { - UNKNOWN = 0, - Earth = 1, - Moon = 2, - Mars = 3, - UNRECOGNIZED = -1, -} - -export function planetTypeFromJSON(object: any): PlanetType { - switch (object) { - case 0: - case "UNKNOWN": - return PlanetType.UNKNOWN; - case 1: - case "Earth": - return PlanetType.Earth; - case 2: - case "Moon": - return PlanetType.Moon; - case 3: - case "Mars": - return PlanetType.Mars; - case -1: - case "UNRECOGNIZED": - default: - return PlanetType.UNRECOGNIZED; - } -} - -export function planetTypeToJSON(object: PlanetType): string { - switch (object) { - case PlanetType.UNKNOWN: - return "UNKNOWN"; - case PlanetType.Earth: - return "Earth"; - case PlanetType.Moon: - return "Moon"; - case PlanetType.Mars: - return "Mars"; - case PlanetType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export interface Planet { - /** Type of the planet */ - planetType: PlanetType; - /** Translation on the X axis, in game units */ - x: number; - /** Translation on the Y axis, in game units */ - y: number; - /** The radius of the planet extending out from (x, y) */ - radius: number; -} - -function createBasePlanet(): Planet { - return { planetType: 0, x: 0, y: 0, radius: 0 }; -} - -export const Planet = { - encode(message: Planet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.planetType !== 0) { - writer.uint32(8).int32(message.planetType); - } - if (message.x !== 0) { - writer.uint32(17).double(message.x); - } - if (message.y !== 0) { - writer.uint32(25).double(message.y); - } - if (message.radius !== 0) { - writer.uint32(33).double(message.radius); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Planet { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePlanet(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.planetType = reader.int32() as any; - continue; - case 2: - if (tag != 17) { - break; - } - - message.x = reader.double(); - continue; - case 3: - if (tag != 25) { - break; - } - - message.y = reader.double(); - continue; - case 4: - if (tag != 33) { - break; - } - - message.radius = reader.double(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): Planet { - return { - planetType: isSet(object.planetType) ? planetTypeFromJSON(object.planetType) : 0, - x: isSet(object.x) ? Number(object.x) : 0, - y: isSet(object.y) ? Number(object.y) : 0, - radius: isSet(object.radius) ? Number(object.radius) : 0, - }; - }, - - toJSON(message: Planet): unknown { - const obj: any = {}; - message.planetType !== undefined && (obj.planetType = planetTypeToJSON(message.planetType)); - message.x !== undefined && (obj.x = message.x); - message.y !== undefined && (obj.y = message.y); - message.radius !== undefined && (obj.radius = message.radius); - return obj; - }, - - create, I>>(base?: I): Planet { - return Planet.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): Planet { - const message = createBasePlanet(); - message.planetType = object.planetType ?? 0; - message.x = object.x ?? 0; - message.y = object.y ?? 0; - message.radius = object.radius ?? 0; - return message; - }, -}; - -type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; - -export type DeepPartial = T extends Builtin ? T - : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> - : T extends {} ? { [K in keyof T]?: DeepPartial } - : Partial; - -type KeysOfUnion = T extends T ? keyof T : never; -export type Exact = P extends Builtin ? P - : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; - -function isSet(value: any): boolean { - return value !== null && value !== undefined; -} diff --git a/client/src/protocol/player.ts b/client/src/protocol/player.ts deleted file mode 100644 index 6c8a44c7ed614040698e3ae1f55bd84a68d207b0..0000000000000000000000000000000000000000 --- a/client/src/protocol/player.ts +++ /dev/null @@ -1,127 +0,0 @@ -//@ts-nocheck -import * as _m0 from "protobufjs/minimal"; - -export const protobufPackage = "protocol.player"; - -export interface Player { - /** The rotation, clockwise, in degrees, of the player */ - rotation: number; - /** The translation on the X axis, in game units, of the player */ - x: number; - /** The translation on the Y axis, in game units, of the player */ - y: number; - /** The username of the player */ - username: string; -} - -function createBasePlayer(): Player { - return { rotation: 0, x: 0, y: 0, username: "" }; -} - -export const Player = { - encode(message: Player, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.rotation !== 0) { - writer.uint32(9).double(message.rotation); - } - if (message.x !== 0) { - writer.uint32(17).double(message.x); - } - if (message.y !== 0) { - writer.uint32(25).double(message.y); - } - if (message.username !== "") { - writer.uint32(34).string(message.username); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Player { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePlayer(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 9) { - break; - } - - message.rotation = reader.double(); - continue; - case 2: - if (tag != 17) { - break; - } - - message.x = reader.double(); - continue; - case 3: - if (tag != 25) { - break; - } - - message.y = reader.double(); - continue; - case 4: - if (tag != 34) { - break; - } - - message.username = reader.string(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): Player { - return { - rotation: isSet(object.rotation) ? Number(object.rotation) : 0, - x: isSet(object.x) ? Number(object.x) : 0, - y: isSet(object.y) ? Number(object.y) : 0, - username: isSet(object.username) ? String(object.username) : "", - }; - }, - - toJSON(message: Player): unknown { - const obj: any = {}; - message.rotation !== undefined && (obj.rotation = message.rotation); - message.x !== undefined && (obj.x = message.x); - message.y !== undefined && (obj.y = message.y); - message.username !== undefined && (obj.username = message.username); - return obj; - }, - - create, I>>(base?: I): Player { - return Player.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): Player { - const message = createBasePlayer(); - message.rotation = object.rotation ?? 0; - message.x = object.x ?? 0; - message.y = object.y ?? 0; - message.username = object.username ?? ""; - return message; - }, -}; - -type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; - -export type DeepPartial = T extends Builtin ? T - : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> - : T extends {} ? { [K in keyof T]?: DeepPartial } - : Partial; - -type KeysOfUnion = T extends T ? keyof T : never; -export type Exact = P extends Builtin ? P - : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; - -function isSet(value: any): boolean { - return value !== null && value !== undefined; -} diff --git a/client/src/protocol/starkingdoms-protocol.ts b/client/src/protocol/starkingdoms-protocol.ts deleted file mode 100644 index 5b687a6cb5e63e30fc8f4dbac9a6aafadb2cdbb4..0000000000000000000000000000000000000000 --- a/client/src/protocol/starkingdoms-protocol.ts +++ /dev/null @@ -1,157 +0,0 @@ -//@ts-nocheck -import * as Long from "long"; -import * as _m0 from "protobufjs/minimal"; - -export const protobufPackage = "protocol"; - -export interface PacketWrapper { - /** What is the Packet ID of this packet? */ - packetId: number; - /** Protobuf-encoded bytearray containing the actual packet */ - packetData: Uint8Array; -} - -function createBasePacketWrapper(): PacketWrapper { - return { packetId: 0, packetData: new Uint8Array() }; -} - -export const PacketWrapper = { - encode(message: PacketWrapper, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.packetId !== 0) { - writer.uint32(8).int64(message.packetId); - } - if (message.packetData.length !== 0) { - writer.uint32(18).bytes(message.packetData); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): PacketWrapper { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePacketWrapper(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag != 8) { - break; - } - - message.packetId = longToNumber(reader.int64() as Long); - continue; - case 2: - if (tag != 18) { - break; - } - - message.packetData = reader.bytes(); - continue; - } - if ((tag & 7) == 4 || tag == 0) { - break; - } - reader.skipType(tag & 7); - } - return message; - }, - - fromJSON(object: any): PacketWrapper { - return { - packetId: isSet(object.packetId) ? Number(object.packetId) : 0, - packetData: isSet(object.packetData) ? bytesFromBase64(object.packetData) : new Uint8Array(), - }; - }, - - toJSON(message: PacketWrapper): unknown { - const obj: any = {}; - message.packetId !== undefined && (obj.packetId = Math.round(message.packetId)); - message.packetData !== undefined && - (obj.packetData = base64FromBytes(message.packetData !== undefined ? message.packetData : new Uint8Array())); - return obj; - }, - - create, I>>(base?: I): PacketWrapper { - return PacketWrapper.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): PacketWrapper { - const message = createBasePacketWrapper(); - message.packetId = object.packetId ?? 0; - message.packetData = object.packetData ?? new Uint8Array(); - return message; - }, -}; - -declare var self: any | undefined; -declare var window: any | undefined; -declare var global: any | undefined; -var tsProtoGlobalThis: any = (() => { - if (typeof globalThis !== "undefined") { - return globalThis; - } - if (typeof self !== "undefined") { - return self; - } - if (typeof window !== "undefined") { - return window; - } - if (typeof global !== "undefined") { - return global; - } - throw "Unable to locate global object"; -})(); - -function bytesFromBase64(b64: string): Uint8Array { - if (tsProtoGlobalThis.Buffer) { - return Uint8Array.from(tsProtoGlobalThis.Buffer.from(b64, "base64")); - } else { - const bin = tsProtoGlobalThis.atob(b64); - const arr = new Uint8Array(bin.length); - for (let i = 0; i < bin.length; ++i) { - arr[i] = bin.charCodeAt(i); - } - return arr; - } -} - -function base64FromBytes(arr: Uint8Array): string { - if (tsProtoGlobalThis.Buffer) { - return tsProtoGlobalThis.Buffer.from(arr).toString("base64"); - } else { - const bin: string[] = []; - arr.forEach((byte) => { - bin.push(String.fromCharCode(byte)); - }); - return tsProtoGlobalThis.btoa(bin.join("")); - } -} - -type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; - -export type DeepPartial = T extends Builtin ? T - : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> - : T extends {} ? { [K in keyof T]?: DeepPartial } - : Partial; - -type KeysOfUnion = T extends T ? keyof T : never; -export type Exact = P extends Builtin ? P - : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; - -function longToNumber(long: Long): number { - if (long.gt(Number.MAX_SAFE_INTEGER)) { - throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER"); - } - return long.toNumber(); -} - -// If you get a compile-error about 'Constructor and ... have no overlap', -// add '--ts_proto_opt=esModuleInterop=true' as a flag when calling 'protoc'. -if (_m0.util.Long !== Long) { - _m0.util.Long = Long as any; - _m0.configure(); -} - -function isSet(value: any): boolean { - return value !== null && value !== undefined; -} diff --git a/client/src/protocol/state.ts b/client/src/protocol/state.ts deleted file mode 100644 index 9e2230898c093210b459f57f812a04f0a8ab7734..0000000000000000000000000000000000000000 --- a/client/src/protocol/state.ts +++ /dev/null @@ -1,42 +0,0 @@ -//@ts-nocheck - -export const protobufPackage = "protocol.state"; - -export enum State { - UNKNOWN = 0, - Handshake = 1, - Play = 2, - UNRECOGNIZED = -1, -} - -export function stateFromJSON(object: any): State { - switch (object) { - case 0: - case "UNKNOWN": - return State.UNKNOWN; - case 1: - case "Handshake": - return State.Handshake; - case 2: - case "Play": - return State.Play; - case -1: - case "UNRECOGNIZED": - default: - return State.UNRECOGNIZED; - } -} - -export function stateToJSON(object: State): string { - switch (object) { - case State.UNKNOWN: - return "UNKNOWN"; - case State.Handshake: - return "Handshake"; - case State.Play: - return "Play"; - case State.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} diff --git a/client/src/serde.ts b/client/src/serde.ts deleted file mode 100644 index 0663f44a1a8bcdc94898813a3662c1c7a1e9f410..0000000000000000000000000000000000000000 --- a/client/src/serde.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {PacketWrapper} from "./protocol/starkingdoms-protocol"; - -export function encode(id: number, pktd: Uint8Array): Uint8Array { - let pkt = PacketWrapper.encode({ - packetId: id, - packetData: pktd - }).finish(); - return pkt; -} - -export function decode(pktd: Uint8Array): [number, Uint8Array] { - let pkt = PacketWrapper.decode(pktd); - return [pkt.packetId, pkt.packetData]; -} \ No newline at end of file diff --git a/client/src/vite-env.d.ts b/client/src/vite-env.d.ts deleted file mode 100644 index 11f02fe2a0061d6e6e1f271b21da95423b448b32..0000000000000000000000000000000000000000 --- a/client/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/client/tsconfig.json b/client/tsconfig.json deleted file mode 100644 index eac16d14a6f2e2812f4574497f572ecfd675020b..0000000000000000000000000000000000000000 --- a/client/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "module": "ESNext", - "lib": ["ESNext", "DOM"], - "moduleResolution": "Node", - "strict": true, - "resolveJsonModule": true, - "isolatedModules": true, - "esModuleInterop": true, - "noEmit": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "skipLibCheck": true - }, - "include": ["src"] -} diff --git a/client/vite.config.ts b/client/vite.config.ts deleted file mode 100644 index 0bbcba4ab7d0440030ea28a30ea2bd7f4aadc849..0000000000000000000000000000000000000000 --- a/client/vite.config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { defineConfig } from "vite"; - -export default defineConfig({ - build: { - lib: { - formats: ["es"], - entry: { - play: "play.html", - index: "index.html", - } - }, - commonjsOptions: { include: [] }, - }, - optimizeDeps: { - disabled: false - } -}); diff --git a/client/yarn.lock b/client/yarn.lock deleted file mode 100644 index 98d3a53eb862626836ea3a2be29788e919f5412c..0000000000000000000000000000000000000000 --- a/client/yarn.lock +++ /dev/null @@ -1,379 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@esbuild/android-arm64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.16.tgz#7b18cab5f4d93e878306196eed26b6d960c12576" - integrity sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q== - -"@esbuild/android-arm@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.16.tgz#5c47f6a7c2cada6ed4b4d4e72d8c66e76d812812" - integrity sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw== - -"@esbuild/android-x64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.16.tgz#8686a6e98359071ffd5312046551943e7244c51a" - integrity sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow== - -"@esbuild/darwin-arm64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.16.tgz#aa79fbf447630ca0696a596beba962a775bbf394" - integrity sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA== - -"@esbuild/darwin-x64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.16.tgz#d5d68ee510507104da7e7503224c647c957e163e" - integrity sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ== - -"@esbuild/freebsd-arm64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.16.tgz#b00b4cc8c2e424907cfe3a607384ab24794edd52" - integrity sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA== - -"@esbuild/freebsd-x64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.16.tgz#84af4430a07730b50bbc945a90cf7036c1853b76" - integrity sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g== - -"@esbuild/linux-arm64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.16.tgz#35571d15de6272c862d9ce6341372fb3cef0f266" - integrity sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA== - -"@esbuild/linux-arm@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.16.tgz#b65c7cd5b0eadd08f91aab66b9dda81b6a4b2a70" - integrity sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw== - -"@esbuild/linux-ia32@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.16.tgz#673a68cb251ce44a00a6422ada29064c5a1cd2c0" - integrity sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA== - -"@esbuild/linux-loong64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.16.tgz#477e2da34ab46ffdbf4740fa6441e80045249385" - integrity sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ== - -"@esbuild/linux-mips64el@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.16.tgz#e1e9687bbdaa831d7c34edc9278200982c1a4bf4" - integrity sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA== - -"@esbuild/linux-ppc64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.16.tgz#2f19075d63622987e86e83a4b7866cd57b796c60" - integrity sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q== - -"@esbuild/linux-riscv64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.16.tgz#bbf40a38f03ba2434fe69b5ceeec5d13c742b329" - integrity sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA== - -"@esbuild/linux-s390x@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.16.tgz#d2b8c0779ccd2b7917cdf0fab8831a468e0f9c01" - integrity sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw== - -"@esbuild/linux-x64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.16.tgz#da48b39cfdc1b12a74976625f583f031eac43590" - integrity sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g== - -"@esbuild/netbsd-x64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.16.tgz#ddef985aed37cc81908d2573b66c0299dbc49037" - integrity sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA== - -"@esbuild/openbsd-x64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.16.tgz#85035bf89efd66e9068bc72aa6bb85a2c317d090" - integrity sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew== - -"@esbuild/sunos-x64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.16.tgz#16338ecab854cb2d831cc9ee9cc21ef69566e1f3" - integrity sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag== - -"@esbuild/win32-arm64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.16.tgz#423f46bb744aff897a5f74435469e1ef4952e343" - integrity sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg== - -"@esbuild/win32-ia32@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.16.tgz#1978be5b192c7063bd2c8d5960eb213e1964740e" - integrity sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA== - -"@esbuild/win32-x64@0.17.16": - version "0.17.16" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.16.tgz#260f19b0a3300d22c3a3f52722c671dc561edaa3" - integrity sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg== - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@types/long@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/node@>=13.7.0": - version "18.15.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" - integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== - -"@types/object-hash@^1.3.0": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@types/object-hash/-/object-hash-1.3.4.tgz#079ba142be65833293673254831b5e3e847fe58b" - integrity sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA== - -case-anything@^2.1.10: - version "2.1.10" - resolved "https://registry.yarnpkg.com/case-anything/-/case-anything-2.1.10.tgz#d18a6ca968d54ec3421df71e3e190f3bced23410" - integrity sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ== - -dataloader@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8" - integrity sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -dprint-node@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/dprint-node/-/dprint-node-1.0.7.tgz#f571eaf61affb3a696cff1bdde78a021875ba540" - integrity sha512-NTZOW9A7ipb0n7z7nC3wftvsbceircwVHSgzobJsEQa+7RnOMbhrfX5IflA6CtC4GA63DSAiHYXa4JKEy9F7cA== - dependencies: - detect-libc "^1.0.3" - -esbuild@^0.17.5: - version "0.17.16" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.16.tgz#5efec24a8ff29e0c157359f27e1b5532a728b720" - integrity sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg== - optionalDependencies: - "@esbuild/android-arm" "0.17.16" - "@esbuild/android-arm64" "0.17.16" - "@esbuild/android-x64" "0.17.16" - "@esbuild/darwin-arm64" "0.17.16" - "@esbuild/darwin-x64" "0.17.16" - "@esbuild/freebsd-arm64" "0.17.16" - "@esbuild/freebsd-x64" "0.17.16" - "@esbuild/linux-arm" "0.17.16" - "@esbuild/linux-arm64" "0.17.16" - "@esbuild/linux-ia32" "0.17.16" - "@esbuild/linux-loong64" "0.17.16" - "@esbuild/linux-mips64el" "0.17.16" - "@esbuild/linux-ppc64" "0.17.16" - "@esbuild/linux-riscv64" "0.17.16" - "@esbuild/linux-s390x" "0.17.16" - "@esbuild/linux-x64" "0.17.16" - "@esbuild/netbsd-x64" "0.17.16" - "@esbuild/openbsd-x64" "0.17.16" - "@esbuild/sunos-x64" "0.17.16" - "@esbuild/win32-arm64" "0.17.16" - "@esbuild/win32-ia32" "0.17.16" - "@esbuild/win32-x64" "0.17.16" - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -is-core-module@^2.11.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" - integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== - dependencies: - has "^1.0.3" - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -nanoid@^3.3.4: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - -object-hash@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" - integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -postcss@^8.4.21: - version "8.4.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" - integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -protobufjs@^6.11.3, protobufjs@^6.8.8: - version "6.11.3" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" - integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - -resolve@^1.22.1: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -rollup@^3.18.0: - version "3.20.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.20.2.tgz#f798c600317f216de2e4ad9f4d9ab30a89b690ff" - integrity sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg== - optionalDependencies: - fsevents "~2.3.2" - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -ts-poet@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/ts-poet/-/ts-poet-6.4.1.tgz#e68d314a07cf9c0d568a3bfd87023ec91ff77964" - integrity sha512-AjZEs4h2w4sDfwpHMxQKHrTlNh2wRbM5NRXmLz0RiH+yPGtSQFbe9hBpNocU8vqVNgfh0BIOiXR80xDz3kKxUQ== - dependencies: - dprint-node "^1.0.7" - -ts-proto-descriptors@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/ts-proto-descriptors/-/ts-proto-descriptors-1.8.0.tgz#ba4a26c156a77f76c68d7dac0d049bd2aa3f0920" - integrity sha512-iV20plcI8+GRkeZIAygxOOH0p2xpOsKfw9kI1W20NCwawi1/4bG/YRd9rQY9XSJP+lD9j7XbSy3tFFuikfsljw== - dependencies: - long "^4.0.0" - protobufjs "^6.8.8" - -ts-proto@^1.146.0: - version "1.146.0" - resolved "https://registry.yarnpkg.com/ts-proto/-/ts-proto-1.146.0.tgz#4017c700976d3657009c4e7e741377a4272ffc27" - integrity sha512-OyBZRjmqqw+aatLEUbRooWO6VKTtOLJQyaQFMciigEZPNgTsWtApqHpQDtqDMQFWEXhIARqEV+B7ZJx8cljhZA== - dependencies: - "@types/object-hash" "^1.3.0" - case-anything "^2.1.10" - dataloader "^1.4.0" - object-hash "^1.3.1" - protobufjs "^6.11.3" - ts-poet "^6.4.1" - ts-proto-descriptors "1.8.0" - -typescript@^4.9.3: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -vite@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.2.1.tgz#6c2eb337b0dfd80a9ded5922163b94949d7fc254" - integrity sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg== - dependencies: - esbuild "^0.17.5" - postcss "^8.4.21" - resolve "^1.22.1" - rollup "^3.18.0" - optionalDependencies: - fsevents "~2.3.2" diff --git a/server/Cargo.toml b/server/Cargo.toml index 1b65b12561482fe30512fe6e80b3ae4d9b98df5f..961522a6ed113a3080fa51e24c215757f32dd16b 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -4,9 +4,8 @@ version = "0.0.1" edition = "2021" [dependencies] -bevy = "0.12" -rmp = "^0.8" -rmp-serde = "1.1.2" -serde = "1.0.192" +bevy = { version = "0.12", default-features = false } +serde = { version = "1", features = ["derive"] } +serde_json = "1" bevy_twite = { git = "https://gitlab.com/ghostlyzsh/twite.git" } tracing-subscriber = "0.3" \ No newline at end of file diff --git a/server/src/main.rs b/server/src/main.rs index 51e9d0963de1c4a2371d39ab3e12213347d37516..b69ea37d7fedca41e2de9bc90e1f78fdbde6aada 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -1,25 +1,24 @@ -mod component; -mod packet; - use std::collections::HashMap; -use bevy::{prelude::*, ecs::event::ManualEventReader}; use bevy::utils::tracing; -use bevy_twite::{TwiteServerPlugin, TwiteServerConfig, ServerEvent, twite::frame::MessageType}; +use bevy::{ecs::event::ManualEventReader, prelude::*}; +use bevy_twite::{twite::frame::MessageType, ServerEvent, TwiteServerConfig, TwiteServerPlugin}; use component::*; use packet::*; -use rmp_serde::Serializer; -use serde::Serialize; + +pub mod component; +pub mod packet; fn main() { let subscriber = tracing_subscriber::FmtSubscriber::new(); tracing::subscriber::set_global_default(subscriber).unwrap(); - info!("StarKingdoms server v{} starting up", env!("CARGO_PKG_VERSION")); + info!( + "StarKingdoms server v{} starting up", + env!("CARGO_PKG_VERSION") + ); App::new() - .insert_resource(TwiteServerConfig { - port: 3000, - }) + .insert_resource(TwiteServerConfig { port: 3000 }) .add_plugins(MinimalPlugins) .add_plugins(TwiteServerPlugin) .add_systems(Startup, spawn_planets) @@ -31,7 +30,7 @@ fn main() { } fn spawn_planets(mut commands: Commands) { - debug!("Spawning planets"); + info!("Spawning planets"); let earth_pos = Transform::from_xyz(0.0, 0.0, 0.0); commands.spawn(PlanetBundle { planet_type: PlanetType::Earth, @@ -39,33 +38,40 @@ fn spawn_planets(mut commands: Commands) { }); } -fn on_connection(mut commands: Commands, - planet_query: Query<(Entity, &PlanetType, &Transform)>, - mut reader: Local>, - mut events: ResMut>) { +fn on_connection( + mut commands: Commands, + planet_query: Query<(Entity, &PlanetType, &Transform)>, + mut reader: Local>, + mut events: ResMut>, +) { let mut packets = Vec::new(); for ev in reader.read(&events) { if let ServerEvent::Connection(addr) = ev { - let _id = commands.spawn(PlayerBundle { - part: PartBundle { - part_type: PartType::Hearty, - transform: TransformBundle::from(Transform::from_xyz(0.0, 0.0, 0.0)), - }, - addr: Player(*addr), - }).id().index(); + let _id = commands + .spawn(PlayerBundle { + part: PartBundle { + part_type: PartType::Hearty, + transform: TransformBundle::from(Transform::from_xyz(0.0, 0.0, 0.0)), + }, + addr: Player(*addr), + }) + .id() + .index(); let mut planets = HashMap::new(); for (entity, planet_type, transform) in planet_query.iter() { - planets.insert(entity.index(), PacketPlanet { - planet_type: *planet_type as u8, - position: (transform.translation.x, transform.translation.y), - }); + planets.insert( + entity.index(), + PacketPlanet { + planet_type: *planet_type as u8, + position: (transform.translation.x, transform.translation.y), + }, + ); } - - let mut buf = Vec::new(); - PlanetPositionPacket { - planets, - }.serialize(&mut Serializer::new(&mut buf)).unwrap(); + + let packet = PlanetPositionPacket { planets }; + let buf = serde_json::to_vec(&packet).unwrap(); + packets.push(ServerEvent::Send(*addr, MessageType::Text, buf)); } } @@ -74,36 +80,39 @@ fn on_connection(mut commands: Commands, } } -fn on_position_change(mut commands: Commands, - part_query: Query<(Entity, &Transform), (With, Changed)>, - planet_query: Query<(Entity, &PlanetType, &Transform), Changed>, - mut packet_send: EventWriter) { +fn on_position_change( + mut commands: Commands, + part_query: Query<(Entity, &Transform), (With, Changed)>, + planet_query: Query<(Entity, &PlanetType, &Transform), Changed>, + mut packet_send: EventWriter, +) { let mut parts = HashMap::new(); for (entity, transform) in part_query.iter() { let id = commands.entity(entity).id().index(); let translation = transform.translation; parts.insert(id, (0, translation.x, translation.y)); // Type hearty = 0 } - let mut buf = Vec::new(); - let packet = PartPositionPacket { - parts, - }; - packet.serialize(&mut Serializer::new(&mut buf)).unwrap(); + + let packet = PartPositionPacket { parts }; + let buf = serde_json::to_vec(&packet).unwrap(); + packet_send.send(ServerEvent::Broadcast(MessageType::Text, buf)); let mut planets = HashMap::new(); for (entity, planet_type, transform) in planet_query.iter() { let id = commands.entity(entity).id().index(); let translation = transform.translation; - planets.insert(id, PacketPlanet { - planet_type: *planet_type as u8, - position: (translation.x, translation.y), - }); + planets.insert( + id, + PacketPlanet { + planet_type: *planet_type as u8, + position: (translation.x, translation.y), + }, + ); } - let mut buf = Vec::new(); - let packet = PlanetPositionPacket { - planets, - }; - packet.serialize(&mut Serializer::new(&mut buf)).unwrap(); + + let packet = PlanetPositionPacket { planets }; + let buf = serde_json::to_vec(&packet).unwrap(); + packet_send.send(ServerEvent::Broadcast(MessageType::Text, buf)); } diff --git a/server/src/packet.rs b/server/src/packet.rs index 5ef068f13e10161e6570d823bd362970fdacd152..076956f84f1d10f602a5303f3205678978bd3890 100644 --- a/server/src/packet.rs +++ b/server/src/packet.rs @@ -17,10 +17,10 @@ pub struct PacketPlanet { #[derive(Debug, Serialize)] pub struct PlanetPositionPacket { - pub planets: HashMap // id, (Type, x, y) + pub planets: HashMap, // id, (Type, x, y) } #[derive(Debug, Serialize)] pub struct PartPositionPacket { - pub parts: HashMap // id, (Type, x, y) + pub parts: HashMap, // id, (Type, x, y) }