[INFO] cloning repository https://github.com/AaronWang-code/2D-Game
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AaronWang-code/2D-Game" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAaronWang-code%2F2D-Game", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAaronWang-code%2F2D-Game'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b60b3b7e93722d39874217697f3b4812e2709eb1
[INFO] checking AaronWang-code/2D-Game against try#5ec4d3b0c83717313176eefa7d71e9d36dc83355 for 155501-infallible-never-no-reservation
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAaronWang-code%2F2D-Game" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  31% (5276/16922)
Updating files:  32% (5416/16922)
Updating files:  33% (5585/16922)
Updating files:  34% (5754/16922)
Updating files:  35% (5923/16922)
Updating files:  36% (6092/16922)
Updating files:  37% (6262/16922)
Updating files:  38% (6431/16922)
Updating files:  39% (6600/16922)
Updating files:  40% (6769/16922)
Updating files:  41% (6939/16922)
Updating files:  42% (7108/16922)
Updating files:  43% (7277/16922)
Updating files:  44% (7446/16922)
Updating files:  45% (7615/16922)
Updating files:  46% (7785/16922)
Updating files:  47% (7954/16922)
Updating files:  48% (8123/16922)
Updating files:  49% (8292/16922)
Updating files:  50% (8461/16922)
Updating files:  51% (8631/16922)
Updating files:  52% (8800/16922)
Updating files:  53% (8969/16922)
Updating files:  54% (9138/16922)
Updating files:  55% (9308/16922)
Updating files:  56% (9477/16922)
Updating files:  57% (9646/16922)
Updating files:  58% (9815/16922)
Updating files:  59% (9984/16922)
Updating files:  60% (10154/16922)
Updating files:  61% (10323/16922)
Updating files:  62% (10492/16922)
Updating files:  63% (10661/16922)
Updating files:  64% (10831/16922)
Updating files:  65% (11000/16922)
Updating files:  66% (11169/16922)
Updating files:  67% (11338/16922)
Updating files:  68% (11507/16922)
Updating files:  69% (11677/16922)
Updating files:  70% (11846/16922)
Updating files:  71% (12015/16922)
Updating files:  72% (12184/16922)
Updating files:  73% (12354/16922)
Updating files:  74% (12523/16922)
Updating files:  75% (12692/16922)
Updating files:  75% (12723/16922)
Updating files:  76% (12861/16922)
Updating files:  77% (13030/16922)
Updating files:  78% (13200/16922)
Updating files:  79% (13369/16922)
Updating files:  80% (13538/16922)
Updating files:  81% (13707/16922)
Updating files:  82% (13877/16922)
Updating files:  83% (14046/16922)
Updating files:  84% (14215/16922)
Updating files:  85% (14384/16922)
Updating files:  85% (14493/16922)
Updating files:  86% (14553/16922)
Updating files:  87% (14723/16922)
Updating files:  88% (14892/16922)
Updating files:  89% (15061/16922)
Updating files:  90% (15230/16922)
Updating files:  91% (15400/16922)
Updating files:  92% (15569/16922)
Updating files:  93% (15738/16922)
Updating files:  94% (15907/16922)
Updating files:  94% (16014/16922)
Updating files:  95% (16076/16922)
Updating files:  96% (16246/16922)
Updating files:  97% (16415/16922)
Updating files:  98% (16584/16922)
Updating files:  99% (16753/16922)
Updating files: 100% (16922/16922)
Updating files: 100% (16922/16922), done.
[INFO] removed /workspace/builds/worker-6-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/AaronWang-code/2D-Game
[INFO] finished tweaking git repo https://github.com/AaronWang-code/2D-Game
[INFO] tweaked toml for git repo https://github.com/AaronWang-code/2D-Game written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AaronWang-code/2D-Game on toolchain 5ec4d3b0c83717313176eefa7d71e9d36dc83355
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5ec4d3b0c83717313176eefa7d71e9d36dc83355" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AaronWang-code/2D-Game already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5ec4d3b0c83717313176eefa7d71e9d36dc83355" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+5ec4d3b0c83717313176eefa7d71e9d36dc83355" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8e7c8b8e2a9960d7acf4ab53a4d3bacf69ffb52e7db39c44f80b9c8fc00391de
[INFO] running `Command { std: "docker" "start" "-a" "8e7c8b8e2a9960d7acf4ab53a4d3bacf69ffb52e7db39c44f80b9c8fc00391de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8e7c8b8e2a9960d7acf4ab53a4d3bacf69ffb52e7db39c44f80b9c8fc00391de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8e7c8b8e2a9960d7acf4ab53a4d3bacf69ffb52e7db39c44f80b9c8fc00391de", kill_on_drop: false }`
[INFO] [stdout] 8e7c8b8e2a9960d7acf4ab53a4d3bacf69ffb52e7db39c44f80b9c8fc00391de
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+5ec4d3b0c83717313176eefa7d71e9d36dc83355" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ad6363a470809b85d3f2d137a065604170d20fe95fbc37ae18417a16b3eb2918
[INFO] running `Command { std: "docker" "start" "-a" "ad6363a470809b85d3f2d137a065604170d20fe95fbc37ae18417a16b3eb2918", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]     Checking pin-project-lite v0.2.17
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking rand_core v0.10.0
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]     Checking parking v2.2.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking cpufeatures v0.3.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking chacha20 v0.10.0
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]     Checking rand v0.10.0
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]    Compiling erased-serde v0.4.10
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking uuid v1.22.0
[INFO] [stderr]     Checking async-task v4.7.1
[INFO] [stderr]     Checking web-time v1.1.0
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking bevy_ptr v0.14.2
[INFO] [stderr]     Checking fixedbitset v0.5.7
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]     Checking nonmax v0.5.5
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking bevy_tasks v0.14.2
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]    Compiling bevy_macro_utils v0.14.2
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking raw-window-handle v0.6.2
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking hexf-parse v0.2.1
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]    Compiling khronos-egl v6.0.0
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]     Checking unicode-xid v0.2.6
[INFO] [stderr]     Checking piper v0.2.5
[INFO] [stderr]    Compiling encase_derive_impl v0.8.0
[INFO] [stderr]    Compiling wgpu-hal v0.21.1
[INFO] [stderr]     Checking wgpu-types v0.20.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking accesskit v0.14.0
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.14.2
[INFO] [stderr]    Compiling bevy_reflect_derive v0.14.2
[INFO] [stderr]    Compiling bevy_ecs_macros v0.14.2
[INFO] [stderr]    Compiling bevy_derive v0.14.2
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling blake3 v1.8.3
[INFO] [stderr]     Checking naga v0.20.0
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]    Compiling wgpu-core v0.21.1
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]     Checking renderdoc-sys v1.1.0
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]     Checking arrayref v0.3.9
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]     Checking typewit v1.14.2
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking constant_time_eq v0.4.2
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]     Checking const_panic v0.2.15
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]     Checking async-fs v2.2.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling encase_derive v0.8.0
[INFO] [stderr]    Compiling bevy_asset_macros v0.14.2
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]    Compiling wgpu v0.20.1
[INFO] [stderr]     Checking const_soft_float v0.1.4
[INFO] [stderr]     Checking pxfm v0.1.28
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking constgebra v0.1.4
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking sysinfo v0.30.13
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking const-fnv1a-hash v1.1.0
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]     Checking ruzstd v0.7.3
[INFO] [stderr]    Compiling bevy_render_macros v0.14.2
[INFO] [stderr]    Compiling bevy_encase_derive v0.14.2
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking ktx2 v0.3.0
[INFO] [stderr]     Checking bevy_utils v0.14.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking radsort v0.1.1
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]     Checking euclid v0.22.13
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking svg_fmt v0.4.5
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking bevy_reflect v0.14.2
[INFO] [stderr]     Checking encase v0.8.0
[INFO] [stderr]     Checking naga_oil v0.14.0
[INFO] [stderr]     Checking bevy_mikktspace v0.14.2
[INFO] [stderr]     Checking hexasphere v12.0.0
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking itoa v1.0.17
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.10
[INFO] [stderr]     Checking rectangle-pack v0.4.2
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking as-raw-xcb-connection v1.0.1
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking xkeysym v0.2.1
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking tinyvec v1.11.0
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking inotify v0.10.2
[INFO] [stderr]     Checking bevy_ecs v0.14.2
[INFO] [stderr]     Checking bevy_math v0.14.2
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking xi-unicode v0.3.0
[INFO] [stderr]     Checking cursor-icon v1.2.0
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]    Compiling gilrs v0.10.10
[INFO] [stderr]     Checking gltf-json v1.4.1
[INFO] [stderr]     Checking gilrs-core v0.5.15
[INFO] [stderr]     Checking glyph_brush_layout v0.2.4
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking grid v0.14.0
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]     Checking taffy v0.5.2
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking rodio v0.18.1
[INFO] [stderr]     Checking symphonia-utils-xiph v0.5.5
[INFO] [stderr]     Checking gltf v1.4.1
[INFO] [stderr]    Compiling bevy_gizmos_macros v0.14.2
[INFO] [stderr]     Checking bevy_color v0.14.3
[INFO] [stderr]    Compiling bevy_state_macros v0.14.2
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking simba v0.9.1
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking robust v1.2.0
[INFO] [stderr]     Checking extended v0.1.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking symphonia-format-riff v0.5.5
[INFO] [stderr]     Checking spade v2.15.0
[INFO] [stderr]     Checking symphonia-codec-vorbis v0.5.5
[INFO] [stderr]     Checking symphonia-format-ogg v0.5.5
[INFO] [stderr]     Checking symphonia-codec-pcm v0.5.5
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking ordered-float v4.6.0
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking rustc-hash v2.1.1
[INFO] [stderr]     Checking mint v0.5.9
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]     Checking ringbuf v0.3.3
[INFO] [stderr]     Checking atomic-arena v0.1.2
[INFO] [stderr]     Checking glam v0.25.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking bevy_app v0.14.2
[INFO] [stderr]     Checking kira v0.8.7
[INFO] [stderr]     Checking bevy_core v0.14.2
[INFO] [stderr]     Checking bevy_time v0.14.2
[INFO] [stderr]     Checking bevy_a11y v0.14.2
[INFO] [stderr]     Checking bevy_asset v0.14.2
[INFO] [stderr]     Checking bevy_input v0.14.2
[INFO] [stderr]     Checking bevy_window v0.14.2
[INFO] [stderr]     Checking bevy_log v0.14.2
[INFO] [stderr]     Checking bevy_hierarchy v0.14.2
[INFO] [stderr]     Checking nalgebra v0.33.2
[INFO] [stderr]     Checking bevy_diagnostic v0.14.2
[INFO] [stderr]     Checking bevy_transform v0.14.2
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking bevy_state v0.14.2
[INFO] [stderr]     Checking bevy_gilrs v0.14.2
[INFO] [stderr]     Checking bevy_render v0.14.2
[INFO] [stderr]     Checking bevy_audio v0.14.2
[INFO] [stderr]     Checking accesskit_winit v0.20.4
[INFO] [stderr]     Checking bevy_winit v0.14.2
[INFO] [stderr]     Checking parry2d v0.16.1
[INFO] [stderr]     Checking rapier2d v0.21.0
[INFO] [stderr]     Checking bevy_core_pipeline v0.14.2
[INFO] [stderr]     Checking bevy_scene v0.14.2
[INFO] [stderr]     Checking bevy_animation v0.14.2
[INFO] [stderr]     Checking bevy_sprite v0.14.2
[INFO] [stderr]     Checking bevy_pbr v0.14.2
[INFO] [stderr]     Checking bevy_text v0.14.2
[INFO] [stderr]     Checking bevy_ui v0.14.2
[INFO] [stderr]     Checking bevy_gltf v0.14.2
[INFO] [stderr]     Checking bevy_gizmos v0.14.2
[INFO] [stderr]     Checking bevy_internal v0.14.2
[INFO] [stderr]     Checking bevy v0.14.2
[INFO] [stderr]     Checking bevy_kira_audio v0.20.0
[INFO] [stderr]     Checking bevy_rapier2d v0.27.0
[INFO] [stderr]     Checking echoes_in_the_fog v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Team`
[INFO] [stdout]  --> src/gameplay/combat/hitbox.rs:7:60
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::gameplay::combat::components::{Hitbox, Hurtbox, Team};
[INFO] [stdout]   |                                                            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Velocity`
[INFO] [stdout]   --> src/gameplay/enemy/systems.rs:13:57
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::gameplay::player::components::{Gold, Health, Velocity};
[INFO] [stdout]    |                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ROOM_HALF_HEIGHT`
[INFO] [stdout]  --> src/gameplay/map/doors.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::constants::{ROOM_HALF_HEIGHT, ROOM_HALF_WIDTH};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bevy::prelude::*`
[INFO] [stdout]  --> src/prelude.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use bevy::prelude::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::constants::*`
[INFO] [stdout]  --> src/prelude.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use crate::constants::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::states::*`
[INFO] [stdout]  --> src/prelude.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use crate::states::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Team`
[INFO] [stdout]  --> src/gameplay/combat/hitbox.rs:7:60
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::gameplay::combat::components::{Hitbox, Hurtbox, Team};
[INFO] [stdout]   |                                                            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Velocity`
[INFO] [stdout]   --> src/gameplay/enemy/systems.rs:13:57
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::gameplay::player::components::{Gold, Health, Velocity};
[INFO] [stdout]    |                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ROOM_HALF_HEIGHT`
[INFO] [stdout]  --> src/gameplay/map/doors.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::constants::{ROOM_HALF_HEIGHT, ROOM_HALF_WIDTH};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bevy::prelude::*`
[INFO] [stdout]  --> src/prelude.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use bevy::prelude::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::constants::*`
[INFO] [stdout]  --> src/prelude.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use crate::constants::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::states::*`
[INFO] [stdout]  --> src/prelude.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use crate::states::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `bevy::bevy_window::ReceivedCharacter`: Use `KeyboardInput` instead.
[INFO] [stdout]    --> src/coop/ui.rs:119:28
[INFO] [stdout]     |
[INFO] [stdout] 119 |     mut chars: EventReader<ReceivedCharacter>,
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `bevy::bevy_window::ReceivedCharacter`: Use `KeyboardInput` instead.
[INFO] [stdout]    --> src/pvp/ui.rs:122:28
[INFO] [stdout]     |
[INFO] [stdout] 122 |     mut chars: EventReader<ReceivedCharacter>,
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `bevy::bevy_window::ReceivedCharacter`: Use `KeyboardInput` instead.
[INFO] [stdout]    --> src/coop/ui.rs:119:28
[INFO] [stdout]     |
[INFO] [stdout] 119 |     mut chars: EventReader<ReceivedCharacter>,
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `bevy::bevy_window::ReceivedCharacter`: Use `KeyboardInput` instead.
[INFO] [stdout]    --> src/pvp/ui.rs:122:28
[INFO] [stdout]     |
[INFO] [stdout] 122 |     mut chars: EventReader<ReceivedCharacter>,
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `bevy::bevy_window::ReceivedCharacter::char`: Use `KeyboardInput` instead.
[INFO] [stdout]    --> src/coop/ui.rs:146:18
[INFO] [stdout]     |
[INFO] [stdout] 146 |         for c in ev.char.chars() {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `bevy::bevy_window::ReceivedCharacter::char`: Use `KeyboardInput` instead.
[INFO] [stdout]    --> src/coop/ui.rs:146:18
[INFO] [stdout]     |
[INFO] [stdout] 146 |         for c in ev.char.chars() {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `bevy::bevy_window::ReceivedCharacter::char`: Use `KeyboardInput` instead.
[INFO] [stdout]    --> src/pvp/ui.rs:150:18
[INFO] [stdout]     |
[INFO] [stdout] 150 |         for c in ev.char.chars() {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `bevy::bevy_window::ReceivedCharacter::char`: Use `KeyboardInput` instead.
[INFO] [stdout]    --> src/pvp/ui.rs:150:18
[INFO] [stdout]     |
[INFO] [stdout] 150 |         for c in ev.char.chars() {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/save.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     mut achievements: Option<ResMut<Achievements>>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/save.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     mut achievements: Option<ResMut<Achievements>>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/gameplay/enemy/boss.rs:122:26
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn spawn_boss_bundle(data: &GameDataRegistry) -> (EnemyKind, BossPhase, BossPatternTimer) {
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/gameplay/enemy/systems.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 298 |     data: Res<GameDataRegistry>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/gameplay/map/generator.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     mut visited: Option<ResMut<crate::gameplay::map::VisitedRooms>>,
[INFO] [stdout]    |     ----^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gameplay/map/transitions.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout] 114 |     mut visited: Option<ResMut<VisitedRooms>>,
[INFO] [stdout]     |     ----^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/gameplay/map/transitions.rs:123:17
[INFO] [stdout]     |
[INFO] [stdout] 123 |             let e = commands
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/gameplay/enemy/boss.rs:122:26
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn spawn_boss_bundle(data: &GameDataRegistry) -> (EnemyKind, BossPhase, BossPatternTimer) {
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/gameplay/enemy/systems.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 298 |     data: Res<GameDataRegistry>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/gameplay/map/generator.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     mut visited: Option<ResMut<crate::gameplay::map::VisitedRooms>>,
[INFO] [stdout]    |     ----^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/gameplay/puzzle/pressure_plate.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     mut room_state: ResMut<RoomState>,
[INFO] [stdout]    |     ----^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gameplay/map/transitions.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout] 114 |     mut visited: Option<ResMut<VisitedRooms>>,
[INFO] [stdout]     |     ----^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/gameplay/map/transitions.rs:123:17
[INFO] [stdout]     |
[INFO] [stdout] 123 |             let e = commands
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/gameplay/puzzle/switch_order.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     mut room_state: ResMut<RoomState>,
[INFO] [stdout]    |     ----^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/gameplay/puzzle/trap.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     mut room_state: ResMut<RoomState>,
[INFO] [stdout]    |     ----^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/gameplay/puzzle/pressure_plate.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     mut room_state: ResMut<RoomState>,
[INFO] [stdout]    |     ----^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/gameplay/puzzle/switch_order.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     mut room_state: ResMut<RoomState>,
[INFO] [stdout]    |     ----^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/gameplay/puzzle/trap.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     mut room_state: ResMut<RoomState>,
[INFO] [stdout]    |     ----^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/gameplay/rewards/systems.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     data: Option<Res<GameDataRegistry>>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/gameplay/rewards/systems.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     data: Option<Res<GameDataRegistry>>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/coop/net.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 212 |     mut net: ResMut<CoopNetState>,
[INFO] [stdout]     |     ----^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/coop/net.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 212 |     mut net: ResMut<CoopNetState>,
[INFO] [stdout]     |     ----^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pvp/net.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     mut config: ResMut<PvpNetConfig>,
[INFO] [stdout]     |     ----^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pvp/net.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     mut config: ResMut<PvpNetConfig>,
[INFO] [stdout]     |     ----^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p1_l`
[INFO] [stdout]    --> src/pvp/systems.rs:254:15
[INFO] [stdout]     |
[INFO] [stdout] 254 |     let (Some(p1_l), Some(p2_l), Some(p1_h), Some(p2_h)) = (p1_lives, p2_lives, p1_hp, p2_hp) else { return };
[INFO] [stdout]     |               ^^^^ help: if this is intentional, prefix it with an underscore: `_p1_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p2_l`
[INFO] [stdout]    --> src/pvp/systems.rs:254:27
[INFO] [stdout]     |
[INFO] [stdout] 254 |     let (Some(p1_l), Some(p2_l), Some(p1_h), Some(p2_h)) = (p1_lives, p2_lives, p1_hp, p2_hp) else { return };
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_p2_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p1_l`
[INFO] [stdout]    --> src/pvp/systems.rs:254:15
[INFO] [stdout]     |
[INFO] [stdout] 254 |     let (Some(p1_l), Some(p2_l), Some(p1_h), Some(p2_h)) = (p1_lives, p2_lives, p1_hp, p2_hp) else { return };
[INFO] [stdout]     |               ^^^^ help: if this is intentional, prefix it with an underscore: `_p1_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p2_l`
[INFO] [stdout]    --> src/pvp/systems.rs:254:27
[INFO] [stdout]     |
[INFO] [stdout] 254 |     let (Some(p1_l), Some(p2_l), Some(p1_h), Some(p2_h)) = (p1_lives, p2_lives, p1_hp, p2_hp) else { return };
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_p2_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_WIDTH` is never used
[INFO] [stdout]  --> src/constants.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const WINDOW_WIDTH: f32 = 1280.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_HEIGHT` is never used
[INFO] [stdout]  --> src/constants.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const WINDOW_HEIGHT: f32 = 720.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_ZOOM` is never used
[INFO] [stdout]  --> src/constants.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CAMERA_ZOOM: f32 = 1.0;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PLAYER_RADIUS` is never used
[INFO] [stdout]   --> src/constants.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const PLAYER_RADIUS: f32 = 16.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENEMY_RADIUS` is never used
[INFO] [stdout]   --> src/constants.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const ENEMY_RADIUS: f32 = 14.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROJECTILE_RADIUS` is never used
[INFO] [stdout]   --> src/constants.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const PROJECTILE_RADIUS: f32 = 6.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `audio` is never read
[INFO] [stdout]   --> src/core/assets.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct GameAssets {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub audio: AudioHandles,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GameAssets` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ui_click`, `attack`, `dash`, and `hit` are never read
[INFO] [stdout]   --> src/core/assets.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct AudioHandles {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 21 |     pub ui_click: Handle<bevy_kira_audio::AudioSource>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 22 |     pub attack: Handle<bevy_kira_audio::AudioSource>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 23 |     pub dash: Handle<bevy_kira_audio::AudioSource>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 24 |     pub hit: Handle<bevy_kira_audio::AudioSource>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioHandles` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_sfx_ui_click` is never used
[INFO] [stdout]   --> src/core/audio.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn play_sfx_ui_click(_audio: Res<bevy_kira_audio::Audio>, _assets: Res<GameAssets>) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_sfx_attack` is never used
[INFO] [stdout]   --> src/core/audio.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn play_sfx_attack(_audio: Res<bevy_kira_audio::Audio>, _assets: Res<GameAssets>) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_sfx_dash` is never used
[INFO] [stdout]   --> src/core/audio.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn play_sfx_dash(_audio: Res<bevy_kira_audio::Audio>, _assets: Res<GameAssets>) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_sfx_hit` is never used
[INFO] [stdout]   --> src/core/audio.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn play_sfx_hit(_audio: Res<bevy_kira_audio::Audio>, _assets: Res<GameAssets>) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `source` is never read
[INFO] [stdout]   --> src/core/events.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DamageEvent {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout]  9 |     pub target: Entity,
[INFO] [stdout] 10 |     pub source: Option<Entity>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DamageEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `target_team` is never read
[INFO] [stdout]   --> src/core/events.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct DamageAppliedEvent {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub target_team: Option<Team>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DamageAppliedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `room` is never read
[INFO] [stdout]   --> src/core/events.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct DoorOpenEvent {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 45 |     pub room: RoomId,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DoorOpenEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `room` is never read
[INFO] [stdout]   --> src/core/events.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct SpawnEnemyEvent {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 50 |     pub room: RoomId,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpawnEnemyEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `phase` is never read
[INFO] [stdout]   --> src/core/events.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct BossPhaseChangeEvent {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 55 |     pub phase: u8,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BossPhaseChangeEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rewards` is never read
[INFO] [stdout]   --> src/data/registry.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct GameDataRegistry {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub rewards: RewardsConfig,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GameDataRegistry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `can_crit` is never read
[INFO] [stdout]   --> src/gameplay/combat/components.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Hitbox {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub can_crit: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Hitbox` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gameplay/enemy/components.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct TeamMarker(pub Team);
[INFO] [stdout]    |            ---------- ^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `TeamMarker` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dir` is never read
[INFO] [stdout]   --> src/gameplay/map/doors.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Door {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 19 |     pub to: RoomId,
[INFO] [stdout] 20 |     pub dir: Direction,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Door` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lock_room_doors` is never used
[INFO] [stdout]   --> src/gameplay/map/doors.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn lock_room_doors(mut room_state: ResMut<RoomState>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unlock_room_doors` is never used
[INFO] [stdout]   --> src/gameplay/map/doors.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn unlock_room_doors(mut room_state: ResMut<RoomState>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_vec2` is never used
[INFO] [stdout]   --> src/gameplay/map/room.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Direction {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 26 |     pub fn as_vec2(self) -> Vec2 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `half_size` is never read
[INFO] [stdout]   --> src/gameplay/map/room.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct RoomBounds {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 43 |     pub half_size: Vec2,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RoomBounds` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bounds` is never read
[INFO] [stdout]   --> src/gameplay/map/room.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct RoomData {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub bounds: RoomBounds,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RoomData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Attack` is never constructed
[INFO] [stdout]   --> src/gameplay/player/components.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum AnimationState {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 57 |     Attack,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AnimationState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/gameplay/player/components.rs:127:23
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct TeamMarker(pub Team);
[INFO] [stdout]     |            ---------- ^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `TeamMarker` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_floor_difficulty_multiplier` is never used
[INFO] [stdout]  --> src/gameplay/progression/difficulty.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn get_floor_difficulty_multiplier(data: &GameDataRegistry, floor: u32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go_to_next_floor` is never used
[INFO] [stdout]   --> src/gameplay/progression/floor.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn go_to_next_floor(mut floor: ResMut<FloorNumber>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kills`, `damage_done`, and `damage_taken` are never read
[INFO] [stdout]  --> src/gameplay/progression/stats.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct RunStats {
[INFO] [stdout]   |            -------- fields in this struct
[INFO] [stdout] 5 |     pub time_s: f32,
[INFO] [stdout] 6 |     pub kills: u32,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 7 |     pub damage_done: f32,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 8 |     pub damage_taken: f32,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RunStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PuzzlePlugin` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PuzzlePlugin;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PuzzleEntity` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct PuzzleEntity;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PuzzleKind` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum PuzzleKind {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ActivePuzzle` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct ActivePuzzle {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_active_puzzle` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn clear_active_puzzle(mut active: ResMut<ActivePuzzle>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_active_puzzle` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn reset_active_puzzle(active: &mut ActivePuzzle) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_puzzle_for_room` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn spawn_puzzle_for_room(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PressurePlate` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/pressure_plate.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PressurePlate {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_pressure_plate` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/pressure_plate.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn spawn_pressure_plate(commands: &mut Commands, assets: &GameAssets) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pressure_plate_system` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/pressure_plate.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn pressure_plate_system(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `activate_pressure_plate_puzzle` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/pressure_plate.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn activate_pressure_plate_puzzle(active: &mut ActivePuzzle, room: RoomId) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Switch` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/switch_order.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Switch {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SwitchOrderState` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/switch_order.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SwitchOrderState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_switch_sequence` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/switch_order.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn spawn_switch_sequence(commands: &mut Commands, assets: &GameAssets) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `switch_order_system` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/switch_order.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn switch_order_system(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `activate_switch_order_puzzle` is never used
[INFO] [stdout]    --> src/gameplay/puzzle/switch_order.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn activate_switch_order_puzzle(active: &mut ActivePuzzle, room: RoomId) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Trap` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/trap.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Trap {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrapSurvivalState` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/trap.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct TrapSurvivalState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_traps` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/trap.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn spawn_traps(commands: &mut Commands, assets: &GameAssets) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trap_system` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/trap.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn trap_system(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `activate_trap_survival_puzzle` is never used
[INFO] [stdout]    --> src/gameplay/puzzle/trap.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn activate_trap_survival_puzzle(active: &mut ActivePuzzle, room: RoomId) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_coop_host_overlay` is never used
[INFO] [stdout]   --> src/coop/hud.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn setup_coop_host_overlay(mut commands: Commands, assets: Res<GameAssets>, config: Res<CoopNetConfig>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup_coop_host_overlay` is never used
[INFO] [stdout]   --> src/coop/hud.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn cleanup_coop_host_overlay(mut commands: Commands, q: Query<Entity, With<CoopHostOverlayUi>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_coop_host_overlay` is never used
[INFO] [stdout]    --> src/coop/hud.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn update_coop_host_overlay(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_status_panel` is never used
[INFO] [stdout]    --> src/coop/hud.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn spawn_status_panel<HealthTextMarker, HealthFillMarker, EnergyTextMarker, EnergyFillMarker, GoldTextMarker>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_player_panel` is never used
[INFO] [stdout]    --> src/coop/hud.rs:246:4
[INFO] [stdout]     |
[INFO] [stdout] 246 | fn apply_player_panel(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_player_panel` is never used
[INFO] [stdout]    --> src/coop/hud.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn reset_player_panel(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopMateHealthText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct CoopMateHealthText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopMateHealthFill` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct CoopMateHealthFill;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopMateEnergyText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct CoopMateEnergyText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopMateEnergyFill` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct CoopMateEnergyFill;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopMateGoldText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct CoopMateGoldText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostOverlayUi` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct CoopHostOverlayUi;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostStatusText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct CoopHostStatusText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostMateHealthText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct CoopHostMateHealthText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostMateHealthFill` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct CoopHostMateHealthFill;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostMateEnergyText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct CoopHostMateEnergyText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostMateEnergyFill` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct CoopHostMateEnergyFill;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostMateGoldText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct CoopHostMateGoldText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PvpTeam` is never constructed
[INFO] [stdout]   --> src/pvp/components.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct PvpTeam(pub Team);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pvp_update_hud_system` is never used
[INFO] [stdout]    --> src/pvp/systems.rs:555:8
[INFO] [stdout]     |
[INFO] [stdout] 555 | pub fn pvp_update_hud_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Aabb2` is never constructed
[INFO] [stdout]  --> src/utils/collision.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Aabb2 {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_center_size` and `intersects` are never used
[INFO] [stdout]   --> src/utils/collision.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Aabb2 {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn from_center_size(center: Vec2, size: Vec2) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn intersects(self, other: Aabb2) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aabb_from_transform_size` is never used
[INFO] [stdout]   --> src/utils/collision.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn aabb_from_transform_size(transform: &GlobalTransform, size: Vec2) -> Aabb2 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reseed` is never used
[INFO] [stdout]   --> src/utils/rng.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl GameRng {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn reseed(&mut self, seed: u64) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tick_timer` is never used
[INFO] [stdout]  --> src/utils/timers.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn tick_timer(timer: &mut Timer, time: &Time) -> bool {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_WIDTH` is never used
[INFO] [stdout]  --> src/constants.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const WINDOW_WIDTH: f32 = 1280.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_HEIGHT` is never used
[INFO] [stdout]  --> src/constants.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const WINDOW_HEIGHT: f32 = 720.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_ZOOM` is never used
[INFO] [stdout]  --> src/constants.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CAMERA_ZOOM: f32 = 1.0;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PLAYER_RADIUS` is never used
[INFO] [stdout]   --> src/constants.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const PLAYER_RADIUS: f32 = 16.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENEMY_RADIUS` is never used
[INFO] [stdout]   --> src/constants.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const ENEMY_RADIUS: f32 = 14.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROJECTILE_RADIUS` is never used
[INFO] [stdout]   --> src/constants.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const PROJECTILE_RADIUS: f32 = 6.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `audio` is never read
[INFO] [stdout]   --> src/core/assets.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct GameAssets {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub audio: AudioHandles,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GameAssets` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ui_click`, `attack`, `dash`, and `hit` are never read
[INFO] [stdout]   --> src/core/assets.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct AudioHandles {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 21 |     pub ui_click: Handle<bevy_kira_audio::AudioSource>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 22 |     pub attack: Handle<bevy_kira_audio::AudioSource>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 23 |     pub dash: Handle<bevy_kira_audio::AudioSource>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 24 |     pub hit: Handle<bevy_kira_audio::AudioSource>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioHandles` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_sfx_ui_click` is never used
[INFO] [stdout]   --> src/core/audio.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn play_sfx_ui_click(_audio: Res<bevy_kira_audio::Audio>, _assets: Res<GameAssets>) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_sfx_attack` is never used
[INFO] [stdout]   --> src/core/audio.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn play_sfx_attack(_audio: Res<bevy_kira_audio::Audio>, _assets: Res<GameAssets>) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_sfx_dash` is never used
[INFO] [stdout]   --> src/core/audio.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn play_sfx_dash(_audio: Res<bevy_kira_audio::Audio>, _assets: Res<GameAssets>) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_sfx_hit` is never used
[INFO] [stdout]   --> src/core/audio.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn play_sfx_hit(_audio: Res<bevy_kira_audio::Audio>, _assets: Res<GameAssets>) {}
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `source` is never read
[INFO] [stdout]   --> src/core/events.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DamageEvent {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout]  9 |     pub target: Entity,
[INFO] [stdout] 10 |     pub source: Option<Entity>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DamageEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `target_team` is never read
[INFO] [stdout]   --> src/core/events.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct DamageAppliedEvent {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub target_team: Option<Team>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DamageAppliedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `room` is never read
[INFO] [stdout]   --> src/core/events.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct DoorOpenEvent {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 45 |     pub room: RoomId,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DoorOpenEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `room` is never read
[INFO] [stdout]   --> src/core/events.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct SpawnEnemyEvent {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 50 |     pub room: RoomId,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpawnEnemyEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `phase` is never read
[INFO] [stdout]   --> src/core/events.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct BossPhaseChangeEvent {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 55 |     pub phase: u8,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BossPhaseChangeEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rewards` is never read
[INFO] [stdout]   --> src/data/registry.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct GameDataRegistry {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub rewards: RewardsConfig,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GameDataRegistry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `can_crit` is never read
[INFO] [stdout]   --> src/gameplay/combat/components.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Hitbox {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub can_crit: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Hitbox` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gameplay/enemy/components.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct TeamMarker(pub Team);
[INFO] [stdout]    |            ---------- ^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `TeamMarker` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dir` is never read
[INFO] [stdout]   --> src/gameplay/map/doors.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Door {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 19 |     pub to: RoomId,
[INFO] [stdout] 20 |     pub dir: Direction,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Door` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lock_room_doors` is never used
[INFO] [stdout]   --> src/gameplay/map/doors.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn lock_room_doors(mut room_state: ResMut<RoomState>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unlock_room_doors` is never used
[INFO] [stdout]   --> src/gameplay/map/doors.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn unlock_room_doors(mut room_state: ResMut<RoomState>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_vec2` is never used
[INFO] [stdout]   --> src/gameplay/map/room.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Direction {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 26 |     pub fn as_vec2(self) -> Vec2 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `half_size` is never read
[INFO] [stdout]   --> src/gameplay/map/room.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct RoomBounds {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 43 |     pub half_size: Vec2,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RoomBounds` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bounds` is never read
[INFO] [stdout]   --> src/gameplay/map/room.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct RoomData {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub bounds: RoomBounds,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RoomData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Attack` is never constructed
[INFO] [stdout]   --> src/gameplay/player/components.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum AnimationState {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 57 |     Attack,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AnimationState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/gameplay/player/components.rs:127:23
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct TeamMarker(pub Team);
[INFO] [stdout]     |            ---------- ^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `TeamMarker` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_floor_difficulty_multiplier` is never used
[INFO] [stdout]  --> src/gameplay/progression/difficulty.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn get_floor_difficulty_multiplier(data: &GameDataRegistry, floor: u32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go_to_next_floor` is never used
[INFO] [stdout]   --> src/gameplay/progression/floor.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn go_to_next_floor(mut floor: ResMut<FloorNumber>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kills`, `damage_done`, and `damage_taken` are never read
[INFO] [stdout]  --> src/gameplay/progression/stats.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct RunStats {
[INFO] [stdout]   |            -------- fields in this struct
[INFO] [stdout] 5 |     pub time_s: f32,
[INFO] [stdout] 6 |     pub kills: u32,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 7 |     pub damage_done: f32,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 8 |     pub damage_taken: f32,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RunStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PuzzlePlugin` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PuzzlePlugin;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PuzzleEntity` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct PuzzleEntity;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PuzzleKind` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum PuzzleKind {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ActivePuzzle` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct ActivePuzzle {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_active_puzzle` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn clear_active_puzzle(mut active: ResMut<ActivePuzzle>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_active_puzzle` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn reset_active_puzzle(active: &mut ActivePuzzle) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_puzzle_for_room` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/mod.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn spawn_puzzle_for_room(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PressurePlate` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/pressure_plate.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PressurePlate {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_pressure_plate` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/pressure_plate.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn spawn_pressure_plate(commands: &mut Commands, assets: &GameAssets) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pressure_plate_system` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/pressure_plate.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn pressure_plate_system(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `activate_pressure_plate_puzzle` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/pressure_plate.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn activate_pressure_plate_puzzle(active: &mut ActivePuzzle, room: RoomId) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Switch` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/switch_order.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Switch {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SwitchOrderState` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/switch_order.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SwitchOrderState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_switch_sequence` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/switch_order.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn spawn_switch_sequence(commands: &mut Commands, assets: &GameAssets) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `switch_order_system` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/switch_order.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn switch_order_system(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `activate_switch_order_puzzle` is never used
[INFO] [stdout]    --> src/gameplay/puzzle/switch_order.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn activate_switch_order_puzzle(active: &mut ActivePuzzle, room: RoomId) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Trap` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/trap.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Trap {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrapSurvivalState` is never constructed
[INFO] [stdout]   --> src/gameplay/puzzle/trap.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct TrapSurvivalState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_traps` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/trap.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn spawn_traps(commands: &mut Commands, assets: &GameAssets) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trap_system` is never used
[INFO] [stdout]   --> src/gameplay/puzzle/trap.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn trap_system(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `activate_trap_survival_puzzle` is never used
[INFO] [stdout]    --> src/gameplay/puzzle/trap.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn activate_trap_survival_puzzle(active: &mut ActivePuzzle, room: RoomId) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_coop_host_overlay` is never used
[INFO] [stdout]   --> src/coop/hud.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn setup_coop_host_overlay(mut commands: Commands, assets: Res<GameAssets>, config: Res<CoopNetConfig>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup_coop_host_overlay` is never used
[INFO] [stdout]   --> src/coop/hud.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn cleanup_coop_host_overlay(mut commands: Commands, q: Query<Entity, With<CoopHostOverlayUi>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_coop_host_overlay` is never used
[INFO] [stdout]    --> src/coop/hud.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn update_coop_host_overlay(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_status_panel` is never used
[INFO] [stdout]    --> src/coop/hud.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn spawn_status_panel<HealthTextMarker, HealthFillMarker, EnergyTextMarker, EnergyFillMarker, GoldTextMarker>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_player_panel` is never used
[INFO] [stdout]    --> src/coop/hud.rs:246:4
[INFO] [stdout]     |
[INFO] [stdout] 246 | fn apply_player_panel(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_player_panel` is never used
[INFO] [stdout]    --> src/coop/hud.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn reset_player_panel(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopMateHealthText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct CoopMateHealthText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopMateHealthFill` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct CoopMateHealthFill;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopMateEnergyText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct CoopMateEnergyText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopMateEnergyFill` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct CoopMateEnergyFill;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopMateGoldText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct CoopMateGoldText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostOverlayUi` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct CoopHostOverlayUi;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostStatusText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct CoopHostStatusText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostMateHealthText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct CoopHostMateHealthText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostMateHealthFill` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct CoopHostMateHealthFill;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostMateEnergyText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct CoopHostMateEnergyText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostMateEnergyFill` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct CoopHostMateEnergyFill;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoopHostMateGoldText` is never constructed
[INFO] [stdout]   --> src/coop/ui.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct CoopHostMateGoldText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PvpTeam` is never constructed
[INFO] [stdout]   --> src/pvp/components.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct PvpTeam(pub Team);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pvp_update_hud_system` is never used
[INFO] [stdout]    --> src/pvp/systems.rs:555:8
[INFO] [stdout]     |
[INFO] [stdout] 555 | pub fn pvp_update_hud_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Aabb2` is never constructed
[INFO] [stdout]  --> src/utils/collision.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Aabb2 {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_center_size` and `intersects` are never used
[INFO] [stdout]   --> src/utils/collision.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Aabb2 {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn from_center_size(center: Vec2, size: Vec2) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn intersects(self, other: Aabb2) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aabb_from_transform_size` is never used
[INFO] [stdout]   --> src/utils/collision.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn aabb_from_transform_size(transform: &GlobalTransform, size: Vec2) -> Aabb2 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reseed` is never used
[INFO] [stdout]   --> src/utils/rng.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl GameRng {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn reseed(&mut self, seed: u64) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tick_timer` is never used
[INFO] [stdout]  --> src/utils/timers.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn tick_timer(timer: &mut Timer, time: &Time) -> bool {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 59s
[INFO] running `Command { std: "docker" "inspect" "ad6363a470809b85d3f2d137a065604170d20fe95fbc37ae18417a16b3eb2918", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ad6363a470809b85d3f2d137a065604170d20fe95fbc37ae18417a16b3eb2918", kill_on_drop: false }`
[INFO] [stdout] ad6363a470809b85d3f2d137a065604170d20fe95fbc37ae18417a16b3eb2918
