basic UI with belly
This commit is contained in:
parent
92b9d8f752
commit
07233e0e12
|
@ -2,6 +2,12 @@
|
||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
version = 3
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "Inflector"
|
||||||
|
version = "0.11.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ab_glyph"
|
name = "ab_glyph"
|
||||||
version = "0.2.21"
|
version = "0.2.21"
|
||||||
|
@ -176,6 +182,12 @@ version = "0.2.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
|
checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "android-tzdata"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "android_log-sys"
|
name = "android_log-sys"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
|
@ -316,6 +328,62 @@ version = "1.6.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
|
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "belly"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "git+https://github.com/jkb0o/belly#bbc2bbb43071cae3a50d81bd9965e11dbaa1d353"
|
||||||
|
dependencies = [
|
||||||
|
"belly_core",
|
||||||
|
"belly_macro",
|
||||||
|
"belly_widgets",
|
||||||
|
"bevy",
|
||||||
|
"embed-doc-image",
|
||||||
|
"tagstr",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "belly_core"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "git+https://github.com/jkb0o/belly#bbc2bbb43071cae3a50d81bd9965e11dbaa1d353"
|
||||||
|
dependencies = [
|
||||||
|
"bevy",
|
||||||
|
"bevy_stylebox",
|
||||||
|
"cssparser",
|
||||||
|
"itertools",
|
||||||
|
"lazy_static",
|
||||||
|
"roxmltree",
|
||||||
|
"smallvec",
|
||||||
|
"tagstr",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "belly_macro"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "git+https://github.com/jkb0o/belly#bbc2bbb43071cae3a50d81bd9965e11dbaa1d353"
|
||||||
|
dependencies = [
|
||||||
|
"belly_core",
|
||||||
|
"bevy",
|
||||||
|
"proc-macro2",
|
||||||
|
"procout",
|
||||||
|
"quote",
|
||||||
|
"syn 1.0.109",
|
||||||
|
"syn-rsx",
|
||||||
|
"toml",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "belly_widgets"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "git+https://github.com/jkb0o/belly#bbc2bbb43071cae3a50d81bd9965e11dbaa1d353"
|
||||||
|
dependencies = [
|
||||||
|
"ab_glyph",
|
||||||
|
"belly_core",
|
||||||
|
"belly_macro",
|
||||||
|
"bevy",
|
||||||
|
"itertools",
|
||||||
|
"tagstr",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bevy"
|
name = "bevy"
|
||||||
version = "0.10.1"
|
version = "0.10.1"
|
||||||
|
@ -979,6 +1047,14 @@ dependencies = [
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bevy_stylebox"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "git+https://github.com/jkb0o/belly#bbc2bbb43071cae3a50d81bd9965e11dbaa1d353"
|
||||||
|
dependencies = [
|
||||||
|
"bevy",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bevy_tasks"
|
name = "bevy_tasks"
|
||||||
version = "0.10.1"
|
version = "0.10.1"
|
||||||
|
@ -1093,7 +1169,7 @@ dependencies = [
|
||||||
"ahash 0.7.6",
|
"ahash 0.7.6",
|
||||||
"bevy_utils_proc_macros",
|
"bevy_utils_proc_macros",
|
||||||
"getrandom",
|
"getrandom",
|
||||||
"hashbrown",
|
"hashbrown 0.12.3",
|
||||||
"instant",
|
"instant",
|
||||||
"petgraph",
|
"petgraph",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
|
@ -1310,6 +1386,7 @@ name = "cathode"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
"belly",
|
||||||
"bevy",
|
"bevy",
|
||||||
"bevy_eventlistener",
|
"bevy_eventlistener",
|
||||||
"bevy_framepace",
|
"bevy_framepace",
|
||||||
|
@ -1359,6 +1436,21 @@ version = "0.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
|
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "chrono"
|
||||||
|
version = "0.4.26"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
|
||||||
|
dependencies = [
|
||||||
|
"android-tzdata",
|
||||||
|
"iana-time-zone",
|
||||||
|
"js-sys",
|
||||||
|
"num-traits",
|
||||||
|
"time 0.1.45",
|
||||||
|
"wasm-bindgen",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cipher"
|
name = "cipher"
|
||||||
version = "0.4.4"
|
version = "0.4.4"
|
||||||
|
@ -1635,6 +1727,33 @@ dependencies = [
|
||||||
"typenum",
|
"typenum",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cssparser"
|
||||||
|
version = "0.29.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa"
|
||||||
|
dependencies = [
|
||||||
|
"cssparser-macros",
|
||||||
|
"dtoa-short",
|
||||||
|
"itoa",
|
||||||
|
"matches",
|
||||||
|
"phf",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"smallvec",
|
||||||
|
"syn 1.0.109",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cssparser-macros"
|
||||||
|
version = "0.6.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
|
||||||
|
dependencies = [
|
||||||
|
"quote",
|
||||||
|
"syn 2.0.18",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "d3d12"
|
name = "d3d12"
|
||||||
version = "0.6.0"
|
version = "0.6.0"
|
||||||
|
@ -1705,12 +1824,39 @@ version = "1.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
|
checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "dtoa"
|
||||||
|
version = "1.0.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "dtoa-short"
|
||||||
|
version = "0.3.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
|
||||||
|
dependencies = [
|
||||||
|
"dtoa",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "either"
|
name = "either"
|
||||||
version = "1.8.1"
|
version = "1.8.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
|
checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "embed-doc-image"
|
||||||
|
version = "0.1.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "af36f591236d9d822425cb6896595658fa558fcebf5ee8accac1d4b92c47166e"
|
||||||
|
dependencies = [
|
||||||
|
"base64",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 1.0.109",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "encase"
|
name = "encase"
|
||||||
version = "0.5.0"
|
version = "0.5.0"
|
||||||
|
@ -1933,7 +2079,7 @@ dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"wasi",
|
"wasi 0.11.0+wasi-snapshot-preview1",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2100,7 +2246,7 @@ checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"gpu-descriptor-types",
|
"gpu-descriptor-types",
|
||||||
"hashbrown",
|
"hashbrown 0.12.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2141,6 +2287,15 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hashbrown"
|
||||||
|
version = "0.13.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
|
||||||
|
dependencies = [
|
||||||
|
"ahash 0.8.3",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hassle-rs"
|
name = "hassle-rs"
|
||||||
version = "0.9.0"
|
version = "0.9.0"
|
||||||
|
@ -2196,6 +2351,29 @@ dependencies = [
|
||||||
"digest",
|
"digest",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "iana-time-zone"
|
||||||
|
version = "0.1.57"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
|
||||||
|
dependencies = [
|
||||||
|
"android_system_properties",
|
||||||
|
"core-foundation-sys 0.8.4",
|
||||||
|
"iana-time-zone-haiku",
|
||||||
|
"js-sys",
|
||||||
|
"wasm-bindgen",
|
||||||
|
"windows 0.48.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "iana-time-zone-haiku"
|
||||||
|
version = "0.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "image"
|
name = "image"
|
||||||
version = "0.24.6"
|
version = "0.24.6"
|
||||||
|
@ -2222,7 +2400,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
|
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg",
|
"autocfg",
|
||||||
"hashbrown",
|
"hashbrown 0.12.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2288,6 +2466,15 @@ dependencies = [
|
||||||
"mach2",
|
"mach2",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itertools"
|
||||||
|
version = "0.10.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
|
||||||
|
dependencies = [
|
||||||
|
"either",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "itoa"
|
name = "itoa"
|
||||||
version = "1.0.6"
|
version = "1.0.6"
|
||||||
|
@ -2520,6 +2707,12 @@ dependencies = [
|
||||||
"regex-automata",
|
"regex-automata",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "matches"
|
||||||
|
version = "0.1.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "memchr"
|
name = "memchr"
|
||||||
version = "2.5.0"
|
version = "2.5.0"
|
||||||
|
@ -2600,7 +2793,7 @@ checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"log",
|
"log",
|
||||||
"wasi",
|
"wasi 0.11.0+wasi-snapshot-preview1",
|
||||||
"windows-sys 0.48.0",
|
"windows-sys 0.48.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -3022,6 +3215,50 @@ dependencies = [
|
||||||
"indexmap",
|
"indexmap",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf"
|
||||||
|
version = "0.10.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
|
||||||
|
dependencies = [
|
||||||
|
"phf_macros",
|
||||||
|
"phf_shared",
|
||||||
|
"proc-macro-hack",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf_generator"
|
||||||
|
version = "0.10.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
|
||||||
|
dependencies = [
|
||||||
|
"phf_shared",
|
||||||
|
"rand",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf_macros"
|
||||||
|
version = "0.10.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
|
||||||
|
dependencies = [
|
||||||
|
"phf_generator",
|
||||||
|
"phf_shared",
|
||||||
|
"proc-macro-hack",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 1.0.109",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf_shared"
|
||||||
|
version = "0.10.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
|
||||||
|
dependencies = [
|
||||||
|
"siphasher",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pin-project"
|
name = "pin-project"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
|
@ -3076,6 +3313,12 @@ dependencies = [
|
||||||
"unicode-xid",
|
"unicode-xid",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ppv-lite86"
|
||||||
|
version = "0.2.17"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc-macro-crate"
|
name = "proc-macro-crate"
|
||||||
version = "1.3.1"
|
version = "1.3.1"
|
||||||
|
@ -3101,6 +3344,19 @@ dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "procout"
|
||||||
|
version = "0.1.13"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9d710f595d4e0a6df3265e2fc65731ee564ada41400628563fe635905ab70418"
|
||||||
|
dependencies = [
|
||||||
|
"Inflector",
|
||||||
|
"chrono",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 1.0.109",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "profiling"
|
name = "profiling"
|
||||||
version = "1.0.8"
|
version = "1.0.8"
|
||||||
|
@ -3131,11 +3387,35 @@ version = "0.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b"
|
checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand"
|
||||||
|
version = "0.8.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"rand_chacha",
|
||||||
|
"rand_core",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_chacha"
|
||||||
|
version = "0.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
||||||
|
dependencies = [
|
||||||
|
"ppv-lite86",
|
||||||
|
"rand_core",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand_core"
|
name = "rand_core"
|
||||||
version = "0.6.4"
|
version = "0.6.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||||
|
dependencies = [
|
||||||
|
"getrandom",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "range-alloc"
|
name = "range-alloc"
|
||||||
|
@ -3307,6 +3587,15 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "roxmltree"
|
||||||
|
version = "0.16.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fb6d47b59770b0ae88c7f270c68502832ec14d8c7ab5f7a584f204bb76dbfd8e"
|
||||||
|
dependencies = [
|
||||||
|
"xmlparser",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc-demangle"
|
name = "rustc-demangle"
|
||||||
version = "0.1.23"
|
version = "0.1.23"
|
||||||
|
@ -3440,6 +3729,12 @@ version = "0.3.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
|
checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "siphasher"
|
||||||
|
version = "0.3.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "slab"
|
name = "slab"
|
||||||
version = "0.4.8"
|
version = "0.4.8"
|
||||||
|
@ -3566,6 +3861,17 @@ dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "syn-rsx"
|
||||||
|
version = "0.9.0"
|
||||||
|
source = "git+https://github.com/stoically/syn-rsx.git#149109f1420df7a11f5a69e4a9fb90bf57ec4f02"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 1.0.109",
|
||||||
|
"thiserror",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sysinfo"
|
name = "sysinfo"
|
||||||
version = "0.28.4"
|
version = "0.28.4"
|
||||||
|
@ -3591,6 +3897,15 @@ dependencies = [
|
||||||
"slotmap",
|
"slotmap",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tagstr"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/jkb0o/belly#bbc2bbb43071cae3a50d81bd9965e11dbaa1d353"
|
||||||
|
dependencies = [
|
||||||
|
"hashbrown 0.13.2",
|
||||||
|
"lazy_static",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "termcolor"
|
name = "termcolor"
|
||||||
version = "1.2.0"
|
version = "1.2.0"
|
||||||
|
@ -3641,6 +3956,17 @@ dependencies = [
|
||||||
"weezl",
|
"weezl",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time"
|
||||||
|
version = "0.1.45"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"wasi 0.10.0+wasi-snapshot-preview1",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time"
|
name = "time"
|
||||||
version = "0.3.22"
|
version = "0.3.22"
|
||||||
|
@ -3716,6 +4042,15 @@ dependencies = [
|
||||||
"tokio-stream",
|
"tokio-stream",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "toml"
|
||||||
|
version = "0.5.11"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "toml_datetime"
|
name = "toml_datetime"
|
||||||
version = "0.6.2"
|
version = "0.6.2"
|
||||||
|
@ -3913,6 +4248,12 @@ dependencies = [
|
||||||
"winapi-util",
|
"winapi-util",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wasi"
|
||||||
|
version = "0.10.0+wasi-snapshot-preview1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasi"
|
name = "wasi"
|
||||||
version = "0.11.0+wasi-snapshot-preview1"
|
version = "0.11.0+wasi-snapshot-preview1"
|
||||||
|
@ -4468,6 +4809,12 @@ version = "0.8.14"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "52839dc911083a8ef63efa4d039d1f58b5e409f923e44c80828f206f66e5541c"
|
checksum = "52839dc911083a8ef63efa4d039d1f58b5e409f923e44c80828f206f66e5541c"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "xmlparser"
|
||||||
|
version = "0.13.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zip"
|
name = "zip"
|
||||||
version = "0.6.6"
|
version = "0.6.6"
|
||||||
|
@ -4484,7 +4831,7 @@ dependencies = [
|
||||||
"hmac",
|
"hmac",
|
||||||
"pbkdf2",
|
"pbkdf2",
|
||||||
"sha1",
|
"sha1",
|
||||||
"time",
|
"time 0.3.22",
|
||||||
"zstd",
|
"zstd",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ members = ["ray_format"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0.71"
|
anyhow = "1.0.71"
|
||||||
|
belly = { git = "https://github.com/jkb0o/belly", version = "0.2.0" }
|
||||||
bevy = { version = "0.10.1" }
|
bevy = { version = "0.10.1" }
|
||||||
bevy_eventlistener = "0.2.2"
|
bevy_eventlistener = "0.2.2"
|
||||||
bevy_framepace = "0.12.1"
|
bevy_framepace = "0.12.1"
|
||||||
|
@ -27,8 +28,8 @@ default = ["wayland"]
|
||||||
jack = ["cpal/jack"]
|
jack = ["cpal/jack"]
|
||||||
wayland = ["bevy/wayland"]
|
wayland = ["bevy/wayland"]
|
||||||
|
|
||||||
[profile.dev.package."*"]
|
# [profile.dev.package."*"]
|
||||||
opt-level = 3
|
# opt-level = 2
|
||||||
|
|
||||||
[profile.dev]
|
[profile.dev]
|
||||||
opt-level = 1
|
opt-level = 1
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
.left {
|
||||||
|
position-type: absolute;
|
||||||
|
left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.frames-container {
|
||||||
|
width: 150px;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.frame {
|
||||||
|
height: 25%;
|
||||||
|
max-height: 25%;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 5px;
|
||||||
|
stylebox: "square-small.png";
|
||||||
|
aspect-ratio: 1.0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.frame:hover {
|
||||||
|
stylebox-modulate: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.frame img {
|
||||||
|
width: 75%;
|
||||||
|
height: auto;
|
||||||
|
max-height: 75%;
|
||||||
|
}
|
11
src/main.rs
11
src/main.rs
|
@ -21,7 +21,9 @@ mod utils;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
App::new()
|
App::new()
|
||||||
.add_plugins(DefaultPlugins.set(WindowPlugin {
|
.add_plugins(
|
||||||
|
DefaultPlugins
|
||||||
|
.set(WindowPlugin {
|
||||||
primary_window: Some(Window {
|
primary_window: Some(Window {
|
||||||
present_mode: bevy::window::PresentMode::AutoNoVsync,
|
present_mode: bevy::window::PresentMode::AutoNoVsync,
|
||||||
title: "Cathode".into(),
|
title: "Cathode".into(),
|
||||||
|
@ -37,7 +39,12 @@ fn main() {
|
||||||
..default()
|
..default()
|
||||||
}),
|
}),
|
||||||
..default()
|
..default()
|
||||||
}))
|
})
|
||||||
|
.set(AssetPlugin {
|
||||||
|
watch_for_changes: true,
|
||||||
|
..default()
|
||||||
|
}),
|
||||||
|
)
|
||||||
.add_plugins(DefaultPickingPlugins)
|
.add_plugins(DefaultPickingPlugins)
|
||||||
.add_plugin(RayPlugin)
|
.add_plugin(RayPlugin)
|
||||||
.add_plugin(TweeningPlugin)
|
.add_plugin(TweeningPlugin)
|
||||||
|
|
115
src/ui/frames.rs
115
src/ui/frames.rs
|
@ -1,31 +1,15 @@
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
|
use belly::prelude::*;
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use bevy_tweening::{
|
use bevy_tweening::{
|
||||||
lens::{TransformPositionLens, UiPositionLens},
|
lens::{TransformPositionLens, UiPositionLens},
|
||||||
Animator, EaseFunction, Tween,
|
Animator, EaseFunction, Tween,
|
||||||
};
|
};
|
||||||
// use bevy_iced::iced::widget::{container, image as iced_image, space, Space};
|
|
||||||
// use bevy_iced::iced::{theme, Length};
|
|
||||||
// use bevy_iced::{iced::widget::Column, IcedContext};
|
|
||||||
|
|
||||||
use crate::tube::TuberFrames;
|
use crate::tube::TuberFrames;
|
||||||
|
|
||||||
// use super::UiMessage;
|
#[derive(Component, Default)]
|
||||||
|
|
||||||
// type IcedHandle = bevy_iced::iced::image::Handle;
|
|
||||||
|
|
||||||
// fn to_iced_handle(bevy_handle: &Handle<Image>, images: &Res<Assets<Image>>) -> Option<IcedHandle> {
|
|
||||||
// let img = images.get(bevy_handle)?;
|
|
||||||
// let size = img.size();
|
|
||||||
// Some(IcedHandle::from_pixels(
|
|
||||||
// size.x as u32,
|
|
||||||
// size.y as u32,
|
|
||||||
// img.data.clone(),
|
|
||||||
// ))
|
|
||||||
// }
|
|
||||||
|
|
||||||
#[derive(Component)]
|
|
||||||
pub struct FrameCards;
|
pub struct FrameCards;
|
||||||
|
|
||||||
#[derive(Component, Clone, Copy, Deref)]
|
#[derive(Component, Clone, Copy, Deref)]
|
||||||
|
@ -35,108 +19,43 @@ pub struct FrameIndex(usize);
|
||||||
pub struct CardImages([Option<Handle<Image>>; 4]);
|
pub struct CardImages([Option<Handle<Image>>; 4]);
|
||||||
|
|
||||||
pub(super) fn update_card_images(
|
pub(super) fn update_card_images(
|
||||||
|
mut elements: Elements,
|
||||||
tuber_q: Query<(&TuberFrames, Ref<TuberFrames>)>,
|
tuber_q: Query<(&TuberFrames, Ref<TuberFrames>)>,
|
||||||
frame_q: Query<(Entity, &FrameIndex)>,
|
|
||||||
mut image_q: Query<(&mut UiImage, &mut Visibility)>,
|
|
||||||
) {
|
) {
|
||||||
for (frames, changed) in tuber_q.iter() {
|
for (frames, changed) in tuber_q.iter() {
|
||||||
if !changed.is_changed() {
|
if !changed.is_changed() {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (ent, index) in frame_q.iter() {
|
for (i, frame) in frames.iter().enumerate() {
|
||||||
let Ok((mut img, mut vis)) = image_q.get_mut(ent) else { continue };
|
//remove any old children
|
||||||
if let Some(new_image) = frames[**index].clone() {
|
// elements.select(format!("#frame-{i} > *").as_str()).remove();
|
||||||
img.texture = new_image.clone();
|
if let Some(img) = frame {
|
||||||
*vis = Visibility::Inherited;
|
let handle = img.clone();
|
||||||
} else {
|
elements
|
||||||
img.texture = Handle::default();
|
.select(format!("#frame-{i}").as_str())
|
||||||
*vis = Visibility::Hidden;
|
.add_child(eml! {
|
||||||
|
<img src=handle />
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const RESTING_POS: f32 = 2.;
|
const RESTING_POS: f32 = 0.0;
|
||||||
|
|
||||||
pub(super) fn render_cards(mut commands: Commands, images: Res<CardImages>, ass: Res<AssetServer>) {
|
|
||||||
commands
|
|
||||||
.spawn(NodeBundle {
|
|
||||||
style: Style {
|
|
||||||
display: Display::Flex,
|
|
||||||
flex_direction: FlexDirection::Column,
|
|
||||||
justify_content: JustifyContent::SpaceBetween,
|
|
||||||
position_type: PositionType::Absolute,
|
|
||||||
position: UiRect::left(Val::Px(RESTING_POS)),
|
|
||||||
size: Size::height(Val::Percent(100.)),
|
|
||||||
..default()
|
|
||||||
},
|
|
||||||
..default()
|
|
||||||
})
|
|
||||||
.insert(FrameCards)
|
|
||||||
.with_children(|parent| {
|
|
||||||
for i in 0..4 {
|
|
||||||
parent
|
|
||||||
.spawn(NodeBundle {
|
|
||||||
style: Style {
|
|
||||||
justify_content: JustifyContent::Center,
|
|
||||||
align_items: AlignItems::Center,
|
|
||||||
padding: UiRect::all(Val::Px(10.)),
|
|
||||||
..default()
|
|
||||||
},
|
|
||||||
..default()
|
|
||||||
})
|
|
||||||
.with_children(|parent| {
|
|
||||||
parent
|
|
||||||
.spawn(ImageBundle {
|
|
||||||
style: Style {
|
|
||||||
padding: UiRect::all(Val::Px(10.)),
|
|
||||||
margin: UiRect::all(Val::Px(5.)),
|
|
||||||
..default()
|
|
||||||
},
|
|
||||||
background_color: Color::CYAN.into(),
|
|
||||||
image: UiImage::new(ass.load("plain-square.png")),
|
|
||||||
..default()
|
|
||||||
})
|
|
||||||
.with_children(|parent| {
|
|
||||||
let mut child = if let Some(image) = &images[i] {
|
|
||||||
parent.spawn(ImageBundle {
|
|
||||||
style: Style {
|
|
||||||
size: Size::new(Val::Px(100.), Val::Auto),
|
|
||||||
aspect_ratio: Some(1.),
|
|
||||||
..default()
|
|
||||||
},
|
|
||||||
image: UiImage::new(image.clone()),
|
|
||||||
..default()
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
parent.spawn(ImageBundle {
|
|
||||||
style: Style {
|
|
||||||
size: Size::new(Val::Px(100.), Val::Auto),
|
|
||||||
aspect_ratio: Some(1.),
|
|
||||||
..default()
|
|
||||||
},
|
|
||||||
..default()
|
|
||||||
})
|
|
||||||
};
|
|
||||||
|
|
||||||
child.insert(FrameIndex(i));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(super) fn hide(commands: &mut Commands, current_pos: UiRect, entity: Entity) {
|
pub(super) fn hide(commands: &mut Commands, current_pos: UiRect, entity: Entity) {
|
||||||
let anim = Tween::new(
|
let anim = Tween::new(
|
||||||
EaseFunction::BackInOut,
|
EaseFunction::BackInOut,
|
||||||
Duration::from_millis(500),
|
Duration::from_millis(500),
|
||||||
UiPositionLens {
|
UiPositionLens {
|
||||||
start: current_pos,
|
start: UiRect::left(Val::Px(0.0)),
|
||||||
end: UiRect::left(Val::Px(-200.)),
|
end: UiRect::left(Val::Px(-200.)),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.with_repeat_count(1);
|
.with_repeat_count(1);
|
||||||
|
|
||||||
|
dbg!(current_pos);
|
||||||
|
|
||||||
commands.entity(entity).insert(Animator::new(anim));
|
commands.entity(entity).insert(Animator::new(anim));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ mod frames;
|
||||||
mod levels;
|
mod levels;
|
||||||
mod widgets;
|
mod widgets;
|
||||||
|
|
||||||
|
use belly::prelude::*;
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use bevy_ninepatch::NinePatchPlugin;
|
use bevy_ninepatch::NinePatchPlugin;
|
||||||
|
|
||||||
|
@ -20,17 +21,34 @@ pub struct UiPlugin;
|
||||||
|
|
||||||
impl Plugin for UiPlugin {
|
impl Plugin for UiPlugin {
|
||||||
fn build(&self, app: &mut App) {
|
fn build(&self, app: &mut App) {
|
||||||
app.add_plugin(NinePatchPlugin::<()>::default())
|
app.add_plugin(BellyPlugin)
|
||||||
.add_plugin(levels::LevelsPlugin)
|
|
||||||
.init_resource::<CardImages>()
|
|
||||||
.add_event::<UiMessage>()
|
.add_event::<UiMessage>()
|
||||||
.add_startup_system(frames::update_card_images)
|
.add_startup_system(setup_ui)
|
||||||
.add_system(handle_msg)
|
.add_system(handle_msg)
|
||||||
.add_system(frames::update_card_images.before(frames::render_cards))
|
.add_system(frames::update_card_images);
|
||||||
.add_startup_system(frames::render_cards);
|
// app.add_plugin(NinePatchPlugin::<()>::default())
|
||||||
|
// .add_plugin(levels::LevelsPlugin)
|
||||||
|
// .init_resource::<CardImages>()
|
||||||
|
// .add_startup_system(frames::update_card_images)
|
||||||
|
// .add_system(frames::update_card_images.before(frames::render_cards))
|
||||||
|
// .add_startup_system(frames::render_cards);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn setup_ui(mut commands: Commands) {
|
||||||
|
commands.add(StyleSheet::load("style.ess"));
|
||||||
|
commands.add(eml! {
|
||||||
|
<body>
|
||||||
|
<div c:left c:frames-container with=FrameCards s:left="0px" s:left=managed()>
|
||||||
|
<for i in=0..4>
|
||||||
|
<div c:frame id=format!("frame-{i}")>
|
||||||
|
</div>
|
||||||
|
</for>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
fn handle_msg(
|
fn handle_msg(
|
||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
mut events: EventReader<UiMessage>,
|
mut events: EventReader<UiMessage>,
|
||||||
|
@ -39,17 +57,17 @@ fn handle_msg(
|
||||||
) {
|
) {
|
||||||
for event in events.iter() {
|
for event in events.iter() {
|
||||||
let Ok((frames, frame_style)) = frame_q.get_single() else { return };
|
let Ok((frames, frame_style)) = frame_q.get_single() else { return };
|
||||||
let Ok((bars, bar_style)) = levels_q.get_single() else { return };
|
// let Ok((bars, bar_style)) = levels_q.get_single() else { return };
|
||||||
match event {
|
match event {
|
||||||
UiMessage::Hide => {
|
UiMessage::Hide => {
|
||||||
info!("Hide UI");
|
info!("Hide UI");
|
||||||
frames::hide(&mut commands, frame_style.position, frames);
|
frames::hide(&mut commands, frame_style.position, frames);
|
||||||
levels::hide(&mut commands, bar_style.position, bars);
|
// levels::hide(&mut commands, bar_style.position, bars);
|
||||||
}
|
}
|
||||||
UiMessage::Show => {
|
UiMessage::Show => {
|
||||||
info!("Show UI");
|
info!("Show UI");
|
||||||
frames::show(&mut commands, frame_style.position, frames);
|
frames::show(&mut commands, frame_style.position, frames);
|
||||||
levels::show(&mut commands, bar_style.position, bars);
|
// levels::show(&mut commands, bar_style.position, bars);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue