diff options
Diffstat (limited to 'pixel-client/src/menu/background.rs')
| -rw-r--r-- | pixel-client/src/menu/background.rs | 97 | 
1 files changed, 0 insertions, 97 deletions
| diff --git a/pixel-client/src/menu/background.rs b/pixel-client/src/menu/background.rs deleted file mode 100644 index 190858a6..00000000 --- a/pixel-client/src/menu/background.rs +++ /dev/null @@ -1,97 +0,0 @@ -/* -    Hurry Curry! - a game about cooking -    Copyright (C) 2025 Hurry Curry! Contributors - -    This program is free software: you can redistribute it and/or modify -    it under the terms of the GNU Affero General Public License as published by -    the Free Software Foundation, version 3 of the License only. - -    This program is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -    GNU Affero General Public License for more details. - -    You should have received a copy of the GNU Affero General Public License -    along with this program.  If not, see <https://www.gnu.org/licenses/>. - -*/ -use crate::{ -    render::{sprite::SpriteDraw, AtlasLayout, Renderer}, -    tilemap::Tilemap, -}; -use hurrycurry_protocol::{ -    glam::{IVec2, Vec2}, -    TileIndex, -}; -use rand::{random, rng, seq::IndexedRandom}; - -pub struct MenuBackground { -    background: Vec2, -    map: Tilemap, -} - -impl MenuBackground { -    pub fn new(layout: &AtlasLayout) -> Self { -        let mut map = Tilemap::default(); -        map.init( -            &[ -                "floor", -                "tomato-crate", -                "steak-crate", -                "table", -                "chair", -                "counter", -                "sink", -                "stove", -            ] -            .map(String::from), -            layout, -        ); -        static BUCKETS: &[&[usize]] = &[&[], &[0, 0, 0, 0, 1, 2], &[3, 4, 5], &[6, 7]]; - -        for x in -10..11 { -            for y in -10..11 { -                let p = Vec2::new(x as f32, y as f32); -                let w = (-p.length() * 0.15).exp(); -                let k = ((random::<f32>() * w) * BUCKETS.len() as f32) as usize; -                if let Some(ti) = BUCKETS[k.min(BUCKETS.len())].choose(&mut rng()) { -                    map.set(IVec2::new(x, y), Some(TileIndex(*ti)), [None; 4]) -                } -            } -        } -        Self { -            map, -            background: Vec2::ZERO, -        } -    } - -    pub fn tick(&mut self, dt: f32) { -        self.background += Vec2::new(2., 3.) * dt; -        self.background %= 256.; -    } -    pub fn draw(&self, ctx: &mut Renderer) { -        ctx.set_world_view( -            ctx.size / ctx.get_world_scale() * Vec2::new(0.8, 0.2), -            ctx.size.max_element() / 32. / 15., -        ); - -        for x in -1..=2 { -            for y in -1..=2 { -                ctx.draw_ui(SpriteDraw::underlay( -                    ctx.misc_textures.clouds, -                    Vec2::new(x as f32, y as f32) * 256. + self.background, -                    Vec2::ONE * 256., -                    None, -                )); -            } -        } -        ctx.draw_ui(SpriteDraw::underlay( -            ctx.misc_textures.solid, -            Vec2::ZERO, -            ctx.ui_size, -            Some([0, 0, 0, 50]), -        )); - -        self.map.draw(ctx); -    } -} | 
