summaryrefslogtreecommitdiff
path: root/dungeon
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-10-19 12:15:54 -0400
committerFreya Murphy <freya@freyacat.org>2025-10-19 12:15:54 -0400
commitb43b82c555bea1963ea2bd99f5c95d8b82840965 (patch)
treedf6fccbfc77dff27d4671d63c066e6de45eef62e /dungeon
parentgraphics: add audio/texture subsytem (diff)
downloadDungeonCrawl-b43b82c555bea1963ea2bd99f5c95d8b82840965.tar.gz
DungeonCrawl-b43b82c555bea1963ea2bd99f5c95d8b82840965.tar.bz2
DungeonCrawl-b43b82c555bea1963ea2bd99f5c95d8b82840965.zip
dungeon: refactor constructors
Diffstat (limited to 'dungeon')
-rw-r--r--dungeon/src/lib.rs21
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 }
}