basic UI with belly
parent
92b9d8f752
commit
07233e0e12
|
@ -2,6 +2,12 @@
|
|||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "Inflector"
|
||||
version = "0.11.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
|
||||
|
||||
[[package]]
|
||||
name = "ab_glyph"
|
||||
version = "0.2.21"
|
||||
|
@ -176,6 +182,12 @@ version = "0.2.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
|
||||
|
||||
[[package]]
|
||||
name = "android-tzdata"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
|
||||
|
||||
[[package]]
|
||||
name = "android_log-sys"
|
||||
version = "0.2.0"
|
||||
|
@ -316,6 +328,62 @@ version = "1.6.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
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]]
|
||||
name = "bevy"
|
||||
version = "0.10.1"
|
||||
|
@ -979,6 +1047,14 @@ dependencies = [
|
|||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bevy_stylebox"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/jkb0o/belly#bbc2bbb43071cae3a50d81bd9965e11dbaa1d353"
|
||||
dependencies = [
|
||||
"bevy",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bevy_tasks"
|
||||
version = "0.10.1"
|
||||
|
@ -1093,7 +1169,7 @@ dependencies = [
|
|||
"ahash 0.7.6",
|
||||
"bevy_utils_proc_macros",
|
||||
"getrandom",
|
||||
"hashbrown",
|
||||
"hashbrown 0.12.3",
|
||||
"instant",
|
||||
"petgraph",
|
||||
"thiserror",
|
||||
|
@ -1310,6 +1386,7 @@ name = "cathode"
|
|||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"belly",
|
||||
"bevy",
|
||||
"bevy_eventlistener",
|
||||
"bevy_framepace",
|
||||
|
@ -1359,6 +1436,21 @@ version = "0.1.1"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
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]]
|
||||
name = "cipher"
|
||||
version = "0.4.4"
|
||||
|
@ -1635,6 +1727,33 @@ dependencies = [
|
|||
"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]]
|
||||
name = "d3d12"
|
||||
version = "0.6.0"
|
||||
|
@ -1705,12 +1824,39 @@ version = "1.2.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
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]]
|
||||
name = "either"
|
||||
version = "1.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
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]]
|
||||
name = "encase"
|
||||
version = "0.5.0"
|
||||
|
@ -1933,7 +2079,7 @@ dependencies = [
|
|||
"cfg-if",
|
||||
"js-sys",
|
||||
"libc",
|
||||
"wasi",
|
||||
"wasi 0.11.0+wasi-snapshot-preview1",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
|
@ -2100,7 +2246,7 @@ checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a"
|
|||
dependencies = [
|
||||
"bitflags",
|
||||
"gpu-descriptor-types",
|
||||
"hashbrown",
|
||||
"hashbrown 0.12.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2141,6 +2287,15 @@ dependencies = [
|
|||
"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]]
|
||||
name = "hassle-rs"
|
||||
version = "0.9.0"
|
||||
|
@ -2196,6 +2351,29 @@ dependencies = [
|
|||
"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]]
|
||||
name = "image"
|
||||
version = "0.24.6"
|
||||
|
@ -2222,7 +2400,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"hashbrown",
|
||||
"hashbrown 0.12.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2288,6 +2466,15 @@ dependencies = [
|
|||
"mach2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.10.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
|
||||
dependencies = [
|
||||
"either",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "itoa"
|
||||
version = "1.0.6"
|
||||
|
@ -2520,6 +2707,12 @@ dependencies = [
|
|||
"regex-automata",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "matches"
|
||||
version = "0.1.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.5.0"
|
||||
|
@ -2600,7 +2793,7 @@ checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
|
|||
dependencies = [
|
||||
"libc",
|
||||
"log",
|
||||
"wasi",
|
||||
"wasi 0.11.0+wasi-snapshot-preview1",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
|
@ -3022,6 +3215,50 @@ dependencies = [
|
|||
"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]]
|
||||
name = "pin-project"
|
||||
version = "1.1.0"
|
||||
|
@ -3076,6 +3313,12 @@ 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"
|
||||
|
@ -3101,6 +3344,19 @@ dependencies = [
|
|||
"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]]
|
||||
name = "profiling"
|
||||
version = "1.0.8"
|
||||
|
@ -3131,11 +3387,35 @@ version = "0.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
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]]
|
||||
name = "rand_core"
|
||||
version = "0.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "range-alloc"
|
||||
|
@ -3307,6 +3587,15 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "roxmltree"
|
||||
version = "0.16.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fb6d47b59770b0ae88c7f270c68502832ec14d8c7ab5f7a584f204bb76dbfd8e"
|
||||
dependencies = [
|
||||
"xmlparser",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustc-demangle"
|
||||
version = "0.1.23"
|
||||
|
@ -3440,6 +3729,12 @@ version = "0.3.5"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
|
||||
|
||||
[[package]]
|
||||
name = "siphasher"
|
||||
version = "0.3.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
|
||||
|
||||
[[package]]
|
||||
name = "slab"
|
||||
version = "0.4.8"
|
||||
|
@ -3566,6 +3861,17 @@ dependencies = [
|
|||
"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]]
|
||||
name = "sysinfo"
|
||||
version = "0.28.4"
|
||||
|
@ -3591,6 +3897,15 @@ dependencies = [
|
|||
"slotmap",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tagstr"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/jkb0o/belly#bbc2bbb43071cae3a50d81bd9965e11dbaa1d353"
|
||||
dependencies = [
|
||||
"hashbrown 0.13.2",
|
||||
"lazy_static",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "termcolor"
|
||||
version = "1.2.0"
|
||||
|
@ -3641,6 +3956,17 @@ dependencies = [
|
|||
"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]]
|
||||
name = "time"
|
||||
version = "0.3.22"
|
||||
|
@ -3716,6 +4042,15 @@ dependencies = [
|
|||
"tokio-stream",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml"
|
||||
version = "0.5.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml_datetime"
|
||||
version = "0.6.2"
|
||||
|
@ -3913,6 +4248,12 @@ dependencies = [
|
|||
"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]]
|
||||
name = "wasi"
|
||||
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"
|
||||
checksum = "52839dc911083a8ef63efa4d039d1f58b5e409f923e44c80828f206f66e5541c"
|
||||
|
||||
[[package]]
|
||||
name = "xmlparser"
|
||||
version = "0.13.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd"
|
||||
|
||||
[[package]]
|
||||
name = "zip"
|
||||
version = "0.6.6"
|
||||
|
@ -4484,7 +4831,7 @@ dependencies = [
|
|||
"hmac",
|
||||
"pbkdf2",
|
||||
"sha1",
|
||||
"time",
|
||||
"time 0.3.22",
|
||||
"zstd",
|
||||
]
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ members = ["ray_format"]
|
|||
|
||||
[dependencies]
|
||||
anyhow = "1.0.71"
|
||||
belly = { git = "https://github.com/jkb0o/belly", version = "0.2.0" }
|
||||
bevy = { version = "0.10.1" }
|
||||
bevy_eventlistener = "0.2.2"
|
||||
bevy_framepace = "0.12.1"
|
||||
|
@ -27,8 +28,8 @@ default = ["wayland"]
|
|||
jack = ["cpal/jack"]
|
||||
wayland = ["bevy/wayland"]
|
||||
|
||||
[profile.dev.package."*"]
|
||||
opt-level = 3
|
||||
# [profile.dev.package."*"]
|
||||
# opt-level = 2
|
||||
|
||||
[profile.dev]
|
||||
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%;
|
||||
}
|
41
src/main.rs
41
src/main.rs
|
@ -21,23 +21,30 @@ mod utils;
|
|||
|
||||
fn main() {
|
||||
App::new()
|
||||
.add_plugins(DefaultPlugins.set(WindowPlugin {
|
||||
primary_window: Some(Window {
|
||||
present_mode: bevy::window::PresentMode::AutoNoVsync,
|
||||
title: "Cathode".into(),
|
||||
transparent: true,
|
||||
resolution: WindowResolution::new(800., 600.),
|
||||
resizable: false,
|
||||
resize_constraints: WindowResizeConstraints {
|
||||
min_width: 400.,
|
||||
min_height: 300.,
|
||||
max_width: 1920.,
|
||||
max_height: 1080.,
|
||||
},
|
||||
..default()
|
||||
}),
|
||||
..default()
|
||||
}))
|
||||
.add_plugins(
|
||||
DefaultPlugins
|
||||
.set(WindowPlugin {
|
||||
primary_window: Some(Window {
|
||||
present_mode: bevy::window::PresentMode::AutoNoVsync,
|
||||
title: "Cathode".into(),
|
||||
transparent: true,
|
||||
resolution: WindowResolution::new(800., 600.),
|
||||
resizable: false,
|
||||
resize_constraints: WindowResizeConstraints {
|
||||
min_width: 400.,
|
||||
min_height: 300.,
|
||||
max_width: 1920.,
|
||||
max_height: 1080.,
|
||||
},
|
||||
..default()
|
||||
}),
|
||||
..default()
|
||||
})
|
||||
.set(AssetPlugin {
|
||||
watch_for_changes: true,
|
||||
..default()
|
||||
}),
|
||||
)
|
||||
.add_plugins(DefaultPickingPlugins)
|
||||
.add_plugin(RayPlugin)
|
||||
.add_plugin(TweeningPlugin)
|
||||
|
|
115
src/ui/frames.rs
115
src/ui/frames.rs
|
@ -1,31 +1,15 @@
|
|||
use std::time::Duration;
|
||||
|
||||
use belly::prelude::*;
|
||||
use bevy::prelude::*;
|
||||
use bevy_tweening::{
|
||||
lens::{TransformPositionLens, UiPositionLens},
|
||||
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 super::UiMessage;
|
||||
|
||||
// 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)]
|
||||
#[derive(Component, Default)]
|
||||
pub struct FrameCards;
|
||||
|
||||
#[derive(Component, Clone, Copy, Deref)]
|
||||
|
@ -35,108 +19,43 @@ pub struct FrameIndex(usize);
|
|||
pub struct CardImages([Option<Handle<Image>>; 4]);
|
||||
|
||||
pub(super) fn update_card_images(
|
||||
mut elements: Elements,
|
||||
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() {
|
||||
if !changed.is_changed() {
|
||||
continue;
|
||||
}
|
||||
for (ent, index) in frame_q.iter() {
|
||||
let Ok((mut img, mut vis)) = image_q.get_mut(ent) else { continue };
|
||||
if let Some(new_image) = frames[**index].clone() {
|
||||
img.texture = new_image.clone();
|
||||
*vis = Visibility::Inherited;
|
||||
} else {
|
||||
img.texture = Handle::default();
|
||||
*vis = Visibility::Hidden;
|
||||
for (i, frame) in frames.iter().enumerate() {
|
||||
//remove any old children
|
||||
// elements.select(format!("#frame-{i} > *").as_str()).remove();
|
||||
if let Some(img) = frame {
|
||||
let handle = img.clone();
|
||||
elements
|
||||
.select(format!("#frame-{i}").as_str())
|
||||
.add_child(eml! {
|
||||
<img src=handle />
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const RESTING_POS: f32 = 2.;
|
||||
|
||||
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));
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
const RESTING_POS: f32 = 0.0;
|
||||
|
||||
pub(super) fn hide(commands: &mut Commands, current_pos: UiRect, entity: Entity) {
|
||||
let anim = Tween::new(
|
||||
EaseFunction::BackInOut,
|
||||
Duration::from_millis(500),
|
||||
UiPositionLens {
|
||||
start: current_pos,
|
||||
start: UiRect::left(Val::Px(0.0)),
|
||||
end: UiRect::left(Val::Px(-200.)),
|
||||
},
|
||||
)
|
||||
.with_repeat_count(1);
|
||||
|
||||
dbg!(current_pos);
|
||||
|
||||
commands.entity(entity).insert(Animator::new(anim));
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ mod frames;
|
|||
mod levels;
|
||||
mod widgets;
|
||||
|
||||
use belly::prelude::*;
|
||||
use bevy::prelude::*;
|
||||
use bevy_ninepatch::NinePatchPlugin;
|
||||
|
||||
|
@ -20,17 +21,34 @@ pub struct UiPlugin;
|
|||
|
||||
impl Plugin for UiPlugin {
|
||||
fn build(&self, app: &mut App) {
|
||||
app.add_plugin(NinePatchPlugin::<()>::default())
|
||||
.add_plugin(levels::LevelsPlugin)
|
||||
.init_resource::<CardImages>()
|
||||
app.add_plugin(BellyPlugin)
|
||||
.add_event::<UiMessage>()
|
||||
.add_startup_system(frames::update_card_images)
|
||||
.add_startup_system(setup_ui)
|
||||
.add_system(handle_msg)
|
||||
.add_system(frames::update_card_images.before(frames::render_cards))
|
||||
.add_startup_system(frames::render_cards);
|
||||
.add_system(frames::update_card_images);
|
||||
// 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(
|
||||
mut commands: Commands,
|
||||
mut events: EventReader<UiMessage>,
|
||||
|
@ -39,17 +57,17 @@ fn handle_msg(
|
|||
) {
|
||||
for event in events.iter() {
|
||||
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 {
|
||||
UiMessage::Hide => {
|
||||
info!("Hide UI");
|
||||
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 => {
|
||||
info!("Show UI");
|
||||
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