Fix #1 and Fix #3

This commit is contained in:
Otto 2024-08-11 09:46:12 +03:00
parent ff7ca6cc0f
commit 0eee56f66c

View file

@ -56,7 +56,7 @@ impl ILabel for ScramblingText {
if property == StringName::from("scrambling") {
let boolean_value = value.booleanize();
let original_text = self.original_text.clone();
if !boolean_value && !self.infinite {
if !boolean_value {
Self::set_text(self, GString::from(original_text.unwrap_or("Hello World!".to_string())));
self.step_iterator = 0;
}
@ -67,6 +67,12 @@ impl ILabel for ScramblingText {
self.step_iterator = 0;
return false
}
else if property == StringName::from("text") {
self.original_text = Some(value.to_string());
return false
}
else {
return false
}
@ -81,6 +87,7 @@ impl ILabel for ScramblingText {
}
//TODO: THIS IS RETARDED:::::: PLEASE FIX BRUHHH
fn process(&mut self, delta: f64) {
if self.scrambling {
@ -92,31 +99,31 @@ impl ILabel for ScramblingText {
self.time_since_scramble += delta;
self.time_since_step += delta;
if !self.infinite && self.time_since_step >= duration {
godot_print!("{}", original_text);
self.time_since_step = 0.0;
self.step_iterator += 1;
}
if self.time_since_scramble > duration / speed && self.time_since_step < duration {
if self.time_since_scramble >= duration / speed {
self.time_since_scramble = 0.0;
let chars = self.chars.to_string();
let forbidden_chars = self.forbidden_chars.clone().unwrap();
let left = Self::slice_left(original_text.clone(), self.step_iterator);
let right = Self::slice_right(original_text.clone(), self.step_iterator);
// if cfg!(debug_assertions) {
// godot_print!("'{}'{}'", left.clone(), right.clone());
// }
self.base_mut().set_text(GString::from(String::from(left + &Self::get_glitch_text(right, chars, forbidden_chars))));
}
else if self.time_since_step > duration && self.step_iterator < original_text.chars().count() as i32 {
if !self.infinite | !self.editor_hint {
self.step_iterator += 1;
}
if original_text.len() as i32 <= self.step_iterator {
self.time_since_scramble = 0.0;
self.time_since_step = 0.0;
}
else if !self.infinite && self.step_iterator >= original_text.chars().count() as i32 {
self.step_iterator = 0;
self.scrambling = false;
self.base_mut().set_text(GString::from(original_text));
}
}
}
}