--- For component interest functions
--- see https://github.com/Insality/druid/blob/develop/docs_md/02-creating_custom_components.md
--- Require this component in you gui file:
--- local {COMPONENT_NAME} = require("{COMPONENT_PATH}")
--- And create this component via:
--- self.{COMPONENT_TYPE} = self.druid:new({COMPONENT_NAME}, template, nodes)

local component = require("druid.component")

---@class {COMPONENT_TYPE}: druid.base_component{COMPONENT_ANNOTATIONS}
---@field druid druid_instance
local {COMPONENT_NAME} = component.create("{COMPONENT_TYPE}")

local SCHEME = {
{SCHEME_LIST}
}


---@param template string
---@param nodes table<hash, node>
function {COMPONENT_NAME}:init(template, nodes)
	self:set_template(template)
	self:set_nodes(nodes)
	self.druid = self:get_druid(){COMPONENT_DEFINE}
end


function {COMPONENT_NAME}:on_remove()
end

{COMPONENT_FUNCTIONS}
return {COMPONENT_NAME}
