:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/TextureProgressBar.xml. .. _class_TextureProgressBar: TextureProgressBar ================== **Inherits:** :ref:`Range` **<** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` Texture-based progress bar. Useful for loading screens and life or stamina bars. .. rst-class:: classref-introduction-group Description ----------- TextureProgressBar works like :ref:`ProgressBar`, but uses up to 3 textures instead of Godot's :ref:`Theme` resource. It can be used to create horizontal, vertical and radial progress bars. .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`int` | :ref:`fill_mode` | ``0`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`MouseFilter` | mouse_filter | ``1`` (overrides :ref:`Control`) | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`nine_patch_stretch` | ``false`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`radial_center_offset` | ``Vector2(0, 0)`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`float` | :ref:`radial_fill_degrees` | ``360.0`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`float` | :ref:`radial_initial_angle` | ``0.0`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | |bitfield|\[:ref:`SizeFlags`\] | size_flags_vertical | ``1`` (overrides :ref:`Control`) | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`float` | step | ``1.0`` (overrides :ref:`Range`) | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`int` | :ref:`stretch_margin_bottom` | ``0`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`int` | :ref:`stretch_margin_left` | ``0`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`int` | :ref:`stretch_margin_right` | ``0`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`int` | :ref:`stretch_margin_top` | ``0`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`Texture2D` | :ref:`texture_over` | | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`Texture2D` | :ref:`texture_progress` | | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`texture_progress_offset` | ``Vector2(0, 0)`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`Texture2D` | :ref:`texture_under` | | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`Color` | :ref:`tint_over` | ``Color(1, 1, 1, 1)`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`Color` | :ref:`tint_progress` | ``Color(1, 1, 1, 1)`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`Color` | :ref:`tint_under` | ``Color(1, 1, 1, 1)`` | +--------------------------------------------------------+-------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_stretch_margin`\ (\ margin\: :ref:`Side`\ ) |const| | +-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_stretch_margin`\ (\ margin\: :ref:`Side`, value\: :ref:`int`\ ) | +-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_TextureProgressBar_FillMode: .. rst-class:: classref-enumeration enum **FillMode**: :ref:`🔗` .. _class_TextureProgressBar_constant_FILL_LEFT_TO_RIGHT: .. rst-class:: classref-enumeration-constant :ref:`FillMode` **FILL_LEFT_TO_RIGHT** = ``0`` The :ref:`texture_progress` fills from left to right. .. _class_TextureProgressBar_constant_FILL_RIGHT_TO_LEFT: .. rst-class:: classref-enumeration-constant :ref:`FillMode` **FILL_RIGHT_TO_LEFT** = ``1`` The :ref:`texture_progress` fills from right to left. .. _class_TextureProgressBar_constant_FILL_TOP_TO_BOTTOM: .. rst-class:: classref-enumeration-constant :ref:`FillMode` **FILL_TOP_TO_BOTTOM** = ``2`` The :ref:`texture_progress` fills from top to bottom. .. _class_TextureProgressBar_constant_FILL_BOTTOM_TO_TOP: .. rst-class:: classref-enumeration-constant :ref:`FillMode` **FILL_BOTTOM_TO_TOP** = ``3`` The :ref:`texture_progress` fills from bottom to top. .. _class_TextureProgressBar_constant_FILL_CLOCKWISE: .. rst-class:: classref-enumeration-constant :ref:`FillMode` **FILL_CLOCKWISE** = ``4`` Turns the node into a radial bar. The :ref:`texture_progress` fills clockwise. See :ref:`radial_center_offset`, :ref:`radial_initial_angle` and :ref:`radial_fill_degrees` to control the way the bar fills up. .. _class_TextureProgressBar_constant_FILL_COUNTER_CLOCKWISE: .. rst-class:: classref-enumeration-constant :ref:`FillMode` **FILL_COUNTER_CLOCKWISE** = ``5`` Turns the node into a radial bar. The :ref:`texture_progress` fills counterclockwise. See :ref:`radial_center_offset`, :ref:`radial_initial_angle` and :ref:`radial_fill_degrees` to control the way the bar fills up. .. _class_TextureProgressBar_constant_FILL_BILINEAR_LEFT_AND_RIGHT: .. rst-class:: classref-enumeration-constant :ref:`FillMode` **FILL_BILINEAR_LEFT_AND_RIGHT** = ``6`` The :ref:`texture_progress` fills from the center, expanding both towards the left and the right. .. _class_TextureProgressBar_constant_FILL_BILINEAR_TOP_AND_BOTTOM: .. rst-class:: classref-enumeration-constant :ref:`FillMode` **FILL_BILINEAR_TOP_AND_BOTTOM** = ``7`` The :ref:`texture_progress` fills from the center, expanding both towards the top and the bottom. .. _class_TextureProgressBar_constant_FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE: .. rst-class:: classref-enumeration-constant :ref:`FillMode` **FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE** = ``8`` Turns the node into a radial bar. The :ref:`texture_progress` fills radially from the center, expanding both clockwise and counterclockwise. See :ref:`radial_center_offset`, :ref:`radial_initial_angle` and :ref:`radial_fill_degrees` to control the way the bar fills up. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_TextureProgressBar_property_fill_mode: .. rst-class:: classref-property :ref:`int` **fill_mode** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_fill_mode**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_fill_mode**\ (\ ) The fill direction. See :ref:`FillMode` for possible values. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_nine_patch_stretch: .. rst-class:: classref-property :ref:`bool` **nine_patch_stretch** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_nine_patch_stretch**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **get_nine_patch_stretch**\ (\ ) If ``true``, Godot treats the bar's textures like in :ref:`NinePatchRect`. Use the ``stretch_margin_*`` properties like :ref:`stretch_margin_bottom` to set up the nine patch's 3×3 grid. When using a radial :ref:`fill_mode`, this setting will enable stretching. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_radial_center_offset: .. rst-class:: classref-property :ref:`Vector2` **radial_center_offset** = ``Vector2(0, 0)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_radial_center_offset**\ (\ value\: :ref:`Vector2`\ ) - :ref:`Vector2` **get_radial_center_offset**\ (\ ) Offsets :ref:`texture_progress` if :ref:`fill_mode` is :ref:`FILL_CLOCKWISE`, :ref:`FILL_COUNTER_CLOCKWISE`, or :ref:`FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE`. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_radial_fill_degrees: .. rst-class:: classref-property :ref:`float` **radial_fill_degrees** = ``360.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_fill_degrees**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_fill_degrees**\ (\ ) Upper limit for the fill of :ref:`texture_progress` if :ref:`fill_mode` is :ref:`FILL_CLOCKWISE`, :ref:`FILL_COUNTER_CLOCKWISE`, or :ref:`FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE`. When the node's ``value`` is equal to its ``max_value``, the texture fills up to this angle. See :ref:`Range.value`, :ref:`Range.max_value`. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_radial_initial_angle: .. rst-class:: classref-property :ref:`float` **radial_initial_angle** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_radial_initial_angle**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_radial_initial_angle**\ (\ ) Starting angle for the fill of :ref:`texture_progress` if :ref:`fill_mode` is :ref:`FILL_CLOCKWISE`, :ref:`FILL_COUNTER_CLOCKWISE`, or :ref:`FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE`. When the node's ``value`` is equal to its ``min_value``, the texture doesn't show up at all. When the ``value`` increases, the texture fills and tends towards :ref:`radial_fill_degrees`. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_stretch_margin_bottom: .. rst-class:: classref-property :ref:`int` **stretch_margin_bottom** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_stretch_margin**\ (\ margin\: :ref:`Side`, value\: :ref:`int`\ ) - :ref:`int` **get_stretch_margin**\ (\ margin\: :ref:`Side`\ ) |const| The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. Only effective if :ref:`nine_patch_stretch` is ``true``. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_stretch_margin_left: .. rst-class:: classref-property :ref:`int` **stretch_margin_left** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_stretch_margin**\ (\ margin\: :ref:`Side`, value\: :ref:`int`\ ) - :ref:`int` **get_stretch_margin**\ (\ margin\: :ref:`Side`\ ) |const| The width of the 9-patch's left column. Only effective if :ref:`nine_patch_stretch` is ``true``. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_stretch_margin_right: .. rst-class:: classref-property :ref:`int` **stretch_margin_right** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_stretch_margin**\ (\ margin\: :ref:`Side`, value\: :ref:`int`\ ) - :ref:`int` **get_stretch_margin**\ (\ margin\: :ref:`Side`\ ) |const| The width of the 9-patch's right column. Only effective if :ref:`nine_patch_stretch` is ``true``. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_stretch_margin_top: .. rst-class:: classref-property :ref:`int` **stretch_margin_top** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_stretch_margin**\ (\ margin\: :ref:`Side`, value\: :ref:`int`\ ) - :ref:`int` **get_stretch_margin**\ (\ margin\: :ref:`Side`\ ) |const| The height of the 9-patch's top row. Only effective if :ref:`nine_patch_stretch` is ``true``. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_texture_over: .. rst-class:: classref-property :ref:`Texture2D` **texture_over** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_over_texture**\ (\ value\: :ref:`Texture2D`\ ) - :ref:`Texture2D` **get_over_texture**\ (\ ) :ref:`Texture2D` that draws over the progress bar. Use it to add highlights or an upper-frame that hides part of :ref:`texture_progress`. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_texture_progress: .. rst-class:: classref-property :ref:`Texture2D` **texture_progress** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_progress_texture**\ (\ value\: :ref:`Texture2D`\ ) - :ref:`Texture2D` **get_progress_texture**\ (\ ) :ref:`Texture2D` that clips based on the node's ``value`` and :ref:`fill_mode`. As ``value`` increased, the texture fills up. It shows entirely when ``value`` reaches ``max_value``. It doesn't show at all if ``value`` is equal to ``min_value``. The ``value`` property comes from :ref:`Range`. See :ref:`Range.value`, :ref:`Range.min_value`, :ref:`Range.max_value`. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_texture_progress_offset: .. rst-class:: classref-property :ref:`Vector2` **texture_progress_offset** = ``Vector2(0, 0)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_texture_progress_offset**\ (\ value\: :ref:`Vector2`\ ) - :ref:`Vector2` **get_texture_progress_offset**\ (\ ) The offset of :ref:`texture_progress`. Useful for :ref:`texture_over` and :ref:`texture_under` with fancy borders, to avoid transparent margins in your progress texture. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_texture_under: .. rst-class:: classref-property :ref:`Texture2D` **texture_under** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_under_texture**\ (\ value\: :ref:`Texture2D`\ ) - :ref:`Texture2D` **get_under_texture**\ (\ ) :ref:`Texture2D` that draws under the progress bar. The bar's background. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_tint_over: .. rst-class:: classref-property :ref:`Color` **tint_over** = ``Color(1, 1, 1, 1)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_tint_over**\ (\ value\: :ref:`Color`\ ) - :ref:`Color` **get_tint_over**\ (\ ) Multiplies the color of the bar's :ref:`texture_over` texture. The effect is similar to :ref:`CanvasItem.modulate`, except it only affects this specific texture instead of the entire node. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_tint_progress: .. rst-class:: classref-property :ref:`Color` **tint_progress** = ``Color(1, 1, 1, 1)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_tint_progress**\ (\ value\: :ref:`Color`\ ) - :ref:`Color` **get_tint_progress**\ (\ ) Multiplies the color of the bar's :ref:`texture_progress` texture. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_property_tint_under: .. rst-class:: classref-property :ref:`Color` **tint_under** = ``Color(1, 1, 1, 1)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_tint_under**\ (\ value\: :ref:`Color`\ ) - :ref:`Color` **get_tint_under**\ (\ ) Multiplies the color of the bar's :ref:`texture_under` texture. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_TextureProgressBar_method_get_stretch_margin: .. rst-class:: classref-method :ref:`int` **get_stretch_margin**\ (\ margin\: :ref:`Side`\ ) |const| :ref:`🔗` Returns the stretch margin with the specified index. See :ref:`stretch_margin_bottom` and related properties. .. rst-class:: classref-item-separator ---- .. _class_TextureProgressBar_method_set_stretch_margin: .. rst-class:: classref-method |void| **set_stretch_margin**\ (\ margin\: :ref:`Side`, value\: :ref:`int`\ ) :ref:`🔗` Sets the stretch margin with the specified index. See :ref:`stretch_margin_bottom` and related properties. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` .. |void| replace:: :abbr:`void (No return value.)`