[INFO] cloning repository https://github.com/mfclinton/burning-wood-versus
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mfclinton/burning-wood-versus" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfclinton%2Fburning-wood-versus", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfclinton%2Fburning-wood-versus'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 521666948c6d4ab818191018354d89cf990fa499
[INFO] checking mfclinton/burning-wood-versus against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfclinton%2Fburning-wood-versus" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mfclinton/burning-wood-versus
[INFO] finished tweaking git repo https://github.com/mfclinton/burning-wood-versus
[INFO] tweaked toml for git repo https://github.com/mfclinton/burning-wood-versus written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mfclinton/burning-wood-versus on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mfclinton/burning-wood-versus 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" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 48003d363db259feffc92b1b09888e9e61eb42611df77aac4f1ac223d324e794
[INFO] running `Command { std: "docker" "start" "48003d363db259feffc92b1b09888e9e61eb42611df77aac4f1ac223d324e794", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48003d363db259feffc92b1b09888e9e61eb42611df77aac4f1ac223d324e794", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "48003d363db259feffc92b1b09888e9e61eb42611df77aac4f1ac223d324e794" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48003d363db259feffc92b1b09888e9e61eb42611df77aac4f1ac223d324e794", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "48003d363db259feffc92b1b09888e9e61eb42611df77aac4f1ac223d324e794" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling winnow v0.7.11
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling borsh v1.5.7
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]     Checking turbo-genesis-ffi v1.0.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling borsh-derive v1.5.7
[INFO] [stderr]     Checking turbo-genesis-abi v1.0.0
[INFO] [stderr]    Compiling turbo-genesis-macros v1.0.0
[INFO] [stderr]     Checking turbo-genesis-sdk v5.1.0
[INFO] [stderr]     Checking burning_wood_versus v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Neg`
[INFO] [stdout]  --> src/common/vec.rs:1:80
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{Add, Sub, Mul, Div, AddAssign, SubAssign, MulAssign, DivAssign, Neg};
[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 imports: `camera::x` and `utils::color`
[INFO] [stdout]  --> src/common/draw.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::{camera::x, utils::color, *};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Anchor`, `ClientTimer`, `EntityRenderer`, `EntityState`, `JERSEY_20`, `Renderable`, `ScaleMode`, `Text`, `Vec2`, `bounds_get_bottom_center`, and `config`
[INFO] [stdout]  --> src/common/draw.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...::{bounds_get_bottom_center, Anchor, ClientTimer, Renderable, ScaleMode, Sprite, Text}, config, entities::{EntityRenderer, EntityState}, Span, Vec2, JERSEY_20};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^          ^^^^   ^^^^^^             ^^^^^^^^^^^^^^  ^^^^^^^^^^^         ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MulAssign` and `Mul`
[INFO] [stdout]  --> src/common/renderable.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{Mul, MulAssign};
[INFO] [stdout]   |                ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/common/sprite.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Anchor` and `CircleCollider`
[INFO] [stdout]  --> src/common/sprite.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{Vec2, Vec2Int, CircleCollider, Renderable, Anchor, ScaleMode};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/common/font.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Anchor`, `CircleCollider`, and `Vec2Int`
[INFO] [stdout]  --> src/common/text.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{common::Font, Anchor, CircleCollider, Renderable, ScaleMode, Vec2, Vec2Int};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^^^^^^^                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec2Int` and `draw`
[INFO] [stdout]  --> src/common/circular_pad.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{common::{draw, Anchor, Renderable, Vec2Int}, sprites, Sprite, Vec2};
[INFO] [stdout]   |                      ^^^^                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ease::*`
[INFO] [stdout]   --> src/common/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use ease::*;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/state/title_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CircleCollider` and `Vec2`
[INFO] [stdout]  --> src/state/game_state.rs:4:74
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...derer, EntityState, EventState}, CircleCollider, EffectState, PlayerState, ProjectileState, Vec2};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^                                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/state/gameoptions_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/state/gameover_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/state/roundover_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sprite`
[INFO] [stdout]  --> src/screens/helpers/version_helpers.rs:3:53
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{common::{Anchor, Renderable, ScaleMode, Sprite, Text}, JERSEY_20};
[INFO] [stdout]   |                                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientTimer` and `config`
[INFO] [stdout]  --> src/screens/helpers/timer_helpers.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{common::{Anchor, ClientTimer, Renderable, ScaleMode, Text}, config, JERSEY_20};
[INFO] [stdout]   |                              ^^^^^^^^^^^                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/screens/title_screen.rs:4:151
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...bounds_width_by_fraction, Anchor, Renderable, ScaleMode, Span, Vec2, Vec2Int, play_ui_sound_if_enabled, ui_sounds}, draw_version, ...
[INFO] [stdout]   |                                                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec2`, `ease`, `inset_bounds_by_fraction`, and `inset_bounds_width_by_fraction`
[INFO] [stdout]  --> src/screens/player_config_screen.rs:4:100
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...n, ease, inset_bounds_by_fraction, inset_bounds_width_by_fraction, Anchor, Renderable, ScaleMode, Span, Text}, draw_fade_to_black, names, screen_management, sprites, transition_t, App, ScreenType, Vec2, J...
[INFO] [stdout]   |       ^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::net`
[INFO] [stdout]  --> src/screens/game_screen.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::net;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/screens/game_screen.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::os::server`
[INFO] [stdout]  --> src/screens/game_screen.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use turbo::os::server;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EntityState`, `ItemType`, and `config`
[INFO] [stdout]  --> src/screens/game_screen.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...n, config, draw_fade_to_black, entities::{EntityState, PlayerState}, movement_vector_with_pad, screen_management, send_message, set_lighting_shader, update_and_render_game_state, transition_t, update_ambient_light, App, ItemType, S...
[INFO] [stdout]   |       ^^^^^^                                 ^^^^^^^^^^^                                                                                                                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec2Int`, `inset_bounds_by_fraction`, and `scale_bounds_from_center`
[INFO] [stdout]  --> src/screens/gameover_screen.rs:4:82
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...e, inset_bounds_by_fraction, inset_bounds_width_by_fraction, scale_bounds_from_center, Anchor, Renderable, ScaleMode, Span, Vec2Int}, ...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^                                  ^^^^^^^^^^^^^^^^^^^^^^^^                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec2Int`, `inset_bounds_by_fraction`, and `scale_bounds_from_center`
[INFO] [stdout]  --> src/screens/roundover_screen.rs:4:82
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...e, inset_bounds_by_fraction, inset_bounds_width_by_fraction, scale_bounds_from_center, Anchor, Renderable, ScaleMode, Span, Vec2Int}, ...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^                                  ^^^^^^^^^^^^^^^^^^^^^^^^                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `screens::draw_version`, `set_lighting_shader`, and `update_ambient_light`
[INFO] [stdout]  --> src/screens/gameoptions_screen.rs:4:182
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...ment, screens::draw_version, set_lighting_shader, sprites, update_and_render_game_state, transition_t, update_ambient_light, App, ...
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^                                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/systems/ui/leaderboard_manager.rs:5:59
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{common::{Anchor, Renderable, ScaleMode, Text, Vec2}, PlayerData, entities::EntityState, networking::is_client_player, Pla...
[INFO] [stdout]   |                                                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/systems/rendering/game_renderer.rs:4:71
[INFO] [stdout]   |
[INFO] [stdout] 4 |     common::{bounds_get_bottom_center, Anchor, Renderable, ScaleMode, Vec2}, config, entities::{EntityRenderer, EntityState}, render_...
[INFO] [stdout]   |                                                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/systems/rendering/game_state_renderer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/systems/rendering/lighting_renderer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Anchor`, `App`, `EntityState`, `Vec2Int`, `config`, `lerp`, and `shaders`
[INFO] [stdout]  --> src/systems/rendering/lighting_renderer.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 |     common::{lerp, Anchor, Vec2Int},
[INFO] [stdout]   |              ^^^^  ^^^^^^  ^^^^^^^
[INFO] [stdout] 6 |     config, shaders, App, GameState,
[INFO] [stdout]   |     ^^^^^^  ^^^^^^^  ^^^
[INFO] [stdout] 7 |     EntityState
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CircleCollider`
[INFO] [stdout]  --> src/systems/spawning/projectile_spawning.rs:3:102
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{config, create_uuid, entities::EntityState, sample_inside_bounds, sample_outside_bounds, CircleCollider, ProjectileState,...
[INFO] [stdout]   |                                                                                                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EventState`
[INFO] [stdout]  --> src/systems/spawning/effect_spawning.rs:4:42
[INFO] [stdout]   |
[INFO] [stdout] 4 |     create_uuid, entities::{EntityState, EventState, PlayerState}, sample_inside_bounds, EffectSource, EffectState, EffectType, GameS...
[INFO] [stdout]   |                                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/systems/entity_movement/projectile_movement.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ItemType` and `Vec2`
[INFO] [stdout]  --> src/systems/entity_collision/collision_results.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Vec2, 
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 3 |     ItemType
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/systems/entity_collision/collision_processor.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/systems/simulation/game_simulation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/systems/simulation/game_simulation.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 |     if (tick % num_ticks_per_second == 0)
[INFO] [stdout]    |        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 63 -     if (tick % num_ticks_per_second == 0)
[INFO] [stdout] 63 +     if tick % num_ticks_per_second == 0
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/entities/entity/entity.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/entities/entity/entity_renderer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sprite` and `Vec2`
[INFO] [stdout]  --> src/entities/entity/entity_renderer.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{Vec2, Sprite, EntityState};
[INFO] [stdout]   |             ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/entities/entity/entity_client_controlled.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sprites`
[INFO] [stdout]  --> src/entities/player/player.rs:3:143
[INFO] [stdout]   |
[INFO] [stdout] 3 | ... EntityState, ClientControlled}, lerp, CircleCollider, Vec2, sprites, ServerEvent};
[INFO] [stdout]   |                                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `player_renderer::*`
[INFO] [stdout]  --> src/entities/player/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use player_renderer::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Neg`
[INFO] [stdout]  --> src/common/vec.rs:1:80
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{Add, Sub, Mul, Div, AddAssign, SubAssign, MulAssign, DivAssign, Neg};
[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 imports: `camera::x` and `utils::color`
[INFO] [stdout]  --> src/common/draw.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::{camera::x, utils::color, *};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Anchor`, `ClientTimer`, `EntityRenderer`, `EntityState`, `JERSEY_20`, `Renderable`, `ScaleMode`, `Text`, `Vec2`, `bounds_get_bottom_center`, and `config`
[INFO] [stdout]  --> src/common/draw.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...::{bounds_get_bottom_center, Anchor, ClientTimer, Renderable, ScaleMode, Sprite, Text}, config, entities::{EntityRenderer, EntityState}, Span, Vec2, JERSEY_20};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^          ^^^^   ^^^^^^             ^^^^^^^^^^^^^^  ^^^^^^^^^^^         ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MulAssign` and `Mul`
[INFO] [stdout]  --> src/common/renderable.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{Mul, MulAssign};
[INFO] [stdout]   |                ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/common/sprite.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Anchor` and `CircleCollider`
[INFO] [stdout]  --> src/common/sprite.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{Vec2, Vec2Int, CircleCollider, Renderable, Anchor, ScaleMode};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/common/font.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Anchor`, `CircleCollider`, and `Vec2Int`
[INFO] [stdout]  --> src/common/text.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{common::Font, Anchor, CircleCollider, Renderable, ScaleMode, Vec2, Vec2Int};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^^^^^^^                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec2Int` and `draw`
[INFO] [stdout]  --> src/common/circular_pad.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{common::{draw, Anchor, Renderable, Vec2Int}, sprites, Sprite, Vec2};
[INFO] [stdout]   |                      ^^^^                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ease::*`
[INFO] [stdout]   --> src/common/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use ease::*;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/state/title_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CircleCollider` and `Vec2`
[INFO] [stdout]  --> src/state/game_state.rs:4:74
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...derer, EntityState, EventState}, CircleCollider, EffectState, PlayerState, ProjectileState, Vec2};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^                                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `health_effects::*`
[INFO] [stdout]  --> src/entities/player/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use health_effects::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseEntityDirtyState`, `CircleCollider`, `EntityDirtyState`, and `ItemRarity`
[INFO] [stdout]  --> src/entities/item/item.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...ities::{BaseEntityDirtyState, EntityDirtyState, EntityState}, CircleCollider, EffectType, ItemType, ItemPhase, ItemRarity, ItemDef...
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^                ^^^^^^^^^^^^^^                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProjectileType`
[INFO] [stdout]  --> src/entities/item/item_metadata.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{EffectType, weighted_random_sample, ProjectileType};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CircleCollider`, `PlayerState`, `Vec2Int`, and `Vec2`
[INFO] [stdout]  --> src/entities/item/item_renderer.rs:2:85
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...Text, Vec2Int}, entities::{EntityState, ItemPhase, ItemState}, sprites, CircleCollider, ItemType, PlayerState, Sprite, Vec2, JERSE...
[INFO] [stdout]   |          ^^^^^^^                                                           ^^^^^^^^^^^^^^            ^^^^^^^^^^^          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `item_renderer::*`
[INFO] [stdout]  --> src/entities/item/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use item_renderer::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `item_catalog::*`
[INFO] [stdout]  --> src/entities/item/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use item_catalog::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sprites`
[INFO] [stdout]  --> src/entities/projectile/projectile.rs:3:149
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...rp, CircleCollider, Vec2, ProjectileType, ProjectilePayload, sprites, ServerEvent};
[INFO] [stdout]   |                                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `weighted_random_sample`
[INFO] [stdout]  --> src/entities/projectile/projectile_metadata.rs:1:63
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{PlayerState, ItemType, ItemState, ItemDefinition, weighted_random_sample};
[INFO] [stdout]   |                                                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `projectile`
[INFO] [stdout]  --> src/entities/projectile/projectile_renderer.rs:3:61
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{common::{Renderable, Vec2, Vec2Int}, entities::{projectile, EntityDirtyState, EntityState}, sprites, EntityRenderer, Proj...
[INFO] [stdout]   |                                                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/state/gameoptions_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/state/gameover_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/state/roundover_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sprite`
[INFO] [stdout]  --> src/screens/helpers/version_helpers.rs:3:53
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{common::{Anchor, Renderable, ScaleMode, Sprite, Text}, JERSEY_20};
[INFO] [stdout]   |                                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientTimer` and `config`
[INFO] [stdout]  --> src/screens/helpers/timer_helpers.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{common::{Anchor, ClientTimer, Renderable, ScaleMode, Text}, config, JERSEY_20};
[INFO] [stdout]   |                              ^^^^^^^^^^^                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `projectile_renderer::*`
[INFO] [stdout]  --> src/entities/projectile/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use projectile_renderer::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/screens/title_screen.rs:4:151
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...bounds_width_by_fraction, Anchor, Renderable, ScaleMode, Span, Vec2, Vec2Int, play_ui_sound_if_enabled, ui_sounds}, draw_version, ...
[INFO] [stdout]   |                                                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/entities/effect/effect.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Vec2, EffectSource, EffectType, CircleCollider, entities::{BaseEntityDirtyState, EntityDirtyState, EntityState}, ServerEv...
[INFO] [stdout]   |             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec2`, `ease`, `inset_bounds_by_fraction`, and `inset_bounds_width_by_fraction`
[INFO] [stdout]  --> src/screens/player_config_screen.rs:4:100
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...n, ease, inset_bounds_by_fraction, inset_bounds_width_by_fraction, Anchor, Renderable, ScaleMode, Span, Text}, draw_fade_to_black, names, screen_management, sprites, transition_t, App, ScreenType, Vec2, J...
[INFO] [stdout]   |       ^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EffectState` and `create_uuid`
[INFO] [stdout]  --> src/entities/effect/effect_metadata.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{config, create_uuid, EffectState, ProjectileType};
[INFO] [stdout]   |                     ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::net`
[INFO] [stdout]  --> src/screens/game_screen.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::net;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/screens/game_screen.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::os::server`
[INFO] [stdout]  --> src/screens/game_screen.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use turbo::os::server;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EntityState`, `ItemType`, and `config`
[INFO] [stdout]  --> src/screens/game_screen.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...n, config, draw_fade_to_black, entities::{EntityState, PlayerState}, movement_vector_with_pad, screen_management, send_message, set_lighting_shader, update_and_render_game_state, transition_t, update_ambient_light, App, ItemType, S...
[INFO] [stdout]   |       ^^^^^^                                 ^^^^^^^^^^^                                                                                                                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec2Int`, `inset_bounds_by_fraction`, and `scale_bounds_from_center`
[INFO] [stdout]  --> src/screens/gameover_screen.rs:4:82
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...e, inset_bounds_by_fraction, inset_bounds_width_by_fraction, scale_bounds_from_center, Anchor, Renderable, ScaleMode, Span, Vec2Int}, ...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^                                  ^^^^^^^^^^^^^^^^^^^^^^^^                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec2Int`, `inset_bounds_by_fraction`, and `scale_bounds_from_center`
[INFO] [stdout]  --> src/screens/roundover_screen.rs:4:82
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...e, inset_bounds_by_fraction, inset_bounds_width_by_fraction, scale_bounds_from_center, Anchor, Renderable, ScaleMode, Span, Vec2Int}, ...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^                                  ^^^^^^^^^^^^^^^^^^^^^^^^                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `screens::draw_version`, `set_lighting_shader`, and `update_ambient_light`
[INFO] [stdout]  --> src/screens/gameoptions_screen.rs:4:182
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...ment, screens::draw_version, set_lighting_shader, sprites, update_and_render_game_state, transition_t, update_ambient_light, App, ...
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^                                                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `effect_renderer::*`
[INFO] [stdout]  --> src/entities/effect/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use effect_renderer::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/networking/client/network.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EntityDirtyState`
[INFO] [stdout]  --> src/networking/client/network.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 |     entities::{EntityDirtyState, EntityState}, screens::screen_management, state::ScreenType, App, GameState, MainChannel, ServerEven...
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `os::server`
[INFO] [stdout]  --> src/networking/client/game_state_manager.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::{os::server, *};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `common::Vec2`
[INFO] [stdout]  --> src/networking/client/game_state_manager.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{common::Vec2, config, entities::{EntityDirtyState, EntityState}, is_client_player, networking::UserMessage, systems::appl...
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/systems/ui/leaderboard_manager.rs:5:59
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{common::{Anchor, Renderable, ScaleMode, Text, Vec2}, PlayerData, entities::EntityState, networking::is_client_player, Pla...
[INFO] [stdout]   |                                                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/systems/rendering/game_renderer.rs:4:71
[INFO] [stdout]   |
[INFO] [stdout] 4 |     common::{bounds_get_bottom_center, Anchor, Renderable, ScaleMode, Vec2}, config, entities::{EntityRenderer, EntityState}, render_...
[INFO] [stdout]   |                                                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/systems/rendering/game_state_renderer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/systems/rendering/lighting_renderer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/networking/client/helpers.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/networking/server/channel.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Anchor`, `App`, `EntityState`, `Vec2Int`, `config`, `lerp`, and `shaders`
[INFO] [stdout]  --> src/systems/rendering/lighting_renderer.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 |     common::{lerp, Anchor, Vec2Int},
[INFO] [stdout]   |              ^^^^  ^^^^^^  ^^^^^^^
[INFO] [stdout] 6 |     config, shaders, App, GameState,
[INFO] [stdout]   |     ^^^^^^  ^^^^^^^  ^^^
[INFO] [stdout] 7 |     EntityState
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ItemState`, `generate_server_events`, and `names::random_username`
[INFO] [stdout]  --> src/networking/server/channel.rs:7:74
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...s, generate_server_events, names::random_username, spawn_effect_from_player, spawn_player, systems::apply_player_movement_scaled, update_game_simulation, ClientControlled, GameState, ItemState, S...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CircleCollider`
[INFO] [stdout]  --> src/systems/spawning/projectile_spawning.rs:3:102
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{config, create_uuid, entities::EntityState, sample_inside_bounds, sample_outside_bounds, CircleCollider, ProjectileState,...
[INFO] [stdout]   |                                                                                                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EventState`
[INFO] [stdout]  --> src/systems/spawning/effect_spawning.rs:4:42
[INFO] [stdout]   |
[INFO] [stdout] 4 |     create_uuid, entities::{EntityState, EventState, PlayerState}, sample_inside_bounds, EffectSource, EffectState, EffectType, GameS...
[INFO] [stdout]   |                                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/systems/entity_movement/projectile_movement.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/networking/shared/events.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ItemType`
[INFO] [stdout]  --> src/networking/shared/events.rs:5:50
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{EventState, EffectType, EffectState, ItemType, PlayerState, ProjectilePayload, ProjectileState, Vec2, ItemState, ItemPhase};
[INFO] [stdout]   |                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ItemType` and `Vec2`
[INFO] [stdout]  --> src/systems/entity_collision/collision_results.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Vec2, 
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 3 |     ItemType
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/systems/entity_collision/collision_processor.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/systems/simulation/game_simulation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/systems/simulation/game_simulation.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 |     if (tick % num_ticks_per_second == 0)
[INFO] [stdout]    |        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 63 -     if (tick % num_ticks_per_second == 0)
[INFO] [stdout] 63 +     if tick % num_ticks_per_second == 0
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/entities/entity/entity.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/entities/entity/entity_renderer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sprite` and `Vec2`
[INFO] [stdout]  --> src/entities/entity/entity_renderer.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{Vec2, Sprite, EntityState};
[INFO] [stdout]   |             ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/entities/entity/entity_client_controlled.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sprites`
[INFO] [stdout]  --> src/entities/player/player.rs:3:143
[INFO] [stdout]   |
[INFO] [stdout] 3 | ... EntityState, ClientControlled}, lerp, CircleCollider, Vec2, sprites, ServerEvent};
[INFO] [stdout]   |                                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `player_renderer::*`
[INFO] [stdout]  --> src/entities/player/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use player_renderer::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `health_effects::*`
[INFO] [stdout]  --> src/entities/player/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use health_effects::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseEntityDirtyState`, `CircleCollider`, `EntityDirtyState`, and `ItemRarity`
[INFO] [stdout]  --> src/entities/item/item.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...ities::{BaseEntityDirtyState, EntityDirtyState, EntityState}, CircleCollider, EffectType, ItemType, ItemPhase, ItemRarity, ItemDef...
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^                ^^^^^^^^^^^^^^                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProjectileType`
[INFO] [stdout]  --> src/entities/item/item_metadata.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{EffectType, weighted_random_sample, ProjectileType};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ItemType`
[INFO] [stdout]  --> src/networking/shared/messages.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Vec2, ItemType};
[INFO] [stdout]   |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sprites::*`
[INFO] [stdout]   --> src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use sprites::*;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `names::*`
[INFO] [stdout]   --> src/lib.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use names::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CircleCollider`, `PlayerState`, `Vec2Int`, and `Vec2`
[INFO] [stdout]  --> src/entities/item/item_renderer.rs:2:85
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...Text, Vec2Int}, entities::{EntityState, ItemPhase, ItemState}, sprites, CircleCollider, ItemType, PlayerState, Sprite, Vec2, JERSE...
[INFO] [stdout]   |          ^^^^^^^                                                           ^^^^^^^^^^^^^^            ^^^^^^^^^^^          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `item_renderer::*`
[INFO] [stdout]  --> src/entities/item/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use item_renderer::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `item_catalog::*`
[INFO] [stdout]  --> src/entities/item/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use item_catalog::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sprites`
[INFO] [stdout]  --> src/entities/projectile/projectile.rs:3:149
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...rp, CircleCollider, Vec2, ProjectileType, ProjectilePayload, sprites, ServerEvent};
[INFO] [stdout]   |                                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `weighted_random_sample`
[INFO] [stdout]  --> src/entities/projectile/projectile_metadata.rs:1:63
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{PlayerState, ItemType, ItemState, ItemDefinition, weighted_random_sample};
[INFO] [stdout]   |                                                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `projectile`
[INFO] [stdout]  --> src/entities/projectile/projectile_renderer.rs:3:61
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{common::{Renderable, Vec2, Vec2Int}, entities::{projectile, EntityDirtyState, EntityState}, sprites, EntityRenderer, Proj...
[INFO] [stdout]   |                                                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `projectile_renderer::*`
[INFO] [stdout]  --> src/entities/projectile/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use projectile_renderer::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/entities/effect/effect.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Vec2, EffectSource, EffectType, CircleCollider, entities::{BaseEntityDirtyState, EntityDirtyState, EntityState}, ServerEv...
[INFO] [stdout]   |             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EffectState` and `create_uuid`
[INFO] [stdout]  --> src/entities/effect/effect_metadata.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{config, create_uuid, EffectState, ProjectileType};
[INFO] [stdout]   |                     ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `effect_renderer::*`
[INFO] [stdout]  --> src/entities/effect/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use effect_renderer::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/networking/client/network.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EntityDirtyState`
[INFO] [stdout]  --> src/networking/client/network.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 |     entities::{EntityDirtyState, EntityState}, screens::screen_management, state::ScreenType, App, GameState, MainChannel, ServerEven...
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `os::server`
[INFO] [stdout]  --> src/networking/client/game_state_manager.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::{os::server, *};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `common::Vec2`
[INFO] [stdout]  --> src/networking/client/game_state_manager.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{common::Vec2, config, entities::{EntityDirtyState, EntityState}, is_client_player, networking::UserMessage, systems::appl...
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo::*`
[INFO] [stdout]  --> src/networking/client/helpers.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/networking/server/channel.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ItemState`, `generate_server_events`, and `names::random_username`
[INFO] [stdout]  --> src/networking/server/channel.rs:7:74
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...s, generate_server_events, names::random_username, spawn_effect_from_player, spawn_player, systems::apply_player_movement_scaled, update_game_simulation, ClientControlled, GameState, ItemState, S...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/networking/shared/events.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ItemType`
[INFO] [stdout]  --> src/networking/shared/events.rs:5:50
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{EventState, EffectType, EffectState, ItemType, PlayerState, ProjectilePayload, ProjectileState, Vec2, ItemState, ItemPhase};
[INFO] [stdout]   |                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ItemType`
[INFO] [stdout]  --> src/networking/shared/messages.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Vec2, ItemType};
[INFO] [stdout]   |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sprites::*`
[INFO] [stdout]   --> src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use sprites::*;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `names::*`
[INFO] [stdout]   --> src/lib.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use names::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/networking/shared/messages.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/networking/shared/events.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/networking/server/events_generator.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: ``
[INFO] [stdout]  --> src/networking/client/game_state_manager.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::{os::server, *};
[INFO] [stdout]   |                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EntityDirtyState`
[INFO] [stdout]  --> src/networking/client/game_state_manager.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{common::Vec2, config, entities::{EntityDirtyState, EntityState}, is_client_player, networking::UserMessage, systems::appl...
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/entities/projectile/projectile.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/state/screen_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/state/settings_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/state/credits_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/state/input_state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/systems/simulation/game_simulation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/entities/event/event_metadata.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/entities/event/event.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EntityState`
[INFO] [stdout]  --> src/entities/item/item_renderer.rs:2:106
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{common::{inset_bounds_by_fraction, Anchor, Renderable, ScaleMode, Text, Vec2Int}, entities::{EntityState, ItemPhase, Item...
[INFO] [stdout]   |                                                                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/entities/effect/effect_metadata.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/entities/effect/effect.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EntityState`
[INFO] [stdout]  --> src/entities/item/item.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{entities::{BaseEntityDirtyState, EntityDirtyState, EntityState}, CircleCollider, EffectType, ItemType, ItemPhase, ItemRar...
[INFO] [stdout]   |                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/systems/spawning/player_spawning.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/networking/shared/messages.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/networking/shared/events.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/networking/server/events_generator.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: ``
[INFO] [stdout]  --> src/networking/client/game_state_manager.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::{os::server, *};
[INFO] [stdout]   |                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EntityDirtyState`
[INFO] [stdout]  --> src/networking/client/game_state_manager.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{common::Vec2, config, entities::{EntityDirtyState, EntityState}, is_client_player, networking::UserMessage, systems::appl...
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/entities/projectile/projectile.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/state/screen_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/state/settings_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/state/credits_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/state/input_state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/systems/simulation/game_simulation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/entities/event/event_metadata.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/entities/event/event.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EntityState`
[INFO] [stdout]  --> src/entities/item/item_renderer.rs:2:106
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{common::{inset_bounds_by_fraction, Anchor, Renderable, ScaleMode, Text, Vec2Int}, entities::{EntityState, ItemPhase, Item...
[INFO] [stdout]   |                                                                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/entities/effect/effect_metadata.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/entities/effect/effect.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EntityState`
[INFO] [stdout]  --> src/entities/item/item.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{entities::{BaseEntityDirtyState, EntityDirtyState, EntityState}, CircleCollider, EffectType, ItemType, ItemPhase, ItemRar...
[INFO] [stdout]   |                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbo`
[INFO] [stdout]  --> src/systems/spawning/player_spawning.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use turbo::*;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/screens/title_screen.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/screens/settings_screen.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/screens/settings_screen.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mut start_settings_bounds = settings_sprite.get_bounds_anchored_at(bounds_get_top_center(&canvas_bounds), Anchor::BottomCent...
[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: `app`
[INFO] [stdout]   --> src/screens/credits_screen.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/screens/credits_screen.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut start_credits_bounds = credits_sprite.get_bounds_anchored_at(bounds_get_top_center(&canvas_bounds), Anchor::BottomCenter);
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/screens/game_screen.rs:73:21
[INFO] [stdout]    |
[INFO] [stdout] 73 |         if let Some(player) = app.game_state_manager.local_state.players.get_mut(&user_id) {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/screens/game_screen.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let mut item_keys_just_pressed = PlayerState::get_item_keyboard_key_just_pressed();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/screens/gameover_screen.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/screens/gameover_screen.rs:136:22
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn get_button_bounds(t: f32, panel_bounds: &Bounds) -> [Bounds; 2] {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/screens/roundover_screen.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/screens/roundover_screen.rs:38:24
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn draw_roundover_menu(app: &mut App, t: f32) {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/screens/roundover_screen.rs:114:22
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn get_button_bounds(t: f32, panel_bounds: &Bounds) -> [Bounds; 1] {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/screens/gameoptions_screen.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let mut start_settings_bounds = settings_sprite.get_bounds_anchored_at(bounds_get_top_center(&canvas_bounds), Anchor::BottomCent...
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:28:29
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn update_ambient_light(t: f32) {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_state`
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn update_lights(game_state: &GameState) {
[INFO] [stdout]    |                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius_multiplier`
[INFO] [stdout]    --> src/systems/simulation/effect_simulation.rs:321:90
[INFO] [stdout]     |
[INFO] [stdout] 321 | fn calculate_auto_target_direction(ctx: &EffectContext, source_player_data: &PlayerData, radius_multiplier: f32) -> Vec2 {
[INFO] [stdout]     |                                                                                          ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radius_multiplier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/screens/title_screen.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/screens/settings_screen.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/screens/settings_screen.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mut start_settings_bounds = settings_sprite.get_bounds_anchored_at(bounds_get_top_center(&canvas_bounds), Anchor::BottomCent...
[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: `app`
[INFO] [stdout]   --> src/screens/credits_screen.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/screens/credits_screen.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut start_credits_bounds = credits_sprite.get_bounds_anchored_at(bounds_get_top_center(&canvas_bounds), Anchor::BottomCenter);
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/screens/game_screen.rs:73:21
[INFO] [stdout]    |
[INFO] [stdout] 73 |         if let Some(player) = app.game_state_manager.local_state.players.get_mut(&user_id) {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/screens/game_screen.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let mut item_keys_just_pressed = PlayerState::get_item_keyboard_key_just_pressed();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/screens/gameover_screen.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/screens/gameover_screen.rs:136:22
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn get_button_bounds(t: f32, panel_bounds: &Bounds) -> [Bounds; 2] {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/screens/roundover_screen.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/screens/roundover_screen.rs:38:24
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn draw_roundover_menu(app: &mut App, t: f32) {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/screens/roundover_screen.rs:114:22
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn get_button_bounds(t: f32, panel_bounds: &Bounds) -> [Bounds; 1] {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/screens/gameoptions_screen.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let mut start_settings_bounds = settings_sprite.get_bounds_anchored_at(bounds_get_top_center(&canvas_bounds), Anchor::BottomCent...
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `center`
[INFO] [stdout]    --> src/entities/player/player_renderer.rs:123:17
[INFO] [stdout]     |
[INFO] [stdout] 123 |             let center = player_data.collider.position;
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_center`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:28:29
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn update_ambient_light(t: f32) {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game_state`
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn update_lights(game_state: &GameState) {
[INFO] [stdout]    |                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius_multiplier`
[INFO] [stdout]    --> src/systems/simulation/effect_simulation.rs:321:90
[INFO] [stdout]     |
[INFO] [stdout] 321 | fn calculate_auto_target_direction(ctx: &EffectContext, source_player_data: &PlayerData, radius_multiplier: f32) -> Vec2 {
[INFO] [stdout]     |                                                                                          ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radius_multiplier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `center`
[INFO] [stdout]    --> src/entities/player/player_renderer.rs:123:17
[INFO] [stdout]     |
[INFO] [stdout] 123 |             let center = player_data.collider.position;
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_center`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source_dirty`
[INFO] [stdout]    --> src/entities/event/event.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let source_dirty = source.dirty();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_source_dirty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `connection`
[INFO] [stdout]   --> src/networking/client/network.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let connection = match MainChannel::subscribe("*") {
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]   --> src/networking/client/network.rs:67:38
[INFO] [stdout]    |
[INFO] [stdout] 67 |         ServerEvent::PlayerSpawned { user_id, player_state } => {
[INFO] [stdout]    |                                      ^^^^^^^ help: try ignoring the field: `user_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `projectile_id`
[INFO] [stdout]    --> src/networking/client/network.rs:127:42
[INFO] [stdout]     |
[INFO] [stdout] 127 |         ServerEvent::ProjectileSpawned { projectile_id, projectile_state } => {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^ help: try ignoring the field: `projectile_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `effect_id`
[INFO] [stdout]    --> src/networking/client/network.rs:156:38
[INFO] [stdout]     |
[INFO] [stdout] 156 |         ServerEvent::EffectSpawned { effect_id, effect_state } => {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: try ignoring the field: `effect_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_id`
[INFO] [stdout]    --> src/networking/client/network.rs:185:37
[INFO] [stdout]     |
[INFO] [stdout] 185 |         ServerEvent::EventSpawned { event_id, event_data } => {
[INFO] [stdout]     |                                     ^^^^^^^^ help: try ignoring the field: `event_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item_index`
[INFO] [stdout]   --> src/networking/client/game_state_manager.rs:37:40
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 UserMessage::UseItem { item_index, .. } => {
[INFO] [stdout]    |                                        ^^^^^^^^^^ help: try ignoring the field: `item_index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_event`
[INFO] [stdout]    --> src/networking/client/game_state_manager.rs:230:25
[INFO] [stdout]     |
[INFO] [stdout] 230 |             if let Some(local_event) = self.local_state.events.get_mut(event_id) {
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `projectile_id`
[INFO] [stdout]    --> src/networking/client/game_state_manager.rs:275:14
[INFO] [stdout]     |
[INFO] [stdout] 275 |         for (projectile_id, server_projectile) in &self.server_state.projectiles {
[INFO] [stdout]     |              ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_projectile_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `projectile_id`
[INFO] [stdout]    --> src/networking/client/game_state_manager.rs:280:14
[INFO] [stdout]     |
[INFO] [stdout] 280 |         for (projectile_id, predicted_projectile) in &self.predicted_state.projectiles {
[INFO] [stdout]     |              ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_projectile_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/networking/server/channel.rs:123:33
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     if let Some(player) = self.game_state.players.get(user_id) {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]    --> src/networking/server/channel.rs:366:14
[INFO] [stdout]     |
[INFO] [stdout] 366 |         for (user_id, player) in self.game_state.players.iter_mut() {
[INFO] [stdout]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source_dirty`
[INFO] [stdout]    --> src/entities/event/event.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let source_dirty = source.dirty();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_source_dirty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `connection`
[INFO] [stdout]   --> src/networking/client/network.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let connection = match MainChannel::subscribe("*") {
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]   --> src/networking/client/network.rs:67:38
[INFO] [stdout]    |
[INFO] [stdout] 67 |         ServerEvent::PlayerSpawned { user_id, player_state } => {
[INFO] [stdout]    |                                      ^^^^^^^ help: try ignoring the field: `user_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `projectile_id`
[INFO] [stdout]    --> src/networking/client/network.rs:127:42
[INFO] [stdout]     |
[INFO] [stdout] 127 |         ServerEvent::ProjectileSpawned { projectile_id, projectile_state } => {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^ help: try ignoring the field: `projectile_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `effect_id`
[INFO] [stdout]    --> src/networking/client/network.rs:156:38
[INFO] [stdout]     |
[INFO] [stdout] 156 |         ServerEvent::EffectSpawned { effect_id, effect_state } => {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: try ignoring the field: `effect_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_id`
[INFO] [stdout]    --> src/networking/client/network.rs:185:37
[INFO] [stdout]     |
[INFO] [stdout] 185 |         ServerEvent::EventSpawned { event_id, event_data } => {
[INFO] [stdout]     |                                     ^^^^^^^^ help: try ignoring the field: `event_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item_index`
[INFO] [stdout]   --> src/networking/client/game_state_manager.rs:37:40
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 UserMessage::UseItem { item_index, .. } => {
[INFO] [stdout]    |                                        ^^^^^^^^^^ help: try ignoring the field: `item_index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_event`
[INFO] [stdout]    --> src/networking/client/game_state_manager.rs:230:25
[INFO] [stdout]     |
[INFO] [stdout] 230 |             if let Some(local_event) = self.local_state.events.get_mut(event_id) {
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `projectile_id`
[INFO] [stdout]    --> src/networking/client/game_state_manager.rs:275:14
[INFO] [stdout]     |
[INFO] [stdout] 275 |         for (projectile_id, server_projectile) in &self.server_state.projectiles {
[INFO] [stdout]     |              ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_projectile_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `projectile_id`
[INFO] [stdout]    --> src/networking/client/game_state_manager.rs:280:14
[INFO] [stdout]     |
[INFO] [stdout] 280 |         for (projectile_id, predicted_projectile) in &self.predicted_state.projectiles {
[INFO] [stdout]     |              ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_projectile_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/networking/server/channel.rs:123:33
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     if let Some(player) = self.game_state.players.get(user_id) {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]    --> src/networking/server/channel.rs:366:14
[INFO] [stdout]     |
[INFO] [stdout] 366 |         for (user_id, player) in self.game_state.players.iter_mut() {
[INFO] [stdout]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `HealthEffectType` is more private than the item `HealthEffect::new`
[INFO] [stdout]   --> src/entities/player/health_effects.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn new(effect_type: HealthEffectType, player_position: Vec2, player_id: &str) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `HealthEffect::new` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `HealthEffectType` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/entities/player/health_effects.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | enum HealthEffectType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `time_delta` and `draw_help_message` are never used
[INFO] [stdout]    --> src/lib.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl App {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn time_delta(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn draw_help_message() {
[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 `ALLOWED_CHARS` is never used
[INFO] [stdout]  --> src/common/input.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const ALLOWED_CHARS: &str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%&-_<>?";
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_text_input` is never used
[INFO] [stdout]   --> src/common/input.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn handle_text_input(text: &mut String, max_length: usize) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/common/collider.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl CircleCollider {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(position: Vec2, radius: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoxCollider` is never constructed
[INFO] [stdout]   --> src/common/collider.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct BoxCollider {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/common/collider.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl BoxCollider {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 39 |     pub fn new(position: Vec2, size: Vec2) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `box_box_collision` is never used
[INFO] [stdout]   --> src/common/collider.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn box_box_collision(box1: &BoxCollider, box2: &BoxCollider) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circle_box_collision` is never used
[INFO] [stdout]   --> src/common/collider.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn circle_box_collision(circle: &CircleCollider, box_collider: &BoxCollider) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `time_based_lerp_factor` is never used
[INFO] [stdout]  --> src/common/math.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn time_based_lerp_factor(lerp_speed: f32, delta_time: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bounds_get_right_center` is never used
[INFO] [stdout]   --> src/common/bounds.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn bounds_get_right_center(bounds: &Bounds) -> Vec2Int {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `screen_relative_position` is never used
[INFO] [stdout]   --> src/common/bounds.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn screen_relative_position(relative_pos: Vec2) -> Vec2Int {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relative_position_in_bounds` is never used
[INFO] [stdout]   --> src/common/bounds.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn relative_position_in_bounds(bounds: &Bounds, relative_pos: Vec2) -> Vec2Int {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inset_bounds_height_by_fraction` is never used
[INFO] [stdout]   --> src/common/bounds.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn inset_bounds_height_by_fraction(bounds: &Bounds, fraction: f32) -> Bounds {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_bounds_from_center` is never used
[INFO] [stdout]    --> src/common/bounds.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn scale_bounds_from_center(bounds: &Bounds, scale: f32) -> Bounds {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `linear` is never used
[INFO] [stdout]  --> src/common/ease.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn linear(t: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ease_in` is never used
[INFO] [stdout]  --> src/common/ease.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn ease_in(t: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CenterLeft` is never constructed
[INFO] [stdout]   --> src/common/renderable.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum Anchor {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     CenterLeft,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Anchor` 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: method `set_interval` is never used
[INFO] [stdout]   --> src/common/timer.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ClientTimer {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn set_interval(&mut self, interval_ms: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_interval` and `elapsed_ms` are never used
[INFO] [stdout]   --> src/common/timer.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl ServerTimer {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn set_interval(&mut self, interval_ms: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn elapsed_ms(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_positioned_ui_sound_if_enabled` is never used
[INFO] [stdout]    --> src/common/audio.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn play_positioned_ui_sound_if_enabled(app: &crate::App, sound_name: &str, source_position: Vec2) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENTER_BUTTON` is never used
[INFO] [stdout]   --> src/common/audio.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const ENTER_BUTTON: &str = "SFX/Enter_Button";
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POWERUP_GOLDEN_IDOL` is never used
[INFO] [stdout]   --> src/common/audio.rs:52:15
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub const POWERUP_GOLDEN_IDOL: &str = "SFX/Powerup_Golden Idol";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exit` is never used
[INFO] [stdout]   --> src/screens/settings_screen.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exit` is never used
[INFO] [stdout]   --> src/screens/credits_screen.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NAMEPLATE_SPAN` is never used
[INFO] [stdout]   --> src/screens/player_config_screen.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const NAMEPLATE_SPAN: Span = Span::new(0.1, 0.5);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANDOMIZE_BUTTON_SPAN` is never used
[INFO] [stdout]   --> src/screens/player_config_screen.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const RANDOMIZE_BUTTON_SPAN: Span = Span::new(0.3, 0.7);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MULTIP_BUTTON_SPAN` is never used
[INFO] [stdout]   --> src/screens/player_config_screen.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MULTIP_BUTTON_SPAN: Span = Span::new(0.5, 1.0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONTINUE_BUTTON_INDEX` is never used
[INFO] [stdout]  --> src/screens/roundover_screen.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const CONTINUE_BUTTON_INDEX: usize = 0;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_SPAN` is never used
[INFO] [stdout]   --> src/screens/roundover_screen.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const HEADER_SPAN: Span = Span::new(0.3, 0.7);
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUTTONS_SPAN` is never used
[INFO] [stdout]   --> src/screens/roundover_screen.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const BUTTONS_SPAN: Span = Span::new(0.5, 1.0);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_roundover_header` is never used
[INFO] [stdout]   --> src/screens/roundover_screen.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn draw_roundover_header(t: f32, panel_bounds: &Bounds) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_buttons` is never used
[INFO] [stdout]   --> src/screens/roundover_screen.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn process_buttons(app: &mut App, t: f32, panel_bounds: &Bounds) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_button_bounds` is never used
[INFO] [stdout]    --> src/screens/roundover_screen.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn get_button_bounds(t: f32, panel_bounds: &Bounds) -> [Bounds; 1] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AMBIENT_LIGHT` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const AMBIENT_LIGHT: [f32; 3] = [0.1, 0.1, 0.1];
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FULL_AMBIENT_LIGHT` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const FULL_AMBIENT_LIGHT: [f32; 3] = [1.0, 1.0, 1.0];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_LIGHTS` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MAX_LIGHTS: usize = 4;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIGHT_COLOR` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const LIGHT_COLOR: [f32; 3] = [1.0, 0.8, 0.6];
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIGHT_INTENSITY_MULTIPLIER` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const LIGHT_INTENSITY_MULTIPLIER: f32 = 8.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIGHT_RADIUS_MULTIPLIER` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const LIGHT_RADIUS_MULTIPLIER: f32 = 0.2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_source_effect` is never used
[INFO] [stdout]   --> src/systems/simulation/effect_simulation.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl EffectContext<'_> {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn get_source_effect(&self) -> Option<&EffectState> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_effect_radius` is never used
[INFO] [stdout]    --> src/systems/simulation/effect_simulation.rs:352:4
[INFO] [stdout]     |
[INFO] [stdout] 352 | fn get_effect_radius(effect_type: &EffectType, player_radius: f32, radius_multiplier: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `any` and `has_lifecycle_changes` are never used
[INFO] [stdout]    --> src/entities/entity/entity.rs:88:8
[INFO] [stdout]     |
[INFO] [stdout]  86 | pub trait EntityDirtyState {
[INFO] [stdout]     |           ---------------- methods in this trait
[INFO] [stdout]  87 |     // Core
[INFO] [stdout]  88 |     fn any(&self) -> bool;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn has_lifecycle_changes(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_diameter`, `modify_radius`, `modify_position`, and `has_changes` are never used
[INFO] [stdout]    --> src/entities/entity/entity.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub trait EntityState {
[INFO] [stdout]     |           ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn get_diameter(&self) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn modify_radius(&mut self, delta: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn modify_position(&mut self, delta: Vec2) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn has_changes(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `can_pickup_item` is never used
[INFO] [stdout]    --> src/entities/player/player.rs:306:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl PlayerState {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn can_pickup_item(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `data_mut` and `modify_timer` are never used
[INFO] [stdout]    --> src/entities/item/item.rs:75:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl ItemState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn data_mut(&mut self) -> &mut ItemData {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn modify_timer(&mut self, amount: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/entities/event/event.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl EventDirty {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 79 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/entities/event/event.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl EventState {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 152 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_server_events` is never used
[INFO] [stdout]  --> src/networking/server/events_generator.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn generate_server_events(game_state: &GameState) -> Vec<ServerEvent> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UI_TITLESCREEN_HIGHSCORE_PANEL` is never used
[INFO] [stdout]   --> src/sprites.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const UI_TITLESCREEN_HIGHSCORE_PANEL: Sprite = Sprite::new("ui/title_screen/Highscore_Board", 126, 120);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UI_PLAYERCONFIG_SINGLEP_BUTTON_NORMAL` is never used
[INFO] [stdout]   --> src/sprites.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub const UI_PLAYERCONFIG_SINGLEP_BUTTON_NORMAL: Sprite = Sprite::new("ui/player_config_screen/Name_Generator_Screen_SingleP_Button_...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UI_PLAYERCONFIG_SINGLEP_BUTTON_SELECTED` is never used
[INFO] [stdout]   --> src/sprites.rs:62:11
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub const UI_PLAYERCONFIG_SINGLEP_BUTTON_SELECTED: Sprite = Sprite::new("ui/player_config_screen/Name_Generator_Screen_SingleP_Butto...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UI_WIN_HEADER` is never used
[INFO] [stdout]   --> src/sprites.rs:79:11
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub const UI_WIN_HEADER: Sprite = Sprite::new("ui/game_over/Win_Header", 100, 40);
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENTS_TOTEM_PURPLE` is never used
[INFO] [stdout]    --> src/sprites.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub const EVENTS_TOTEM_PURPLE: Sprite = Sprite::new("events/Totem_Purple", 50, 48);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENTS_EVENT_PURPLE` is never used
[INFO] [stdout]    --> src/sprites.rs:113:11
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub const EVENTS_EVENT_PURPLE: Sprite = Sprite::new("events/Event_Purple", 444, 142);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ITEM_SPRGHOST_ICON` is never used
[INFO] [stdout]    --> src/sprites.rs:118:11
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub const ITEM_SPRGHOST_ICON: Sprite = Sprite::new("items/icons/sprGhost", 32, 32);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ITEM_SPRGRAVITYBALL_ICON` is never used
[INFO] [stdout]    --> src/sprites.rs:119:11
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub const ITEM_SPRGRAVITYBALL_ICON: Sprite = Sprite::new("items/icons/sprGravityBall", 32, 32);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ITEM_SPROILBARREL_ICON` is never used
[INFO] [stdout]    --> src/sprites.rs:122:11
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub const ITEM_SPROILBARREL_ICON: Sprite = Sprite::new("items/icons/sprOilBarrel", 32, 32);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ITEM_SPRTREE_ICON` is never used
[INFO] [stdout]    --> src/sprites.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub const ITEM_SPRTREE_ICON: Sprite = Sprite::new("items/icons/sprTree", 32, 32);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ITEM_SPEEDSHOES_32X32_ICON` is never used
[INFO] [stdout]    --> src/sprites.rs:128:11
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub const ITEM_SPEEDSHOES_32X32_ICON: Sprite = Sprite::new("items/icons/SpeedShoes_32x32", 36, 32);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vector2<i32>`
[INFO] [stdout]    --> src/screens/title_screen.rs:167:72
[INFO] [stdout]     |
[INFO] [stdout] 167 |     let play_button_bounds = play_button_sprite.get_bounds_anchored_at(parent_top_center.into(), Anchor::TopCenter);
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 167 -     let play_button_bounds = play_button_sprite.get_bounds_anchored_at(parent_top_center.into(), Anchor::TopCenter);
[INFO] [stdout] 167 +     let play_button_bounds = play_button_sprite.get_bounds_anchored_at(parent_top_center, Anchor::TopCenter);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 167 -     let play_button_bounds = play_button_sprite.get_bounds_anchored_at(parent_top_center.into(), Anchor::TopCenter);
[INFO] [stdout] 167 +     let play_button_bounds = play_button_sprite.get_bounds_anchored_at(<Vector2<i32> as Into<_>>::into(parent_top_center), Anchor::TopCenter);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vector2<i32>`
[INFO] [stdout]    --> src/screens/player_config_screen.rs:125:82
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let randomize_button_bounds = randomize_button_sprite.get_bounds_anchored_at(nameplate_left_center.into(), Anchor::CenterRight)
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 125 -     let randomize_button_bounds = randomize_button_sprite.get_bounds_anchored_at(nameplate_left_center.into(), Anchor::CenterRight)
[INFO] [stdout] 125 +     let randomize_button_bounds = randomize_button_sprite.get_bounds_anchored_at(nameplate_left_center, Anchor::CenterRight)
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 125 -     let randomize_button_bounds = randomize_button_sprite.get_bounds_anchored_at(nameplate_left_center.into(), Anchor::CenterRight)
[INFO] [stdout] 125 +     let randomize_button_bounds = randomize_button_sprite.get_bounds_anchored_at(<Vector2<i32> as Into<_>>::into(nameplate_left_center), Anchor::CenterRight)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vector2<i32>`
[INFO] [stdout]    --> src/screens/player_config_screen.rs:130:90
[INFO] [stdout]     |
[INFO] [stdout] 130 |     let mut multiplayer_button_bounds = multiplayer_button_sprite.get_bounds_anchored_at(canvas_bottom_center.into(), Anchor::Botto...
[INFO] [stdout]     |                                                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 130 -     let mut multiplayer_button_bounds = multiplayer_button_sprite.get_bounds_anchored_at(canvas_bottom_center.into(), Anchor::BottomCenter);
[INFO] [stdout] 130 +     let mut multiplayer_button_bounds = multiplayer_button_sprite.get_bounds_anchored_at(canvas_bottom_center, Anchor::BottomCenter);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 130 -     let mut multiplayer_button_bounds = multiplayer_button_sprite.get_bounds_anchored_at(canvas_bottom_center.into(), Anchor::BottomCenter);
[INFO] [stdout] 130 +     let mut multiplayer_button_bounds = multiplayer_button_sprite.get_bounds_anchored_at(<Vector2<i32> as Into<_>>::into(canvas_bottom_center), Anchor::BottomCenter);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vector2<i32>`
[INFO] [stdout]    --> src/entities/player/player_renderer.rs:129:68
[INFO] [stdout]     |
[INFO] [stdout] 129 | ...   let crown_bounds = crown_sprite.get_bounds_anchored_at(bounds_get_top_center(&username_text_bounds).into(), Anchor::BottomCen...
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 129 -             let crown_bounds = crown_sprite.get_bounds_anchored_at(bounds_get_top_center(&username_text_bounds).into(), Anchor::BottomCenter);
[INFO] [stdout] 129 +             let crown_bounds = crown_sprite.get_bounds_anchored_at(bounds_get_top_center(&username_text_bounds), Anchor::BottomCenter);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 129 -             let crown_bounds = crown_sprite.get_bounds_anchored_at(bounds_get_top_center(&username_text_bounds).into(), Anchor::BottomCenter);
[INFO] [stdout] 129 +             let crown_bounds = crown_sprite.get_bounds_anchored_at(<Vector2<i32> as Into<_>>::into(bounds_get_top_center(&username_text_bounds)), Anchor::BottomCenter);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/screens/player_config_screen.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     local::save(app.player_config_state.username.as_bytes());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let _ = local::save(app.player_config_state.username.as_bytes());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/networking/client/network.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     connection.send(message);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let _ = connection.send(message);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/networking/server/channel.rs:99:25
[INFO] [stdout]    |
[INFO] [stdout] 99 |                         os::server::channel::broadcast(spawn_event);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |                         let _ = os::server::channel::broadcast(spawn_event);
[INFO] [stdout]    |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:101:25
[INFO] [stdout]     |
[INFO] [stdout] 101 |                         os::server::channel::send(user_id, &spawn_event);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 101 |                         let _ = os::server::channel::send(user_id, &spawn_event);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:146:21
[INFO] [stdout]     |
[INFO] [stdout] 146 |                     os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 146 |                     let _ = os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:154:21
[INFO] [stdout]     |
[INFO] [stdout] 154 |                     os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 154 |                     let _ = os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:162:21
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     let _ = os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:262:17
[INFO] [stdout]     |
[INFO] [stdout] 262 |                 os::server::channel::broadcast(batch);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 262 |                 let _ = os::server::channel::broadcast(batch);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |             os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 294 |             let _ = os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:301:17
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 os::server::channel::send(user_id, &event);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 let _ = os::server::channel::send(user_id, &event);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:311:13
[INFO] [stdout]     |
[INFO] [stdout] 311 |             os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let _ = os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:329:13
[INFO] [stdout]     |
[INFO] [stdout] 329 |             os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |             let _ = os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:357:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             os::server::channel::broadcast(event);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 357 |             let _ = os::server::channel::broadcast(event);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |         os::server::channel::broadcast(event);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let _ = os::server::channel::broadcast(event);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |         os::server::channel::broadcast(event);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let _ = os::server::channel::broadcast(event);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `HealthEffectType` is more private than the item `HealthEffect::new`
[INFO] [stdout]   --> src/entities/player/health_effects.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn new(effect_type: HealthEffectType, player_position: Vec2, player_id: &str) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `HealthEffect::new` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `HealthEffectType` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/entities/player/health_effects.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | enum HealthEffectType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `time_delta` and `draw_help_message` are never used
[INFO] [stdout]    --> src/lib.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl App {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn time_delta(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn draw_help_message() {
[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 `ALLOWED_CHARS` is never used
[INFO] [stdout]  --> src/common/input.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const ALLOWED_CHARS: &str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%&-_<>?";
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_text_input` is never used
[INFO] [stdout]   --> src/common/input.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn handle_text_input(text: &mut String, max_length: usize) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/common/collider.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl CircleCollider {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(position: Vec2, radius: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoxCollider` is never constructed
[INFO] [stdout]   --> src/common/collider.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct BoxCollider {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/common/collider.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl BoxCollider {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 39 |     pub fn new(position: Vec2, size: Vec2) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `box_box_collision` is never used
[INFO] [stdout]   --> src/common/collider.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn box_box_collision(box1: &BoxCollider, box2: &BoxCollider) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circle_box_collision` is never used
[INFO] [stdout]   --> src/common/collider.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn circle_box_collision(circle: &CircleCollider, box_collider: &BoxCollider) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `time_based_lerp_factor` is never used
[INFO] [stdout]  --> src/common/math.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn time_based_lerp_factor(lerp_speed: f32, delta_time: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bounds_get_right_center` is never used
[INFO] [stdout]   --> src/common/bounds.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn bounds_get_right_center(bounds: &Bounds) -> Vec2Int {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `screen_relative_position` is never used
[INFO] [stdout]   --> src/common/bounds.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn screen_relative_position(relative_pos: Vec2) -> Vec2Int {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relative_position_in_bounds` is never used
[INFO] [stdout]   --> src/common/bounds.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn relative_position_in_bounds(bounds: &Bounds, relative_pos: Vec2) -> Vec2Int {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inset_bounds_height_by_fraction` is never used
[INFO] [stdout]   --> src/common/bounds.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn inset_bounds_height_by_fraction(bounds: &Bounds, fraction: f32) -> Bounds {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_bounds_from_center` is never used
[INFO] [stdout]    --> src/common/bounds.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn scale_bounds_from_center(bounds: &Bounds, scale: f32) -> Bounds {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `linear` is never used
[INFO] [stdout]  --> src/common/ease.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn linear(t: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ease_in` is never used
[INFO] [stdout]  --> src/common/ease.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn ease_in(t: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CenterLeft` is never constructed
[INFO] [stdout]   --> src/common/renderable.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum Anchor {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     CenterLeft,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Anchor` 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: method `set_interval` is never used
[INFO] [stdout]   --> src/common/timer.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ClientTimer {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn set_interval(&mut self, interval_ms: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_interval` and `elapsed_ms` are never used
[INFO] [stdout]   --> src/common/timer.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl ServerTimer {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn set_interval(&mut self, interval_ms: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn elapsed_ms(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_positioned_ui_sound_if_enabled` is never used
[INFO] [stdout]    --> src/common/audio.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn play_positioned_ui_sound_if_enabled(app: &crate::App, sound_name: &str, source_position: Vec2) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENTER_BUTTON` is never used
[INFO] [stdout]   --> src/common/audio.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const ENTER_BUTTON: &str = "SFX/Enter_Button";
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POWERUP_GOLDEN_IDOL` is never used
[INFO] [stdout]   --> src/common/audio.rs:52:15
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub const POWERUP_GOLDEN_IDOL: &str = "SFX/Powerup_Golden Idol";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exit` is never used
[INFO] [stdout]   --> src/screens/settings_screen.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exit` is never used
[INFO] [stdout]   --> src/screens/credits_screen.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn exit(app: &mut App) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NAMEPLATE_SPAN` is never used
[INFO] [stdout]   --> src/screens/player_config_screen.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const NAMEPLATE_SPAN: Span = Span::new(0.1, 0.5);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANDOMIZE_BUTTON_SPAN` is never used
[INFO] [stdout]   --> src/screens/player_config_screen.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const RANDOMIZE_BUTTON_SPAN: Span = Span::new(0.3, 0.7);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MULTIP_BUTTON_SPAN` is never used
[INFO] [stdout]   --> src/screens/player_config_screen.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MULTIP_BUTTON_SPAN: Span = Span::new(0.5, 1.0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONTINUE_BUTTON_INDEX` is never used
[INFO] [stdout]  --> src/screens/roundover_screen.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const CONTINUE_BUTTON_INDEX: usize = 0;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_SPAN` is never used
[INFO] [stdout]   --> src/screens/roundover_screen.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const HEADER_SPAN: Span = Span::new(0.3, 0.7);
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUTTONS_SPAN` is never used
[INFO] [stdout]   --> src/screens/roundover_screen.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const BUTTONS_SPAN: Span = Span::new(0.5, 1.0);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_roundover_header` is never used
[INFO] [stdout]   --> src/screens/roundover_screen.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn draw_roundover_header(t: f32, panel_bounds: &Bounds) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_buttons` is never used
[INFO] [stdout]   --> src/screens/roundover_screen.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn process_buttons(app: &mut App, t: f32, panel_bounds: &Bounds) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_button_bounds` is never used
[INFO] [stdout]    --> src/screens/roundover_screen.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn get_button_bounds(t: f32, panel_bounds: &Bounds) -> [Bounds; 1] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AMBIENT_LIGHT` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const AMBIENT_LIGHT: [f32; 3] = [0.1, 0.1, 0.1];
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FULL_AMBIENT_LIGHT` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const FULL_AMBIENT_LIGHT: [f32; 3] = [1.0, 1.0, 1.0];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_LIGHTS` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MAX_LIGHTS: usize = 4;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIGHT_COLOR` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const LIGHT_COLOR: [f32; 3] = [1.0, 0.8, 0.6];
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIGHT_INTENSITY_MULTIPLIER` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const LIGHT_INTENSITY_MULTIPLIER: f32 = 8.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIGHT_RADIUS_MULTIPLIER` is never used
[INFO] [stdout]   --> src/systems/rendering/lighting_renderer.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const LIGHT_RADIUS_MULTIPLIER: f32 = 0.2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_source_effect` is never used
[INFO] [stdout]   --> src/systems/simulation/effect_simulation.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl EffectContext<'_> {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn get_source_effect(&self) -> Option<&EffectState> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_effect_radius` is never used
[INFO] [stdout]    --> src/systems/simulation/effect_simulation.rs:352:4
[INFO] [stdout]     |
[INFO] [stdout] 352 | fn get_effect_radius(effect_type: &EffectType, player_radius: f32, radius_multiplier: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `any` and `has_lifecycle_changes` are never used
[INFO] [stdout]    --> src/entities/entity/entity.rs:88:8
[INFO] [stdout]     |
[INFO] [stdout]  86 | pub trait EntityDirtyState {
[INFO] [stdout]     |           ---------------- methods in this trait
[INFO] [stdout]  87 |     // Core
[INFO] [stdout]  88 |     fn any(&self) -> bool;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn has_lifecycle_changes(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_diameter`, `modify_radius`, `modify_position`, and `has_changes` are never used
[INFO] [stdout]    --> src/entities/entity/entity.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub trait EntityState {
[INFO] [stdout]     |           ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn get_diameter(&self) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn modify_radius(&mut self, delta: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn modify_position(&mut self, delta: Vec2) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn has_changes(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `can_pickup_item` is never used
[INFO] [stdout]    --> src/entities/player/player.rs:306:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl PlayerState {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn can_pickup_item(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `data_mut` and `modify_timer` are never used
[INFO] [stdout]    --> src/entities/item/item.rs:75:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl ItemState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn data_mut(&mut self) -> &mut ItemData {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn modify_timer(&mut self, amount: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/entities/event/event.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl EventDirty {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 79 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/entities/event/event.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl EventState {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 152 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_server_events` is never used
[INFO] [stdout]  --> src/networking/server/events_generator.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn generate_server_events(game_state: &GameState) -> Vec<ServerEvent> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UI_TITLESCREEN_HIGHSCORE_PANEL` is never used
[INFO] [stdout]   --> src/sprites.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const UI_TITLESCREEN_HIGHSCORE_PANEL: Sprite = Sprite::new("ui/title_screen/Highscore_Board", 126, 120);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UI_PLAYERCONFIG_SINGLEP_BUTTON_NORMAL` is never used
[INFO] [stdout]   --> src/sprites.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub const UI_PLAYERCONFIG_SINGLEP_BUTTON_NORMAL: Sprite = Sprite::new("ui/player_config_screen/Name_Generator_Screen_SingleP_Button_...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UI_PLAYERCONFIG_SINGLEP_BUTTON_SELECTED` is never used
[INFO] [stdout]   --> src/sprites.rs:62:11
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub const UI_PLAYERCONFIG_SINGLEP_BUTTON_SELECTED: Sprite = Sprite::new("ui/player_config_screen/Name_Generator_Screen_SingleP_Butto...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UI_WIN_HEADER` is never used
[INFO] [stdout]   --> src/sprites.rs:79:11
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub const UI_WIN_HEADER: Sprite = Sprite::new("ui/game_over/Win_Header", 100, 40);
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENTS_TOTEM_PURPLE` is never used
[INFO] [stdout]    --> src/sprites.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub const EVENTS_TOTEM_PURPLE: Sprite = Sprite::new("events/Totem_Purple", 50, 48);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENTS_EVENT_PURPLE` is never used
[INFO] [stdout]    --> src/sprites.rs:113:11
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub const EVENTS_EVENT_PURPLE: Sprite = Sprite::new("events/Event_Purple", 444, 142);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ITEM_SPRGHOST_ICON` is never used
[INFO] [stdout]    --> src/sprites.rs:118:11
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub const ITEM_SPRGHOST_ICON: Sprite = Sprite::new("items/icons/sprGhost", 32, 32);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ITEM_SPRGRAVITYBALL_ICON` is never used
[INFO] [stdout]    --> src/sprites.rs:119:11
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub const ITEM_SPRGRAVITYBALL_ICON: Sprite = Sprite::new("items/icons/sprGravityBall", 32, 32);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ITEM_SPROILBARREL_ICON` is never used
[INFO] [stdout]    --> src/sprites.rs:122:11
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub const ITEM_SPROILBARREL_ICON: Sprite = Sprite::new("items/icons/sprOilBarrel", 32, 32);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ITEM_SPRTREE_ICON` is never used
[INFO] [stdout]    --> src/sprites.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub const ITEM_SPRTREE_ICON: Sprite = Sprite::new("items/icons/sprTree", 32, 32);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ITEM_SPEEDSHOES_32X32_ICON` is never used
[INFO] [stdout]    --> src/sprites.rs:128:11
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub const ITEM_SPEEDSHOES_32X32_ICON: Sprite = Sprite::new("items/icons/SpeedShoes_32x32", 36, 32);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vector2<i32>`
[INFO] [stdout]    --> src/screens/title_screen.rs:167:72
[INFO] [stdout]     |
[INFO] [stdout] 167 |     let play_button_bounds = play_button_sprite.get_bounds_anchored_at(parent_top_center.into(), Anchor::TopCenter);
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 167 -     let play_button_bounds = play_button_sprite.get_bounds_anchored_at(parent_top_center.into(), Anchor::TopCenter);
[INFO] [stdout] 167 +     let play_button_bounds = play_button_sprite.get_bounds_anchored_at(parent_top_center, Anchor::TopCenter);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 167 -     let play_button_bounds = play_button_sprite.get_bounds_anchored_at(parent_top_center.into(), Anchor::TopCenter);
[INFO] [stdout] 167 +     let play_button_bounds = play_button_sprite.get_bounds_anchored_at(<Vector2<i32> as Into<_>>::into(parent_top_center), Anchor::TopCenter);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vector2<i32>`
[INFO] [stdout]    --> src/screens/player_config_screen.rs:125:82
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let randomize_button_bounds = randomize_button_sprite.get_bounds_anchored_at(nameplate_left_center.into(), Anchor::CenterRight)
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 125 -     let randomize_button_bounds = randomize_button_sprite.get_bounds_anchored_at(nameplate_left_center.into(), Anchor::CenterRight)
[INFO] [stdout] 125 +     let randomize_button_bounds = randomize_button_sprite.get_bounds_anchored_at(nameplate_left_center, Anchor::CenterRight)
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 125 -     let randomize_button_bounds = randomize_button_sprite.get_bounds_anchored_at(nameplate_left_center.into(), Anchor::CenterRight)
[INFO] [stdout] 125 +     let randomize_button_bounds = randomize_button_sprite.get_bounds_anchored_at(<Vector2<i32> as Into<_>>::into(nameplate_left_center), Anchor::CenterRight)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vector2<i32>`
[INFO] [stdout]    --> src/screens/player_config_screen.rs:130:90
[INFO] [stdout]     |
[INFO] [stdout] 130 |     let mut multiplayer_button_bounds = multiplayer_button_sprite.get_bounds_anchored_at(canvas_bottom_center.into(), Anchor::Botto...
[INFO] [stdout]     |                                                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 130 -     let mut multiplayer_button_bounds = multiplayer_button_sprite.get_bounds_anchored_at(canvas_bottom_center.into(), Anchor::BottomCenter);
[INFO] [stdout] 130 +     let mut multiplayer_button_bounds = multiplayer_button_sprite.get_bounds_anchored_at(canvas_bottom_center, Anchor::BottomCenter);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 130 -     let mut multiplayer_button_bounds = multiplayer_button_sprite.get_bounds_anchored_at(canvas_bottom_center.into(), Anchor::BottomCenter);
[INFO] [stdout] 130 +     let mut multiplayer_button_bounds = multiplayer_button_sprite.get_bounds_anchored_at(<Vector2<i32> as Into<_>>::into(canvas_bottom_center), Anchor::BottomCenter);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vector2<i32>`
[INFO] [stdout]    --> src/entities/player/player_renderer.rs:129:68
[INFO] [stdout]     |
[INFO] [stdout] 129 | ...   let crown_bounds = crown_sprite.get_bounds_anchored_at(bounds_get_top_center(&username_text_bounds).into(), Anchor::BottomCen...
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 129 -             let crown_bounds = crown_sprite.get_bounds_anchored_at(bounds_get_top_center(&username_text_bounds).into(), Anchor::BottomCenter);
[INFO] [stdout] 129 +             let crown_bounds = crown_sprite.get_bounds_anchored_at(bounds_get_top_center(&username_text_bounds), Anchor::BottomCenter);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 129 -             let crown_bounds = crown_sprite.get_bounds_anchored_at(bounds_get_top_center(&username_text_bounds).into(), Anchor::BottomCenter);
[INFO] [stdout] 129 +             let crown_bounds = crown_sprite.get_bounds_anchored_at(<Vector2<i32> as Into<_>>::into(bounds_get_top_center(&username_text_bounds)), Anchor::BottomCenter);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/screens/player_config_screen.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     local::save(app.player_config_state.username.as_bytes());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let _ = local::save(app.player_config_state.username.as_bytes());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/networking/client/network.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     connection.send(message);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let _ = connection.send(message);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/networking/server/channel.rs:99:25
[INFO] [stdout]    |
[INFO] [stdout] 99 |                         os::server::channel::broadcast(spawn_event);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |                         let _ = os::server::channel::broadcast(spawn_event);
[INFO] [stdout]    |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:101:25
[INFO] [stdout]     |
[INFO] [stdout] 101 |                         os::server::channel::send(user_id, &spawn_event);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 101 |                         let _ = os::server::channel::send(user_id, &spawn_event);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:146:21
[INFO] [stdout]     |
[INFO] [stdout] 146 |                     os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 146 |                     let _ = os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:154:21
[INFO] [stdout]     |
[INFO] [stdout] 154 |                     os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 154 |                     let _ = os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:162:21
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     let _ = os::server::channel::send(user_id, response);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:262:17
[INFO] [stdout]     |
[INFO] [stdout] 262 |                 os::server::channel::broadcast(batch);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 262 |                 let _ = os::server::channel::broadcast(batch);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |             os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 294 |             let _ = os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:301:17
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 os::server::channel::send(user_id, &event);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 let _ = os::server::channel::send(user_id, &event);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:311:13
[INFO] [stdout]     |
[INFO] [stdout] 311 |             os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let _ = os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:329:13
[INFO] [stdout]     |
[INFO] [stdout] 329 |             os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 329 |             let _ = os::server::channel::send(user_id, &event);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:357:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             os::server::channel::broadcast(event);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 357 |             let _ = os::server::channel::broadcast(event);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |         os::server::channel::broadcast(event);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let _ = os::server::channel::broadcast(event);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/networking/server/channel.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |         os::server::channel::broadcast(event);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let _ = os::server::channel::broadcast(event);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `burning_wood_versus` (lib) due to 4 previous errors; 191 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `burning_wood_versus` (lib test) due to 4 previous errors; 191 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "48003d363db259feffc92b1b09888e9e61eb42611df77aac4f1ac223d324e794", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48003d363db259feffc92b1b09888e9e61eb42611df77aac4f1ac223d324e794", kill_on_drop: false }`
[INFO] [stdout] 48003d363db259feffc92b1b09888e9e61eb42611df77aac4f1ac223d324e794
