Pixel-Composer/scripts/addonPanel/addonPanel.gml
2024-03-15 19:38:08 +07:00

48 lines
1.1 KiB
Plaintext

global.ADDON_WIDGET = ds_map_create();
global.ADDON_ID = ds_map_create();
function addonPanel(_addon, pane) : PanelContent() constructor {
ID = UUID_generate();
self._addon = _addon;
self.pane = pane;
drawFn = struct_has(pane, "drawFn")? pane.drawFn : "";
drawUIFn = struct_has(pane, "drawUIFn")? pane.drawUIFn : "";
closeFn = struct_has(pane, "closeFn")? pane.closeFn : "";
title = filename_name_only(_addon.directory);
__addon_lua_panel_variable(_addon.thread, self);
showHeader = true;
w = pane.w;
h = pane.h;
function drawGUI() {
if(drawUIFn == "") return;
if(!_addon.ready) return;
lua_add_code(_addon.thread, $"panelID = '{ID}'");
var runResult = lua_call(_addon.thread, drawUIFn);
}
function onResize() {
}
function drawContent(panel) {
if(drawFn == "") return;
if(!_addon.ready) return;
lua_add_code(_addon.thread, $"panelID = '{ID}'");
__addon_lua_panel_variable(_addon.thread, self);
var runResult = lua_call(_addon.thread, drawFn);
}
static onClose = function() {
if(closeFn == "") return;
if(!_addon.ready) return;
var runResult = lua_call(_addon.thread, closeFn);
}
}