fixes cheatmenu, reimpl particle ticker
This commit is contained in:
parent
0d4c0c9558
commit
7f9ba34afa
5 changed files with 27 additions and 57 deletions
|
|
@ -46,7 +46,7 @@ pub fn show_cheat_menu(_gs: &mut State, ctx: &mut App) -> CheatMenuResult {
|
|||
|
||||
pub fn draw_cheat_menu(
|
||||
draw: &mut notan::draw::Draw,
|
||||
atlas: &HashMap<String, Texture>,
|
||||
_atlas: &HashMap<String, Texture>,
|
||||
font: ¬an::draw::Font
|
||||
) {
|
||||
let offsets = crate::camera::get_offset();
|
||||
|
|
@ -59,40 +59,7 @@ pub fn draw_cheat_menu(
|
|||
m - MAGIC MAP REVEAL
|
||||
g - GOD MODE"#;
|
||||
draw.text(&font, DEBUG_MENU)
|
||||
.position(1.0 + (offsets.x as f32) * TILESIZE, 1.0 + (offsets.y as f32) * TILESIZE)
|
||||
.color(Color::RED);
|
||||
/*let (x_offset, y_offset) = (1, 10);
|
||||
ctx.print_color(
|
||||
1 + x_offset,
|
||||
1 + y_offset,
|
||||
RGB::named(RED),
|
||||
RGB::named(BLACK),
|
||||
"DEBUG MENU! [aA-zZ][Esc.]"
|
||||
);
|
||||
let x = 1 + x_offset;
|
||||
let mut y = 3 + y_offset;
|
||||
let count = 5;
|
||||
let width = 19;
|
||||
|
||||
ctx.draw_box(x, y, width, (count + 1) as i32, RGB::named(RED), RGB::named(BLACK));
|
||||
y += 1;
|
||||
// Asc
|
||||
ctx.set(x_offset + 2, y, RGB::named(YELLOW), RGB::named(BLACK), to_cp437('a'));
|
||||
ctx.print(x_offset + 4, y, "ASCEND A FLOOR");
|
||||
y += 1;
|
||||
// Desc
|
||||
ctx.set(x_offset + 2, y, RGB::named(YELLOW), RGB::named(BLACK), to_cp437('d'));
|
||||
ctx.print(x_offset + 4, y, "DESCEND A FLOOR");
|
||||
y += 1;
|
||||
// Heal
|
||||
ctx.set(x_offset + 2, y, RGB::named(YELLOW), RGB::named(BLACK), to_cp437('h'));
|
||||
ctx.print(x_offset + 4, y, "HEAL TO FULL");
|
||||
y += 1;
|
||||
// Reveal map
|
||||
ctx.set(x_offset + 2, y, RGB::named(YELLOW), RGB::named(BLACK), to_cp437('m'));
|
||||
ctx.print(x_offset + 4, y, "MAGIC MAP REVEAL");
|
||||
y += 1;
|
||||
// Godmode
|
||||
ctx.set(x_offset + 2, y, RGB::named(YELLOW), RGB::named(BLACK), to_cp437('g'));
|
||||
ctx.print(x_offset + 4, y, "GOD MODE");*/
|
||||
.position(3.0 + (offsets.x as f32) * TILESIZE, 3.0 + (offsets.y as f32) * TILESIZE)
|
||||
.color(Color::RED)
|
||||
.size(TILESIZE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
use super::{ State, RunState, tooltip::draw_tooltips, camera::get_offset, VIEWPORT_H, VIEWPORT_W };
|
||||
use bracket_lib::prelude::*;
|
||||
use notan::prelude::*;
|
||||
use notan::draw::{ Draw, DrawImages };
|
||||
use std::collections::HashMap;
|
||||
use crate::consts::TILESIZE;
|
||||
|
||||
#[derive(PartialEq, Copy, Clone)]
|
||||
pub enum FarlookResult {
|
||||
|
|
@ -57,3 +60,10 @@ pub fn show_farlook(gs: &mut State, ctx: &mut App) -> FarlookResult {
|
|||
return FarlookResult::NoResponse { x: ppos.x + offsets.x, y: ppos.x + offsets.y };
|
||||
}
|
||||
}
|
||||
|
||||
pub fn draw_farlook(x: i32, y: i32, draw: &mut Draw, atlas: &HashMap<String, Texture>) {
|
||||
draw.image(atlas.get("ui_select_c1").unwrap()).position(
|
||||
(x as f32) * TILESIZE,
|
||||
(y as f32) * TILESIZE
|
||||
);
|
||||
}
|
||||
|
|
|
|||
18
src/main.rs
18
src/main.rs
|
|
@ -308,13 +308,6 @@ fn render_map_in_view(
|
|||
}
|
||||
}
|
||||
|
||||
fn draw_farlook(x: i32, y: i32, draw: &mut Draw, atlas: &HashMap<String, Texture>) {
|
||||
draw.image(atlas.get("ui_select_c1").unwrap()).position(
|
||||
(x as f32) * TILESIZE,
|
||||
(y as f32) * TILESIZE
|
||||
);
|
||||
}
|
||||
|
||||
struct BoxDraw {
|
||||
frame: String,
|
||||
fill: bool,
|
||||
|
|
@ -377,7 +370,7 @@ fn draw_spritebox(panel: BoxDraw, draw: &mut Draw, atlas: &HashMap<String, Textu
|
|||
}
|
||||
|
||||
use crate::consts::visuals::{ VIEWPORT_H, VIEWPORT_W };
|
||||
fn draw_bg(ecs: &World, draw: &mut Draw, atlas: &HashMap<String, Texture>) {
|
||||
fn draw_bg(_ecs: &World, draw: &mut Draw, atlas: &HashMap<String, Texture>) {
|
||||
let offset = crate::camera::get_offset();
|
||||
let log = BoxDraw {
|
||||
frame: "ui_panel_window".to_string(),
|
||||
|
|
@ -441,11 +434,10 @@ fn draw(app: &mut App, gfx: &mut Graphics, gs: &mut State) {
|
|||
}
|
||||
match *gs.ecs.fetch::<RunState>() {
|
||||
RunState::Farlook { x, y } => {
|
||||
draw.text(&gs.font, "RunState::Farlook").position(
|
||||
((x + 2) as f32) * TILESIZE,
|
||||
(y as f32) * TILESIZE
|
||||
);
|
||||
draw_farlook(x, y, &mut draw, &gs.atlas);
|
||||
draw.text(&gs.font, "RunState::Farlook")
|
||||
.position(((x + 2) as f32) * TILESIZE, (y as f32) * TILESIZE)
|
||||
.size(TILESIZE);
|
||||
crate::gui::draw_farlook(x, y, &mut draw, &gs.atlas);
|
||||
//draw_tooltips(&gs.ecs, ctx, Some((x, y))); TODO: Put this in draw loop
|
||||
}
|
||||
RunState::ShowCheatMenu => {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
use super::{ ParticleLifetime, Position, Renderable, BTerm };
|
||||
use bracket_lib::prelude::*;
|
||||
use notan::prelude::*;
|
||||
use specs::prelude::*;
|
||||
use crate::consts::visuals::{ DEFAULT_PARTICLE_LIFETIME, SHORT_PARTICLE_LIFETIME };
|
||||
|
||||
|
|
@ -8,19 +9,19 @@ use crate::consts::visuals::{ DEFAULT_PARTICLE_LIFETIME, SHORT_PARTICLE_LIFETIME
|
|||
// running through a list and removing the frame_time_ms from the
|
||||
// delay. When delay is <= 0, make a particle_builder.request for
|
||||
// the particle.
|
||||
pub fn particle_ticker(ecs: &mut World, ctx: &BTerm) {
|
||||
pub fn particle_ticker(ecs: &mut World, ctx: &App) {
|
||||
cull_dead_particles(ecs, ctx);
|
||||
create_delayed_particles(ecs, ctx);
|
||||
}
|
||||
|
||||
fn cull_dead_particles(ecs: &mut World, ctx: &BTerm) {
|
||||
fn cull_dead_particles(ecs: &mut World, ctx: &App) {
|
||||
let mut dead_particles: Vec<Entity> = Vec::new();
|
||||
{
|
||||
// Age out particles
|
||||
let mut particles = ecs.write_storage::<ParticleLifetime>();
|
||||
let entities = ecs.entities();
|
||||
for (entity, mut particle) in (&entities, &mut particles).join() {
|
||||
particle.lifetime_ms -= ctx.frame_time_ms;
|
||||
particle.lifetime_ms -= ctx.timer.delta_f32() * 1000.0;
|
||||
if particle.lifetime_ms < 0.0 {
|
||||
dead_particles.push(entity);
|
||||
}
|
||||
|
|
@ -39,11 +40,11 @@ pub fn check_queue(ecs: &World) -> bool {
|
|||
return false;
|
||||
}
|
||||
|
||||
fn create_delayed_particles(ecs: &mut World, ctx: &BTerm) {
|
||||
fn create_delayed_particles(ecs: &mut World, ctx: &App) {
|
||||
let mut particle_builder = ecs.write_resource::<ParticleBuilder>();
|
||||
let mut handled_particles: Vec<ParticleRequest> = Vec::new();
|
||||
for delayed_particle in particle_builder.delayed_requests.iter_mut() {
|
||||
delayed_particle.delay -= ctx.frame_time_ms;
|
||||
delayed_particle.delay -= ctx.timer.delta_f32() * 1000.0;
|
||||
if delayed_particle.delay < 0.0 {
|
||||
handled_particles.push(ParticleRequest {
|
||||
x: delayed_particle.particle.x,
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ impl State {
|
|||
let runstate = self.ecs.fetch::<RunState>();
|
||||
new_runstate = *runstate;
|
||||
}
|
||||
// Particle ticker here
|
||||
particle_system::particle_ticker(&mut self.ecs, ctx);
|
||||
match new_runstate {
|
||||
RunState::PreRun => {
|
||||
self.run_systems();
|
||||
|
|
@ -377,7 +377,7 @@ impl State {
|
|||
ctx.cls();
|
||||
ctx.set_active_console(0);
|
||||
ctx.cls();
|
||||
particle_system::particle_ticker(&mut self.ecs, ctx);
|
||||
//particle_system::particle_ticker(&mut self.ecs, ctx);
|
||||
|
||||
match new_runstate {
|
||||
RunState::MainMenu { .. } => {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue