From b43b82c555bea1963ea2bd99f5c95d8b82840965 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Sun, 19 Oct 2025 12:15:54 -0400 Subject: dungeon: refactor constructors --- dungeon/src/lib.rs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'dungeon') 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 for Dungeon { + fn from(floor: Floor) -> Self { + let player = Player::new(floor.player_start()); + + // TODO: initalize rest of game state Self { floor, player } } -- cgit v1.2.3-freya