Extension-Druid/druid/templates/component_full.template.lua
2022-03-08 20:41:55 +02:00

82 lines
1.8 KiB
Lua

local component = require("druid.component")
---@class component_name : druid.base_component
local Component = component.create("component_name")
-- Scheme of component gui nodes
local SCHEME = {
ROOT = "root",
BUTTON = "button",
}
-- Component constructor
function Component:init(template, nodes)
-- If your component is gui template, pass the template name and set it
self:set_template(template)
-- If your component is cloned my gui.clone_tree, pass nodes to component and set it
self:set_nodes(nodes)
-- self:get_node will auto process component template and nodes
self.root = self:get_node(SCHEME.ROOT)
-- Use inner druid instance to create components inside this component
self.druid = self:get_druid()
end
-- [OPTIONAL] Call every update step
function Component:update(dt)
end
-- [OPTIONAL] Call default on_input from gui script
function Component:on_input(action_id, action)
return false
end
-- [OPTIONAL] Call on component creation and on component:set_style() function
function Component:on_style_change(style)
end
-- [OPTIONAL] Call default on_message from gui script
function Component:on_message(message_id, message, sender)
end
-- [OPTIONAL] Call if druid has triggered on_language_change
function Component:on_language_change()
end
-- [OPTIONAL] Call if game layout has changed and need to restore values in component
function Component:on_layout_change()
end
-- [OPTIONAL] Call, if input was capturing before this component
-- Example: scroll is start scrolling, so you need unhover button
function Component:on_input_interrupt()
end
-- [OPTIONAL] Call, if game lost focus
function Component:on_focus_lost()
end
-- [OPTIONAL] Call, if game gained focus
function Component:on_focus_gained()
end
-- [OPTIONAL] Call on component remove or on druid:final
function Component:on_remove()
end
return Component