Modularize (#1)

* configure workspaces

* Modularize domain logic by creating a new `models` crate.

* Moved `LoadingPlugin` and `MenuPlugin` from `core` to a new `ui` module. Updated imports accordingly.

* add theme for instruments

* trunk serve works, remove audio and textures

* remove loading indicator and assets

* rename models to systems

* seperate systems and components from models

* Refactor instrument cluster to leverage reusable composition utilities.

---------

Co-authored-by: geoffsee <>
This commit is contained in:
Geoff Seemueller
2025-07-01 22:22:40 -04:00
committed by GitHub
parent 66b8a855b5
commit 456fd31684
86 changed files with 7936 additions and 1523 deletions

View File

@@ -1,87 +1,11 @@
[package]
name = "yachtpit"
version = "0.1.0"
publish = false
authors = ["seemueller-io <git@github.geoffsee>"]
edition = "2021"
exclude = ["dist", "build", "assets", "credits"]
[workspace]
members = ["mobile"]
members = ["crates/yachtpit", "crates/yachtpit/mobile", "crates/systems", "crates/components"]
resolver = "2"
[profile.dev.package."*"]
opt-level = 3
[profile.dev]
opt-level = 1
# This is used by trunk as it doesn't support custom profiles: https://github.com/trunk-rs/trunk/issues/605
# xbuild also uses this profile for building android AABs because I couldn't find a configuration for it
[profile.release]
opt-level = "z"
lto = 'thin'
codegen-units = 1
strip = true
# Profile for distribution
[profile.dist]
inherits = "release"
opt-level = 3
lto = true
codegen-units = 1
strip = true
[features]
dev = [
"bevy/dynamic_linking",
default-members = [
"crates/yachtpit"
]
# All of Bevy's default features exept for the audio related ones (bevy_audio, vorbis), since they clash with bevy_kira_audio
# and android_shared_stdcxx/android-game-activity, since those are covered in `mobile`
[dependencies]
bevy = { version = "0.16", default-features = false, features = [
"animation",
"bevy_asset",
"bevy_color",
"bevy_core_pipeline",
"bevy_gilrs",
"bevy_gizmos",
"bevy_gltf",
"bevy_log",
"bevy_mesh_picking_backend",
"bevy_pbr",
"bevy_picking",
"bevy_render",
"bevy_scene",
"bevy_sprite",
"bevy_sprite_picking_backend",
"bevy_state",
"bevy_text",
"bevy_ui",
"bevy_ui_picking_backend",
"bevy_window",
"bevy_winit",
"custom_cursor",
"default_font",
"hdr",
"multi_threaded",
"png",
"smaa_luts",
"sysinfo_plugin",
"tonemapping_luts",
"webgl2",
"x11",
] }
bevy_kira_audio = { version = "0.23.0", features = ["android_shared_stdcxx"] }
bevy_asset_loader = { version = "0.23.0" }
rand = { version = "0.8.3" }
webbrowser = { version = "1", features = ["hardened"] }
# keep the following in sync with Bevy's dependencies
winit = { version = "0.30", default-features = false }
image = { version = "0.25", default-features = false }
## This greatly improves WGPU's performance due to its heavy use of trace! calls
log = { version = "0.4", features = ["max_level_debug", "release_max_level_warn"] }
[build-dependencies]
embed-resource = "1"
[workspace.dependencies]
bevy = { version = "0.16", default-features = false }
wasm-bindgen = "=0.2.100"