Diffstat (limited to 'matrix.gd')
| -rw-r--r-- | matrix.gd | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/matrix.gd b/matrix.gd new file mode 100644 index 0000000..8f07f94 --- /dev/null +++ b/matrix.gd @@ -0,0 +1,28 @@ +tool extends RichTextEffect +class_name RichTextMatrix + +var bbcode = "matrix" + +func _init(): + resource_name = "RichTextMatrix" + +func _process_custom_fx(char_fx : CharFXTransform) -> bool: + var clear_time = char_fx.env.get("clean", 2.0) + var dirty_time = char_fx.env.get("dirty", 1.0) + var text_span = char_fx.env.get("span", 50) + + var value = char_fx.character + + var matrix_time = fmod(char_fx.elapsed_time + (char_fx.absolute_index / float(text_span)), \ + clear_time + dirty_time) + + matrix_time = 0.0 if matrix_time < clear_time else \ + (matrix_time - clear_time)/dirty_time + + if( value >= 65 && value < 126 && matrix_time > 0.0 ): + value -= 65 + value = value + int((1 * matrix_time * (126-65))) + value %= (126 - 65) + value += 65 + char_fx.character = value + return true
\ No newline at end of file |