implement chat speed setting
This commit is contained in:
parent
c0672f0ad8
commit
1fd0481ec4
|
@ -1,7 +1,7 @@
|
|||
extern crate yaml_rust;
|
||||
use bevy::prelude::*;
|
||||
use yaml_rust::{Yaml, YamlLoader};
|
||||
use crate::{audio, hud, world};
|
||||
use crate::{audio, hud, settings, world};
|
||||
|
||||
pub const CHATS: &[&str] = &[
|
||||
include_str!("chats/serenity.yaml"),
|
||||
|
@ -9,7 +9,8 @@ pub const CHATS: &[&str] = &[
|
|||
];
|
||||
|
||||
pub const TOKEN_CHAT: &str = "chat";
|
||||
pub const TALKER_SPEED_FACTOR: f32 = 1.0 / 17.0;
|
||||
pub const LETTERS_PER_SECOND: f32 = 17.0;
|
||||
pub const TALKER_SPEED_FACTOR: f32 = settings::DEFAULT_CHAT_SPEED / LETTERS_PER_SECOND;
|
||||
pub const CHAT_SPEED_MIN_LEN: f32 = 40.0;
|
||||
pub const NAME_FALLBACK: &str = "Unknown";
|
||||
|
||||
|
@ -176,6 +177,7 @@ pub fn handle_chat_events(
|
|||
q_choices: Query<Entity, With<Choice>>,
|
||||
mut q_chats: Query<(Entity, &mut Chat)>,
|
||||
time: Res<Time>,
|
||||
settings: Res<settings::Settings>,
|
||||
) {
|
||||
for event in er_chatevent.read() {
|
||||
let now = time.elapsed_seconds_f64();
|
||||
|
@ -196,7 +198,7 @@ pub fn handle_chat_events(
|
|||
}
|
||||
ChatEvent::DisplayMessage(message) => {
|
||||
log.chat(message.into(), chat.talker.name.clone().unwrap_or(NAME_FALLBACK.to_string()));
|
||||
chat.timer = now + ((message.len() as f32).max(CHAT_SPEED_MIN_LEN) * TALKER_SPEED_FACTOR * chat.talker.talking_speed) as f64;
|
||||
chat.timer = now + ((message.len() as f32).max(CHAT_SPEED_MIN_LEN) * TALKER_SPEED_FACTOR * chat.talker.talking_speed / settings.chat_speed) as f64;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
use bevy::prelude::*;
|
||||
use std::env;
|
||||
|
||||
pub const DEFAULT_CHAT_SPEED: f32 = 10.0;
|
||||
|
||||
#[derive(Resource)]
|
||||
pub struct Settings {
|
||||
pub dev_mode: bool,
|
||||
|
@ -16,6 +18,7 @@ pub struct Settings {
|
|||
pub zoom_sensitivity_factor: f32,
|
||||
pub font_size_hud: f32,
|
||||
pub font_size_conversations: f32,
|
||||
pub chat_speed: f32,
|
||||
pub hud_active: bool,
|
||||
pub is_zooming: bool,
|
||||
pub third_person: bool,
|
||||
|
@ -100,6 +103,7 @@ impl Default for Settings {
|
|||
zoom_sensitivity_factor: 0.25,
|
||||
font_size_hud: 32.0,
|
||||
font_size_conversations: 32.0,
|
||||
chat_speed: DEFAULT_CHAT_SPEED,
|
||||
hud_active: false,
|
||||
is_zooming: false,
|
||||
third_person: false,
|
||||
|
|
Loading…
Reference in a new issue