@tool extends EditorPlugin const Debugger = preload("debugger.gd") const Exporter = preload("exporter.gd") const Settings = preload("settings.gd") const Utilities = preload("utilities.gd") var debugger := Debugger.new() var exporter := Exporter.new() func _enter_tree() -> void: debugger.erase_describe_callable = _erase_describe exporter.erase_describe_callable = _erase_describe exporter.set_describe_callable = _set_describe add_debugger_plugin(debugger) add_export_plugin(exporter) Settings.init_settings() Utilities.push_status() func _build() -> bool: _set_describe() return true func _disable_plugin() -> void: remove_debugger_plugin(debugger) remove_export_plugin(exporter) _erase_describe() func _exit_tree() -> void: _disable_plugin() func _set_describe() -> void: var describe: String = Utilities.get_git_describe( Settings.get_command_options() ) Settings.set_describe_setting(describe) Settings.append_project_name(describe, true) func _erase_describe() -> void: Settings.set_describe_setting(null) Settings.append_project_name(Settings.cached_describe, false)