1
0
Fork 0

Replace rltk with bracket_lib, removing one layer of module redirection

This commit is contained in:
Timothy Warren 2022-02-04 14:09:48 -05:00
parent 1c4be360a3
commit 8f10289ed6
71 changed files with 194 additions and 171 deletions

View File

@ -8,17 +8,17 @@ edition = "2021"
[features]
debug = []
default = ["rltk/opengl", "rltk/serde", "rltk/threaded"]
curses = ["rltk/curses", "rltk/serde"]
default = ["bracket-lib/opengl", "bracket-lib/serde", "bracket-lib/threaded"]
curses = ["bracket-lib/curses", "bracket-lib/serde"]
# WebAssembly Build
wasm = ["getrandom/js", "rltk/opengl", "rltk/serde"]
wasm = ["getrandom/js", "bracket-lib/opengl", "bracket-lib/serde"]
[dependencies]
getrandom = { version = "0.2.4", optional = true }
lazy_static = "1.4.0"
regex = "1.5.4"
rltk = { version = "0.8.1", default-features = false }
bracket-lib = { version = "0.8.1", default-features = false }
specs = { version = "0.16.1", features = ["serde"] }
specs-derive = "0.4.1"
serde = { version = "1.0.93", features = ["derive"] }

View File

@ -1,6 +1,6 @@
//! Color constants to replace more verbose methods of defining colors in the game.
//! These constants replace the `::rltk::RGB` constructor functions
use ::rltk::prelude::*;
//! These constants replace the `::bracket_lib::RGB` constructor functions
use ::bracket_lib::prelude::*;
const fn new(r: f32, g: f32, b: f32) -> RGB {
RGB { r, g, b }

View File

@ -5,7 +5,7 @@ mod tags;
use std::collections::HashMap;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::serde::{Deserialize, Serialize};
use ::specs::error::NoError;
use ::specs::prelude::*;
@ -45,7 +45,7 @@ impl From<Position> for Point {
#[derive(Component, ConvertSaveload, Clone)]
pub struct Renderable {
pub glyph: rltk::FontCharType,
pub glyph: FontCharType,
pub fg: RGB,
pub bg: RGB,
pub render_order: i32,

View File

@ -1,3 +1,4 @@
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{
@ -118,7 +119,7 @@ pub fn delete_the_dead(ecs: &mut World) {
ecs.read_storage::<AreaOfEffect>().get(spell_entity)
{
Targets::Tiles {
tiles: aoe_tiles(&map, rltk::Point::new(pos.x, pos.y), aoe.radius),
tiles: aoe_tiles(&map, Point::new(pos.x, pos.y), aoe.radius),
}
} else {
Targets::Tile {

View File

@ -9,7 +9,7 @@ mod triggers;
use std::collections::{HashSet, VecDeque};
use std::sync::Mutex;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
pub use targeting::*;

View File

@ -1,4 +1,4 @@
use ::rltk::Point;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use ::specs::saveload::{MarkedBuilder, SimpleMarker};
@ -26,7 +26,7 @@ pub fn inflict_damage(ecs: &mut World, damage: &EffectSpawner, target: Entity) {
add_effect(
None,
EffectType::Particle {
glyph: rltk::to_cp437('‼'),
glyph: to_cp437('‼'),
fg: colors::ORANGE,
bg: colors::BLACK,
lifespan: 200.0,
@ -139,7 +139,7 @@ pub fn death(ecs: &mut World, effect: &EffectSpawner, target: Entity) {
add_effect(
None,
EffectType::Particle {
glyph: ::rltk::to_cp437('░'),
glyph: to_cp437('░'),
fg: colors::GOLD,
bg: colors::BLACK,
lifespan: 400.0,
@ -165,7 +165,7 @@ pub fn heal_damage(ecs: &mut World, heal: &EffectSpawner, target: Entity) {
add_effect(
None,
EffectType::Particle {
glyph: ::rltk::to_cp437('‼'),
glyph: to_cp437('‼'),
fg: colors::GREEN,
bg: colors::BLACK,
lifespan: 200.0,
@ -184,7 +184,7 @@ pub fn restore_mana(ecs: &mut World, mana: &EffectSpawner, target: Entity) {
add_effect(
None,
EffectType::Particle {
glyph: ::rltk::to_cp437('‼'),
glyph: to_cp437('‼'),
fg: colors::BLUE,
bg: colors::BLACK,
lifespan: 200.0,

View File

@ -1,3 +1,4 @@
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{Equipped, InBackpack, Position};
@ -13,8 +14,8 @@ pub fn entity_position(ecs: &World, target: Entity) -> Option<i32> {
None
}
pub fn aoe_tiles(map: &Map, target: ::rltk::Point, radius: i32) -> Vec<i32> {
let mut blast_tiles = ::rltk::field_of_view(target, radius, &*map);
pub fn aoe_tiles(map: &Map, target: Point, radius: i32) -> Vec<i32> {
let mut blast_tiles = field_of_view(target, radius, &*map);
blast_tiles.retain(|p| p.x > 0 && p.x < map.width - 1 && p.y > 0 && p.y < map.height - 1);
let mut result = Vec::new();
for t in blast_tiles.iter() {

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use super::{add_effect, EffectType, Targets};
@ -352,7 +352,7 @@ fn spawn_line_particles(ecs: &World, start: i32, end: i32, part: &SpawnParticleL
let map = ecs.fetch::<Map>();
let start_pt = Point::new(start % map.width, end / map.width);
let end_pt = Point::new(end % map.width, end / map.width);
let line = ::rltk::line2d(LineAlg::Bresenham, start_pt, end_pt);
let line = line2d(LineAlg::Bresenham, start_pt, end_pt);
for pt in line.iter() {
add_effect(
None,

View File

@ -5,7 +5,7 @@ mod builder;
mod events;
mod logstore;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::serde::{Deserialize, Serialize};
pub use builder::*;
pub use events::*;

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use super::{append_entry, LogFragment};
use crate::colors;

View File

@ -1,6 +1,6 @@
use std::sync::Mutex;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use super::LogFragment;
use crate::colors;

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use super::{menu_box, menu_option};
use crate::{colors, State};
@ -13,7 +13,7 @@ pub enum CheatMenuResult {
GodMode,
}
pub fn show_cheat_mode(_gs: &mut State, ctx: &mut Rltk) -> CheatMenuResult {
pub fn show_cheat_mode(_gs: &mut State, ctx: &mut BTerm) -> CheatMenuResult {
let mut draw_batch = DrawBatch::new();
let count = 4;
let mut y = (25 - (count / 2)) as i32;

View File

@ -1,11 +1,11 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use super::{get_item_display_name, item_result_menu, ItemMenuResult};
use crate::components::InBackpack;
use crate::State;
pub fn drop_item_menu(gs: &mut State, ctx: &mut Rltk) -> (ItemMenuResult, Option<Entity>) {
pub fn drop_item_menu(gs: &mut State, ctx: &mut BTerm) -> (ItemMenuResult, Option<Entity>) {
let mut draw_batch = DrawBatch::new();
let player_entity = gs.ecs.fetch::<Entity>();

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use crate::{colors, gamelog};
@ -8,7 +8,7 @@ pub enum GameOverResult {
QuitToMenu,
}
pub fn game_over(ctx: &mut Rltk) -> GameOverResult {
pub fn game_over(ctx: &mut BTerm) -> GameOverResult {
let mut draw_batch = DrawBatch::new();
draw_batch.print_color_centered(
15,

View File

@ -1,6 +1,6 @@
use std::cmp::Ordering;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use super::{draw_tooltips, get_item_color, get_item_display_name};
@ -38,7 +38,7 @@ fn draw_attribute(name: &str, attribute: &Attribute, y: i32, draw_batch: &mut Dr
draw_batch.set(
Point::new(72, y),
ColorPair::new(color, colors::BLACK),
rltk::to_cp437('+'),
to_cp437('+'),
);
}
}
@ -358,7 +358,7 @@ fn status(ecs: &World, draw_batch: &mut DrawBatch, player_entity: &Entity) {
}
}
pub fn draw_ui(ecs: &World, ctx: &mut Rltk) {
pub fn draw_ui(ecs: &World, ctx: &mut BTerm) {
let mut draw_batch = DrawBatch::new();
let player_entity = ecs.fetch::<Entity>();
@ -375,7 +375,7 @@ pub fn draw_ui(ecs: &World, ctx: &mut Rltk) {
status(ecs, &mut draw_batch, &player_entity);
gamelog::print_log(
&mut ::rltk::BACKEND_INTERNAL.lock().consoles[1].console,
&mut BACKEND_INTERNAL.lock().consoles[1].console,
Point::new(1, 23),
);
draw_tooltips(ecs, ctx);

View File

@ -1,11 +1,11 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use super::{get_item_display_name, item_result_menu, ItemMenuResult};
use crate::components::{Equipped, InBackpack, Item, Name, ObfuscatedName};
use crate::{MasterDungeonMap, State};
pub fn identify_menu(gs: &mut State, ctx: &mut Rltk) -> (ItemMenuResult, Option<Entity>) {
pub fn identify_menu(gs: &mut State, ctx: &mut BTerm) -> (ItemMenuResult, Option<Entity>) {
let mut draw_batch = DrawBatch::new();
let player_entity = gs.ecs.fetch::<Entity>();

View File

@ -1,11 +1,11 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use super::{get_item_display_name, item_result_menu, ItemMenuResult};
use crate::components::InBackpack;
use crate::State;
pub fn show_inventory(gs: &mut State, ctx: &mut Rltk) -> (ItemMenuResult, Option<Entity>) {
pub fn show_inventory(gs: &mut State, ctx: &mut BTerm) -> (ItemMenuResult, Option<Entity>) {
let mut draw_batch = DrawBatch::new();
let player_entity = gs.ecs.fetch::<Entity>();

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{Consumable, CursedItem, MagicItem, MagicItemClass, Name, ObfuscatedName};

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use crate::rex_assets::RexAssets;
use crate::{colors, RunState, State};
@ -16,7 +16,7 @@ pub enum MainMenuResult {
Selected { selected: MainMenuSelection },
}
pub fn main_menu(gs: &mut State, ctx: &mut Rltk) -> MainMenuResult {
pub fn main_menu(gs: &mut State, ctx: &mut BTerm) -> MainMenuResult {
let mut draw_batch = DrawBatch::new();
let save_exists = crate::saveload_system::does_save_exist();
let runstate = gs.ecs.fetch::<RunState>();

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::colors;
@ -26,7 +26,7 @@ pub fn menu_option<T: ToString>(
draw_batch: &mut DrawBatch,
x: i32,
y: i32,
hotkey: ::rltk::FontCharType,
hotkey: FontCharType,
text: T,
) {
draw_batch.set(
@ -86,7 +86,7 @@ pub fn item_result_menu<S: ToString>(
Some(key) => match key {
VirtualKeyCode::Escape => (ItemMenuResult::Cancel, None),
_ => {
let selection = ::rltk::letter_to_option(key);
let selection = letter_to_option(key);
if selection > -1 && selection < count as i32 {
return (
ItemMenuResult::Selected,

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use super::ItemMenuResult;
@ -7,7 +7,7 @@ use crate::{camera, colors, State};
pub fn ranged_target(
gs: &mut State,
ctx: &mut Rltk,
ctx: &mut BTerm,
range: i32,
) -> (ItemMenuResult, Option<Point>) {
let (min_x, max_x, min_y, max_y) = camera::get_screen_bounds(&gs.ecs, ctx);

View File

@ -1,11 +1,11 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use super::{get_item_display_name, item_result_menu, ItemMenuResult};
use crate::components::{CursedItem, Equipped, InBackpack, Item, Name};
use crate::{MasterDungeonMap, State};
pub fn remove_curse_menu(gs: &mut State, ctx: &mut Rltk) -> (ItemMenuResult, Option<Entity>) {
pub fn remove_curse_menu(gs: &mut State, ctx: &mut BTerm) -> (ItemMenuResult, Option<Entity>) {
let player_entity = gs.ecs.fetch::<Entity>();
let equipped = gs.ecs.read_storage::<Equipped>();
let backpack = gs.ecs.read_storage::<InBackpack>();

View File

@ -1,11 +1,11 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use super::{get_item_display_name, item_result_menu, ItemMenuResult};
use crate::components::InBackpack;
use crate::State;
pub fn remove_item_menu(gs: &mut State, ctx: &mut Rltk) -> (ItemMenuResult, Option<Entity>) {
pub fn remove_item_menu(gs: &mut State, ctx: &mut BTerm) -> (ItemMenuResult, Option<Entity>) {
let mut draw_batch = DrawBatch::new();
let player_entity = gs.ecs.fetch::<Entity>();

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use super::get_item_display_name;
@ -54,7 +54,7 @@ impl Tooltip {
}
}
pub fn draw_tooltips(ecs: &World, ctx: &mut Rltk) {
pub fn draw_tooltips(ecs: &World, ctx: &mut BTerm) {
let mut draw_batch = DrawBatch::new();
let (min_x, _max_x, min_y, _max_y) = camera::get_screen_bounds(ecs, ctx);

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use super::{get_item_color, get_item_display_name, menu_box};
@ -17,7 +17,7 @@ pub enum VendorResult {
fn vendor_sell_menu(
gs: &mut State,
ctx: &mut Rltk,
ctx: &mut BTerm,
_vendor: Entity,
_mode: VendorMode,
) -> (VendorResult, Option<Entity>, Option<String>, Option<f32>) {
@ -93,7 +93,7 @@ fn vendor_sell_menu(
VirtualKeyCode::Space => (VendorResult::BuyMode, None, None, None),
VirtualKeyCode::Escape => (VendorResult::Cancel, None, None, None),
_ => {
let selection = rltk::letter_to_option(key);
let selection = letter_to_option(key);
if selection > -1 && selection < count as i32 {
return (
VendorResult::Sell,
@ -110,7 +110,7 @@ fn vendor_sell_menu(
fn vendor_buy_menu(
gs: &mut State,
ctx: &mut Rltk,
ctx: &mut BTerm,
vendor: Entity,
_mode: VendorMode,
) -> (VendorResult, Option<Entity>, Option<String>, Option<f32>) {
@ -171,7 +171,7 @@ fn vendor_buy_menu(
VirtualKeyCode::Space => (VendorResult::SellMode, None, None, None),
VirtualKeyCode::Escape => (VendorResult::Cancel, None, None, None),
_ => {
let selection = ::rltk::letter_to_option(key);
let selection = letter_to_option(key);
if selection > -1 && selection < count as i32 {
return (
VendorResult::Buy,
@ -189,7 +189,7 @@ fn vendor_buy_menu(
pub fn show_vendor_menu(
gs: &mut State,
ctx: &mut Rltk,
ctx: &mut BTerm,
vendor: Entity,
mode: VendorMode,
) -> (VendorResult, Option<Entity>, Option<String>, Option<f32>) {

View File

@ -25,7 +25,7 @@ mod spawner;
mod state;
mod systems;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use ::specs::saveload::{SimpleMarker, SimpleMarkerAllocator};
use components::*;
@ -184,8 +184,8 @@ fn init_state() -> State {
}
/// The entry point
fn main() -> ::rltk::BError {
let context = RltkBuilder::simple(80, 60)
fn main() -> BError {
let context = BTermBuilder::simple(80, 60)
.unwrap()
.with_title("Roguelike Tutorial")
.with_font("vga8x16.png", 8, 16)

View File

@ -6,7 +6,7 @@ mod tiletype;
use std::collections::HashSet;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::serde::{Deserialize, Serialize};
pub use dungeon::*;
pub use themes::*;
@ -153,7 +153,7 @@ impl BaseMap for Map {
let p1 = Point::new(idx1 % w, idx1 / w);
let p2 = Point::new(idx2 % w, idx2 / w);
::rltk::DistanceAlg::Pythagoras.distance2d(p1, p2)
DistanceAlg::Pythagoras.distance2d(p1, p2)
}
}

View File

@ -1,5 +1,5 @@
//! Handle rendering of the viewport
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{Hidden, Position, Renderable, Target, TileSize};
@ -15,7 +15,7 @@ const SHOW_BOUNDARIES: bool = true;
const SHOW_BOUNDARIES: bool = false;
/// Get the rectangle representing the current viewport
pub fn get_screen_bounds(ecs: &World, _ctx: &mut Rltk) -> (i32, i32, i32, i32) {
pub fn get_screen_bounds(ecs: &World, _ctx: &mut BTerm) -> (i32, i32, i32, i32) {
let player_pos = ecs.fetch::<Point>();
// let (x_chars, y_chars) = ctx.get_char_size();
let (x_chars, y_chars) = (48, 44);
@ -32,7 +32,7 @@ pub fn get_screen_bounds(ecs: &World, _ctx: &mut Rltk) -> (i32, i32, i32, i32) {
}
/// Render the current viewport
pub fn render_camera(ecs: &World, ctx: &mut Rltk) {
pub fn render_camera(ecs: &World, ctx: &mut BTerm) {
let mut draw_batch = DrawBatch::new();
let map = ecs.fetch::<Map>();
let (min_x, max_x, min_y, max_y) = get_screen_bounds(ecs, ctx);
@ -53,7 +53,7 @@ pub fn render_camera(ecs: &World, ctx: &mut Rltk) {
draw_batch.set(
Point::new(x, y),
ColorPair::new(colors::GRAY, colors::BLACK),
rltk::to_cp437('·'),
to_cp437('·'),
);
}
}
@ -121,12 +121,12 @@ pub fn render_camera(ecs: &World, ctx: &mut Rltk) {
draw_batch.set(
Point::new(entity_screen_x - 1, entity_screen_y),
ColorPair::new(colors::RED, colors::YELLOW),
::rltk::to_cp437('['),
to_cp437('['),
);
draw_batch.set(
Point::new(entity_screen_x + 1, entity_screen_y),
ColorPair::new(colors::RED, colors::YELLOW),
::rltk::to_cp437(']'),
to_cp437(']'),
);
}
}
@ -136,7 +136,7 @@ pub fn render_camera(ecs: &World, ctx: &mut Rltk) {
.expect("Failed to batch draw the camera");
}
pub fn render_debug_map(map: &Map, ctx: &mut Rltk) {
pub fn render_debug_map(map: &Map, ctx: &mut BTerm) {
let player_pos = Point::new(map.width / 2, map.height / 2);
let (x_chars, y_chars) = ctx.get_char_size();
@ -160,7 +160,7 @@ pub fn render_debug_map(map: &Map, ctx: &mut Rltk) {
ctx.set(x, y, fg, bg, glyph);
}
} else if SHOW_BOUNDARIES {
ctx.set(x, y, colors::GRAY, colors::BLACK, rltk::to_cp437('·'));
ctx.set(x, y, colors::GRAY, colors::BLACK, to_cp437('·'));
}
}
}

View File

@ -1,7 +1,7 @@
//! Functionality that is common to all the currently generated maps.
use std::collections::{HashMap, HashSet};
use ::rltk::Point;
use ::bracket_lib::prelude::*;
use ::serde::{Deserialize, Serialize};
use ::specs::prelude::*;

View File

@ -1,5 +1,5 @@
//! Different looks for the same set of [`TileType`]s
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use super::{Map, TileType};
use crate::colors;

View File

@ -345,7 +345,7 @@ pub fn random_builder(new_depth: i32, width: i32, height: i32) -> BuilderChain {
pub fn level_builder(new_depth: i32, width: i32, height: i32) -> BuilderChain {
#[cfg(feature = "debug")]
::rltk::console::log(format!("Depth: {}", new_depth));
::bracket_lib::prelude::console::log(format!("Depth: {}", new_depth));
match new_depth {
1 => town_builder(new_depth, width, height),

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use super::{BuilderMap, MetaMapBuilder};
use crate::{map, TileType};

View File

@ -1,3 +1,5 @@
use ::bracket_lib::prelude::*;
use crate::map_builders::{BuilderMap, MetaMapBuilder};
use crate::{map, Position};
@ -50,12 +52,12 @@ impl AreaStartingPosition {
if map::tile_walkable(*tiletype) {
available_floors.push((
idx,
rltk::DistanceAlg::PythagorasSquared.distance2d(
rltk::Point::new(
DistanceAlg::PythagorasSquared.distance2d(
Point::new(
idx as i32 % build_data.map.width,
idx as i32 / build_data.map.width,
),
rltk::Point::new(seed_x, seed_y),
Point::new(seed_x, seed_y),
),
));
}

View File

@ -1,3 +1,5 @@
use ::bracket_lib::prelude::*;
use crate::map_builders::{BuilderMap, MetaMapBuilder};
use crate::TileType;
@ -22,7 +24,7 @@ impl CullUnreachable {
build_data.map.populate_blocked();
let map_starts: Vec<usize> = vec![start_idx];
let dijkstra_map = rltk::DijkstraMap::new(
let dijkstra_map = DijkstraMap::new(
build_data.map.width as usize,
build_data.map.height as usize,
&map_starts,

View File

@ -1,7 +1,11 @@
use ::bracket_lib::prelude::*;
use super::{
AreaEndingPosition, AreaStartingPosition, BspInteriorBuilder, BuilderChain, CullUnreachable,
VoronoiSpawning, XEnd, XStart, YEnd, YStart,
AreaEndingPosition, AreaStartingPosition, BspInteriorBuilder, BuilderChain, BuilderMap,
CullUnreachable, InitialMapBuilder, VoronoiSpawning, XEnd, XStart, YEnd, YStart,
};
use crate::rng::roll_dice;
use crate::TileType;
pub fn dark_elf_city(new_depth: i32, width: i32, height: i32) -> BuilderChain {
let mut chain = BuilderChain::new(new_depth, width, height, "Dark Elven City");

View File

@ -1,3 +1,5 @@
use ::bracket_lib::prelude::*;
use crate::map_builders::{BuilderMap, MetaMapBuilder};
use crate::TileType;
@ -22,7 +24,7 @@ impl DistantExit {
build_data.map.populate_blocked();
let map_starts: Vec<usize> = vec![start_idx];
let dijkstra_map = rltk::DijkstraMap::new(
let dijkstra_map = DijkstraMap::new(
build_data.map.width as usize,
build_data.map.height as usize,
&map_starts,

View File

@ -1,3 +1,5 @@
use ::bracket_lib::prelude::*;
use super::common::{paint, Symmetry};
use crate::components::Position;
use crate::map_builders::{BuilderMap, InitialMapBuilder, MetaMapBuilder};
@ -207,10 +209,10 @@ impl DLABuilder {
let mut prev_y = digger_y;
let mut digger_idx = build_data.map.xy_idx(digger_x, digger_y);
let mut path = rltk::line2d(
rltk::LineAlg::Bresenham,
rltk::Point::new(digger_x, digger_y),
rltk::Point::new(starting_position.x, starting_position.y),
let mut path = line2d(
LineAlg::Bresenham,
Point::new(digger_x, digger_y),
Point::new(starting_position.x, starting_position.y),
);
while build_data.map.tiles[digger_idx] == TileType::Wall && !path.is_empty() {

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use super::{
AreaEndingPosition, AreaStartingPosition, BspCorridors, BspDungeonBuilder, BuilderChain,

View File

@ -1,3 +1,5 @@
use ::bracket_lib::prelude::*;
use super::{
AreaStartingPosition, BuilderChain, CellularAutomataBuilder, CullUnreachable, MetaMapBuilder,
VoronoiSpawning, XStart, YStart,
@ -40,12 +42,12 @@ impl YellowBrickRoad {
if map::tile_walkable(*tiletype) {
available_floors.push((
idx,
rltk::DistanceAlg::PythagorasSquared.distance2d(
rltk::Point::new(
DistanceAlg::PythagorasSquared.distance2d(
Point::new(
idx as i32 % build_data.map.width,
idx as i32 / build_data.map.width,
),
rltk::Point::new(seed_x, seed_y),
Point::new(seed_x, seed_y),
),
));
}
@ -86,7 +88,7 @@ impl YellowBrickRoad {
let end_idx = build_data.map.xy_idx(end_x, end_y);
build_data.map.populate_blocked();
let path = rltk::a_star_search(start_idx, end_idx, &build_data.map);
let path = a_star_search(start_idx, end_idx, &build_data.map);
for idx in path.steps.iter() {
let x = *idx as i32 % build_data.map.width;
@ -119,7 +121,7 @@ impl YellowBrickRoad {
let (stream_x, stream_y) = self.find_exit(build_data, stream_startx, stream_starty);
let stream_idx = build_data.map.xy_idx(stream_x, stream_y) as usize;
let stream = rltk::a_star_search(stairs_idx, stream_idx, &build_data.map);
let stream = a_star_search(stairs_idx, stream_idx, &build_data.map);
for tile in stream.steps.iter() {
if build_data.map.tiles[*tile as usize] == TileType::Floor {
build_data.map.tiles[*tile as usize] = TileType::ShallowWater;

View File

@ -4,6 +4,8 @@ pub mod prefab_sections;
use std::collections::HashSet;
use ::bracket_lib::prelude::*;
use crate::map_builders::{BuilderMap, InitialMapBuilder, MetaMapBuilder};
use crate::rng::roll_dice;
use crate::{Position, TileType};
@ -137,14 +139,17 @@ impl PrefabBuilder {
}
_ => {
#[cfg(feature = "debug")]
::rltk::console::log(format!("Unknown glyph loading map: {}", (ch as u8) as char));
::bracket_lib::prelude::console::log(format!(
"Unknown glyph loading map: {}",
(ch as u8) as char
));
}
}
}
#[allow(dead_code)]
fn load_rex_map(&mut self, path: &str, build_data: &mut BuilderMap) {
let xp_file = rltk::rex::XpFile::from_resource(path).unwrap();
let xp_file = XpFile::from_resource(path).unwrap();
for layer in &xp_file.layers {
for y in 0..layer.height {

View File

@ -1,3 +1,5 @@
use ::bracket_lib::prelude::*;
use super::{BuilderMap, MetaMapBuilder};
use crate::rng::roll_dice;
use crate::{Rect, TileType};
@ -30,13 +32,12 @@ impl RoomDrawer {
fn circle(&mut self, build_data: &mut BuilderMap, room: &Rect) {
let radius = i32::min(room.x2 - room.x1, room.y2 - room.y1) as f32 / 2.0;
let center = room.center();
let center_pt = rltk::Point::new(center.0, center.1);
let center_pt = Point::new(center.0, center.1);
for y in room.y1..=room.y2 {
for x in room.x1..=room.x2 {
let idx = build_data.map.xy_idx(x, y);
let distance =
rltk::DistanceAlg::Pythagoras.distance2d(center_pt, rltk::Point::new(x, y));
let distance = DistanceAlg::Pythagoras.distance2d(center_pt, Point::new(x, y));
if idx > 0
&& idx < ((build_data.map.width * build_data.map.height) - 1) as usize

View File

@ -1,3 +1,5 @@
use ::bracket_lib::prelude::*;
use super::{BuilderMap, MetaMapBuilder};
use crate::Rect;
@ -35,17 +37,14 @@ impl RoomSorter {
RoomSort::TopMost => rooms.sort_by(|a, b| a.y1.cmp(&b.y1)),
RoomSort::BottomMost => rooms.sort_by(|a, b| b.y2.cmp(&a.y2)),
RoomSort::Central => {
let map_center =
rltk::Point::new(build_data.map.width / 2, build_data.map.height / 2);
let map_center = Point::new(build_data.map.width / 2, build_data.map.height / 2);
let center_sort = |a: &Rect, b: &Rect| {
let a_center = a.center();
let a_center_pt = rltk::Point::new(a_center.0, a_center.1);
let a_center_pt = Point::new(a_center.0, a_center.1);
let b_center = b.center();
let b_center_pt = rltk::Point::new(b_center.0, b_center.1);
let distance_a =
rltk::DistanceAlg::Pythagoras.distance2d(a_center_pt, map_center);
let distance_b =
rltk::DistanceAlg::Pythagoras.distance2d(b_center_pt, map_center);
let b_center_pt = Point::new(b_center.0, b_center.1);
let distance_a = DistanceAlg::Pythagoras.distance2d(a_center_pt, map_center);
let distance_b = DistanceAlg::Pythagoras.distance2d(b_center_pt, map_center);
distance_a.partial_cmp(&distance_b).unwrap()
};

View File

@ -1,5 +1,7 @@
use std::collections::HashSet;
use ::bracket_lib::prelude::*;
use super::{BuilderMap, MetaMapBuilder};
use crate::{Rect, TileType};
@ -31,14 +33,14 @@ impl StraightLineCorridors {
for (i, room) in rooms.iter().enumerate() {
let mut room_distance: Vec<(usize, f32)> = Vec::new();
let room_center = room.center();
let room_center_pt = rltk::Point::new(room_center.0, room_center.1);
let room_center_pt = Point::new(room_center.0, room_center.1);
for (j, other_room) in rooms.iter().enumerate() {
if i != j && !connected.contains(&j) {
let other_center = other_room.center();
let other_center_pt = rltk::Point::new(other_center.0, other_center.1);
let other_center_pt = Point::new(other_center.0, other_center.1);
let distance =
rltk::DistanceAlg::Pythagoras.distance2d(room_center_pt, other_center_pt);
DistanceAlg::Pythagoras.distance2d(room_center_pt, other_center_pt);
room_distance.push((j, distance));
}
@ -47,10 +49,10 @@ impl StraightLineCorridors {
if !room_distance.is_empty() {
room_distance.sort_by(|a, b| a.1.partial_cmp(&b.1).unwrap());
let dest_center = rooms[room_distance[0].0].center();
let line = rltk::line2d(
rltk::LineAlg::Bresenham,
let line = line2d(
LineAlg::Bresenham,
room_center_pt,
rltk::Point::new(dest_center.0, dest_center.1),
Point::new(dest_center.0, dest_center.1),
);
let mut corridor = Vec::new();

View File

@ -1,5 +1,7 @@
use std::collections::HashSet;
use ::bracket_lib::prelude::*;
use super::common::draw_corridor;
use super::{BuilderMap, MetaMapBuilder};
use crate::Rect;
@ -32,14 +34,14 @@ impl NearestCorridors {
for (i, room) in rooms.iter().enumerate() {
let mut room_distance: Vec<(usize, f32)> = Vec::new();
let room_center = room.center();
let room_center_pt = rltk::Point::new(room_center.0, room_center.1);
let room_center_pt = Point::new(room_center.0, room_center.1);
for (j, other_room) in rooms.iter().enumerate() {
if i != j && !connected.contains(&j) {
let other_center = other_room.center();
let other_center_pt = rltk::Point::new(other_center.0, other_center.1);
let other_center_pt = Point::new(other_center.0, other_center.1);
let distance =
rltk::DistanceAlg::Pythagoras.distance2d(room_center_pt, other_center_pt);
DistanceAlg::Pythagoras.distance2d(room_center_pt, other_center_pt);
room_distance.push((j, distance));
}

View File

@ -1,6 +1,6 @@
use std::collections::HashSet;
use ::rltk::Point;
use ::bracket_lib::prelude::*;
use super::{BuilderChain, BuilderMap, InitialMapBuilder};
use crate::rng::roll_dice;
@ -272,7 +272,7 @@ impl TownBuilder {
for r in roads.iter() {
nearest_roads.push((
*r,
::rltk::DistanceAlg::PythagorasSquared.distance2d(
DistanceAlg::PythagorasSquared.distance2d(
door_pt,
Point::new(
*r as i32 % build_data.map.width,
@ -284,7 +284,7 @@ impl TownBuilder {
nearest_roads.sort_by(|a, b| a.1.partial_cmp(&b.1).unwrap());
let destination = nearest_roads[0].0;
let path = ::rltk::a_star_search(*door_idx, destination, &build_data.map);
let path = a_star_search(*door_idx, destination, &build_data.map);
if path.success {
for step in path.steps.iter() {
let idx = *step as usize;

View File

@ -1,3 +1,5 @@
use ::bracket_lib::prelude::*;
use crate::map_builders::{BuilderMap, InitialMapBuilder};
use crate::rng::roll_dice;
use crate::TileType;
@ -45,13 +47,13 @@ impl VoronoiCellBuilder {
#[allow(clippy::map_entry)]
fn build(&mut self, build_data: &mut BuilderMap) {
// Make a Voronoi diagram. We'll do this the hard way to learn about the technique!
let mut voronoi_seeds: Vec<(usize, rltk::Point)> = Vec::new();
let mut voronoi_seeds: Vec<(usize, Point)> = Vec::new();
while voronoi_seeds.len() < self.n_seeds {
let vx = roll_dice(1, build_data.map.width - 1);
let vy = roll_dice(1, build_data.map.height - 1);
let vidx = build_data.map.xy_idx(vx, vy);
let candidate = (vidx, rltk::Point::new(vx, vy));
let candidate = (vidx, Point::new(vx, vy));
if !voronoi_seeds.contains(&candidate) {
voronoi_seeds.push(candidate);
}
@ -67,15 +69,16 @@ impl VoronoiCellBuilder {
for (seed, pos) in voronoi_seeds.iter().enumerate() {
let distance = match self.distance_algorithm {
DistanceAlgorithm::Pythagoras => rltk::DistanceAlg::PythagorasSquared
.distance2d(rltk::Point::new(x, y), pos.1),
DistanceAlgorithm::Pythagoras => {
DistanceAlg::PythagorasSquared.distance2d(Point::new(x, y), pos.1)
}
DistanceAlgorithm::Manhattan => {
rltk::DistanceAlg::Manhattan.distance2d(rltk::Point::new(x, y), pos.1)
DistanceAlg::Manhattan.distance2d(Point::new(x, y), pos.1)
}
DistanceAlgorithm::Chebyshev => {
rltk::DistanceAlg::Chebyshev.distance2d(rltk::Point::new(x, y), pos.1)
DistanceAlg::Chebyshev.distance2d(Point::new(x, y), pos.1)
}
};
voronoi_distance[seed] = (seed, distance);

View File

@ -1,6 +1,6 @@
use std::collections::HashMap;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use crate::map_builders::{BuilderMap, MetaMapBuilder};
use crate::rng::roll_dice;

View File

@ -67,7 +67,7 @@ pub fn build_patterns(
// Dedupe
if dedupe {
#[cfg(feature = "debug")]
::rltk::console::log(format!(
::bracket_lib::prelude::console::log(format!(
"Pre de-duplication, there are {} patterns",
patterns.len()
));
@ -77,7 +77,7 @@ pub fn build_patterns(
patterns.extend(set.into_iter());
#[cfg(feature = "debug")]
::rltk::console::log(format!("There are {} patterns", patterns.len()));
::bracket_lib::prelude::console::log(format!("There are {} patterns", patterns.len()));
}
patterns

View File

@ -195,7 +195,7 @@ impl Solver {
if possible_options.is_empty() {
#[cfg(feature = "debug")]
::rltk::console::log("Oh no! It's not possible!");
::bracket_lib::prelude::console::log("Oh no! It's not possible!");
self.possible = false;

View File

@ -1,7 +1,7 @@
//! Player-related functionality
use std::cmp::{max, min};
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{
@ -217,7 +217,7 @@ pub fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World) -> RunState
blocks_visibility.remove(potential_target);
blocks_movement.remove(potential_target);
let glyph = renderables.get_mut(potential_target).unwrap();
glyph.glyph = rltk::to_cp437('/');
glyph.glyph = to_cp437('/');
viewshed.dirty = true;
return Some(RunState::Ticking);
@ -454,7 +454,7 @@ fn use_spell_hotkey(gs: &mut State, key: i32) -> RunState {
RunState::Ticking
}
pub fn player_input(gs: &mut State, ctx: &mut Rltk) -> RunState {
pub fn player_input(gs: &mut State, ctx: &mut BTerm) -> RunState {
// Hotkeys
if (ctx.shift || ctx.control) && ctx.key.is_some() {
let key: Option<i32> = match ctx.key.unwrap() {

View File

@ -11,7 +11,7 @@ mod weapon_traits;
use std::sync::Mutex;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::serde::Deserialize;
pub use faction_structs::*;
use item_structs::*;
@ -44,7 +44,7 @@ lazy_static! {
pub fn load_raws() {
link_resource!(RAW_FILE, "../raws/spawns.json");
let raw_data = ::rltk::embedding::EMBED
let raw_data = EMBED
.lock()
.get_resource("../raws/spawns.json".to_string())
.unwrap();

View File

@ -1,7 +1,7 @@
use std::collections::{HashMap, HashSet};
use ::bracket_lib::prelude::*;
use ::regex::Regex;
use ::rltk::prelude::*;
use ::specs::prelude::*;
use ::specs::saveload::{MarkedBuilder, SimpleMarker};
@ -379,7 +379,7 @@ fn get_renderable_component(
renderable: &super::item_structs::Renderable,
) -> crate::components::Renderable {
crate::components::Renderable {
glyph: rltk::to_cp437(renderable.glyph.chars().next().unwrap()),
glyph: to_cp437(renderable.glyph.chars().next().unwrap()),
fg: RGB::from_hex(&renderable.fg).expect("Invalid color"),
bg: RGB::from_hex(&renderable.bg).expect("Invalid color"),
render_order: renderable.order,
@ -407,7 +407,7 @@ pub fn string_to_slot(slot: &str) -> EquipmentSlot {
fn parse_particle_line(n: &str) -> SpawnParticleLine {
let tokens: Vec<_> = n.split(';').collect();
SpawnParticleLine {
glyph: rltk::to_cp437(tokens[0].chars().next().unwrap()),
glyph: to_cp437(tokens[0].chars().next().unwrap()),
color: RGB::from_hex(tokens[1]).expect("Invalid hex rgb color"),
lifetime_ms: tokens[2].parse::<f32>().unwrap(),
}
@ -416,7 +416,7 @@ fn parse_particle_line(n: &str) -> SpawnParticleLine {
fn parse_particle(n: &str) -> SpawnParticleBurst {
let tokens: Vec<_> = n.split(';').collect();
SpawnParticleBurst {
glyph: rltk::to_cp437(tokens[0].chars().next().unwrap()),
glyph: to_cp437(tokens[0].chars().next().unwrap()),
color: RGB::from_hex(tokens[1]).expect("Invalid hex rgb color"),
lifetime_ms: tokens[2].parse::<f32>().unwrap(),
}

View File

@ -1,5 +1,4 @@
use ::rltk::prelude::*;
use ::rltk::rex::XpFile;
use ::bracket_lib::prelude::*;
embedded_resource!(SMALL_DUNGEON, "../resources/SmallDungeon_80x50.xp");
embedded_resource!(WFC_DEMO_IMAGE1, "../resources/wfc-demo1.xp");

View File

@ -1,6 +1,6 @@
use std::sync::Mutex;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
lazy_static! {
static ref RNG: Mutex<RandomNumberGenerator> = Mutex::new(RandomNumberGenerator::new());

View File

@ -2,7 +2,7 @@
use std::fs::{self, File};
use std::path::Path;
use ::rltk::Point;
use ::bracket_lib::prelude::*;
use ::specs::error::NoError;
use ::specs::prelude::*;
use ::specs::saveload::{

View File

@ -1,7 +1,7 @@
//! Spawns things
use std::collections::HashMap;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use ::specs::saveload::{MarkedBuilder, SimpleMarker};

View File

@ -1,5 +1,5 @@
//! Game state
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::*;
@ -147,7 +147,7 @@ impl State {
impl GameState for State {
/// The big, nasty, state machine handler
fn tick(&mut self, ctx: &mut Rltk) {
fn tick(&mut self, ctx: &mut BTerm) {
let mut newrunstate;
{
let runstate = self.ecs.fetch::<RunState>();
@ -556,7 +556,7 @@ impl GameState for State {
}
damage_system::delete_the_dead(&mut self.ecs);
::rltk::render_draw_buffer(ctx).expect("Failed to render the Rltk buffer");
render_draw_buffer(ctx).expect("Failed to render the draw buffer");
if SHOW_FPS {
ctx.print(1, 59, &format!("FPS: {}", ctx.fps));
}

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{ApplyMove, MyTurn, Position, WantsToApproach};

View File

@ -1,6 +1,6 @@
use std::collections::HashMap;
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{ApplyMove, Chasing, MyTurn, Position, TileSize};

View File

@ -1,3 +1,4 @@
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{ApplyMove, MoveMode, Movement, MyTurn, Position};
@ -70,7 +71,7 @@ impl<'a> System<'a> for DefaultMoveAI {
let target_y = roll_dice(1, map.height - 2);
let idx = map.xy_idx(target_x, target_y);
if tile_walkable(map.tiles[idx]) {
let path = ::rltk::a_star_search(
let path = a_star_search(
map.xy_idx(pos.x, pos.y) as i32,
map.xy_idx(target_x, target_y) as i32,
&*map,

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{ApplyMove, MyTurn, Position, WantsToFlee};

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{MyTurn, Name, Quips, Viewshed};

View File

@ -1,5 +1,6 @@
use std::collections::HashSet;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{Confusion, MyTurn, StatusEffect};
@ -40,7 +41,7 @@ impl<'a> System<'a> for TurnStatusSystem {
add_effect(
None,
EffectType::Particle {
glyph: ::rltk::to_cp437('?'),
glyph: to_cp437('?'),
fg: colors::CYAN,
bg: colors::BLACK,
lifespan: 200.0,

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{LightSource, Position, Viewshed};

View File

@ -1,3 +1,4 @@
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{
@ -198,7 +199,7 @@ impl<'a> System<'a> for MeleeCombatSystem {
add_effect(
None,
EffectType::Particle {
glyph: rltk::to_cp437('‼'),
glyph: to_cp437('‼'),
fg: colors::BLUE,
bg: colors::BLACK,
lifespan: 200.0,
@ -217,7 +218,7 @@ impl<'a> System<'a> for MeleeCombatSystem {
add_effect(
None,
EffectType::Particle {
glyph: rltk::to_cp437('‼'),
glyph: to_cp437('‼'),
fg: colors::CYAN,
bg: colors::BLACK,
lifespan: 200.0,

View File

@ -1,9 +1,9 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{ParticleLifetime, Position, Renderable};
pub fn update_particles(ecs: &mut World, ctx: &Rltk) {
pub fn update_particles(ecs: &mut World, ctx: &BTerm) {
let mut dead_particles: Vec<Entity> = Vec::new();
{
// Age out particles
@ -42,7 +42,7 @@ struct ParticleRequest {
y: i32,
fg: RGB,
bg: RGB,
glyph: rltk::FontCharType,
glyph: FontCharType,
lifetime: f32,
}
@ -62,7 +62,7 @@ impl ParticleBuilder {
y: i32,
fg: RGB,
bg: RGB,
glyph: rltk::FontCharType,
glyph: FontCharType,
lifetime: f32,
) {
self.requests.push(ParticleRequest {

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{
@ -75,11 +75,7 @@ impl<'a> System<'a> for RangedCombatSystem {
bg: colors::BLACK,
lifespan: 300.0,
speed: 50.0,
path: ::rltk::line2d(
LineAlg::Bresenham,
Point::from(*apos),
Point::from(*dpos),
),
path: line2d(LineAlg::Bresenham, Point::from(*apos), Point::from(*dpos)),
},
Targets::Tile {
tile_idx: map.xy_idx(apos.x, apos.y) as i32,
@ -221,7 +217,7 @@ impl<'a> System<'a> for RangedCombatSystem {
add_effect(
None,
EffectType::Particle {
glyph: rltk::to_cp437('‼'),
glyph: to_cp437('‼'),
fg: colors::BLUE,
bg: colors::BLACK,
lifespan: 200.0,
@ -240,7 +236,7 @@ impl<'a> System<'a> for RangedCombatSystem {
add_effect(
None,
EffectType::Particle {
glyph: rltk::to_cp437('‼'),
glyph: to_cp437('‼'),
fg: colors::CYAN,
bg: colors::BLACK,
lifespan: 200.0,

View File

@ -1,3 +1,4 @@
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{AreaOfEffect, EntityMoved, EntryTrigger, Name, Position};
@ -45,11 +46,7 @@ impl<'a> System<'a> for TriggerSystem {
EffectType::TriggerFire { trigger: entity_id },
if let Some(aoe) = area_of_effect.get(entity_id) {
Targets::Tiles {
tiles: aoe_tiles(
&*map,
::rltk::Point::from(*pos),
aoe.radius,
),
tiles: aoe_tiles(&*map, Point::from(*pos), aoe.radius),
}
} else {
Targets::Tile {

View File

@ -1,4 +1,4 @@
use ::rltk::prelude::*;
use ::bracket_lib::prelude::*;
use ::specs::prelude::*;
use crate::components::{BlocksVisibility, Hidden, Name};