Доработка. Угол наклона чёрточек на плоской кнопке
This commit is contained in:
@@ -57,7 +57,7 @@ void fragment()
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hhdyc"]
|
||||
resource_local_to_scene = true
|
||||
shader = SubResource("Shader_2bftm")
|
||||
shader_parameter/rotation = 45.0
|
||||
shader_parameter/rotation = 0.0
|
||||
shader_parameter/color = Vector4(1, 1, 1, 0.1)
|
||||
shader_parameter/width = 3.0
|
||||
shader_parameter/speed = 0.0
|
||||
@@ -71,15 +71,22 @@ script/source = "@tool
|
||||
|
||||
extends Sprite2D
|
||||
|
||||
|
||||
## Скорость движения чёрточек.
|
||||
@export var speed: float = 0.01:
|
||||
set(val): material.set('shader_parameter/speed', val)
|
||||
get: return material.get('shader_parameter/speed')
|
||||
|
||||
|
||||
## Режим отображения. Когда [b]true[/b], чёрточки отображаются.
|
||||
@export var disabled: bool = false:
|
||||
set(val): material.set('shader_parameter/disabled', val)
|
||||
get: return material.get('shader_parameter/disabled')
|
||||
|
||||
|
||||
## Угол наклона чёрточек.
|
||||
@export var strips_rotation: float = 0.0:
|
||||
set(val): material.set('shader_parameter/rotation', val)
|
||||
get: return material.get('shader_parameter/rotation')
|
||||
"
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="6"]
|
||||
@@ -97,7 +104,6 @@ offset_right = 20.0
|
||||
offset_bottom = 20.0
|
||||
theme_override_styles/panel = SubResource("1")
|
||||
script = ExtResource("1_ui6sg")
|
||||
toggle_mode = true
|
||||
|
||||
[node name="back" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_hhdyc")
|
||||
@@ -126,9 +132,7 @@ theme_override_styles/hover = SubResource("2")
|
||||
theme_override_styles/pressed = SubResource("3")
|
||||
theme_override_styles/disabled = SubResource("5")
|
||||
theme_override_styles/focus = SubResource("4")
|
||||
toggle_mode = true
|
||||
clip_text = true
|
||||
|
||||
[connection signal="resized" from="." to="." method="_on_resized"]
|
||||
[connection signal="visibility_changed" from="back" to="back" method="_on_visibility_changed"]
|
||||
[connection signal="toggled" from="button" to="." method="_on_button_toggled"]
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
extends PanelContainer
|
||||
|
||||
var save_modulate: Color
|
||||
|
||||
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
|
||||
@@ -21,6 +19,11 @@ func is_toggle_mode(): return $button.is_toggle_mode()
|
||||
set(val): $state.set_texture(val)
|
||||
|
||||
|
||||
@export var strips_rotation: float:
|
||||
set(val): $back.strips_rotation = deg_to_rad(val)
|
||||
get: return rad_to_deg($back.strips_rotation)
|
||||
|
||||
|
||||
@export var text: String = '':
|
||||
set(val): $button.set_text(val)
|
||||
get: return $button.get_text()
|
||||
@@ -30,10 +33,7 @@ func is_toggle_mode(): return $button.is_toggle_mode()
|
||||
set(val):
|
||||
$button.set_disabled(val)
|
||||
$back.disabled = val
|
||||
if val:
|
||||
$state.modulate.a = 0.5
|
||||
else:
|
||||
$state.modulate.a = 1.0
|
||||
$state.modulate.a = 0.5 if val else 1.0
|
||||
get: return $button.disabled
|
||||
|
||||
|
||||
@@ -42,10 +42,8 @@ func is_toggle_mode(): return $button.is_toggle_mode()
|
||||
get: return $button.is_pressed()
|
||||
|
||||
|
||||
@export var toggle_mode: bool = false:
|
||||
set(val):
|
||||
if is_inside_tree():
|
||||
$button.set_toggle_mode(val)
|
||||
@export var toggle_mode: bool:
|
||||
set(val): $button.set_toggle_mode(val)
|
||||
get: return $button.is_toggle_mode()
|
||||
|
||||
|
||||
@@ -57,12 +55,12 @@ func _on_resized() -> void:
|
||||
func _enter_tree() -> void:
|
||||
$back.scale = size
|
||||
$back.material.set('shader_parameter/scale', size / Vector2(20.0, 20.0))
|
||||
save_modulate = modulate
|
||||
$button.set_toggle_mode(true)
|
||||
$button.connect('toggled', Callable(self, '_on_button_toggled'))
|
||||
|
||||
|
||||
func set_toggle_mode (val: bool):
|
||||
if is_inside_tree():
|
||||
$button.set_toggle_mode(val)
|
||||
$button.set_toggle_mode(val)
|
||||
|
||||
|
||||
func _on_button_toggled(val: bool):
|
||||
|
||||
Reference in New Issue
Block a user