diff options
| author | Freya Murphy <freya@freyacat.org> | 2025-10-19 12:15:54 -0400 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2025-10-19 12:15:54 -0400 |
| commit | b43b82c555bea1963ea2bd99f5c95d8b82840965 (patch) | |
| tree | df6fccbfc77dff27d4671d63c066e6de45eef62e /dungeon | |
| parent | graphics: add audio/texture subsytem (diff) | |
| download | DungeonCrawl-b43b82c555bea1963ea2bd99f5c95d8b82840965.tar.gz DungeonCrawl-b43b82c555bea1963ea2bd99f5c95d8b82840965.tar.bz2 DungeonCrawl-b43b82c555bea1963ea2bd99f5c95d8b82840965.zip | |
dungeon: refactor constructors
Diffstat (limited to 'dungeon')
| -rw-r--r-- | dungeon/src/lib.rs | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/dungeon/src/lib.rs b/dungeon/src/lib.rs index 0a04ca7..b65ebed 100644 --- a/dungeon/src/lib.rs +++ b/dungeon/src/lib.rs @@ -28,10 +28,7 @@ impl Dungeon { /// ``` #[must_use] pub fn new() -> Self { - let floor = Floor::generate(); - let player = Player::new(floor.player_start()); - - Self { floor, player } + Self::from(Floor::generate()) } /// Creates a new `Dungeon` with a provided seed. @@ -46,17 +43,19 @@ impl Dungeon { /// ``` #[must_use] pub fn new_seeded(seed: u64) -> Self { - let floor = Floor::generate_seeded(seed); - let player = Player::new(floor.player_start()); - - Self { floor, player } + Self::from(Floor::generate_seeded(seed)) } } - impl Default for Dungeon { fn default() -> Self { - let floor = Floor::default(); - let player = Player::default(); + Self::from(Floor::default()) + } +} +impl From<Floor> for Dungeon { + fn from(floor: Floor) -> Self { + let player = Player::new(floor.player_start()); + + // TODO: initalize rest of game state Self { floor, player } } |