diff options
| author | Radio <radiohotline@disroot.org> | 2026-06-04 15:15:11 +0300 |
|---|---|---|
| committer | Radio <radiohotline@disroot.org> | 2026-06-04 15:15:11 +0300 |
| commit | 9d74b49ab62908d4acf53dde444413886b8b28e5 (patch) | |
| tree | 0cb785267ea7e239b19d88684c0d64b9bd5d52f0 /addons/escoria-dialog-simple/plugin.gd | |
| parent | 2c85d452ad02a5f89cd43bad7f9de31d0e4fa0c1 (diff) | |
escoria setup and old branch archives
Diffstat (limited to 'addons/escoria-dialog-simple/plugin.gd')
| -rw-r--r-- | addons/escoria-dialog-simple/plugin.gd | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/addons/escoria-dialog-simple/plugin.gd b/addons/escoria-dialog-simple/plugin.gd new file mode 100644 index 0000000..fd552f8 --- /dev/null +++ b/addons/escoria-dialog-simple/plugin.gd @@ -0,0 +1,145 @@ +@tool +# A simple dialog manager for Escoria +extends EditorPlugin + +const MANAGER_CLASS = "res://addons/escoria-dialog-simple/esc_dialog_simple.gd" + + +var left_click_actions: PackedStringArray = [ + SimpleDialogSettings.LEFT_CLICK_ACTION_SPEED_UP, + SimpleDialogSettings.LEFT_CLICK_ACTION_INSTANT_FINISH, + SimpleDialogSettings.LEFT_CLICK_ACTION_NOTHING +] + +var stop_talking_animation_on_options: PackedStringArray = [ + SimpleDialogSettings.STOP_TALKING_ANIMATION_ON_END_OF_TEXT, + SimpleDialogSettings.STOP_TALKING_ANIMATION_ON_END_OF_AUDIO +] + + +# Override function to return the plugin name. +func _get_plugin_name(): + return "escoria-dialog-simple" + + +# Unregister ourselves +func _disable_plugin(): + print("Disabling plugin Escoria Dialog Simple") + ESCProjectSettingsManager.remove_setting( + ESCProjectSettingsManager.DEFAULT_DIALOG_TYPE + ) + + ESCProjectSettingsManager.remove_setting( + SimpleDialogSettings.AVATARS_PATH + ) + + ESCProjectSettingsManager.remove_setting( + SimpleDialogSettings.TEXT_TIME_PER_LETTER_MS + ) + + ESCProjectSettingsManager.remove_setting( + SimpleDialogSettings.TEXT_TIME_PER_LETTER_MS_FAST + ) + + ESCProjectSettingsManager.remove_setting( + SimpleDialogSettings.CLEAR_TEXT_BY_CLICK_ONLY + ) + + ESCProjectSettingsManager.remove_setting( + SimpleDialogSettings.READING_SPEED_IN_WPM + ) + + ESCProjectSettingsManager.remove_setting( + SimpleDialogSettings.LEFT_CLICK_ACTION + ) + + ESCProjectSettingsManager.remove_setting( + SimpleDialogSettings.STOP_TALKING_ANIMATION_ON + ) + + EscoriaPlugin.deregister_dialog_manager(MANAGER_CLASS) + + +# Add ourselves to the list of dialog managers +func _enable_plugin(): + print("Enabling plugin Escoria Dialog Simple") + + if EscoriaPlugin.register_dialog_manager(self, MANAGER_CLASS): + ESCProjectSettingsManager.register_setting( + ESCProjectSettingsManager.DEFAULT_DIALOG_TYPE, + "floating", + { + "type": TYPE_STRING + } + ) + + ESCProjectSettingsManager.register_setting( + SimpleDialogSettings.AVATARS_PATH, + "res://game/dialog_avatars", + { + "type": TYPE_STRING, + "hint": PROPERTY_HINT_DIR + } + ) + + ESCProjectSettingsManager.register_setting( + SimpleDialogSettings.TEXT_TIME_PER_LETTER_MS, + SimpleDialogSettings.TEXT_TIME_PER_LETTER_MS_DEFAULT_VALUE, + { + "type": TYPE_FLOAT + } + ) + + ESCProjectSettingsManager.register_setting( + SimpleDialogSettings.TEXT_TIME_PER_LETTER_MS_FAST, + SimpleDialogSettings.TEXT_TIME_PER_LETTER_MS_FAST_DEFAULT_VALUE, + { + "type": TYPE_FLOAT + } + ) + + ESCProjectSettingsManager.register_setting( + SimpleDialogSettings.CLEAR_TEXT_BY_CLICK_ONLY, + false, + { + "type": TYPE_BOOL + } + ) + + ESCProjectSettingsManager.register_setting( + SimpleDialogSettings.READING_SPEED_IN_WPM, + SimpleDialogSettings.READING_SPEED_IN_WPM_DEFAULT_VALUE, + { + "type": TYPE_INT + } + ) + + var left_click_actions_string: String = ",".join(left_click_actions) + + ESCProjectSettingsManager.register_setting( + SimpleDialogSettings.LEFT_CLICK_ACTION, + SimpleDialogSettings.LEFT_CLICK_ACTION_SPEED_UP, + { + "type": TYPE_STRING, + "hint": PROPERTY_HINT_ENUM, + "hint_string": left_click_actions_string + } + ) + + var stop_talking_animation_on_options_string: String = ",".join(stop_talking_animation_on_options) + + ESCProjectSettingsManager.register_setting( + SimpleDialogSettings.STOP_TALKING_ANIMATION_ON, + SimpleDialogSettings.STOP_TALKING_ANIMATION_ON_END_OF_AUDIO, + { + "type": TYPE_STRING, + "hint": PROPERTY_HINT_ENUM, + "hint_string": stop_talking_animation_on_options_string + } + ) + + else: + get_editor_interface().set_plugin_enabled( + _get_plugin_name(), + false + ) |
