Resolve #171 #158 Don't need to pass full template name, correct work with inner clone_tree and inner templates

This commit is contained in:
Insality
2022-03-09 18:06:41 +02:00
parent a4e8e9fb3a
commit a3e5ff1116
10 changed files with 2219 additions and 37 deletions

View File

@@ -0,0 +1,39 @@
local component = require("druid.component")
local InnerButton = require("example.examples.system.inner_templates.inner_button")
---@class inner_panel : druid.base_component
local InnerPanel = component.create("inner_panel")
local SCHEME = {
ROOT = "root",
BACKGROUND = "background",
INNER_BUTTON_1 = "inner_button_1",
INNER_BUTTON_2 = "inner_button_2",
INNER_BUTTON_PREFAB = "inner_button_prefab",
INNER_BUTTON_PREFAB_ROOT = "inner_button_prefab/root",
}
function InnerPanel:init(template, nodes)
self:set_template(template)
self:set_nodes(nodes)
self.root = self:get_node(SCHEME.ROOT)
self.druid = self:get_druid()
self.button1 = self.druid:new(InnerButton, SCHEME.INNER_BUTTON_1, nodes)
self.button2 = self.druid:new(InnerButton, SCHEME.INNER_BUTTON_2, nodes)
local prefab = self:get_node(SCHEME.INNER_BUTTON_PREFAB_ROOT)
local button_nodes = gui.clone_tree(prefab)
self.button3 = self.druid:new(InnerButton, SCHEME.INNER_BUTTON_PREFAB, button_nodes)
gui.set_enabled(prefab, false)
end
function InnerPanel:on_remove()
end
return InnerPanel