Skip to content

Latest commit

 

History

History
557 lines (399 loc) · 13.1 KB

druid_instance_api.md

File metadata and controls

557 lines (399 loc) · 13.1 KB

druid.instance API

at /druid/system/druid_instance.lua

The Druid Factory used to create components

Functions

create_druid_instance


instance.create_druid_instance(context, [style])

Druid class constructor which used to create Druid components

  • Parameters:

    • context (table): Druid context. Usually it is self of gui script
    • [style] (table?): Druid style table
  • Returns:

    • instance (druid.instance): The new Druid instance

new


instance:new(component, ...)

Create new Druid component instance

  • Parameters:

    • component (<T:druid.component>): The component class to create
    • ... (...): vararg
  • Returns:

    • instance (<T:druid.component>): The new ready to use component

final


instance:final()

Call this in gui_script final function.

remove


instance:remove(component)

Remove created component from Druid instance. Component on_remove function will be invoked, if exist.

  • Parameters:

    • component (<T:druid.component>): Component instance
  • Returns:

    • is_removed (boolean): True if component was removed

update


instance:update(dt)

Call this in gui_script update function.

  • Parameters:
    • dt (number): Delta time

on_input


instance:on_input(action_id, action)

Call this in gui_script on_input function.

  • Parameters:

    • action_id (hash): Action_id from on_input
    • action (table): Action from on_input
  • Returns:

    • is_input_consumed (boolean): The boolean value is input was consumed

on_message


instance:on_message(message_id, message, sender)

Call this in gui_script on_message function.

  • Parameters:
    • message_id (hash): Message_id from on_message
    • message (table): Message from on_message
    • sender (url): Sender from on_message

on_window_event


instance:on_window_event(window_event)

Called when the window event occurs

  • Parameters:
    • window_event (number): The window event

set_whitelist


instance:set_whitelist([whitelist_components])

Set whitelist components for input processing. If whitelist is set, only the listed components and their descendants receive input. An empty list allows none. Pass nil to clear the whitelist (all components receive input). Descendants created later still match, no need to call this again.

The filter is scoped to the caller: on the druid instance it affects all components, on the self.druid inside a component it affects this component subtree only. The filter owner is not affected by its own filter, so a widget can restrict its children and keep its own on_input working.

  • Parameters:

    • [whitelist_components] (table|druid.component[]|nil): The array of component to whitelist, nil to clear it
  • Returns:

    • self (druid.instance): The Druid instance

set_blacklist


instance:set_blacklist([blacklist_components])

Set blacklist components for input processing. If blacklist is set, the listed components and their descendants are skipped on the input step. An empty list and nil both deny nobody. Descendants created later still match.

The filter is scoped to the caller: on the druid instance it affects all components, on the self.druid inside a component it affects this component subtree only. The filter owner is not affected by its own filter, to filter a widget itself set the filter from the outside: the gui script or the parent widget.

  • Parameters:

    • [blacklist_components] (table|druid.component[]|nil): The array of component to blacklist, nil to clear it
  • Returns:

    • self (druid.instance): The Druid instance

new_widget


instance:new_widget(widget, [template], [nodes], ...)

Create new Druid widget instance

  • Parameters:

    • widget (<T:druid.component>): The widget class to create
    • [template] (string|nil): The template name used by widget
    • [nodes] (string|node|table<hash, node>|nil): The nodes table from gui.clone_tree or prefab node to use for clone or node id to clone
    • ... (...): vararg
  • Returns:

    • widget (<T:druid.component>): The new ready to use widget

new_button


instance:new_button(node, [callback], [params], [anim_node])

Create Button component

  • Parameters:

    • node (string|node): The node_id or gui.get_node(node_id)
    • [callback] (function|event|nil): Button callback
    • [params] (any): Button callback params
    • [anim_node] (string|node|nil): Button anim node (node, if not provided)
  • Returns:

    • button (druid.button): The new button component

new_blocker


instance:new_blocker(node)

Create Blocker component

  • Parameters:

    • node (string|node): The node_id or gui.get_node(node_id)
  • Returns:

    • blocker (druid.blocker): The new blocker component

new_back_handler


instance:new_back_handler([callback], [params])

Create BackHandler component

  • Parameters:

    • [callback] (function|event|nil): The callback(self, custom_args) to call on back event
    • [params] (any): Callback argument
  • Returns:

    • back_handler (druid.back_handler): The new back handler component

new_hover


instance:new_hover(node, [on_hover_callback], [on_mouse_hover_callback])

Create Hover component

  • Parameters:

    • node (string|node): The node_id or gui.get_node(node_id)
    • [on_hover_callback] (function|nil): Hover callback
    • [on_mouse_hover_callback] (function|nil): Mouse hover callback
  • Returns:

    • hover (druid.hover): The new hover component

new_text


instance:new_text(node, [value], [adjust_type])

Create Text component

  • Parameters:

    • node (string|druid.text|node): The node_id or gui.get_node(node_id)
    • [value] (string|nil): Initial text. Default value is node text from GUI scene.
    • [adjust_type] (string|nil): Adjust type for text. By default is DOWNSCALE. Look const.TEXT_ADJUST for reference
  • Returns:

    • text (druid.text): The new text component

new_grid


instance:new_grid(parent_node, item, [in_row])

