[INFO] cloning repository https://github.com/Ashokgorantla935/Emergence
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ashokgorantla935/Emergence" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAshokgorantla935%2FEmergence", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAshokgorantla935%2FEmergence'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2c24cb2d9d39a9642d8a2387350a9f8cf81473be
[INFO] checking Ashokgorantla935/Emergence against try#50f413885985a8b0a0b6ca0766a0aedd45304953 for pr-155657
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAshokgorantla935%2FEmergence" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  90% (6782/7524)
Updating files:  91% (6847/7524)
Updating files:  92% (6923/7524)
Updating files:  93% (6998/7524)
Updating files:  94% (7073/7524)
Updating files:  95% (7148/7524)
Updating files:  96% (7224/7524)
Updating files:  97% (7299/7524)
Updating files:  98% (7374/7524)
Updating files:  99% (7449/7524)
Updating files: 100% (7524/7524)
Updating files: 100% (7524/7524), done.
[INFO] started tweaking git repo https://github.com/Ashokgorantla935/Emergence
[INFO] finished tweaking git repo https://github.com/Ashokgorantla935/Emergence
[INFO] tweaked toml for git repo https://github.com/Ashokgorantla935/Emergence written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Ashokgorantla935/Emergence on toolchain 50f413885985a8b0a0b6ca0766a0aedd45304953
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Ashokgorantla935/Emergence 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" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4769ea0c4e1a7e932c8a22b64a47cba8605d3d9e2b6e81a43b4881847dffbd0a
[INFO] running `Command { std: "docker" "start" "-a" "4769ea0c4e1a7e932c8a22b64a47cba8605d3d9e2b6e81a43b4881847dffbd0a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4769ea0c4e1a7e932c8a22b64a47cba8605d3d9e2b6e81a43b4881847dffbd0a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4769ea0c4e1a7e932c8a22b64a47cba8605d3d9e2b6e81a43b4881847dffbd0a", kill_on_drop: false }`
[INFO] [stdout] 4769ea0c4e1a7e932c8a22b64a47cba8605d3d9e2b6e81a43b4881847dffbd0a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 37c41fb13bf741cd2560de1df3bc1aa777d1372b22e81f34cc03d5fb15c88172
[INFO] running `Command { std: "docker" "start" "-a" "37c41fb13bf741cd2560de1df3bc1aa777d1372b22e81f34cc03d5fb15c88172", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling wayland-sys v0.31.11
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling wayland-client v0.31.14
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling quick-xml v0.39.2
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking xcursor v0.3.10
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]    Compiling wayland-backend v0.3.15
[INFO] [stderr]    Compiling wayland-scanner v0.31.10
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]    Compiling naga v24.0.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]    Compiling ash v0.38.0+1.3.281
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking emath v0.31.1
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]    Compiling wgpu-hal v24.0.4
[INFO] [stderr]    Compiling bitcode_derive v0.6.9
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]    Compiling smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking noise v0.9.0
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]     Checking ecolor v0.31.1
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking bitcode v0.6.9
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking calloop v0.14.4
[INFO] [stderr]     Checking ordered-float v4.6.0
[INFO] [stderr]     Checking wgpu-types v24.0.0
[INFO] [stderr]    Compiling wgpu-core v24.0.5
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking pxfm v0.1.28
[INFO] [stderr]    Compiling smithay-client-toolkit v0.20.0
[INFO] [stderr]     Checking glow v0.16.0
[INFO] [stderr]     Checking epaint_default_fonts v0.31.1
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking epaint v0.31.1
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking wayland-protocols v0.32.12
[INFO] [stderr]     Checking wayland-cursor v0.31.14
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]    Compiling wgpu v24.0.5
[INFO] [stderr]     Checking extended v0.1.0
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking symphonia-format-riff v0.5.5
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking egui v0.31.1
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking emergence-core v0.1.0 (/opt/rustwide/workdir/crates/emergence-core)
[INFO] [stderr]     Checking symphonia-codec-pcm v0.5.5
[INFO] [stderr]     Checking symphonia-codec-adpcm v0.5.5
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stdout] warning: unused import: `super::map::MapId`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:648:9
[INFO] [stdout]     |
[INFO] [stdout] 648 |     use super::map::MapId;
[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: `read_local_signals`
[INFO] [stdout]   --> crates/emergence-core/src/sim/tick.rs:10:72
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::being::actions::{compute_neural_output, infer_behavior_tag, read_local_signals};
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::being::lifecycle::generate_initial_personality`
[INFO] [stdout]    --> crates/emergence-core/src/save.rs:434:13
[INFO] [stdout]     |
[INFO] [stdout] 434 |         use crate::being::lifecycle::generate_initial_personality;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `god_action::GodActionQueue`
[INFO] [stdout]   --> crates/emergence-core/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use god_action::GodActionQueue;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking rustc-hash v2.1.2
[INFO] [stderr]     Checking type-map v0.5.1
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]     Checking webbrowser v1.2.0
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking rodio v0.19.0
[INFO] [stderr]     Checking pollster v0.4.0
[INFO] [stdout] warning: unused variable: `water_placement`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:221:27
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let (biome_rules, water_placement) = if let Some(ref def) = map_def_opt {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_water_placement`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temperature`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:910:5
[INFO] [stdout]     |
[INFO] [stdout] 910 |     temperature: &[f32],
[INFO] [stdout]     |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temperature`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `equator`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:918:9
[INFO] [stdout]     |
[INFO] [stdout] 918 |     let equator = equator_y * h as f32;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_equator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elevation`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:950:5
[INFO] [stdout]     |
[INFO] [stdout] 950 |     elevation: &[f32],
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elevation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain_gen.rs:194:19
[INFO] [stdout]     |
[INFO] [stdout] 194 |     for &(cx, cy, radius) in centers.iter().filter(|&&(_, _, r)| r > 18.0) {
[INFO] [stdout]     |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elevation`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain_gen.rs:839:5
[INFO] [stdout]     |
[INFO] [stdout] 839 |     elevation: &[f32],
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elevation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_water`
[INFO] [stdout]   --> crates/emergence-core/src/being/fauna_boids.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let is_water = terrain.water[new_idx];
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_water`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::map::MapId`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:648:9
[INFO] [stdout]     |
[INFO] [stdout] 648 |     use super::map::MapId;
[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: `Biome`
[INFO] [stdout]     --> crates/emergence-core/src/world/terrain_gen.rs:1065:37
[INFO] [stdout]      |
[INFO] [stdout] 1065 |         use crate::world::terrain::{Biome, Terrain};
[INFO] [stdout]      |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `read_local_signals`
[INFO] [stdout]   --> crates/emergence-core/src/sim/tick.rs:10:72
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::being::actions::{compute_neural_output, infer_behavior_tag, read_local_signals};
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::being::lifecycle::generate_initial_personality`
[INFO] [stdout]    --> crates/emergence-core/src/save.rs:434:13
[INFO] [stdout]     |
[INFO] [stdout] 434 |         use crate::being::lifecycle::generate_initial_personality;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `god_action::GodActionQueue`
[INFO] [stdout]   --> crates/emergence-core/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use god_action::GodActionQueue;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stdout] warning: function `generate_default` is never used
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:610:4
[INFO] [stdout]     |
[INFO] [stdout] 610 | fn generate_default(w: u32, h: u32, seed: u64) -> (Vec<f32>, Vec<f32>, Vec<f32>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE_SPEED` is never used
[INFO] [stdout]  --> crates/emergence-core/src/being/fauna_boids.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const BASE_SPEED: f32 = 0.12;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]    --> crates/emergence-core/src/sim/movement.rs:324:4
[INFO] [stdout]     |
[INFO] [stdout] 324 | fn distance(a: [f32; 2], b: [f32; 2]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking emergence-worlds v0.1.0 (/opt/rustwide/workdir/crates/emergence-worlds)
[INFO] [stdout] warning: unused variable: `water_placement`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:221:27
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let (biome_rules, water_placement) = if let Some(ref def) = map_def_opt {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_water_placement`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temperature`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:910:5
[INFO] [stdout]     |
[INFO] [stdout] 910 |     temperature: &[f32],
[INFO] [stdout]     |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temperature`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `equator`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:918:9
[INFO] [stdout]     |
[INFO] [stdout] 918 |     let equator = equator_y * h as f32;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_equator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elevation`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:950:5
[INFO] [stdout]     |
[INFO] [stdout] 950 |     elevation: &[f32],
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elevation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `void_top`
[INFO] [stdout]     --> crates/emergence-core/src/world/terrain.rs:1182:13
[INFO] [stdout]      |
[INFO] [stdout] 1182 |         let void_top = 256 / 8; // ~32
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_void_top`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain_gen.rs:194:19
[INFO] [stdout]     |
[INFO] [stdout] 194 |     for &(cx, cy, radius) in centers.iter().filter(|&&(_, _, r)| r > 18.0) {
[INFO] [stdout]     |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elevation`
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain_gen.rs:839:5
[INFO] [stdout]     |
[INFO] [stdout] 839 |     elevation: &[f32],
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elevation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.12
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.12
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.12
[INFO] [stdout] warning: unused variable: `is_water`
[INFO] [stdout]   --> crates/emergence-core/src/being/fauna_boids.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let is_water = terrain.water[new_idx];
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_water`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `saw_youth` is assigned to, but never used
[INFO] [stdout]    --> crates/emergence-core/src/being/lifecycle.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let mut saw_youth = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_saw_youth` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `saw_youth` is never read
[INFO] [stdout]    --> crates/emergence-core/src/being/lifecycle.rs:341:37
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 LifePhase::Youth => saw_youth = true,
[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: `spatial`
[INFO] [stdout]    --> crates/emergence-core/src/being/social.rs:271:13
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let spatial = SpatialIndex::new(64, 64, 4.0);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spatial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stdout] warning: function `generate_default` is never used
[INFO] [stdout]    --> crates/emergence-core/src/world/terrain.rs:610:4
[INFO] [stdout]     |
[INFO] [stdout] 610 | fn generate_default(w: u32, h: u32, seed: u64) -> (Vec<f32>, Vec<f32>, Vec<f32>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE_SPEED` is never used
[INFO] [stdout]  --> crates/emergence-core/src/being/fauna_boids.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const BASE_SPEED: f32 = 0.12;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]    --> crates/emergence-core/src/sim/movement.rs:324:4
[INFO] [stdout]     |
[INFO] [stdout] 324 | fn distance(a: [f32; 2], b: [f32; 2]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking egui-winit v0.31.1
[INFO] [stderr]     Checking egui-wgpu v0.31.1
[INFO] [stderr]     Checking emergence-viewer v0.1.0 (/opt/rustwide/workdir/crates/emergence-viewer)
[INFO] [stdout] warning: unused import: `wgpu::util::DeviceExt`
[INFO] [stdout]  --> crates/emergence-viewer/src/renderer/particles.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use wgpu::util::DeviceExt;
[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: `Beings`
[INFO] [stdout]  --> crates/emergence-viewer/src/inspector/settlement_inspector.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use emergence_core::being::data::{Beings, BeingState};
[INFO] [stdout]   |                                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `map-import`
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/map_picker.rs:352:11
[INFO] [stdout]     |
[INFO] [stdout] 352 |     #[cfg(feature = "map-import")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `map-import` 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 imports: `DayNightMode` and `ResetKind`
[INFO] [stdout]   --> crates/emergence-viewer/src/god_tools/mod.rs:15:34
[INFO] [stdout]    |
[INFO] [stdout] 15 | use emergence_core::god_action::{DayNightMode, ResetKind};
[INFO] [stdout]    |                                  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wgpu::util::DeviceExt`
[INFO] [stdout]  --> crates/emergence-viewer/src/renderer/particles.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use wgpu::util::DeviceExt;
[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: `Beings`
[INFO] [stdout]  --> crates/emergence-viewer/src/inspector/settlement_inspector.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use emergence_core::being::data::{Beings, BeingState};
[INFO] [stdout]   |                                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `map-import`
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/map_picker.rs:352:11
[INFO] [stdout]     |
[INFO] [stdout] 352 |     #[cfg(feature = "map-import")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `map-import` 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 imports: `DayNightMode` and `ResetKind`
[INFO] [stdout]   --> crates/emergence-viewer/src/god_tools/mod.rs:15:34
[INFO] [stdout]    |
[INFO] [stdout] 15 | use emergence_core::god_action::{DayNightMode, ResetKind};
[INFO] [stdout]    |                                  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/inspector/settlement_inspector.rs:189:26
[INFO] [stdout]     |
[INFO] [stdout] 189 |             egui::Frame::none()
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/inspector/settlement_inspector.rs:191:43
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 .stroke(egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(60, 60, 80, 180)))
[INFO] [stdout]     |                                           ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]   --> crates/emergence-viewer/src/inspector/mod.rs:78:30
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 egui::Frame::none()
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-viewer/src/inspector/mod.rs:80:47
[INFO] [stdout]    |
[INFO] [stdout] 80 |                     .stroke(egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(60, 60, 80, 180)))
[INFO] [stdout]    |                                               ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/inspector/mod.rs:376:30
[INFO] [stdout]     |
[INFO] [stdout] 376 |                 egui::Frame::none()
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/dashboard/mod.rs:248:66
[INFO] [stdout]     |
[INFO] [stdout] 248 |             painter.line_segment([w[0], w[1]], egui::Stroke::new(1.5, color));
[INFO] [stdout]     |                                                                  ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:215:47
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     .stroke(egui::Stroke::new(1.0, egui::Color32::from_white_alpha(30)))
[INFO] [stdout]     |                                               ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:343:30
[INFO] [stdout]     |
[INFO] [stdout] 343 |                 egui::Frame::none()
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:346:47
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     .stroke(egui::Stroke::new(1.5, egui::Color32::from_rgb(80, 120, 200)))
[INFO] [stdout]     |                                               ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:391:51
[INFO] [stdout]     |
[INFO] [stdout] 391 | ...                   egui::Stroke::new(2.0, egui::Color32::from_rgb(100, 180, 255))
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:393:51
[INFO] [stdout]     |
[INFO] [stdout] 393 | ...                   egui::Stroke::new(1.0, egui::Color32::from_rgb(50, 65, 90))
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:464:51
[INFO] [stdout]     |
[INFO] [stdout] 464 | ...                   egui::Stroke::new(2.0, egui::Color32::from_rgb(255, 200, 60))
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:466:51
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...                   egui::Stroke::new(1.0, egui::Color32::from_gray(60))
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:541:51
[INFO] [stdout]     |
[INFO] [stdout] 541 | ...                   egui::Stroke::new(2.0, egui::Color32::from_rgb(255, 200, 60))
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:543:51
[INFO] [stdout]     |
[INFO] [stdout] 543 | ...                   egui::Stroke::new(1.5, border_color)
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:654:55
[INFO] [stdout]     |
[INFO] [stdout] 654 | ...                   .stroke(egui::Stroke::new(2.0, egui::Color32::from_rgb(60, 160, 220))),
[INFO] [stdout]     |                                                 ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:684:55
[INFO] [stdout]     |
[INFO] [stdout] 684 | ...                   .stroke(egui::Stroke::new(1.0, egui::Color32::from_gray(60))),
[INFO] [stdout]     |                                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/inspector/settlement_inspector.rs:189:26
[INFO] [stdout]     |
[INFO] [stdout] 189 |             egui::Frame::none()
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:805:30
[INFO] [stdout]     |
[INFO] [stdout] 805 |                 egui::Frame::none()
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `egui::Frame::rounding`: Renamed to `corner_radius`
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:807:22
[INFO] [stdout]     |
[INFO] [stdout] 807 |                     .rounding(6.0)
[INFO] [stdout]     |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `egui::Image::<'a>::rounding`: Renamed to `corner_radius`
[INFO] [stdout]     --> crates/emergence-viewer/src/screen_state.rs:1197:30
[INFO] [stdout]      |
[INFO] [stdout] 1197 | ...                   .rounding(egui::CornerRadius::same(8));
[INFO] [stdout]      |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-viewer/src/screen_state.rs:1146:51
[INFO] [stdout]      |
[INFO] [stdout] 1146 |                         .stroke(egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(60, 60, 80, 140)))
[INFO] [stdout]      |                                                   ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-viewer/src/screen_state.rs:1224:47
[INFO] [stdout]      |
[INFO] [stdout] 1224 |                     .stroke(egui::Stroke::new(2.0, egui::Color32::from_rgb(180, 150, 60)))
[INFO] [stdout]      |                                               ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/inspector/settlement_inspector.rs:191:43
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 .stroke(egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(60, 60, 80, 180)))
[INFO] [stdout]     |                                           ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/tool_palette.rs:128:30
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 egui::Frame::none()
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]   --> crates/emergence-viewer/src/inspector/mod.rs:78:30
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 egui::Frame::none()
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-viewer/src/inspector/mod.rs:80:47
[INFO] [stdout]    |
[INFO] [stdout] 80 |                     .stroke(egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(60, 60, 80, 180)))
[INFO] [stdout]    |                                               ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/tool_palette.rs:130:47
[INFO] [stdout]     |
[INFO] [stdout] 130 |                     .stroke(egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(50, 50, 70, 160))),
[INFO] [stdout]     |                                               ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/tool_palette.rs:246:51
[INFO] [stdout]     |
[INFO] [stdout] 246 |                         .stroke(egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(50, 50, 70, 160)))
[INFO] [stdout]     |                                                   ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/inspector/mod.rs:376:30
[INFO] [stdout]     |
[INFO] [stdout] 376 |                 egui::Frame::none()
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/main_menu.rs:172:47
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     .stroke(egui::Stroke::new(2.0, egui::Color32::from_rgb(200, 160, 0)))
[INFO] [stdout]     |                                               ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/minimap.rs:120:33
[INFO] [stdout]     |
[INFO] [stdout] 120 |             .frame(egui::Frame::none()
[INFO] [stdout]     |                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/minimap.rs:121:43
[INFO] [stdout]     |
[INFO] [stdout] 121 |                 .stroke(egui::Stroke::new(2.0, egui::Color32::from_rgba_premultiplied(80, 80, 100, 200)))
[INFO] [stdout]     |                                           ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/minimap.rs:148:39
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     egui::Stroke::new(1.5, egui::Color32::WHITE),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::ComboBox::from_id_source`: Renamed id_salt
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/filters.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |         egui::ComboBox::from_id_source("emo_filter_inline")
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::ComboBox::from_id_source`: Renamed id_salt
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/filters.rs:153:33
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 egui::ComboBox::from_id_source("emo_filter")
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/dashboard/mod.rs:248:66
[INFO] [stdout]     |
[INFO] [stdout] 248 |             painter.line_segment([w[0], w[1]], egui::Stroke::new(1.5, color));
[INFO] [stdout]     |                                                                  ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/map_picker.rs:184:31
[INFO] [stdout]     |
[INFO] [stdout] 184 |             egui::Stroke::new(2.0, egui::Color32::from_rgb(100, 160, 255)),
[INFO] [stdout]     |                               ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/statistics.rs:304:64
[INFO] [stdout]     |
[INFO] [stdout] 304 |         painter.line_segment([pts[i - 1], pts[i]], Stroke::new(1.0, color));
[INFO] [stdout]     |                                                                ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/statistics.rs:346:66
[INFO] [stdout]     |
[INFO] [stdout] 346 |         painter.line_segment([b_pts[i-1], b_pts[i]], Stroke::new(1.0, Color32::GREEN));
[INFO] [stdout]     |                                                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/statistics.rs:347:66
[INFO] [stdout]     |
[INFO] [stdout] 347 |         painter.line_segment([d_pts[i-1], d_pts[i]], Stroke::new(1.0, Color32::RED));
[INFO] [stdout]     |                                                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/statistics.rs:394:66
[INFO] [stdout]     |
[INFO] [stdout] 394 |             painter.line_segment([pts[i-1], pts[i]], Stroke::new(1.0, emo_colors[e]));
[INFO] [stdout]     |                                                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]   --> crates/emergence-viewer/src/god_tools/palette.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 |             egui::Frame::none()
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/god_tools/palette.rs:148:26
[INFO] [stdout]     |
[INFO] [stdout] 148 |             egui::Frame::none()
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-viewer/src/god_tools/palette.rs:39:43
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 .stroke(egui::Stroke::new(1.0, Color32::from_gray(60)))
[INFO] [stdout]    |                                           ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/god_tools/palette.rs:150:43
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 .stroke(egui::Stroke::new(1.0, Color32::from_gray(60)))
[INFO] [stdout]     |                                           ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/god_tools/palette.rs:213:35
[INFO] [stdout]     |
[INFO] [stdout] 213 |         .stroke(egui::Stroke::new(1.5, Color32::from_rgb(200, 100, 30)))
[INFO] [stdout]     |                                   ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:215:47
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     .stroke(egui::Stroke::new(1.0, egui::Color32::from_white_alpha(30)))
[INFO] [stdout]     |                                               ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:343:30
[INFO] [stdout]     |
[INFO] [stdout] 343 |                 egui::Frame::none()
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/observation/overlay.rs:177:60
[INFO] [stdout]     |
[INFO] [stdout] 177 |     painter.line_segment([pole_bot, pole_top], Stroke::new(1.0, Color32::from_rgb(180, 160, 120)));
[INFO] [stdout]     |                                                            ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:346:47
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     .stroke(egui::Stroke::new(1.5, egui::Color32::from_rgb(80, 120, 200)))
[INFO] [stdout]     |                                               ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:391:51
[INFO] [stdout]     |
[INFO] [stdout] 391 | ...                   egui::Stroke::new(2.0, egui::Color32::from_rgb(100, 180, 255))
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:393:51
[INFO] [stdout]     |
[INFO] [stdout] 393 | ...                   egui::Stroke::new(1.0, egui::Color32::from_rgb(50, 65, 90))
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:464:51
[INFO] [stdout]     |
[INFO] [stdout] 464 | ...                   egui::Stroke::new(2.0, egui::Color32::from_rgb(255, 200, 60))
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:466:51
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...                   egui::Stroke::new(1.0, egui::Color32::from_gray(60))
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:541:51
[INFO] [stdout]     |
[INFO] [stdout] 541 | ...                   egui::Stroke::new(2.0, egui::Color32::from_rgb(255, 200, 60))
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:543:51
[INFO] [stdout]     |
[INFO] [stdout] 543 | ...                   egui::Stroke::new(1.5, border_color)
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:654:55
[INFO] [stdout]     |
[INFO] [stdout] 654 | ...                   .stroke(egui::Stroke::new(2.0, egui::Color32::from_rgb(60, 160, 220))),
[INFO] [stdout]     |                                                 ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:684:55
[INFO] [stdout]     |
[INFO] [stdout] 684 | ...                   .stroke(egui::Stroke::new(1.0, egui::Color32::from_gray(60))),
[INFO] [stdout]     |                                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:805:30
[INFO] [stdout]     |
[INFO] [stdout] 805 |                 egui::Frame::none()
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `egui::Frame::rounding`: Renamed to `corner_radius`
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:807:22
[INFO] [stdout]     |
[INFO] [stdout] 807 |                     .rounding(6.0)
[INFO] [stdout]     |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `egui::Image::<'a>::rounding`: Renamed to `corner_radius`
[INFO] [stdout]     --> crates/emergence-viewer/src/screen_state.rs:1197:30
[INFO] [stdout]      |
[INFO] [stdout] 1197 | ...                   .rounding(egui::CornerRadius::same(8));
[INFO] [stdout]      |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-viewer/src/screen_state.rs:1146:51
[INFO] [stdout]      |
[INFO] [stdout] 1146 |                         .stroke(egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(60, 60, 80, 140)))
[INFO] [stdout]      |                                                   ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-viewer/src/screen_state.rs:1224:47
[INFO] [stdout]      |
[INFO] [stdout] 1224 |                     .stroke(egui::Stroke::new(2.0, egui::Color32::from_rgb(180, 150, 60)))
[INFO] [stdout]      |                                               ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/tool_palette.rs:128:30
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 egui::Frame::none()
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/tool_palette.rs:130:47
[INFO] [stdout]     |
[INFO] [stdout] 130 |                     .stroke(egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(50, 50, 70, 160))),
[INFO] [stdout]     |                                               ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/tool_palette.rs:246:51
[INFO] [stdout]     |
[INFO] [stdout] 246 |                         .stroke(egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(50, 50, 70, 160)))
[INFO] [stdout]     |                                                   ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::GenericImageView`
[INFO] [stdout]  --> crates/emergence-viewer/src/atlas/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use image::GenericImageView;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/main_menu.rs:172:47
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     .stroke(egui::Stroke::new(2.0, egui::Color32::from_rgb(200, 160, 0)))
[INFO] [stdout]     |                                               ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/minimap.rs:120:33
[INFO] [stdout]     |
[INFO] [stdout] 120 |             .frame(egui::Frame::none()
[INFO] [stdout]     |                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/minimap.rs:121:43
[INFO] [stdout]     |
[INFO] [stdout] 121 |                 .stroke(egui::Stroke::new(2.0, egui::Color32::from_rgba_premultiplied(80, 80, 100, 200)))
[INFO] [stdout]     |                                           ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/minimap.rs:148:39
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     egui::Stroke::new(1.5, egui::Color32::WHITE),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::ComboBox::from_id_source`: Renamed id_salt
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/filters.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |         egui::ComboBox::from_id_source("emo_filter_inline")
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::ComboBox::from_id_source`: Renamed id_salt
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/filters.rs:153:33
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 egui::ComboBox::from_id_source("emo_filter")
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/beings.rs:143:17
[INFO] [stdout]     |
[INFO] [stdout] 143 |             let mut atlas_uv = anim.atlas_uv(beings, i);
[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: `world_width`
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/beings.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         world_width:     u32,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_world_width`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world_height`
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/beings.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         world_height:    u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_world_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/map_picker.rs:184:31
[INFO] [stdout]     |
[INFO] [stdout] 184 |             egui::Stroke::new(2.0, egui::Color32::from_rgb(100, 160, 255)),
[INFO] [stdout]     |                               ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resources`
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:890:5
[INFO] [stdout]     |
[INFO] [stdout] 890 |     resources: &ResourceLayer,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resources`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moisture`
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:960:17
[INFO] [stdout]     |
[INFO] [stdout] 960 |             let moisture = terrain.moisture_dynamic[idx];
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moisture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/statistics.rs:304:64
[INFO] [stdout]     |
[INFO] [stdout] 304 |         painter.line_segment([pts[i - 1], pts[i]], Stroke::new(1.0, color));
[INFO] [stdout]     |                                                                ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/statistics.rs:346:66
[INFO] [stdout]     |
[INFO] [stdout] 346 |         painter.line_segment([b_pts[i-1], b_pts[i]], Stroke::new(1.0, Color32::GREEN));
[INFO] [stdout]     |                                                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/statistics.rs:347:66
[INFO] [stdout]     |
[INFO] [stdout] 347 |         painter.line_segment([d_pts[i-1], d_pts[i]], Stroke::new(1.0, Color32::RED));
[INFO] [stdout]     |                                                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/ui/statistics.rs:394:66
[INFO] [stdout]     |
[INFO] [stdout] 394 |             painter.line_segment([pts[i-1], pts[i]], Stroke::new(1.0, emo_colors[e]));
[INFO] [stdout]     |                                                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]   --> crates/emergence-viewer/src/god_tools/palette.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 |             egui::Frame::none()
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `egui::Frame::none`: Use `Frame::NONE` or `Frame::new()` instead.
[INFO] [stdout]    --> crates/emergence-viewer/src/god_tools/palette.rs:148:26
[INFO] [stdout]     |
[INFO] [stdout] 148 |             egui::Frame::none()
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-viewer/src/god_tools/palette.rs:39:43
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 .stroke(egui::Stroke::new(1.0, Color32::from_gray(60)))
[INFO] [stdout]    |                                           ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/god_tools/palette.rs:150:43
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 .stroke(egui::Stroke::new(1.0, Color32::from_gray(60)))
[INFO] [stdout]     |                                           ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/god_tools/palette.rs:213:35
[INFO] [stdout]     |
[INFO] [stdout] 213 |         .stroke(egui::Stroke::new(1.5, Color32::from_rgb(200, 100, 30)))
[INFO] [stdout]     |                                   ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> crates/emergence-viewer/src/observation/overlay.rs:177:60
[INFO] [stdout]     |
[INFO] [stdout] 177 |     painter.line_segment([pole_bot, pole_top], Stroke::new(1.0, Color32::from_rgb(180, 160, 120)));
[INFO] [stdout]     |                                                            ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/emergence-viewer/src/atlas/generator.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let mut cl = cloth_map[row];
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `skin`
[INFO] [stdout]    --> crates/emergence-viewer/src/atlas/generator.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |     skin: [u8; 3],
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_skin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clothing`
[INFO] [stdout]    --> crates/emergence-viewer/src/atlas/generator.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 269 |     clothing: [u8; 3],
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clothing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::GenericImageView`
[INFO] [stdout]  --> crates/emergence-viewer/src/atlas/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use image::GenericImageView;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controls`
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:798:38
[INFO] [stdout]     |
[INFO] [stdout] 798 |     pub fn show(ctx: &egui::Context, controls: &mut SpeedControls, tick: u32, population: u32, perf: &PerfStats, muted: bool) -> bo...
[INFO] [stdout]     |                                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/beings.rs:143:17
[INFO] [stdout]     |
[INFO] [stdout] 143 |             let mut atlas_uv = anim.atlas_uv(beings, i);
[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: `world_width`
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/beings.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         world_width:     u32,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_world_width`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world_height`
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/beings.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         world_height:    u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_world_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resources`
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:890:5
[INFO] [stdout]     |
[INFO] [stdout] 890 |     resources: &ResourceLayer,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resources`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moisture`
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:960:17
[INFO] [stdout]     |
[INFO] [stdout] 960 |             let moisture = terrain.moisture_dynamic[idx];
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moisture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/emergence-viewer/src/atlas/generator.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let mut cl = cloth_map[row];
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `skin`
[INFO] [stdout]    --> crates/emergence-viewer/src/atlas/generator.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |     skin: [u8; 3],
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_skin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clothing`
[INFO] [stdout]    --> crates/emergence-viewer/src/atlas/generator.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 269 |     clothing: [u8; 3],
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clothing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controls`
[INFO] [stdout]    --> crates/emergence-viewer/src/screen_state.rs:798:38
[INFO] [stdout]     |
[INFO] [stdout] 798 |     pub fn show(ctx: &egui::Context, controls: &mut SpeedControls, tick: u32, population: u32, perf: &PerfStats, muted: bool) -> bo...
[INFO] [stdout]     |                                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `beings`
[INFO] [stdout]    --> crates/emergence-viewer/src/observation/kingdom.rs:388:26
[INFO] [stdout]     |
[INFO] [stdout] 388 | fn generate_kingdom_name(beings: &Beings, leader_idx: usize, settlement_name: &str) -> String {
[INFO] [stdout]     |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_beings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BIOME_ROW_SAVANNAH_V` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/terrain.rs:60:7
[INFO] [stdout]    |
[INFO] [stdout] 60 | const BIOME_ROW_SAVANNAH_V:  u8 = 3;  // Row 3: dark olive/autumn grass
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BIOME_ROW_DIRT_LIGHT` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/terrain.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const BIOME_ROW_DIRT_LIGHT:  u8 = 4;  // Row 4: light tan/brown earth
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CELL_U` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const FLORA_CELL_U: f32 = 1.0 / 10.0; // V57: aligned to 10×10
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CELL_V` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const FLORA_CELL_V: f32 = 1.0 / 10.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flora_uv` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | const fn flora_uv(col: u8, row: u8) -> [f32; 2] {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_CELL_U` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const BUILD_CELL_U: f32 = 1.0 / 12.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_CELL_V` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const BUILD_CELL_V: f32 = 1.0 / 12.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_uv` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:38:10
[INFO] [stdout]    |
[INFO] [stdout] 38 | const fn build_uv(col: u8, row: u8) -> [f32; 2] {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const FLORA_TREE_A: [f32; 2] = flora_uv(0, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const FLORA_TREE_B: [f32; 2] = flora_uv(1, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const FLORA_TREE_C: [f32; 2] = flora_uv(2, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_D` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const FLORA_TREE_D: [f32; 2] = flora_uv(3, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_BUSH_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const FLORA_BUSH_A: [f32; 2] = flora_uv(0, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_FLOWER_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const FLORA_FLOWER_A: [f32; 2] = flora_uv(1, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_FLOWER_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const FLORA_FLOWER_B: [f32; 2] = flora_uv(2, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_FLOWER_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const FLORA_FLOWER_C: [f32; 2] = flora_uv(3, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_GRASS_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const FLORA_GRASS_A:  [f32; 2] = flora_uv(4, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_GRASS_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const FLORA_GRASS_B:  [f32; 2] = flora_uv(5, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_CAMPFIRE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const BUILD_CAMPFIRE:    [f32; 2] = build_uv(0, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_NOMADTENT` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:62:7
[INFO] [stdout]    |
[INFO] [stdout] 62 | const BUILD_NOMADTENT:   [f32; 2] = build_uv(1, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_FOODCACHE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const BUILD_FOODCACHE:   [f32; 2] = build_uv(2, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_OILPUMP` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const BUILD_OILPUMP:     [f32; 2] = build_uv(3, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_WOODENHOUSE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const BUILD_WOODENHOUSE: [f32; 2] = build_uv(0, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_LEANTO` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:66:7
[INFO] [stdout]    |
[INFO] [stdout] 66 | const BUILD_LEANTO:      [f32; 2] = build_uv(1, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_WINDMILL` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:67:7
[INFO] [stdout]    |
[INFO] [stdout] 67 | const BUILD_WINDMILL:    [f32; 2] = build_uv(2, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_AUTOMOBILE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:68:7
[INFO] [stdout]    |
[INFO] [stdout] 68 | const BUILD_AUTOMOBILE:  [f32; 2] = build_uv(3, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_STONEHOUSE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const BUILD_STONEHOUSE:  [f32; 2] = build_uv(0, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_HUT` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:70:7
[INFO] [stdout]    |
[INFO] [stdout] 70 | const BUILD_HUT:         [f32; 2] = build_uv(1, 2);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_WALL` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:71:7
[INFO] [stdout]    |
[INFO] [stdout] 71 | const BUILD_WALL:        [f32; 2] = build_uv(2, 2);
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_MINE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:72:7
[INFO] [stdout]    |
[INFO] [stdout] 72 | const BUILD_MINE:        [f32; 2] = build_uv(3, 2);
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_KEEP` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:73:7
[INFO] [stdout]    |
[INFO] [stdout] 73 | const BUILD_KEEP:        [f32; 2] = build_uv(0, 3);
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_CASTLE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:74:7
[INFO] [stdout]    |
[INFO] [stdout] 74 | const BUILD_CASTLE:      [f32; 2] = build_uv(1, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_FORGE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:75:7
[INFO] [stdout]    |
[INFO] [stdout] 75 | const BUILD_FORGE:       [f32; 2] = build_uv(2, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_FACTORY` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:76:7
[INFO] [stdout]    |
[INFO] [stdout] 76 | const BUILD_FACTORY:     [f32; 2] = build_uv(3, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SNOW_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:79:7
[INFO] [stdout]    |
[INFO] [stdout] 79 | const FLORA_SNOW_A: [f32; 2] = flora_uv(0, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SNOW_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:80:7
[INFO] [stdout]    |
[INFO] [stdout] 80 | const FLORA_SNOW_B: [f32; 2] = flora_uv(1, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SNOW_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:81:7
[INFO] [stdout]    |
[INFO] [stdout] 81 | const FLORA_SNOW_C: [f32; 2] = flora_uv(2, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SNOW_D` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:82:7
[INFO] [stdout]    |
[INFO] [stdout] 82 | const FLORA_SNOW_D: [f32; 2] = flora_uv(3, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CACTUS_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:83:7
[INFO] [stdout]    |
[INFO] [stdout] 83 | const FLORA_CACTUS_A: [f32; 2] = flora_uv(4, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CACTUS_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:84:7
[INFO] [stdout]    |
[INFO] [stdout] 84 | const FLORA_CACTUS_B: [f32; 2] = flora_uv(5, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CACTUS_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:85:7
[INFO] [stdout]    |
[INFO] [stdout] 85 | const FLORA_CACTUS_C: [f32; 2] = flora_uv(6, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CACTUS_D` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:86:7
[INFO] [stdout]    |
[INFO] [stdout] 86 | const FLORA_CACTUS_D: [f32; 2] = flora_uv(7, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_DEAD_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:89:7
[INFO] [stdout]    |
[INFO] [stdout] 89 | const FLORA_DEAD_A: [f32; 2] = flora_uv(0, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_DEAD_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:90:7
[INFO] [stdout]    |
[INFO] [stdout] 90 | const FLORA_DEAD_B: [f32; 2] = flora_uv(1, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_DEAD_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:91:7
[INFO] [stdout]    |
[INFO] [stdout] 91 | const FLORA_DEAD_C: [f32; 2] = flora_uv(2, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_DEAD_D` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:92:7
[INFO] [stdout]    |
[INFO] [stdout] 92 | const FLORA_DEAD_D: [f32; 2] = flora_uv(3, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SWAMP_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:95:7
[INFO] [stdout]    |
[INFO] [stdout] 95 | const FLORA_SWAMP_A: [f32; 2] = flora_uv(0, 4);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SWAMP_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:96:7
[INFO] [stdout]    |
[INFO] [stdout] 96 | const FLORA_SWAMP_B: [f32; 2] = flora_uv(1, 4);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SWAMP_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const FLORA_SWAMP_C: [f32; 2] = flora_uv(2, 4);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SWAMP_D` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:98:7
[INFO] [stdout]    |
[INFO] [stdout] 98 | const FLORA_SWAMP_D: [f32; 2] = flora_uv(3, 4);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_CROPS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:125:7
[INFO] [stdout]     |
[INFO] [stdout] 125 | const CELL_CROPS: f32 = 1.0 / 10.0;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uv_crops` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:126:10
[INFO] [stdout]     |
[INFO] [stdout] 126 | const fn uv_crops(col: usize, row: usize) -> [f32; 2] {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_TREES` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:130:7
[INFO] [stdout]     |
[INFO] [stdout] 130 | const CELL_TREES: f32 = 1.0 / 10.0;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uv_trees` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:131:10
[INFO] [stdout]     |
[INFO] [stdout] 131 | const fn uv_trees(col: usize, row: usize) -> [f32; 2] {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_FAUNA` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:135:7
[INFO] [stdout]     |
[INFO] [stdout] 135 | const CELL_FAUNA: f32 = 1.0 / 10.0;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_HUMAN_W` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:137:7
[INFO] [stdout]     |
[INFO] [stdout] 137 | const CELL_HUMAN_W: f32 = 1.0 / 16.0;   // 16 columns
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_HUMAN_H` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:138:7
[INFO] [stdout]     |
[INFO] [stdout] 138 | const CELL_HUMAN_H: f32 = 1.0 / 12.0;   // 12 rows
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_MINERALS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:140:7
[INFO] [stdout]     |
[INFO] [stdout] 140 | const CELL_MINERALS: f32 = 1.0 / 8.0;
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_CONS_W` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:142:7
[INFO] [stdout]     |
[INFO] [stdout] 142 | const CELL_CONS_W: f32 = 1.0 / 10.0;    // 10 columns
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_CONS_H` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:143:7
[INFO] [stdout]     |
[INFO] [stdout] 143 | const CELL_CONS_H: f32 = 1.0 / 12.0;    // 12 rows
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_VFX` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const CELL_VFX: f32 = 1.0 / 10.0;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_190_BAOBAB` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:200:7
[INFO] [stdout]     |
[INFO] [stdout] 200 | const FLORA_190_BAOBAB: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_190_FRUIT` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:205:7
[INFO] [stdout]     |
[INFO] [stdout] 205 | const FLORA_190_FRUIT: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CROPS_190` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:261:7
[INFO] [stdout]     |
[INFO] [stdout] 261 | const CROPS_190: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREES_190` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:268:7
[INFO] [stdout]     |
[INFO] [stdout] 268 | const TREES_190: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_TENT` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:280:7
[INFO] [stdout]     |
[INFO] [stdout] 280 | const ARCH_190_TENT: [f32; 2] = uv_190(1, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_LEAN_TO` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:281:7
[INFO] [stdout]     |
[INFO] [stdout] 281 | const ARCH_190_LEAN_TO: [f32; 2] = uv_190(2, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_NOMAD` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:282:7
[INFO] [stdout]     |
[INFO] [stdout] 282 | const ARCH_190_NOMAD: [f32; 2] = uv_190(3, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_CACHE` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:283:7
[INFO] [stdout]     |
[INFO] [stdout] 283 | const ARCH_190_CACHE: [f32; 2] = uv_190(4, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_OILPUMP` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:284:7
[INFO] [stdout]     |
[INFO] [stdout] 284 | const ARCH_190_OILPUMP: [f32; 2] = uv_190(5, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_FARM` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:285:7
[INFO] [stdout]     |
[INFO] [stdout] 285 | const ARCH_190_FARM: [f32; 2] = uv_190(6, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_WOOD_HOUSE` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:286:7
[INFO] [stdout]     |
[INFO] [stdout] 286 | const ARCH_190_WOOD_HOUSE: [f32; 2] = uv_190(0, 1);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_WOOD_HOUSE_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:287:7
[INFO] [stdout]     |
[INFO] [stdout] 287 | const ARCH_190_WOOD_HOUSE_B: [f32; 2] = uv_190(1, 1);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_WINDMILL` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:288:7
[INFO] [stdout]     |
[INFO] [stdout] 288 | const ARCH_190_WINDMILL: [f32; 2] = uv_190(2, 1);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_STONE_HOUSE_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:291:7
[INFO] [stdout]     |
[INFO] [stdout] 291 | const ARCH_190_STONE_HOUSE_B: [f32; 2] = uv_190(1, 3);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_FORGE` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:292:7
[INFO] [stdout]     |
[INFO] [stdout] 292 | const ARCH_190_FORGE: [f32; 2] = uv_190(2, 3);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_MINE` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:293:7
[INFO] [stdout]     |
[INFO] [stdout] 293 | const ARCH_190_MINE: [f32; 2] = uv_190(3, 3);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_WALL` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:294:7
[INFO] [stdout]     |
[INFO] [stdout] 294 | const ARCH_190_WALL: [f32; 2] = uv_190(0, 5);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_FACTORY` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:297:7
[INFO] [stdout]     |
[INFO] [stdout] 297 | const ARCH_190_FACTORY: [f32; 2] = uv_190(2, 7);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_FOREST` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:300:7
[INFO] [stdout]     |
[INFO] [stdout] 300 | const FLORA_TREE_VARIANTS_FOREST: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_GRASSLAND` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:303:7
[INFO] [stdout]     |
[INFO] [stdout] 303 | const FLORA_TREE_VARIANTS_GRASSLAND: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_BUSH_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:306:7
[INFO] [stdout]     |
[INFO] [stdout] 306 | const FLORA_BUSH_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_SNOW` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:309:7
[INFO] [stdout]     |
[INFO] [stdout] 309 | const FLORA_TREE_VARIANTS_SNOW: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_DESERT` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:312:7
[INFO] [stdout]     |
[INFO] [stdout] 312 | const FLORA_TREE_VARIANTS_DESERT: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_MOUNTAIN` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:315:7
[INFO] [stdout]     |
[INFO] [stdout] 315 | const FLORA_TREE_VARIANTS_MOUNTAIN: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_WETLAND` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:318:7
[INFO] [stdout]     |
[INFO] [stdout] 318 | const FLORA_TREE_VARIANTS_WETLAND: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_DECOR_0` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:338:7
[INFO] [stdout]     |
[INFO] [stdout] 338 | const UV_GRASS_DECOR_0: [f32; 2] = uv(15, 21); // 1 in 8 is Mushroom
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_DECOR_1` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:339:7
[INFO] [stdout]     |
[INFO] [stdout] 339 | const UV_GRASS_DECOR_1: [f32; 2] = uv(8, 20); // Remainder are invisible
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_DECOR_2` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:340:7
[INFO] [stdout]     |
[INFO] [stdout] 340 | const UV_GRASS_DECOR_2: [f32; 2] = uv(8, 20);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_DECOR_3` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:341:7
[INFO] [stdout]     |
[INFO] [stdout] 341 | const UV_GRASS_DECOR_3: [f32; 2] = uv(8, 20);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FT_BUILDING_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:348:7
[INFO] [stdout]     |
[INFO] [stdout] 348 | const UV_FT_BUILDING_A: [f32; 2] = uv(30, 20);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FT_BUILDING_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:349:7
[INFO] [stdout]     |
[INFO] [stdout] 349 | const UV_FT_BUILDING_B: [f32; 2] = uv(31, 20);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_DECOR_BUSH` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:353:7
[INFO] [stdout]     |
[INFO] [stdout] 353 | const UV_DECOR_BUSH:   [f32; 2] = uv(1, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_DECOR_CACTUS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:356:7
[INFO] [stdout]     |
[INFO] [stdout] 356 | const UV_DECOR_CACTUS: [f32; 2] = uv(4, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:359:7
[INFO] [stdout]     |
[INFO] [stdout] 359 | const UV_TREE_A: [f32; 2] = uv(0, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:360:7
[INFO] [stdout]     |
[INFO] [stdout] 360 | const UV_TREE_B: [f32; 2] = uv(1, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_C` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:361:7
[INFO] [stdout]     |
[INFO] [stdout] 361 | const UV_TREE_C: [f32; 2] = uv(2, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_D` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:362:7
[INFO] [stdout]     |
[INFO] [stdout] 362 | const UV_TREE_D: [f32; 2] = uv(3, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_E` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:363:7
[INFO] [stdout]     |
[INFO] [stdout] 363 | const UV_TREE_E: [f32; 2] = uv(4, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_F` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:364:7
[INFO] [stdout]     |
[INFO] [stdout] 364 | const UV_TREE_F: [f32; 2] = uv(5, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_ROCK_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:367:7
[INFO] [stdout]     |
[INFO] [stdout] 367 | const UV_ROCK_A:       [f32; 2] = uv(6, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_ROCK_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:368:7
[INFO] [stdout]     |
[INFO] [stdout] 368 | const UV_ROCK_B:       [f32; 2] = uv(7, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_REED_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:369:7
[INFO] [stdout]     |
[INFO] [stdout] 369 | const UV_REED_A:       [f32; 2] = uv(8, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_REED_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:370:7
[INFO] [stdout]     |
[INFO] [stdout] 370 | const UV_REED_B:       [f32; 2] = uv(9, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FLOWER_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:373:7
[INFO] [stdout]     |
[INFO] [stdout] 373 | const UV_FLOWER_A:     [f32; 2] = uv(10, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FLOWER_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:374:7
[INFO] [stdout]     |
[INFO] [stdout] 374 | const UV_FLOWER_B:     [f32; 2] = uv(11, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FLOWER_C` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:375:7
[INFO] [stdout]     |
[INFO] [stdout] 375 | const UV_FLOWER_C:     [f32; 2] = uv(12, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_TUFT_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:376:7
[INFO] [stdout]     |
[INFO] [stdout] 376 | const UV_GRASS_TUFT_A: [f32; 2] = uv(13, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_TUFT_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:377:7
[INFO] [stdout]     |
[INFO] [stdout] 377 | const UV_GRASS_TUFT_B: [f32; 2] = uv(14, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_0` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:381:7
[INFO] [stdout]     |
[INFO] [stdout] 381 | const UV_MW_DECOR_0:   [f32; 2] = uv(16, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_1` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:382:7
[INFO] [stdout]     |
[INFO] [stdout] 382 | const UV_MW_DECOR_1:   [f32; 2] = uv(17, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_2` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:383:7
[INFO] [stdout]     |
[INFO] [stdout] 383 | const UV_MW_DECOR_2:   [f32; 2] = uv(18, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_3` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:384:7
[INFO] [stdout]     |
[INFO] [stdout] 384 | const UV_MW_DECOR_3:   [f32; 2] = uv(19, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_4` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:385:7
[INFO] [stdout]     |
[INFO] [stdout] 385 | const UV_MW_DECOR_4:   [f32; 2] = uv(20, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FT_ROCK_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:393:7
[INFO] [stdout]     |
[INFO] [stdout] 393 | const UV_FT_ROCK_A:    [f32; 2] = uv(2, 19);
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FT_ROCK_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:394:7
[INFO] [stdout]     |
[INFO] [stdout] 394 | const UV_FT_ROCK_B:    [f32; 2] = uv(3, 19);
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FT_ROCK_C` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:395:7
[INFO] [stdout]     |
[INFO] [stdout] 395 | const UV_FT_ROCK_C:    [f32; 2] = uv(4, 19);
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT_SL_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:400:7
[INFO] [stdout]     |
[INFO] [stdout] 400 | const UV_HUT_SL_A:     [f32; 2] = uv(0, 18);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT_SL_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:401:7
[INFO] [stdout]     |
[INFO] [stdout] 401 | const UV_HUT_SL_B:     [f32; 2] = uv(1, 18);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT_SL_C` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:402:7
[INFO] [stdout]     |
[INFO] [stdout] 402 | const UV_HUT_SL_C:     [f32; 2] = uv(2, 18);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT_SL_D` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:403:7
[INFO] [stdout]     |
[INFO] [stdout] 403 | const UV_HUT_SL_D:     [f32; 2] = uv(3, 18);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT_SL_E` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:404:7
[INFO] [stdout]     |
[INFO] [stdout] 404 | const UV_HUT_SL_E:     [f32; 2] = uv(4, 18);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_CAMPFIRE_0` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:410:7
[INFO] [stdout]     |
[INFO] [stdout] 410 | const UV_CAMPFIRE_0:  [f32; 2] = uv(6, 20); // Stone
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_CAMPFIRE_1` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:411:7
[INFO] [stdout]     |
[INFO] [stdout] 411 | const UV_CAMPFIRE_1:  [f32; 2] = uv(6, 20); // Stone
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_CAMPFIRE_2` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:412:7
[INFO] [stdout]     |
[INFO] [stdout] 412 | const UV_CAMPFIRE_2:  [f32; 2] = uv(6, 20); // Stone
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_LEAN_TO` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:413:7
[INFO] [stdout]     |
[INFO] [stdout] 413 | const UV_LEAN_TO:     [f32; 2] = uv(10, 20); // Wood
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:414:7
[INFO] [stdout]     |
[INFO] [stdout] 414 | const UV_HUT:         [f32; 2] = uv(12, 20); // Crate
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_WALL` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:415:7
[INFO] [stdout]     |
[INFO] [stdout] 415 | const UV_WALL:        [f32; 2] = uv(10, 20); // Wood
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FOOD_CACHE` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:416:7
[INFO] [stdout]     |
[INFO] [stdout] 416 | const UV_FOOD_CACHE:  [f32; 2] = uv(12, 20); // Crate
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREE_VARIANTS_FOREST` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:419:7
[INFO] [stdout]     |
[INFO] [stdout] 419 | const TREE_VARIANTS_FOREST: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREE_VARIANTS_GRASSLAND` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:422:7
[INFO] [stdout]     |
[INFO] [stdout] 422 | const TREE_VARIANTS_GRASSLAND: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUSH_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:425:7
[INFO] [stdout]     |
[INFO] [stdout] 425 | const BUSH_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROCK_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:428:7
[INFO] [stdout]     |
[INFO] [stdout] 428 | const ROCK_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLOWER_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:431:7
[INFO] [stdout]     |
[INFO] [stdout] 431 | const FLOWER_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REED_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:436:7
[INFO] [stdout]     |
[INFO] [stdout] 436 | const REED_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LEANTO_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:439:7
[INFO] [stdout]     |
[INFO] [stdout] 439 | const LEANTO_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUT_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:442:7
[INFO] [stdout]     |
[INFO] [stdout] 442 | const HUT_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_30` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:445:7
[INFO] [stdout]     |
[INFO] [stdout] 445 | const UV_MW_DECOR_30: [f32; 2] = UV_STONE;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `params_buf` is never read
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/memetic_compute.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct MemeticComputePipeline {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     params_buf: wgpu::Buffer,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `params_buf` is never read
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/climate_compute.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ClimateComputePipeline {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     params_buf: wgpu::Buffer,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `life_phase_index` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/animation.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn life_phase_index(beings: &Beings, i: usize) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `body_build_index` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/animation.rs:255:4
[INFO] [stdout]     |
[INFO] [stdout] 255 | fn body_build_index(beings: &Beings, i: usize) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blit_cell` is never used
[INFO] [stdout]     --> crates/emergence-viewer/src/atlas/generator.rs:1314:4
[INFO] [stdout]      |
[INFO] [stdout] 1314 | fn blit_cell(pixels: &mut [u8], atlas_row: usize, atlas_col: usize, tile: &image::RgbaImage) {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crop_and_scale` is never used
[INFO] [stdout]     --> crates/emergence-viewer/src/atlas/generator.rs:1333:4
[INFO] [stdout]      |
[INFO] [stdout] 1333 | fn crop_and_scale(src: &image::RgbaImage, sx: u32, sy: u32, sw: u32, sh: u32) -> image::RgbaImage {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blit_cell_centered` is never used
[INFO] [stdout]     --> crates/emergence-viewer/src/atlas/generator.rs:1338:4
[INFO] [stdout]      |
[INFO] [stdout] 1338 | fn blit_cell_centered(pixels: &mut [u8], atlas_row: usize, atlas_col: usize, src: &image::RgbaImage) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `trigger` is never read
[INFO] [stdout]   --> crates/emergence-viewer/src/ui/tooltips.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct TooltipDef {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 19 |     trigger: TooltipTrigger,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]    --> crates/emergence-viewer/src/audio/mod.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | struct AmbientLayer {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] 287 |     /// Human-readable label for debugging
[INFO] [stdout] 288 |     label:       &'static str,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AmbientLayer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `beings`
[INFO] [stdout]    --> crates/emergence-viewer/src/observation/kingdom.rs:388:26
[INFO] [stdout]     |
[INFO] [stdout] 388 | fn generate_kingdom_name(beings: &Beings, leader_idx: usize, settlement_name: &str) -> String {
[INFO] [stdout]     |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_beings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking emergence-app v0.1.0 (/opt/rustwide/workdir/crates/emergence-app)
[INFO] [stdout] warning: constant `BIOME_ROW_SAVANNAH_V` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/terrain.rs:60:7
[INFO] [stdout]    |
[INFO] [stdout] 60 | const BIOME_ROW_SAVANNAH_V:  u8 = 3;  // Row 3: dark olive/autumn grass
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BIOME_ROW_DIRT_LIGHT` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/terrain.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const BIOME_ROW_DIRT_LIGHT:  u8 = 4;  // Row 4: light tan/brown earth
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CELL_U` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const FLORA_CELL_U: f32 = 1.0 / 10.0; // V57: aligned to 10×10
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CELL_V` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const FLORA_CELL_V: f32 = 1.0 / 10.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flora_uv` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | const fn flora_uv(col: u8, row: u8) -> [f32; 2] {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_CELL_U` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const BUILD_CELL_U: f32 = 1.0 / 12.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_CELL_V` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const BUILD_CELL_V: f32 = 1.0 / 12.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_uv` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:38:10
[INFO] [stdout]    |
[INFO] [stdout] 38 | const fn build_uv(col: u8, row: u8) -> [f32; 2] {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const FLORA_TREE_A: [f32; 2] = flora_uv(0, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const FLORA_TREE_B: [f32; 2] = flora_uv(1, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const FLORA_TREE_C: [f32; 2] = flora_uv(2, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_D` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const FLORA_TREE_D: [f32; 2] = flora_uv(3, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_BUSH_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const FLORA_BUSH_A: [f32; 2] = flora_uv(0, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_FLOWER_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const FLORA_FLOWER_A: [f32; 2] = flora_uv(1, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_FLOWER_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const FLORA_FLOWER_B: [f32; 2] = flora_uv(2, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_FLOWER_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const FLORA_FLOWER_C: [f32; 2] = flora_uv(3, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_GRASS_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const FLORA_GRASS_A:  [f32; 2] = flora_uv(4, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_GRASS_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const FLORA_GRASS_B:  [f32; 2] = flora_uv(5, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_CAMPFIRE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const BUILD_CAMPFIRE:    [f32; 2] = build_uv(0, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_NOMADTENT` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:62:7
[INFO] [stdout]    |
[INFO] [stdout] 62 | const BUILD_NOMADTENT:   [f32; 2] = build_uv(1, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_FOODCACHE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const BUILD_FOODCACHE:   [f32; 2] = build_uv(2, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_OILPUMP` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const BUILD_OILPUMP:     [f32; 2] = build_uv(3, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_WOODENHOUSE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const BUILD_WOODENHOUSE: [f32; 2] = build_uv(0, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_LEANTO` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:66:7
[INFO] [stdout]    |
[INFO] [stdout] 66 | const BUILD_LEANTO:      [f32; 2] = build_uv(1, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_WINDMILL` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:67:7
[INFO] [stdout]    |
[INFO] [stdout] 67 | const BUILD_WINDMILL:    [f32; 2] = build_uv(2, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_AUTOMOBILE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:68:7
[INFO] [stdout]    |
[INFO] [stdout] 68 | const BUILD_AUTOMOBILE:  [f32; 2] = build_uv(3, 1);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_STONEHOUSE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const BUILD_STONEHOUSE:  [f32; 2] = build_uv(0, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_HUT` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:70:7
[INFO] [stdout]    |
[INFO] [stdout] 70 | const BUILD_HUT:         [f32; 2] = build_uv(1, 2);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_WALL` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:71:7
[INFO] [stdout]    |
[INFO] [stdout] 71 | const BUILD_WALL:        [f32; 2] = build_uv(2, 2);
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_MINE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:72:7
[INFO] [stdout]    |
[INFO] [stdout] 72 | const BUILD_MINE:        [f32; 2] = build_uv(3, 2);
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_KEEP` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:73:7
[INFO] [stdout]    |
[INFO] [stdout] 73 | const BUILD_KEEP:        [f32; 2] = build_uv(0, 3);
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_CASTLE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:74:7
[INFO] [stdout]    |
[INFO] [stdout] 74 | const BUILD_CASTLE:      [f32; 2] = build_uv(1, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_FORGE` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:75:7
[INFO] [stdout]    |
[INFO] [stdout] 75 | const BUILD_FORGE:       [f32; 2] = build_uv(2, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_FACTORY` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:76:7
[INFO] [stdout]    |
[INFO] [stdout] 76 | const BUILD_FACTORY:     [f32; 2] = build_uv(3, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SNOW_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:79:7
[INFO] [stdout]    |
[INFO] [stdout] 79 | const FLORA_SNOW_A: [f32; 2] = flora_uv(0, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SNOW_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:80:7
[INFO] [stdout]    |
[INFO] [stdout] 80 | const FLORA_SNOW_B: [f32; 2] = flora_uv(1, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SNOW_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:81:7
[INFO] [stdout]    |
[INFO] [stdout] 81 | const FLORA_SNOW_C: [f32; 2] = flora_uv(2, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SNOW_D` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:82:7
[INFO] [stdout]    |
[INFO] [stdout] 82 | const FLORA_SNOW_D: [f32; 2] = flora_uv(3, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CACTUS_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:83:7
[INFO] [stdout]    |
[INFO] [stdout] 83 | const FLORA_CACTUS_A: [f32; 2] = flora_uv(4, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CACTUS_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:84:7
[INFO] [stdout]    |
[INFO] [stdout] 84 | const FLORA_CACTUS_B: [f32; 2] = flora_uv(5, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CACTUS_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:85:7
[INFO] [stdout]    |
[INFO] [stdout] 85 | const FLORA_CACTUS_C: [f32; 2] = flora_uv(6, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_CACTUS_D` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:86:7
[INFO] [stdout]    |
[INFO] [stdout] 86 | const FLORA_CACTUS_D: [f32; 2] = flora_uv(7, 2);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_DEAD_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:89:7
[INFO] [stdout]    |
[INFO] [stdout] 89 | const FLORA_DEAD_A: [f32; 2] = flora_uv(0, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_DEAD_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:90:7
[INFO] [stdout]    |
[INFO] [stdout] 90 | const FLORA_DEAD_B: [f32; 2] = flora_uv(1, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_DEAD_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:91:7
[INFO] [stdout]    |
[INFO] [stdout] 91 | const FLORA_DEAD_C: [f32; 2] = flora_uv(2, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_DEAD_D` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:92:7
[INFO] [stdout]    |
[INFO] [stdout] 92 | const FLORA_DEAD_D: [f32; 2] = flora_uv(3, 3);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SWAMP_A` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:95:7
[INFO] [stdout]    |
[INFO] [stdout] 95 | const FLORA_SWAMP_A: [f32; 2] = flora_uv(0, 4);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SWAMP_B` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:96:7
[INFO] [stdout]    |
[INFO] [stdout] 96 | const FLORA_SWAMP_B: [f32; 2] = flora_uv(1, 4);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SWAMP_C` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const FLORA_SWAMP_C: [f32; 2] = flora_uv(2, 4);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_SWAMP_D` is never used
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/objects.rs:98:7
[INFO] [stdout]    |
[INFO] [stdout] 98 | const FLORA_SWAMP_D: [f32; 2] = flora_uv(3, 4);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_CROPS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:125:7
[INFO] [stdout]     |
[INFO] [stdout] 125 | const CELL_CROPS: f32 = 1.0 / 10.0;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uv_crops` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:126:10
[INFO] [stdout]     |
[INFO] [stdout] 126 | const fn uv_crops(col: usize, row: usize) -> [f32; 2] {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_TREES` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:130:7
[INFO] [stdout]     |
[INFO] [stdout] 130 | const CELL_TREES: f32 = 1.0 / 10.0;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uv_trees` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:131:10
[INFO] [stdout]     |
[INFO] [stdout] 131 | const fn uv_trees(col: usize, row: usize) -> [f32; 2] {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_FAUNA` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:135:7
[INFO] [stdout]     |
[INFO] [stdout] 135 | const CELL_FAUNA: f32 = 1.0 / 10.0;
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_HUMAN_W` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:137:7
[INFO] [stdout]     |
[INFO] [stdout] 137 | const CELL_HUMAN_W: f32 = 1.0 / 16.0;   // 16 columns
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_HUMAN_H` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:138:7
[INFO] [stdout]     |
[INFO] [stdout] 138 | const CELL_HUMAN_H: f32 = 1.0 / 12.0;   // 12 rows
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_MINERALS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:140:7
[INFO] [stdout]     |
[INFO] [stdout] 140 | const CELL_MINERALS: f32 = 1.0 / 8.0;
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_CONS_W` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:142:7
[INFO] [stdout]     |
[INFO] [stdout] 142 | const CELL_CONS_W: f32 = 1.0 / 10.0;    // 10 columns
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_CONS_H` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:143:7
[INFO] [stdout]     |
[INFO] [stdout] 143 | const CELL_CONS_H: f32 = 1.0 / 12.0;    // 12 rows
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_VFX` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const CELL_VFX: f32 = 1.0 / 10.0;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_190_BAOBAB` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:200:7
[INFO] [stdout]     |
[INFO] [stdout] 200 | const FLORA_190_BAOBAB: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_190_FRUIT` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:205:7
[INFO] [stdout]     |
[INFO] [stdout] 205 | const FLORA_190_FRUIT: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CROPS_190` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:261:7
[INFO] [stdout]     |
[INFO] [stdout] 261 | const CROPS_190: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREES_190` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:268:7
[INFO] [stdout]     |
[INFO] [stdout] 268 | const TREES_190: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_TENT` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:280:7
[INFO] [stdout]     |
[INFO] [stdout] 280 | const ARCH_190_TENT: [f32; 2] = uv_190(1, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_LEAN_TO` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:281:7
[INFO] [stdout]     |
[INFO] [stdout] 281 | const ARCH_190_LEAN_TO: [f32; 2] = uv_190(2, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_NOMAD` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:282:7
[INFO] [stdout]     |
[INFO] [stdout] 282 | const ARCH_190_NOMAD: [f32; 2] = uv_190(3, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_CACHE` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:283:7
[INFO] [stdout]     |
[INFO] [stdout] 283 | const ARCH_190_CACHE: [f32; 2] = uv_190(4, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_OILPUMP` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:284:7
[INFO] [stdout]     |
[INFO] [stdout] 284 | const ARCH_190_OILPUMP: [f32; 2] = uv_190(5, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_FARM` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:285:7
[INFO] [stdout]     |
[INFO] [stdout] 285 | const ARCH_190_FARM: [f32; 2] = uv_190(6, 0);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_WOOD_HOUSE` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:286:7
[INFO] [stdout]     |
[INFO] [stdout] 286 | const ARCH_190_WOOD_HOUSE: [f32; 2] = uv_190(0, 1);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_WOOD_HOUSE_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:287:7
[INFO] [stdout]     |
[INFO] [stdout] 287 | const ARCH_190_WOOD_HOUSE_B: [f32; 2] = uv_190(1, 1);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_WINDMILL` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:288:7
[INFO] [stdout]     |
[INFO] [stdout] 288 | const ARCH_190_WINDMILL: [f32; 2] = uv_190(2, 1);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_STONE_HOUSE_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:291:7
[INFO] [stdout]     |
[INFO] [stdout] 291 | const ARCH_190_STONE_HOUSE_B: [f32; 2] = uv_190(1, 3);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_FORGE` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:292:7
[INFO] [stdout]     |
[INFO] [stdout] 292 | const ARCH_190_FORGE: [f32; 2] = uv_190(2, 3);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_MINE` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:293:7
[INFO] [stdout]     |
[INFO] [stdout] 293 | const ARCH_190_MINE: [f32; 2] = uv_190(3, 3);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_WALL` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:294:7
[INFO] [stdout]     |
[INFO] [stdout] 294 | const ARCH_190_WALL: [f32; 2] = uv_190(0, 5);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARCH_190_FACTORY` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:297:7
[INFO] [stdout]     |
[INFO] [stdout] 297 | const ARCH_190_FACTORY: [f32; 2] = uv_190(2, 7);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_FOREST` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:300:7
[INFO] [stdout]     |
[INFO] [stdout] 300 | const FLORA_TREE_VARIANTS_FOREST: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_GRASSLAND` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:303:7
[INFO] [stdout]     |
[INFO] [stdout] 303 | const FLORA_TREE_VARIANTS_GRASSLAND: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_BUSH_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:306:7
[INFO] [stdout]     |
[INFO] [stdout] 306 | const FLORA_BUSH_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_SNOW` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:309:7
[INFO] [stdout]     |
[INFO] [stdout] 309 | const FLORA_TREE_VARIANTS_SNOW: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_DESERT` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:312:7
[INFO] [stdout]     |
[INFO] [stdout] 312 | const FLORA_TREE_VARIANTS_DESERT: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_MOUNTAIN` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:315:7
[INFO] [stdout]     |
[INFO] [stdout] 315 | const FLORA_TREE_VARIANTS_MOUNTAIN: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLORA_TREE_VARIANTS_WETLAND` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:318:7
[INFO] [stdout]     |
[INFO] [stdout] 318 | const FLORA_TREE_VARIANTS_WETLAND: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_DECOR_0` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:338:7
[INFO] [stdout]     |
[INFO] [stdout] 338 | const UV_GRASS_DECOR_0: [f32; 2] = uv(15, 21); // 1 in 8 is Mushroom
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_DECOR_1` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:339:7
[INFO] [stdout]     |
[INFO] [stdout] 339 | const UV_GRASS_DECOR_1: [f32; 2] = uv(8, 20); // Remainder are invisible
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_DECOR_2` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:340:7
[INFO] [stdout]     |
[INFO] [stdout] 340 | const UV_GRASS_DECOR_2: [f32; 2] = uv(8, 20);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_DECOR_3` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:341:7
[INFO] [stdout]     |
[INFO] [stdout] 341 | const UV_GRASS_DECOR_3: [f32; 2] = uv(8, 20);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FT_BUILDING_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:348:7
[INFO] [stdout]     |
[INFO] [stdout] 348 | const UV_FT_BUILDING_A: [f32; 2] = uv(30, 20);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FT_BUILDING_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:349:7
[INFO] [stdout]     |
[INFO] [stdout] 349 | const UV_FT_BUILDING_B: [f32; 2] = uv(31, 20);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_DECOR_BUSH` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:353:7
[INFO] [stdout]     |
[INFO] [stdout] 353 | const UV_DECOR_BUSH:   [f32; 2] = uv(1, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_DECOR_CACTUS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:356:7
[INFO] [stdout]     |
[INFO] [stdout] 356 | const UV_DECOR_CACTUS: [f32; 2] = uv(4, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:359:7
[INFO] [stdout]     |
[INFO] [stdout] 359 | const UV_TREE_A: [f32; 2] = uv(0, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:360:7
[INFO] [stdout]     |
[INFO] [stdout] 360 | const UV_TREE_B: [f32; 2] = uv(1, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_C` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:361:7
[INFO] [stdout]     |
[INFO] [stdout] 361 | const UV_TREE_C: [f32; 2] = uv(2, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_D` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:362:7
[INFO] [stdout]     |
[INFO] [stdout] 362 | const UV_TREE_D: [f32; 2] = uv(3, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_E` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:363:7
[INFO] [stdout]     |
[INFO] [stdout] 363 | const UV_TREE_E: [f32; 2] = uv(4, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_TREE_F` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:364:7
[INFO] [stdout]     |
[INFO] [stdout] 364 | const UV_TREE_F: [f32; 2] = uv(5, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_ROCK_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:367:7
[INFO] [stdout]     |
[INFO] [stdout] 367 | const UV_ROCK_A:       [f32; 2] = uv(6, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_ROCK_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:368:7
[INFO] [stdout]     |
[INFO] [stdout] 368 | const UV_ROCK_B:       [f32; 2] = uv(7, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_REED_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:369:7
[INFO] [stdout]     |
[INFO] [stdout] 369 | const UV_REED_A:       [f32; 2] = uv(8, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_REED_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:370:7
[INFO] [stdout]     |
[INFO] [stdout] 370 | const UV_REED_B:       [f32; 2] = uv(9, 21);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FLOWER_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:373:7
[INFO] [stdout]     |
[INFO] [stdout] 373 | const UV_FLOWER_A:     [f32; 2] = uv(10, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FLOWER_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:374:7
[INFO] [stdout]     |
[INFO] [stdout] 374 | const UV_FLOWER_B:     [f32; 2] = uv(11, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FLOWER_C` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:375:7
[INFO] [stdout]     |
[INFO] [stdout] 375 | const UV_FLOWER_C:     [f32; 2] = uv(12, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_TUFT_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:376:7
[INFO] [stdout]     |
[INFO] [stdout] 376 | const UV_GRASS_TUFT_A: [f32; 2] = uv(13, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_GRASS_TUFT_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:377:7
[INFO] [stdout]     |
[INFO] [stdout] 377 | const UV_GRASS_TUFT_B: [f32; 2] = uv(14, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_0` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:381:7
[INFO] [stdout]     |
[INFO] [stdout] 381 | const UV_MW_DECOR_0:   [f32; 2] = uv(16, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_1` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:382:7
[INFO] [stdout]     |
[INFO] [stdout] 382 | const UV_MW_DECOR_1:   [f32; 2] = uv(17, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_2` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:383:7
[INFO] [stdout]     |
[INFO] [stdout] 383 | const UV_MW_DECOR_2:   [f32; 2] = uv(18, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_3` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:384:7
[INFO] [stdout]     |
[INFO] [stdout] 384 | const UV_MW_DECOR_3:   [f32; 2] = uv(19, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_4` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:385:7
[INFO] [stdout]     |
[INFO] [stdout] 385 | const UV_MW_DECOR_4:   [f32; 2] = uv(20, 21);
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FT_ROCK_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:393:7
[INFO] [stdout]     |
[INFO] [stdout] 393 | const UV_FT_ROCK_A:    [f32; 2] = uv(2, 19);
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FT_ROCK_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:394:7
[INFO] [stdout]     |
[INFO] [stdout] 394 | const UV_FT_ROCK_B:    [f32; 2] = uv(3, 19);
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FT_ROCK_C` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:395:7
[INFO] [stdout]     |
[INFO] [stdout] 395 | const UV_FT_ROCK_C:    [f32; 2] = uv(4, 19);
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT_SL_A` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:400:7
[INFO] [stdout]     |
[INFO] [stdout] 400 | const UV_HUT_SL_A:     [f32; 2] = uv(0, 18);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT_SL_B` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:401:7
[INFO] [stdout]     |
[INFO] [stdout] 401 | const UV_HUT_SL_B:     [f32; 2] = uv(1, 18);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT_SL_C` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:402:7
[INFO] [stdout]     |
[INFO] [stdout] 402 | const UV_HUT_SL_C:     [f32; 2] = uv(2, 18);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT_SL_D` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:403:7
[INFO] [stdout]     |
[INFO] [stdout] 403 | const UV_HUT_SL_D:     [f32; 2] = uv(3, 18);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT_SL_E` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:404:7
[INFO] [stdout]     |
[INFO] [stdout] 404 | const UV_HUT_SL_E:     [f32; 2] = uv(4, 18);
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_CAMPFIRE_0` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:410:7
[INFO] [stdout]     |
[INFO] [stdout] 410 | const UV_CAMPFIRE_0:  [f32; 2] = uv(6, 20); // Stone
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_CAMPFIRE_1` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:411:7
[INFO] [stdout]     |
[INFO] [stdout] 411 | const UV_CAMPFIRE_1:  [f32; 2] = uv(6, 20); // Stone
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_CAMPFIRE_2` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:412:7
[INFO] [stdout]     |
[INFO] [stdout] 412 | const UV_CAMPFIRE_2:  [f32; 2] = uv(6, 20); // Stone
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_LEAN_TO` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:413:7
[INFO] [stdout]     |
[INFO] [stdout] 413 | const UV_LEAN_TO:     [f32; 2] = uv(10, 20); // Wood
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_HUT` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:414:7
[INFO] [stdout]     |
[INFO] [stdout] 414 | const UV_HUT:         [f32; 2] = uv(12, 20); // Crate
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_WALL` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:415:7
[INFO] [stdout]     |
[INFO] [stdout] 415 | const UV_WALL:        [f32; 2] = uv(10, 20); // Wood
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_FOOD_CACHE` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:416:7
[INFO] [stdout]     |
[INFO] [stdout] 416 | const UV_FOOD_CACHE:  [f32; 2] = uv(12, 20); // Crate
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREE_VARIANTS_FOREST` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:419:7
[INFO] [stdout]     |
[INFO] [stdout] 419 | const TREE_VARIANTS_FOREST: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREE_VARIANTS_GRASSLAND` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:422:7
[INFO] [stdout]     |
[INFO] [stdout] 422 | const TREE_VARIANTS_GRASSLAND: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUSH_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:425:7
[INFO] [stdout]     |
[INFO] [stdout] 425 | const BUSH_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROCK_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:428:7
[INFO] [stdout]     |
[INFO] [stdout] 428 | const ROCK_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLOWER_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:431:7
[INFO] [stdout]     |
[INFO] [stdout] 431 | const FLOWER_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REED_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:436:7
[INFO] [stdout]     |
[INFO] [stdout] 436 | const REED_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LEANTO_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:439:7
[INFO] [stdout]     |
[INFO] [stdout] 439 | const LEANTO_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUT_VARIANTS` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:442:7
[INFO] [stdout]     |
[INFO] [stdout] 442 | const HUT_VARIANTS: &[[f32; 2]] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UV_MW_DECOR_30` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/renderer/objects.rs:445:7
[INFO] [stdout]     |
[INFO] [stdout] 445 | const UV_MW_DECOR_30: [f32; 2] = UV_STONE;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `params_buf` is never read
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/memetic_compute.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct MemeticComputePipeline {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     params_buf: wgpu::Buffer,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `params_buf` is never read
[INFO] [stdout]   --> crates/emergence-viewer/src/renderer/climate_compute.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ClimateComputePipeline {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     params_buf: wgpu::Buffer,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `life_phase_index` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/animation.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn life_phase_index(beings: &Beings, i: usize) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `body_build_index` is never used
[INFO] [stdout]    --> crates/emergence-viewer/src/animation.rs:255:4
[INFO] [stdout]     |
[INFO] [stdout] 255 | fn body_build_index(beings: &Beings, i: usize) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blit_cell` is never used
[INFO] [stdout]     --> crates/emergence-viewer/src/atlas/generator.rs:1314:4
[INFO] [stdout]      |
[INFO] [stdout] 1314 | fn blit_cell(pixels: &mut [u8], atlas_row: usize, atlas_col: usize, tile: &image::RgbaImage) {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crop_and_scale` is never used
[INFO] [stdout]     --> crates/emergence-viewer/src/atlas/generator.rs:1333:4
[INFO] [stdout]      |
[INFO] [stdout] 1333 | fn crop_and_scale(src: &image::RgbaImage, sx: u32, sy: u32, sw: u32, sh: u32) -> image::RgbaImage {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blit_cell_centered` is never used
[INFO] [stdout]     --> crates/emergence-viewer/src/atlas/generator.rs:1338:4
[INFO] [stdout]      |
[INFO] [stdout] 1338 | fn blit_cell_centered(pixels: &mut [u8], atlas_row: usize, atlas_col: usize, src: &image::RgbaImage) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `trigger` is never read
[INFO] [stdout]   --> crates/emergence-viewer/src/ui/tooltips.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct TooltipDef {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 19 |     trigger: TooltipTrigger,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]    --> crates/emergence-viewer/src/audio/mod.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | struct AmbientLayer {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] 287 |     /// Human-readable label for debugging
[INFO] [stdout] 288 |     label:       &'static str,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AmbientLayer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MapId` and `MapSelection`
[INFO] [stdout]  --> crates/emergence-app/src/main.rs:6:34
[INFO] [stdout]   |
[INFO] [stdout] 6 | use emergence_core::world::map::{MapId, MapSelection};
[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: `MapId` and `MapSelection`
[INFO] [stdout]  --> crates/emergence-app/src/main.rs:6:34
[INFO] [stdout]   |
[INFO] [stdout] 6 | use emergence_core::world::map::{MapId, MapSelection};
[INFO] [stdout]   |                                  ^^^^^  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-app/src/main.rs:72:72
[INFO] [stdout]    |
[INFO] [stdout] 72 |     style.visuals.widgets.noninteractive.fg_stroke = egui::Stroke::new(1.0, egui::Color32::from_gray(160));
[INFO] [stdout]    |                                                                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-app/src/main.rs:76:66
[INFO] [stdout]    |
[INFO] [stdout] 76 |     style.visuals.widgets.inactive.bg_stroke = egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(60, 80, 120, 80));
[INFO] [stdout]    |                                                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-app/src/main.rs:77:65
[INFO] [stdout]    |
[INFO] [stdout] 77 |     style.visuals.widgets.hovered.bg_stroke = egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(80, 110, 180, 140));
[INFO] [stdout]    |                                                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-app/src/main.rs:81:56
[INFO] [stdout]    |
[INFO] [stdout] 81 |     style.visuals.selection.stroke = egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(80, 130, 220, 180));
[INFO] [stdout]    |                                                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-app/src/main.rs:72:72
[INFO] [stdout]    |
[INFO] [stdout] 72 |     style.visuals.widgets.noninteractive.fg_stroke = egui::Stroke::new(1.0, egui::Color32::from_gray(160));
[INFO] [stdout]    |                                                                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-app/src/main.rs:76:66
[INFO] [stdout]    |
[INFO] [stdout] 76 |     style.visuals.widgets.inactive.bg_stroke = egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(60, 80, 120, 80));
[INFO] [stdout]    |                                                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-app/src/main.rs:77:65
[INFO] [stdout]    |
[INFO] [stdout] 77 |     style.visuals.widgets.hovered.bg_stroke = egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(80, 110, 180, 140));
[INFO] [stdout]    |                                                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> crates/emergence-app/src/main.rs:81:56
[INFO] [stdout]    |
[INFO] [stdout] 81 |     style.visuals.selection.stroke = egui::Stroke::new(1.0, egui::Color32::from_rgba_premultiplied(80, 130, 220, 180));
[INFO] [stdout]    |                                                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1979:63
[INFO] [stdout]      |
[INFO] [stdout] 1979 | ...                   egui::Stroke::new(1.5, stroke_color),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1985:63
[INFO] [stdout]      |
[INFO] [stdout] 1985 | ...                   egui::Stroke::new(1.5, stroke_color),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1989:63
[INFO] [stdout]      |
[INFO] [stdout] 1989 | ...                   egui::Stroke::new(1.5, stroke_color),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1995:63
[INFO] [stdout]      |
[INFO] [stdout] 1995 | ...                   egui::Stroke::new(2.0, stroke_color),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2054:55
[INFO] [stdout]      |
[INFO] [stdout] 2054 | ...                   egui::Stroke::new(1.0, egui::Color32::from_rgba_unmultiplied(255, 220, 100, 60)),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2068:55
[INFO] [stdout]      |
[INFO] [stdout] 2068 | ...                   egui::Stroke::new(1.0, egui::Color32::from_rgba_unmultiplied(200, 160, 60, 220)),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2208:67
[INFO] [stdout]      |
[INFO] [stdout] 2208 | ...                   egui::Stroke::new(1.5, egui::Color32::from_rgba_unmultiplied(255, 255, 255, 180)),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2523:49
[INFO] [stdout]      |
[INFO] [stdout] 2523 | ...                   1.5,
[INFO] [stdout]      |                       ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2541:49
[INFO] [stdout]      |
[INFO] [stdout] 2541 | ...                   1.2,
[INFO] [stdout]      |                       ^^^ help: explicitly specify the type as `f32`: `1.2_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2563:63
[INFO] [stdout]      |
[INFO] [stdout] 2563 | ...                   egui::Stroke::new(1.0, color),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1979:63
[INFO] [stdout]      |
[INFO] [stdout] 1979 | ...                   egui::Stroke::new(1.5, stroke_color),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1985:63
[INFO] [stdout]      |
[INFO] [stdout] 1985 | ...                   egui::Stroke::new(1.5, stroke_color),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1989:63
[INFO] [stdout]      |
[INFO] [stdout] 1989 | ...                   egui::Stroke::new(1.5, stroke_color),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1995:63
[INFO] [stdout]      |
[INFO] [stdout] 1995 | ...                   egui::Stroke::new(2.0, stroke_color),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2054:55
[INFO] [stdout]      |
[INFO] [stdout] 2054 | ...                   egui::Stroke::new(1.0, egui::Color32::from_rgba_unmultiplied(255, 220, 100, 60)),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2068:55
[INFO] [stdout]      |
[INFO] [stdout] 2068 | ...                   egui::Stroke::new(1.0, egui::Color32::from_rgba_unmultiplied(200, 160, 60, 220)),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2208:67
[INFO] [stdout]      |
[INFO] [stdout] 2208 | ...                   egui::Stroke::new(1.5, egui::Color32::from_rgba_unmultiplied(255, 255, 255, 180)),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2523:49
[INFO] [stdout]      |
[INFO] [stdout] 2523 | ...                   1.5,
[INFO] [stdout]      |                       ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2541:49
[INFO] [stdout]      |
[INFO] [stdout] 2541 | ...                   1.2,
[INFO] [stdout]      |                       ^^^ help: explicitly specify the type as `f32`: `1.2_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:2563:63
[INFO] [stdout]      |
[INFO] [stdout] 2563 | ...                   egui::Stroke::new(1.0, color),
[INFO] [stdout]      |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1388:21
[INFO] [stdout]      |
[INFO] [stdout] 1388 |                 let mut w = world.write().unwrap();
[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: `w`
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1388:21
[INFO] [stdout]      |
[INFO] [stdout] 1388 |                 let mut w = world.write().unwrap();
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `filters` is never read
[INFO] [stdout]    --> crates/emergence-app/src/main.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout]  90 | struct App {
[INFO] [stdout]     |        --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 167 |     filters: PopulationFilters,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:3318:48
[INFO] [stdout]      |
[INFO] [stdout] 3318 |         libc::signal(libc::SIGTERM, sighandler as libc::sighandler_t);
[INFO] [stdout]      |                                                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 3318 |         libc::signal(libc::SIGTERM, sighandler as *const () as libc::sighandler_t);
[INFO] [stdout]      |                                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:3319:47
[INFO] [stdout]      |
[INFO] [stdout] 3319 |         libc::signal(libc::SIGHUP, sighandler as libc::sighandler_t);
[INFO] [stdout]      |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 3319 |         libc::signal(libc::SIGHUP, sighandler as *const () as libc::sighandler_t);
[INFO] [stdout]      |                                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:3320:47
[INFO] [stdout]      |
[INFO] [stdout] 3320 |         libc::signal(libc::SIGINT, sighandler as libc::sighandler_t);
[INFO] [stdout]      |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 3320 |         libc::signal(libc::SIGINT, sighandler as *const () as libc::sighandler_t);
[INFO] [stdout]      |                                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1388:21
[INFO] [stdout]      |
[INFO] [stdout] 1388 |                 let mut w = world.write().unwrap();
[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: `w`
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:1388:21
[INFO] [stdout]      |
[INFO] [stdout] 1388 |                 let mut w = world.write().unwrap();
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `filters` is never read
[INFO] [stdout]    --> crates/emergence-app/src/main.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout]  90 | struct App {
[INFO] [stdout]     |        --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 167 |     filters: PopulationFilters,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:3318:48
[INFO] [stdout]      |
[INFO] [stdout] 3318 |         libc::signal(libc::SIGTERM, sighandler as libc::sighandler_t);
[INFO] [stdout]      |                                                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 3318 |         libc::signal(libc::SIGTERM, sighandler as *const () as libc::sighandler_t);
[INFO] [stdout]      |                                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:3319:47
[INFO] [stdout]      |
[INFO] [stdout] 3319 |         libc::signal(libc::SIGHUP, sighandler as libc::sighandler_t);
[INFO] [stdout]      |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 3319 |         libc::signal(libc::SIGHUP, sighandler as *const () as libc::sighandler_t);
[INFO] [stdout]      |                                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> crates/emergence-app/src/main.rs:3320:47
[INFO] [stdout]      |
[INFO] [stdout] 3320 |         libc::signal(libc::SIGINT, sighandler as libc::sighandler_t);
[INFO] [stdout]      |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 3320 |         libc::signal(libc::SIGINT, sighandler as *const () as libc::sighandler_t);
[INFO] [stdout]      |                                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 14s
[INFO] running `Command { std: "docker" "inspect" "37c41fb13bf741cd2560de1df3bc1aa777d1372b22e81f34cc03d5fb15c88172", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "37c41fb13bf741cd2560de1df3bc1aa777d1372b22e81f34cc03d5fb15c88172", kill_on_drop: false }`
[INFO] [stdout] 37c41fb13bf741cd2560de1df3bc1aa777d1372b22e81f34cc03d5fb15c88172
