Inheritance #

TextureProgressBar
Table of contents

TextureProgressBar #

is_instantiable, Node, core, not_builtin_classes

Texture-based progress bar. Useful for loading screens and life or stamina bars.

TextureProgressBar works like ProgressBar, but uses up to 3 textures instead of Godot's Theme resource. It can be used to create horizontal, vertical and radial progress bars.

Members #

var fill_mode: int = 0#

The fill direction. See FillMode for possible values.

var mouse_filter = MOUSE_FILTER_PASS#

var nine_patch_stretch: bool = false#

If true, Godot treats the bar's textures like in NinePatchRect. Use the stretch_margin_* properties like stretch_margin_bottom to set up the nine patch's 3×3 grid. When using a radial fill_mode, this setting will only enable stretching for texture_progress, while texture_under and texture_over will be treated like in NinePatchRect.

var radial_center_offset: Vector2 = Vector2(0, 0)#

Offsets texture_progress if fill_mode is FILL_CLOCKWISE, FILL_COUNTER_CLOCKWISE, or FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE.

Note: The effective radial center always stays within the texture_progress bounds. If you need to move it outside the texture's bounds, modify the texture_progress to contain additional empty space where needed.

var radial_fill_degrees: float = 360.0#

Upper limit for the fill of texture_progress if fill_mode is FILL_CLOCKWISE, FILL_COUNTER_CLOCKWISE, or FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE. When the node's value is equal to its max_value, the texture fills up to this angle.

See Range.value, Range.max_value.

var radial_initial_angle: float = 0.0#

Starting angle for the fill of texture_progress if fill_mode is FILL_CLOCKWISE, FILL_COUNTER_CLOCKWISE, or 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 radial_fill_degrees.

Note: radial_initial_angle is wrapped between 0 and 360 degrees (inclusive).

var size_flags_vertical = SIZE_FILL#

var step: float = 1.0#

var stretch_margin_bottom: int = 0#

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 nine_patch_stretch is true.

var stretch_margin_left: int = 0#

The width of the 9-patch's left column. Only effective if nine_patch_stretch is true.

var stretch_margin_right: int = 0#

The width of the 9-patch's right column. Only effective if nine_patch_stretch is true.

var stretch_margin_top: int = 0#

The height of the 9-patch's top row. Only effective if nine_patch_stretch is true.

var texture_over: Texture2D#

Texture2D that draws over the progress bar. Use it to add highlights or an upper-frame that hides part of texture_progress.

var texture_progress: Texture2D#

Texture2D that clips based on the node's value and 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 Range. See Range.value, Range.min_value, Range.max_value.

var texture_progress_offset: Vector2 = Vector2(0, 0)#

The offset of texture_progress. Useful for texture_over and texture_under with fancy borders, to avoid transparent margins in your progress texture.

var texture_under: Texture2D#

Texture2D that draws under the progress bar. The bar's background.

var tint_over: Color = Color(1, 1, 1, 1)#

Multiplies the color of the bar's texture_over texture. The effect is similar to CanvasItem.modulate, except it only affects this specific texture instead of the entire node.

var tint_progress: Color = Color(1, 1, 1, 1)#

Multiplies the color of the bar's texture_progress texture.

var tint_under: Color = Color(1, 1, 1, 1)#

Multiplies the color of the bar's texture_under texture.

Methods #

const func get_stretch_margin(margin: int enumSide) -> int#

Returns the stretch margin with the specified index. See stretch_margin_bottom and related properties.

func set_stretch_margin(value: int) -> void#

Sets the stretch margin with the specified index. See stretch_margin_bottom and related properties.

Annotations #

Constants #

const FILL_LEFT_TO_RIGHT = 0 enum FillMode#

The texture_progress fills from left to right.

const FILL_RIGHT_TO_LEFT = 1 enum FillMode#

The texture_progress fills from right to left.

const FILL_TOP_TO_BOTTOM = 2 enum FillMode#

The texture_progress fills from top to bottom.

const FILL_BOTTOM_TO_TOP = 3 enum FillMode#

The texture_progress fills from bottom to top.

const FILL_CLOCKWISE = 4 enum FillMode#

Turns the node into a radial bar. The texture_progress fills clockwise. See radial_center_offset, radial_initial_angle and radial_fill_degrees to control the way the bar fills up.

const FILL_COUNTER_CLOCKWISE = 5 enum FillMode#

Turns the node into a radial bar. The texture_progress fills counterclockwise. See radial_center_offset, radial_initial_angle and radial_fill_degrees to control the way the bar fills up.

const FILL_BILINEAR_LEFT_AND_RIGHT = 6 enum FillMode#

The texture_progress fills from the center, expanding both towards the left and the right.

const FILL_BILINEAR_TOP_AND_BOTTOM = 7 enum FillMode#

The texture_progress fills from the center, expanding both towards the top and the bottom.

const FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE = 8 enum FillMode#

Turns the node into a radial bar. The texture_progress fills radially from the center, expanding both clockwise and counterclockwise. See radial_center_offset, radial_initial_angle and radial_fill_degrees to control the way the bar fills up.

Constructors #

Enums #

FillMode#

enum FillMode { FILL_LEFT_TO_RIGHT = 0, FILL_RIGHT_TO_LEFT = 1, FILL_TOP_TO_BOTTOM = 2, FILL_BOTTOM_TO_TOP = 3, FILL_CLOCKWISE = 4, FILL_COUNTER_CLOCKWISE = 5, FILL_BILINEAR_LEFT_AND_RIGHT = 6, FILL_BILINEAR_TOP_AND_BOTTOM = 7, FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE = 8, }

Operators #

Signals #

Theme Items #

Tutorials #