diff --git a/README.md b/README.md index b575984..7873bb8 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ end) ## Components Druid provides next basic components: _insert simple gif of each?_ +_separate .md for each base component?_ - **Button** - basic game button - **Text** - wrap on gui text node - **Blocker** - block input in node zone @@ -44,8 +45,8 @@ _insert simple gif of each?_ - **Grid** - manage node positions - **Slider** - simple slider (ex. volume adjust) - **Checkbox** - simple checkbox -- **Checkbox** group - many checkbox -- **Radio** group - many checkbox with single choice +- **Checkbox group** - many checkbox +- **Radio group** - many checkbox with single choice ## Styles You can setup default style for all druid module, for druid instance or any base druid component. diff --git a/druid/base/blocker.lua b/druid/base/blocker.lua index 4212ec4..14f3fc2 100644 --- a/druid/base/blocker.lua +++ b/druid/base/blocker.lua @@ -12,7 +12,7 @@ M.interest = { function M.init(self, node) - self.node = helper.node(node) + self.node = helper.get_node(node) self.event = const.ACTION_TOUCH end diff --git a/druid/base/button.lua b/druid/base/button.lua index 5398ac6..5d6ca1a 100644 --- a/druid/base/button.lua +++ b/druid/base/button.lua @@ -25,10 +25,10 @@ M.interest = { function M.init(self, node, callback, params, anim_node, event) assert(callback, "Button should have callback. To block input on zone use blocker component") self.style = helper.get_style(self, "BUTTON") - self.node = helper.node(node) + self.node = helper.get_node(node) self.event = const.ACTION_TOUCH - self.anim_node = anim_node and helper.node(anim_node) or self.node + self.anim_node = anim_node and helper.get_node(anim_node) or self.node self.scale_from = gui.get_scale(self.anim_node) self.pos = gui.get_position(self.anim_node) self.callback = callback @@ -142,7 +142,7 @@ end -- @tparam table self Component instance -- @tparam node zone Gui node function M.set_click_zone(self, zone) - self.click_zone = helper.node(zone) + self.click_zone = helper.get_node(zone) end diff --git a/druid/base/checkbox.lua b/druid/base/checkbox.lua index d7406be..ffc74df 100644 --- a/druid/base/checkbox.lua +++ b/druid/base/checkbox.lua @@ -35,8 +35,8 @@ end function M.init(self, node, callback, click_node) self.style = helper.get_style(self, "CHECKBOX") self.druid = helper.get_druid(self) - self.node = helper.node(node) - self.click_node = helper.node(click_node) + self.node = helper.get_node(node) + self.click_node = helper.get_node(click_node) self.callback = callback self.button = self.druid:new_button(self.click_node or self.node, on_click) diff --git a/druid/base/grid.lua b/druid/base/grid.lua index e47e69e..acdfcbd 100644 --- a/druid/base/grid.lua +++ b/druid/base/grid.lua @@ -8,13 +8,13 @@ local M = {} function M.init(self, parent, element, in_row) - self.parent = helper.node(parent) + self.parent = helper.get_node(parent) self.nodes = {} self.offset = vmath.vector3(0) self.anchor = vmath.vector3(0.5, 0, 0) self.in_row = in_row or 1 - self.node_size = gui.get_size(helper.node(element)) + self.node_size = gui.get_size(helper.get_node(element)) self.border = vmath.vector4(0) self.border_offset = vmath.vector3(0) end diff --git a/druid/base/progress.lua b/druid/base/progress.lua index 5a5778b..3a9019e 100644 --- a/druid/base/progress.lua +++ b/druid/base/progress.lua @@ -24,7 +24,7 @@ function M.init(self, node, key, init_value) self.key = key self.style = helper.get_style(self, "PROGRESS") - self.node = helper.node(node) + self.node = helper.get_node(node) self.scale = gui.get_scale(self.node) self.size = gui.get_size(self.node) self.max_size = self.size[self.key] diff --git a/druid/base/scroll.lua b/druid/base/scroll.lua index fa5d169..15da58c 100644 --- a/druid/base/scroll.lua +++ b/druid/base/scroll.lua @@ -18,8 +18,8 @@ M.current_scroll = nil function M.init(self, scroll_parent, input_zone, border) self.style = helper.get_style(self, "SCROLL") - self.node = helper.node(scroll_parent) - self.input_zone = helper.node(input_zone) + self.node = helper.get_node(scroll_parent) + self.input_zone = helper.get_node(input_zone) self.zone_size = gui.get_size(self.input_zone) self.soft_size = self.style.SOFT_ZONE_SIZE diff --git a/druid/base/slider.lua b/druid/base/slider.lua index 98b5846..2009274 100644 --- a/druid/base/slider.lua +++ b/druid/base/slider.lua @@ -18,7 +18,7 @@ end function M.init(self, node, end_pos, callback) - self.node = helper.node(node) + self.node = helper.get_node(node) self.start_pos = gui.get_position(self.node) self.pos = gui.get_position(self.node) diff --git a/druid/base/text.lua b/druid/base/text.lua index 2df969c..cbeaaff 100644 --- a/druid/base/text.lua +++ b/druid/base/text.lua @@ -9,7 +9,7 @@ local M = {} function M.init(self, node, value, no_adjust) - self.node = helper.node(node) + self.node = helper.get_node(node) self.start_pivot = gui.get_pivot(self.node) self.start_pos = gui.get_position(self.node) diff --git a/druid/base/timer.lua b/druid/base/timer.lua index c531205..08afe4c 100644 --- a/druid/base/timer.lua +++ b/druid/base/timer.lua @@ -14,7 +14,7 @@ local empty = function() end function M.init(self, node, seconds_from, seconds_to, callback) - self.node = helper.node(node) + self.node = helper.get_node(node) seconds_from = math.max(seconds_from, 0) seconds_to = math.max(seconds_to or 0, 0) callback = callback or empty diff --git a/druid/helper.lua b/druid/helper.lua index 5c66d14..e8ef801 100644 --- a/druid/helper.lua +++ b/druid/helper.lua @@ -83,7 +83,7 @@ function M.after(count, callback) end -function M.node(node_or_name) +function M.get_node(node_or_name) if type(node_or_name) == const.STRING then return gui.get_node(node_or_name) end @@ -91,6 +91,21 @@ function M.node(node_or_name) end +-- TODO: Определиться с get_node и node +-- get_node - берет ноду по ноде или строке +-- node - может брать ноду у компонента по схеме (если есть +-- template или таблица нод после gui.clone_tree) +function M.node(component, name) + local template_name = component.template or const.EMPTY_STRING + + if component.nodes then + return component.nodes[template_name .. name] + else + return gui.get_node(template_name .. name) + end +end + + function M.step(current, target, step) if current < target then return math.min(current + step, target)