67 lines
1.7 KiB
GDScript
67 lines
1.7 KiB
GDScript
@tool
|
|
extends EditorPlugin
|
|
## CGHEVEN Asset Library — Godot editor plugin entry point.
|
|
## Adds an After-Effects-styled dock that browses/downloads/imports CGHEVEN
|
|
## assets from api.cgheven.com, reusing the existing backend and gating.
|
|
|
|
var _dock: CghMainDock
|
|
var _api: CghApiClient
|
|
var _auth: CghAuth
|
|
var _downloader: CghDownloader
|
|
var _analytics: CghAnalytics
|
|
var _updater: CghUpdater
|
|
var _theme: Theme
|
|
var _heartbeat: Timer
|
|
|
|
func _enter_tree() -> void:
|
|
_theme = CghTheme.build()
|
|
|
|
# core services (must be in the editor tree for HTTPRequest to work)
|
|
_api = CghApiClient.new()
|
|
_auth = CghAuth.new()
|
|
_downloader = CghDownloader.new()
|
|
_analytics = CghAnalytics.new()
|
|
_updater = CghUpdater.new()
|
|
|
|
_dock = CghMainDock.new()
|
|
_dock.name = "CGHEVEN"
|
|
_dock.theme = _theme
|
|
_dock.api = _api
|
|
_dock.auth = _auth
|
|
_dock.downloader = _downloader
|
|
_dock.analytics = _analytics
|
|
_dock.updater = _updater
|
|
|
|
# services live under the dock so they are inside the tree
|
|
_dock.add_child(_api)
|
|
_dock.add_child(_auth)
|
|
_dock.add_child(_downloader)
|
|
_dock.add_child(_analytics)
|
|
_dock.add_child(_updater)
|
|
|
|
add_control_to_dock(DOCK_SLOT_RIGHT_UL, _dock)
|
|
|
|
# defer boot one frame so all children are ready
|
|
_dock.call_deferred("boot")
|
|
|
|
# heartbeat: live plan refresh (Free -> Pro without re-login)
|
|
_heartbeat = Timer.new()
|
|
_heartbeat.wait_time = 120.0
|
|
_heartbeat.autostart = true
|
|
_heartbeat.timeout.connect(func():
|
|
if _auth and _auth.is_logged_in():
|
|
_auth.heartbeat())
|
|
_dock.add_child(_heartbeat)
|
|
|
|
func _exit_tree() -> void:
|
|
if _dock:
|
|
remove_control_from_docks(_dock)
|
|
_dock.queue_free()
|
|
_dock = null
|
|
|
|
func _has_main_screen() -> bool:
|
|
return false
|
|
|
|
func _get_plugin_name() -> String:
|
|
return "CGHEVEN Asset Library"
|