From c33dbd59422f19f4357a09c3ec632e8cca8941e5 Mon Sep 17 00:00:00 2001 From: Insality Date: Sun, 20 Apr 2025 12:15:31 +0300 Subject: [PATCH] Update API pages --- api/components/base/back_handler_api.md | 2 +- api/components/base/button_api.md | 26 +- api/components/base/component_api.md | 6 +- api/components/base/scroll_api.md | 6 +- api/components/base/static_grid_api.md | 397 +---------------------- api/components/base/text_api.md | 18 +- api/components/extended/container_api.md | 3 - api/components/extended/data_list_api.md | 6 +- api/components/extended/lang_text_api.md | 2 +- api/components/extended/layout_api.md | 2 +- api/components/extended/progress_api.md | 8 +- api/components/extended/slider_api.md | 2 +- druid/base/back_handler.lua | 4 +- druid/base/button.lua | 14 +- druid/base/scroll.lua | 6 +- druid/base/static_grid.lua | 10 +- druid/base/text.lua | 6 +- druid/extended/data_list.lua | 6 +- druid/extended/lang_text.lua | 2 +- druid/extended/layout.lua | 2 +- druid/extended/progress.lua | 2 +- druid/extended/slider.lua | 2 +- game.project | 4 +- wiki/changelog.md | 6 +- 24 files changed, 82 insertions(+), 460 deletions(-) diff --git a/api/components/base/back_handler_api.md b/api/components/base/back_handler_api.md index 01b4e59..60804fd 100644 --- a/api/components/base/back_handler_api.md +++ b/api/components/base/back_handler_api.md @@ -38,7 +38,7 @@ The Back Handler constructor ## Fields -- **on_back** (_event_): Trigger on back handler action, fun(self, params) +- **on_back** (_event_): fun(self: druid.back_handler, params: any?) Trigger on back handler action - **params** (_any_): Custom args to pass in the callback diff --git a/api/components/base/button_api.md b/api/components/base/button_api.md index ffcf86f..a3034be 100644 --- a/api/components/base/button_api.md +++ b/api/components/base/button_api.md @@ -112,10 +112,10 @@ button:is_enabled() ``` Get button enabled state. -By default all Buttons is enabled on creating. +By default all Buttons are enabled on creating. - **Returns:** - - `is_enabled` *(boolean)*: True, if button is enabled now, False overwise + - `is_enabled` *(boolean)*: True, if button is enabled now, False otherwise ### set_click_zone @@ -125,7 +125,7 @@ button:set_click_zone([zone]) ``` Set additional button click area. -Useful to restrict click outside out stencil node or scrollable content. +Useful to restrict click outside of stencil node or scrollable content. If button node placed inside stencil node, it will be automatically set to this stencil node. - **Parameters:** @@ -168,11 +168,11 @@ Get current key name to trigger this button. button:set_check_function([check_function], [failure_callback]) ``` -Set function for additional check for button click availability +Set function for additional check for button click availability. - **Parameters:** - `[check_function]` *(function|nil)*: Should return true or false. If true - button can be pressed. - - `[failure_callback]` *(function|nil)*: Function will be called on button click, if check function return false + - `[failure_callback]` *(function|nil)*: Function will be called on button click, if check function returns false - **Returns:** - `self` *(druid.button)*: The current button instance @@ -186,7 +186,7 @@ button:set_web_user_interaction([is_web_mode]) Set Button mode to work inside user HTML5 interaction event. It's required to make protected things like copy & paste text, show mobile keyboard, etc -The HTML5 button's doesn't call any events except on_click event. +The HTML5 button doesn't call any events except on_click event. If the game is not HTML, html mode will be not enabled - **Parameters:** @@ -198,25 +198,25 @@ If the game is not HTML, html mode will be not enabled ## Fields -- **on_click** (_event_): function(self, custom_args, button_instance) +- **on_click** (_event_): fun(self, custom_args, button_instance) -- **on_pressed** (_event_): function(self, custom_args, button_instance) +- **on_pressed** (_event_): fun(self, custom_args, button_instance) -- **on_repeated_click** (_event_): function(self, custom_args, button_instance, click_count) Repeated click callback, while holding the button +- **on_repeated_click** (_event_): fun(self, custom_args, button_instance, click_count) Repeated click callback, while holding the button -- **on_long_click** (_event_): function(self, custom_args, button_instance, hold_time) Callback on long button tap +- **on_long_click** (_event_): fun(self, custom_args, button_instance, hold_time) Callback on long button tap -- **on_double_click** (_event_): function(self, custom_args, button_instance, click_amount) Different callback, if tap button 2+ in row +- **on_double_click** (_event_): fun(self, custom_args, button_instance, click_amount) Different callback, if tap button 2+ in row -- **on_hold_callback** (_event_): function(self, custom_args, button_instance, press_time) Hold callback, before long_click trigger +- **on_hold_callback** (_event_): fun(self, custom_args, button_instance, press_time) Hold callback, before long_click trigger -- **on_click_outside** (_event_): function(self, custom_args, button_instance) +- **on_click_outside** (_event_): fun(self, custom_args, button_instance) - **node** (_node_): Clickable node diff --git a/api/components/base/component_api.md b/api/components/base/component_api.md index ae182de..8cf0370 100644 --- a/api/components/base/component_api.md +++ b/api/components/base/component_api.md @@ -243,13 +243,13 @@ Get full template name. --- ```lua -component:set_nodes(nodes) +component:set_nodes([nodes]) ``` Set current component nodes, returned from `gui.clone_tree` function. - **Parameters:** - - `nodes` *(table)*: + - `[nodes]` *(string|node|table|nil)*: The nodes table from gui.clone_tree or prefab node to use for clone or node id to clone - **Returns:** - `` *(druid.component)*: @@ -292,7 +292,7 @@ Get Druid instance for inner component creation. - **Parameters:** - `[template]` *(string|nil)*: - - `[nodes]` *(table|nil)*: + - `[nodes]` *(string|node|table|nil)*: The nodes table from gui.clone_tree or prefab node to use for clone or node id to clone - **Returns:** - `` *(druid.instance)*: diff --git a/api/components/base/scroll_api.md b/api/components/base/scroll_api.md index 141f20b..7790377 100644 --- a/api/components/base/scroll_api.md +++ b/api/components/base/scroll_api.md @@ -334,13 +334,13 @@ Strict drag scroll area. Useful for - **click_zone** (_node_): Optional click zone to restrict scroll area -- **on_scroll** (_event_): Triggered on scroll move with fun(self, position) +- **on_scroll** (_event_): fun(self: druid.scroll, position: vector3) Triggered on scroll move -- **on_scroll_to** (_event_): Triggered on scroll_to with fun(self, target, is_instant) +- **on_scroll_to** (_event_): fun(self: druid.scroll, target: vector3, is_instant: boolean) Triggered on scroll_to -- **on_point_scroll** (_event_): Triggered on scroll_to_index with fun(self, index, point) +- **on_point_scroll** (_event_): fun(self: druid.scroll, index: number, point: vector3) Triggered on scroll_to_index - **view_node** (_node_): The scroll view node (static part) diff --git a/api/components/base/static_grid_api.md b/api/components/base/static_grid_api.md index 2498d60..82e7dd2 100644 --- a/api/components/base/static_grid_api.md +++ b/api/components/base/static_grid_api.md @@ -4,14 +4,6 @@ The component for manage the nodes position in the grid with various options - -## Functions -- [init](#init)# druid.grid API - -> at /druid/base/static_grid.lua - -The component for manage the nodes position in the grid with various options - ## Functions - [init](#init) @@ -346,398 +338,19 @@ Sort grid nodes by custom comparator function ## Fields -- **on_add_item** (_event_): Trigger on add item event, fun(self, item, index) +- **on_add_item** (_event_): fun(self: druid.grid, item: node, index: number) Trigger on add item event -- **on_remove_item** (_event_): Trigger on remove item event, fun(self, index) +- **on_remove_item** (_event_): fun(self: druid.grid, index: number) Trigger on remove item event -- **on_change_items** (_event_): Trigger on change items event, fun(self, index) +- **on_change_items** (_event_): fun(self: druid.grid, index: number) Trigger on change items event -- **on_clear** (_event_): Trigger on clear event, fun(self) +- **on_clear** (_event_): fun(self: druid.grid) Trigger on clear event -- **on_update_positions** (_event_): Trigger on update positions event, fun(self) - - -- **parent** (_node_): Parent node - - -- **nodes** (_node[]_): Nodes array - - -- **first_index** (_number_): First index - - -- **last_index** (_number_): Last index - - -- **anchor** (_vector3_): Anchor - - -- **pivot** (_vector3_): Pivot - - -- **node_size** (_vector3_): Node size - - -- **border** (_vector4_): Border - - -- **in_row** (_number_): In row - - -- **style** (_druid.grid.style_): Style - - -- **node_pivot** (_unknown_) - - -- [get_pos](#get_pos) -- [get_index](#get_index) -- [get_index_by_node](#get_index_by_node) -- [set_anchor](#set_anchor) -- [refresh](#refresh) -- [set_pivot](#set_pivot) -- [add](#add) -- [set_items](#set_items) -- [remove](#remove) -- [get_size](#get_size) -- [get_size_for](#get_size_for) -- [get_borders](#get_borders) -- [get_all_pos](#get_all_pos) -- [set_position_function](#set_position_function) -- [clear](#clear) -- [get_offset](#get_offset) -- [set_in_row](#set_in_row) -- [set_item_size](#set_item_size) -- [sort_nodes](#sort_nodes) - - -## Fields -- [on_add_item](#on_add_item) -- [on_remove_item](#on_remove_item) -- [on_change_items](#on_change_items) -- [on_clear](#on_clear) -- [on_update_positions](#on_update_positions) -- [parent](#parent) -- [nodes](#nodes) -- [first_index](#first_index) -- [last_index](#last_index) -- [anchor](#anchor) -- [pivot](#pivot) -- [node_size](#node_size) -- [border](#border) -- [in_row](#in_row) -- [style](#style) -- [node_pivot](#node_pivot) - - - -### init - ---- -```lua -grid:init(parent, element, [in_row]) -``` - -The constructor for the grid component - -- **Parameters:** - - `parent` *(string|node)*: The GUI Node container, where grid's items will be placed - - `element` *(node)*: Element prefab. Need to get it size - - `[in_row]` *(number|nil)*: How many nodes in row can be placed. By default 1 - -### get_pos - ---- -```lua -grid:get_pos(index) -``` - -Return pos for grid node index - -- **Parameters:** - - `index` *(number)*: The grid element index - -- **Returns:** - - `position` *(vector3)*: Node position - -### get_index - ---- -```lua -grid:get_index(pos) -``` - -Return grid index by position - -- **Parameters:** - - `pos` *(vector3)*: The node position in the grid - -- **Returns:** - - `index` *(number)*: The node index - -### get_index_by_node - ---- -```lua -grid:get_index_by_node(node) -``` - -Return grid index by node - -- **Parameters:** - - `node` *(node)*: The gui node in the grid - -- **Returns:** - - `index` *(number|nil)*: The node index - -### set_anchor - ---- -```lua -grid:set_anchor(anchor) -``` - -Set grid anchor. Default anchor is equal to anchor of grid parent node - -- **Parameters:** - - `anchor` *(vector3)*: Anchor - -### refresh - ---- -```lua -grid:refresh() -``` - -Instantly update the grid content - -- **Returns:** - - `self` *(druid.grid)*: Current grid instance - -### set_pivot - ---- -```lua -grid:set_pivot(pivot) -``` - -Set grid pivot - -- **Parameters:** - - `pivot` *(constant)*: The new pivot - -- **Returns:** - - `self` *(druid.grid)*: Current grid instance - -### add - ---- -```lua -grid:add(item, [index], [shift_policy], [is_instant]) -``` - -Add new item to the grid - -- **Parameters:** - - `item` *(node)*: GUI node - - `[index]` *(number|nil)*: The item position. By default add as last item - - `[shift_policy]` *(number|nil)*: How shift nodes, if required. Default: const.SHIFT.RIGHT - - `[is_instant]` *(boolean|nil)*: If true, update node positions instantly - -- **Returns:** - - `self` *(druid.grid)*: Current grid instance - -### set_items - ---- -```lua -grid:set_items(nodes, [is_instant]) -``` - -Set new items to the grid. All previous items will be removed - -- **Parameters:** - - `nodes` *(node[])*: The new grid nodes - - `[is_instant]` *(boolean|nil)*: If true, update node positions instantly - -- **Returns:** - - `self` *(druid.grid)*: Current grid instance - -### remove - ---- -```lua -grid:remove(index, [shift_policy], [is_instant]) -``` - -Remove the item from the grid. Note that gui node will be not deleted - -- **Parameters:** - - `index` *(number)*: The grid node index to remove - - `[shift_policy]` *(number|nil)*: How shift nodes, if required. Default: const.SHIFT.RIGHT - - `[is_instant]` *(boolean|nil)*: If true, update node positions instantly - -- **Returns:** - - `node` *(node)*: The deleted gui node from grid - -### get_size - ---- -```lua -grid:get_size() -``` - -Return grid content size - -- **Returns:** - - `size` *(vector3)*: The grid content size - -### get_size_for - ---- -```lua -grid:get_size_for(count) -``` - -Return grid content size for given count of nodes - -- **Parameters:** - - `count` *(number)*: The count of nodes - -- **Returns:** - - `size` *(vector3)*: The grid content size - -### get_borders - ---- -```lua -grid:get_borders() -``` - -Return grid content borders - -- **Returns:** - - `borders` *(vector4)*: The grid content borders - -### get_all_pos - ---- -```lua -grid:get_all_pos() -``` - -Return array of all node positions - -- **Returns:** - - `positions` *(vector3[])*: All grid node positions - -### set_position_function - ---- -```lua -grid:set_position_function(callback) -``` - -Change set position function for grid nodes. It will call on - update poses on grid elements. Default: gui.set_position - -- **Parameters:** - - `callback` *(function)*: Function on node set position - -- **Returns:** - - `self` *(druid.grid)*: Current grid instance - -### clear - ---- -```lua -grid:clear() -``` - -Clear grid nodes array. GUI nodes will be not deleted! - If you want to delete GUI nodes, use static_grid.nodes array before grid:clear - -- **Returns:** - - `self` *(druid.grid)*: Current grid instance - -### get_offset - ---- -```lua -grid:get_offset() -``` - -Return StaticGrid offset, where StaticGrid content starts. - -- **Returns:** - - `offset` *(vector3)*: The StaticGrid offset - -### set_in_row - ---- -```lua -grid:set_in_row(in_row) -``` - -Set new in_row elements for grid - -- **Parameters:** - - `in_row` *(number)*: The new in_row value - -- **Returns:** - - `self` *(druid.grid)*: Current grid instance - -### set_item_size - ---- -```lua -grid:set_item_size([width], [height]) -``` - -Set new node size for grid - -- **Parameters:** - - `[width]` *(number|nil)*: The new node width - - `[height]` *(number|nil)*: The new node height - -- **Returns:** - - `self` *(druid.grid)*: Current grid instance - -### sort_nodes - ---- -```lua -grid:sort_nodes(comparator) -``` - -Sort grid nodes by custom comparator function - -- **Parameters:** - - `comparator` *(function)*: The comparator function. (a, b) -> boolean - -- **Returns:** - - `self` *(druid.grid)*: Current grid instance - - -## Fields - -- **on_add_item** (_event_): Trigger on add item event, fun(self, item, index) - - -- **on_remove_item** (_event_): Trigger on remove item event, fun(self, index) - - -- **on_change_items** (_event_): Trigger on change items event, fun(self, index) - - -- **on_clear** (_event_): Trigger on clear event, fun(self) - - -- **on_update_positions** (_event_): Trigger on update positions event, fun(self) +- **on_update_positions** (_event_): fun(self: druid.grid) Trigger on update positions event - **parent** (_node_): Parent node diff --git a/api/components/base/text_api.md b/api/components/base/text_api.md index 1418939..3f53635 100644 --- a/api/components/base/text_api.md +++ b/api/components/base/text_api.md @@ -46,6 +46,9 @@ Create text node with druid: `text = druid:new_text(node_name, [initial_value], - [on_update_text_scale](#on_update_text_scale) - [on_set_pivot](#on_set_pivot) - [style](#style) +- [start_pivot](#start_pivot) +- [start_scale](#start_scale) +- [scale](#scale) - [pos](#pos) - [node_id](#node_id) - [start_size](#start_size) @@ -300,17 +303,26 @@ Return current text adjust type - **node** (_node_): The text node -- **on_set_text** (_event_): fun(self, text) The event triggered when the text is set +- **on_set_text** (_event_): fun(self: druid.text, text: string) The event triggered when the text is set -- **on_update_text_scale** (_event_): fun(self, scale, metrics) The event triggered when the text scale is updated +- **on_update_text_scale** (_event_): fun(self: druid.text, scale: vector3, metrics: table) The event triggered when the text scale is updated -- **on_set_pivot** (_event_): fun(self, pivot) The event triggered when the text pivot is set +- **on_set_pivot** (_event_): fun(self: druid.text, pivot: userdata) The event triggered when the text pivot is set - **style** (_druid.text.style_): The style of the text + +- **start_pivot** (_userdata_): The start pivot of the text + + +- **start_scale** (_vector3_): The start scale of the text + + +- **scale** (_vector3_): The current scale of the text + - **pos** (_unknown_) diff --git a/api/components/extended/container_api.md b/api/components/extended/container_api.md index 2f0fbf1..5c5a58f 100644 --- a/api/components/extended/container_api.md +++ b/api/components/extended/container_api.md @@ -238,9 +238,6 @@ container:set_parent_container([parent_container]) container:refresh() ``` - Glossary - Center Offset - vector from node position to visual center of node - ### refresh_scale --- diff --git a/api/components/extended/data_list_api.md b/api/components/extended/data_list_api.md index 5028e0e..bd6d37b 100644 --- a/api/components/extended/data_list_api.md +++ b/api/components/extended/data_list_api.md @@ -220,13 +220,13 @@ Instant scroll to element with passed index - **grid** (_druid.grid_): The StaticGrid or DynamicGrid instance for Data List component -- **on_scroll_progress_change** (_event_): The event triggered when the scroll progress changes +- **on_scroll_progress_change** (_event_): fun(self: druid.data_list, progress: number) The event triggered when the scroll progress changes -- **on_element_add** (_event_): The event triggered when a new element is added +- **on_element_add** (_event_): fun(self: druid.data_list, index: number, node: node, instance: druid.component, data: table) The event triggered when a new element is added -- **on_element_remove** (_event_): The event triggered when an element is removed +- **on_element_remove** (_event_): fun(self: druid.data_list, index: number, node: node, instance: druid.component, data: table) The event triggered when an element is removed - **top_index** (_number_): The top index of the visible elements diff --git a/api/components/extended/lang_text_api.md b/api/components/extended/lang_text_api.md index ebb23ac..4600f61 100644 --- a/api/components/extended/lang_text_api.md +++ b/api/components/extended/lang_text_api.md @@ -115,7 +115,7 @@ Format string with new text params on localized text. Keeps the current locale b - **node** (_node_): The node of the text component -- **on_change** (_event_): The event triggered when the text is changed +- **on_change** (_event_): fun(self: druid.lang_text) The event triggered when the text is changed - **druid** (_druid.instance_): The Druid Factory used to create components diff --git a/api/components/extended/layout_api.md b/api/components/extended/layout_api.md index 29cffba..082eebd 100644 --- a/api/components/extended/layout_api.md +++ b/api/components/extended/layout_api.md @@ -337,7 +337,7 @@ layout:set_node_position(node, x, y) - **is_justify** (_boolean_): True if the layout should justify the nodes -- **on_size_changed** (_event.on_size_changed_): The event triggered when the size of the layout is changed +- **on_size_changed** (_event.on_size_changed_): fun(self: druid.layout, size: vector3) The event triggered when the size of the layout is changed - **size** (_unknown_) diff --git a/api/components/extended/progress_api.md b/api/components/extended/progress_api.md index e3c8947..0c1cb37 100644 --- a/api/components/extended/progress_api.md +++ b/api/components/extended/progress_api.md @@ -8,10 +8,10 @@ Basic Druid progress bar component. Changes the size or scale of a node to repre Create progress bar component with druid: `progress = druid:new_progress(node_name, key, init_value)` ### Notes -- Node should have maximum node size in GUI scene, it's represent the progress bar maximum size +- Node should have maximum node size in GUI scene, it represents the progress bar's maximum size - Key is value from druid const: "x" or "y" -- Progress works correctly with 9slice nodes, it tries to set size by _set_size_ first, until minimum size is reached, then it sizing via _set_scale_ -- Progress bar can fill only by vertical or horizontal size. For diagonal progress bar, just rotate node in GUI scene +- Progress works correctly with 9slice nodes, it tries to set size by _set_size_ first until minimum size is reached, then it continues sizing via _set_scale_ +- Progress bar can fill only by vertical or horizontal size. For diagonal progress bar, just rotate the node in GUI scene - If you have glitchy or dark texture bugs with progress bar, try to disable mipmaps in your texture profiles ## Functions @@ -172,7 +172,7 @@ Set progress bar max node size - **node** (_node_): The progress bar node -- **on_change** (_event_): Event triggered when progress value changes +- **on_change** (_event_): fun(self: druid.progress, value: number) Event triggered when progress value changes - **style** (_druid.progress.style_): Component style parameters diff --git a/api/components/extended/slider_api.md b/api/components/extended/slider_api.md index 834ee4b..8a97afd 100644 --- a/api/components/extended/slider_api.md +++ b/api/components/extended/slider_api.md @@ -128,7 +128,7 @@ Check if Slider component is enabled - **node** (_node_): The node to manage the slider -- **on_change_value** (_event_): The event triggered when the slider value changes +- **on_change_value** (_event_): fun(self: druid.slider, value: number) The event triggered when the slider value changes - **style** (_table_): The style of the slider diff --git a/druid/base/back_handler.lua b/druid/base/back_handler.lua index 22b459d..5e9d297 100644 --- a/druid/base/back_handler.lua +++ b/druid/base/back_handler.lua @@ -11,8 +11,8 @@ local component = require("druid.component") ---- Key triggers in `input.binding` should be setup for correct working ---- It uses a key_back and key_backspace action ids ---@class druid.back_handler: druid.component ----@field on_back event Trigger on back handler action, fun(self, params) ----@field params any|nil Custom args to pass in the callback +---@field on_back event fun(self: druid.back_handler, params: any?) Trigger on back handler action +---@field params any? Custom args to pass in the callback local M = component.create("back_handler") diff --git a/druid/base/button.lua b/druid/base/button.lua index c8e6a23..d0f9aa9 100755 --- a/druid/base/button.lua +++ b/druid/base/button.lua @@ -32,13 +32,13 @@ local component = require("druid.component") ---- Button can have key trigger to use them by key: `button:set_key_trigger` ---- ---@class druid.button: druid.component ----@field on_click event function(self, custom_args, button_instance) ----@field on_pressed event function(self, custom_args, button_instance) ----@field on_repeated_click event function(self, custom_args, button_instance, click_count) Repeated click callback, while holding the button ----@field on_long_click event function(self, custom_args, button_instance, hold_time) Callback on long button tap ----@field on_double_click event function(self, custom_args, button_instance, click_amount) Different callback, if tap button 2+ in row ----@field on_hold_callback event function(self, custom_args, button_instance, press_time) Hold callback, before long_click trigger ----@field on_click_outside event function(self, custom_args, button_instance) +---@field on_click event fun(self, custom_args, button_instance) +---@field on_pressed event fun(self, custom_args, button_instance) +---@field on_repeated_click event fun(self, custom_args, button_instance, click_count) Repeated click callback, while holding the button +---@field on_long_click event fun(self, custom_args, button_instance, hold_time) Callback on long button tap +---@field on_double_click event fun(self, custom_args, button_instance, click_amount) Different callback, if tap button 2+ in row +---@field on_hold_callback event fun(self, custom_args, button_instance, press_time) Hold callback, before long_click trigger +---@field on_click_outside event fun(self, custom_args, button_instance) ---@field node node Clickable node ---@field node_id hash Node id ---@field anim_node node Animation node. In default case equals to clickable node diff --git a/druid/base/scroll.lua b/druid/base/scroll.lua index b382496..8f623fe 100755 --- a/druid/base/scroll.lua +++ b/druid/base/scroll.lua @@ -38,9 +38,9 @@ local component = require("druid.component") ---@class druid.scroll: druid.component ---@field node node The root node ---@field click_zone node|nil Optional click zone to restrict scroll area ----@field on_scroll event Triggered on scroll move with fun(self, position) ----@field on_scroll_to event Triggered on scroll_to with fun(self, target, is_instant) ----@field on_point_scroll event Triggered on scroll_to_index with fun(self, index, point) +---@field on_scroll event fun(self: druid.scroll, position: vector3) Triggered on scroll move +---@field on_scroll_to event fun(self: druid.scroll, target: vector3, is_instant: boolean) Triggered on scroll_to +---@field on_point_scroll event fun(self: druid.scroll, index: number, point: vector3) Triggered on scroll_to_index ---@field view_node node The scroll view node (static part) ---@field view_border vector4 The scroll view borders ---@field content_node node The scroll content node (moving part) diff --git a/druid/base/static_grid.lua b/druid/base/static_grid.lua index 155dd18..553b849 100644 --- a/druid/base/static_grid.lua +++ b/druid/base/static_grid.lua @@ -9,11 +9,11 @@ local component = require("druid.component") ---The component for manage the nodes position in the grid with various options ---@class druid.grid: druid.component ----@field on_add_item event Trigger on add item event, fun(self, item, index) ----@field on_remove_item event Trigger on remove item event, fun(self, index) ----@field on_change_items event Trigger on change items event, fun(self, index) ----@field on_clear event Trigger on clear event, fun(self) ----@field on_update_positions event Trigger on update positions event, fun(self) +---@field on_add_item event fun(self: druid.grid, item: node, index: number) Trigger on add item event +---@field on_remove_item event fun(self: druid.grid, index: number) Trigger on remove item event +---@field on_change_items event fun(self: druid.grid, index: number) Trigger on change items event +---@field on_clear event fun(self: druid.grid) Trigger on clear event +---@field on_update_positions event fun(self: druid.grid) Trigger on update positions event ---@field parent node Parent node ---@field nodes node[] Nodes array ---@field first_index number First index diff --git a/druid/base/text.lua b/druid/base/text.lua index 6b415de..e13f612 100755 --- a/druid/base/text.lua +++ b/druid/base/text.lua @@ -33,9 +33,9 @@ local utf8 = utf8 or utf8_lua --[[@as utf8]] ---- - **"scale_then_trim_left"** - Combine two modes: first limited downscale, then trim left ---@class druid.text: druid.component ---@field node node The text node ----@field on_set_text event fun(self, text) The event triggered when the text is set ----@field on_update_text_scale event fun(self, scale, metrics) The event triggered when the text scale is updated ----@field on_set_pivot event fun(self, pivot) The event triggered when the text pivot is set +---@field on_set_text event fun(self: druid.text, text: string) The event triggered when the text is set +---@field on_update_text_scale event fun(self: druid.text, scale: vector3, metrics: table) The event triggered when the text scale is updated +---@field on_set_pivot event fun(self: druid.text, pivot: userdata) The event triggered when the text pivot is set ---@field style druid.text.style The style of the text ---@field start_pivot userdata The start pivot of the text ---@field start_scale vector3 The start scale of the text diff --git a/druid/extended/data_list.lua b/druid/extended/data_list.lua index f430058..c21c4fa 100644 --- a/druid/extended/data_list.lua +++ b/druid/extended/data_list.lua @@ -18,9 +18,9 @@ local event = require("event.event") ---@class druid.data_list: druid.component ---@field scroll druid.scroll The scroll instance for Data List component ---@field grid druid.grid The StaticGrid or DynamicGrid instance for Data List component ----@field on_scroll_progress_change event The event triggered when the scroll progress changes ----@field on_element_add event The event triggered when a new element is added ----@field on_element_remove event The event triggered when an element is removed +---@field on_scroll_progress_change event fun(self: druid.data_list, progress: number) The event triggered when the scroll progress changes +---@field on_element_add event fun(self: druid.data_list, index: number, node: node, instance: druid.component, data: table) The event triggered when a new element is added +---@field on_element_remove event fun(self: druid.data_list, index: number, node: node, instance: druid.component, data: table) The event triggered when an element is removed ---@field top_index number The top index of the visible elements ---@field last_index number The last index of the visible elements ---@field scroll_progress number The scroll progress diff --git a/druid/extended/lang_text.lua b/druid/extended/lang_text.lua index b065104..75099d9 100755 --- a/druid/extended/lang_text.lua +++ b/druid/extended/lang_text.lua @@ -15,7 +15,7 @@ local settings = require("druid.system.settings") ---@class druid.lang_text: druid.component ---@field text druid.text The text component ---@field node node The node of the text component ----@field on_change event The event triggered when the text is changed +---@field on_change event fun(self: druid.lang_text) The event triggered when the text is changed ---@field private last_locale_args table The last locale arguments ---@field private last_locale string The last locale local M = component.create("lang_text") diff --git a/druid/extended/layout.lua b/druid/extended/layout.lua index e5e5085..34ecdb8 100644 --- a/druid/extended/layout.lua +++ b/druid/extended/layout.lua @@ -42,7 +42,7 @@ local component = require("druid.component") ---@field is_resize_width boolean True if the layout should resize the width of the node ---@field is_resize_height boolean True if the layout should resize the height of the node ---@field is_justify boolean True if the layout should justify the nodes ----@field on_size_changed event.on_size_changed The event triggered when the size of the layout is changed +---@field on_size_changed event.on_size_changed fun(self: druid.layout, size: vector3) The event triggered when the size of the layout is changed local M = component.create("layout") diff --git a/druid/extended/progress.lua b/druid/extended/progress.lua index 09608ac..d4a9a09 100644 --- a/druid/extended/progress.lua +++ b/druid/extended/progress.lua @@ -19,7 +19,7 @@ local component = require("druid.component") ---- If you have glitchy or dark texture bugs with progress bar, try to disable mipmaps in your texture profiles ---@class druid.progress: druid.component ---@field node node The progress bar node ----@field on_change event Event triggered when progress value changes +---@field on_change event fun(self: druid.progress, value: number) Event triggered when progress value changes ---@field style druid.progress.style Component style parameters ---@field key string Progress bar direction: "x" or "y" ---@field prop hash Property for scaling the progress bar diff --git a/druid/extended/slider.lua b/druid/extended/slider.lua index c1796d2..102fa45 100644 --- a/druid/extended/slider.lua +++ b/druid/extended/slider.lua @@ -16,7 +16,7 @@ local component = require("druid.component") ---- To catch input across all slider, you can setup input node via `slider:set_input_node` ---@class druid.slider: druid.component ---@field node node The node to manage the slider ----@field on_change_value event The event triggered when the slider value changes +---@field on_change_value event fun(self: druid.slider, value: number) The event triggered when the slider value changes ---@field style table The style of the slider ---@field private start_pos vector3 The start position of the slider ---@field private pos vector3 The current position of the slider diff --git a/game.project b/game.project index ecb21a0..00a11f4 100644 --- a/game.project +++ b/game.project @@ -14,7 +14,7 @@ update_frequency = 60 [project] title = Druid -version = 1.1 +version = 1.1.0 publisher = Insality developer = Maksim Tuprikov custom_resources = /example/locales @@ -58,7 +58,7 @@ cssfile = /builtins/manifests/web/dark_theme.css show_console_banner = 0 [native_extension] -app_manifest = +app_manifest = [graphics] texture_profiles = /builtins/graphics/default.texture_profiles diff --git a/wiki/changelog.md b/wiki/changelog.md index 1cd5c4a..b61102f 100644 --- a/wiki/changelog.md +++ b/wiki/changelog.md @@ -577,13 +577,13 @@ Please support me if you like this project! It will help me keep engaged to upda -### Druid 1.1 +### Druid 1.1.0 Hello there, Druid users! The wait is over - **Druid 1.1** has arrived! This update brings substantial improvements and exciting new features that make building UI in Defold easier and more powerful than ever. -By the way, the PR number of this release is #300. Sounds veeery hude and long journey for me! +By the way, the PR number of this release is #300. Sounds veeery huge and long journey for me! ## Highlights @@ -619,7 +619,7 @@ Thank you for using Druid and please share your feedback! **Milestone**: -**Changelog 1.1** +**Changelog 1.1.0** - [Docs] Reworked all documentation pages - The code now is fully annotated - The old API website is removed