Module StaticGrid
Component to handle component's position by row and columns.
## Overview ##
The Static Grid component allows for positioning components in rows and columns. It provides a static grid layout with constant node sizes, allowing for pre-calculated node positions and the option to include gaps between nodes.
## Notes ##
• In a static grid, the node size remains constant, enabling the calculation of node positions before placement. Nodes can be placed with gaps between them.
• The static grid can automatically shift elements when nodes are added or removed.
• When a node is added, the grid will set the node's parent to the specified parent_node.
• You can obtain an array of positions for each element, which can be used to set points of interest in a scroll component.
• The size of all elements can be retrieved for setting up the size in a scroll component.
• The grid can be bound to a scroll component for automatic resizing of the scroll content size.
• The pivot of the parent_node affects the node placement within the grid.
• A prefab node is used to determine the node size and anchor.
• You can specify a position_function for animations using the _static_grid:set_position_function(node, pos) callback. The default position function is gui.set_position().
Functions
add(self, item[, index[, shift_policy=SHIFT.RIGHT[, is_instant=false]]]) | Add new item to the grid |
clear(self) | Clear grid nodes array. |
get_all_pos(self) | Return array of all node positions |
get_borders(self) | Return grid content borders |
get_index(self, pos) | Return index for grid pos |
get_index_by_node(self, node) | Return grid index by node |
get_offset(self) | Return StaticGrid offset, where StaticGrid content starts. |
get_pos(self, index) | Return pos for grid node index |
get_size(self) | Return grid content size |
init(self, parent, element[, in_row=1]) | StaticGrid constructor |
remove(self, index[, shift_policy=SHIFT.RIGHT[, is_instant=false]]) | Remove the item from the grid. |
set_anchor(self, anchor) | Set grid anchor. |
set_in_row(self, in_row) | Set new in_row elements for grid |
set_position_function(self, callback) | Change set position function for grid nodes. |
Tables
style | Component style params. |
Fields
anchor | Item anchor [0..1] |
border | The size of item content |
first_index | The first index of node in grid |
last_index | The last index of node in grid |
node_size | Item size |
nodes | List of all grid nodes |
on_add_item | On item add callback(self, node, index) |
on_change_items | On item add, remove or change in_row callback(self, index|nil) |
on_clear | On grid clear callback(self) |
on_remove_item | On item remove callback(self, index) |
on_update_positions | On update item positions callback(self) |
parent | Parent gui node |
pivot | Item pivot [-0.5..0.5] |
Functions
- add(self, item[, index[, shift_policy=SHIFT.RIGHT[, is_instant=false]]])
-
Add new item to the grid
Parameters:
- self StaticGrid StaticGrid
- item node Gui node
- index number The item position. By default add as last item (optional)
- shift_policy number How shift nodes, if required. See const.SHIFT (default SHIFT.RIGHT)
- is_instant boolean If true, update node positions instantly (default false)
- clear(self)
-
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
Parameters:
- self StaticGrid StaticGrid
Returns:
-
druid.static_grid
Current grid instance
- get_all_pos(self)
-
Return array of all node positions
Parameters:
- self StaticGrid StaticGrid
Returns:
-
vector3[]
All grid node positions
- get_borders(self)
-
Return grid content borders
Parameters:
- self StaticGrid StaticGrid
Returns:
-
vector3
The grid content borders
- get_index(self, pos)
-
Return index for grid pos
Parameters:
- self StaticGrid StaticGrid
- pos vector3 The node position in the grid
Returns:
-
number
The node index
- get_index_by_node(self, node)
-
Return grid index by node
Parameters:
- self StaticGrid StaticGrid
- node node The gui node in the grid
Returns:
-
number
The node index
- get_offset(self)
-
Return StaticGrid offset, where StaticGrid content starts.
Parameters:
- self StaticGrid StaticGrid The StaticGrid instance
Returns:
-
vector3
The StaticGrid offset
- get_pos(self, index)
-
Return pos for grid node index
Parameters:
- self StaticGrid StaticGrid
- index number The grid element index
Returns:
-
vector3
Node position
- get_size(self)
-
Return grid content size
Parameters:
- self StaticGrid StaticGrid
Returns:
-
vector3
The grid content size
- init(self, parent, element[, in_row=1])
-
StaticGrid constructor
Parameters:
- self StaticGrid StaticGrid
- parent string or Node The GUI Node container, where grid's items will be placed
- element node Element prefab. Need to get it size
- in_row number How many nodes in row can be placed (default 1)
- remove(self, index[, shift_policy=SHIFT.RIGHT[, is_instant=false]])
-
Remove the item from the grid. Note that gui node will be not deleted
Parameters:
- self StaticGrid StaticGrid
- index number The grid node index to remove
- shift_policy number How shift nodes, if required. See const.SHIFT (default SHIFT.RIGHT)
- is_instant boolean If true, update node positions instantly (default false)
Returns:
-
Node
The deleted gui node from grid
- set_anchor(self, anchor)
-
Set grid anchor. Default anchor is equal to anchor of grid parent node
Parameters:
- self StaticGrid StaticGrid
- anchor vector3 Anchor
- set_in_row(self, in_row)
-
Set new in_row elements for grid
Parameters:
- self StaticGrid StaticGrid
- in_row number The new in_row value
Returns:
-
druid.static_grid
Current grid instance
- set_position_function(self, callback)
-
Change set position function for grid nodes. It will call on
update poses on grid elements. Default: gui.set_position
Parameters:
- self StaticGrid StaticGrid
- callback function Function on node set position
Returns:
-
druid.static_grid
Current grid instance
Tables
- style
-
Component style params.
You can override this component styles params in druid styles table
or create your own style
Fields:
- IS_DYNAMIC_NODE_POSES bool If true, always center grid content as grid pivot sets (default false)
- IS_ALIGN_LAST_ROW bool If true, always align last row of the grid as grid pivot sets (default false)
Fields
- anchor
-
Item anchor [0..1]
- anchor vector3
- border
-
The size of item content
- border vector4
- first_index
-
The first index of node in grid
- first_index number
- last_index
-
The last index of node in grid
- last_index number
- node_size
-
Item size
- node_size vector3
- nodes
-
List of all grid nodes
- nodes node[]
- on_add_item
-
On item add callback(self, node, index)
- on_add_item DruidEvent DruidEvent
- on_change_items
-
On item add, remove or change in_row callback(self, index|nil)
- on_change_items DruidEvent DruidEvent
- on_clear
-
On grid clear callback(self)
- on_clear DruidEvent DruidEvent
- on_remove_item
-
On item remove callback(self, index)
- on_remove_item DruidEvent DruidEvent
- on_update_positions
-
On update item positions callback(self)
- on_update_positions DruidEvent DruidEvent
- parent
-
Parent gui node
- parent node
- pivot
-
Item pivot [-0.5..0.5]
- pivot vector3