summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml1
-rw-r--r--dungeon/src/astar.rs2
-rw-r--r--dungeon/src/entity.rs14
-rw-r--r--dungeon/src/lib.rs13
-rw-r--r--dungeon/src/player_input.rs2
-rw-r--r--dungeon/src/pos.rs64
-rw-r--r--dungeon/tests/bsp.rs7
-rw-r--r--game/src/main.rs6
-rw-r--r--graphics/src/render.rs6
9 files changed, 63 insertions, 52 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 688065b..98c9585 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -87,6 +87,7 @@ unnested_or_patterns = "warn"
used_underscore_binding = "warn"
used_underscore_items = "warn"
verbose_bit_mask = "warn"
+wildcard_imports = "warn"
# restriction
allow_attributes = "warn"
diff --git a/dungeon/src/astar.rs b/dungeon/src/astar.rs
index a2ae4d3..d26ca5e 100644
--- a/dungeon/src/astar.rs
+++ b/dungeon/src/astar.rs
@@ -3,7 +3,7 @@ use std::{
hash::Hash,
};
-use crate::{Floor, Pos};
+use crate::{map::Floor, pos::Pos};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
struct Node {
diff --git a/dungeon/src/entity.rs b/dungeon/src/entity.rs
index 818328c..592c1ee 100644
--- a/dungeon/src/entity.rs
+++ b/dungeon/src/entity.rs
@@ -2,7 +2,11 @@
use rand::{Rng, rngs::SmallRng};
-use crate::{Direction, FPos, Floor, Pos, astar, const_pos};
+use crate::{
+ astar, const_pos,
+ map::Floor,
+ pos::{Direction, FPos, Pos},
+};
/// `PLAYER_FULL_HEALTH` is the starting health of the player entity
pub const PLAYER_FULL_HEALTH: u32 = 10;
@@ -137,7 +141,7 @@ impl Entity {
/// # Examples
///
/// ```
- /// use dungeon::{Pos, Direction, Entity, EntityKind};
+ /// use dungeon::{pos::{Pos, Direction}, entity::{Entity, EntityKind}};
///
/// let pos = Pos::new(0, 0).unwrap();
/// let dir = Direction::North;
@@ -167,7 +171,7 @@ impl Entity {
/// # Examples
///
/// ```
- /// use dungeon::{Pos, Entity};
+ /// use dungeon::{pos::Pos, entity::Entity};
///
/// let pos = Pos::new(0, 0).unwrap();
/// let player = Entity::player(pos);
@@ -185,7 +189,7 @@ impl Entity {
/// # Examples
///
/// ```
- /// use dungeon::{Pos, Entity};
+ /// use dungeon::{pos::Pos, entity::Entity};
///
/// let pos = Pos::new(0, 0).unwrap();
/// let player = Entity::zombie(pos);
@@ -334,7 +338,7 @@ impl Player {
/// # Examples
///
/// ```
- /// use dungeon::{Pos, Player};
+ /// use dungeon::{pos::Pos, entity::Player};
///
/// let pos = Pos::new(1, 2).unwrap();
/// let player = Player::new(pos);
diff --git a/dungeon/src/lib.rs b/dungeon/src/lib.rs
index b96cb83..a475f95 100644
--- a/dungeon/src/lib.rs
+++ b/dungeon/src/lib.rs
@@ -8,17 +8,18 @@ pub mod map;
pub mod player_input;
pub mod pos;
-pub use bsp::*;
-pub use entity::*;
-pub use map::*;
-pub use player_input::*;
-pub use pos::*;
-
use rand::{
SeedableRng, TryRngCore,
rngs::{OsRng, SmallRng},
};
+use crate::{
+ entity::{Entity, Player},
+ map::Floor,
+ player_input::PlayerInput,
+ pos::FPos,
+};
+
/// The `Dungeon` type represents the game state of the
/// dungeon crawler.
#[derive(Debug, Clone)]
diff --git a/dungeon/src/player_input.rs b/dungeon/src/player_input.rs
index 643b014..aa0ef14 100644
--- a/dungeon/src/player_input.rs
+++ b/dungeon/src/player_input.rs
@@ -1,4 +1,4 @@
-use crate::pos::*;
+use crate::pos::Direction;
/// Carries information on the player's inputs.
/// Allows the game to retrieve player input commands,
diff --git a/dungeon/src/pos.rs b/dungeon/src/pos.rs
index 16f1fe5..7ee97eb 100644
--- a/dungeon/src/pos.rs
+++ b/dungeon/src/pos.rs
@@ -15,7 +15,7 @@ use std::{
ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Sub, SubAssign},
};
-use crate::{MAP_SIZE_USIZE, map::MAP_SIZE};
+use crate::map::{MAP_SIZE, MAP_SIZE_USIZE};
/// This allows us have a u16::try_from(usize)
/// like expr in a const context
@@ -101,14 +101,14 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::Pos;
+ /// use dungeon::pos::Pos;
///
/// let pos = Pos::new(0,0);
- /// assert!(pos.is_some());
+ /// assert!(pos.is_some())
/// ```
///
/// ```
- /// use dungeon::{Pos, MAP_SIZE};
+ /// use dungeon::{pos::Pos, map::MAP_SIZE};
///
/// let pos = Pos::new(MAP_SIZE, MAP_SIZE);
/// assert!(pos.is_none())
@@ -129,7 +129,7 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::Pos;
+ /// use dungeon::pos::Pos;
///
/// let pos = unsafe { Pos::new_unchecked(1, 1) };
/// assert_eq!(pos.xy(), (1,1));
@@ -150,7 +150,7 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::Pos;
+ /// use dungeon::pos::Pos;
///
/// let pos = Pos::new(5,7).unwrap();
/// let (x,y) = pos.xy();
@@ -167,7 +167,7 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::Pos;
+ /// use dungeon::pos::Pos;
///
/// let pos = Pos::new(5,7).unwrap();
/// assert_eq!(pos.x(), 5);
@@ -182,7 +182,7 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::Pos;
+ /// use dungeon::pos::Pos;
///
/// let pos = Pos::new(5,7).unwrap();
/// assert_eq!(pos.y(), 7);
@@ -197,7 +197,7 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::{Pos, MAP_SIZE_USIZE};
+ /// use dungeon::{pos::Pos, map::MAP_SIZE_USIZE};
///
/// let pos = Pos::new(1,2).unwrap();
/// let idx = pos.idx();
@@ -214,7 +214,7 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::{Pos, MAP_SIZE_USIZE};
+ /// use dungeon::{pos::Pos, map::MAP_SIZE_USIZE};
///
/// let idx_pos = Pos::from_idx(MAP_SIZE_USIZE);
/// let pos = Pos::new(0, 1);
@@ -223,7 +223,7 @@ impl Pos {
/// ```
///
/// ```
- /// use dungeon::{Pos, MAP_SIZE_USIZE};
+ /// use dungeon::{pos::Pos, map::MAP_SIZE_USIZE};
///
/// let idx_pos = Pos::from_idx(MAP_SIZE_USIZE * 70 + 1);
/// let pos = Pos::new(70, 1);
@@ -247,7 +247,7 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::{Direction, Pos};
+ /// use dungeon::pos::{Direction, Pos};
///
/// let pos = Pos::new(0, 1).unwrap();
/// let new_pos = pos.step(Direction::North);
@@ -255,7 +255,7 @@ impl Pos {
/// ```
///
/// ```
- /// use dungeon::{Direction, Pos};
+ /// use dungeon::pos::{Direction, Pos};
///
/// let pos = Pos::new(0, 1).unwrap();
/// let new_pos = pos.step(Direction::West);
@@ -273,7 +273,7 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::{Direction, Pos};
+ /// use dungeon::pos::{Direction, Pos};
///
/// let pos = Pos::new(0, 1).unwrap();
/// let new_pos = pos.step_by(Direction::South, 3);
@@ -281,7 +281,7 @@ impl Pos {
/// ```
///
/// ```
- /// use dungeon::{Direction, Pos};
+ /// use dungeon::pos::{Direction, Pos};
///
/// let pos = Pos::new(1, 1).unwrap();
/// let new_pos = pos.step_by(Direction::West, 2);
@@ -309,7 +309,7 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::Pos;
+ /// use dungeon::pos::Pos;
///
/// let pos1 = Pos::new(2,7).unwrap();
/// let pos2 = Pos::new(1,17).unwrap();
@@ -329,7 +329,7 @@ impl Pos {
/// # Examples
///
/// ```
- /// use dungeon::Pos;
+ /// use dungeon::pos::Pos;
///
/// let pos1 = Pos::new(3, 6).unwrap();
/// let pos2 = Pos::new(5, 1).unwrap();
@@ -344,7 +344,7 @@ impl Pos {
/// Returns of the given position is on the border of the map
///
/// ```
- /// use dungeon::{Pos, MAP_SIZE};
+ /// use dungeon::{pos::Pos, map::MAP_SIZE};
///
/// // Assuming MAP_SIZE is at least 2
///
@@ -387,7 +387,7 @@ impl Default for Pos {
/// Returns a default postion at the origin (0,0)
///
/// ```
- /// use dungeon::Pos;
+ /// use dungeon::pos::Pos;
///
/// let pos = Pos::default();
///
@@ -426,7 +426,7 @@ impl FPos {
/// # Examples
///
/// ```
- /// use dungeon::FPos;
+ /// use dungeon::pos::FPos;
///
/// let fpos = FPos::new(5.4,6.7);
/// ```
@@ -440,7 +440,7 @@ impl FPos {
/// # Examples
///
/// ```
- /// use dungeon::{Pos, FPos};
+ /// use dungeon::pos::{Pos, FPos};
///
/// let pos = Pos::new(1, 1).unwrap();
/// let fpos = FPos::from_pos(pos);
@@ -456,7 +456,7 @@ impl FPos {
/// # Examples
///
/// ```
- /// use dungeon::FPos;
+ /// use dungeon::pos::FPos;
///
/// let fpos = FPos::new(5.0,7.2);
/// let (x,y) = fpos.xy();
@@ -473,7 +473,7 @@ impl FPos {
/// # Examples
///
/// ```
- /// use dungeon::FPos;
+ /// use dungeon::pos::FPos;
///
/// let fpos = FPos::new(5.0,7.2);
/// assert_eq!(fpos.x(), 5.0);
@@ -488,7 +488,7 @@ impl FPos {
/// # Examples
///
/// ```
- /// use dungeon::FPos;
+ /// use dungeon::pos::FPos;
///
/// let fpos = FPos::new(5.0,7.2);
/// assert_eq!(fpos.y(), 7.2);
@@ -517,7 +517,7 @@ impl FPos {
/// # Examples
///
/// ```
- /// use dungeon::{Direction, FPos};
+ /// use dungeon::pos::{Direction, FPos};
///
/// let fpos = FPos::new(0.0, 1.0);
/// let new_fpos = fpos.step_by(Direction::North, 0.3);
@@ -525,7 +525,7 @@ impl FPos {
/// ```
///
/// ```
- /// use dungeon::{Direction, FPos};
+ /// use dungeon::pos::{Direction, FPos};
///
/// let fpos = FPos::new(0.0, 0.0);
/// let new_fpos = fpos.step_by(Direction::North, 5.0);
@@ -552,7 +552,7 @@ impl FPos {
/// Note: some assertions may be commented out, as they would fail due to floating-point error.
///
/// ```
- /// use dungeon::FPos;
+ /// use dungeon::pos::FPos;
///
/// let mut fpos1 = FPos::new(0.0,0.0);
/// let fpos2 = FPos::new(0.0,1.0);
@@ -580,7 +580,7 @@ impl FPos {
/// # Examples
///
/// ```
- /// use dungeon::FPos;
+ /// use dungeon::pos::FPos;
///
/// let fpos1 = FPos::new(0.0,0.0);
/// let fpos2 = FPos::new(0.0,1.0);
@@ -603,7 +603,7 @@ impl FPos {
/// Note: some assertions may be commented out, as they would fail due to floating-point error.
///
/// ```
- /// use dungeon::FPos;
+ /// use dungeon::pos::FPos;
///
/// let mut fpos1 = FPos::new(0.0,0.0);
/// let fpos2 = FPos::new(1.0,1.0);
@@ -634,7 +634,7 @@ impl FPos {
/// # Examples
///
/// ```
- /// use dungeon::FPos;
+ /// use dungeon::pos::FPos;
///
/// let fpos1 = FPos::new(1.0,0.0);
/// let fpos2 = FPos::new(0.0,1.0);
@@ -652,7 +652,7 @@ impl FPos {
/// # Examples
///
/// ```
- /// use dungeon::FPos;
+ /// use dungeon::pos::FPos;
///
/// let fpos1 = FPos::new(1.0, 0.0);
/// let fpos2 = FPos::new(1.2, 1.3);
@@ -722,7 +722,7 @@ impl Default for FPos {
/// Returns a default postion at the origin (0,0)
///
/// ```
- /// use dungeon::FPos;
+ /// use dungeon::pos::FPos;
///
/// let fpos = FPos::default();
///
diff --git a/dungeon/tests/bsp.rs b/dungeon/tests/bsp.rs
index b1287ee..f7919c5 100644
--- a/dungeon/tests/bsp.rs
+++ b/dungeon/tests/bsp.rs
@@ -1,8 +1,11 @@
//! Integration Tests for BSP dungeon generation
#[cfg(test)]
mod tests {
- use dungeon::*;
- use pos::Pos;
+ use dungeon::{
+ bsp,
+ map::{self, TILE_COUNT},
+ pos::Pos,
+ };
use rand::{Rng, SeedableRng, rngs::SmallRng};
/// Generate a set of test seeds for reproducibility with a seeded RNG
diff --git a/game/src/main.rs b/game/src/main.rs
index 4d67a52..b79331b 100644
--- a/game/src/main.rs
+++ b/game/src/main.rs
@@ -1,6 +1,6 @@
use argh::FromArgs;
-use dungeon::*;
-use graphics::*;
+use dungeon::{Dungeon, player_input::PlayerInput, pos::Direction};
+use graphics::{Key, Window, WindowBuilder};
struct Game {
window: Window,
@@ -93,7 +93,7 @@ struct Args {
seed: Option<u64>,
}
-fn main() -> Result<()> {
+fn main() -> graphics::Result<()> {
// Parse arguments
let args: Args = argh::from_env();
// Load the window
diff --git a/graphics/src/render.rs b/graphics/src/render.rs
index bfd9e37..dff09df 100644
--- a/graphics/src/render.rs
+++ b/graphics/src/render.rs
@@ -1,8 +1,10 @@
use std::{f32, io::Write, time::Duration};
use dungeon::{
- Direction, Dungeon, Entity, EntityKind, Floor, Item, MAP_SIZE, PLAYER_INVENTORY_SIZE,
- Player, Pos, Tile,
+ Dungeon,
+ entity::{Entity, EntityKind, Item, PLAYER_INVENTORY_SIZE, Player},
+ map::{Floor, MAP_SIZE, Tile},
+ pos::{Direction, Pos},
};
use raylib::{
RaylibHandle, RaylibThread,