[INFO] cloning repository https://github.com/VoxanyNet/interceptors
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/VoxanyNet/interceptors" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVoxanyNet%2Finterceptors", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVoxanyNet%2Finterceptors'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f8089ba9b5c4ca08c1461e5dde7ac680a9d89d1a
[INFO] checking VoxanyNet/interceptors against master#507271bc119683008ec719ecee48814e8ac86c65 for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVoxanyNet%2Finterceptors" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/VoxanyNet/interceptors
[INFO] finished tweaking git repo https://github.com/VoxanyNet/interceptors
[INFO] tweaked toml for git repo https://github.com/VoxanyNet/interceptors written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/VoxanyNet/interceptors on toolchain 507271bc119683008ec719ecee48814e8ac86c65
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/VoxanyNet/interceptors 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" "+507271bc119683008ec719ecee48814e8ac86c65" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded typetag v0.2.21
[INFO] [stderr]   Downloaded inventory v0.3.24
[INFO] [stderr]   Downloaded typetag-impl v0.2.21
[INFO] [stderr]   Downloaded dasp_frame v0.11.0
[INFO] [stderr]   Downloaded ogg v0.7.1
[INFO] [stderr]   Downloaded quad-alsa-sys v0.3.2
[INFO] [stderr]   Downloaded audir-sles v0.1.0
[INFO] [stderr]   Downloaded audrey v0.3.0
[INFO] [stderr]   Downloaded zune-jpeg v0.5.7
[INFO] [stderr]   Downloaded spade v2.14.0
[INFO] [stderr]   Downloaded cc v1.2.50
[INFO] [stderr]   Downloaded ewebsock v0.8.0
[INFO] [stderr]   Downloaded glam v0.30.5
[INFO] [stderr]   Downloaded portable-atomic v1.12.0
[INFO] [stderr]   Downloaded mintex v0.1.4
[INFO] [stderr]   Downloaded quad-snd v0.2.8
[INFO] [stderr]   Downloaded cs-utils v0.21.1
[INFO] [stderr]   Downloaded activity-macros v0.9.0
[INFO] [stderr]   Downloaded bitcode v0.6.6
[INFO] [stderr]   Downloaded bitcode_derive v0.6.5
[INFO] [stderr]   Downloaded activity v0.9.0
[INFO] [stderr]   Downloaded activity-sys v0.9.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ff6ae7df112f6d3405cedb17d034020b9d88dc0ae4aea21ecbe7ffc109f3aae6
[INFO] running `Command { std: "docker" "start" "-a" "ff6ae7df112f6d3405cedb17d034020b9d88dc0ae4aea21ecbe7ffc109f3aae6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ff6ae7df112f6d3405cedb17d034020b9d88dc0ae4aea21ecbe7ffc109f3aae6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff6ae7df112f6d3405cedb17d034020b9d88dc0ae4aea21ecbe7ffc109f3aae6", kill_on_drop: false }`
[INFO] [stdout] ff6ae7df112f6d3405cedb17d034020b9d88dc0ae4aea21ecbe7ffc109f3aae6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f36d5f3cfdca04248404dda5cd17ba0410d8d4a0f9e6dcfba4dd0f9f55a4506c
[INFO] running `Command { std: "docker" "start" "-a" "f36d5f3cfdca04248404dda5cd17ba0410d8d4a0f9e6dcfba4dd0f9f55a4506c", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]     Checking bytemuck v1.23.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]     Checking crc32fast v1.5.0
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]    Compiling quad-alsa-sys v0.3.2
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]     Checking smallvec v0.6.14
[INFO] [stderr]     Checking ogg v0.7.1
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]     Checking dasp_frame v0.11.0
[INFO] [stderr]     Checking bitstream-io v4.9.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking lewton v0.9.4
[INFO] [stderr]     Checking gimli v0.32.3
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]    Compiling quad-snd v0.2.8
[INFO] [stderr]     Checking imgref v1.12.0
[INFO] [stderr]    Compiling miniquad v0.4.8
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]    Compiling serde_json v1.0.142
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]    Compiling erased-serde v0.4.10
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking robust v1.2.0
[INFO] [stderr]     Checking zune-jpeg v0.4.21
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking ordered-float v5.0.0
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking audrey v0.3.0
[INFO] [stderr]     Checking pxfm v0.1.27
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking ena v0.14.3
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]    Compiling litrs v0.4.2
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]    Compiling typetag v0.2.21
[INFO] [stderr]     Checking rustc-demangle v0.1.27
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking zune-core v0.5.0
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking clap_builder v4.5.53
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking zune-jpeg v0.5.7
[INFO] [stderr]     Checking gif v0.14.1
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]    Compiling document-features v0.2.11
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]     Checking inventory v0.3.24
[INFO] [stderr]     Checking mintex v0.1.4
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]     Checking jiff v0.2.15
[INFO] [stderr]     Checking thousands v0.2.0
[INFO] [stderr]     Checking quad-rand v0.2.3
[INFO] [stderr]     Checking glob v0.3.3
[INFO] [stderr]     Checking memory-stats v1.2.0
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking colored v3.0.0
[INFO] [stderr]     Checking include_dir v0.7.4
[INFO] [stderr]     Checking addr2line v0.25.1
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking fontdue v0.9.3
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking pretty_env_logger v0.5.0
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.100
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.26
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling nalgebra-macros v0.3.0
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling typetag-impl v0.2.21
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]    Compiling bitcode_derive v0.6.5
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]    Compiling delegate v0.13.5
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.100
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.100
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking wasm-bindgen v0.2.100
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]     Checking clap v4.5.53
[INFO] [stderr]     Checking js-sys v0.3.77
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking glam v0.30.5
[INFO] [stderr]     Checking serde_arrays v0.2.0
[INFO] [stderr]     Checking spade v2.14.0
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking bitcode v0.6.6
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking avif-serialize v0.8.6
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking simba v0.9.1
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking dhat v0.3.3
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking cs-utils v0.21.1
[INFO] [stderr]     Checking noise v0.9.0
[INFO] [stderr]     Checking tungstenite v0.23.0
[INFO] [stderr]     Checking ewebsock v0.8.0
[INFO] [stderr]     Checking web-sys v0.3.77
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.50
[INFO] [stderr]     Checking serde-wasm-bindgen v0.4.5
[INFO] [stderr]     Checking macroquad v0.4.14
[INFO] [stderr]    Compiling activity-macros v0.9.0
[INFO] [stderr]     Checking nalgebra v0.34.1
[INFO] [stderr]     Checking ravif v0.12.0
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking activity-sys v0.9.0
[INFO] [stderr]     Checking wasm-logger v0.2.0
[INFO] [stderr]     Checking activity v0.9.0
[INFO] [stderr]     Checking glamx v0.1.3
[INFO] [stderr]     Checking parry2d v0.26.0
[INFO] [stderr]     Checking rapier2d v0.32.0
[INFO] [stderr]     Checking interceptors v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Path`, `marker::PhantomData`, `ops::Add`, and `time::Duration`
[INFO] [stdout]  --> src/lib.rs:1:91
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...g, marker::PhantomData, net::{TcpListener, TcpStream}, ops::Add, path::{Path, PathBuf}, process::exit, str::FromStr, time::Duration};
[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: `Path`, `marker::PhantomData`, `ops::Add`, and `time::Duration`
[INFO] [stdout]  --> src/lib.rs:1:91
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...g, marker::PhantomData, net::{TcpListener, TcpStream}, ops::Add, path::{Path, PathBuf}, process::exit, str::FromStr, time::Duration};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^                                 ^^^^^^^^         ^^^^                                         ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glamx::IVec2`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glamx::IVec2;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `draw_rectangle`, `load_material`, and `set_default_camera`
[INFO] [stdout]  --> src/lib.rs:6:48
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...a, set_default_camera}, color::{Color, WHITE}, input::{KeyCode, is_key_down, is_key_released, mouse_position}, math::{Rect, Vec2, vec2}, prelude::{Material, gl_use_default_material, gl_use_material, glam, load_material}, shapes::{DrawRectangleParams, draw_line, draw_rectangle, d...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^                                                                                                                                                                                        ^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AxisMask`, `VoxelData`, and `VoxelsChunkRef`
[INFO] [stdout]  --> src/lib.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | ..., prelude::{AxisMask, ColliderBuilder, ColliderHandle, QueryFilter, RigidBodyHandle, VoxelData, Voxels, VoxelsChunkRef}};
[INFO] [stdout]   |                ^^^^^^^^                                                                 ^^^^^^^^^          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/area.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::VecDeque, path::PathBuf, str::FromStr};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glamx::IVec2`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glamx::IVec2;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `draw_rectangle`, `load_material`, and `set_default_camera`
[INFO] [stdout]  --> src/lib.rs:6:48
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...a, set_default_camera}, color::{Color, WHITE}, input::{KeyCode, is_key_down, is_key_released, mouse_position}, math::{Rect, Vec2, vec2}, prelude::{Material, gl_use_default_material, gl_use_material, glam, load_material}, shapes::{DrawRectangleParams, draw_line, draw_rectangle, d...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^                                                                                                                                                                                        ^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AxisMask`, `VoxelData`, and `VoxelsChunkRef`
[INFO] [stdout]  --> src/lib.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | ..., prelude::{AxisMask, ColliderBuilder, ColliderHandle, QueryFilter, RigidBodyHandle, VoxelData, Voxels, VoxelsChunkRef}};
[INFO] [stdout]   |                ^^^^^^^^                                                                 ^^^^^^^^^          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/area.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::VecDeque, path::PathBuf, str::FromStr};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RED`, `WHITE`, `camera::Camera2D`, `clear_background`, `draw_circle`, `draw_rectangle`, `gl_use_default_material`, `gl_use_material`, `math::Rect`, `screen_height`, `screen_width`, and `time::get_time`
[INFO] [stdout]  --> src/area.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{camera::Camera2D, color::{RED, WHITE}, input::{KeyCode, is_key_released}, math::Rect, miniquad::TextureId, prelude::{gl_use_default_material, gl_use_material}, shapes::{draw_circle, draw_rectangle}, time::get_time, window::{clear_background, screen_height, screen_width}};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^          ^^^  ^^^^^                                      ^^^^^^^^^^                                 ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^            ^^^^^^^^^^^  ^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^           ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `de`
[INFO] [stdout]  --> src/area.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize, de};
[INFO] [stdout]   |                                     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `ServerIO`, `font_loader::FontLoader`, `material_loader::MaterialLoader`, `rapier_to_macroquad`, `self`, and `texture_loader::ClientTextureLoader`
[INFO] [stdout]  --> src/area.rs:9:50
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...s, ServerIO, SwapIter, TextureLoader, TickContext, ambiance::{Ambiance, AmbianceSave}, background::{self, Background, BackgroundSave}, base_prop::{BaseProp, NewProp, PropId}, base_prop_save::BasePropSave, bullet_trail::BulletTrail, clip::{Clip, ClipSave}, compound_test::CompoundTest, computer::Computer, decoration::{Decoration, DecorationSave}, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, dropped_item::{DroppedItem, DroppedItemSave}, enemy::{Enemy, EnemySave, NewEnemyUpdate}, font_loader::FontLoader, material_loader::MaterialLoader, player::{Facing, NewPlayer, Player, PlayerSave}, prop::Prop, prop_save::PropSave, rapier_mouse_world_pos, rapier_to_macroquad, selectable_object_id::{SelectableObject, SelectableObjectId}, sound_loader::SoundLoader, space::Space, texture_loader::ClientTextureLoader, t...
[INFO] [stdout]   |       ^^^^^^^^                                                                                         ^^^^                                                                                                                                                                                                                                                                                               ^^^^^^^^^^^                                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                            ^^^^^^^^^^^^^^^^^^^                                                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RED`, `WHITE`, `camera::Camera2D`, `clear_background`, `draw_circle`, `draw_rectangle`, `gl_use_default_material`, `gl_use_material`, `math::Rect`, `screen_height`, `screen_width`, and `time::get_time`
[INFO] [stdout]  --> src/area.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{camera::Camera2D, color::{RED, WHITE}, input::{KeyCode, is_key_released}, math::Rect, miniquad::TextureId, prelude::{gl_use_default_material, gl_use_material}, shapes::{draw_circle, draw_rectangle}, time::get_time, window::{clear_background, screen_height, screen_width}};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^          ^^^  ^^^^^                                      ^^^^^^^^^^                                 ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^            ^^^^^^^^^^^  ^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^           ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `test`
[INFO] [stdout]   --> src/area.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | macro_rules! test {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `de`
[INFO] [stdout]  --> src/area.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize, de};
[INFO] [stdout]   |                                     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolons
[INFO] [stdout]    --> src/area.rs:297:38
[INFO] [stdout]     |
[INFO] [stdout] 297 |             props_iter.restore(prop);;;;;; // i loveeee semicolons
[INFO] [stdout]     |                                      ^^^^^ help: remove these semicolons
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `camera::Camera2D` and `math::Rect`
[INFO] [stdout]  --> src/world.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use macroquad::{camera::Camera2D, math::Rect};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientId`, `ClientTickContext`, `Prefabs`, `ServerIO`, `font_loader::FontLoader`, `material_loader::MaterialLoader`, and `texture_loader::ClientTextureLoader`
[INFO] [stdout]  --> src/world.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{ClientId, ClientTickContext, Prefabs, ServerIO, TickContext, area::Area, font_loader::FontLoader, material_loader::MaterialLoader, texture_loader::ClientTextureLoader};
[INFO] [stdout]   |       ^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `draw_texture_ex`
[INFO] [stdout]  --> src/decoration.rs:3:61
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::{color::WHITE, math::{Rect, Vec2}, texture::{draw_texture_ex, DrawTextureParams}};
[INFO] [stdout]   |                                                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `ServerIO`, `font_loader::FontLoader`, `material_loader::MaterialLoader`, `rapier_to_macroquad`, `self`, and `texture_loader::ClientTextureLoader`
[INFO] [stdout]  --> src/area.rs:9:50
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...s, ServerIO, SwapIter, TextureLoader, TickContext, ambiance::{Ambiance, AmbianceSave}, background::{self, Background, BackgroundSave}, base_prop::{BaseProp, NewProp, PropId}, base_prop_save::BasePropSave, bullet_trail::BulletTrail, clip::{Clip, ClipSave}, compound_test::CompoundTest, computer::Computer, decoration::{Decoration, DecorationSave}, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, dropped_item::{DroppedItem, DroppedItemSave}, enemy::{Enemy, EnemySave, NewEnemyUpdate}, font_loader::FontLoader, material_loader::MaterialLoader, player::{Facing, NewPlayer, Player, PlayerSave}, prop::Prop, prop_save::PropSave, rapier_mouse_world_pos, rapier_to_macroquad, selectable_object_id::{SelectableObject, SelectableObjectId}, sound_loader::SoundLoader, space::Space, texture_loader::ClientTextureLoader, t...
[INFO] [stdout]   |       ^^^^^^^^                                                                                         ^^^^                                                                                                                                                                                                                                                                                               ^^^^^^^^^^^                                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                            ^^^^^^^^^^^^^^^^^^^                                                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `drawable::Drawable`
[INFO] [stdout]  --> src/decoration.rs:6:62
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{DrawCommand, DrawTextureParameters, TickContext, drawable::Drawable, editor_context_menu::{DataEditorContext, EditorConte...
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `test`
[INFO] [stdout]   --> src/area.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | macro_rules! test {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolons
[INFO] [stdout]    --> src/area.rs:297:38
[INFO] [stdout]     |
[INFO] [stdout] 297 |             props_iter.restore(prop);;;;;; // i loveeee semicolons
[INFO] [stdout]     |                                      ^^^^^ help: remove these semicolons
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `swap`
[INFO] [stdout]  --> src/player.rs:2:56
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::HashMap, f32::consts::PI, mem::{swap, take}, path::PathBuf, str::FromStr, usize};
[INFO] [stdout]   |                                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `camera::Camera2D` and `math::Rect`
[INFO] [stdout]  --> src/world.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use macroquad::{camera::Camera2D, math::Rect};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TextParams`, `camera::Camera2D`, `draw_text_ex`, `draw_text`, `is_key_pressed`, `mouse_position`, and `shapes::draw_rectangle`
[INFO] [stdout]  --> src/player.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...::{camera::Camera2D, color::{BLACK, WHITE}, input::{KeyCode, is_key_down, is_key_pressed, is_mouse_button_down, is_mouse_button_released, mouse_position, mouse_wheel}, shapes::draw_rectangle, text::{TextParams, draw_text, draw_text_ex}, ...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^                                                       ^^^^^^^^^^^^^^                                                  ^^^^^^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^^         ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientId`, `ClientTickContext`, `Prefabs`, `ServerIO`, `font_loader::FontLoader`, `material_loader::MaterialLoader`, and `texture_loader::ClientTextureLoader`
[INFO] [stdout]  --> src/world.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{ClientId, ClientTickContext, Prefabs, ServerIO, TickContext, area::Area, font_loader::FontLoader, material_loader::MaterialLoader, texture_loader::ClientTextureLoader};
[INFO] [stdout]   |       ^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `QueryFilter` and `parry::query::Ray`
[INFO] [stdout]  --> src/player.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rapier2d::{parry::query::Ray, prelude::{ImpulseJointHandle, QueryFilter, RevoluteJointBuilder, RigidBody, RigidBodyVelocity}};
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseProp`, `DrawContext`, `Prefabs`, `bullet_trail::BulletTrail`, `dissolved_pixel::DissolvedPixel`, `enemy::Enemy`, `font_loader::FontLoader`, `texture_loader::ClientTextureLoader`, `weapon::weapon::WeaponOwner`, and `weapon_fire_context::WeaponFireContext`
[INFO] [stdout]   --> src/player.rs:10:97
[INFO] [stdout]    |
[INFO] [stdout] 10 | ...r, Prefabs, TextureLoader, TickContext, angle_weapon_to_mouse, area::{AreaContext, AreaId}, base_prop::{BaseProp, PropId, PropUpdateOwner}, body_part::BodyPart, bullet_trail::BulletTrail, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, dropped_item::{DroppedItem, RemoveDroppedItemUpdate}, enemy::Enemy, font_loader::FontLoader, get_angle_between_rapier_points, inventory::Inventory, items::{Item, item_save::ItemSave}, mouse_world_pos, rapier_mouse_world_pos, rapier_to_macroquad, space::Space, texture_loader::ClientTextureLoader, tile::Tile, updates::NetworkPacket, uuid_u64, weapons::{bullet_impact_data::BulletImpactData, weapon::weapon::WeaponOwner, weapon_fire_context::WeaponFireContext, w...
[INFO] [stdout]    |       ^^^^^^^                                                                                              ^^^^^^^^                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^                                                                   ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `draw_texture_ex`
[INFO] [stdout]  --> src/decoration.rs:3:61
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::{color::WHITE, math::{Rect, Vec2}, texture::{draw_texture_ex, DrawTextureParams}};
[INFO] [stdout]   |                                                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `drawable::Drawable`
[INFO] [stdout]  --> src/decoration.rs:6:62
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{DrawCommand, DrawTextureParameters, TickContext, drawable::Drawable, editor_context_menu::{DataEditorContext, EditorConte...
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `swap`
[INFO] [stdout]  --> src/player.rs:2:56
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::HashMap, f32::consts::PI, mem::{swap, take}, path::PathBuf, str::FromStr, usize};
[INFO] [stdout]   |                                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TextParams`, `camera::Camera2D`, `draw_text_ex`, `draw_text`, `is_key_pressed`, `mouse_position`, and `shapes::draw_rectangle`
[INFO] [stdout]  --> src/player.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...::{camera::Camera2D, color::{BLACK, WHITE}, input::{KeyCode, is_key_down, is_key_pressed, is_mouse_button_down, is_mouse_button_released, mouse_position, mouse_wheel}, shapes::draw_rectangle, text::{TextParams, draw_text, draw_text_ex}, ...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^                                                       ^^^^^^^^^^^^^^                                                  ^^^^^^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^^^         ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `QueryFilter` and `parry::query::Ray`
[INFO] [stdout]  --> src/player.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rapier2d::{parry::query::Ray, prelude::{ImpulseJointHandle, QueryFilter, RevoluteJointBuilder, RigidBody, RigidBodyVelocity}};
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseProp`, `DrawContext`, `Prefabs`, `bullet_trail::BulletTrail`, `dissolved_pixel::DissolvedPixel`, `enemy::Enemy`, `font_loader::FontLoader`, `texture_loader::ClientTextureLoader`, `weapon::weapon::WeaponOwner`, and `weapon_fire_context::WeaponFireContext`
[INFO] [stdout]   --> src/player.rs:10:97
[INFO] [stdout]    |
[INFO] [stdout] 10 | ...r, Prefabs, TextureLoader, TickContext, angle_weapon_to_mouse, area::{AreaContext, AreaId}, base_prop::{BaseProp, PropId, PropUpdateOwner}, body_part::BodyPart, bullet_trail::BulletTrail, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, dropped_item::{DroppedItem, RemoveDroppedItemUpdate}, enemy::Enemy, font_loader::FontLoader, get_angle_between_rapier_points, inventory::Inventory, items::{Item, item_save::ItemSave}, mouse_world_pos, rapier_mouse_world_pos, rapier_to_macroquad, space::Space, texture_loader::ClientTextureLoader, tile::Tile, updates::NetworkPacket, uuid_u64, weapons::{bullet_impact_data::BulletImpactData, weapon::weapon::WeaponOwner, weapon_fire_context::WeaponFireContext, w...
[INFO] [stdout]    |       ^^^^^^^                                                                                              ^^^^^^^^                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^                                                                   ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `Drawable`, and `EditorTickContext`
[INFO] [stdout]  --> src/clip.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{EditorTickContext, TickContext, base_prop::Material, draw_hitbox, drawable::{DrawContext, Drawable}, editor_context_menu:...
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^                                                            ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/base_prop.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BLUE`, `Camera2D`, `KeyCode`, `MaterialParams`, `RED`, `TextParams`, `VIOLET`, `audio::play_sound_once`, `draw_circle`, `draw_rectangle`, `draw_text_ex`, `draw_text`, `draw_texture_ex`, `gl_use_default_material`, `gl_use_material`, `is_key_pressed`, `load_material`, `set_camera`, and `window::clear_background`
[INFO] [stdout]  --> src/base_prop.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...::{audio::play_sound_once, camera::{Camera2D, set_camera}, color::{BLACK, BLUE, Color, GREEN, RED, VIOLET, WHITE}, input::{KeyCode, is_key_pressed}, math::{Rect, Vec2}, prelude::{MaterialParams, gl_use_default_material, gl_use_material, load_material}, shapes::{draw_circle, draw_rectangle}, text::{TextParams, draw_text, draw_text_ex}, texture::{DrawTextureParams, RenderTarget, Texture2D, draw_texture_ex, render_target}, window::clear_background};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^           ^^^^^^^^  ^^^^^^^^^^                  ^^^^                ^^^  ^^^^^^                  ^^^^^^^  ^^^^^^^^^^^^^^                                 ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^            ^^^^^^^^^^^  ^^^^^^^^^^^^^^          ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^                                                         ^^^^^^^^^^^^^^^                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `Drawable`, and `EditorTickContext`
[INFO] [stdout]  --> src/clip.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{EditorTickContext, TickContext, base_prop::Material, draw_hitbox, drawable::{DrawContext, Drawable}, editor_context_menu:...
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^                                                            ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/base_prop.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BLUE`, `Camera2D`, `KeyCode`, `MaterialParams`, `RED`, `TextParams`, `VIOLET`, `audio::play_sound_once`, `draw_circle`, `draw_rectangle`, `draw_text_ex`, `draw_text`, `draw_texture_ex`, `gl_use_default_material`, `gl_use_material`, `is_key_pressed`, `load_material`, `set_camera`, and `window::clear_background`
[INFO] [stdout]  --> src/base_prop.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...::{audio::play_sound_once, camera::{Camera2D, set_camera}, color::{BLACK, BLUE, Color, GREEN, RED, VIOLET, WHITE}, input::{KeyCode, is_key_pressed}, math::{Rect, Vec2}, prelude::{MaterialParams, gl_use_default_material, gl_use_material, load_material}, shapes::{draw_circle, draw_rectangle}, text::{TextParams, draw_text, draw_text_ex}, texture::{DrawTextureParams, RenderTarget, Texture2D, draw_texture_ex, render_target}, window::clear_background};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^           ^^^^^^^^  ^^^^^^^^^^                  ^^^^                ^^^  ^^^^^^                  ^^^^^^^  ^^^^^^^^^^^^^^                                 ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^            ^^^^^^^^^^^  ^^^^^^^^^^^^^^          ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^                                                         ^^^^^^^^^^^^^^^                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AxisMask`
[INFO] [stdout]  --> src/base_prop.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rapier2d::prelude::{AxisMask, ColliderBuilder, ColliderHandle, RigidBodyBuilder, RigidBodyHandle, RigidBodyType, RigidBodyVelocit...
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Area`, `ClientId`, and `drawable::Drawable`
[INFO] [stdout]   --> src/base_prop.rs:11:40
[INFO] [stdout]    |
[INFO] [stdout] 11 | ...s, ClientId, ClientTickContext, DrawCommand, DrawRectangleParameters, DrawTextureParameters, Owner, Prefabs, SetCameraParameters, SetMaterialTextureParameters, TextureLoader, TickContext, UseMaterialParameters, area::{Area, AreaContext, AreaId}, base_prop_save::BasePropSave, dissolved_pixel::DissolvedPixel, draw_preview, drawable::Drawable, e...
[INFO] [stdout]    |       ^^^^^^^^                                                                                                                                                                                                               ^^^^                                                                                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AxisMask`
[INFO] [stdout]  --> src/base_prop.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rapier2d::prelude::{AxisMask, ColliderBuilder, ColliderHandle, RigidBodyBuilder, RigidBodyHandle, RigidBodyType, RigidBodyVelocit...
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Area`, `ClientId`, and `drawable::Drawable`
[INFO] [stdout]   --> src/base_prop.rs:11:40
[INFO] [stdout]    |
[INFO] [stdout] 11 | ...s, ClientId, ClientTickContext, DrawCommand, DrawRectangleParameters, DrawTextureParameters, Owner, Prefabs, SetCameraParameters, SetMaterialTextureParameters, TextureLoader, TickContext, UseMaterialParameters, area::{Area, AreaContext, AreaId}, base_prop_save::BasePropSave, dissolved_pixel::DissolvedPixel, draw_preview, drawable::Drawable, e...
[INFO] [stdout]    |       ^^^^^^^^                                                                                                                                                                                                               ^^^^                                                                                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `texture_loader::ClientTextureLoader`
[INFO] [stdout]  --> src/body_part.rs:5:79
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{Owner, TickContext, draw_texture_onto_physics_body, space::Space, texture_loader::ClientTextureLoader};
[INFO] [stdout]   |                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClientId`
[INFO] [stdout]  --> src/bullet_trail.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{ClientId, Owner, TickContext, area::AreaId, drawable::Drawable, rapier_to_macroquad, uuid_u64};
[INFO] [stdout]   |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `base_prop::BaseProp`, `bullet_trail::BulletTrail`, `dissolved_pixel::DissolvedPixel`, `self`, `weapon_fire_context::WeaponFireContext`, and `weapon_type_save::WeaponTypeSave`
[INFO] [stdout]  --> src/enemy.rs:8:82
[INFO] [stdout]   |
[INFO] [stdout] 8 | ...::{self, AreaContext, AreaId}, base_prop::BaseProp, body_part::BodyPart, bullet_trail::BulletTrail, collider_groups::{BODY_PART_GROUP, DETACHED_BODY_PART_GROUP}, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, get_angle_between_rapier_points, items::{Item, item_save::ItemSave}, player::{Facing, Player, PlayerId}, prop::Prop, rapier_to_macroquad, space::Space, updates::NetworkPacket, uuid_u64, weapons::{bullet_impact_data::BulletImpactData, weapon::weapon::WeaponOwner, weapon_fire_context::WeaponFireContext, weapon_type_save::WeaponTypeSave}};
[INFO] [stdout]   |       ^^^^                        ^^^^^^^^^^^^^^^^^^^                       ^^^^^^^^^^^^^^^^^^^^^^^^^                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^                                                                                                                                                                                                                                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `texture_loader::ClientTextureLoader`
[INFO] [stdout]  --> src/body_part.rs:5:79
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{Owner, TickContext, draw_texture_onto_physics_body, space::Space, texture_loader::ClientTextureLoader};
[INFO] [stdout]   |                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClientId`
[INFO] [stdout]  --> src/bullet_trail.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{ClientId, Owner, TickContext, area::AreaId, drawable::Drawable, rapier_to_macroquad, uuid_u64};
[INFO] [stdout]   |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `base_prop::BaseProp`, `bullet_trail::BulletTrail`, `dissolved_pixel::DissolvedPixel`, `self`, `weapon_fire_context::WeaponFireContext`, and `weapon_type_save::WeaponTypeSave`
[INFO] [stdout]  --> src/enemy.rs:8:82
[INFO] [stdout]   |
[INFO] [stdout] 8 | ...::{self, AreaContext, AreaId}, base_prop::BaseProp, body_part::BodyPart, bullet_trail::BulletTrail, collider_groups::{BODY_PART_GROUP, DETACHED_BODY_PART_GROUP}, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, get_angle_between_rapier_points, items::{Item, item_save::ItemSave}, player::{Facing, Player, PlayerId}, prop::Prop, rapier_to_macroquad, space::Space, updates::NetworkPacket, uuid_u64, weapons::{bullet_impact_data::BulletImpactData, weapon::weapon::WeaponOwner, weapon_fire_context::WeaponFireContext, weapon_type_save::WeaponTypeSave}};
[INFO] [stdout]   |       ^^^^                        ^^^^^^^^^^^^^^^^^^^                       ^^^^^^^^^^^^^^^^^^^^^^^^^                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^                                                                                                                                                                                                                                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/computer.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `derive_more::From`
[INFO] [stdout]  --> src/computer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use derive_more::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Camera2D`, `TextParams`, `draw_text_ex`, `draw_texture_ex`, `set_camera`, `shapes::draw_line`, and `window::clear_background`
[INFO] [stdout]  --> src/computer.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{set_camera, Camera2D}, color::{Color, BLACK, GRAY, WHITE}, math::{Rect, Vec2}, shapes::draw_line, text::{draw_text_ex, TextParams}, texture::{draw_texture_ex, render_target, DrawTextureParams, RenderTarget}, window::clear_background};
[INFO] [stdout]   |       ^^^^^^^^^^  ^^^^^^^^                                                           ^^^^^^^^^^^^^^^^^         ^^^^^^^^^^^^  ^^^^^^^^^^             ^^^^^^^^^^^^^^^                                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/computer.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `DrawTextureParameters`, `font_loader::FontLoader`, `texture_loader::ClientTextureLoader`, and `weapons::weapon_type_save::WeaponTypeSave`
[INFO] [stdout]  --> src/computer.rs:7:141
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...s, DrawTextureParameters, Owner, Prefabs, SetCameraParameters, TextureLoader, TickContext, base_prop::BaseProp, base_prop_save::BasePropSave, button::Button, drawable::{DrawContext, Drawable}, font_loader::FontLoader, items::{Item, prop::prop_item::SimplePropItem}, mouse_world_pos, player::Player, prop::Prop, rapier_to_macroquad, space::Space, texture_loader::ClientTextureLoader, weapons::weapon_type_save::WeaponTypeSave};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                 ^^^^^^^^^^^             ^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/computer.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `derive_more::From`
[INFO] [stdout]  --> src/computer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use derive_more::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext` and `Drawable`
[INFO] [stdout]  --> src/dropped_item.rs:6:75
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{Prefabs, TextureLoader, TickContext, area::AreaId, drawable::{DrawContext, Drawable}, items::{Item, item_save::ItemSave},...
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Camera2D`, `TextParams`, `draw_text_ex`, `draw_texture_ex`, `set_camera`, `shapes::draw_line`, and `window::clear_background`
[INFO] [stdout]  --> src/computer.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{set_camera, Camera2D}, color::{Color, BLACK, GRAY, WHITE}, math::{Rect, Vec2}, shapes::draw_line, text::{draw_text_ex, TextParams}, texture::{draw_texture_ex, render_target, DrawTextureParams, RenderTarget}, window::clear_background};
[INFO] [stdout]   |       ^^^^^^^^^^  ^^^^^^^^                                                           ^^^^^^^^^^^^^^^^^         ^^^^^^^^^^^^  ^^^^^^^^^^             ^^^^^^^^^^^^^^^                                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/computer.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `DrawTextureParameters`, `font_loader::FontLoader`, `texture_loader::ClientTextureLoader`, and `weapons::weapon_type_save::WeaponTypeSave`
[INFO] [stdout]  --> src/computer.rs:7:141
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...s, DrawTextureParameters, Owner, Prefabs, SetCameraParameters, TextureLoader, TickContext, base_prop::BaseProp, base_prop_save::BasePropSave, button::Button, drawable::{DrawContext, Drawable}, font_loader::FontLoader, items::{Item, prop::prop_item::SimplePropItem}, mouse_world_pos, player::Player, prop::Prop, rapier_to_macroquad, space::Space, texture_loader::ClientTextureLoader, weapons::weapon_type_save::WeaponTypeSave};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                 ^^^^^^^^^^^             ^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `items::Item` and `space::Space`
[INFO] [stdout]  --> src/weapons/mod.rs:4:66
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{TickContext, area::AreaContext, enemy::EnemyContext, items::Item, player::PlayerContext, space::Space};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `models::draw_mesh`
[INFO] [stdout]  --> src/weapons/weapon/weapon.rs:5:138
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...use_button_down, is_mouse_button_released}, math::Vec2, models::draw_mesh, rand::RandomRange};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext` and `Drawable`
[INFO] [stdout]  --> src/dropped_item.rs:6:75
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{Prefabs, TextureLoader, TickContext, area::AreaId, drawable::{DrawContext, Drawable}, items::{Item, item_save::ItemSave},...
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `math::Vector`
[INFO] [stdout]  --> src/weapons/weapon/weapon.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rapier2d::{math::Vector, prelude::{ColliderHandle, ImpulseJointHandle, InteractionGroups, RevoluteJointBuilder, RigidBodyBuilder,...
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AreaId`, `ClientId`, `Owner`, `SwapIter`, `item_save::ItemSave`, `self`, `weapon_fire_context::WeaponFireContext`, and `weapon_type::ShooterContext`
[INFO] [stdout]  --> src/weapons/weapon/weapon.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...::{ClientId, ClientTickContext, Owner, SwapIter, TickContext, area::{self, AreaContext, AreaId}, base_prop::StupidDissolvedPixelVelocityUpdate, bullet_trail::{BulletTrail, SpawnBulletTrail}, collider_from_texture_size, draw_preview, draw_texture_onto_physics_body, drawable::{DrawContext, Drawable}, enemy::EnemyId, get_intersections, get_preview_resolution, items::{ConsumedStatus, Item, item_save::ItemSave}, player::{Facing, PlayerContext, PlayerId}, space::Space, texture_loader::ClientTextureLoader, weapons::{Weapon, ItemOwnerContext, bullet_impact_data::BulletImpactData, weapon::weapon_save::WeaponSave, weapon_fire_context::WeaponFireContext, weapon_type::ShooterContext}};
[INFO] [stdout]   |       ^^^^^^^^                     ^^^^^  ^^^^^^^^                      ^^^^               ^^^^^^                                                                                                                                                                                                                                                                                                       ^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `items::Item` and `space::Space`
[INFO] [stdout]  --> src/weapons/mod.rs:4:66
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{TickContext, area::AreaContext, enemy::EnemyContext, items::Item, player::PlayerContext, space::Space};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClientId`
[INFO] [stdout]  --> src/weapons/weapon/weapon_save.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{ClientId, items::{Item, item_save::ItemSave}, player::Facing, weapons::weapon::weapon::{BaseWeapon, WeaponOwner}};
[INFO] [stdout]   |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `models::draw_mesh`
[INFO] [stdout]  --> src/weapons/weapon/weapon.rs:5:138
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...use_button_down, is_mouse_button_released}, math::Vec2, models::draw_mesh, rand::RandomRange};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `math::Vector`
[INFO] [stdout]  --> src/weapons/weapon/weapon.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rapier2d::{math::Vector, prelude::{ColliderHandle, ImpulseJointHandle, InteractionGroups, RevoluteJointBuilder, RigidBodyBuilder,...
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `color::Color`
[INFO] [stdout]  --> src/weapons/shotgun/weapon.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::{color::Color, math::Vec2};
[INFO] [stdout]   |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AreaId`, `ClientId`, `Owner`, `SwapIter`, `item_save::ItemSave`, `self`, `weapon_fire_context::WeaponFireContext`, and `weapon_type::ShooterContext`
[INFO] [stdout]  --> src/weapons/weapon/weapon.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...::{ClientId, ClientTickContext, Owner, SwapIter, TickContext, area::{self, AreaContext, AreaId}, base_prop::StupidDissolvedPixelVelocityUpdate, bullet_trail::{BulletTrail, SpawnBulletTrail}, collider_from_texture_size, draw_preview, draw_texture_onto_physics_body, drawable::{DrawContext, Drawable}, enemy::EnemyId, get_intersections, get_preview_resolution, items::{ConsumedStatus, Item, item_save::ItemSave}, player::{Facing, PlayerContext, PlayerId}, space::Space, texture_loader::ClientTextureLoader, weapons::{Weapon, ItemOwnerContext, bullet_impact_data::BulletImpactData, weapon::weapon_save::WeaponSave, weapon_fire_context::WeaponFireContext, weapon_type::ShooterContext}};
[INFO] [stdout]   |       ^^^^^^^^                     ^^^^^  ^^^^^^^^                      ^^^^               ^^^^^^                                                                                                                                                                                                                                                                                                       ^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImpulseJointHandle`
[INFO] [stdout]  --> src/weapons/shotgun/weapon.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rapier2d::prelude::{ImpulseJointHandle, RigidBodyHandle};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientId`, `PlayerContext`, `TickContext`, `area::AreaContext`, `shotgun::weapon_save::ShotgunSave`, `space::Space`, `texture_loader::ClientTextureLoader`, `weapon_fire_context::WeaponFireContext`, and `weapon_type::ShooterContext`
[INFO] [stdout]  --> src/weapons/shotgun/weapon.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...::{ClientId, TickContext, area::AreaContext, player::{Facing, PlayerContext}, space::Space, texture_loader::ClientTextureLoader, weapons::{shotgun::weapon_save::ShotgunSave, weapon::weapon::{BaseWeapon, WeaponOwner}, weapon_fire_context::WeaponFireContext, weapon_type::ShooterContext}};
[INFO] [stdout]   |       ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^                   ^^^^^^^^^^^^^   ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientId`, `lmg::weapon_save::LMGSave`, `weapon_fire_context::WeaponFireContext`, and `weapon_type::ShooterContext`
[INFO] [stdout]  --> src/weapons/lmg/weapon.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...::{ClientId, TickContext, area::AreaContext, items::{ConsumedStatus, Item, item_save::ItemSave}, player::{Facing, PlayerContext}, space::Space, texture_loader::ClientTextureLoader, weapons::{ItemOwnerContext, Weapon, lmg::weapon_save::LMGSave, weapon::weapon::{BaseWeapon, WeaponOwner}, weapon_fire_context::WeaponFireContext, weapon_type::ShooterContext}};
[INFO] [stdout]   |       ^^^^^^^^                                                                                                                                                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClientId`
[INFO] [stdout]  --> src/weapons/weapon/weapon_save.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{ClientId, items::{Item, item_save::ItemSave}, player::Facing, weapons::weapon::weapon::{BaseWeapon, WeaponOwner}};
[INFO] [stdout]   |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `color::Color`
[INFO] [stdout]  --> src/weapons/shotgun/weapon.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::{color::Color, math::Vec2};
[INFO] [stdout]   |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImpulseJointHandle`
[INFO] [stdout]  --> src/weapons/shotgun/weapon.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rapier2d::prelude::{ImpulseJointHandle, RigidBodyHandle};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientId`, `DrawContext`, `Drawable`, `smg::weapon_save::SMGSave`, `weapon_fire_context::WeaponFireContext`, and `weapon_type::ShooterContext`
[INFO] [stdout]  --> src/weapons/smg/weapon.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...::{ClientId, TickContext, area::AreaContext, drawable::{DrawContext, Drawable}, items::{ConsumedStatus, Item, item_save::ItemSave}, player::{Facing, PlayerContext}, space::Space, texture_loader::ClientTextureLoader, weapons::{ItemOwnerContext, Weapon, smg::weapon_save::SMGSave, weapon::weapon::{BaseWeapon, WeaponOwner}, weapon_fire_context::WeaponFireContext, weapon_type::ShooterContext}};
[INFO] [stdout]   |       ^^^^^^^^                                             ^^^^^^^^^^^  ^^^^^^^^                                                                                                                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientId`, `PlayerContext`, `TickContext`, `area::AreaContext`, `shotgun::weapon_save::ShotgunSave`, `space::Space`, `texture_loader::ClientTextureLoader`, `weapon_fire_context::WeaponFireContext`, and `weapon_type::ShooterContext`
[INFO] [stdout]  --> src/weapons/shotgun/weapon.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...::{ClientId, TickContext, area::AreaContext, player::{Facing, PlayerContext}, space::Space, texture_loader::ClientTextureLoader, weapons::{shotgun::weapon_save::ShotgunSave, weapon::weapon::{BaseWeapon, WeaponOwner}, weapon_fire_context::WeaponFireContext, weapon_type::ShooterContext}};
[INFO] [stdout]   |       ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^                   ^^^^^^^^^^^^^   ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::color::WHITE`
[INFO] [stdout]  --> src/weapons/sledge/weapon.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::color::WHITE;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientId`, `lmg::weapon_save::LMGSave`, `weapon_fire_context::WeaponFireContext`, and `weapon_type::ShooterContext`
[INFO] [stdout]  --> src/weapons/lmg/weapon.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...::{ClientId, TickContext, area::AreaContext, items::{ConsumedStatus, Item, item_save::ItemSave}, player::{Facing, PlayerContext}, space::Space, texture_loader::ClientTextureLoader, weapons::{ItemOwnerContext, Weapon, lmg::weapon_save::LMGSave, weapon::weapon::{BaseWeapon, WeaponOwner}, weapon_fire_context::WeaponFireContext, weapon_type::ShooterContext}};
[INFO] [stdout]   |       ^^^^^^^^                                                                                                                                                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `draw_hitbox`
[INFO] [stdout]  --> src/weapons/sledge/weapon.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{draw_hitbox, player::Facing, space::Space, texture_loader::ClientTextureLoader, weapons::{lmg::{ weapon_save::LMGSave}, s...
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientId`, `DrawContext`, `Drawable`, `smg::weapon_save::SMGSave`, `weapon_fire_context::WeaponFireContext`, and `weapon_type::ShooterContext`
[INFO] [stdout]  --> src/weapons/smg/weapon.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...::{ClientId, TickContext, area::AreaContext, drawable::{DrawContext, Drawable}, items::{ConsumedStatus, Item, item_save::ItemSave}, player::{Facing, PlayerContext}, space::Space, texture_loader::ClientTextureLoader, weapons::{ItemOwnerContext, Weapon, smg::weapon_save::SMGSave, weapon::weapon::{BaseWeapon, WeaponOwner}, weapon_fire_context::WeaponFireContext, weapon_type::ShooterContext}};
[INFO] [stdout]   |       ^^^^^^^^                                             ^^^^^^^^^^^  ^^^^^^^^                                                                                                                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::color::WHITE`
[INFO] [stdout]  --> src/weapons/sledge/weapon.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::color::WHITE;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `draw_hitbox`
[INFO] [stdout]  --> src/weapons/sledge/weapon.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{draw_hitbox, player::Facing, space::Space, texture_loader::ClientTextureLoader, weapons::{lmg::{ weapon_save::LMGSave}, s...
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AreaContext`, `AreaId`, `Player`, `TickContext`, `base_prop::BaseProp`, `bullet_trail::BulletTrail`, `dissolved_pixel::DissolvedPixel`, `enemy::Enemy`, and `space::Space`
[INFO] [stdout]  --> src/weapons/weapon_fire_context.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...::{TickContext, area::{AreaContext, AreaId}, bullet_trail::BulletTrail, dissolved_pixel::DissolvedPixel, enemy::Enemy, player::{Facing, Player}, base_prop::BaseProp, space::Space, w...
[INFO] [stdout]   |       ^^^^^^^^^^^         ^^^^^^^^^^^  ^^^^^^   ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^                   ^^^^^^   ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `color::Color` and `math::Vec2`
[INFO] [stdout]  --> src/weapons/weapon_type.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use macroquad::{color::Color, math::Vec2};
[INFO] [stdout]   |                 ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColliderHandle`, `ImpulseJointHandle`, and `RigidBodyHandle`
[INFO] [stdout]  --> src/weapons/weapon_type.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rapier2d::prelude::{ColliderHandle, ImpulseJointHandle, RigidBodyHandle};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Facing`, `Player`, `TickContext`, `area::AreaContext`, `items::Item`, `lmg::weapon::LMG`, `shotgun::weapon::Shotgun`, `smg::weapon::SMG`, `space::Space`, `texture_loader::ClientTextureLoader`, `weapon_fire_context::WeaponFireContext`, and `weapon_type_save::WeaponTypeSave`
[INFO] [stdout]  --> src/weapons/weapon_type.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...::{TickContext, area::AreaContext, enemy::EnemyContext, items::Item, player::{Facing, Player, PlayerContext}, space::Space, texture_loader::ClientTextureLoader, weapons::{lmg::weapon::LMG, shotgun::weapon::Shotgun, smg::weapon::SMG, weapon_fire_context::WeaponFireContext, weapon_type_save::WeaponTypeSave}};
[INFO] [stdout]   |       ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^                       ^^^^^^^^^^^           ^^^^^^  ^^^^^^                  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TextureLoader`
[INFO] [stdout]  --> src/tile.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::{TextureLoader, rapier_to_macroquad, space::Space, texture_loader::ClientTextureLoader, uuid_u64};
[INFO] [stdout]   |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseProp` and `drawable::Drawable`
[INFO] [stdout]  --> src/selectable_object_id.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{base_prop::{BaseProp, PropId}, clip::Clip, decoration::Decoration, drawable::Drawable, prop::Prop, tile::Tile};
[INFO] [stdout]   |                         ^^^^^^^^                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashSet`
[INFO] [stdout]  --> src/prop_fragment.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashSet, path::PathBuf};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AreaContext`, `AreaId`, `Player`, `TickContext`, `base_prop::BaseProp`, `bullet_trail::BulletTrail`, `dissolved_pixel::DissolvedPixel`, `enemy::Enemy`, and `space::Space`
[INFO] [stdout]  --> src/weapons/weapon_fire_context.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...::{TickContext, area::{AreaContext, AreaId}, bullet_trail::BulletTrail, dissolved_pixel::DissolvedPixel, enemy::Enemy, player::{Facing, Player}, base_prop::BaseProp, space::Space, w...
[INFO] [stdout]   |       ^^^^^^^^^^^         ^^^^^^^^^^^  ^^^^^^   ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^                   ^^^^^^   ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `EnumIter`
[INFO] [stdout]  --> src/props/mod.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use strum::{Display, EnumIter};
[INFO] [stdout]   |             ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `base_prop::BaseProp` and `props::wooden_box::wooden_box::WoodenBox`
[INFO] [stdout]  --> src/props/mod.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{base_prop::BaseProp, props::wooden_box::wooden_box::WoodenBox};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `color::Color` and `math::Vec2`
[INFO] [stdout]  --> src/weapons/weapon_type.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use macroquad::{color::Color, math::Vec2};
[INFO] [stdout]   |                 ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColliderHandle`, `ImpulseJointHandle`, and `RigidBodyHandle`
[INFO] [stdout]  --> src/weapons/weapon_type.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rapier2d::prelude::{ColliderHandle, ImpulseJointHandle, RigidBodyHandle};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/props/wooden_box/wooden_box.rs:3:64
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Owner, TickContext, area::AreaContext, base_prop::{self, BaseProp, Material, PropId}, drawable::Drawable, prop::Prop, pro...
[INFO] [stdout]   |                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/props/wooden_box/wooden_box.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Facing`, `Player`, `TickContext`, `area::AreaContext`, `items::Item`, `lmg::weapon::LMG`, `shotgun::weapon::Shotgun`, `smg::weapon::SMG`, `space::Space`, `texture_loader::ClientTextureLoader`, `weapon_fire_context::WeaponFireContext`, and `weapon_type_save::WeaponTypeSave`
[INFO] [stdout]  --> src/weapons/weapon_type.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...::{TickContext, area::AreaContext, enemy::EnemyContext, items::Item, player::{Facing, Player, PlayerContext}, space::Space, texture_loader::ClientTextureLoader, weapons::{lmg::weapon::LMG, shotgun::weapon::Shotgun, smg::weapon::SMG, weapon_fire_context::WeaponFireContext, weapon_type_save::WeaponTypeSave}};
[INFO] [stdout]   |       ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^                       ^^^^^^^^^^^           ^^^^^^  ^^^^^^                  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `drawable::Drawable`
[INFO] [stdout]  --> src/prop.rs:7:83
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::{Owner, TickContext, area::AreaContext, base_prop::{Material, PropId}, drawable::Drawable, prop_save::PropSave, space::Spa...
[INFO] [stdout]   |                                                                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `derive_more::From`
[INFO] [stdout]  --> src/prop_save.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use derive_more::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TextureLoader`
[INFO] [stdout]  --> src/tile.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::{TextureLoader, rapier_to_macroquad, space::Space, texture_loader::ClientTextureLoader, uuid_u64};
[INFO] [stdout]   |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/prop_save.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseProp` and `drawable::Drawable`
[INFO] [stdout]  --> src/selectable_object_id.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{base_prop::{BaseProp, PropId}, clip::Clip, decoration::Decoration, drawable::Drawable, prop::Prop, tile::Tile};
[INFO] [stdout]   |                         ^^^^^^^^                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `area::AreaContext`, `base_prop_save::BasePropSave`, and `props::wooden_box::wooden_box_save::WoodenBoxSave`
[INFO] [stdout]  --> src/prop_save.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...reLoader, area::AreaContext, base_prop_save::BasePropSave, prop::Prop, props::wooden_box::wooden_box_save::WoodenBoxSave, space::S...
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `na::base`
[INFO] [stdout]  --> src/base_prop_save.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rapier2d::{na::base, prelude::{ColliderBuilder, RigidBodyBuilder, RigidBodyType, RigidBodyVelocity}};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashSet`
[INFO] [stdout]  --> src/prop_fragment.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashSet, path::PathBuf};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `EnumIter`
[INFO] [stdout]  --> src/props/mod.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use strum::{Display, EnumIter};
[INFO] [stdout]   |             ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `base_prop::BaseProp` and `props::wooden_box::wooden_box::WoodenBox`
[INFO] [stdout]  --> src/props/mod.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{base_prop::BaseProp, props::wooden_box::wooden_box::WoodenBox};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/props/wooden_box/wooden_box.rs:3:64
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Owner, TickContext, area::AreaContext, base_prop::{self, BaseProp, Material, PropId}, drawable::Drawable, prop::Prop, pro...
[INFO] [stdout]   |                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/props/wooden_box/wooden_box.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rapier2d::prelude::ColliderHandle`
[INFO] [stdout]  --> src/items/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rapier2d::prelude::ColliderHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Prefabs`, `drawable::Drawable`, and `self`
[INFO] [stdout]  --> src/items/mod.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...::{Prefabs, TickContext, area::AreaContext, drawable::Drawable, items::item_save::ItemSave, player::PlayerContext, space::{self, S...
[INFO] [stdout]   |       ^^^^^^^                                  ^^^^^^^^^^^^^^^^^^                                                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `prop::Prop` and `props::wooden_box::wooden_box::WoodenBox`
[INFO] [stdout]  --> src/items/prop/prop_item.rs:5:151
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...medStatus, Item, item_save::ItemSave}, prop::Prop, props::wooden_box::wooden_box::WoodenBox, weapons::ItemOwnerContext};
[INFO] [stdout]   |                                           ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/items/item_save.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `drawable::Drawable`
[INFO] [stdout]  --> src/prop.rs:7:83
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::{Owner, TickContext, area::AreaContext, base_prop::{Material, PropId}, drawable::Drawable, prop_save::PropSave, space::Spa...
[INFO] [stdout]   |                                                                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `derive_more::From`
[INFO] [stdout]  --> src/prop_save.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use derive_more::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/prop_save.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `area::AreaContext`, `base_prop_save::BasePropSave`, and `props::wooden_box::wooden_box_save::WoodenBoxSave`
[INFO] [stdout]  --> src/prop_save.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...reLoader, area::AreaContext, base_prop_save::BasePropSave, prop::Prop, props::wooden_box::wooden_box_save::WoodenBoxSave, space::S...
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `na::base`
[INFO] [stdout]  --> src/base_prop_save.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rapier2d::{na::base, prelude::{ColliderBuilder, RigidBodyBuilder, RigidBodyType, RigidBodyVelocity}};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rapier2d::prelude::ColliderHandle`
[INFO] [stdout]  --> src/items/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rapier2d::prelude::ColliderHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Prefabs`, `drawable::Drawable`, and `self`
[INFO] [stdout]  --> src/items/mod.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...::{Prefabs, TickContext, area::AreaContext, drawable::Drawable, items::item_save::ItemSave, player::PlayerContext, space::{self, S...
[INFO] [stdout]   |       ^^^^^^^                                  ^^^^^^^^^^^^^^^^^^                                                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `prop::Prop` and `props::wooden_box::wooden_box::WoodenBox`
[INFO] [stdout]  --> src/items/prop/prop_item.rs:5:151
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...medStatus, Item, item_save::ItemSave}, prop::Prop, props::wooden_box::wooden_box::WoodenBox, weapons::ItemOwnerContext};
[INFO] [stdout]   |                                           ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/items/item_save.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `base_prop::BaseProp::from_save`
[INFO] [stdout]    --> src/area.rs:644:42
[INFO] [stdout]     |
[INFO] [stdout] 644 |             let mut new_prop = BaseProp::from_save(prefab_save, &mut self.space, ctx.textures.into());
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `base_prop::BaseProp::from_save`
[INFO] [stdout]    --> src/area.rs:644:42
[INFO] [stdout]     |
[INFO] [stdout] 644 |             let mut new_prop = BaseProp::from_save(prefab_save, &mut self.space, ctx.textures.into());
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `base_prop::BaseProp::from_save`
[INFO] [stdout]    --> src/base_prop.rs:774:30
[INFO] [stdout]     |
[INFO] [stdout] 774 |         let prop = BaseProp::from_save(prop_save, space, textures);
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `base_prop::BaseProp::from_save`
[INFO] [stdout]     --> src/base_prop.rs:1335:23
[INFO] [stdout]      |
[INFO] [stdout] 1335 |         *self = Self::from_save(prop_save, ctx.space, ctx.textures.into());
[INFO] [stdout]      |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `base_prop::BaseProp::from_save`
[INFO] [stdout]    --> src/base_prop.rs:774:30
[INFO] [stdout]     |
[INFO] [stdout] 774 |         let prop = BaseProp::from_save(prop_save, space, textures);
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `base_prop::BaseProp::from_save`
[INFO] [stdout]     --> src/base_prop.rs:1335:23
[INFO] [stdout]      |
[INFO] [stdout] 1335 |         *self = Self::from_save(prop_save, ctx.space, ctx.textures.into());
[INFO] [stdout]      |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `base_prop::BaseProp::from_save`
[INFO] [stdout]    --> src/computer.rs:296:34
[INFO] [stdout]     |
[INFO] [stdout] 296 |         let mut prop = BaseProp::from_save(
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `base_prop::BaseProp::from_save`
[INFO] [stdout]    --> src/computer.rs:296:34
[INFO] [stdout]     |
[INFO] [stdout] 296 |         let mut prop = BaseProp::from_save(
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rapier2d::dynamics::RigidBodyBuilder::position`: renamed to `RigidBodyBuilder::pose`
[INFO] [stdout]   --> src/dropped_item.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |                 .position(save.pos)
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rapier2d::dynamics::RigidBodyBuilder::position`: renamed to `RigidBodyBuilder::pose`
[INFO] [stdout]   --> src/dropped_item.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |                 .position(save.pos)
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rapier2d::dynamics::RigidBodyBuilder::position`: renamed to `RigidBodyBuilder::pose`
[INFO] [stdout]   --> src/dissolved_pixel.rs:83:18
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 .position(pos)
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rapier2d::dynamics::RigidBodyBuilder::position`: renamed to `RigidBodyBuilder::pose`
[INFO] [stdout]   --> src/dissolved_pixel.rs:83:18
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 .position(pos)
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]  --> src/area.rs:9:451
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...e}, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, dropped_item::{DroppedItem, DroppedItemSave}, enemy::{Enem...
[INFO] [stdout]   |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]   --> src/player.rs:10:339
[INFO] [stdout]    |
[INFO] [stdout] 10 | ...l, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, dropped_item::{DroppedItem, RemoveDroppedItemUpdate}, enem...
[INFO] [stdout]    |                                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]  --> src/computer.rs:7:320
[INFO] [stdout]   |
[INFO] [stdout] 7 | ..._save::BasePropSave, button::Button, drawable::{DrawContext, Drawable}, font_loader::FontLoader, items::{Item, prop::prop_item::Si...
[INFO] [stdout]   |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]  --> src/enemy.rs:8:298
[INFO] [stdout]   |
[INFO] [stdout] 8 | ...P}, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, get_angle_between_rapier_points, items::{Item, item_save::...
[INFO] [stdout]   |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GenericImageView`
[INFO] [stdout]  --> src/base_prop.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use image::{GenericImageView, Pixel};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pixel`
[INFO] [stdout]  --> src/base_prop.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use image::{GenericImageView, Pixel};
[INFO] [stdout]   |                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `drawable::Drawable`
[INFO] [stdout]  --> src/props/wooden_box/wooden_box.rs:3:99
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Owner, TickContext, area::AreaContext, base_prop::{self, BaseProp, Material, PropId}, drawable::Drawable, prop::Prop, pro...
[INFO] [stdout]   |                                                                                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]  --> src/area.rs:9:451
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...e}, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, dropped_item::{DroppedItem, DroppedItemSave}, enemy::{Enem...
[INFO] [stdout]   |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]   --> src/player.rs:10:339
[INFO] [stdout]    |
[INFO] [stdout] 10 | ...l, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, dropped_item::{DroppedItem, RemoveDroppedItemUpdate}, enem...
[INFO] [stdout]    |                                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]  --> src/computer.rs:7:320
[INFO] [stdout]   |
[INFO] [stdout] 7 | ..._save::BasePropSave, button::Button, drawable::{DrawContext, Drawable}, font_loader::FontLoader, items::{Item, prop::prop_item::Si...
[INFO] [stdout]   |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]  --> src/enemy.rs:8:298
[INFO] [stdout]   |
[INFO] [stdout] 8 | ...P}, dissolved_pixel::DissolvedPixel, drawable::{DrawContext, Drawable}, get_angle_between_rapier_points, items::{Item, item_save::...
[INFO] [stdout]   |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GenericImageView`
[INFO] [stdout]  --> src/base_prop.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use image::{GenericImageView, Pixel};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pixel`
[INFO] [stdout]  --> src/base_prop.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use image::{GenericImageView, Pixel};
[INFO] [stdout]   |                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `drawable::Drawable`
[INFO] [stdout]  --> src/props/wooden_box/wooden_box.rs:3:99
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Owner, TickContext, area::AreaContext, base_prop::{self, BaseProp, Material, PropId}, drawable::Drawable, prop::Prop, pro...
[INFO] [stdout]   |                                                                                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/player.rs:45:42
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn from_save(save: ItemSlotSave, space: &mut Space, textures: TextureLoader) -> ItemSlot {
[INFO] [stdout]    |                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]   --> src/player.rs:45:61
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn from_save(save: ItemSlotSave, space: &mut Space, textures: TextureLoader) -> ItemSlot {
[INFO] [stdout]    |                                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/player.rs:280:28
[INFO] [stdout]     |
[INFO] [stdout] 280 |     pub fn draw_hud(&self, ctx: &mut TickContext) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slot_color`
[INFO] [stdout]    --> src/player.rs:292:18
[INFO] [stdout]     |
[INFO] [stdout] 292 |             let (slot_color, item_color) = match self.selected_item == index{
[INFO] [stdout]     |                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_slot_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_to_screen_ratio`
[INFO] [stdout]    --> src/player.rs:396:13
[INFO] [stdout]     |
[INFO] [stdout] 396 |         let camera_to_screen_ratio = Vec2 {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_to_screen_ratio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/player.rs:676:9
[INFO] [stdout]     |
[INFO] [stdout] 676 |         ctx: &mut ClientTickContext,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/player.rs:677:9
[INFO] [stdout]     |
[INFO] [stdout] 677 |         area_context: &mut AreaContext
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/player.rs:739:9
[INFO] [stdout]     |
[INFO] [stdout] 739 |         ctx: &mut ClientTickContext,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/player.rs:764:9
[INFO] [stdout]     |
[INFO] [stdout] 764 |         ctx: &mut ClientTickContext,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]     --> src/player.rs:1034:9
[INFO] [stdout]      |
[INFO] [stdout] 1034 |         ctx: &mut ClientTickContext,
[INFO] [stdout]      |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/player.rs:45:42
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn from_save(save: ItemSlotSave, space: &mut Space, textures: TextureLoader) -> ItemSlot {
[INFO] [stdout]    |                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]   --> src/player.rs:45:61
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn from_save(save: ItemSlotSave, space: &mut Space, textures: TextureLoader) -> ItemSlot {
[INFO] [stdout]    |                                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]     --> src/player.rs:1133:17
[INFO] [stdout]      |
[INFO] [stdout] 1133 |             let then = web_time::Instant::now();
[INFO] [stdout]      |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]     --> src/player.rs:1302:13
[INFO] [stdout]      |
[INFO] [stdout] 1302 |         let pos = space.rigid_body_set.get(self.body.body_handle).unwrap().position().translation;
[INFO] [stdout]      |             ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/player.rs:280:28
[INFO] [stdout]     |
[INFO] [stdout] 280 |     pub fn draw_hud(&self, ctx: &mut TickContext) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slot_color`
[INFO] [stdout]    --> src/player.rs:292:18
[INFO] [stdout]     |
[INFO] [stdout] 292 |             let (slot_color, item_color) = match self.selected_item == index{
[INFO] [stdout]     |                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_slot_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_to_screen_ratio`
[INFO] [stdout]    --> src/player.rs:396:13
[INFO] [stdout]     |
[INFO] [stdout] 396 |         let camera_to_screen_ratio = Vec2 {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_to_screen_ratio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/player.rs:676:9
[INFO] [stdout]     |
[INFO] [stdout] 676 |         ctx: &mut ClientTickContext,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/player.rs:677:9
[INFO] [stdout]     |
[INFO] [stdout] 677 |         area_context: &mut AreaContext
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/player.rs:739:9
[INFO] [stdout]     |
[INFO] [stdout] 739 |         ctx: &mut ClientTickContext,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/player.rs:764:9
[INFO] [stdout]     |
[INFO] [stdout] 764 |         ctx: &mut ClientTickContext,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]     --> src/player.rs:1034:9
[INFO] [stdout]      |
[INFO] [stdout] 1034 |         ctx: &mut ClientTickContext,
[INFO] [stdout]      |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]     --> src/player.rs:1133:17
[INFO] [stdout]      |
[INFO] [stdout] 1133 |             let then = web_time::Instant::now();
[INFO] [stdout]      |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]     --> src/player.rs:1302:13
[INFO] [stdout]      |
[INFO] [stdout] 1302 |         let pos = space.rigid_body_set.get(self.body.body_handle).unwrap().position().translation;
[INFO] [stdout]      |             ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/base_prop.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut color = WHITE;
[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: `collider`
[INFO] [stdout]    --> src/base_prop.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let collider = space.collider_set.get(self.collider_handle).unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collider`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lifespan`
[INFO] [stdout]    --> src/base_prop.rs:151:21
[INFO] [stdout]     |
[INFO] [stdout] 151 |         if let Some(lifespan) = self.lifespan {
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lifespan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `color` is assigned to, but never used
[INFO] [stdout]    --> src/base_prop.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let mut color = GREEN;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_color` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `color` is assigned to, but never used
[INFO] [stdout]    --> src/base_prop.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |         let mut color = WHITE;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_color` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `color` is never read
[INFO] [stdout]    --> src/base_prop.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 223 |         color.a = 1. - (self.last_sent_position_update.elapsed().as_secs_f32() / 1.);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `color` is never read
[INFO] [stdout]    --> src/base_prop.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |         color.a = 0.5;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/base_prop.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut color = WHITE;
[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: `collider`
[INFO] [stdout]    --> src/base_prop.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let collider = space.collider_set.get(self.collider_handle).unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collider`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lifespan`
[INFO] [stdout]    --> src/base_prop.rs:151:21
[INFO] [stdout]     |
[INFO] [stdout] 151 |         if let Some(lifespan) = self.lifespan {
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lifespan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `color` is assigned to, but never used
[INFO] [stdout]    --> src/base_prop.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let mut color = GREEN;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_color` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `color` is assigned to, but never used
[INFO] [stdout]    --> src/base_prop.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |         let mut color = WHITE;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_color` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `color` is never read
[INFO] [stdout]    --> src/base_prop.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 223 |         color.a = 1. - (self.last_sent_position_update.elapsed().as_secs_f32() / 1.);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `color` is never read
[INFO] [stdout]    --> src/base_prop.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |         color.a = 0.5;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/base_prop.rs:537:14
[INFO] [stdout]     |
[INFO] [stdout] 537 |         for (idx, seed) in potential_island_seeds
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/base_prop.rs:537:14
[INFO] [stdout]     |
[INFO] [stdout] 537 |         for (idx, seed) in potential_island_seeds
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/base_prop.rs:877:56
[INFO] [stdout]     |
[INFO] [stdout] 877 |     pub fn play_impact_sound(&mut self, space: &Space, ctx: &mut ClientTickContext) {
[INFO] [stdout]     |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `voxels`
[INFO] [stdout]    --> src/base_prop.rs:904:13
[INFO] [stdout]     |
[INFO] [stdout] 904 |         let voxels = space.collider_set.get_mut(self.collider_handle).unwrap().shape_mut().as_voxels_mut().unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_voxels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_velocity`
[INFO] [stdout]    --> src/base_prop.rs:917:13
[INFO] [stdout]     |
[INFO] [stdout] 917 |         let current_velocity = *space.rigid_body_set.get(self.rigid_body_handle).unwrap().vels();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_velocity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collide_with_players`
[INFO] [stdout]     --> src/base_prop.rs:1022:9
[INFO] [stdout]      |
[INFO] [stdout] 1022 |         collide_with_players: bool,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collide_with_players`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/base_prop.rs:877:56
[INFO] [stdout]     |
[INFO] [stdout] 877 |     pub fn play_impact_sound(&mut self, space: &Space, ctx: &mut ClientTickContext) {
[INFO] [stdout]     |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `voxels`
[INFO] [stdout]    --> src/base_prop.rs:904:13
[INFO] [stdout]     |
[INFO] [stdout] 904 |         let voxels = space.collider_set.get_mut(self.collider_handle).unwrap().shape_mut().as_voxels_mut().unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_voxels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_velocity`
[INFO] [stdout]    --> src/base_prop.rs:917:13
[INFO] [stdout]     |
[INFO] [stdout] 917 |         let current_velocity = *space.rigid_body_set.get(self.rigid_body_handle).unwrap().vels();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_velocity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collide_with_players`
[INFO] [stdout]     --> src/base_prop.rs:1022:9
[INFO] [stdout]      |
[INFO] [stdout] 1022 |         collide_with_players: bool,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collide_with_players`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]    --> src/enemy.rs:627:13
[INFO] [stdout]     |
[INFO] [stdout] 627 |         let then = web_time::Instant::now();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lowest_distance` is never read
[INFO] [stdout]    --> src/enemy.rs:755:21
[INFO] [stdout]     |
[INFO] [stdout] 755 |                     lowest_distance = distance;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]    --> src/enemy.rs:627:13
[INFO] [stdout]     |
[INFO] [stdout] 627 |         let then = web_time::Instant::now();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lowest_distance` is never read
[INFO] [stdout]    --> src/enemy.rs:755:21
[INFO] [stdout]     |
[INFO] [stdout] 755 |                     lowest_distance = distance;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]   --> src/dropped_item.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |         textures: TextureLoader
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]    --> src/dropped_item.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let textures = match ctx.textures() {
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_texture_loader`
[INFO] [stdout]    --> src/dropped_item.rs:167:35
[INFO] [stdout]     |
[INFO] [stdout] 167 |             TextureLoader::Server(server_texture_loader) => panic!(),
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_texture_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]   --> src/dropped_item.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |         textures: TextureLoader
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]    --> src/dropped_item.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let textures = match ctx.textures() {
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_texture_loader`
[INFO] [stdout]    --> src/dropped_item.rs:167:35
[INFO] [stdout]     |
[INFO] [stdout] 167 |             TextureLoader::Server(server_texture_loader) => panic!(),
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_texture_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         ctx: &mut TickContext,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |         area_context: &mut AreaContext,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         player_context: &mut PlayerContext,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `impacts`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |         impacts: Vec<BulletImpactData>,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_impacts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         ctx: &mut TickContext,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |         area_context: &mut AreaContext,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         player_context: &mut PlayerContext,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `impacts`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |         impacts: Vec<BulletImpactData>,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_impacts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:658:20
[INFO] [stdout]     |
[INFO] [stdout] 658 |     fn save(&self, space: &Space) -> Box<dyn crate::items::item_save::ItemSave> {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:740:9
[INFO] [stdout]     |
[INFO] [stdout] 740 |         ctx: &mut TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:789:9
[INFO] [stdout]     |
[INFO] [stdout] 789 |         ctx: &mut TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:791:9
[INFO] [stdout]     |
[INFO] [stdout] 791 |         player_context: &mut PlayerContext
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:813:9
[INFO] [stdout]     |
[INFO] [stdout] 813 |         ctx: &mut TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:814:9
[INFO] [stdout]     |
[INFO] [stdout] 814 |         area_context: &mut AreaContext, 
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:815:9
[INFO] [stdout]     |
[INFO] [stdout] 815 |         player_context: &mut PlayerContext
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `draw_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:825:30
[INFO] [stdout]     |
[INFO] [stdout] 825 |     async fn draw(&mut self, draw_context: &DrawContext) {
[INFO] [stdout]     |                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_draw_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:658:20
[INFO] [stdout]     |
[INFO] [stdout] 658 |     fn save(&self, space: &Space) -> Box<dyn crate::items::item_save::ItemSave> {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:740:9
[INFO] [stdout]     |
[INFO] [stdout] 740 |         ctx: &mut TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:789:9
[INFO] [stdout]     |
[INFO] [stdout] 789 |         ctx: &mut TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:791:9
[INFO] [stdout]     |
[INFO] [stdout] 791 |         player_context: &mut PlayerContext
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:813:9
[INFO] [stdout]     |
[INFO] [stdout] 813 |         ctx: &mut TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:814:9
[INFO] [stdout]     |
[INFO] [stdout] 814 |         area_context: &mut AreaContext, 
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:815:9
[INFO] [stdout]     |
[INFO] [stdout] 815 |         player_context: &mut PlayerContext
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `draw_context`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:825:30
[INFO] [stdout]     |
[INFO] [stdout] 825 |     async fn draw(&mut self, draw_context: &DrawContext) {
[INFO] [stdout]     |                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_draw_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:54:30
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub async fn draw(&self, space: &Space, _textures: &mut ClientTextureLoader, _facing: Facing) {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:54:30
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub async fn draw(&self, space: &Space, _textures: &mut ClientTextureLoader, _facing: Facing) {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `entry_index` is never read
[INFO] [stdout]    --> src/editor_context_menu.rs:287:13
[INFO] [stdout]     |
[INFO] [stdout] 287 |             entry_index += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `entry_index` is never read
[INFO] [stdout]    --> src/editor_context_menu.rs:287:13
[INFO] [stdout]     |
[INFO] [stdout] 287 |             entry_index += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn save(&self, space: &crate::space::Space) -> Box<dyn crate::items::item_save::ItemSave> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:51:28
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn use_hold(&mut self, ctx: &mut crate::TickContext, area_context: &mut crate::area::AreaContext,  weapon_owner_context: &mut It...
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:51:58
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...crate::TickContext, area_context: &mut crate::area::AreaContext,  weapon_owner_context: &mut ItemOwnerContext) -> ConsumedStatus {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weapon_owner_context`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:51:104
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...eaContext,  weapon_owner_context: &mut ItemOwnerContext) -> ConsumedStatus {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weapon_owner_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:55:32
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn use_released(&mut self, ctx: &mut crate::TickContext, area_context: &mut crate::area::AreaContext,  weapon_owner_context: &mu...
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:55:62
[INFO] [stdout]    |
[INFO] [stdout] 55 | ...crate::TickContext, area_context: &mut crate::area::AreaContext,  weapon_owner_context: &mut ItemOwnerContext) -> ConsumedStatus {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weapon_owner_context`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:55:108
[INFO] [stdout]    |
[INFO] [stdout] 55 | ...eaContext,  weapon_owner_context: &mut ItemOwnerContext) -> ConsumedStatus {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weapon_owner_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:94:27
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn draw_active(&self, ctx: &mut TickContext, space: &crate::space::Space) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:94:50
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn draw_active(&self, ctx: &mut TickContext, space: &crate::space::Space) {
[INFO] [stdout]    |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |         ctx: &mut crate::TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         area_context: &mut crate::area::AreaContext, 
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         player_context: &mut crate::player::PlayerContext
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         ctx: &mut crate::TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         area_context: &mut crate::area::AreaContext, 
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         player_context: &mut crate::player::PlayerContext
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         ctx: &mut crate::TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         area_context: &mut crate::area::AreaContext, 
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |         player_context: &mut crate::player::PlayerContext
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `draw_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:142:30
[INFO] [stdout]     |
[INFO] [stdout] 142 |     async fn draw(&mut self, draw_context: &DrawContext ) {
[INFO] [stdout]     |                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_draw_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_texture_loader`
[INFO] [stdout]    --> src/lib.rs:595:31
[INFO] [stdout]     |
[INFO] [stdout] 595 |         TextureLoader::Server(server_texture_loader) => panic!(),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_texture_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn save(&self, space: &crate::space::Space) -> Box<dyn crate::items::item_save::ItemSave> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:51:28
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn use_hold(&mut self, ctx: &mut crate::TickContext, area_context: &mut crate::area::AreaContext,  weapon_owner_context: &mut It...
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:51:58
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...crate::TickContext, area_context: &mut crate::area::AreaContext,  weapon_owner_context: &mut ItemOwnerContext) -> ConsumedStatus {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weapon_owner_context`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:51:104
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...eaContext,  weapon_owner_context: &mut ItemOwnerContext) -> ConsumedStatus {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weapon_owner_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:55:32
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn use_released(&mut self, ctx: &mut crate::TickContext, area_context: &mut crate::area::AreaContext,  weapon_owner_context: &mu...
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:55:62
[INFO] [stdout]    |
[INFO] [stdout] 55 | ...crate::TickContext, area_context: &mut crate::area::AreaContext,  weapon_owner_context: &mut ItemOwnerContext) -> ConsumedStatus {
[INFO] [stdout]    |                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weapon_owner_context`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:55:108
[INFO] [stdout]    |
[INFO] [stdout] 55 | ...eaContext,  weapon_owner_context: &mut ItemOwnerContext) -> ConsumedStatus {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weapon_owner_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:94:27
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn draw_active(&self, ctx: &mut TickContext, space: &crate::space::Space) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/items/prop/prop_item.rs:94:50
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn draw_active(&self, ctx: &mut TickContext, space: &crate::space::Space) {
[INFO] [stdout]    |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |         ctx: &mut crate::TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         area_context: &mut crate::area::AreaContext, 
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         player_context: &mut crate::player::PlayerContext
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         ctx: &mut crate::TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         area_context: &mut crate::area::AreaContext, 
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         player_context: &mut crate::player::PlayerContext
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         ctx: &mut crate::TickContext, 
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         area_context: &mut crate::area::AreaContext, 
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `materials`
[INFO] [stdout]    --> src/lib.rs:916:9
[INFO] [stdout]     |
[INFO] [stdout] 916 |         materials: &MaterialLoader
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_materials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |         player_context: &mut crate::player::PlayerContext
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `draw_context`
[INFO] [stdout]    --> src/items/prop/prop_item.rs:142:30
[INFO] [stdout]     |
[INFO] [stdout] 142 |     async fn draw(&mut self, draw_context: &DrawContext ) {
[INFO] [stdout]     |                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_draw_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1194:33
[INFO] [stdout]      |
[INFO] [stdout] 1194 |             TickContext::Server(server_tick_context) => {},
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `editor_tick_context`
[INFO] [stdout]     --> src/lib.rs:1195:33
[INFO] [stdout]      |
[INFO] [stdout] 1195 |             TickContext::Editor(editor_tick_context) => {},
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_editor_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1202:33
[INFO] [stdout]      |
[INFO] [stdout] 1202 |             TickContext::Server(server_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1210:33
[INFO] [stdout]      |
[INFO] [stdout] 1210 |             TickContext::Server(server_tick_context) => unimplemented!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_tick_context`
[INFO] [stdout]     --> src/lib.rs:1217:33
[INFO] [stdout]      |
[INFO] [stdout] 1217 |             TickContext::Client(client_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1218:33
[INFO] [stdout]      |
[INFO] [stdout] 1218 |             TickContext::Server(server_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1226:33
[INFO] [stdout]      |
[INFO] [stdout] 1226 |             TickContext::Server(server_tick_context) => unimplemented!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_tick_context`
[INFO] [stdout]     --> src/lib.rs:1233:33
[INFO] [stdout]      |
[INFO] [stdout] 1233 |             TickContext::Client(client_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1234:33
[INFO] [stdout]      |
[INFO] [stdout] 1234 |             TickContext::Server(server_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1242:33
[INFO] [stdout]      |
[INFO] [stdout] 1242 |             TickContext::Server(server_tick_context) => unimplemented!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1252:33
[INFO] [stdout]      |
[INFO] [stdout] 1252 |             TickContext::Server(server_tick_context) => unimplemented!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1264:33
[INFO] [stdout]      |
[INFO] [stdout] 1264 |             TickContext::Server(server_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `editor_tick_context`
[INFO] [stdout]     --> src/lib.rs:1265:33
[INFO] [stdout]      |
[INFO] [stdout] 1265 |             TickContext::Editor(editor_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_editor_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `editor`
[INFO] [stdout]     --> src/lib.rs:1283:33
[INFO] [stdout]      |
[INFO] [stdout] 1283 |             TickContext::Editor(editor) => {
[INFO] [stdout]      |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_editor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_texture_loader`
[INFO] [stdout]    --> src/lib.rs:595:31
[INFO] [stdout]     |
[INFO] [stdout] 595 |         TextureLoader::Server(server_texture_loader) => panic!(),
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_texture_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `materials`
[INFO] [stdout]    --> src/lib.rs:916:9
[INFO] [stdout]     |
[INFO] [stdout] 916 |         materials: &MaterialLoader
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_materials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1194:33
[INFO] [stdout]      |
[INFO] [stdout] 1194 |             TickContext::Server(server_tick_context) => {},
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `editor_tick_context`
[INFO] [stdout]     --> src/lib.rs:1195:33
[INFO] [stdout]      |
[INFO] [stdout] 1195 |             TickContext::Editor(editor_tick_context) => {},
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_editor_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1202:33
[INFO] [stdout]      |
[INFO] [stdout] 1202 |             TickContext::Server(server_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1210:33
[INFO] [stdout]      |
[INFO] [stdout] 1210 |             TickContext::Server(server_tick_context) => unimplemented!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_tick_context`
[INFO] [stdout]     --> src/lib.rs:1217:33
[INFO] [stdout]      |
[INFO] [stdout] 1217 |             TickContext::Client(client_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1218:33
[INFO] [stdout]      |
[INFO] [stdout] 1218 |             TickContext::Server(server_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1226:33
[INFO] [stdout]      |
[INFO] [stdout] 1226 |             TickContext::Server(server_tick_context) => unimplemented!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_tick_context`
[INFO] [stdout]     --> src/lib.rs:1233:33
[INFO] [stdout]      |
[INFO] [stdout] 1233 |             TickContext::Client(client_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1234:33
[INFO] [stdout]      |
[INFO] [stdout] 1234 |             TickContext::Server(server_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1242:33
[INFO] [stdout]      |
[INFO] [stdout] 1242 |             TickContext::Server(server_tick_context) => unimplemented!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1252:33
[INFO] [stdout]      |
[INFO] [stdout] 1252 |             TickContext::Server(server_tick_context) => unimplemented!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_tick_context`
[INFO] [stdout]     --> src/lib.rs:1264:33
[INFO] [stdout]      |
[INFO] [stdout] 1264 |             TickContext::Server(server_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `editor_tick_context`
[INFO] [stdout]     --> src/lib.rs:1265:33
[INFO] [stdout]      |
[INFO] [stdout] 1265 |             TickContext::Editor(editor_tick_context) => todo!(),
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_editor_tick_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `editor`
[INFO] [stdout]     --> src/lib.rs:1283:33
[INFO] [stdout]      |
[INFO] [stdout] 1283 |             TickContext::Editor(editor) => {
[INFO] [stdout]      |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_editor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_nearest` is never used
[INFO] [stdout]     --> src/lib.rs:1300:4
[INFO] [stdout]      |
[INFO] [stdout] 1300 | fn round_to_nearest(x: i32, n: i32) -> i32 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]     --> src/player.rs:1339:5
[INFO] [stdout]      |
[INFO] [stdout] 1334 | pub struct PlayerContext<'a> {
[INFO] [stdout]      |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1339 |     max_speed: &'a mut Vec2,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1340 |     pub owner: &'a mut Owner,
[INFO] [stdout] 1341 |     previous_velocity: &'a mut RigidBodyVelocity<f32>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1342 |     head_joint_handle: &'a mut Option<ImpulseJointHandle>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1343 |     pub facing: &'a mut Facing,
[INFO] [stdout] 1344 |     cursor_pos_rapier: &'a mut glamx::Vec2,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1345 |     previous_cursor_pos: &'a mut glamx::Vec2,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1348 |     junk: &'a mut Vec<ItemSlot>, // you can hold unlimited junk
[INFO] [stdout]      |     ^^^^
[INFO] [stdout] 1349 |     last_changed_inventory_slot: &'a mut web_time::Instant,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1350 |     pub previous_selected_item: &'a mut usize,
[INFO] [stdout] 1351 |     last_dash: &'a mut web_time::Instant,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1352 |     previous_pos: &'a mut Pose2,
[INFO] [stdout]      |     ^^^^^^^^^^^^
[INFO] [stdout] 1353 |     last_position_update: &'a mut web_time::Instant,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1354 |     last_autofire: &'a mut web_time::Instant,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1355 |     flying: &'a mut bool,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scale` and `owner` are never read
[INFO] [stdout]   --> src/body_part.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct BodyPart {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     scale: u16, 
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 13 |     owner: Owner,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BodyPart` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost` is never read
[INFO] [stdout]   --> src/computer.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct StoreItem {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 70 |     cost: u32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `previous_velocity` is never read
[INFO] [stdout]   --> src/dropped_item.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct DroppedItem {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     previous_velocity: RigidBodyVelocity<f32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `body_handle` and `collider_handle` are never read
[INFO] [stdout]  --> src/junk.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Junk {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 4 |     body_handle: RigidBodyHandle,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 5 |     collider_handle: ColliderHandle,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `texture`, `texture_source`, `body`, `collider`, and `scale` are never read
[INFO] [stdout]   --> src/fragment.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Fragment {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  9 |     texture: PathBuf,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 10 |     texture_source: Rect,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     body: RigidBodyHandle,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 12 |     collider: ColliderHandle,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 13 |     scale: f32
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `collider` is never read
[INFO] [stdout]   --> src/prop_fragment.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct PropFragment {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 10 |     sprite_path: PathBuf,
[INFO] [stdout] 11 |     collider: ColliderHandle,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:1199:21
[INFO] [stdout]      |
[INFO] [stdout] 1199 |     pub fn textures(&self) -> TextureLoader {
[INFO] [stdout]      |                     ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1199 |     pub fn textures(&self) -> TextureLoader<'_> {
[INFO] [stdout]      |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_nearest` is never used
[INFO] [stdout]     --> src/lib.rs:1300:4
[INFO] [stdout]      |
[INFO] [stdout] 1300 | fn round_to_nearest(x: i32, n: i32) -> i32 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]     --> src/player.rs:1339:5
[INFO] [stdout]      |
[INFO] [stdout] 1334 | pub struct PlayerContext<'a> {
[INFO] [stdout]      |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1339 |     max_speed: &'a mut Vec2,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1340 |     pub owner: &'a mut Owner,
[INFO] [stdout] 1341 |     previous_velocity: &'a mut RigidBodyVelocity<f32>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1342 |     head_joint_handle: &'a mut Option<ImpulseJointHandle>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1343 |     pub facing: &'a mut Facing,
[INFO] [stdout] 1344 |     cursor_pos_rapier: &'a mut glamx::Vec2,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1345 |     previous_cursor_pos: &'a mut glamx::Vec2,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1348 |     junk: &'a mut Vec<ItemSlot>, // you can hold unlimited junk
[INFO] [stdout]      |     ^^^^
[INFO] [stdout] 1349 |     last_changed_inventory_slot: &'a mut web_time::Instant,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1350 |     pub previous_selected_item: &'a mut usize,
[INFO] [stdout] 1351 |     last_dash: &'a mut web_time::Instant,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1352 |     previous_pos: &'a mut Pose2,
[INFO] [stdout]      |     ^^^^^^^^^^^^
[INFO] [stdout] 1353 |     last_position_update: &'a mut web_time::Instant,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1354 |     last_autofire: &'a mut web_time::Instant,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 1355 |     flying: &'a mut bool,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scale` and `owner` are never read
[INFO] [stdout]   --> src/body_part.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct BodyPart {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     scale: u16, 
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 13 |     owner: Owner,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BodyPart` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost` is never read
[INFO] [stdout]   --> src/computer.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct StoreItem {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 70 |     cost: u32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `previous_velocity` is never read
[INFO] [stdout]   --> src/dropped_item.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct DroppedItem {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     previous_velocity: RigidBodyVelocity<f32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `body_handle` and `collider_handle` are never read
[INFO] [stdout]  --> src/junk.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Junk {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 4 |     body_handle: RigidBodyHandle,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 5 |     collider_handle: ColliderHandle,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `texture`, `texture_source`, `body`, `collider`, and `scale` are never read
[INFO] [stdout]   --> src/fragment.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Fragment {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  9 |     texture: PathBuf,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 10 |     texture_source: Rect,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     body: RigidBodyHandle,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 12 |     collider: ColliderHandle,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 13 |     scale: f32
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `collider` is never read
[INFO] [stdout]   --> src/prop_fragment.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct PropFragment {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 10 |     sprite_path: PathBuf,
[INFO] [stdout] 11 |     collider: ColliderHandle,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:1199:21
[INFO] [stdout]      |
[INFO] [stdout] 1199 |     pub fn textures(&self) -> TextureLoader {
[INFO] [stdout]      |                     ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1199 |     pub fn textures(&self) -> TextureLoader<'_> {
[INFO] [stdout]      |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> src/editor/editor.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, fs::{self, read_to_string}, path::PathBuf, process::exit, time::Duration};
[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: `ClientId`, `DrawCommand`, and `DrawContext`
[INFO] [stdout]  --> src/editor/editor.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{ClientId, DrawCommand, DrawCommands, EditorMode, EditorTickContext, Prefabs, TickContext, area::{Area, AreaSave}, clip::Clip, decoration::Decoration, drawable::{DrawContext, D...
[INFO] [stdout]   |       ^^^^^^^^  ^^^^^^^^^^^                                                                                                                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `strum::Display`
[INFO] [stdout]  --> src/editor/editor.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use strum::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext` and `EditorTickContext`
[INFO] [stdout]  --> src/editor/spawner.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{EditorTickContext, TickContext, area::Area, background::{Background, BackgroundSave}, base_prop::BaseProp, base_prop_save::BasePropSave, button::Button, decoration::{Decoration, DecorationSave}, drawable::{DrawContext, D...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^                                                                                                                                                                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_logger::Config`
[INFO] [stdout]  --> src/client/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use wasm_logger::Config;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::codecs::webp`
[INFO] [stdout]  --> src/client/client.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::codecs::webp;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClearBackgroundParameters`, `DrawCommand`, `DrawTextParameters`, `SetCameraParameters`, and `base_prop::BaseProp`
[INFO] [stdout]  --> src/client/client.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...s, ClearBackgroundParameters, ClientIO, ClientId, ClientTickContext, DrawCommand, DrawCommands, DrawTextParameters, Owner, Prefabs, SetCameraParameters, TickContext, area::Area, base_prop::BaseProp, b...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^                                         ^^^^^^^^^^^                ^^^^^^^^^^^^^^^^^^                  ^^^^^^^^^^^^^^^^^^^                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AreaId` and `BaseProp`
[INFO] [stdout]  --> src/server/server.rs:3:119
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...a, AreaId, AreaSave}, bullet_trail::BulletTrail, dropped_item::DroppedItem, enemy::Enemy, load_assets_server, load_prefabs, player::{ItemSlot, Player}, base_prop::{BaseProp, P...
[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: `Vec2` and `is_mouse_button_down`
[INFO] [stdout]  --> src/client/client.rs:5:126
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...KeyCode, is_key_released, is_mouse_button_down, is_mouse_button_released, show_mouse}, math::{Rect, Vec2, vec2}, prelude::{Materia...
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^^^                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ColliderBuilder`
[INFO] [stdout]  --> src/client/client.rs:6:40
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rapier2d::{math::Vector, prelude::{ColliderBuilder, SharedShape}};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AreaId` and `BaseProp`
[INFO] [stdout]  --> src/server/server.rs:3:119
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...a, AreaId, AreaSave}, bullet_trail::BulletTrail, dropped_item::DroppedItem, enemy::Enemy, load_assets_server, load_prefabs, player::{ItemSlot, Player}, base_prop::{BaseProp, P...
[INFO] [stdout]   |       ^^^^^^                                                                                                                                                           ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_logger::Config`
[INFO] [stdout]  --> src/client/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use wasm_logger::Config;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::codecs::webp`
[INFO] [stdout]  --> src/client/client.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::codecs::webp;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClearBackgroundParameters`, `DrawCommand`, `DrawTextParameters`, `SetCameraParameters`, and `base_prop::BaseProp`
[INFO] [stdout]  --> src/client/client.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...s, ClearBackgroundParameters, ClientIO, ClientId, ClientTickContext, DrawCommand, DrawCommands, DrawTextParameters, Owner, Prefabs, SetCameraParameters, TickContext, area::Area, base_prop::BaseProp, b...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^                                         ^^^^^^^^^^^                ^^^^^^^^^^^^^^^^^^                  ^^^^^^^^^^^^^^^^^^^                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec2` and `is_mouse_button_down`
[INFO] [stdout]  --> src/client/client.rs:5:126
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...KeyCode, is_key_released, is_mouse_button_down, is_mouse_button_released, show_mouse}, math::{Rect, Vec2, vec2}, prelude::{Materia...
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^^^                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ColliderBuilder`
[INFO] [stdout]  --> src/client/client.rs:6:40
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rapier2d::{math::Vector, prelude::{ColliderBuilder, SharedShape}};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> src/editor/editor.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, fs::{self, read_to_string}, path::PathBuf, process::exit, time::Duration};
[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: `ClientId`, `DrawCommand`, and `DrawContext`
[INFO] [stdout]  --> src/editor/editor.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{ClientId, DrawCommand, DrawCommands, EditorMode, EditorTickContext, Prefabs, TickContext, area::{Area, AreaSave}, clip::Clip, decoration::Decoration, drawable::{DrawContext, D...
[INFO] [stdout]   |       ^^^^^^^^  ^^^^^^^^^^^                                                                                                                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `strum::Display`
[INFO] [stdout]  --> src/editor/editor.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use strum::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext` and `EditorTickContext`
[INFO] [stdout]  --> src/editor/spawner.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{EditorTickContext, TickContext, area::Area, background::{Background, BackgroundSave}, base_prop::BaseProp, base_prop_save::BasePropSave, button::Button, decoration::{Decoration, DecorationSave}, drawable::{DrawContext, D...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^                                                                                                                                                                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/server/server.rs:221:21
[INFO] [stdout]     |
[INFO] [stdout] 219 |                       panic!();
[INFO] [stdout]     |                       -------- any code following this expression is unreachable
[INFO] [stdout] 220 |                       // just forward it for now
[INFO] [stdout] 221 | /                     self.network_io.send_all_except(
[INFO] [stdout] 222 | |                         network_packet,
[INFO] [stdout] 223 | |                         client_id
[INFO] [stdout] 224 | |                     );
[INFO] [stdout]     | |______________________^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/server/server.rs:221:21
[INFO] [stdout]     |
[INFO] [stdout] 219 |                       panic!();
[INFO] [stdout]     |                       -------- any code following this expression is unreachable
[INFO] [stdout] 220 |                       // just forward it for now
[INFO] [stdout] 221 | /                     self.network_io.send_all_except(
[INFO] [stdout] 222 | |                         network_packet,
[INFO] [stdout] 223 | |                         client_id
[INFO] [stdout] 224 | |                     );
[INFO] [stdout]     | |______________________^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/client/main.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |       return;
[INFO] [stdout]    |       ------ any code following this expression is unreachable
[INFO] [stdout] 67 |
[INFO] [stdout] 68 | /     match main_menu.run().await {
[INFO] [stdout] 69 | |         MainMenuResult::Quit => {
[INFO] [stdout] 70 | |             request_quit();
[INFO] [stdout] 71 | |         },
[INFO] [stdout] ...  |
[INFO] [stdout] 76 | |         },
[INFO] [stdout] 77 | |     }
[INFO] [stdout]    | |_____^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut main_menu = MainMenu::new(assets.clone()).await;
[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: unreachable expression
[INFO] [stdout]   --> src/client/main.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |       return;
[INFO] [stdout]    |       ------ any code following this expression is unreachable
[INFO] [stdout] 67 |
[INFO] [stdout] 68 | /     match main_menu.run().await {
[INFO] [stdout] 69 | |         MainMenuResult::Quit => {
[INFO] [stdout] 70 | |             request_quit();
[INFO] [stdout] 71 | |         },
[INFO] [stdout] ...  |
[INFO] [stdout] 76 | |         },
[INFO] [stdout] 77 | |     }
[INFO] [stdout]    | |_____^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/server.rs:244:25
[INFO] [stdout]     |
[INFO] [stdout] 244 |                     let mut prop = area.props.iter_mut().find(|prop| {prop.id() == update.id});
[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: `update`
[INFO] [stdout]    --> src/server/server.rs:218:45
[INFO] [stdout]     |
[INFO] [stdout] 218 |                 NetworkPacket::SetPropVoxel(update) => {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_update`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut main_menu = MainMenu::new(assets.clone()).await;
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/server.rs:244:25
[INFO] [stdout]     |
[INFO] [stdout] 244 |                     let mut prop = area.props.iter_mut().find(|prop| {prop.id() == update.id});
[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: `update`
[INFO] [stdout]    --> src/server/server.rs:218:45
[INFO] [stdout]     |
[INFO] [stdout] 218 |                 NetworkPacket::SetPropVoxel(update) => {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_update`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update`
[INFO] [stdout]    --> src/client/client.rs:392:45
[INFO] [stdout]     |
[INFO] [stdout] 392 |                 NetworkPacket::DissolveProp(update) => {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_update`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]    --> src/client/client.rs:695:17
[INFO] [stdout]     |
[INFO] [stdout] 695 |             let then = web_time::Instant::now();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `interceptors_lib::base_prop::BaseProp::from_save`
[INFO] [stdout]    --> src/editor/spawner.rs:281:58
[INFO] [stdout]     |
[INFO] [stdout] 281 | ...   let mut generic_physics_prop = BaseProp::from_save(generic_physics_prop_save.clone(), &mut self.preview_space, ctx.textures()...
[INFO] [stdout]     |                                                ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut conf = Conf {
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `main_menu`
[INFO] [stdout]   --> src/client/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut main_menu = MainMenu::new(assets.clone()).await;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_menu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `material`, `spawned`, and `test_button` are never read
[INFO] [stdout]   --> src/client/client.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Client {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     material: Material,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     spawned: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 32 |     fonts: FontLoader,
[INFO] [stdout] 33 |     test_button: Button,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_camera_to_match_screen_size` is never used
[INFO] [stdout]    --> src/client/client.rs:632:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl Client {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 632 |     pub fn update_camera_to_match_screen_size(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `played_radio_chatter` and `start` are never read
[INFO] [stdout]   --> src/client/main_menu.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct MainMenu {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     played_radio_chatter: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     start: web_time::Instant,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `draw_coords`, `reload_textures`, and `play_radio_chatter` are never used
[INFO] [stdout]    --> src/client/main_menu.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl MainMenu {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  25 |     pub fn draw_coords(&self, cursor: Vec2) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     async fn reload_textures(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn play_radio_chatter(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `interceptors_lib::base_prop::BaseProp::from_save`
[INFO] [stdout]    --> src/editor/spawner.rs:342:58
[INFO] [stdout]     |
[INFO] [stdout] 342 | ...   let mut generic_physics_prop = BaseProp::from_save(generic_physics_prop_save.clone(), &mut area.space, textures.into());
[INFO] [stdout]     |                                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `interceptors_lib::base_prop::BaseProp::from_save`
[INFO] [stdout]    --> src/editor/spawner.rs:281:58
[INFO] [stdout]     |
[INFO] [stdout] 281 | ...   let mut generic_physics_prop = BaseProp::from_save(generic_physics_prop_save.clone(), &mut self.preview_space, ctx.textures()...
[INFO] [stdout]     |                                                ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `interceptors_lib::base_prop::BaseProp::from_save`
[INFO] [stdout]    --> src/editor/spawner.rs:342:58
[INFO] [stdout]     |
[INFO] [stdout] 342 | ...   let mut generic_physics_prop = BaseProp::from_save(generic_physics_prop_save.clone(), &mut area.space, textures.into());
[INFO] [stdout]     |                                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `weapons::Weapon`
[INFO] [stdout]  --> src/editor/editor.rs:4:577
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...electableObjectId}, texture_loader::ClientTextureLoader, weapons::Weapon};
[INFO] [stdout]   |                                                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Item`
[INFO] [stdout]  --> src/editor/editor.rs:4:309
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...text_menu::EditorContextMenu, font_loader::FontLoader, items::{Item, prop::prop_item::SimplePropItem}, load_assets, macroquad_to_r...
[INFO] [stdout]   |                                                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]  --> src/editor/editor.rs:4:198
[INFO] [stdout]   |
[INFO] [stdout] 4 | ... clip::Clip, decoration::Decoration, drawable::{DrawContext, Drawable}, dropped_item::DroppedItem, editor_context_menu::EditorCont...
[INFO] [stdout]   |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]  --> src/editor/spawner.rs:4:243
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...ation::{Decoration, DecorationSave}, drawable::{DrawContext, Drawable}, prop::Prop, space::Space, texture_loader::ClientTextureLoa...
[INFO] [stdout]   |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update`
[INFO] [stdout]    --> src/client/client.rs:392:45
[INFO] [stdout]     |
[INFO] [stdout] 392 |                 NetworkPacket::DissolveProp(update) => {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_update`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]    --> src/client/client.rs:695:17
[INFO] [stdout]     |
[INFO] [stdout] 695 |             let then = web_time::Instant::now();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut conf = Conf {
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `main_menu`
[INFO] [stdout]   --> src/client/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut main_menu = MainMenu::new(assets.clone()).await;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_menu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `material`, `spawned`, and `test_button` are never read
[INFO] [stdout]   --> src/client/client.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Client {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     material: Material,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     spawned: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 32 |     fonts: FontLoader,
[INFO] [stdout] 33 |     test_button: Button,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_camera_to_match_screen_size` is never used
[INFO] [stdout]    --> src/client/client.rs:632:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl Client {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 632 |     pub fn update_camera_to_match_screen_size(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `played_radio_chatter` and `start` are never read
[INFO] [stdout]   --> src/client/main_menu.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct MainMenu {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     played_radio_chatter: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     start: web_time::Instant,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `weapons::Weapon`
[INFO] [stdout]  --> src/editor/editor.rs:4:577
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...electableObjectId}, texture_loader::ClientTextureLoader, weapons::Weapon};
[INFO] [stdout]   |                                                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Item`
[INFO] [stdout]  --> src/editor/editor.rs:4:309
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...text_menu::EditorContextMenu, font_loader::FontLoader, items::{Item, prop::prop_item::SimplePropItem}, load_assets, macroquad_to_r...
[INFO] [stdout]   |                                                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]  --> src/editor/editor.rs:4:198
[INFO] [stdout]   |
[INFO] [stdout] 4 | ... clip::Clip, decoration::Decoration, drawable::{DrawContext, Drawable}, dropped_item::DroppedItem, editor_context_menu::EditorCont...
[INFO] [stdout]   |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Drawable`
[INFO] [stdout]  --> src/editor/spawner.rs:4:243
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...ation::{Decoration, DecorationSave}, drawable::{DrawContext, Drawable}, prop::Prop, space::Space, texture_loader::ClientTextureLoa...
[INFO] [stdout]   |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `draw_coords`, `reload_textures`, and `play_radio_chatter` are never used
[INFO] [stdout]    --> src/client/main_menu.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl MainMenu {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  25 |     pub fn draw_coords(&self, cursor: Vec2) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     async fn reload_textures(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn play_radio_chatter(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_checkpoint`
[INFO] [stdout]    --> src/editor/editor.rs:926:21
[INFO] [stdout]     |
[INFO] [stdout] 926 |         if let Some(last_checkpoint) = self.undo_checkpoints.last() {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_checkpoint`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `editor_context`
[INFO] [stdout]    --> src/editor/editor.rs:992:13
[INFO] [stdout]     |
[INFO] [stdout] 992 |         let editor_context = EditorTickContext {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_editor_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x_index`
[INFO] [stdout]    --> src/editor/spawner.rs:293:21
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 let x_index = (ctx.rapier_cursor().x / 50.) as usize;
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_index`
[INFO] [stdout]    --> src/editor/spawner.rs:294:21
[INFO] [stdout]     |
[INFO] [stdout] 294 |                 let y_index = ((ctx.rapier_cursor().y +25.) / 50.) as usize;
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]    --> src/editor/spawner.rs:296:21
[INFO] [stdout]     |
[INFO] [stdout] 296 |                 let tile: Tile = Tile::from_save(tile_save);
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_checkpoint`
[INFO] [stdout]    --> src/editor/editor.rs:926:21
[INFO] [stdout]     |
[INFO] [stdout] 926 |         if let Some(last_checkpoint) = self.undo_checkpoints.last() {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_checkpoint`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `editor_context`
[INFO] [stdout]    --> src/editor/editor.rs:992:13
[INFO] [stdout]     |
[INFO] [stdout] 992 |         let editor_context = EditorTickContext {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_editor_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x_index`
[INFO] [stdout]    --> src/editor/spawner.rs:293:21
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 let x_index = (ctx.rapier_cursor().x / 50.) as usize;
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_index`
[INFO] [stdout]    --> src/editor/spawner.rs:294:21
[INFO] [stdout]     |
[INFO] [stdout] 294 |                 let y_index = ((ctx.rapier_cursor().y +25.) / 50.) as usize;
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]    --> src/editor/spawner.rs:296:21
[INFO] [stdout]     |
[INFO] [stdout] 296 |                 let tile: Tile = Tile::from_save(tile_save);
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_nearest_50` is never used
[INFO] [stdout]   --> src/editor/main.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn round_to_nearest_50(n: f32) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_cursor_move`, `start`, `last_checkpoint_save`, and `last_area_save` are never read
[INFO] [stdout]   --> src/editor/editor.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct AreaEditor {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     last_cursor_move: web_time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     start: web_time::Instant,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     last_checkpoint_save: web_time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     last_undo: web_time::Instant,
[INFO] [stdout] 46 |     last_area_save: AreaSave,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_object_layers` is never used
[INFO] [stdout]    --> src/editor/layer_toggle_ui.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl LayerToggleUI {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn get_object_layers(drawable_objects: Vec<&dyn Drawable>) -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_nearest_50` is never used
[INFO] [stdout]   --> src/editor/main.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn round_to_nearest_50(n: f32) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_cursor_move`, `start`, `last_checkpoint_save`, and `last_area_save` are never read
[INFO] [stdout]   --> src/editor/editor.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct AreaEditor {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     last_cursor_move: web_time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     start: web_time::Instant,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     last_checkpoint_save: web_time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     last_undo: web_time::Instant,
[INFO] [stdout] 46 |     last_area_save: AreaSave,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_object_layers` is never used
[INFO] [stdout]    --> src/editor/layer_toggle_ui.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl LayerToggleUI {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn get_object_layers(drawable_objects: Vec<&dyn Drawable>) -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 23s
[INFO] running `Command { std: "docker" "inspect" "f36d5f3cfdca04248404dda5cd17ba0410d8d4a0f9e6dcfba4dd0f9f55a4506c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f36d5f3cfdca04248404dda5cd17ba0410d8d4a0f9e6dcfba4dd0f9f55a4506c", kill_on_drop: false }`
[INFO] [stdout] f36d5f3cfdca04248404dda5cd17ba0410d8d4a0f9e6dcfba4dd0f9f55a4506c
