Доработка. Угол наклона чёрточек на плоской кнопке

This commit is contained in:
sasha80
2024-04-23 11:20:55 +03:00
parent c8bce3bef8
commit b3e7baf572
5 changed files with 135 additions and 37 deletions

View File

@@ -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"]

View File

@@ -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):

View File

@@ -11,110 +11,138 @@ columns = 14
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "Откл."
disabled = true
toggle_mode = true
metadata/rfi_name = "off"
[node name="btn_auto_rfi" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "Автомат"
strips_rotation = 20.0
text = "Запрет"
disabled = true
toggle_mode = true
metadata/rfi_name = "auto"
[node name="btn_p12" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "МЧМ-1"
disabled = true
toggle_mode = true
metadata/rfi_name = "mchm1"
[node name="btn_p16" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "СРН-И1"
disabled = true
toggle_mode = true
metadata/rfi_name = "srni1"
[node name="btn_p15" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "СРН-М2"
disabled = true
toggle_mode = true
metadata/rfi_name = "srnm2"
[node name="btn_p14" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "ПД-М4"
disabled = true
toggle_mode = true
metadata/rfi_name = "pdm4"
[node name="btn_p13" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "ПД-М2"
disabled = true
toggle_mode = true
metadata/rfi_name = "pdm2"
[node name="btn_p11" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "ЛЧМ-1"
disabled = true
toggle_mode = true
metadata/rfi_name = "lchm1"
[node name="btn_p10" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "ПД-М4С"
disabled = true
toggle_mode = true
metadata/rfi_name = "pdm4s"
[node name="btn_p9" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "ПД-ЧМ"
disabled = true
toggle_mode = true
metadata/rfi_name = "pdchm"
[node name="btn_p8" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "СВ-И1"
disabled = true
toggle_mode = true
metadata/rfi_name = "svi1"
[node name="btn_p7" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "K1"
disabled = true
toggle_mode = true
metadata/rfi_name = "k1"
[node name="btn_p6" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "СВ-М2"
disabled = true
toggle_mode = true
metadata/rfi_name = "svm2"
[node name="btn_p5" parent="." groups=["группа-режим-помехи"] instance=ExtResource("1_oy80h")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 20.0
text = "ОЗП-1"
disabled = true
toggle_mode = true
metadata/rfi_name = "ozp1"

View File

@@ -376,7 +376,7 @@ func sel_fs_sector(event):
var center_offset: Vector2 = ProjectSettings.get_setting('application/interfer/center_offset', Vector2i(0, 25))
var angle: float = event.position.angle_to_point(center + center_offset) * 180/PI - 45.0
if angle < 0:
angle +=360
angle += 360
var distance: float = event.position.distance_to(center + center_offset)
var sector: int
var band: int

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=3 uid="uid://b276iygic5itk"]
[gd_scene load_steps=14 format=3 uid="uid://b276iygic5itk"]
[ext_resource type="Script" path="res://scenes/работа/работа.gd" id="1_niok4"]
[ext_resource type="PackedScene" uid="uid://nl1vklubr5kr" path="res://scenes/bip/bip.tscn" id="2_br3s6"]
@@ -11,6 +11,7 @@
[ext_resource type="PackedScene" uid="uid://bbq6nklh36yij" path="res://scenes/tilemap/tilemap.tscn" id="10_gtwyg"]
[ext_resource type="PackedScene" uid="uid://b5kjdyxuwsot5" path="res://scenes/diagram/diagram.tscn" id="11_b6su4"]
[ext_resource type="Shader" path="res://shaders/tilemap.gdshader" id="11_ekapd"]
[ext_resource type="Script" path="res://scenes/работа/sld_mode.gd" id="12_gqdkl"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4p7y1"]
resource_local_to_scene = true
@@ -97,16 +98,6 @@ offset_right = 83.0
offset_bottom = 72.0
text = "Опасных:"
[node name="btn_auto_threat" parent="." instance=ExtResource("8_k0iv2")]
layout_mode = 0
offset_left = 1034.0
offset_top = 7.0
offset_right = 1108.0
offset_bottom = 61.0
size_flags_horizontal = 3
size_flags_vertical = 3
text = "Автомат"
[node name="btn_view" parent="." instance=ExtResource("8_k0iv2")]
layout_mode = 2
offset_left = 11.0
@@ -115,9 +106,10 @@ offset_right = 111.0
offset_bottom = 953.0
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 2578.31
text = "Вид"
[node name="btn_view2" parent="." instance=ExtResource("8_k0iv2")]
[node name="btn_activate" parent="." instance=ExtResource("8_k0iv2")]
layout_mode = 2
offset_left = 954.0
offset_top = 1060.0
@@ -125,6 +117,7 @@ offset_right = 1106.0
offset_bottom = 1112.0
size_flags_horizontal = 3
size_flags_vertical = 3
strips_rotation = 2578.31
text = "Подавление"
[node name="btn_zoom" parent="." instance=ExtResource("9_oey3x")]
@@ -137,16 +130,17 @@ metadata/zoom = 4
[node name="btns_select" type="GridContainer" parent="."]
layout_mode = 0
offset_left = 1034.0
offset_top = 65.0
offset_right = 1108.0
offset_bottom = 181.0
offset_left = 1018.0
offset_top = 38.0
offset_right = 1092.0
offset_bottom = 154.0
[node name="btn_strob" parent="btns_select" instance=ExtResource("8_k0iv2")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "Кнопка для выбора сектора при помощи клика мышкой"
strips_rotation = 2578.31
text = "Строб"
metadata/state = 0
@@ -155,8 +149,8 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "Кнопка для выбора сектора при помощи клика мышкой"
strips_rotation = 2578.31
text = "Цель"
pressed = true
metadata/state = 1
[node name="btn_fs_sector" parent="btns_select" instance=ExtResource("8_k0iv2")]
@@ -164,9 +158,83 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "Кнопка для выбора сектора при помощи клика мышкой"
strips_rotation = 2578.31
text = "Сектор"
metadata/state = 2
[node name="vslider" type="VSlider" parent="."]
layout_mode = 2
offset_left = 1113.0
offset_top = 975.0
offset_right = 1143.0
offset_bottom = 1055.0
scale = Vector2(-1, 1)
max_value = 3.0
value = 3.0
tick_count = 4
ticks_on_borders = true
script = ExtResource("12_gqdkl")
[node name="label0" type="Label" parent="vslider"]
self_modulate = Color(1, 1, 1, 0.5)
layout_mode = 0
offset_left = 158.0
offset_top = 62.0
offset_right = 283.0
offset_bottom = 82.0
scale = Vector2(-1, 1)
text = "Автомат отключен"
horizontal_alignment = 2
vertical_alignment = 1
[node name="label1" type="Label" parent="vslider"]
self_modulate = Color(1, 1, 1, 0.5)
layout_mode = 0
offset_left = 182.0
offset_top = 40.0
offset_right = 331.0
offset_bottom = 60.0
scale = Vector2(-1, 1)
text = "Автомат выбора цели"
horizontal_alignment = 2
vertical_alignment = 1
[node name="label2" type="Label" parent="vslider"]
self_modulate = Color(1, 1, 1, 0.5)
layout_mode = 0
offset_left = 200.0
offset_top = 19.0
offset_right = 368.0
offset_bottom = 39.0
scale = Vector2(-1, 1)
text = "Автомат выбора помехи"
horizontal_alignment = 2
vertical_alignment = 1
[node name="label3" type="Label" parent="vslider"]
self_modulate = Color(1, 1, 1, 0.5)
layout_mode = 0
offset_left = 191.0
offset_top = -2.0
offset_right = 351.0
offset_bottom = 18.0
scale = Vector2(-1, 1)
text = "Автомат помехи и цели"
horizontal_alignment = 2
vertical_alignment = 1
[node name="label9" type="Label" parent="."]
self_modulate = Color(1, 1, 1, 0.62)
layout_mode = 0
offset_left = 1002.0
offset_top = 6.0
offset_right = 1106.0
offset_bottom = 31.0
text = "Режим выбора"
horizontal_alignment = 1
vertical_alignment = 1
[connection signal="drag_begin" from="." to="." method="_on_drag_begin"]
[connection signal="drag_continue" from="." to="." method="_on_drag_continue"]
[connection signal="pressed" from="btn_zoom" to="." method="_on_btn_scale_pressed"]
[connection signal="value_changed" from="vslider" to="vslider" method="_on_value_changed"]