Исправление. Состояние отображается не верно, если у экземпляра в сцене установлено значение отличное от исходного
This commit is contained in:
@@ -3,18 +3,17 @@
|
||||
extends PanelContainer
|
||||
|
||||
func set_text(val: String): $button.set_text(val)
|
||||
func set_pressed(val: bool): $button.set_pressed(val)
|
||||
func set_disabled(val: bool): disabled = val
|
||||
func get_text(): return $button.get_text()
|
||||
func is_pressed(): return $button.is_pressed()
|
||||
func is_toggle_mode(): return $button.is_toggle_mode()
|
||||
|
||||
var _pressed: = false
|
||||
|
||||
@export var texture_state0: Texture2D = preload('res://data/кнопка-квадрат-0.png'):
|
||||
set(val):
|
||||
texture_state0 = val
|
||||
if is_inside_tree():
|
||||
$state.set_texture(val)
|
||||
$state.set_texture(val)
|
||||
|
||||
|
||||
@export var texture_state1: Texture2D = preload('res://data/кнопка-квадрат-1.png'):
|
||||
@@ -27,40 +26,43 @@ func is_toggle_mode(): return $button.is_toggle_mode()
|
||||
@export var strips_rotation: float = 0.0:
|
||||
set(val):
|
||||
strips_rotation = val
|
||||
if is_inside_tree():
|
||||
$back.strips_rotation = deg_to_rad(val)
|
||||
$back.strips_rotation = deg_to_rad(val)
|
||||
|
||||
|
||||
@export var text: String = '':
|
||||
set(val):
|
||||
text = val
|
||||
if is_inside_tree():
|
||||
$button.set_text(val)
|
||||
$button.set_text(val)
|
||||
|
||||
|
||||
@export var disabled: bool = false:
|
||||
set(val):
|
||||
disabled = val
|
||||
if is_inside_tree():
|
||||
$button.set_disabled(val)
|
||||
$back.disabled = val
|
||||
$state.modulate.a = 0.5 if val else 1.0
|
||||
$button.set_disabled(val)
|
||||
$back.disabled = val
|
||||
$state.modulate.a = 0.5 if val else 1.0
|
||||
|
||||
|
||||
@export var pressed: bool = false:
|
||||
set(val):
|
||||
pressed = val
|
||||
_pressed = val
|
||||
if is_inside_tree():
|
||||
$button.set_pressed(val)
|
||||
_on_button_toggled(val)
|
||||
|
||||
|
||||
@export var toggle_mode: bool = false:
|
||||
@export var toggle_mode: bool = true:
|
||||
set(val):
|
||||
toggle_mode = val
|
||||
if is_inside_tree():
|
||||
$button.set_toggle_mode(val)
|
||||
|
||||
|
||||
func set_pressed(val: bool):
|
||||
pressed = val
|
||||
|
||||
|
||||
func button_connect(button_signal: String, proc: Callable):
|
||||
var rc = $button.connect(button_signal, proc)
|
||||
if rc != Error.OK:
|
||||
@@ -75,8 +77,8 @@ func _on_resized() -> void:
|
||||
func _enter_tree() -> void:
|
||||
$back.scale = size
|
||||
$back.material.set('shader_parameter/scale', size / Vector2(20.0, 20.0))
|
||||
$button.set_toggle_mode(true)
|
||||
$button.connect('toggled', _on_button_toggled)
|
||||
pressed = _pressed
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
|
||||
Reference in New Issue
Block a user