diff options
| author | Freya Murphy <freya@freyacat.org> | 2025-11-15 11:21:13 -0500 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2025-11-15 11:21:13 -0500 |
| commit | 00b8c195f7cf7e7147d87bc1e77b1c738dacf993 (patch) | |
| tree | 849b4aecaba02ec74945ec69451690d019ca2efd | |
| parent | dungeon: refactor entity movement (diff) | |
| download | DungeonCrawl-00b8c195f7cf7e7147d87bc1e77b1c738dacf993.tar.gz DungeonCrawl-00b8c195f7cf7e7147d87bc1e77b1c738dacf993.tar.bz2 DungeonCrawl-00b8c195f7cf7e7147d87bc1e77b1c738dacf993.zip | |
dungeon: randomize floor brick accents
| -rw-r--r-- | assets/atlas.bmp | bin | 16522 -> 16522 bytes | |||
| -rw-r--r-- | graphics/src/render.rs | 35 |
2 files changed, 34 insertions, 1 deletions
diff --git a/assets/atlas.bmp b/assets/atlas.bmp Binary files differindex 70dc15b..3ec946b 100644 --- a/assets/atlas.bmp +++ b/assets/atlas.bmp diff --git a/graphics/src/render.rs b/graphics/src/render.rs index 996aa37..cc9847e 100644 --- a/graphics/src/render.rs +++ b/graphics/src/render.rs @@ -1,4 +1,9 @@ -use std::{f32, io::Write, time::Duration}; +use std::{ + f32, + hash::{DefaultHasher, Hash, Hasher}, + io::Write, + time::Duration, +}; use dungeon::{ Dungeon, @@ -102,6 +107,12 @@ const ATLAS_INV_CONTAINER: (u16, u16) = (1, 1); const ATLAS_HEART_ICON: (u16, u16) = (2, 1); const ATLAS_DAMAGE_ICON: (u16, u16) = (3, 1); +// Floor ext accent textures +const ATLAS_FLOOR_EXT1: (u16, u16) = (0, 2); +const ATLAS_FLOOR_EXT2: (u16, u16) = (1, 2); +const ATLAS_FLOOR_EXT3: (u16, u16) = (2, 2); +const ATLAS_FLOOR_EXT4: (u16, u16) = (3, 2); + // Misc atlas.bmp textures //const ATLAS_ERROR: (u16, u16) = (3, 3); @@ -388,6 +399,28 @@ impl Renderer { TEXTURE_SIZE, 0.0, ); + if idx == ATLAS_FLOOR { + // add possible extentions + let mut hasher = DefaultHasher::new(); + pos.hash(&mut hasher); + let idx_ext = match hasher.finish() % 20 { + 0 => Some(ATLAS_FLOOR_EXT1), + 5 => Some(ATLAS_FLOOR_EXT2), + 10 => Some(ATLAS_FLOOR_EXT3), + 15 => Some(ATLAS_FLOOR_EXT4), + _ => None, + }; + if let Some(idx) = idx_ext { + rt.draw_atlas( + &self.textures.atlas, + idx, + x * TEXTURE_SIZE, + y * TEXTURE_SIZE, + TEXTURE_SIZE, + 0.0, + ); + } + } } } |