Create Grid component

  • Parameters:

    • parent_node (string|node): The node_id or gui.get_node(node_id). Parent of all Grid items.
    • item (string|node): Item prefab. Required to get grid's item size. Can be adjusted separately.
    • [in_row] (number|nil): How many nodes can be placed in a row
  • Returns:

    • grid (druid.grid): The new grid component

new_scroll


instance:new_scroll(view_node, content_node)

Create Scroll component

  • Parameters:

    • view_node (string|node): The node_id or gui.get_node(node_id). Will be used as user input node.
    • content_node (string|node): The node_id or gui.get_node(node_id). Will be used as scrollable node inside view_node.
  • Returns:

    • scroll (druid.scroll): The new scroll component

new_drag


instance:new_drag(node, [on_drag_callback])

Create Drag component

  • Parameters:

    • node (string|node): The node_id or gui.get_node(node_id). Will be used as user input node.
    • [on_drag_callback] (function|nil): Callback for on_drag_event(self, dx, dy)
  • Returns:

    • drag (druid.drag): The new drag component

new_swipe


instance:new_swipe(node, [on_swipe_callback])

Create Swipe component

  • Parameters:

    • node (string|node): The node_id or gui.get_node(node_id). Will be used as user input node.
    • [on_swipe_callback] (function|nil): Swipe callback for on_swipe_end event
  • Returns:

    • swipe (druid.swipe): The new swipe component

new_lang_text


instance:new_lang_text(node, [locale_id], [adjust_type])

Create LangText component

  • Parameters:

    • node (string|node): The node_id or gui.get_node(node_id)
    • [locale_id] (string|nil): Default locale id or text from node as default
    • [adjust_type] (string|nil): Adjust type for text node. Default: "downscale"
  • Returns:

    • lang_text (druid.lang_text): The new lang text component

new_slider


instance:new_slider(pin_node, end_pos, [callback])

Create Slider component

  • Parameters:

    • pin_node (string|node): The node_id or gui.get_node(node_id).
    • end_pos (vector3): The end position of slider
    • [callback] (function|nil): On slider change callback
  • Returns:

    • slider (druid.slider): The new slider component

new_input


instance:new_input(click_node, text_node, [keyboard_type])

Create Input component

  • Parameters:

    • click_node (string|node): Button node to enable input component
    • text_node (string|druid.text|node): Text node that will be changed on user input
    • [keyboard_type] (number|nil): Gui keyboard type for input field
  • Returns:

    • input (druid.input): The new input component

new_data_list


instance:new_data_list(druid_scroll, druid_grid, create_function)

Create DataList component

  • Parameters:

    • druid_scroll (druid.scroll): The Scroll instance for Data List component
    • druid_grid (druid.grid): The Grid instance for Data List component
    • create_function (function): The create function callback(self, data, index, data_list). Function should return (node, [component])
  • Returns:

    • data_list (druid.data_list): The new data list component

new_timer


instance:new_timer(node, [seconds_from], [seconds_to], [callback])

Create Timer component

  • Parameters:

    • node (string|node): Gui text node
    • [seconds_from] (number|nil): Start timer value in seconds
    • [seconds_to] (number|nil): End timer value in seconds
    • [callback] (function|nil): Function on timer end
  • Returns:

    • timer (druid.timer): The new timer component

new_progress


instance:new_progress(node, key, [init_value])

Create Progress component

  • Parameters:

    • node (string|node): Progress bar fill node or node name
    • key (string): Progress bar direction: "x" or "y"
    • [init_value] (number|nil): Initial value of progress bar. Default: 1
  • Returns:

    • progress (druid.progress): The new progress component

new_layout


instance:new_layout(node, [mode])

Create Layout component

  • Parameters:

    • node (string|node): The node_id or gui.get_node(node_id).
    • [mode] (string|nil): vertical|horizontal|horizontal_wrap. Default: horizontal
  • Returns:

    • layout (druid.layout): The new layout component

new_container


instance:new_container(node, [mode], [callback])

Create Container component

mode:
    | "stretch"
    | "fit"
    | "stretch_x"
    | "stretch_y"
  • Parameters:

    • node (string|node): The node_id or gui.get_node(node_id).
    • [mode] ("fit"|"stretch"|"stretch_x"|"stretch_y"|nil): Layout mode. Default Fit or Stretch depends from node adjust mode from GUI scene
    • [callback] (fun(self: druid.container, size: vector3)|nil): Callback on size changed
  • Returns:

    • container (druid.container): The new container component

new_hotkey


instance:new_hotkey(keys_array, [callback], [callback_argument])

Create Hotkey component

  • Parameters:

    • keys_array (string|string[]): Keys for trigger action. Should contains one action key and any amount of modificator keys
    • [callback] (function|event|nil): The callback function
    • [callback_argument] (any): The argument to pass into the callback function
  • Returns:

    • hotkey (druid.hotkey): The new hotkey component

new_rich_text


instance:new_rich_text(text_node, [value])

Create RichText component.

  • Parameters:

    • text_node (string|node): The text node to make Rich Text
    • [value] (string|nil): The initial text value. Default will be gui.get_text(text_node)
  • Returns:

    • rich_text (druid.rich_text): The new rich text component

new_rich_input


instance:new_rich_input(template, [nodes])

Create RichInput component. As a template please check rich_input.gui layout.

  • Parameters:

    • template (string): The template string name
    • [nodes] (table|nil): Nodes table from gui.clone_tree
  • Returns:

    • rich_input (druid.rich_input): The new rich input component