diff --git a/Cargo.lock b/Cargo.lock index b7b0f11..a741171 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -279,6 +279,7 @@ dependencies = [ "parking_lot", "percent-encoding", "windows-sys 0.60.2", + "wl-clipboard-rs", "x11rb", ] @@ -509,9 +510,9 @@ dependencies = [ [[package]] name = "bevy" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "950238d3049d81006a6fd6b898a34cfc01bb5462a7668795a54d640aed19fd0a" +checksum = "4bfadbebfc6599aa59289b754ac30023959854304f3d393da2cf62bb3cd5df8f" dependencies = [ "bevy_dylib", "bevy_internal", @@ -530,7 +531,7 @@ dependencies = [ "bevy_color", "bevy_core_pipeline", "bevy_ecs", - "bevy_egui", + "bevy_egui 0.40.1", "bevy_gizmos", "bevy_image", "bevy_light", @@ -548,7 +549,7 @@ dependencies = [ "bevy_window", "bytemuck", "disqualified", - "egui", + "egui 0.34.3", "fuzzy-matcher", "image", "opener", @@ -570,9 +571,9 @@ dependencies = [ [[package]] name = "bevy-settings" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04372da0c37bab175e0bfbc4ad8f214ffcbea01850225573b6e49132db11e18b" +checksum = "3776102c41a5a212fced1a9ef76cb8aed8db96fcee397c1a869ea871d30b86df" dependencies = [ "bevy_app", "bevy_ecs", @@ -590,9 +591,9 @@ dependencies = [ [[package]] name = "bevy_a11y" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86f2cb45b000a9d121a5a7606f9af4a49e72b8b6a3885dc2acac2f0897a04f1" +checksum = "3c02cd43f914ef7a0f5b16f8a3d88c378c07c92f1a8c32ac5ac4d4f73e55f9e2" dependencies = [ "accesskit", "bevy_app", @@ -603,18 +604,18 @@ dependencies = [ [[package]] name = "bevy_android" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e5e2a949be318bf7184eb084622892afcc1e8b2af44973ac53ab53201756e0" +checksum = "ae5ea5245a845cefa8efb5ff7c2a8a36cdebfb99596068780f340f0b5aba6689" dependencies = [ "android-activity", ] [[package]] name = "bevy_animation" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da2fcd94cc32ba1c875c62e88506c0ba4775555a413e34cd172ea95fa26098e" +checksum = "dc513aac5cda673fb138236e969b4514e0a9b9f93fd33288111f147baa8af623" dependencies = [ "bevy_animation_macros", "bevy_app", @@ -645,9 +646,9 @@ dependencies = [ [[package]] name = "bevy_animation_macros" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa3d816d7788e27da936b9c7ec27f9828906d53cb1d06e26c58cac5c5ee799f" +checksum = "eed2910d9ca5c3b48968a54c4571789e4e81935cf3c823383fcac34ca28e2b0e" dependencies = [ "bevy_macro_utils", "quote", @@ -656,9 +657,9 @@ dependencies = [ [[package]] name = "bevy_anti_alias" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "815414ea2e11afe1f2396d89279cfa0986907ef3ec673ec936d9fa695b2bfbf9" +checksum = "dde973fc942cb596b03cae0dbece0a4d9dc2d2790bbc9852aa415affc1210d3a" dependencies = [ "bevy_app", "bevy_asset", @@ -678,9 +679,9 @@ dependencies = [ [[package]] name = "bevy_app" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671ae6f3a8d84f9ed696c531a138558596e041231a8414b6efeafa8469e841f9" +checksum = "5fd2aa472d43b4d081ef41d26300d17bd22cba6d68df2a223eb358782fa40bc6" dependencies = [ "bevy_derive", "bevy_ecs", @@ -700,9 +701,9 @@ dependencies = [ [[package]] name = "bevy_asset" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a05907de6a362d2c609a7a1d1b4dca3b58b768f746b719ca1a3c7dfa87d391" +checksum = "1624eddbf2293441b2158506aba75e523432b898d9da26eb6ed3e20af4c7fd38" dependencies = [ "async-broadcast", "async-channel", @@ -774,9 +775,9 @@ dependencies = [ [[package]] name = "bevy_asset_macros" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9444998cc37b51dfd1572c23a501865733ea65619a7d88b47aa654ae2290a4f" +checksum = "735611c80e926e960d279cba2a6f6ab27a61291752ec3b26e76bf9a0957e11e1" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -786,9 +787,9 @@ dependencies = [ [[package]] name = "bevy_audio" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06af3bd91de885f2a5c024569779a7fb43349df611d92f7b795c66c8797378db" +checksum = "750809b7b007dd6de6e5c730e67973027a3d22392fa7fd6f5331f8cefb489a18" dependencies = [ "bevy_app", "bevy_asset", @@ -802,9 +803,9 @@ dependencies = [ [[package]] name = "bevy_camera" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20105c3e77c2fb391bf3ded3a473d60e4058b837c9bf4e3412225833e524c75a" +checksum = "96de20d0babfb51e3907eb4eb56f1e36096a6f8c77acd997f5de611df4ee067d" dependencies = [ "bevy_app", "bevy_asset", @@ -828,9 +829,9 @@ dependencies = [ [[package]] name = "bevy_camera_controller" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be74e5b6c7238f204b41642cf60d3846b2abda0a2252252035a58bc362072944" +checksum = "bfb356016add201b084008c4320d8ef1696a843f0dcf92db35992731cfef65b1" dependencies = [ "bevy_app", "bevy_camera", @@ -846,10 +847,11 @@ dependencies = [ [[package]] name = "bevy_clipboard" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dc5fb913f25c5a16a2a1aa2942ba3f1365a6d0f2db3c0ea5bc0be01f85dca5d" +checksum = "d0a9792c7f2e8b5b71b9572a6d98fca4ee88ed186c8a02e164540c461ae3a92e" dependencies = [ + "arboard", "bevy_app", "bevy_ecs", "bevy_log", @@ -861,9 +863,9 @@ dependencies = [ [[package]] name = "bevy_color" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2dfc0091be6eb62fec9158b2d3e6f21b002be7bdb42dd3b8322e949c8426b0" +checksum = "5e5370beae13bea2db64744f370bb33566aa770dff91c2beae245ce82217fbbc" dependencies = [ "bevy_math", "bevy_reflect", @@ -877,9 +879,9 @@ dependencies = [ [[package]] name = "bevy_core_pipeline" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885d640bbff6c4fa3beadbb043d0d1ae53b2fda864da18a2bf2670fb90428865" +checksum = "2564f1ba766532e8eeb20059133ff6703e8dd5c3864b92378d0d1c541096ef12" dependencies = [ "bevy_app", "bevy_asset", @@ -906,9 +908,9 @@ dependencies = [ [[package]] name = "bevy_derive" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "293df2b2f7ed65ef2ce02b2e7359faac1a9a92a8cc96c182c9de77eb06049ae0" +checksum = "9d2a03321f3bd8016a041b3ae6afe83e636b3540fbc61d571bf069a21fda3231" dependencies = [ "bevy_macro_utils", "quote", @@ -917,9 +919,9 @@ dependencies = [ [[package]] name = "bevy_dev_tools" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db815000affd21545a6d6986f180a66393aee8c84330843e854d376c8537b10f" +checksum = "ee5887919325facb6142d98de3e3d156c1b86c2375ac569e2e3547601ab05eaf" dependencies = [ "bevy_app", "bevy_asset", @@ -949,9 +951,9 @@ dependencies = [ [[package]] name = "bevy_diagnostic" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a73e11555051f37c3e0e9ef7775e77108f2482310242996fb5bb6ef8b685b78e" +checksum = "07a3a736f15486650c4c6866798a78d625c7063c991a3cc7b13f1577d89c82ae" dependencies = [ "atomic-waker", "bevy_app", @@ -967,18 +969,18 @@ dependencies = [ [[package]] name = "bevy_dylib" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70547c664f17a903cdef1e8e673496e9bdfa3d69dece9c01523d79067a876e34" +checksum = "e3c03a128bac8b59a8699b81038b574e3cfa33dfae18e375d46be028d3d13c0e" dependencies = [ "bevy_internal", ] [[package]] name = "bevy_ecs" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4654b9b3535fa7813d2878a50e1b5ad80a361dc1c913b96ded57667f65d70a01" +checksum = "a350b2e4c2e47f7903d688affb8a723b31bca63af9789f1da88703f1ba04e354" dependencies = [ "arrayvec", "bevy_ecs_macros", @@ -1004,9 +1006,9 @@ dependencies = [ [[package]] name = "bevy_ecs_macro_logic" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee0b98a74141ce8dce4654c60020ebbaefab32646f42af6bbae55f282ae65ff7" +checksum = "76a10fef45a3e7dad717ba03e8b5f7ecdf3b3fd1cd1c5e425793525938e90d5f" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -1016,9 +1018,9 @@ dependencies = [ [[package]] name = "bevy_ecs_macros" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc958a194d226d618404e0fea99a3c8b4146207a00a3ba07fa712bf71607240" +checksum = "3916d712264b6f3ec9c964ba10719450ea371e537e202a2ffcfa9f6a5e68169d" dependencies = [ "bevy_ecs_macro_logic", "bevy_macro_utils", @@ -1059,7 +1061,55 @@ dependencies = [ "bevy_winit", "bytemuck", "crossbeam-channel", - "egui", + "egui 0.34.3", + "encase", + "getrandom 0.4.3", + "image", + "itertools 0.14.0", + "js-sys", + "smithay-clipboard", + "thread_local", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webbrowser", + "wgpu-types", + "winit", +] + +[[package]] +name = "bevy_egui" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e99e2d018c7e567a268638d3058e57895e914e5650dcf7bd80a5fead9e6413a9" +dependencies = [ + "arboard", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_mesh", + "bevy_picking", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_time", + "bevy_transform", + "bevy_ui_render", + "bevy_utils", + "bevy_window", + "bevy_winit", + "bytemuck", + "crossbeam-channel", + "egui 0.36.2", "encase", "getrandom 0.4.3", "image", @@ -1077,9 +1127,9 @@ dependencies = [ [[package]] name = "bevy_encase_derive" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14dc5bf9e6cb46c4401a66625b5f7eb9654a7f3c8586423c428b79586a1c55cd" +checksum = "be03820f64f2279ae9d826c882e4ef764516ff75ab7bdc39bb40801891533b89" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -1087,9 +1137,9 @@ dependencies = [ [[package]] name = "bevy_feathers" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e744e047f9328a9c072982569fabbbc837db0474fd902473b5f438f8688c30b6" +checksum = "e2bb6cfa726defd90add3eb71dc8b1ab32ca441f2531130679bfa880af2fb1f1" dependencies = [ "accesskit", "bevy_a11y", @@ -1132,9 +1182,9 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7998fe83c89d527efa83c85c574a17f7bb6e34881d638ecb7f706d9d79e82f3c" +checksum = "b8215d166d5c4a9f821713a1a549a57c5f8bdf404745c84f7a8b920b7b7d92b2" dependencies = [ "bevy_app", "bevy_ecs", @@ -1148,9 +1198,9 @@ dependencies = [ [[package]] name = "bevy_gizmos" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c0cbd55cc33b6412777d60d8c24a96bee148c82a5731f35ac85b2df4a7cf957" +checksum = "2ac5bcad0b8d141ef64f4a89643f74f11827ea6ef48073192b39d69156ed1b92" dependencies = [ "bevy_app", "bevy_asset", @@ -1171,9 +1221,9 @@ dependencies = [ [[package]] name = "bevy_gizmos_macros" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9903f2614f53bacacb92bef1e407afe3a27a4abddb500bfd479909c5d7b254df" +checksum = "b37bbaa6241480b119da406fc261c9cf85d435addad880ae564c9b0f54a89a28" dependencies = [ "bevy_macro_utils", "quote", @@ -1182,9 +1232,9 @@ dependencies = [ [[package]] name = "bevy_gizmos_render" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd569456c4b19bafa6d37c1bd9cc743fdadda3a2f23d79d2ceb0a088ea8d475f" +checksum = "2ea2b6266d210bca0aa3bcba7e17204e437b4e86cecd4021ab7dcd32da576a02" dependencies = [ "bevy_app", "bevy_asset", @@ -1211,9 +1261,9 @@ dependencies = [ [[package]] name = "bevy_gltf" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84e21ad83b7dc8d456491ea3d50057685d8c4cca8bc52a1b4a7161c86c369842" +checksum = "0d17df73b26adfb8be89f0716b8667c60660bdd2d589863b8901caca58c99841" dependencies = [ "async-lock", "base64 0.22.1", @@ -1258,9 +1308,9 @@ dependencies = [ [[package]] name = "bevy_image" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37bc41f69a0c6ade2e7961602517545b39ab8e42bc8c4a729bd24ffee3bcd904" +checksum = "ca63218585b83f98831214431449e9344b363349dd5cab98dae0b8129f0a0e2f" dependencies = [ "basis-universal", "bevy_app", @@ -1274,7 +1324,7 @@ dependencies = [ "bitflags 2.13.1", "bytemuck", "futures-lite", - "guillotiere", + "guillotiere 0.6.2", "half", "image", "ktx2", @@ -1288,9 +1338,9 @@ dependencies = [ [[package]] name = "bevy_input" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd221cf0732f5bf06caf594bdb233361ac735d4d416cf5849757b64bf4e8472a" +checksum = "b22e8b1119ff5c0b551cc11b672d25732c4e3eda72aceabc380595bd0e7bbe88" dependencies = [ "bevy_app", "bevy_ecs", @@ -1305,9 +1355,9 @@ dependencies = [ [[package]] name = "bevy_input_focus" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1a14f56c6e722048ec9dc20dbbc6f46b8037f61e319ea776829199278da166" +checksum = "c4d5573eb503387f73d12acde3010d49c808c790d34691e2fb410fc54b8c72b9" dependencies = [ "bevy_app", "bevy_ecs", @@ -1322,9 +1372,9 @@ dependencies = [ [[package]] name = "bevy_internal" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a85632a749f956f92b7b391c31ce1f229e57b06de879d1b60a3bb91e4e240" +checksum = "4ba99ca2e501f14f4af3322d66ae41b5c5b6ebd3aac4d00cda47dea4c00290ae" dependencies = [ "bevy-settings", "bevy_a11y", @@ -1383,9 +1433,9 @@ dependencies = [ [[package]] name = "bevy_light" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7b5009e9cc765c30b21daf2277ea4423cbd347b05280ea0943b50c5a80cd42" +checksum = "a4f91fb900c2412c5cb7ff5083d428d8361a1d39b605df86eb259aff82f7ac45" dependencies = [ "bevy_app", "bevy_asset", @@ -1409,9 +1459,9 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2017a5fe12ea230d00cfdca00c65c262924be26e0324f7e0033c64f8cc265888" +checksum = "e24488594832237c1e3abc823642823fa057b810c3a21e14e65bdbd15d1579d5" dependencies = [ "android_log-sys", "bevy_app", @@ -1427,9 +1477,9 @@ dependencies = [ [[package]] name = "bevy_macro_utils" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746a19912c6dc1bbe79188778573e8a253d5832c696b2fcb95578c17b29ff7ba" +checksum = "7164fe229422295bba15f1885048f34f4660db069aacb895208f996b0c7784fb" dependencies = [ "proc-macro2", "quote", @@ -1439,9 +1489,9 @@ dependencies = [ [[package]] name = "bevy_material" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "423710403b4a4d8e9ee872c6ac8108787f2396422b582d15a660a40731ddfbf0" +checksum = "3efcdb3ba04a57f6e05548884745684a2051e9692398915f57c5c276306b7f10" dependencies = [ "bevy_asset", "bevy_derive", @@ -1462,9 +1512,9 @@ dependencies = [ [[package]] name = "bevy_material_macros" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6928e167592472f6ee900f80de199cc2dafd31d4f082a86e8d594b81b973e3d" +checksum = "854f95c8f3374ef6242790de50b5cb8f5a601c698772d1447bf856067b53ee64" dependencies = [ "bevy_macro_utils", "quote", @@ -1473,9 +1523,9 @@ dependencies = [ [[package]] name = "bevy_math" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c280440d2a5bc07ea393b5346b5712eec73ea30f0133097b8b13dade385beb" +checksum = "98ead494dcfaa9b4594eed7f09a27d868b7cc7fc9ebd655c5643322778f4a8a2" dependencies = [ "approx", "arrayvec", @@ -1493,9 +1543,9 @@ dependencies = [ [[package]] name = "bevy_mesh" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59863e6f37ef0ba1f37021bce9dd940f9dc31d15e03f548cda5fd3e674f409e" +checksum = "e2adbf8e5a5817c345986756eb0377e18a510e1d7685ef62d6c7bafcd3bab85e" dependencies = [ "bevy_app", "bevy_asset", @@ -1527,9 +1577,9 @@ checksum = "bff34eb29ff4b8a8688bc7299f14fb6b597461ca80fec03ed7d22939ab33e48f" [[package]] name = "bevy_pbr" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ebc777de2d7f45888c68e8e04949bfb8a40aee62f700283fc340f525e67f52" +checksum = "244ae7d618b51a59c913c36b0564a295cd85ea91a5e777b542bb7bdb846a23d6" dependencies = [ "arrayvec", "bevy_app", @@ -1570,9 +1620,9 @@ dependencies = [ [[package]] name = "bevy_picking" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93468ac5937f76be3af763d496f01e899edf6d9c1a1d39a87ae4ce8eba36f78b" +checksum = "235d1ea0cd7d0ff2f37592f37b4d8504c597884296058ecadcb0d206d0258ab7" dependencies = [ "bevy_app", "bevy_asset", @@ -1594,9 +1644,9 @@ dependencies = [ [[package]] name = "bevy_platform" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3120670bb2308980f723477c9d82476fcda31f08be9b256c3f0acdee82a65094" +checksum = "fd610a417e7b4a3b9602cf11264d16cbbff8eabe689c5fed8be4e84c6a2680a3" dependencies = [ "critical-section", "foldhash 0.2.0", @@ -1616,9 +1666,9 @@ dependencies = [ [[package]] name = "bevy_post_process" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57379b51aa0f1b2066c956263e1f12686d22cf8939cf9644eebf2ee42d3dd460" +checksum = "8eb9340107f7a4292b3b1d138cffb2700f31cef580f5777f2e83f4f00eae4dc1" dependencies = [ "bevy_app", "bevy_asset", @@ -1641,15 +1691,15 @@ dependencies = [ [[package]] name = "bevy_ptr" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b511e89f7078fd21fdea77061a0ca3e737297c7011bb10c073e0aecb17c9fea6" +checksum = "1974de4b140f102fded747229ff4a61921acec07f02f0d1dcdadfe9ce177d0ff" [[package]] name = "bevy_reflect" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92abd59cbba1524c1847e9a50f74d94e6b7836c80a8edfa9c47e59f7fd81021d" +checksum = "9b76c3d056da3e299b84652ccf914c487b786857225d8ffbc8fc9509441a9e6b" dependencies = [ "assert_type_match", "bevy_platform", @@ -1676,9 +1726,9 @@ dependencies = [ [[package]] name = "bevy_reflect_derive" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fa4e6b97fd2d582dd5ed96762a70d04505a477c833cf4f69d016dcd03d2d04" +checksum = "5fc5f820ee52afeca6d3bb83f15c1bf61ea6196c840a761a21a8bc266a3b166e" dependencies = [ "bevy_macro_utils", "indexmap", @@ -1690,9 +1740,9 @@ dependencies = [ [[package]] name = "bevy_render" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89b2cc850a4c3fd12a6a088a4fc3e80118b2e1b569da8936f6d4d99ca1b6ee7" +checksum = "fc86a32b2eef9859e1e7d323c6d1a9150fe77aa17c30fd05abebc12f645929dc" dependencies = [ "async-channel", "bevy_app", @@ -1744,9 +1794,9 @@ dependencies = [ [[package]] name = "bevy_render_macros" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0eb5cffe5253a6ab4e4b84b2e40a6a2f4673deb16fd63ab9dfc4a015449873a" +checksum = "6be6eba0ce9770ae4576693804d6c605f8afd9c4769787414254efcf92196a90" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -1756,9 +1806,9 @@ dependencies = [ [[package]] name = "bevy_scene" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a3c891148c40e1352fc41001c0e1894ba63fc4e2d3aca33447343c4122b782" +checksum = "33f6f4f24cd771c6fd67286a8f264a45a644dc798a36614252db220d4fbbd63b" dependencies = [ "bevy_app", "bevy_asset", @@ -1777,9 +1827,9 @@ dependencies = [ [[package]] name = "bevy_scene_macros" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4bc33a36a4e9e344985a96cd8b4abc816cf2c5d2fa002d72fd7bcd11396589c" +checksum = "4fc7844c3410e228581200f73be123467c424f62fc40499c3e869b641b582748" dependencies = [ "bevy_ecs_macro_logic", "bevy_macro_utils", @@ -1790,9 +1840,9 @@ dependencies = [ [[package]] name = "bevy_shader" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0ac51378bb6a021165ee334f846b515cd06082e24ce962adce58ad7df1c39a" +checksum = "50ba4fa5c5102a9ad1b0508c5bf8a6d02a22d5dc13c23ba908ee6d3d16a357cd" dependencies = [ "bevy_asset", "bevy_platform", @@ -1809,9 +1859,9 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c679b88cc655881d403929bcdf02d30f688fd8916eb1635e6e7f8585d8ae6894" +checksum = "e93e631436ff9c08613843d46521ee60f2fcb2eb5f4754eec59591ca817a2ba0" dependencies = [ "bevy_app", "bevy_asset", @@ -1835,9 +1885,9 @@ dependencies = [ [[package]] name = "bevy_sprite_render" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a65ca9a286dd5815ca4d2d41d4f83bdbb22c8a639d10b4c33eac114b369c36" +checksum = "0c0a13c775880fe8fb3e7928921b2a1b549fd92c17571e7ca5e1250e53f0e56c" dependencies = [ "bevy_app", "bevy_asset", @@ -1868,9 +1918,9 @@ dependencies = [ [[package]] name = "bevy_state" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c22e694ea52e42994aea6ed2d0b378fa1e9d5a9b615db88626e33508bc03f35" +checksum = "f69ce6a0066eb4626165e2f8c85d3cf4808cfe4cb2027df8840d5cbfe8a3428d" dependencies = [ "bevy_app", "bevy_ecs", @@ -1884,9 +1934,9 @@ dependencies = [ [[package]] name = "bevy_state_macros" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835f45091fa0df1ff3cb10f4ca5a397d4e9249b550f1be6893b08a2a06d6eed7" +checksum = "a36dd49049023a0abbd0bd1e2b99580ed83a18c5351c64caba4c06e3b584cf9c" dependencies = [ "bevy_macro_utils", "quote", @@ -1895,9 +1945,9 @@ dependencies = [ [[package]] name = "bevy_tasks" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa34e6b9b804851ec08a41c0346c859d82e2fa98c906d74b965ee61bbbb688e4" +checksum = "1f787d4ba7237b64b30bd2d690a8cbae1ba775e0eec326711c446654cb720e7c" dependencies = [ "async-channel", "async-executor", @@ -1914,9 +1964,9 @@ dependencies = [ [[package]] name = "bevy_text" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e1d7eb8b10229f424b4fc56c864a26c32ac02b8cd184e2cc25eceea7b5e892" +checksum = "c0b275f50fb01b1e2d411326a7750ecc2fe629c48b89997cf2a3c93fe786e076" dependencies = [ "bevy_app", "bevy_asset", @@ -1943,9 +1993,9 @@ dependencies = [ [[package]] name = "bevy_time" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c21e3be2aa4426ea1e0a7036d3d1dbbded84c319459d9f3e2a616b33563372f2" +checksum = "f6896d83d7ed32a2f89da127b7aeddf01eb702e603897cf5ddac231480a1870e" dependencies = [ "bevy_app", "bevy_ecs", @@ -1958,9 +2008,9 @@ dependencies = [ [[package]] name = "bevy_transform" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c95fefe69c9223d10e6b52a0fdf12811bab9d0c7dcb27570cb86824b451f180d" +checksum = "d94cc6065320ebeb58ae88a0863a4c4c2a642c6db698e283eb50be01a834ca5a" dependencies = [ "bevy_app", "bevy_ecs", @@ -1984,9 +2034,9 @@ dependencies = [ [[package]] name = "bevy_ui" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5519c799ecf14e2eeece8b9b823250a00c9df14523e2638b647fccfe4ff0d20" +checksum = "8a2f97c39dadfef97dbe295fc1ce212825bb9fda2becc8f558d1d7e7d7dbbedf" dependencies = [ "accesskit", "bevy_a11y", @@ -2022,9 +2072,9 @@ dependencies = [ [[package]] name = "bevy_ui_render" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d3921936d88bd2638dd4d87bff8fc3b9908a046a50658548045102249f93e" +checksum = "30a36be1c251417421ee070ecd1a393f0036631f7495564a8c9d4abb6042dc40" dependencies = [ "bevy_app", "bevy_asset", @@ -2055,9 +2105,9 @@ dependencies = [ [[package]] name = "bevy_ui_widgets" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fc616ccc51b36dea5cb1de91ed82569b41649923388e5ba82cb7d2f1ef18d8" +checksum = "a71063099a056a010bdbbcc1f1daf2d50bff517d69d62e5334d4c32d7bf9e9e0" dependencies = [ "accesskit", "bevy_a11y", @@ -2079,9 +2129,9 @@ dependencies = [ [[package]] name = "bevy_utils" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aceea6c7ffdd568f866d5ca4dfe50c33440c54f7bc230c13a9ba7ab0c91aed1" +checksum = "de51fa7ea2e95d4c2d1278c5629285d59eec951cc60c992964c03f30910ef5a1" dependencies = [ "async-channel", "bevy_platform", @@ -2092,9 +2142,9 @@ dependencies = [ [[package]] name = "bevy_window" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efcc255b43db156fba393b2ff8fa552aac5e7e02ae4c6298eacdbab655ddf988" +checksum = "38373ee93a9248c14afe41d2025f4aa5e68b004b06ae7702816b180e72b39ea3" dependencies = [ "bevy_app", "bevy_asset", @@ -2111,9 +2161,9 @@ dependencies = [ [[package]] name = "bevy_winit" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308c9eb04f74f340593b3def6a7c1778fd42581d779c6db836d690c7d471f94c" +checksum = "c1e9c615f4194b1e00ba536892a3d3d3300c2a1f8e66112fdebd7077bf2744c9" dependencies = [ "accesskit", "accesskit_winit", @@ -2144,9 +2194,9 @@ dependencies = [ [[package]] name = "bevy_world_serialization" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de58ae74410d4f940e3f00484f58603b4f1a53a7d84ebe3fca258d2a3aa96620" +checksum = "36855264b9b5d229bde74f01730eb6251c72dc052404ae144a9295cc0abdefc1" dependencies = [ "bevy_app", "bevy_asset", @@ -2164,6 +2214,17 @@ dependencies = [ "uuid", ] +[[package]] +name = "bevygraph" +version = "0.1.0" +source = "git+https://github.com/tbillington/bevy_debug_view#0d520f5f4e8693166408f082e8d25dd377dabc3e" +dependencies = [ + "bevy", + "bevy_egui 0.42.0", + "indexmap", + "log", +] + [[package]] name = "bincode" version = "1.3.3" @@ -2980,7 +3041,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a05fbfa222ffb51989d5ccf33e5f7aebfcf96c5023413856b0c3618a7f79896e" dependencies = [ "bytemuck", - "emath", + "emath 0.34.3", +] + +[[package]] +name = "ecolor" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0656a7530b9e2841ee7a5f983965bdd9840c32f4012f759cfd44b912cced6b34" +dependencies = [ + "bytemuck", + "emath 0.36.2", ] [[package]] @@ -2992,8 +3063,8 @@ dependencies = [ "accesskit", "ahash", "bitflags 2.13.1", - "emath", - "epaint", + "emath 0.34.3", + "epaint 0.34.3", "log", "nohash-hasher", "profiling", @@ -3001,6 +3072,26 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "egui" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc938cc27cd911415e1e4d151bc56ff9df063d8db081374e87aeb805ea74b2ba" +dependencies = [ + "accesskit", + "ahash", + "bitflags 2.13.1", + "emath 0.36.2", + "epaint 0.36.2", + "itertools 0.15.0", + "log", + "nohash-hasher", + "profiling", + "smallvec", + "unicode-segmentation", + "web-sys", +] + [[package]] name = "either" version = "1.17.0" @@ -3016,6 +3107,15 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "emath" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52c8d4141cf0f60fb2f7aefaf352d3ffa5171ef0ab09731c64391801e95e48f1" +dependencies = [ + "bytemuck", +] + [[package]] name = "ena" version = "0.14.4" @@ -3081,9 +3181,9 @@ checksum = "6675898a291ec212fc3df04f537d177fce8496120244590e6359dcaa4c25da79" dependencies = [ "ahash", "bytemuck", - "ecolor", - "emath", - "epaint_default_fonts", + "ecolor 0.34.3", + "emath 0.34.3", + "epaint_default_fonts 0.34.3", "font-types 0.11.3", "log", "nohash-hasher", @@ -3092,7 +3192,32 @@ dependencies = [ "self_cell", "skrifa 0.40.0", "smallvec", - "vello_cpu", + "vello_cpu 0.0.6", +] + +[[package]] +name = "epaint" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0ec0308dc23130fc1a7d4623a8534c2ed069c6dc84e258ee4f3de99615aa1a3" +dependencies = [ + "ahash", + "bytemuck", + "ecolor 0.36.2", + "emath 0.36.2", + "epaint_default_fonts 0.36.2", + "font-types 0.12.2", + "harfrust 0.12.0", + "log", + "nohash-hasher", + "parking_lot", + "profiling", + "self_cell", + "skrifa 0.44.0", + "smallvec", + "unicode-general-category", + "unicode-segmentation", + "vello_cpu 0.1.0", ] [[package]] @@ -3101,6 +3226,12 @@ version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8970033a4282a7bcf899b38b5ed3a58b732fe093d03785d58648515d8d309da" +[[package]] +name = "epaint_default_fonts" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773fa9c96dd0dbef887e39d0ed6177f141cce4d68e6041df77570aa3702dfa13" + [[package]] name = "equivalent" version = "1.0.2" @@ -3193,6 +3324,12 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "fearless_simd" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97b65636e5b9ef369943878ac74335ba1c55c1cb6adbf1e2c293c624248d693" + [[package]] name = "file-id" version = "0.2.3" @@ -3578,6 +3715,22 @@ dependencies = [ "simba", ] +[[package]] +name = "glifo" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed4a1bb24121291d27230c1b1b44e07d6a9b28cefdb32fe1581dfb84e14f940a" +dependencies = [ + "bytemuck", + "foldhash 0.2.0", + "hashbrown 0.17.1", + "log", + "peniko", + "skrifa 0.44.0", + "smallvec", + "vello_common 0.1.0", +] + [[package]] name = "glow" version = "0.17.0" @@ -3688,6 +3841,15 @@ dependencies = [ "svg_fmt", ] +[[package]] +name = "guillotiere" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b17e70c989c36bad147b27a58d148c0741c51448aa5653436547323e524d0ab" +dependencies = [ + "euclid", +] + [[package]] name = "half" version = "2.7.1" @@ -3714,6 +3876,18 @@ dependencies = [ "smallvec", ] +[[package]] +name = "harfrust" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03d949a14aa089bbb282f7dd76a498a7f684428e4257202efc119ec010376f9" +dependencies = [ + "bitflags 2.13.1", + "bytemuck", + "read-fonts 0.41.0", + "smallvec", +] + [[package]] name = "hash32" version = "0.3.1" @@ -4529,6 +4703,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + [[package]] name = "nonmax" version = "0.5.5" @@ -5126,6 +5309,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "owned_ttf_parser" version = "0.25.1" @@ -5177,7 +5370,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fad031076f48f0d4d85ce1aea9b94b4e715a4d636a030a123038f8f5b5e4343" dependencies = [ "fontique", - "harfrust", + "harfrust 0.6.2", "hashbrown 0.17.1", "icu_normalizer", "icu_properties", @@ -6079,8 +6272,9 @@ dependencies = [ "bevy", "bevy-inspector-egui", "bevy_asset_loader", - "bevy_egui", + "bevy_egui 0.40.1", "bevy_ggrs", + "bevygraph", "bincode", "blake3", "clap", @@ -6756,6 +6950,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "tree_magic_mini" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6" +dependencies = [ + "memchr", + "nom", + "petgraph", +] + [[package]] name = "ttf-parser" version = "0.25.1" @@ -6786,6 +6991,12 @@ version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "214ca0b2191785cbc06209b9ca1861e048e39b5ba33574b3cedd58363d5bb5f6" +[[package]] +name = "unicode-general-category" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b993bddc193ae5bd0d623b49ec06ac3e9312875fdae725a975c51db1cc1677f" + [[package]] name = "unicode-ident" version = "1.0.24" @@ -6894,7 +7105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bd1a4c633ce09e7d713df1a6e036644a125e15e0c169cfb5180ddf5836ca04b" dependencies = [ "bytemuck", - "fearless_simd", + "fearless_simd 0.3.0", "hashbrown 0.16.1", "log", "peniko", @@ -6902,6 +7113,21 @@ dependencies = [ "smallvec", ] +[[package]] +name = "vello_common" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e9aed918117e8152c9eddfd8362d73c465c23f26c44786aa331707b8a64fa2" +dependencies = [ + "bytemuck", + "fearless_simd 0.4.1", + "guillotiere 0.7.0", + "log", + "peniko", + "smallvec", + "thiserror 2.0.19", +] + [[package]] name = "vello_cpu" version = "0.0.6" @@ -6910,7 +7136,19 @@ checksum = "0162bfe48aabf6a9fdcd401b628c7d9f260c2cbabb343c70a65feba6f7849edc" dependencies = [ "bytemuck", "hashbrown 0.16.1", - "vello_common", + "vello_common 0.0.6", +] + +[[package]] +name = "vello_cpu" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac7349e1f55f6b801c7c277958df4ea53e7f20f21e8014910ad888b2ecda93ea" +dependencies = [ + "bytemuck", + "glifo", + "hashbrown 0.17.1", + "vello_common 0.1.0", ] [[package]] @@ -7819,6 +8057,24 @@ version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +[[package]] +name = "wl-clipboard-rs" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d7888ccd4896447b2d14d3a9350a85df2aeb6f181e2e7a31349d104ac46cac1" +dependencies = [ + "libc", + "log", + "os_pipe", + "rustix 1.1.4", + "thiserror 2.0.19", + "tree_magic_mini", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", +] + [[package]] name = "writeable" version = "0.6.3" diff --git a/Cargo.toml b/Cargo.toml index 78e1f28..cd225ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ debug_features = ["bevy/free_camera"] gamecube-adapter = ["dep:gc-adapter-neo"] [dependencies] -bevy = { version = "0.19", features = ["asset_processor", "basis-universal", "compressed_image_saver", "bevy_settings"] } +bevy = { version = "0.19.1", features = ["asset_processor", "basis-universal", "compressed_image_saver", "bevy_settings"] } # Loads the scenes you author in the editor (assets/*.bsn) and builds # physics colliders from them. An ordinary dependency; remove it if you # stop using authored scenes. @@ -24,6 +24,7 @@ arrayvec = "0.7.8" bevy-inspector-egui = "0.37.0" bevy_egui = "0.40.0" bevy_ggrs = { git = "https://github.com/gschup/bevy_ggrs" } +bevygraph = { git = "https://github.com/tbillington/bevy_debug_view" } serde = "1.0.229" serde_json = "1.0.145" bincode = "1.3.3" diff --git a/src/fighter/animation.rs b/src/fighter/animation.rs index 667391f..98dbb7c 100644 --- a/src/fighter/animation.rs +++ b/src/fighter/animation.rs @@ -99,4 +99,5 @@ pub enum AnimKind { AttackForwardTilt, AttackDownTilt, AttackNeutralAir, + AttackForwardAir, } diff --git a/src/fighter/attack/mod.rs b/src/fighter/attack/mod.rs index 77dc69a..0bcc754 100644 --- a/src/fighter/attack/mod.rs +++ b/src/fighter/attack/mod.rs @@ -200,7 +200,7 @@ impl AttackKind { AttackKind::NeutralAir => AnimKind::AttackNeutralAir, AttackKind::Jab => AnimKind::AttackJab1, AttackKind::UpTilt => AnimKind::AttackUpTilt, - AttackKind::ForwardAir => AnimKind::AttackUpTilt, + AttackKind::ForwardAir => AnimKind::AttackForwardAir, AttackKind::BackAir => AnimKind::AttackUpTilt, AttackKind::DownAir => AnimKind::AttackUpTilt, AttackKind::UpAir => AnimKind::AttackUpTilt, diff --git a/src/hitbox_viewer/mod.rs b/src/hitbox_viewer/mod.rs index 69833d2..78cad4f 100644 --- a/src/hitbox_viewer/mod.rs +++ b/src/hitbox_viewer/mod.rs @@ -1,6 +1,6 @@ //! Standalone, read-only attack-script previewer used by `hitbox-editor`. -use bevy::{gltf::Gltf, prelude::*, world_serialization::WorldAssetRoot}; +use bevy::{camera::CameraProjection, gltf::Gltf, prelude::*, world_serialization::WorldAssetRoot}; use bevy_egui::{EguiContexts, EguiPrimaryContextPass, egui}; use clap::{Parser, ValueEnum}; @@ -116,7 +116,7 @@ impl Plugin for HitboxViewerPlugin { }) .add_systems(Startup, setup) .add_systems( - Update, + FixedUpdate, ( request_fighter_dependencies, spawn_preview_fighter, @@ -532,11 +532,82 @@ fn draw_ui( ui.label("Waiting for the processed attack script…"); return; }; + draw_summary_timeline(ui, &mut state, script, end); draw_timeline(ui, &mut state, script, end); }); Ok(()) } +fn draw_summary_timeline( + ui: &mut egui::Ui, + state: &mut ViewerState, + script: &FighterAttackScript, + end: u32, +) { + let row_height = 20.0; + let label_width = 55.0; + let height = (row_height + 25.0f32).min(ui.available_height()); + let (response, painter) = ui.allocate_painter( + egui::vec2(ui.available_width(), height), + egui::Sense::click_and_drag(), + ); + let rect = response.rect; + let timeline = egui::Rect::from_min_max( + egui::pos2(rect.left() + label_width, rect.top()), + rect.right_bottom(), + ); + if (response.clicked() || response.dragged()) + && let Some(pointer) = response.interact_pointer_pos() + && timeline.contains(pointer) + { + let fraction = ((pointer.x - timeline.left()) / timeline.width()).clamp(0.0, 1.0); + state.frame = ((end.saturating_sub(1)) as f32 * fraction).round() as u32; + state.playing = false; + } + for frame in 0..end { + if frame % 5 != 0 { + continue; + } + let x = frame_x(timeline, frame, end); + painter.line_segment( + [egui::pos2(x, rect.top()), egui::pos2(x, rect.bottom())], + egui::Stroke::new(1.0_f32, egui::Color32::from_gray(55)), + ); + painter.text( + egui::pos2(x + 2.0, rect.top()), + egui::Align2::LEFT_TOP, + frame.to_string(), + egui::FontId::monospace(10.0), + egui::Color32::GRAY, + ); + } + for frame in 0..end { + let top = rect.top() + 20.0 as f32; + painter.text( + egui::pos2(rect.left(), top + 2.0), + egui::Align2::LEFT_TOP, + format!("HB {}", 2), + egui::FontId::monospace(12.0), + egui::Color32::LIGHT_GRAY, + ); + let active_hitbox = script + .hitboxes + .iter() + .filter(|hitbox| hitbox.start_frame <= frame && hitbox.end_frame > frame) + .max_by(|a, b| a.id.cmp(&b.id)); + let bar = egui::Rect::from_min_max( + egui::pos2(frame_x(timeline, frame, end), top + 2.0), + egui::pos2(frame_x(timeline, frame + 1, end), top + row_height - 2.0), + ); + + if let Some(_active_hitbox) = active_hitbox { + painter.rect_filled(bar, 2.0, egui::Color32::from_rgb(245, 75, 55)); + } else { + painter.rect_stroke(bar, 2.0, egui::Stroke::new(2.0f32, egui::Color32::from_rgb(75, 75, 75)), egui::StrokeKind::Inside); + } + } +} + fn draw_timeline( ui: &mut egui::Ui, state: &mut ViewerState,