Replace rltk with bracket_lib, removing one layer of module redirection
This commit is contained in:
parent
1c4be360a3
commit
8f10289ed6
@ -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"] }
|
||||
|
@ -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 }
|
||||
|
@ -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,
|
||||
|
@ -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 {
|
||||
|
@ -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::*;
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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() {
|
||||
|
@ -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,
|
||||
|
@ -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::*;
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
|
||||
use super::{append_entry, LogFragment};
|
||||
use crate::colors;
|
||||
|
@ -1,6 +1,6 @@
|
||||
use std::sync::Mutex;
|
||||
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
|
||||
use super::LogFragment;
|
||||
use crate::colors;
|
||||
|
@ -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;
|
||||
|
@ -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>();
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
@ -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>();
|
||||
|
@ -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>();
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
use ::specs::prelude::*;
|
||||
|
||||
use crate::components::{Consumable, CursedItem, MagicItem, MagicItemClass, Name, ObfuscatedName};
|
||||
|
@ -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>();
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
@ -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>();
|
||||
|
@ -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>();
|
||||
|
@ -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);
|
||||
|
@ -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>) {
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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('·'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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::*;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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),
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
|
||||
use super::{BuilderMap, MetaMapBuilder};
|
||||
use crate::{map, TileType};
|
||||
|
@ -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),
|
||||
),
|
||||
));
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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");
|
||||
|
@ -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,
|
||||
|
@ -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() {
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
|
||||
use super::{
|
||||
AreaEndingPosition, AreaStartingPosition, BspCorridors, BspDungeonBuilder, BuilderChain,
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
};
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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));
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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() {
|
||||
|
@ -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();
|
||||
|
@ -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(),
|
||||
}
|
||||
|
@ -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");
|
||||
|
@ -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());
|
||||
|
@ -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::{
|
||||
|
@ -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};
|
||||
|
||||
|
@ -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));
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
use ::specs::prelude::*;
|
||||
|
||||
use crate::components::{ApplyMove, MyTurn, Position, WantsToApproach};
|
||||
|
@ -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};
|
||||
|
@ -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,
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
use ::specs::prelude::*;
|
||||
|
||||
use crate::components::{ApplyMove, MyTurn, Position, WantsToFlee};
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
use ::specs::prelude::*;
|
||||
|
||||
use crate::components::{
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
use ::specs::prelude::*;
|
||||
|
||||
use crate::components::{MyTurn, Name, Quips, Viewshed};
|
||||
|
@ -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,
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
use ::specs::prelude::*;
|
||||
|
||||
use crate::components::{
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
use ::specs::prelude::*;
|
||||
|
||||
use crate::components::{LightSource, Position, Viewshed};
|
||||
|
@ -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,
|
||||
|
@ -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 {
|
||||
|
@ -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,
|
||||
|
@ -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 {
|
||||
|
@ -1,4 +1,4 @@
|
||||
use ::rltk::prelude::*;
|
||||
use ::bracket_lib::prelude::*;
|
||||
use ::specs::prelude::*;
|
||||
|
||||
use crate::components::{BlocksVisibility, Hidden, Name};
|
||||
|
Loading…
Reference in New Issue
Block a user