[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] 1792cc15693005cfa27537062c741a7dfc4719ab
[INFO] checking VoxanyNet/interceptors against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVoxanyNet%2Finterceptors" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[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-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/VoxanyNet/interceptors on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ewebsock v0.8.0
[INFO] [stderr]   Downloaded nanoserde-derive v0.1.22
[INFO] [stderr]   Downloaded macroquad-tiled v0.2.1
[INFO] [stderr]   Downloaded mintex v0.1.4
[INFO] [stderr]   Downloaded bitcode_derive v0.6.5
[INFO] [stderr]   Downloaded parry2d v0.21.1
[INFO] [stderr]   Downloaded bitcode v0.6.6
[INFO] [stderr]   Downloaded nanoserde v0.1.37
[INFO] [stderr]   Downloaded spade v2.14.0
[INFO] [stderr]   Downloaded rapier2d v0.26.1
[INFO] [stderr]   Downloaded ldtk2 v0.8.0
[INFO] [stderr]   Downloaded cs-utils v0.21.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] eba472b615b91715ce77683581a1b6a6b1a52da7df995930b3845715f77c82b8
[INFO] running `Command { std: "docker" "start" "-a" "eba472b615b91715ce77683581a1b6a6b1a52da7df995930b3845715f77c82b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eba472b615b91715ce77683581a1b6a6b1a52da7df995930b3845715f77c82b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eba472b615b91715ce77683581a1b6a6b1a52da7df995930b3845715f77c82b8", kill_on_drop: false }`
[INFO] [stdout] eba472b615b91715ce77683581a1b6a6b1a52da7df995930b3845715f77c82b8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 15d149798d635fb620d7f8b65aab377bba74f9992197ff4b020f379b4caeb79f
[INFO] running `Command { std: "docker" "start" "-a" "15d149798d635fb620d7f8b65aab377bba74f9992197ff4b020f379b4caeb79f", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking bytemuck v1.23.1
[INFO] [stderr]    Compiling bumpalo v3.19.0
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]    Compiling quad-alsa-sys v0.3.2
[INFO] [stderr]     Checking ogg v0.7.1
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking dasp_frame v0.11.0
[INFO] [stderr]    Compiling serde_json v1.0.142
[INFO] [stderr]    Compiling wasm-bindgen v0.2.100
[INFO] [stderr]    Compiling quad-snd v0.2.8
[INFO] [stderr]    Compiling miniquad v0.4.8
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking ordered-float v5.0.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking lewton v0.9.4
[INFO] [stderr]     Checking ena v0.14.3
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking quad-rand v0.2.3
[INFO] [stderr]     Checking downcast-rs v2.0.1
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]    Compiling nanoserde-derive v0.1.22
[INFO] [stderr]     Checking rustc-demangle v0.1.26
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]     Checking audrey v0.3.0
[INFO] [stderr]     Checking mintex v0.1.4
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rustc-hash v2.1.1
[INFO] [stderr]    Compiling interceptors v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking noise v0.9.0
[INFO] [stderr]     Checking cs-utils v0.21.1
[INFO] [stderr]     Checking nanoserde v0.1.37
[INFO] [stderr]     Checking addr2line v0.24.2
[INFO] [stderr]     Checking backtrace v0.3.75
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.100
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling bitcode_derive v0.6.5
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.100
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking tungstenite v0.23.0
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.100
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]     Checking ewebsock v0.8.0
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking js-sys v0.3.77
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking web-sys v0.3.77
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking bitcode v0.6.6
[INFO] [stderr]     Checking simba v0.9.0
[INFO] [stderr]     Checking spade v2.14.0
[INFO] [stderr]     Checking fontdue v0.9.3
[INFO] [stderr]     Checking dhat v0.3.3
[INFO] [stderr]     Checking ldtk2 v0.8.0
[INFO] [stderr]     Checking macroquad v0.4.14
[INFO] [stderr]     Checking macroquad-tiled v0.2.1
[INFO] [stderr]     Checking nalgebra v0.33.2
[INFO] [stderr]     Checking parry2d v0.21.1
[INFO] [stderr]     Checking rapier2d v0.26.1
[INFO] [stdout] warning: unused import: `ActiveWeaponUpdate`
[INFO] [stdout]  --> src/updates.rs:2:317
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...onUpdate, NewEnemyUpdate}, player::{ActiveItemSlotUpdate, ActiveWeaponUpdate, ItemSlotQuantityUpdate, ItemSlotUpdate, NewPlayer, Playe...
[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: `rapier2d::prelude::RigidBodyVelocity`
[INFO] [stdout]  --> src/area.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rapier2d::prelude::RigidBodyVelocity;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NewDroppedItemUpdate` and `self`
[INFO] [stdout]   --> src/area.rs:10:296
[INFO] [stdout]    |
[INFO] [stdout] 10 | ...e, NewDroppedItemUpdate}, enemy::{Enemy, EnemySave, NewEnemyUpdate}, font_loader::FontLoader, player::{Facing, NewPlayer, Player, PlayerSave}, prop::{DissolvedPixel, NewProp, Prop, PropId, PropSave}, rapier_mouse_world_pos, space::Space, texture_loader::TextureLoader, tile::{self, T...
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RED`, `draw_circle`, and `is_mouse_button_down`
[INFO] [stdout]  --> src/player.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...K, RED, WHITE}, input::{is_key_down, is_mouse_button_down, is_mouse_button_released, mouse_wheel, KeyCode}, math::{Rect, Vec2}, shapes::{draw_circle, d...
[INFO] [stdout]   |       ^^^                               ^^^^^^^^^^^^^^^^^^^^                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `round_to_nearest` and `weapon_type::WeaponType`
[INFO] [stdout]  --> src/player.rs:9:349
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...d, round_to_nearest, space::Space, texture_loader::TextureLoader, tile::Tile, updates::NetworkPacket, uuid_u64, weapons::{bullet_impact_data::BulletImpactData, weapon::weapon::WeaponOwner, weapon_fire_context::WeaponFireContext, weapon_type::WeaponType, w...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^                                                                                                                                                                                                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ActiveWeaponUpdate`
[INFO] [stdout]  --> src/updates.rs:2:317
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...onUpdate, NewEnemyUpdate}, player::{ActiveItemSlotUpdate, ActiveWeaponUpdate, ItemSlotQuantityUpdate, ItemSlotUpdate, NewPlayer, Playe...
[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: `rapier_mouse_world_pos`
[INFO] [stdout]  --> src/prop.rs:8:97
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::{area::AreaId, draw_preview, draw_texture_onto_physics_body, get_preview_resolution, rapier_mouse_world_pos, rapier_to_macroqu...
[INFO] [stdout]   |                                                                                                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rapier2d::prelude::RigidBodyVelocity`
[INFO] [stdout]  --> src/area.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rapier2d::prelude::RigidBodyVelocity;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NewDroppedItemUpdate` and `self`
[INFO] [stdout]   --> src/area.rs:10:296
[INFO] [stdout]    |
[INFO] [stdout] 10 | ...e, NewDroppedItemUpdate}, enemy::{Enemy, EnemySave, NewEnemyUpdate}, font_loader::FontLoader, player::{Facing, NewPlayer, Player, PlayerSave}, prop::{DissolvedPixel, NewProp, Prop, PropId, PropSave}, rapier_mouse_world_pos, space::Space, texture_loader::TextureLoader, tile::{self, T...
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RED`, `draw_circle`, and `is_mouse_button_down`
[INFO] [stdout]  --> src/player.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...K, RED, WHITE}, input::{is_key_down, is_mouse_button_down, is_mouse_button_released, mouse_wheel, KeyCode}, math::{Rect, Vec2}, shapes::{draw_circle, d...
[INFO] [stdout]   |       ^^^                               ^^^^^^^^^^^^^^^^^^^^                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `round_to_nearest` and `weapon_type::WeaponType`
[INFO] [stdout]  --> src/player.rs:9:349
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...d, round_to_nearest, space::Space, texture_loader::TextureLoader, tile::Tile, updates::NetworkPacket, uuid_u64, weapons::{bullet_impact_data::BulletImpactData, weapon::weapon::WeaponOwner, weapon_fire_context::WeaponFireContext, weapon_type::WeaponType, w...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^                                                                                                                                                                                                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `str::FromStr`
[INFO] [stdout]  --> src/computer.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{path::PathBuf, str::FromStr};
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `weapon::Weapon` and `weapon_save::WeaponSave`
[INFO] [stdout]  --> src/computer.rs:7:196
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...ture_loader::TextureLoader, weapons::{weapon::{weapon::Weapon, weapon_save::WeaponSave}, weapon_type::WeaponType, weapon_type_save::We...
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/button.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::{color::{Color, WHITE}, input::{is_mouse_button_down, is_mouse_button_released}, math::{Rect, Vec2}, texture::{DrawTexture...
[INFO] [stdout]   |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Collider`
[INFO] [stdout]  --> src/weapons/weapon/weapon.rs:5:59
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rapier2d::{math::Vector, parry::query::Ray, prelude::{Collider, ColliderHandle, ImpulseJointHandle, InteractionGroups, QueryFilter, R...
[INFO] [stdout]   |                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Isometry2`
[INFO] [stdout]  --> src/weapons/weapon/weapon_save.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nalgebra::Isometry2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rapier_mouse_world_pos`
[INFO] [stdout]  --> src/prop.rs:8:97
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::{area::AreaId, draw_preview, draw_texture_onto_physics_body, get_preview_resolution, rapier_mouse_world_pos, rapier_to_macroqu...
[INFO] [stdout]   |                                                                                                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Vector2`
[INFO] [stdout]  --> src/weapons/shotgun/weapon.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nalgebra::Vector2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `path::PathBuf` and `time::Duration`
[INFO] [stdout]  --> src/weapons/sledge/weapon.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{path::PathBuf, time::Duration};
[INFO] [stdout]   |           ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `math::Vec2`
[INFO] [stdout]  --> src/weapons/sledge/weapon.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::{color::WHITE, math::Vec2};
[INFO] [stdout]   |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `weapon::weapon::Weapon` and `weapon_fire_context::WeaponFireContext`
[INFO] [stdout]  --> src/weapons/sledge/weapon.rs:7:160
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...}, sledge::weapon_save::SledgeSave, weapon::weapon::Weapon, weapon_fire_context::WeaponFireContext}, ClientId};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::weapons::weapon::weapon_save::WeaponSave`
[INFO] [stdout]  --> src/weapons/sledge/weapon_save.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::weapons::weapon::weapon_save::WeaponSave;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/weapons/weapon_type.rs:4:112
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{player::Facing, space::Space, texture_loader::TextureLoader, weapons::{lmg::weapon::LMG, shotgun::{self, weapon::Shotgun}, we...
[INFO] [stdout]   |                                                                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Isometry2`
[INFO] [stdout]  --> src/tile.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nalgebra::{vector, Isometry2, Vector2};
[INFO] [stdout]   |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RigidBody`
[INFO] [stdout]  --> src/tile.rs:5:58
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rapier2d::prelude::{ColliderBuilder, ColliderHandle, RigidBody, RigidBodyBuilder, RigidBodyHandle};
[INFO] [stdout]   |                                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `str::FromStr`
[INFO] [stdout]  --> src/computer.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{path::PathBuf, str::FromStr};
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `weapon::Weapon` and `weapon_save::WeaponSave`
[INFO] [stdout]  --> src/computer.rs:7:196
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...ture_loader::TextureLoader, weapons::{weapon::{weapon::Weapon, weapon_save::WeaponSave}, weapon_type::WeaponType, weapon_type_save::We...
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/button.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::{color::{Color, WHITE}, input::{is_mouse_button_down, is_mouse_button_released}, math::{Rect, Vec2}, texture::{DrawTexture...
[INFO] [stdout]   |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Collider`
[INFO] [stdout]  --> src/weapons/weapon/weapon.rs:5:59
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rapier2d::{math::Vector, parry::query::Ray, prelude::{Collider, ColliderHandle, ImpulseJointHandle, InteractionGroups, QueryFilter, R...
[INFO] [stdout]   |                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Isometry2`
[INFO] [stdout]  --> src/weapons/weapon/weapon_save.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nalgebra::Isometry2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::Vector2`
[INFO] [stdout]  --> src/weapons/shotgun/weapon.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nalgebra::Vector2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `path::PathBuf` and `time::Duration`
[INFO] [stdout]  --> src/weapons/sledge/weapon.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{path::PathBuf, time::Duration};
[INFO] [stdout]   |           ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `math::Vec2`
[INFO] [stdout]  --> src/weapons/sledge/weapon.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::{color::WHITE, math::Vec2};
[INFO] [stdout]   |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `weapon::weapon::Weapon` and `weapon_fire_context::WeaponFireContext`
[INFO] [stdout]  --> src/weapons/sledge/weapon.rs:7:160
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...}, sledge::weapon_save::SledgeSave, weapon::weapon::Weapon, weapon_fire_context::WeaponFireContext}, ClientId};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::weapons::weapon::weapon_save::WeaponSave`
[INFO] [stdout]  --> src/weapons/sledge/weapon_save.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::weapons::weapon::weapon_save::WeaponSave;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/weapons/weapon_type.rs:4:112
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{player::Facing, space::Space, texture_loader::TextureLoader, weapons::{lmg::weapon::LMG, shotgun::{self, weapon::Shotgun}, we...
[INFO] [stdout]   |                                                                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Isometry2`
[INFO] [stdout]  --> src/tile.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nalgebra::{vector, Isometry2, Vector2};
[INFO] [stdout]   |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RigidBody`
[INFO] [stdout]  --> src/tile.rs:5:58
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rapier2d::prelude::{ColliderBuilder, ColliderHandle, RigidBody, RigidBodyBuilder, RigidBodyHandle};
[INFO] [stdout]   |                                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop_pos`
[INFO] [stdout]    --> src/computer.rs:471:13
[INFO] [stdout]     |
[INFO] [stdout] 471 |         let prop_pos = space.rigid_body_set.get(self.prop.rigid_body_handle).unwrap().position();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prop_pos`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `font`
[INFO] [stdout]    --> src/computer.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let font = fonts.get(PathBuf::from("assets/fonts/CutePixel.ttf"));
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_font`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiles`
[INFO] [stdout]    --> src/player.rs:794:156
[INFO] [stdout]     |
[INFO] [stdout] 794 | ...ntLoader, camera_rect: &Rect, tiles: &Vec<Vec<Option<Tile>>>) {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop`
[INFO] [stdout]    --> src/player.rs:823:32
[INFO] [stdout]     |
[INFO] [stdout] 823 |                     Item::Prop(prop) => todo!(),
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]    --> src/area.rs:545:13
[INFO] [stdout]     |
[INFO] [stdout] 545 |         let then = Instant::now();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]    --> src/player.rs:229:28
[INFO] [stdout]     |
[INFO] [stdout] 229 |     pub fn draw_hud(&self, textures: &TextureLoader) {
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minimum_camera_height`
[INFO] [stdout]    --> src/player.rs:310:99
[INFO] [stdout]     |
[INFO] [stdout] 310 | ...a_width: f32, minimum_camera_height: f32, space: &Space, average_enemy_pos: Vector2<f32>, max_camera_y: f32) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minimum_camera_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distance_y`
[INFO] [stdout]    --> src/player.rs:316:13
[INFO] [stdout]     |
[INFO] [stdout] 316 |         let distance_y = (our_player_pos.translation.y - average_enemy_pos.y).abs();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distance_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/player.rs:383:44
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub fn handle_bullet_impact(&mut self, space: &Space, bullet_impact: BulletImpactData) {
[INFO] [stdout]     |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bullet_impact`
[INFO] [stdout]    --> src/player.rs:383:59
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub fn handle_bullet_impact(&mut self, space: &Space, bullet_impact: BulletImpactData) {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bullet_impact`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/player.rs:424:13
[INFO] [stdout]     |
[INFO] [stdout] 424 |         let mut inventory = Inventory::new();
[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: `body_handle`
[INFO] [stdout]    --> src/player.rs:422:13
[INFO] [stdout]     |
[INFO] [stdout] 422 |         let body_handle = body.body_handle.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_body_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/player.rs:469:98
[INFO] [stdout]     |
[INFO] [stdout] 469 |     pub fn change_active_inventory_slot(&mut self, ctx: &mut ClientTickContext, area_id: AreaId, space: &mut Space) {
[INFO] [stdout]     |                                                                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dropped_items`
[INFO] [stdout]    --> src/player.rs:533:9
[INFO] [stdout]     |
[INFO] [stdout] 533 |         dropped_items: &mut Vec<DroppedItem>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dropped_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop`
[INFO] [stdout]    --> src/player.rs:550:24
[INFO] [stdout]     |
[INFO] [stdout] 550 |             Item::Prop(prop) => {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/player.rs:598:50
[INFO] [stdout]     |
[INFO] [stdout] 598 |     pub fn control(&mut self, space: &mut 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: `prop`
[INFO] [stdout]    --> src/player.rs:651:36
[INFO] [stdout]     |
[INFO] [stdout] 651 |                         Item::Prop(prop) => {},
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_rect`
[INFO] [stdout]    --> src/player.rs:873:64
[INFO] [stdout]     |
[INFO] [stdout] 873 |     pub fn angle_weapon_to_mouse(&mut self, space: &mut Space, camera_rect: &Rect) {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_rect`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop`
[INFO] [stdout]    --> src/player.rs:877:28
[INFO] [stdout]     |
[INFO] [stdout] 877 |                 Item::Prop(prop) => {return;},
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop_pos`
[INFO] [stdout]    --> src/computer.rs:471:13
[INFO] [stdout]     |
[INFO] [stdout] 471 |         let prop_pos = space.rigid_body_set.get(self.prop.rigid_body_handle).unwrap().position();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prop_pos`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `font`
[INFO] [stdout]    --> src/computer.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let font = fonts.get(PathBuf::from("assets/fonts/CutePixel.ttf"));
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_font`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiles`
[INFO] [stdout]    --> src/player.rs:794:156
[INFO] [stdout]     |
[INFO] [stdout] 794 | ...ntLoader, camera_rect: &Rect, tiles: &Vec<Vec<Option<Tile>>>) {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop`
[INFO] [stdout]    --> src/player.rs:823:32
[INFO] [stdout]     |
[INFO] [stdout] 823 |                     Item::Prop(prop) => todo!(),
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then`
[INFO] [stdout]    --> src/area.rs:545:13
[INFO] [stdout]     |
[INFO] [stdout] 545 |         let then = Instant::now();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_then`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/prop.rs:50:50
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn despawn(&mut self, space: &mut 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: `prefabs`
[INFO] [stdout]    --> src/prop.rs:152:85
[INFO] [stdout]     |
[INFO] [stdout] 152 | ... size: f32, draw_pos: Vec2, prefabs: &Prefabs, color: Option<Color>, rotation: f32) {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefabs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefabs`
[INFO] [stdout]    --> src/prop.rs:156:53
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub fn get_preview_resolution(&self, size: f32, prefabs: &Prefabs, textures: &TextureLoader) -> Vec2 {
[INFO] [stdout]     |                                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefabs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/prop.rs:246:35
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn server_tick(&mut self, space: &mut Space, area_id: AreaId, server_io: &mut ServerIO) {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_id`
[INFO] [stdout]    --> src/prop.rs:246:54
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn server_tick(&mut self, space: &mut Space, area_id: AreaId, server_io: &mut ServerIO) {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_io`
[INFO] [stdout]    --> src/prop.rs:246:71
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn server_tick(&mut self, space: &mut Space, area_id: AreaId, server_io: &mut ServerIO) {
[INFO] [stdout]     |                                                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dissolved_pixels`
[INFO] [stdout]    --> src/prop.rs:370:99
[INFO] [stdout]     |
[INFO] [stdout] 370 | ..., area_id: AreaId, dissolved_pixels: &mut Vec<DissolvedPixel>) {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dissolved_pixels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]    --> src/player.rs:229:28
[INFO] [stdout]     |
[INFO] [stdout] 229 |     pub fn draw_hud(&self, textures: &TextureLoader) {
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minimum_camera_height`
[INFO] [stdout]    --> src/player.rs:310:99
[INFO] [stdout]     |
[INFO] [stdout] 310 | ...a_width: f32, minimum_camera_height: f32, space: &Space, average_enemy_pos: Vector2<f32>, max_camera_y: f32) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minimum_camera_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distance_y`
[INFO] [stdout]    --> src/player.rs:316:13
[INFO] [stdout]     |
[INFO] [stdout] 316 |         let distance_y = (our_player_pos.translation.y - average_enemy_pos.y).abs();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distance_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/player.rs:383:44
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub fn handle_bullet_impact(&mut self, space: &Space, bullet_impact: BulletImpactData) {
[INFO] [stdout]     |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bullet_impact`
[INFO] [stdout]    --> src/player.rs:383:59
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub fn handle_bullet_impact(&mut self, space: &Space, bullet_impact: BulletImpactData) {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bullet_impact`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/player.rs:424:13
[INFO] [stdout]     |
[INFO] [stdout] 424 |         let mut inventory = Inventory::new();
[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: `body_handle`
[INFO] [stdout]    --> src/player.rs:422:13
[INFO] [stdout]     |
[INFO] [stdout] 422 |         let body_handle = body.body_handle.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_body_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/player.rs:469:98
[INFO] [stdout]     |
[INFO] [stdout] 469 |     pub fn change_active_inventory_slot(&mut self, ctx: &mut ClientTickContext, area_id: AreaId, space: &mut Space) {
[INFO] [stdout]     |                                                                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dropped_items`
[INFO] [stdout]    --> src/player.rs:533:9
[INFO] [stdout]     |
[INFO] [stdout] 533 |         dropped_items: &mut Vec<DroppedItem>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dropped_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop`
[INFO] [stdout]    --> src/player.rs:550:24
[INFO] [stdout]     |
[INFO] [stdout] 550 |             Item::Prop(prop) => {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/player.rs:598:50
[INFO] [stdout]     |
[INFO] [stdout] 598 |     pub fn control(&mut self, space: &mut 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: `prop`
[INFO] [stdout]    --> src/player.rs:651:36
[INFO] [stdout]     |
[INFO] [stdout] 651 |                         Item::Prop(prop) => {},
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_rect`
[INFO] [stdout]    --> src/player.rs:873:64
[INFO] [stdout]     |
[INFO] [stdout] 873 |     pub fn angle_weapon_to_mouse(&mut self, space: &mut Space, camera_rect: &Rect) {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_rect`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop`
[INFO] [stdout]    --> src/player.rs:877:28
[INFO] [stdout]     |
[INFO] [stdout] 877 |                 Item::Prop(prop) => {return;},
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/body_part.rs:69:34
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn owner_tick(&mut self, ctx: &mut ClientTickContext, space: &mut 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/body_part.rs:69:63
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn owner_tick(&mut self, ctx: &mut ClientTickContext, space: &mut Space) {
[INFO] [stdout]    |                                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collider_pos`
[INFO] [stdout]    --> src/enemy.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let collider_pos = space.collider_set.get(collider_handle).unwrap().position();
[INFO] [stdout]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collider_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weapon`
[INFO] [stdout]    --> src/enemy.rs:204:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |         let weapon = if let Some(weapon) = &mut self.weapon {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_weapon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_id`
[INFO] [stdout]    --> src/enemy.rs:373:32
[INFO] [stdout]     |
[INFO] [stdout] 373 |             WeaponOwner::Enemy(enemy_id) => return,
[INFO] [stdout]     |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_id`
[INFO] [stdout]    --> src/enemy.rs:374:33
[INFO] [stdout]     |
[INFO] [stdout] 374 |             WeaponOwner::Player(player_id) => {},
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shotgun`
[INFO] [stdout]    --> src/enemy.rs:467:37
[INFO] [stdout]     |
[INFO] [stdout] 467 |                 WeaponType::Shotgun(shotgun) => if self.last_fired_weapon.elapsed().as_secs_f32() < 1. {
[INFO] [stdout]     |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_shotgun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmg`
[INFO] [stdout]    --> src/enemy.rs:470:33
[INFO] [stdout]     |
[INFO] [stdout] 470 |                 WeaponType::LMG(lmg) => if self.last_fired_weapon.elapsed().as_secs_f32() < 0.01 {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_lmg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lowest_distance` is never read
[INFO] [stdout]    --> src/enemy.rs:744:21
[INFO] [stdout]     |
[INFO] [stdout] 744 |                     lowest_distance = distance;
[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: unused variable: `ctx`
[INFO] [stdout]    --> src/enemy.rs:778:50
[INFO] [stdout]     |
[INFO] [stdout] 778 |     pub fn upright(&mut self, space: &mut 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: `camera_rect`
[INFO] [stdout]   --> src/phone.rs:87:50
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn draw(&self, textures: &TextureLoader, camera_rect: &Rect) {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_rect`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/prop.rs:50:50
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn despawn(&mut self, space: &mut 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: `prop`
[INFO] [stdout]   --> src/computer.rs:28:24
[INFO] [stdout]    |
[INFO] [stdout] 28 |             Item::Prop(prop) => true,
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weapon_type_item`
[INFO] [stdout]   --> src/computer.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 |             Item::Weapon(weapon_type_item) => false,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weapon_type_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefabs`
[INFO] [stdout]   --> src/computer.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn name(&self, prefabs: &Prefabs) -> String {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefabs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefabs`
[INFO] [stdout]    --> src/prop.rs:152:85
[INFO] [stdout]     |
[INFO] [stdout] 152 | ... size: f32, draw_pos: Vec2, prefabs: &Prefabs, color: Option<Color>, rotation: f32) {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefabs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefabs`
[INFO] [stdout]    --> src/prop.rs:156:53
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub fn get_preview_resolution(&self, size: f32, prefabs: &Prefabs, textures: &TextureLoader) -> Vec2 {
[INFO] [stdout]     |                                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefabs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/prop.rs:246:35
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn server_tick(&mut self, space: &mut Space, area_id: AreaId, server_io: &mut ServerIO) {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_id`
[INFO] [stdout]    --> src/prop.rs:246:54
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn server_tick(&mut self, space: &mut Space, area_id: AreaId, server_io: &mut ServerIO) {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_io`
[INFO] [stdout]    --> src/prop.rs:246:71
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn server_tick(&mut self, space: &mut Space, area_id: AreaId, server_io: &mut ServerIO) {
[INFO] [stdout]     |                                                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hovered_button_color`
[INFO] [stdout]    --> src/computer.rs:204:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |         let hovered_button_color = Color::new(0.78, 0.78, 0.78, 0.5);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hovered_button_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dissolved_pixels`
[INFO] [stdout]    --> src/prop.rs:370:99
[INFO] [stdout]     |
[INFO] [stdout] 370 | ..., area_id: AreaId, dissolved_pixels: &mut Vec<DissolvedPixel>) {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dissolved_pixels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/dropped_item.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn owner_tick(&mut self, space: &mut Space) {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefabs`
[INFO] [stdout]   --> src/dropped_item.rs:51:64
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn from_save(save: DroppedItemSave, space: &mut Space, prefabs: &Prefabs) -> Self {
[INFO] [stdout]    |                                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefabs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform_pos`
[INFO] [stdout]    --> src/car.rs:156:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let platform_pos = space.rigid_body_set.get(self.platform_body).unwrap().position().translation.vector;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/fragment.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(space: &mut Space, texture: PathBuf, texture_source: Rect, mass: f32, scale: f32) {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture`
[INFO] [stdout]   --> src/fragment.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(space: &mut Space, texture: PathBuf, texture_source: Rect, mass: f32, scale: f32) {
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture_source`
[INFO] [stdout]   --> src/fragment.rs:17:53
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(space: &mut Space, texture: PathBuf, texture_source: Rect, mass: f32, scale: f32) {
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mass`
[INFO] [stdout]   --> src/fragment.rs:17:75
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(space: &mut Space, texture: PathBuf, texture_source: Rect, mass: f32, scale: f32) {
[INFO] [stdout]    |                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scale`
[INFO] [stdout]   --> src/fragment.rs:17:86
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(space: &mut Space, texture: PathBuf, texture_source: Rect, mass: f32, scale: f32) {
[INFO] [stdout]    |                                                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn from_save(save: WeaponSave, space: &mut Space, player_rigid_body_handle: Option<RigidBodyHandle>) -> Self {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let position = match self.rigid_body {
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `facing`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |         facing: Facing,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_facing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/body_part.rs:69:34
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn owner_tick(&mut self, ctx: &mut ClientTickContext, space: &mut 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/body_part.rs:69:63
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn owner_tick(&mut self, ctx: &mut ClientTickContext, space: &mut Space) {
[INFO] [stdout]    |                                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sound`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:299:17
[INFO] [stdout]     |
[INFO] [stdout] 299 |             let sound = ctx.sounds.get(PathBuf::from("assets\\sounds\\pistol_dry_fire.wav"));
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_sound`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:453:51
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub fn get_bullet_vector_macroquad(&mut self, space: &Space, facing: Facing, innacuracy_factor: f32) {
[INFO] [stdout]     |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `facing`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:453:66
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub fn get_bullet_vector_macroquad(&mut self, space: &Space, facing: Facing, innacuracy_factor: f32) {
[INFO] [stdout]     |                                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_facing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `innacuracy_factor`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:453:82
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub fn get_bullet_vector_macroquad(&mut self, space: &Space, facing: Facing, innacuracy_factor: f32) {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_innacuracy_factor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distance`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:513:21
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 let distance = pos.vector - weapon_pos.translation.vector;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collider_pos`
[INFO] [stdout]    --> src/enemy.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let collider_pos = space.collider_set.get(collider_handle).unwrap().position();
[INFO] [stdout]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collider_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weapon`
[INFO] [stdout]    --> src/enemy.rs:204:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |         let weapon = if let Some(weapon) = &mut self.weapon {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_weapon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_id`
[INFO] [stdout]    --> src/enemy.rs:373:32
[INFO] [stdout]     |
[INFO] [stdout] 373 |             WeaponOwner::Enemy(enemy_id) => return,
[INFO] [stdout]     |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_id`
[INFO] [stdout]    --> src/enemy.rs:374:33
[INFO] [stdout]     |
[INFO] [stdout] 374 |             WeaponOwner::Player(player_id) => {},
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shotgun`
[INFO] [stdout]    --> src/enemy.rs:467:37
[INFO] [stdout]     |
[INFO] [stdout] 467 |                 WeaponType::Shotgun(shotgun) => if self.last_fired_weapon.elapsed().as_secs_f32() < 1. {
[INFO] [stdout]     |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_shotgun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmg`
[INFO] [stdout]    --> src/enemy.rs:470:33
[INFO] [stdout]     |
[INFO] [stdout] 470 |                 WeaponType::LMG(lmg) => if self.last_fired_weapon.elapsed().as_secs_f32() < 0.01 {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_lmg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/weapons/lmg/weapon.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(space: &mut Space, pos: Vector2<f32>, owner: ClientId, player_rigid_body_handle: Option<RigidBodyHandle>, facing: Facing) ...
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/weapons/lmg/weapon.rs:46:35
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(space: &mut Space, pos: Vector2<f32>, owner: ClientId, player_rigid_body_handle: Option<RigidBodyHandle>, facing: Facing) ...
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `facing`
[INFO] [stdout]   --> src/weapons/lmg/weapon.rs:46:122
[INFO] [stdout]    |
[INFO] [stdout] 46 | ...le: Option<RigidBodyHandle>, facing: Facing) -> Self {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_facing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lowest_distance` is never read
[INFO] [stdout]    --> src/enemy.rs:744:21
[INFO] [stdout]     |
[INFO] [stdout] 744 |                     lowest_distance = distance;
[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: unused variable: `ctx`
[INFO] [stdout]    --> src/enemy.rs:778:50
[INFO] [stdout]     |
[INFO] [stdout] 778 |     pub fn upright(&mut self, space: &mut 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: `pos`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(space: &mut Space, pos: Vector2<f32>, owner: ClientId, player_rigid_body_handle: Option<RigidBodyHandle>) -> Self {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `owner`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:18:54
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(space: &mut Space, pos: Vector2<f32>, owner: ClientId, player_rigid_body_handle: Option<RigidBodyHandle>) -> Self {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_owner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:48:24
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn save(&self, space: &Space) -> SledgeSave {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:55:45
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub async fn draw(&self, space: &Space, textures: &mut TextureLoader, facing: Facing) {
[INFO] [stdout]    |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `facing`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:55:75
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub async fn draw(&self, space: &Space, textures: &mut TextureLoader, facing: Facing) {
[INFO] [stdout]    |                                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_facing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:68:22
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn from_save(save: LMGSave, space: &mut Space, player_rigid_body_handle: Option<RigidBodyHandle>, owner: ClientId) -> Self {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_save`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmg`
[INFO] [stdout]   --> src/weapons/weapon_type.rs:33:29
[INFO] [stdout]    |
[INFO] [stdout] 33 |             WeaponType::LMG(lmg) => "LMG".to_string()
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_lmg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmg`
[INFO] [stdout]   --> src/weapons/weapon_type.rs:55:29
[INFO] [stdout]    |
[INFO] [stdout] 55 |             WeaponType::LMG(lmg) => {}
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_lmg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmg`
[INFO] [stdout]   --> src/weapons/weapon_type.rs:62:29
[INFO] [stdout]    |
[INFO] [stdout] 62 |             WeaponType::LMG(lmg) => Vec2::ZERO 
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_lmg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body_body_pos`
[INFO] [stdout]   --> src/lib.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let body_body_pos = Vec2::new(body_body.translation().x, body_body.translation().y);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_body_body_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/lib.rs:367:50
[INFO] [stdout]     |
[INFO] [stdout] 367 |                         ewebsock::WsEvent::Error(error) => {
[INFO] [stdout]     |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_rect`
[INFO] [stdout]   --> src/phone.rs:87:50
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn draw(&self, textures: &TextureLoader, camera_rect: &Rect) {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_rect`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop`
[INFO] [stdout]   --> src/computer.rs:28:24
[INFO] [stdout]    |
[INFO] [stdout] 28 |             Item::Prop(prop) => true,
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weapon_type_item`
[INFO] [stdout]   --> src/computer.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 |             Item::Weapon(weapon_type_item) => false,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weapon_type_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefabs`
[INFO] [stdout]   --> src/computer.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn name(&self, prefabs: &Prefabs) -> String {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefabs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hovered_button_color`
[INFO] [stdout]    --> src/computer.rs:204:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |         let hovered_button_color = Color::new(0.78, 0.78, 0.78, 0.5);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hovered_button_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_nearest` is never used
[INFO] [stdout]    --> src/lib.rs:655:4
[INFO] [stdout]     |
[INFO] [stdout] 655 | 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: fields `junk`, `last_changed_inventory_slot`, and `last_autofire` are never read
[INFO] [stdout]   --> src/player.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct Player {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     junk: Vec<ItemSlot>, // you can hold unlimited junk
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 74 |     last_changed_inventory_slot: web_time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     last_autofire: web_time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scale` is never read
[INFO] [stdout]   --> src/body_part.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct BodyPart {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     scale: u16, 
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BodyPart` has a derived impl for the trait `Debug`, but this is 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,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DroppedItem` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `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: multiple fields are never read
[INFO] [stdout]   --> src/car.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Car {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     left_wheel_body: RigidBodyHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     left_wheel_collider: ColliderHandle,
[INFO] [stdout] 13 |     left_wheel_revolute_joint: ImpulseJointHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     left_axle_body: RigidBodyHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     left_axle_collider: ColliderHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     left_axle_prismatic_joint: ImpulseJointHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     right_axle_body: RigidBodyHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     right_axle_collider: ColliderHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     right_axle_prismatic_joint: ImpulseJointHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     right_wheel_body: RigidBodyHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     right_wheel_collider: ColliderHandle,
[INFO] [stdout] 27 |     right_wheel_revolute_joint: ImpulseJointHandle,
[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: unused variable: `space`
[INFO] [stdout]   --> src/dropped_item.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn owner_tick(&mut self, space: &mut Space) {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefabs`
[INFO] [stdout]   --> src/dropped_item.rs:51:64
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn from_save(save: DroppedItemSave, space: &mut Space, prefabs: &Prefabs) -> Self {
[INFO] [stdout]    |                                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefabs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform_pos`
[INFO] [stdout]    --> src/car.rs:156:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let platform_pos = space.rigid_body_set.get(self.platform_body).unwrap().position().translation.vector;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/fragment.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(space: &mut Space, texture: PathBuf, texture_source: Rect, mass: f32, scale: f32) {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture`
[INFO] [stdout]   --> src/fragment.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(space: &mut Space, texture: PathBuf, texture_source: Rect, mass: f32, scale: f32) {
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture_source`
[INFO] [stdout]   --> src/fragment.rs:17:53
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(space: &mut Space, texture: PathBuf, texture_source: Rect, mass: f32, scale: f32) {
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mass`
[INFO] [stdout]   --> src/fragment.rs:17:75
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(space: &mut Space, texture: PathBuf, texture_source: Rect, mass: f32, scale: f32) {
[INFO] [stdout]    |                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scale`
[INFO] [stdout]   --> src/fragment.rs:17:86
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(space: &mut Space, texture: PathBuf, texture_source: Rect, mass: f32, scale: f32) {
[INFO] [stdout]    |                                                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn from_save(save: WeaponSave, space: &mut Space, player_rigid_body_handle: Option<RigidBodyHandle>) -> Self {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let position = match self.rigid_body {
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `facing`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |         facing: Facing,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_facing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sound`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:299:17
[INFO] [stdout]     |
[INFO] [stdout] 299 |             let sound = ctx.sounds.get(PathBuf::from("assets\\sounds\\pistol_dry_fire.wav"));
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_sound`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:453:51
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub fn get_bullet_vector_macroquad(&mut self, space: &Space, facing: Facing, innacuracy_factor: f32) {
[INFO] [stdout]     |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `facing`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:453:66
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub fn get_bullet_vector_macroquad(&mut self, space: &Space, facing: Facing, innacuracy_factor: f32) {
[INFO] [stdout]     |                                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_facing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `innacuracy_factor`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:453:82
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub fn get_bullet_vector_macroquad(&mut self, space: &Space, facing: Facing, innacuracy_factor: f32) {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_innacuracy_factor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distance`
[INFO] [stdout]    --> src/weapons/weapon/weapon.rs:513:21
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 let distance = pos.vector - weapon_pos.translation.vector;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/weapons/lmg/weapon.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(space: &mut Space, pos: Vector2<f32>, owner: ClientId, player_rigid_body_handle: Option<RigidBodyHandle>, facing: Facing) ...
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/weapons/lmg/weapon.rs:46:35
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(space: &mut Space, pos: Vector2<f32>, owner: ClientId, player_rigid_body_handle: Option<RigidBodyHandle>, facing: Facing) ...
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `facing`
[INFO] [stdout]   --> src/weapons/lmg/weapon.rs:46:122
[INFO] [stdout]    |
[INFO] [stdout] 46 | ...le: Option<RigidBodyHandle>, facing: Facing) -> Self {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_facing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(space: &mut Space, pos: Vector2<f32>, owner: ClientId, player_rigid_body_handle: Option<RigidBodyHandle>) -> Self {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `owner`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:18:54
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(space: &mut Space, pos: Vector2<f32>, owner: ClientId, player_rigid_body_handle: Option<RigidBodyHandle>) -> Self {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_owner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `space`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:48:24
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn save(&self, space: &Space) -> SledgeSave {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:55:45
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub async fn draw(&self, space: &Space, textures: &mut TextureLoader, facing: Facing) {
[INFO] [stdout]    |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `facing`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:55:75
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub async fn draw(&self, space: &Space, textures: &mut TextureLoader, facing: Facing) {
[INFO] [stdout]    |                                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_facing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `save`
[INFO] [stdout]   --> src/weapons/sledge/weapon.rs:68:22
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn from_save(save: LMGSave, space: &mut Space, player_rigid_body_handle: Option<RigidBodyHandle>, owner: ClientId) -> Self {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_save`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmg`
[INFO] [stdout]   --> src/weapons/weapon_type.rs:33:29
[INFO] [stdout]    |
[INFO] [stdout] 33 |             WeaponType::LMG(lmg) => "LMG".to_string()
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_lmg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmg`
[INFO] [stdout]   --> src/weapons/weapon_type.rs:55:29
[INFO] [stdout]    |
[INFO] [stdout] 55 |             WeaponType::LMG(lmg) => {}
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_lmg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmg`
[INFO] [stdout]   --> src/weapons/weapon_type.rs:62:29
[INFO] [stdout]    |
[INFO] [stdout] 62 |             WeaponType::LMG(lmg) => Vec2::ZERO 
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_lmg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body_body_pos`
[INFO] [stdout]   --> src/lib.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let body_body_pos = Vec2::new(body_body.translation().x, body_body.translation().y);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_body_body_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/lib.rs:367:50
[INFO] [stdout]     |
[INFO] [stdout] 367 |                         ewebsock::WsEvent::Error(error) => {
[INFO] [stdout]     |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_nearest` is never used
[INFO] [stdout]    --> src/lib.rs:655:4
[INFO] [stdout]     |
[INFO] [stdout] 655 | 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: fields `junk`, `last_changed_inventory_slot`, and `last_autofire` are never read
[INFO] [stdout]   --> src/player.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct Player {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     junk: Vec<ItemSlot>, // you can hold unlimited junk
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 74 |     last_changed_inventory_slot: web_time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     last_autofire: web_time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scale` is never read
[INFO] [stdout]   --> src/body_part.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct BodyPart {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     scale: u16, 
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BodyPart` has a derived impl for the trait `Debug`, but this is 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,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DroppedItem` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `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: multiple fields are never read
[INFO] [stdout]   --> src/car.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Car {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     left_wheel_body: RigidBodyHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     left_wheel_collider: ColliderHandle,
[INFO] [stdout] 13 |     left_wheel_revolute_joint: ImpulseJointHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     left_axle_body: RigidBodyHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     left_axle_collider: ColliderHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     left_axle_prismatic_joint: ImpulseJointHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     right_axle_body: RigidBodyHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     right_axle_collider: ColliderHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     right_axle_prismatic_joint: ImpulseJointHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     right_wheel_body: RigidBodyHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     right_wheel_collider: ColliderHandle,
[INFO] [stdout] 27 |     right_wheel_revolute_joint: ImpulseJointHandle,
[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: unused import: `time::Duration`
[INFO] [stdout]  --> src/server/server.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs::read_to_string, 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: `time::Instant`
[INFO] [stdout]  --> src/editor/editor.rs:1:98
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, fs::{self, read_to_string}, path::{Path, PathBuf}, str::FromStr, time::Instant};
[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: `TileId` and `is_key_released_exclusive`
[INFO] [stdout]  --> src/editor/editor.rs:3:207
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...r, is_key_released_exclusive, macroquad_to_rapier, mouse_world_pos, prop::{Prop, PropId, PropSave}, rapier_mouse_world_pos, rapier_to_macroquad, space::Space, texture_loader::TextureLoader, tile::{Tile, TileId, T...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ldtk2::When`
[INFO] [stdout]  --> src/editor/editor.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ldtk2::When;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color`, `GRAY`, and `self`
[INFO] [stdout]  --> src/editor/editor.rs:5:77
[INFO] [stdout]   |
[INFO] [stdout] 5 | use macroquad::{camera::{Camera2D, set_camera, set_default_camera}, color::{Color, GRAY, GREEN, RED, WHITE}, input::{self, KeyCode, Mouse...
[INFO] [stdout]   |                                                                             ^^^^^  ^^^^                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Isometry2` and `Isometry`
[INFO] [stdout]  --> src/editor/editor.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nalgebra::{vector, Isometry, Isometry2, Vector2};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parry::shape::Cuboid`
[INFO] [stdout]  --> src/editor/editor.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rapier2d::{math::Point, parry::shape::Cuboid, prelude::{ColliderBuilder, PointQuery, RigidBodyBuilder}};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `de`
[INFO] [stdout]  --> src/editor/editor.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{de, Deserialize, Serialize};
[INFO] [stdout]   |             ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `dhat-heap`
[INFO] [stdout]   --> src/client/main.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 |     #[cfg(feature = "dhat-heap")]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `dhat-heap` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server/server.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut forest = Area::from_save(forest_save, None, &prefabs);
[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: `client_id`
[INFO] [stdout]   --> src/server/server.rs:91:50
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn handle_disconnected_client(&mut self, client_id: ClientId) {
[INFO] [stdout]    |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_id`
[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/server/server.rs:142:45
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 NetworkPacket::MasterUpdate(update) => {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_update`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ping`
[INFO] [stdout]    --> src/server/server.rs:145:37
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 NetworkPacket::Ping(ping) => {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_ping`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> src/server/server.rs:147:25
[INFO] [stdout]     |
[INFO] [stdout] 147 |                     let client = self.network_io.clients.get_mut(&client_id).unwrap();
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_pos`
[INFO] [stdout]    --> src/server/server.rs:313:25
[INFO] [stdout]     |
[INFO] [stdout] 313 |                     let current_pos = area.space.rigid_body_set.get(player.body.body_handle).unwrap().position();
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `megabits`
[INFO] [stdout]    --> src/server/server.rs:603:13
[INFO] [stdout]     |
[INFO] [stdout] 603 |         let megabits = self.total_bits_sent as f32 / 1000000 as f32;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_megabits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time::Instant`
[INFO] [stdout]  --> src/editor/editor.rs:1:98
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, fs::{self, read_to_string}, path::{Path, PathBuf}, str::FromStr, time::Instant};
[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: `TileId` and `is_key_released_exclusive`
[INFO] [stdout]  --> src/editor/editor.rs:3:207
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...r, is_key_released_exclusive, macroquad_to_rapier, mouse_world_pos, prop::{Prop, PropId, PropSave}, rapier_mouse_world_pos, rapier_to_macroquad, space::Space, texture_loader::TextureLoader, tile::{Tile, TileId, T...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ldtk2::When`
[INFO] [stdout]  --> src/editor/editor.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ldtk2::When;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color`, `GRAY`, and `self`
[INFO] [stdout]  --> src/editor/editor.rs:5:77
[INFO] [stdout]   |
[INFO] [stdout] 5 | use macroquad::{camera::{Camera2D, set_camera, set_default_camera}, color::{Color, GRAY, GREEN, RED, WHITE}, input::{self, KeyCode, Mouse...
[INFO] [stdout]   |                                                                             ^^^^^  ^^^^                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Isometry2` and `Isometry`
[INFO] [stdout]  --> src/editor/editor.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nalgebra::{vector, Isometry, Isometry2, Vector2};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parry::shape::Cuboid`
[INFO] [stdout]  --> src/editor/editor.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rapier2d::{math::Point, parry::shape::Cuboid, prelude::{ColliderBuilder, PointQuery, RigidBodyBuilder}};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `de`
[INFO] [stdout]  --> src/editor/editor.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{de, Deserialize, Serialize};
[INFO] [stdout]   |             ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time::Duration`
[INFO] [stdout]  --> src/server/server.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs::read_to_string, 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: variable does not need to be mutable
[INFO] [stdout]   --> src/server/server.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut forest = Area::from_save(forest_save, None, &prefabs);
[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: `camera_rect`
[INFO] [stdout]    --> src/editor/editor.rs:340:46
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn spawn(&mut self, area: &mut Area, camera_rect: &Rect, cursor: Vec2, rapier_cursor: Vec2) {
[INFO] [stdout]     |                                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_rect`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_rect`
[INFO] [stdout]    --> src/editor/editor.rs:394:35
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub async fn draw_menu(&self, camera_rect: &Rect, textures: &mut TextureLoader, cursor: Vec2) {
[INFO] [stdout]     |                                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_rect`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]    --> src/editor/editor.rs:394:55
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub async fn draw_menu(&self, camera_rect: &Rect, textures: &mut TextureLoader, cursor: Vec2) {
[INFO] [stdout]     |                                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_id`
[INFO] [stdout]   --> src/server/server.rs:91:50
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn handle_disconnected_client(&mut self, client_id: ClientId) {
[INFO] [stdout]    |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]    --> src/editor/editor.rs:582:21
[INFO] [stdout]     |
[INFO] [stdout] 582 |         if let Some(tile) = self.area.get_tile_at_position_mut(Vector2::new(rapier_mouse_pos.x - 25., rapier_mouse_pos.y - 25.)) {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]    --> src/editor/editor.rs:625:29
[INFO] [stdout]     |
[INFO] [stdout] 625 |                 if let Some(tile) = tile {
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `dhat-heap`
[INFO] [stdout]   --> src/client/main.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 |     #[cfg(feature = "dhat-heap")]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `dhat-heap` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_pos`
[INFO] [stdout]    --> src/client/client.rs:332:25
[INFO] [stdout]     |
[INFO] [stdout] 332 |                     let player_pos = player_body.position();
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[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/server/server.rs:142:45
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 NetworkPacket::MasterUpdate(update) => {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_update`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ping`
[INFO] [stdout]    --> src/server/server.rs:145:37
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 NetworkPacket::Ping(ping) => {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_ping`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> src/server/server.rs:147:25
[INFO] [stdout]     |
[INFO] [stdout] 147 |                     let client = self.network_io.clients.get_mut(&client_id).unwrap();
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_pos`
[INFO] [stdout]    --> src/server/server.rs:313:25
[INFO] [stdout]     |
[INFO] [stdout] 313 |                     let current_pos = area.space.rigid_body_set.get(player.body.body_handle).unwrap().position();
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `spawned` and `test_button` are never read
[INFO] [stdout]   --> src/client/client.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct Client {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 95 |     spawned: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 96 |     fonts: FontLoader,
[INFO] [stdout] 97 |     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:603:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl Client {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 603 |     pub fn update_camera_to_match_screen_size(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `megabits`
[INFO] [stdout]    --> src/server/server.rs:603:13
[INFO] [stdout]     |
[INFO] [stdout] 603 |         let megabits = self.total_bits_sent as f32 / 1000000 as f32;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_megabits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/editor/main.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let x = serde_json::to_string_pretty(&x).unwrap();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_cursor_move` is never read
[INFO] [stdout]    --> src/editor/editor.rs:441:5
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub struct AreaEditor {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 441 |     last_cursor_move: web_time::Instant,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_nearest_50` is never used
[INFO] [stdout]    --> src/editor/editor.rs:554:4
[INFO] [stdout]     |
[INFO] [stdout] 554 | fn round_to_nearest_50(n: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_rect`
[INFO] [stdout]    --> src/editor/editor.rs:340:46
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn spawn(&mut self, area: &mut Area, camera_rect: &Rect, cursor: Vec2, rapier_cursor: Vec2) {
[INFO] [stdout]     |                                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_rect`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_rect`
[INFO] [stdout]    --> src/editor/editor.rs:394:35
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub async fn draw_menu(&self, camera_rect: &Rect, textures: &mut TextureLoader, cursor: Vec2) {
[INFO] [stdout]     |                                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_rect`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `textures`
[INFO] [stdout]    --> src/editor/editor.rs:394:55
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub async fn draw_menu(&self, camera_rect: &Rect, textures: &mut TextureLoader, cursor: Vec2) {
[INFO] [stdout]     |                                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_textures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]    --> src/editor/editor.rs:582:21
[INFO] [stdout]     |
[INFO] [stdout] 582 |         if let Some(tile) = self.area.get_tile_at_position_mut(Vector2::new(rapier_mouse_pos.x - 25., rapier_mouse_pos.y - 25.)) {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]    --> src/editor/editor.rs:625:29
[INFO] [stdout]     |
[INFO] [stdout] 625 |                 if let Some(tile) = tile {
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/editor/main.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let x = serde_json::to_string_pretty(&x).unwrap();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_cursor_move` is never read
[INFO] [stdout]    --> src/editor/editor.rs:441:5
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub struct AreaEditor {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 441 |     last_cursor_move: web_time::Instant,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_nearest_50` is never used
[INFO] [stdout]    --> src/editor/editor.rs:554:4
[INFO] [stdout]     |
[INFO] [stdout] 554 | fn round_to_nearest_50(n: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_pos`
[INFO] [stdout]    --> src/client/client.rs:332:25
[INFO] [stdout]     |
[INFO] [stdout] 332 |                     let player_pos = player_body.position();
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `spawned` and `test_button` are never read
[INFO] [stdout]   --> src/client/client.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct Client {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 95 |     spawned: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 96 |     fonts: FontLoader,
[INFO] [stdout] 97 |     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:603:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl Client {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 603 |     pub fn update_camera_to_match_screen_size(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.92s
[INFO] running `Command { std: "docker" "inspect" "15d149798d635fb620d7f8b65aab377bba74f9992197ff4b020f379b4caeb79f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "15d149798d635fb620d7f8b65aab377bba74f9992197ff4b020f379b4caeb79f", kill_on_drop: false }`
[INFO] [stdout] 15d149798d635fb620d7f8b65aab377bba74f9992197ff4b020f379b4caeb79f
