From cceffd4edfd791a5cbdbb79c239e4d47fecd6166 Mon Sep 17 00:00:00 2001 From: Leroy Hopson Date: Sat, 27 Aug 2022 10:31:25 +1200 Subject: [PATCH] Use load() rather than preload() for terminal icon Allows the plugin to load even if resources have not been imported yet. For example, if someone has opened a project with the plugin for the first time. Otherwise, the plugin will fail to load and be disable in the `project.godot` file. --- .github/workflows/main.yml | 6 +----- addons/godot_xterm/plugin.gd | 4 +++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index df35a2a..f212654 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -185,11 +185,7 @@ jobs: path: addons/godot_xterm/native/bin - name: Import assets shell: bash - # The GodotXterm plugin will be disabled the first time we run the editor as resources that it depends - # (e.g. icons) will not have been imported yet so the plugin will fail to load. Without the plugin - # enabled resources imported by GodotXterm import plugins (e.g. .cast) will not be imported. Therefore, - # we need to re-enable the plugin by checking out project.godot and running the editor again. - run: godot --editor .github/import_assets.tscn && git checkout project.godot && godot --editor .github/import_assets.tscn + run: godot --editor .github/import_assets.tscn - name: Export HTML5 run: godot --no-window --export HTML5 - name: NPM cache diff --git a/addons/godot_xterm/plugin.gd b/addons/godot_xterm/plugin.gd index 2fa5a93..4746bee 100644 --- a/addons/godot_xterm/plugin.gd +++ b/addons/godot_xterm/plugin.gd @@ -18,7 +18,9 @@ func _enter_tree(): add_custom_type("Asciicast", "Animation", asciicast_script, null) var terminal_script = preload("./terminal.gd") - var terminal_icon = preload("./nodes/terminal/terminal_icon.svg") + var terminal_icon = load( + "%s/nodes/terminal/terminal_icon.svg" % get_script().resource_path.get_base_dir() + ) add_custom_type("Terminal", "Control", terminal_script, terminal_icon) if pty_supported: