godot-xterm/addons/godot_xterm/plugin.gd
Leroy Hopson ef9e96ed13
Remove custom TerminalSettings Resource type
There is no current public use for this type and it would appear in every
resource dropdown.

While this type is no longer exposed publically by the plugin it is still
used internally by terminal_panel.
2022-06-04 12:50:57 +07:00

51 lines
1.6 KiB
GDScript

tool
extends EditorPlugin
var pty_supported := OS.get_name() in ["X11", "Server", "OSX"]
var asciicast_import_plugin
var xrdb_import_plugin
var terminal_panel: Control
func _enter_tree():
asciicast_import_plugin = preload("./import_plugins/asciicast_import_plugin.gd").new()
add_import_plugin(asciicast_import_plugin)
xrdb_import_plugin = preload("./import_plugins/xrdb_import_plugin.gd").new()
add_import_plugin(xrdb_import_plugin)
var asciicast_script = preload("./resources/asciicast.gd")
add_custom_type("Asciicast", "Animation", asciicast_script, null)
var terminal_script = preload("./terminal.gd")
var terminal_icon = preload("./nodes/terminal/terminal_icon.svg")
add_custom_type("Terminal", "Control", terminal_script, terminal_icon)
if pty_supported:
var base_dir = get_script().resource_path.get_base_dir()
var pty_icon = load("%s/nodes/pty/pty_icon.svg" % base_dir)
var pty_script
match OS.get_name():
"X11", "Server", "OSX":
pty_script = load("%s/nodes/pty/pty.gd" % base_dir)
add_custom_type("PTY", "Node", pty_script, pty_icon)
terminal_panel = preload("./editor_plugins/terminal/terminal_panel.tscn").instance()
terminal_panel.editor_plugin = self
terminal_panel.editor_interface = get_editor_interface()
add_control_to_bottom_panel(terminal_panel, "Terminal")
func _exit_tree():
remove_import_plugin(asciicast_import_plugin)
asciicast_import_plugin = null
remove_import_plugin(xrdb_import_plugin)
xrdb_import_plugin = null
remove_custom_type("Asciicast")
remove_custom_type("Terminal")
if pty_supported:
remove_custom_type("PTY")
remove_control_from_bottom_panel(terminal_panel)
terminal_panel.free()