Update docs

This commit is contained in:
Insality
2025-03-18 21:23:30 +02:00
parent 5348561d68
commit 1bc916e187
25 changed files with 937 additions and 380 deletions

View File

@@ -3,24 +3,25 @@ local helper = require("druid.helper")
local const = require("druid.const")
local component = require("druid.component")
---The component to make a draggable node over a line with a progress report
---@class druid.slider: druid.component
---@field node node
---@field on_change_value event
---@field style table
---@field private start_pos vector3
---@field private pos vector3
---@field private target_pos vector3
---@field private end_pos vector3
---@field private dist vector3
---@field private is_drag boolean
---@field private value number
---@field private steps number[]
---@field node node The node to manage the slider
---@field on_change_value event 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
---@field private target_pos vector3 The target position of the slider
---@field private end_pos vector3 The end position of the slider
---@field private dist vector3 The distance between the start and end positions of the slider
---@field private is_drag boolean True if the slider is being dragged
---@field private value number The current value of the slider
---@field private steps number[] The steps of the slider
local M = component.create("slider", const.PRIORITY_INPUT_HIGH)
---The Slider constructor
---@param node node Gui pin node
---@param end_pos vector3 The end position of slider
---@param node node GUI node to drag as a slider
---@param end_pos vector3 The end position of slider, should be on the same axis as the node
---@param callback function|nil On slider change callback
function M:init(node, end_pos, callback)
self.node = self:get_node(node)
@@ -61,6 +62,9 @@ function M:on_window_resized()
end
---@param action_id number The action id
---@param action action The action table
---@return boolean is_consumed True if the input was consumed
function M:on_input(action_id, action)
if action_id ~= const.ACTION_TOUCH then
return false
@@ -148,6 +152,7 @@ end
---Set value for slider
---@param value number Value from 0 to 1
---@param is_silent boolean|nil Don't trigger event if true
---@return druid.slider self Current slider instance
function M:set(value, is_silent)
value = helper.clamp(value, 0, 1)
self:_set_position(value)
@@ -155,13 +160,15 @@ function M:set(value, is_silent)
if not is_silent then
self:_on_change_value()
end
return self
end
---Set slider steps. Pin node will
---apply closest step position
---@param steps number[] Array of steps
---@return druid.slider Slider
---@return druid.slider self Current slider instance
function M:set_steps(steps)
self.steps = steps
return self
@@ -173,7 +180,7 @@ end
---move at this position and node drag will start.
---This function require the Defold version 1.3.0+
---@param input_node node|string|nil
---@return druid.slider Slider
---@return druid.slider self Current slider instance
function M:set_input_node(input_node)
if not input_node then
self._input_node = nil
@@ -186,14 +193,17 @@ end
---Set Slider input enabled or disabled
---@param is_enabled boolean
---@param is_enabled boolean True if slider is enabled
---@return druid.slider self Current slider instance
function M:set_enabled(is_enabled)
self._is_enabled = is_enabled
return self
end
---Check if Slider component is enabled
---@return boolean
---@return boolean is_enabled True if slider is enabled
function M:is_enabled()
return self._is_enabled
end