diff --git a/src/scrambling_text.rs b/src/scrambling_text.rs index cde94fa..00c372a 100644 --- a/src/scrambling_text.rs +++ b/src/scrambling_text.rs @@ -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)); } + } } }