Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

TextureProgressBar

Inherits: Range < Control < CanvasItem < Node < Object

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

Description

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.

Properties

int

fill_mode

0

MouseFilter

mouse_filter

1 (overrides Control)

bool

nine_patch_stretch

false

Vector2

radial_center_offset

Vector2(0, 0)

float

radial_fill_degrees

360.0

float

radial_initial_angle

0.0

BitField<SizeFlags>

size_flags_vertical

1 (overrides Control)

float

step

1.0 (overrides Range)

int

stretch_margin_bottom

0

int

stretch_margin_left

0

int

stretch_margin_right

0

int

stretch_margin_top

0

Texture2D

texture_over

Texture2D

texture_progress

Vector2

texture_progress_offset

Vector2(0, 0)

Texture2D

texture_under

Color

tint_over

Color(1, 1, 1, 1)

Color

tint_progress

Color(1, 1, 1, 1)

Color

tint_under

Color(1, 1, 1, 1)

Methods

int

get_stretch_margin ( Side margin ) const

void

set_stretch_margin ( Side margin, int value )


Enumerations

enum FillMode:

FillMode FILL_LEFT_TO_RIGHT = 0

The texture_progress fills from left to right.

FillMode FILL_RIGHT_TO_LEFT = 1

The texture_progress fills from right to left.

FillMode FILL_TOP_TO_BOTTOM = 2

The texture_progress fills from top to bottom.

FillMode FILL_BOTTOM_TO_TOP = 3

The texture_progress fills from bottom to top.

FillMode FILL_CLOCKWISE = 4

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.

FillMode FILL_COUNTER_CLOCKWISE = 5

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.

FillMode FILL_BILINEAR_LEFT_AND_RIGHT = 6

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

FillMode FILL_BILINEAR_TOP_AND_BOTTOM = 7

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

FillMode FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE = 8

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.


Property Descriptions

int fill_mode = 0

  • void set_fill_mode ( int value )

  • int get_fill_mode ( )

The fill direction. See FillMode for possible values.


bool nine_patch_stretch = false

  • void set_nine_patch_stretch ( bool value )

  • bool get_nine_patch_stretch ( )

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 enable stretching.


Vector2 radial_center_offset = Vector2(0, 0)

  • void set_radial_center_offset ( Vector2 value )

  • Vector2 get_radial_center_offset ( )

Offsets texture_progress if fill_mode is FILL_CLOCKWISE or FILL_COUNTER_CLOCKWISE.


float radial_fill_degrees = 360.0

  • void set_fill_degrees ( float value )

  • float get_fill_degrees ( )

Upper limit for the fill of texture_progress if fill_mode is FILL_CLOCKWISE or FILL_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.


float radial_initial_angle = 0.0

  • void set_radial_initial_angle ( float value )

  • float get_radial_initial_angle ( )

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


int stretch_margin_bottom = 0

  • void set_stretch_margin ( Side margin, int value )

  • int get_stretch_margin ( Side margin ) 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.


int stretch_margin_left = 0

  • void set_stretch_margin ( Side margin, int value )

  • int get_stretch_margin ( Side margin ) const

The width of the 9-patch's left column.


int stretch_margin_right = 0

  • void set_stretch_margin ( Side margin, int value )

  • int get_stretch_margin ( Side margin ) const

The width of the 9-patch's right column.


int stretch_margin_top = 0

  • void set_stretch_margin ( Side margin, int value )

  • int get_stretch_margin ( Side margin ) const

The height of the 9-patch's top row.


Texture2D texture_over

Texture2D t