mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 10:05:34 +00:00
63 lines
1.9 KiB
GDScript
63 lines
1.9 KiB
GDScript
# Copyright 2025-present Delano Lourenco
|
|
# License: See LICENSE.md
|
|
# Website: https://gdaimcp.com
|
|
@tool
|
|
extends EditorPlugin
|
|
|
|
|
|
func _enable_plugin() -> void:
|
|
if Engine.is_editor_hint():
|
|
add_autoload_singleton("GDAIMCPRuntime", "res://addons/gdai-mcp-plugin-godot/gdai_mcp_runtime.gd")
|
|
|
|
|
|
func _disable_plugin() -> void:
|
|
if Engine.is_editor_hint():
|
|
remove_autoload_singleton("GDAIMCPRuntime")
|
|
|
|
|
|
func _enter_tree():
|
|
var os = OS.get_name().to_lower()
|
|
var arch = Engine.get_architecture_name().to_lower()
|
|
|
|
const ALLOWED_OS = ["macos", "windows", "linux"]
|
|
if os not in ALLOWED_OS:
|
|
_print_err("GDAI MCP plugin does not support this Operating System (%s)!" % os)
|
|
return
|
|
|
|
const ALLOWED_ARCH = ["arm64", "x86_64"]
|
|
if arch not in ALLOWED_ARCH:
|
|
_print_err("GDAI MCP plugin does not support this CPU architecture (%s)!" % arch)
|
|
return
|
|
|
|
var shared_lib_path = _get_shared_lib_path(os, arch)
|
|
if not FileAccess.file_exists(shared_lib_path) and not _is_debug():
|
|
_print_err("Binary files for GDAI MCP plugin are missing, so the plugin wont be loaded. Please re-install the plugin from [url=https://gdaimcp.com]https://gdaimcp.com[/url] or disable the plugin in Project Settings.")
|
|
return
|
|
|
|
|
|
func _get_shared_lib_path(p_os, p_arch):
|
|
const BIN_PATH = "res://addons/gdai-mcp-plugin-godot/bin"
|
|
var shared_lib_path = "%s/%s/libgdai-mcp-plugin-godot.%s.template_release.%s.%s" % [BIN_PATH, p_os, p_os, _get_suffix(p_os, p_arch), _get_ext(p_os)]
|
|
return shared_lib_path.replace(".universal", "")
|
|
|
|
|
|
func _get_suffix(p_os, p_arch):
|
|
if p_os == "macos":
|
|
return "universal"
|
|
return p_arch
|
|
|
|
|
|
func _get_ext(p_os: String):
|
|
if p_os == "macos":
|
|
return "dylib"
|
|
if p_os == "linux":
|
|
return "so"
|
|
return "dll"
|
|
|
|
|
|
func _is_debug() -> bool:
|
|
return DirAccess.dir_exists_absolute(ProjectSettings.globalize_path("res://addons/gdai-mcp-testsuite"))
|
|
|
|
|
|
func _print_err(p_bbcode: String):
|
|
print_rich("[color=TOMATO][b]GDAIMCP::ERROR::[/b] " + p_bbcode + "[/color]")
|