Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Dont Touch #
- def OnUpdate(self):
- current_time = time.time()
- if current_time - self.last_update_time < self.animation_interval:
- return
- self.last_update_time = current_time
- window = self.GetCurrentWindow()
- if window == None:
- return
- scriptChildrens = window.Children
- if len(scriptChildrens) == 0:
- return
- elementDictionary = window.ElementDictionary
- for childName, child in elementDictionary.items():
- (_x, _y) = child.GetGlobalPosition()
- childHeight = child.GetHeight()
- textLines = []
- if isinstance(child, ui.TextLine):
- textLines.append(child)
- for childItem in textLines:
- text = childItem.GetText()
- if text is None or len(text) == 0:
- continue
- if childItem.GetTextSize()[0] > 250 and text.endswith("..") == False:
- if childItem not in self.original_texts:
- self.original_texts[childItem] = text
- self.text_iteration[childItem] = len(text)
- self.text_length[childItem] = len(text)
- if childItem not in self.default_texts:
- while childItem.GetTextSize()[0] > 250 and len(text) > 0:
- text = text[:-1]
- childItem.SetText(text)
- if childItem not in self.text_nr_of_letters_hidden:
- self.text_nr_of_letters_hidden[childItem] = len(self.original_texts[childItem]) - len(text)
- self.default_texts[childItem] = text
- self.text_iteration[childItem] = len(text)
- text = self.default_texts[childItem][:-2] + ".."
- childItem.SetText(text)
- xMouse, yMouse = wndMgr.GetMousePosition()
- x, y = childItem.GetGlobalPosition()
- is_hovered = (
- xMouse >= x and
- xMouse < x + childItem.GetTextSize()[0] and
- yMouse >= y and
- yMouse < y + childItem.GetTextSize()[1]
- )
- if is_hovered:
- if childItem.GetText().endswith(".."):
- text = childItem.SetText(self.default_texts[childItem])
- self.text_iteration[childItem] = len(self.default_texts[childItem])
- self.text_nr_of_letters_hidden[childItem] = len(self.original_texts[childItem]) - len(self.default_texts[childItem])
- self.text_nr_of_letters_revealed[childItem] = 0
- if text is None or len(text) == 0:
- continue
- if len(text) > 2 and childItem in self.original_texts:
- if childItem not in self.text_directions:
- self.text_directions[childItem] = "forward"
- if self.text_directions[childItem] == "backward":
- self.text_directions[childItem] = "forward"
- if self.text_directions[childItem] == "forward":
- if self.text_iteration[childItem] < len(self.original_texts[childItem]):
- expected_next_letter = self.original_texts[childItem][self.text_iteration[childItem]]
- self.text_iteration[childItem] += 1
- new_text = text[1:] + expected_next_letter
- childItem.SetText(new_text)
- if childItem.GetTextSize()[0] > 250:
- new_text = new_text[:-1]
- self.text_iteration[childItem] -= 1
- childItem.SetText(new_text)
- if childItem.GetTextSize()[0] < 250-5:
- childItem.SetText(new_text)
- if childItem not in self.text_nr_of_letters_revealed:
- self.text_nr_of_letters_revealed[childItem] = 1
- else:
- self.text_nr_of_letters_revealed[childItem] += 1
- else:
- if childItem in self.text_directions and self.text_directions[childItem] == "forward":
- self.text_directions[childItem] = "backward"
- elif childItem in self.text_directions and self.text_directions[childItem] == "backward":
- if childItem in self.default_texts:
- text = childItem.GetText()
- prev_char_index = self.text_nr_of_letters_revealed.get(childItem, 0) - 1
- self.text_iteration[childItem] -= 1
- if prev_char_index >= 0:
- new_text = self.original_texts[childItem][prev_char_index] + text[:-1]
- childItem.SetText(new_text)
- self.text_nr_of_letters_revealed[childItem] = prev_char_index
- while childItem.GetTextSize()[0] > 250:
- new_text = new_text[:-1]
- self.text_iteration[childItem] -= 1
- childItem.SetText(new_text)
- while childItem.GetTextSize()[0] < 250 - 5 and prev_char_index > 0:
- prev_char_index -= 1
- new_text = self.original_texts[childItem][prev_char_index] + new_text
- childItem.SetText(new_text)
- self.text_nr_of_letters_revealed[childItem] = prev_char_index
- else:
- self.text_directions[childItem] = "forward"
- childItem.SetText(self.default_texts[childItem])
- self.text_iteration[childItem] = len(self.default_texts[childItem])
- self.text_nr_of_letters_hidden[childItem] = len(self.original_texts[childItem]) - len(self.default_texts[childItem])
- self.text_nr_of_letters_revealed[childItem] = 0
- text = self.default_texts[childItem][:-2] + ".."
- childItem.SetText(text)
- # Dont Touch #
Advertisement
Add Comment
Please, Sign In to add comment