Compare commits
No commits in common. "ec796ff97444467dbd8154c41ce4dcb808c0141a" and "67123efa6c1eac17af9debc486000b91c7da39c2" have entirely different histories.
ec796ff974
...
67123efa6c
|
@ -84,54 +84,6 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstream"
|
|
||||||
version = "0.6.11"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
|
|
||||||
dependencies = [
|
|
||||||
"anstyle",
|
|
||||||
"anstyle-parse",
|
|
||||||
"anstyle-query",
|
|
||||||
"anstyle-wincon",
|
|
||||||
"colorchoice",
|
|
||||||
"utf8parse",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstyle"
|
|
||||||
version = "1.0.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstyle-parse"
|
|
||||||
version = "0.2.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
|
|
||||||
dependencies = [
|
|
||||||
"utf8parse",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstyle-query"
|
|
||||||
version = "1.0.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
|
|
||||||
dependencies = [
|
|
||||||
"windows-sys 0.52.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstyle-wincon"
|
|
||||||
version = "3.0.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
|
|
||||||
dependencies = [
|
|
||||||
"anstyle",
|
|
||||||
"windows-sys 0.52.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "anyhow"
|
name = "anyhow"
|
||||||
version = "1.0.76"
|
version = "1.0.76"
|
||||||
|
@ -315,46 +267,6 @@ 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 = "clap"
|
|
||||||
version = "4.4.18"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
|
|
||||||
dependencies = [
|
|
||||||
"clap_builder",
|
|
||||||
"clap_derive",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clap_builder"
|
|
||||||
version = "4.4.18"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
|
|
||||||
dependencies = [
|
|
||||||
"anstream",
|
|
||||||
"anstyle",
|
|
||||||
"clap_lex",
|
|
||||||
"strsim",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clap_derive"
|
|
||||||
version = "4.4.7"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
|
|
||||||
dependencies = [
|
|
||||||
"heck",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn 2.0.42",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clap_lex"
|
|
||||||
version = "0.6.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "codespan-reporting"
|
name = "codespan-reporting"
|
||||||
version = "0.11.1"
|
version = "0.11.1"
|
||||||
|
@ -371,12 +283,6 @@ version = "1.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
|
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "colorchoice"
|
|
||||||
version = "1.0.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "com-rs"
|
name = "com-rs"
|
||||||
version = "0.2.1"
|
version = "0.2.1"
|
||||||
|
@ -716,18 +622,14 @@ name = "galactica"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
|
||||||
"galactica-content",
|
"galactica-content",
|
||||||
"galactica-packer",
|
|
||||||
"galactica-playeragent",
|
"galactica-playeragent",
|
||||||
"galactica-render",
|
"galactica-render",
|
||||||
"galactica-system",
|
"galactica-system",
|
||||||
"galactica-util",
|
"galactica-util",
|
||||||
"image",
|
|
||||||
"nalgebra",
|
"nalgebra",
|
||||||
"pollster",
|
"pollster",
|
||||||
"rand",
|
"rand",
|
||||||
"walkdir",
|
|
||||||
"wgpu",
|
"wgpu",
|
||||||
"winit",
|
"winit",
|
||||||
]
|
]
|
||||||
|
@ -973,12 +875,6 @@ dependencies = [
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "heck"
|
|
||||||
version = "0.4.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hexf-parse"
|
name = "hexf-parse"
|
||||||
version = "0.2.1"
|
version = "0.2.1"
|
||||||
|
@ -2007,12 +1903,6 @@ 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 = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
|
checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "strsim"
|
|
||||||
version = "0.10.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "svg_fmt"
|
name = "svg_fmt"
|
||||||
version = "0.4.1"
|
version = "0.4.1"
|
||||||
|
@ -2263,12 +2153,6 @@ version = "0.2.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
|
checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "utf8parse"
|
|
||||||
version = "0.2.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vec_map"
|
name = "vec_map"
|
||||||
version = "0.8.2"
|
version = "0.8.2"
|
||||||
|
@ -2638,15 +2522,6 @@ dependencies = [
|
||||||
"windows-targets 0.48.5",
|
"windows-targets 0.48.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-sys"
|
|
||||||
version = "0.52.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
|
||||||
dependencies = [
|
|
||||||
"windows-targets 0.52.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows-targets"
|
name = "windows-targets"
|
||||||
version = "0.42.2"
|
version = "0.42.2"
|
||||||
|
@ -2677,21 +2552,6 @@ dependencies = [
|
||||||
"windows_x86_64_msvc 0.48.5",
|
"windows_x86_64_msvc 0.48.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-targets"
|
|
||||||
version = "0.52.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
|
|
||||||
dependencies = [
|
|
||||||
"windows_aarch64_gnullvm 0.52.0",
|
|
||||||
"windows_aarch64_msvc 0.52.0",
|
|
||||||
"windows_i686_gnu 0.52.0",
|
|
||||||
"windows_i686_msvc 0.52.0",
|
|
||||||
"windows_x86_64_gnu 0.52.0",
|
|
||||||
"windows_x86_64_gnullvm 0.52.0",
|
|
||||||
"windows_x86_64_msvc 0.52.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_aarch64_gnullvm"
|
name = "windows_aarch64_gnullvm"
|
||||||
version = "0.42.2"
|
version = "0.42.2"
|
||||||
|
@ -2704,12 +2564,6 @@ version = "0.48.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
|
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows_aarch64_gnullvm"
|
|
||||||
version = "0.52.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_aarch64_msvc"
|
name = "windows_aarch64_msvc"
|
||||||
version = "0.42.2"
|
version = "0.42.2"
|
||||||
|
@ -2722,12 +2576,6 @@ version = "0.48.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
|
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows_aarch64_msvc"
|
|
||||||
version = "0.52.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_i686_gnu"
|
name = "windows_i686_gnu"
|
||||||
version = "0.42.2"
|
version = "0.42.2"
|
||||||
|
@ -2740,12 +2588,6 @@ version = "0.48.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
|
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows_i686_gnu"
|
|
||||||
version = "0.52.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_i686_msvc"
|
name = "windows_i686_msvc"
|
||||||
version = "0.42.2"
|
version = "0.42.2"
|
||||||
|
@ -2758,12 +2600,6 @@ version = "0.48.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
|
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows_i686_msvc"
|
|
||||||
version = "0.52.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_x86_64_gnu"
|
name = "windows_x86_64_gnu"
|
||||||
version = "0.42.2"
|
version = "0.42.2"
|
||||||
|
@ -2776,12 +2612,6 @@ version = "0.48.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
|
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows_x86_64_gnu"
|
|
||||||
version = "0.52.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_x86_64_gnullvm"
|
name = "windows_x86_64_gnullvm"
|
||||||
version = "0.42.2"
|
version = "0.42.2"
|
||||||
|
@ -2794,12 +2624,6 @@ version = "0.48.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
|
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows_x86_64_gnullvm"
|
|
||||||
version = "0.52.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_x86_64_msvc"
|
name = "windows_x86_64_msvc"
|
||||||
version = "0.42.2"
|
version = "0.42.2"
|
||||||
|
@ -2812,12 +2636,6 @@ version = "0.48.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows_x86_64_msvc"
|
|
||||||
version = "0.52.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "winit"
|
name = "winit"
|
||||||
version = "0.28.7"
|
version = "0.28.7"
|
||||||
|
|
|
@ -71,4 +71,3 @@ walkdir = "2.4.0"
|
||||||
toml = "0.8.8"
|
toml = "0.8.8"
|
||||||
glyphon = "0.4.1"
|
glyphon = "0.4.1"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
clap = { version = "4.4.18", features = ["derive"] }
|
|
||||||
|
|
3
TODO.md
3
TODO.md
|
@ -3,7 +3,6 @@
|
||||||
## Currently working on:
|
## Currently working on:
|
||||||
- first: remove object array
|
- first: remove object array
|
||||||
- first: sticky particles
|
- first: sticky particles
|
||||||
- first: rework timings
|
|
||||||
- clickable buttons
|
- clickable buttons
|
||||||
- planet outfitter
|
- planet outfitter
|
||||||
|
|
||||||
|
@ -44,7 +43,7 @@
|
||||||
- User config file
|
- User config file
|
||||||
- 🌟 Document content
|
- 🌟 Document content
|
||||||
- 🌟 Clean up content: one ship per file, autodetect
|
- 🌟 Clean up content: one ship per file, autodetect
|
||||||
- CLI: content location, logs, etc
|
- CLI: pack sprites(?), check content, content location, logs, etc
|
||||||
- Better WGSL preprocessor?
|
- Better WGSL preprocessor?
|
||||||
- Projectile performance
|
- Projectile performance
|
||||||
- Starfield clusters, shader instead of an array?
|
- Starfield clusters, shader instead of an array?
|
||||||
|
|
2
assets
2
assets
|
@ -1 +1 @@
|
||||||
Subproject commit e51b880b91e712214db025d97c9fbb3ccb3df7c3
|
Subproject commit f749d99ae63bcdefb4a62774d21f30a7eebc20d3
|
|
@ -26,7 +26,6 @@ galactica-render = { workspace = true }
|
||||||
galactica-util = { workspace = true }
|
galactica-util = { workspace = true }
|
||||||
galactica-system = { workspace = true }
|
galactica-system = { workspace = true }
|
||||||
galactica-playeragent = { workspace = true }
|
galactica-playeragent = { workspace = true }
|
||||||
galactica-packer = { workspace = true }
|
|
||||||
|
|
||||||
rand = { workspace = true }
|
rand = { workspace = true }
|
||||||
winit = { workspace = true }
|
winit = { workspace = true }
|
||||||
|
@ -34,6 +33,3 @@ wgpu = { workspace = true }
|
||||||
pollster = { workspace = true }
|
pollster = { workspace = true }
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
nalgebra = { workspace = true }
|
nalgebra = { workspace = true }
|
||||||
clap = { workspace = true }
|
|
||||||
walkdir = { workspace = true }
|
|
||||||
image = { workspace = true }
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
pub mod packer;
|
|
|
@ -1,7 +1,6 @@
|
||||||
mod game;
|
mod game;
|
||||||
|
|
||||||
use anyhow::{bail, Result};
|
use anyhow::{bail, Result};
|
||||||
use clap::Parser;
|
|
||||||
use galactica_content::{Content, SystemHandle};
|
use galactica_content::{Content, SystemHandle};
|
||||||
use galactica_playeragent::{PlayerAgent, PlayerStatus};
|
use galactica_playeragent::{PlayerAgent, PlayerStatus};
|
||||||
use galactica_render::RenderInput;
|
use galactica_render::RenderInput;
|
||||||
|
@ -21,38 +20,7 @@ use winit::{
|
||||||
window::WindowBuilder,
|
window::WindowBuilder,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[derive(Parser, Debug)]
|
fn main() {
|
||||||
#[command(author, version, about, long_about = None)]
|
|
||||||
struct Args {
|
|
||||||
/// Run the asset packer
|
|
||||||
#[arg(long, action, group = "run")]
|
|
||||||
pack: bool,
|
|
||||||
|
|
||||||
/// Check content in the default directory
|
|
||||||
#[arg(long, action, group = "run")]
|
|
||||||
check_content: bool,
|
|
||||||
}
|
|
||||||
|
|
||||||
mod cli;
|
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
|
||||||
let args = Args::parse();
|
|
||||||
|
|
||||||
let cache_dir = Path::new(ASSET_CACHE);
|
|
||||||
fs::create_dir_all(cache_dir)?;
|
|
||||||
|
|
||||||
if args.pack {
|
|
||||||
cli::packer::run(Path::new("./assets/render"), cache_dir)?;
|
|
||||||
} else if args.check_content {
|
|
||||||
let atlas_index = cache_dir.join("spriteatlas.toml");
|
|
||||||
let _ = Content::load_dir(
|
|
||||||
PathBuf::from("./content"),
|
|
||||||
PathBuf::from("./assets"),
|
|
||||||
atlas_index.clone(),
|
|
||||||
)?;
|
|
||||||
println!("Content was loaded without errors.")
|
|
||||||
} else {
|
|
||||||
// Run game
|
|
||||||
if let Err(err) = try_main() {
|
if let Err(err) = try_main() {
|
||||||
eprintln!("Galactica failed with an error");
|
eprintln!("Galactica failed with an error");
|
||||||
|
|
||||||
|
@ -65,9 +33,6 @@ fn main() -> Result<()> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Ok(());
|
|
||||||
}
|
|
||||||
|
|
||||||
fn try_main() -> Result<()> {
|
fn try_main() -> Result<()> {
|
||||||
let cache_dir = Path::new(ASSET_CACHE);
|
let cache_dir = Path::new(ASSET_CACHE);
|
||||||
fs::create_dir_all(cache_dir)?;
|
fs::create_dir_all(cache_dir)?;
|
||||||
|
@ -78,11 +43,11 @@ fn try_main() -> Result<()> {
|
||||||
bail!("Could not find sprite atlas!");
|
bail!("Could not find sprite atlas!");
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: pretty error if missing (also in cli)
|
// TODO: pretty error if missing
|
||||||
let content = Content::load_dir(
|
let content = Content::load_dir(
|
||||||
PathBuf::from("./content"),
|
PathBuf::from("./content"),
|
||||||
PathBuf::from("./assets"),
|
PathBuf::from("./assets"),
|
||||||
atlas_index,
|
atlas_index.clone(),
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
let event_loop = EventLoop::new();
|
let event_loop = EventLoop::new();
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
[[bin]]
|
||||||
|
name = "galactica-packer"
|
||||||
|
path = "src/main.rs"
|
||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "galactica-packer"
|
name = "galactica-packer"
|
||||||
description = "Galactica's sprite packer"
|
description = "Galactica's sprite packer"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use crate::{SpriteAtlas, SpriteAtlasImage};
|
|
||||||
use anyhow::{bail, Context, Result};
|
use anyhow::{bail, Context, Result};
|
||||||
|
use galactica_packer::{SpriteAtlas, SpriteAtlasImage};
|
||||||
use image::{imageops, GenericImageView, ImageBuffer, Rgba, RgbaImage};
|
use image::{imageops, GenericImageView, ImageBuffer, Rgba, RgbaImage};
|
||||||
use std::{
|
use std::{
|
||||||
fs::File,
|
fs::File,
|
||||||
|
@ -16,7 +16,6 @@ use std::{
|
||||||
// image: a single file
|
// image: a single file
|
||||||
// sprite: a possibly animated texture
|
// sprite: a possibly animated texture
|
||||||
|
|
||||||
/// Builds a set of atlas textures from input image files
|
|
||||||
pub struct AtlasSet {
|
pub struct AtlasSet {
|
||||||
/// The width of each atlas
|
/// The width of each atlas
|
||||||
texture_width: u32,
|
texture_width: u32,
|
||||||
|
@ -57,7 +56,6 @@ pub struct AtlasSet {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AtlasSet {
|
impl AtlasSet {
|
||||||
/// Make a new AtlasSet
|
|
||||||
pub fn new(
|
pub fn new(
|
||||||
texture_width: u32,
|
texture_width: u32,
|
||||||
texture_height: u32,
|
texture_height: u32,
|
||||||
|
@ -225,7 +223,6 @@ impl AtlasSet {
|
||||||
return Ok(atlas_idx);
|
return Ok(atlas_idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Save the index and all atlas files
|
|
||||||
pub fn save_files<F>(mut self, atlas_path: F, index_path: &Path) -> Result<()>
|
pub fn save_files<F>(mut self, atlas_path: F, index_path: &Path) -> Result<()>
|
||||||
where
|
where
|
||||||
F: Fn(usize) -> PathBuf,
|
F: Fn(usize) -> PathBuf,
|
||||||
|
@ -268,7 +265,6 @@ impl AtlasSet {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/// Get the current packing efficiency of this set, over all atlases.
|
|
||||||
pub fn get_efficiency(&self) -> f64 {
|
pub fn get_efficiency(&self) -> f64 {
|
||||||
self.used_area
|
self.used_area
|
||||||
/ (self.texture_height as f64
|
/ (self.texture_height as f64
|
||||||
|
|
|
@ -2,9 +2,6 @@
|
||||||
|
|
||||||
//! This crate creates texture atlases from an asset tree.
|
//! This crate creates texture atlases from an asset tree.
|
||||||
|
|
||||||
mod atlasset;
|
|
||||||
pub use atlasset::*;
|
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
collections::HashMap,
|
collections::HashMap,
|
||||||
num::NonZeroU32,
|
num::NonZeroU32,
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
|
mod atlasset;
|
||||||
|
|
||||||
|
use atlasset::AtlasSet;
|
||||||
|
|
||||||
use anyhow::{bail, Context, Result};
|
use anyhow::{bail, Context, Result};
|
||||||
use galactica_packer::AtlasSet;
|
|
||||||
use image::io::Reader;
|
use image::io::Reader;
|
||||||
use std::path::Path;
|
use std::path::{Path, PathBuf};
|
||||||
use walkdir::WalkDir;
|
use walkdir::WalkDir;
|
||||||
|
|
||||||
// TODO: warning when images have extra transparency
|
// TODO: warning when images have extra transparency
|
||||||
|
@ -10,9 +13,11 @@ use walkdir::WalkDir;
|
||||||
// TODO: randomly assign sprites to textures, for efficiency
|
// TODO: randomly assign sprites to textures, for efficiency
|
||||||
// TODO: group images by use case (dynamic loading algorithm)
|
// TODO: group images by use case (dynamic loading algorithm)
|
||||||
|
|
||||||
pub fn run(asset_root: &Path, cache_target: &Path) -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
let mut files = Vec::new();
|
let mut files = Vec::new();
|
||||||
|
|
||||||
|
let asset_root = Path::new("./assets/render");
|
||||||
|
|
||||||
// Total number of pixels we want to add
|
// Total number of pixels we want to add
|
||||||
let mut total_dim = 0f64;
|
let mut total_dim = 0f64;
|
||||||
|
|
||||||
|
@ -83,8 +88,8 @@ pub fn run(asset_root: &Path, cache_target: &Path) -> Result<()> {
|
||||||
|
|
||||||
println!("Saving files...");
|
println!("Saving files...");
|
||||||
atlas_set.save_files(
|
atlas_set.save_files(
|
||||||
|x| cache_target.join(format!("atlas-{x:0.2}.bmp")),
|
|x| PathBuf::from(format!("cache/atlas-{x:0.2}.bmp")),
|
||||||
&cache_target.join("spriteatlas.toml"),
|
&PathBuf::from("cache/spriteatlas.toml"),
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
return Ok(());
|
return Ok(());
|
|
@ -66,6 +66,8 @@ impl PhysEffect {
|
||||||
parent_angle + effect.angle + rng.gen_range(-effect.angle_rng..=effect.angle_rng)
|
parent_angle + effect.angle + rng.gen_range(-effect.angle_rng..=effect.angle_rng)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
println!("{:?}", effect.angvel_rng);
|
||||||
|
|
||||||
let rb = RigidBodyBuilder::new(RigidBodyType::KinematicVelocityBased)
|
let rb = RigidBodyBuilder::new(RigidBodyType::KinematicVelocityBased)
|
||||||
.position(pos.into())
|
.position(pos.into())
|
||||||
.rotation(angle)
|
.rotation(angle)
|
||||||
|
@ -75,12 +77,15 @@ impl PhysEffect {
|
||||||
PhysEffect {
|
PhysEffect {
|
||||||
anim: SpriteAutomaton::new(ct, effect.sprite),
|
anim: SpriteAutomaton::new(ct, effect.sprite),
|
||||||
rigid_body: wrapper.insert_rigid_body(rb.build()),
|
rigid_body: wrapper.insert_rigid_body(rb.build()),
|
||||||
|
|
||||||
lifetime: 0f32
|
lifetime: 0f32
|
||||||
.max(effect.lifetime + rng.gen_range(-effect.lifetime_rng..=effect.lifetime_rng)),
|
.max(effect.lifetime + rng.gen_range(-effect.lifetime_rng..=effect.lifetime_rng)),
|
||||||
|
|
||||||
// Make sure size isn't negative. This check should be on EVERY rng!
|
// Make sure size isn't negative. This check should be on EVERY rng!
|
||||||
size: 0f32.max(effect.size + rng.gen_range(-effect.size_rng..=effect.size_rng)),
|
size: 0f32.max(effect.size + rng.gen_range(-effect.size_rng..=effect.size_rng)),
|
||||||
|
|
||||||
fade: 0f32.max(effect.fade + rng.gen_range(-effect.fade_rng..=effect.fade_rng)),
|
fade: 0f32.max(effect.fade + rng.gen_range(-effect.fade_rng..=effect.fade_rng)),
|
||||||
|
|
||||||
is_destroyed: false,
|
is_destroyed: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue