Merge remote-tracking branch 'sasha/master'
This commit is contained in:
34
data/2разъединение.png.import
Normal file
34
data/2разъединение.png.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cwfdur4we51wo"
|
||||
path="res://.godot/imported/2разъединение.png-a5736ca86ce553a4d764d6fc09130f8a.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/2разъединение.png"
|
||||
dest_files=["res://.godot/imported/2разъединение.png-a5736ca86ce553a4d764d6fc09130f8a.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
34
data/2соединение.png.import
Normal file
34
data/2соединение.png.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bajrbvv7twq7m"
|
||||
path="res://.godot/imported/2соединение.png-b014241f07700023165f09936094354c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/2соединение.png"
|
||||
dest_files=["res://.godot/imported/2соединение.png-b014241f07700023165f09936094354c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
data/Передатчик.png
Normal file
BIN
data/Передатчик.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
34
data/Передатчик.png.import
Normal file
34
data/Передатчик.png.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c73tjrn8gr00o"
|
||||
path="res://.godot/imported/Передатчик.png-a9919ed2f6d748be55f63a536bcda2ff.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/Передатчик.png"
|
||||
dest_files=["res://.godot/imported/Передатчик.png-a9919ed2f6d748be55f63a536bcda2ff.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
data/Приёмник.png
Normal file
BIN
data/Приёмник.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.3 KiB |
34
data/Приёмник.png.import
Normal file
34
data/Приёмник.png.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c6etralq2tvxg"
|
||||
path="res://.godot/imported/Приёмник.png-37dec39ffb59b71e3909414fe8f5fd1e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/Приёмник.png"
|
||||
dest_files=["res://.godot/imported/Приёмник.png-37dec39ffb59b71e3909414fe8f5fd1e.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
data/Состояние РЭС 2.png
Normal file
BIN
data/Состояние РЭС 2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
34
data/Состояние РЭС 2.png.import
Normal file
34
data/Состояние РЭС 2.png.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://6ar7sux3vcv1"
|
||||
path="res://.godot/imported/Состояние РЭС 2.png-7acd4e8d9bd67ea07a3eadee4b22c22d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/Состояние РЭС 2.png"
|
||||
dest_files=["res://.godot/imported/Состояние РЭС 2.png-7acd4e8d9bd67ea07a3eadee4b22c22d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
data/Состояние РЭС 4.png
Normal file
BIN
data/Состояние РЭС 4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.1 KiB |
34
data/Состояние РЭС 4.png.import
Normal file
34
data/Состояние РЭС 4.png.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b85f1ne2wrwhg"
|
||||
path="res://.godot/imported/Состояние РЭС 4.png-d46f69e8c351fe747cf68bce4af4b8eb.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/Состояние РЭС 4.png"
|
||||
dest_files=["res://.godot/imported/Состояние РЭС 4.png-d46f69e8c351fe747cf68bce4af4b8eb.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
data/Угловой квадрат3.png
Normal file
BIN
data/Угловой квадрат3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
34
data/Угловой квадрат3.png.import
Normal file
34
data/Угловой квадрат3.png.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://docnrxrm2f022"
|
||||
path="res://.godot/imported/Угловой квадрат3.png-7973b0c96861e98d72e8e1ea32d59204.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/Угловой квадрат3.png"
|
||||
dest_files=["res://.godot/imported/Угловой квадрат3.png-7973b0c96861e98d72e8e1ea32d59204.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
34
data/разъединение.png.import
Normal file
34
data/разъединение.png.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b0wa068b6gl1y"
|
||||
path="res://.godot/imported/разъединение.png-285b8ee2e2b500484829beae0ee4e16b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/разъединение.png"
|
||||
dest_files=["res://.godot/imported/разъединение.png-285b8ee2e2b500484829beae0ee4e16b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
data/связь.png
Normal file
BIN
data/связь.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
34
data/связь.png.import
Normal file
34
data/связь.png.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://blx6c1o1nogks"
|
||||
path="res://.godot/imported/связь.png-dc3eae4c11f71101d4ba94487cecfaaa.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/связь.png"
|
||||
dest_files=["res://.godot/imported/связь.png-dc3eae4c11f71101d4ba94487cecfaaa.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
34
data/соединение.png.import
Normal file
34
data/соединение.png.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bf1e2xlk3x1aw"
|
||||
path="res://.godot/imported/соединение.png-aac09e55b0c5d57ef3c31c34daaf336b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/соединение.png"
|
||||
dest_files=["res://.godot/imported/соединение.png-aac09e55b0c5d57ef3c31c34daaf336b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
@@ -37,6 +37,64 @@ config/settings_path="user://settings.json"
|
||||
config/unit_bpo_request_period=20.0
|
||||
interfer/emit_color=Color(0.9, 0.1, 0.25, 0.5)
|
||||
interfer/closed_sectors=Color(0, 0, 0, 1)
|
||||
"config/Адрес АФСП левого борта"=""
|
||||
"config/Адрес АФСП правого борта"=""
|
||||
"config/Адрес БПО левого борта"=""
|
||||
"config/Адрес БПО правого борта"=""
|
||||
"config/Виртуальная клавиатура"=false
|
||||
"config/Включить работу по своим целям"=true
|
||||
"config/Внешнее указание Трасса"=false
|
||||
"config/Внешнее управление"=false
|
||||
"config/Кнопка «JTIDS»"=false
|
||||
"config/Кнопка «К1»"=false
|
||||
"config/Кнопка «КУПД»"=false
|
||||
"config/Кнопка «ЛЧМ-1»"=false
|
||||
"config/Кнопка «МЧМ-1»"=false
|
||||
"config/Кнопка «ОЗП-1»"=false
|
||||
"config/Кнопка «ОРН-И1»"=false
|
||||
"config/Кнопка «ОРН-М2»"=false
|
||||
"config/Кнопка «ОРН»"=false
|
||||
"config/Кнопка «ПД-М2»"=false
|
||||
"config/Кнопка «ПД-М4»"=false
|
||||
"config/Кнопка «ПД-М4С»"=false
|
||||
"config/Кнопка «ПД-ЧМ»"=false
|
||||
"config/Кнопка «Подавление»"=false
|
||||
"config/Кнопка «СВ-И1»"=false
|
||||
"config/Кнопка «СВ-М2»"=false
|
||||
"config/Ограниченный режим"=false
|
||||
"config/Отладка контроля"=false
|
||||
"config/Период опроса состояния АФСП, секунды"=""
|
||||
"config/Период опроса состояния БПО, секунды"=""
|
||||
"config/Скрыть вкладку ЭМС 2"=true
|
||||
"config/Список своих протоколов"=""
|
||||
"config/Текущая версия ПО УАРЭП"="master 3bff1cd Tue Nov 4 15:33:24 2025 +0300"
|
||||
"config/Цвет кнопки \"Подавление\""="[0.972549021244049,0.0117647061124444,0.423529416322708,1.0]"
|
||||
"config/Цвет схемы"="[0.972549021244049,0.0117647061124444,0.0274509806185961,1.0]"
|
||||
"config/Цвет фона схемы"="[0.0941176488995552,0.149019613862038,1.0,1.0]"
|
||||
"config/Шаблон адреса сервера карт"="https://tile.openstreetmap.org/{z}/{x}/{y}.png"
|
||||
"config/навигация"=["*", 60000, true, true]
|
||||
"config/уарэп-5п28"=["127.0.0.1", 50777]
|
||||
"config/уарэп-капсрпб"=["127.0.0.1", "127.0.0.1", 42023, 42022, false, true]
|
||||
"config/уарэп-спт25-1"=["/home/user/tty0", 0, 19200, "N", 8, 1]
|
||||
"config/уарэп-спт25-2"=["/home/user/tty1", 0, 19200, "N", 8, 1]
|
||||
"config/уарэп-трасса"=["192.168.11.34", "192.168.11.105", 50200, 10004, false, true]
|
||||
"config/уарэп-щ3"=["/home/user/tty3", 7, 19200, "N", 8, 1, 50000]
|
||||
"config/уарэп-эмс"=["10.1.1.52", 50052, false, false]
|
||||
"config/уарэп-яу07-1в"=["10.1.1.12", 50012, false, false]
|
||||
"config/уарэп-яу07-1к"=["10.1.1.13", 50013, false, false]
|
||||
"config/уарэп-яу07-1н"=["10.1.1.11", 50011, false, false]
|
||||
"config/уарэп-яу07-2в"=["10.1.1.22", 50022, false, false]
|
||||
"config/уарэп-яу07-2к"=["10.1.1.23", 50023, false, false]
|
||||
"config/уарэп-яу07-2н"=["10.1.1.21", 50021, false, false]
|
||||
"config/уарэп-яу07-3в"=["10.1.1.32", 50032, false, false]
|
||||
"config/уарэп-яу07-3к"=["10.1.1.33", 50033, false, false]
|
||||
"config/уарэп-яу07-3н"=["10.1.1.31", 50031, false, false]
|
||||
"config/уарэп-яу07-4в"=["10.1.1.42", 50042, false, false]
|
||||
"config/уарэп-яу07-4к"=["10.1.1.43", 50043, false, false]
|
||||
"config/уарэп-яу07-4н"=["10.1.1.41", 50041, false, false]
|
||||
"config/уарэп-яу07-общий"=["*", 50000, true, true]
|
||||
"config/уарэп-яу07-частный"=["10.1.1.253", 50253, false, true]
|
||||
config/="[0.215686276555061,0.976470589637756,1.0,1.0]"
|
||||
|
||||
[autoload]
|
||||
|
||||
@@ -88,6 +146,7 @@ window/subwindows/embed_subwindows=false
|
||||
window/frame_pacing/android/enable_frame_pacing=false
|
||||
window/stretch/mode="canvas_items"
|
||||
window/dpi/allow_hidpi=false
|
||||
window/vsync/vsync_mode=0
|
||||
|
||||
[editor]
|
||||
|
||||
@@ -205,6 +264,8 @@ common/enable_object_picking=false
|
||||
[rendering]
|
||||
|
||||
shader_compiler/shader_cache/strip_debug=true
|
||||
textures/default_filters/anisotropic_filtering_level=0
|
||||
anti_aliasing/screen_space_roughness_limiter/enabled=false
|
||||
quality/driver/fallback_to_gles2=true
|
||||
|
||||
[shader_globals]
|
||||
|
||||
@@ -1,44 +1,53 @@
|
||||
class_name Diagram extends Sprite2D
|
||||
class_name Diagram extends ColorRect
|
||||
|
||||
const NUM_OF_RANGE = 7
|
||||
const NUM_OF_DIRECTIONS = 4
|
||||
var fs_default_colors: Array[Color] ## Цвета по умолчанию для блоков ФС.
|
||||
const color0_default: Color = Color(0.38, 0.47, 0.51, 1.0)
|
||||
const color1_default: Color = Color(0.39, 0.44, 0.50, 1.0)
|
||||
var color0: Color = color0_default
|
||||
var color1: Color = color1_default
|
||||
|
||||
var fs_default_colors: PackedColorArray ## Цвета по умолчанию для блоков ФС.
|
||||
|
||||
@export var SecZap: PackedScene
|
||||
@export var inner_radius_0: = 0.36 ## Внутренний радиус диаграммы в режиме РТО
|
||||
@export var inner_radius_1: = 0.855 ## Внутренний радиус диаграммы в обзора
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
signaller.connect('map_mode_changed', Callable(self, 'set_view_mode'))
|
||||
ProjectSettings.connect('settings_changed', _on_settings_changed)
|
||||
_on_settings_changed()
|
||||
set_def_colors()
|
||||
|
||||
|
||||
func sv(val: float) -> float: return val / ($строб.scale.x / 2.0) * 0.125
|
||||
|
||||
func set_canvas_rotation(val: float) -> void: material.set('shader_parameter/rotation', val)
|
||||
func set_strob_visible(val: bool): $строб.visible = val
|
||||
func set_strob_center(val: Vector2): $строб.position = val
|
||||
func set_strob_dir(val: float): $строб.set_instance_shader_parameter('dir', val)
|
||||
func set_strob_width(val: float): $строб.set_instance_shader_parameter('width', val)
|
||||
func set_strob_band(val: float): $строб.set_instance_shader_parameter('band', val / 125.0)
|
||||
func set_strob_radius(val: float): $строб.set_instance_shader_parameter('radius', sv(val))
|
||||
func set_strob_color(val: Color): $строб.set_instance_shader_parameter('color', val)
|
||||
func set_band_colors(val: PackedColorArray): material.set('shader_parameter/ant_band_c', val)
|
||||
func set_band_failures(val: PackedInt32Array): material.set('shader_parameter/ant_band_m', val)
|
||||
func set_canvas_rotation(val: float): material.set('shader_parameter/rotation', val)
|
||||
func set_radius_inner_frac(val: float): material.set('shader_parameter/inner_radius', val)
|
||||
func set_strob_band(val: float): $строб.set_instance_shader_parameter('band', val / 125.0)
|
||||
func set_strob_center(val: Vector2): $строб.position = val
|
||||
func set_strob_color(val: Color): $строб.set_instance_shader_parameter('color', val)
|
||||
func set_strob_dir(val: float): $строб.set_instance_shader_parameter('dir', val)
|
||||
func set_strob_radius(val: float): $строб.set_instance_shader_parameter('radius', sv(val))
|
||||
func set_strob_visible(val: bool): $строб.visible = val
|
||||
func set_strob_width(val: float): $строб.set_instance_shader_parameter('width', val)
|
||||
|
||||
func get_strob_center() -> Vector2: return $строб.position
|
||||
func get_strob_visible() -> bool: return $строб.visible
|
||||
func get_strob_dir() -> float: return $строб.get_instance_shader_parameter('dir')
|
||||
func get_strob_width() -> float: return $строб.get_instance_shader_parameter('width')
|
||||
func get_strob_band() -> float: return $строб.get_instance_shader_parameter('band') * 125.0
|
||||
func get_strob_radius() -> float: return $строб.get_instance_shader_parameter('radius') * 125.0
|
||||
func get_strob_color() -> float: return $строб.get_instance_shader_parameter('color')
|
||||
func get_band_colors(_val: Array): return material.get('shader_parameter/ant_band_c')
|
||||
func get_band_failures(_val: Array): return material.get('shader_parameter/ant_band_m')
|
||||
func get_canvas_rotation() -> float: return material.get('shader_parameter/rotation')
|
||||
func get_radius_outter() -> float: return size.x / scale.x
|
||||
func get_radius_inner_frac() -> float: return material.get('shader_parameter/inner_radius')
|
||||
func get_strob_band() -> float: return $строб.get_instance_shader_parameter('band') * 125.0
|
||||
func get_strob_center() -> Vector2: return $строб.position
|
||||
func get_strob_color() -> float: return $строб.get_instance_shader_parameter('color')
|
||||
func get_strob_dir() -> float: return $строб.get_instance_shader_parameter('dir')
|
||||
func get_strob_radius() -> float: return $строб.get_instance_shader_parameter('radius') * 125.0
|
||||
func get_strob_visible() -> bool: return $строб.visible
|
||||
func get_strob_width() -> float: return $строб.get_instance_shader_parameter('width')
|
||||
|
||||
func get_canvas_rotation() -> float: return material.get('shader_parameter/rotation')
|
||||
func get_radius_outter() -> float: return material.get('shader_parameter/radius_outter')
|
||||
func get_radius_inner_0() -> float: return material.get('shader_parameter/radius_inner_0')
|
||||
func get_radius_inner_1() -> float: return material.get('shader_parameter/radius_inner_1')
|
||||
|
||||
func get_band_colors(_val: Array): return material.get('shader_parameter/ant_band_c')
|
||||
func get_band_failures(_val: Array): return material.get('shader_parameter/ant_band_m')
|
||||
func set_band_colors(val: Array): material.set('shader_parameter/ant_band_c', val)
|
||||
func set_band_failures(val: Array): material.set('shader_parameter/ant_band_m', val)
|
||||
|
||||
## Добавляет сектор запрета[br]
|
||||
## [param id] - Индекс сектора запрета.[br]
|
||||
@@ -87,30 +96,32 @@ func clear_all_seczap():
|
||||
child.queue_free()
|
||||
|
||||
|
||||
func set_seczap_color(id: int, color: Color):
|
||||
func set_seczap_color(id: int, c: Color):
|
||||
var seczap: = get_node('SECZAP%d' % id)
|
||||
seczap.set_instance_shader_parameter('color', color)
|
||||
seczap.set_instance_shader_parameter('color', c)
|
||||
|
||||
|
||||
func set_view_mode(val: int):
|
||||
if val == 1:
|
||||
material.set('shader_parameter/inner_radius', inner_radius_1)
|
||||
$строб.hide()
|
||||
else:
|
||||
material.set('shader_parameter/inner_radius', inner_radius_0)
|
||||
$строб.show()
|
||||
material.set('shader_parameter/mode', val)
|
||||
|
||||
|
||||
func _on_settings_changed():
|
||||
color0 = ProjectSettings.get_setting('application/interfer/default_color0', color0_default)
|
||||
color1 = ProjectSettings.get_setting('application/interfer/default_color1', color1_default)
|
||||
color0 *= Color(1.0, 1.0, 1.0, 0.0)
|
||||
color1 *= Color(1.0, 1.0, 1.0, 0.0)
|
||||
|
||||
|
||||
## Закрашивание по умолчанию блоков ФС цветами из настроек.
|
||||
func set_def_colors():
|
||||
var color0: Color = ProjectSettings.get_setting('application/interfer/default_color0', Color(0.38, 0.47, 0.51, 1.0))
|
||||
var color1: Color = ProjectSettings.get_setting('application/interfer/default_color1', Color(0.39, 0.44, 0.50, 1.0))
|
||||
color0 *= Color(1.0, 1.0, 1.0, 0.0)
|
||||
color1 *= Color(1.0, 1.0, 1.0, 0.0)
|
||||
var col_arr: Array = [color0, color1]
|
||||
var col = false
|
||||
var col_arr: PackedColorArray = [color0, color1]
|
||||
for i in NUM_OF_RANGE:
|
||||
for j in NUM_OF_DIRECTIONS:
|
||||
fs_default_colors.append(col_arr[int(col)])
|
||||
col = not col
|
||||
col = not col
|
||||
fs_default_colors.append(col_arr[i & 1])
|
||||
i += 1
|
||||
set_band_colors(fs_default_colors)
|
||||
|
||||
@@ -1,25 +1,39 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://b5kjdyxuwsot5"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://s6xe8igevnv2" path="res://shaders/antenas.tres" id="1_newdt"]
|
||||
[ext_resource type="Shader" uid="uid://dhipoo0ju5ebg" path="res://shaders/antenas.gdshader" id="1_8cjpq"]
|
||||
[ext_resource type="Script" uid="uid://b85scuflwlqom" path="res://scenes/diagram/diagram.gd" id="2_8xjuy"]
|
||||
[ext_resource type="PackedScene" uid="uid://c73ahpv8uiuc7" path="res://scenes/diagram/sector.tscn" id="3_tgnog"]
|
||||
[ext_resource type="Shader" uid="uid://k36g8tww5yo" path="res://shaders/sector.gdshader" id="4_obn6s"]
|
||||
|
||||
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_2bft1"]
|
||||
size = Vector2(1600, 1200)
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_oqtdt"]
|
||||
shader = ExtResource("1_8cjpq")
|
||||
shader_parameter/grid_cells_angle = 4
|
||||
shader_parameter/grid_layers_radius = 7
|
||||
shader_parameter/alpha = 0.5
|
||||
shader_parameter/inner_radius = 0.36
|
||||
shader_parameter/outer_radius = 1.0
|
||||
shader_parameter/grid_line_width = 0.0025
|
||||
shader_parameter/rotation = 0.0
|
||||
shader_parameter/ffr = 0.15
|
||||
shader_parameter/sfr = 0.0
|
||||
shader_parameter/pfr = 0.025
|
||||
shader_parameter/ant_band_c = PackedColorArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
shader_parameter/ant_band_m = PackedInt32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lniyv"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_obn6s")
|
||||
|
||||
[node name="canvas" type="Sprite2D"]
|
||||
material = ExtResource("1_newdt")
|
||||
texture = SubResource("PlaceholderTexture2D_2bft1")
|
||||
centered = false
|
||||
[node name="canvas" type="ColorRect"]
|
||||
texture_filter = 1
|
||||
material = SubResource("ShaderMaterial_oqtdt")
|
||||
offset_right = 560.0
|
||||
offset_bottom = 560.0
|
||||
scale = Vector2(2, 2)
|
||||
script = ExtResource("2_8xjuy")
|
||||
SecZap = ExtResource("3_tgnog")
|
||||
|
||||
[node name="строб" parent="." instance=ExtResource("3_tgnog")]
|
||||
material = SubResource("ShaderMaterial_lniyv")
|
||||
position = Vector2(560, 560)
|
||||
scale = Vector2(1100, 1100)
|
||||
position = Vector2(280, 280)
|
||||
scale = Vector2(550, 550)
|
||||
|
||||
@@ -119,9 +119,8 @@ func on_interfer_new(ecm, table_index):
|
||||
$table.set_row_editable(i_row, false)
|
||||
$table.set_node_user_data(0, i_row, ecm)
|
||||
table_index[ecm.ispp] = i_row
|
||||
# Будем надеяться, что отложенные вызовы производятся в том же порядке
|
||||
$table.call_deferred('clear_rows_selected')
|
||||
$table.call_deferred('set_row_selected', i_row, true)
|
||||
$table.clear_rows_selected()
|
||||
$table.set_row_selected(i_row, true)
|
||||
if not interfer.auto_enabled:
|
||||
signaller.emit_signal('interfer_selected', ecm)
|
||||
|
||||
|
||||
@@ -30,15 +30,12 @@ func _ready() -> void:
|
||||
func _process(_delta: float) -> void:
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
set_frame($input_0, unit_prd_k.ems_g_sock_dic.ems_input_1)
|
||||
set_frame($input_1, unit_prd_k.ems_g_sock_dic.ems_input_2)
|
||||
set_frame($input_2, unit_prd_k.ems_g_sock_dic.ems_input_lit_1)
|
||||
set_frame($output_0, unit_prd_k.ems_g_sock_dic.ems_output_1)
|
||||
set_frame($output_1, unit_prd_k.ems_g_sock_dic.ems_output_2)
|
||||
set_frame($output_2, unit_prd_k.ems_g_sock_dic.ems_output_lit_1)
|
||||
|
||||
|
||||
func set_frame(node_frame: Node, val: int): node_frame.set_frame(val)
|
||||
$input_0.set_frame(unit_prd_k.ems_g_sock_dic.ems_input_1)
|
||||
$input_1.set_frame(unit_prd_k.ems_g_sock_dic.ems_input_2)
|
||||
$input_2.set_frame(unit_prd_k.ems_g_sock_dic.ems_input_lit_1)
|
||||
$output_0.set_frame(unit_prd_k.ems_g_sock_dic.ems_output_1)
|
||||
$output_1.set_frame(unit_prd_k.ems_g_sock_dic.ems_output_2)
|
||||
$output_2.set_frame(unit_prd_k.ems_g_sock_dic.ems_output_lit_1)
|
||||
|
||||
|
||||
func _on_start_control() -> void:
|
||||
@@ -60,12 +57,6 @@ func _enter_tree() -> void:
|
||||
_update_status_text(unit_prd_k.get_current_status())
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
#prd_k_module.cmd_array.append([unit_prd_k.CmdCode.WRITE_ISA, [constants_k.ADDR_UG_LITERA_1, ug_work_1, constants_k.ADDR_UG_LITERA_2, ug_work_2, constants_k.ADDR_UG_LITERA_3, ug_work_3]])
|
||||
|
||||
|
||||
static func temperature_fill(temperature_arr_node: Array, temperature_dic: Dictionary)->void:
|
||||
for i_node_temperature in temperature_arr_node:
|
||||
var temperature_meta: String = i_node_temperature.get_meta('um')
|
||||
@@ -112,31 +103,18 @@ static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifi
|
||||
|
||||
|
||||
func on_press_device(_name_davice: String) -> void:
|
||||
var nodes_y5: Array = get_tree().get_nodes_in_group('y-5')
|
||||
var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply')
|
||||
var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group')
|
||||
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
|
||||
var default_reset_array_node: Array = get_tree().get_nodes_in_group('default_reset')
|
||||
var module_fs_1: Node = $kasseta_fs_kd/ref_A2
|
||||
var module_fs_6: Node = $kasseta_fs_kd/ref_A4
|
||||
var dou_6: Node = $dou6_A7
|
||||
var module_fs_7: Node = $kasseta_fs_kd/ref_A7
|
||||
var dou_7: Node = $dou7_A8
|
||||
var control_data: Dictionary = unit_prd_k.get_control_results()
|
||||
var for_control_result: Dictionary = {
|
||||
'nodes_y5': nodes_y5,
|
||||
'node_ip_power_arr': node_ip_power_arr,
|
||||
'fs_nodes': fs_nodes,
|
||||
'power_amplifier': power_amplifier,
|
||||
'default_reset_array_node': default_reset_array_node,
|
||||
'module_fs_1': module_fs_1,
|
||||
'module_fs_6': module_fs_6,
|
||||
'dou_6': dou_6,
|
||||
'module_fs_7': module_fs_7,
|
||||
'dou_7': dou_7,
|
||||
}
|
||||
for_control_result.merge(control_data, true)
|
||||
on_control_result(for_control_result)
|
||||
control_data['nodes_y5'] = get_tree().get_nodes_in_group('y-5')
|
||||
control_data['node_ip_power_arr'] = get_tree().get_nodes_in_group('power_supply')
|
||||
control_data['fs_nodes'] = get_tree().get_nodes_in_group('fs_group')
|
||||
control_data['power_amplifier'] = get_tree().get_nodes_in_group('power_amplifier')
|
||||
control_data['default_reset_array_node'] = get_tree().get_nodes_in_group('default_reset')
|
||||
control_data['module_fs_1'] = $kasseta_fs_kd/ref_A2
|
||||
control_data['module_fs_6'] = $kasseta_fs_kd/ref_A4
|
||||
control_data['dou_6'] = $dou6_A7
|
||||
control_data['module_fs_7'] = $kasseta_fs_kd/ref_A7
|
||||
control_data['dou_7'] = $dou7_A8
|
||||
on_control_result(control_data)
|
||||
|
||||
|
||||
static func on_control_result(for_result_dic: Dictionary) -> void:
|
||||
@@ -169,6 +147,7 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
|
||||
set_default_state(for_result_dic.default_reset_array_node)
|
||||
set_default_state(for_result_dic.power_amplifier)
|
||||
return
|
||||
|
||||
var result_dic: Dictionary = for_result_dic.result_dic
|
||||
for f in for_result_dic.fs_nodes:
|
||||
var fs_meta: String = f.get_meta('fs')
|
||||
|
||||
@@ -30,13 +30,10 @@ func _ready() -> void:
|
||||
func _process(_delta: float) -> void:
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
set_frame($input_0, unit_prd_n.ems_g_sock_dic.ems_input_1)
|
||||
set_frame($input_1, unit_prd_n.ems_g_sock_dic.ems_input_2)
|
||||
set_frame($output_0, unit_prd_n.ems_g_sock_dic.ems_output_1)
|
||||
set_frame($output_1, unit_prd_n.ems_g_sock_dic.ems_output_2)
|
||||
|
||||
|
||||
func set_frame(node_frame: Node, val: int): node_frame.set_frame(val)
|
||||
$input_0.set_frame(unit_prd_n.ems_g_sock_dic.ems_input_1)
|
||||
$input_1.set_frame(unit_prd_n.ems_g_sock_dic.ems_input_2)
|
||||
$output_0.set_frame(unit_prd_n.ems_g_sock_dic.ems_output_1)
|
||||
$output_1.set_frame(unit_prd_n.ems_g_sock_dic.ems_output_2)
|
||||
|
||||
|
||||
func _on_start_control() -> void:
|
||||
@@ -60,12 +57,6 @@ func _enter_tree() -> void:
|
||||
_update_status_text(unit_prd_n.get_current_status())
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
#prd_n_module.cmd_array.append([unit_prd_n.CmdCode.WRITE_ISA, [constants_n.ADDR_UG_LITERA_1, ug_work_1, constants_n.ADDR_UG_LITERA_2, ug_work_2]])
|
||||
|
||||
|
||||
static func temperature_fill(temperature_arr_node: Array, temperature_dic: Dictionary)->void:
|
||||
for i_node_temperature in temperature_arr_node:
|
||||
var temperature_meta: String = i_node_temperature.get_meta('um')
|
||||
|
||||
@@ -30,13 +30,10 @@ func _ready() -> void:
|
||||
func _process(_delta: float) -> void:
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
set_frame($input_0, unit_prd_v.ems_g_sock_dic.ems_input_1)
|
||||
set_frame($input_1, unit_prd_v.ems_g_sock_dic.ems_input_2)
|
||||
set_frame($output_0, unit_prd_v.ems_g_sock_dic.ems_output_1)
|
||||
set_frame($output_1, unit_prd_v.ems_g_sock_dic.ems_output_2)
|
||||
|
||||
|
||||
func set_frame(node_frame: Node, val: int): node_frame.set_frame(val)
|
||||
$input_0.set_frame(unit_prd_v.ems_g_sock_dic.ems_input_1)
|
||||
$input_1.set_frame(unit_prd_v.ems_g_sock_dic.ems_input_2)
|
||||
$output_0.set_frame(unit_prd_v.ems_g_sock_dic.ems_output_1)
|
||||
$output_1.set_frame(unit_prd_v.ems_g_sock_dic.ems_output_2)
|
||||
|
||||
|
||||
func _on_start_control() -> void:
|
||||
@@ -60,11 +57,6 @@ func _enter_tree() -> void:
|
||||
_update_status_text(unit_prd_v.get_current_status())
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
static func temperature_fill(temperature_arr_node: Array, temperature_dic: Dictionary)->void:
|
||||
for i_node_temperature in temperature_arr_node:
|
||||
var temperature_meta: String = i_node_temperature.get_meta('um')
|
||||
|
||||
@@ -834,5 +834,4 @@ func draw_ship_radius() -> void:
|
||||
var radius_point_world = Vector2(ship_world_pos.x + radius_world, ship_world_pos.y)
|
||||
var radius_point_screen = world_to_screen(radius_point_world)
|
||||
var radius_screen = ship_screen_pos.distance_to(radius_point_screen)
|
||||
#draw_arc(ship_screen_pos, radius_screen, 0, TAU, 64, Color.ORANGE, 2.0) # отрисовка контура
|
||||
draw_circle(ship_screen_pos, radius_screen, Color.ORANGE_RED * Color(1, 1, 1, 0.1)) # отрисовка заливки
|
||||
|
||||
@@ -3,5 +3,7 @@ extends AnimatedSprite2D
|
||||
## Изменяет состояние значка "прибор на связи"
|
||||
func set_val(val: bool):
|
||||
set_frame(val)
|
||||
if val: modulate = Color(0.3, 1.0, 0.3, 1)
|
||||
else: modulate = Color(0.5, 0.5, 0.5, 1)
|
||||
if val:
|
||||
modulate = Color(0.3, 1.0, 0.3, 1)
|
||||
else:
|
||||
modulate = Color(0.5, 0.5, 0.5, 1)
|
||||
|
||||
11
scenes/контроль/panel_container.gd
Normal file
11
scenes/контроль/panel_container.gd
Normal file
@@ -0,0 +1,11 @@
|
||||
extends PanelContainer
|
||||
|
||||
## Изменяет состояние значка "прибор на связи"
|
||||
func set_val(val: bool):
|
||||
$connect_pribor.set_frame(val)
|
||||
if val:
|
||||
$connect_pribor.modulate = Color(0.3, 1.0, 0.3, 1) # зелёный
|
||||
set_tooltip_text("Есть связь")
|
||||
else:
|
||||
$connect_pribor.modulate = modulate # изначальный
|
||||
set_tooltip_text("Нет связи")
|
||||
1
scenes/контроль/panel_container.gd.uid
Normal file
1
scenes/контроль/panel_container.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://j16hg3u2uvu5
|
||||
@@ -9,4 +9,4 @@ func _ready() -> void:
|
||||
|
||||
|
||||
func on_line_changed(unit_instance: unit.Unit):
|
||||
$connect_pribor.set_val(unit_instance.online)
|
||||
$panel_pribor.set_val(unit_instance.online)
|
||||
|
||||
@@ -10,6 +10,8 @@ func _ready():
|
||||
focus_mode = Control.FOCUS_ALL
|
||||
connect('focus_entered', _on_focus_entered)
|
||||
connect('focus_exited', _on_focus_exited)
|
||||
ProjectSettings.connect("settings_changed", Callable(self, "_on_settings_changed"))
|
||||
_on_settings_changed()
|
||||
|
||||
|
||||
func _enter_tree() -> void:
|
||||
@@ -47,8 +49,17 @@ func enter_press():
|
||||
|
||||
func _on_settings_changed():
|
||||
if not is_inside_tree(): return
|
||||
var white_color = ProjectSettings.get_setting('Схема прибора. Белый цвет', Color.LIGHT_GRAY)
|
||||
var black_color = ProjectSettings.get_setting('Схема прибора. Чёрный цвет', Color.BLACK)
|
||||
|
||||
var white_color = ProjectSettings.get_setting('application/config/%s' % 'Цвет фона схемы', Color.DIM_GRAY)
|
||||
var json_col_w = ProjectSettings.get_setting('application/config/%s' % 'Цвет фона схемы', '[0.0, 0.0, 0.0, 0.0]')
|
||||
var arr_col_w = JSON.parse_string(json_col_w)
|
||||
white_color = Color(arr_col_w[0], arr_col_w[1], arr_col_w[2], arr_col_w[3]) if arr_col_w else Color.DIM_GRAY
|
||||
|
||||
var black_color = ProjectSettings.get_setting('application/config/%s' % 'Цвет схемы', Color.WHITE_SMOKE)
|
||||
var json_col_b = ProjectSettings.get_setting('application/config/%s' % 'Цвет схемы', '[1.0, 1.0, 1.0, 1.0]')
|
||||
var arr_col_b = JSON.parse_string(json_col_b)
|
||||
black_color = Color(arr_col_b[0], arr_col_b[1], arr_col_b[2], arr_col_b[3]) if arr_col_b else Color.WHITE_SMOKE
|
||||
|
||||
$pic_functional.material.set('shader_parameter/white', white_color)
|
||||
$pic_functional.material.set('shader_parameter/black', black_color)
|
||||
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
[gd_scene load_steps=33 format=3 uid="uid://lwmw4egynmd1"]
|
||||
[gd_scene load_steps=34 format=3 uid="uid://lwmw4egynmd1"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bar8k5qef7kch" path="res://data/УФ.png" id="2_0nvm1"]
|
||||
[ext_resource type="Script" uid="uid://q3gmpsqspjfp" path="res://scenes/контроль/внешний.gd" id="2_8r80x"]
|
||||
[ext_resource type="Texture2D" uid="uid://bb80aigvv648i" path="res://data/кнопка-внешние-0.png" id="2_oysma"]
|
||||
[ext_resource type="Script" uid="uid://bj4nndrurbunl" path="res://scenes/контроль/кнопка-прибора.gd" id="3_4pt7j"]
|
||||
[ext_resource type="Texture2D" uid="uid://blx6c1o1nogks" path="res://data/связь.png" id="3_8tygn"]
|
||||
[ext_resource type="Texture2D" uid="uid://dkqlvd750pplc" path="res://data/СПТ.png" id="3_hhadv"]
|
||||
[ext_resource type="Texture2D" uid="uid://b0o8jhb5jbrev" path="res://data/рамка-1.png" id="4_rasbe"]
|
||||
[ext_resource type="Texture2D" uid="uid://bdlbqs88bki8x" path="res://data/connect-a.png" id="5_c621m"]
|
||||
[ext_resource type="Texture2D" uid="uid://d2jxmtd6n5jd1" path="res://data/Щ3.png" id="5_kvnex"]
|
||||
[ext_resource type="Texture2D" uid="uid://bos68thpqqvn" path="res://data/ПРД.png" id="6_i1yfn"]
|
||||
[ext_resource type="Texture2D" uid="uid://c6nve6f8sfyj2" path="res://data/состояние-исправности-0.png" id="7_6j01w"]
|
||||
[ext_resource type="Texture2D" uid="uid://u3tnejvpm8it" path="res://data/disconnect-a.png" id="8_gs2be"]
|
||||
[ext_resource type="Texture2D" uid="uid://dnreyfh3cd1k2" path="res://data/состояние-исправности-1.png" id="8_isjua"]
|
||||
[ext_resource type="Shader" uid="uid://83fx15q1xlid" path="res://shaders/two-color.gdshader" id="9_71ec4"]
|
||||
[ext_resource type="Texture2D" uid="uid://b4isaggma6q3" path="res://data/Грани22.png" id="9_iqgf5"]
|
||||
@@ -25,6 +24,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://c3cyog3gy24ft" path="res://data/У-ЭП.png" id="16_gjf0t"]
|
||||
[ext_resource type="Script" uid="uid://xjs7owe2iexn" path="res://scenes/контроль/control_prd.gd" id="18_lbx5w"]
|
||||
[ext_resource type="Texture2D" uid="uid://b2vf7en1jj8dv" path="res://data/У-РЭП-РПД-В.png" id="20_l5wui"]
|
||||
[ext_resource type="Script" uid="uid://j16hg3u2uvu5" path="res://scenes/контроль/panel_container.gd" id="21_l5wui"]
|
||||
[ext_resource type="Texture2D" uid="uid://cllxcfa130vqu" path="res://data/УА-РЭП.png" id="22_1s34a"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_iqgf5"]
|
||||
@@ -88,7 +88,7 @@ func _ready():
|
||||
var header_text = PRIBORS_RES[k][1]
|
||||
pribor_node.set_button_group(group)
|
||||
pribor_node.connect('button_down', Callable(self, 'on_pribor_press').bind(pribor_path, header_text, pribor_node))
|
||||
var conn_node = pribor_node.get_node('connect_pribor')
|
||||
var conn_node = pribor_node.get_node('panel_pribor')
|
||||
var unit_names = pribor_node.get_meta('unit_name', [])
|
||||
var pribor_proc = pribor_node.get_meta('online_proc', '')
|
||||
if pribor_proc == '':
|
||||
@@ -114,7 +114,7 @@ func _ready():
|
||||
for pribor_node in get_tree().get_nodes_in_group('pribor_pics'):
|
||||
var unit_name = pribor_node.get_meta('unit_name')
|
||||
var unit_instance: = network.get_unit_instance(unit_name)
|
||||
var conn_node: = pribor_node.get_node('connect_pribor')
|
||||
var conn_node: = pribor_node.get_node('panel_pribor')
|
||||
unit_instance.connect('line_changed', on_line_changed.bind(conn_node, unit_name))
|
||||
|
||||
|
||||
@@ -255,14 +255,17 @@ func _on_gui_input(event: InputEvent) -> void:
|
||||
$frame_button/chk_show_functional.disabled = true
|
||||
"
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4plr2"]
|
||||
bg_color = Color(0.176471, 0.176471, 0.176471, 0)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_foasq"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("8_gs2be")
|
||||
"texture": ExtResource("3_8tygn")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("5_c621m")
|
||||
"texture": ExtResource("3_8tygn")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"default",
|
||||
@@ -271,8 +274,8 @@ animations = [{
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_71ec4"]
|
||||
shader = ExtResource("9_71ec4")
|
||||
shader_parameter/white = Vector3(0, 0, 0)
|
||||
shader_parameter/black = Vector3(1, 1, 1)
|
||||
shader_parameter/white = Vector3(0.14, 0.13, 0.13)
|
||||
shader_parameter/black = Vector3(0.95, 0.55, 0.05)
|
||||
shader_parameter/gamma = 2.0
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6hcgs"]
|
||||
@@ -336,12 +339,24 @@ text = "КАПС РПБ"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="capsrpb"]
|
||||
[node name="panel_pribor" type="PanelContainer" parent="capsrpb"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 16.0
|
||||
offset_top = -36.0
|
||||
offset_right = 107.0
|
||||
offset_bottom = 55.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="capsrpb/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(56, -4)
|
||||
scale = Vector2(2.6, 2.6)
|
||||
position = Vector2(45.7142, 45.7143)
|
||||
scale = Vector2(2.113, 2.1)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
script = ExtResource("11_u7tym")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="5p28" type="TextureRect" parent="." groups=["pribor_pics"]]
|
||||
editor_description = "Кнопка для отображения внешних соединений."
|
||||
@@ -370,13 +385,24 @@ text = "5П28"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="5p28"]
|
||||
[node name="panel_pribor" type="PanelContainer" parent="5p28"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 16.0
|
||||
offset_top = -36.0
|
||||
offset_right = 107.0
|
||||
offset_bottom = 55.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="5p28/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(52, -4)
|
||||
scale = Vector2(2.6, 2.6)
|
||||
position = Vector2(45.7142, 45.7143)
|
||||
scale = Vector2(2.113, 2.1)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="akng" type="TextureRect" parent="." groups=["pribor_pics"]]
|
||||
editor_description = "Кнопка для отображения внешних соединений."
|
||||
@@ -405,13 +431,24 @@ text = "АКНГ"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="akng"]
|
||||
[node name="panel_pribor" type="PanelContainer" parent="akng"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 16.0
|
||||
offset_top = -36.0
|
||||
offset_right = 107.0
|
||||
offset_bottom = 55.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="akng/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(47.9999, -4)
|
||||
scale = Vector2(2.6, 2.6)
|
||||
position = Vector2(45.7142, 45.7143)
|
||||
scale = Vector2(2.113, 2.1)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="maps" type="TextureRect" parent="." groups=["pribor_pics"]]
|
||||
editor_description = "Кнопка для отображения внешних соединений."
|
||||
@@ -440,13 +477,24 @@ text = "Карты"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="maps"]
|
||||
[node name="panel_pribor" type="PanelContainer" parent="maps"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 16.0
|
||||
offset_top = -36.0
|
||||
offset_right = 107.0
|
||||
offset_bottom = 55.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="maps/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(47.9999, -4)
|
||||
scale = Vector2(2.6, 2.6)
|
||||
position = Vector2(45.7142, 45.7143)
|
||||
scale = Vector2(2.113, 2.1)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="trassa" type="TextureRect" parent="." groups=["pribor_pics"]]
|
||||
editor_description = "Кнопка для отображения внешних соединений."
|
||||
@@ -475,13 +523,24 @@ text = "Трасса"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="trassa"]
|
||||
[node name="panel_pribor" type="PanelContainer" parent="trassa"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 16.0
|
||||
offset_top = -36.0
|
||||
offset_right = 107.0
|
||||
offset_bottom = 55.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="trassa/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(47.9999, -4)
|
||||
scale = Vector2(2.6, 2.6)
|
||||
position = Vector2(45.7142, 45.7143)
|
||||
scale = Vector2(2.113, 2.1)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="pribor_prd_n_1" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
@@ -527,14 +586,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_n_1"]
|
||||
light_mask = 3
|
||||
position = Vector2(35, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="control_progress" type="TextureProgressBar" parent="pribor_prd_n_1"]
|
||||
visible = false
|
||||
layout_mode = 0
|
||||
@@ -570,6 +621,25 @@ offset_bottom = 830.0
|
||||
scale = Vector2(0.97094, 0.97094)
|
||||
texture = ExtResource("9_qe1go")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_n_1"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 27.0
|
||||
offset_top = -19.0
|
||||
offset_right = 50.0
|
||||
offset_bottom = 5.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_n_1/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_uf" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -613,14 +683,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_uf"]
|
||||
light_mask = 3
|
||||
position = Vector2(52, -6)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="pic_functional" type="TextureRect" parent="pribor_uf"]
|
||||
visible = false
|
||||
z_index = 1
|
||||
@@ -656,6 +718,25 @@ texture_progress = ExtResource("10_lbx5w")
|
||||
tint_under = Color(1, 1, 1, 0.419608)
|
||||
tint_progress = Color(0.890196, 0.486275, 0.196078, 1)
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_uf"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 44.0
|
||||
offset_top = -22.0
|
||||
offset_right = 67.0
|
||||
offset_bottom = 2.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_uf/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_rtr" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -710,14 +791,6 @@ text = "РТР"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_rtr"]
|
||||
light_mask = 3
|
||||
position = Vector2(53, -15)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="pic_functional" type="TextureRect" parent="pribor_rtr"]
|
||||
visible = false
|
||||
z_index = 1
|
||||
@@ -730,6 +803,25 @@ offset_bottom = 595.0
|
||||
scale = Vector2(0.792688, 0.792688)
|
||||
texture = ExtResource("13_32yvq")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_rtr"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 44.0
|
||||
offset_top = -26.0
|
||||
offset_right = 67.0
|
||||
offset_bottom = -2.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_rtr/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_afsp_1" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -788,14 +880,6 @@ text = "АФСП 1"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_afsp_1"]
|
||||
light_mask = 3
|
||||
position = Vector2(415, -40)
|
||||
scale = Vector2(3, 3)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="pic_functional" type="TextureRect" parent="pribor_afsp_1"]
|
||||
visible = false
|
||||
z_index = 1
|
||||
@@ -808,6 +892,25 @@ offset_bottom = 93.9999
|
||||
scale = Vector2(3.96323, 3.96323)
|
||||
texture = ExtResource("13_32yvq")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_afsp_1"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 375.0
|
||||
offset_top = -105.0
|
||||
offset_right = 490.0
|
||||
offset_bottom = 9.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_afsp_1/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(57.1431, 57.1429)
|
||||
scale = Vector2(3, 2.981)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_afsp_2" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -867,14 +970,6 @@ text = "АФСП 2"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_afsp_2"]
|
||||
light_mask = 3
|
||||
position = Vector2(415, -40)
|
||||
scale = Vector2(3, 3)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="pic_functional" type="TextureRect" parent="pribor_afsp_2"]
|
||||
visible = false
|
||||
z_index = 1
|
||||
@@ -887,6 +982,25 @@ offset_bottom = 89.0001
|
||||
scale = Vector2(3.96409, 4.54663)
|
||||
texture = ExtResource("13_32yvq")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_afsp_2"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 375.0
|
||||
offset_top = -105.0
|
||||
offset_right = 490.0
|
||||
offset_bottom = 9.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_afsp_2/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(57.1431, 57.1429)
|
||||
scale = Vector2(3, 2.981)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_uyep" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -930,14 +1044,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_uyep"]
|
||||
light_mask = 3
|
||||
position = Vector2(45, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.872305
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="pic_functional" type="TextureRect" parent="pribor_uyep"]
|
||||
visible = false
|
||||
z_index = 1
|
||||
@@ -950,6 +1056,25 @@ offset_bottom = 764.0
|
||||
scale = Vector2(0.736875, 0.814493)
|
||||
texture = ExtResource("16_gjf0t")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_uyep"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 37.0
|
||||
offset_top = -22.0
|
||||
offset_right = 60.0
|
||||
offset_bottom = 2.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_uyep/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_v_2" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -994,14 +1119,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_v_2"]
|
||||
light_mask = 3
|
||||
position = Vector2(37, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="control_progress" type="TextureProgressBar" parent="pribor_prd_v_2"]
|
||||
visible = false
|
||||
layout_mode = 0
|
||||
@@ -1037,6 +1154,25 @@ offset_bottom = 328.0
|
||||
scale = Vector2(0.977411, 0.977411)
|
||||
texture = ExtResource("20_l5wui")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_v_2"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 29.0
|
||||
offset_top = -21.0
|
||||
offset_right = 52.0
|
||||
offset_bottom = 3.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_v_2/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_n_2" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -1083,14 +1219,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_n_2"]
|
||||
light_mask = 3
|
||||
position = Vector2(37, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="pic_functional" type="TextureRect" parent="pribor_prd_n_2"]
|
||||
visible = false
|
||||
z_index = 1
|
||||
@@ -1126,6 +1254,25 @@ texture_progress = ExtResource("10_lbx5w")
|
||||
tint_under = Color(1, 1, 1, 0.419608)
|
||||
tint_progress = Color(0.890196, 0.486275, 0.196078, 1)
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_n_2"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 29.0
|
||||
offset_top = -21.0
|
||||
offset_right = 52.0
|
||||
offset_bottom = 3.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_n_2/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_k_2" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -1170,14 +1317,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_k_2"]
|
||||
light_mask = 3
|
||||
position = Vector2(37, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="pic_functional" type="TextureRect" parent="pribor_prd_k_2"]
|
||||
visible = false
|
||||
z_index = 1
|
||||
@@ -1213,6 +1352,25 @@ texture_progress = ExtResource("10_lbx5w")
|
||||
tint_under = Color(1, 1, 1, 0.419608)
|
||||
tint_progress = Color(0.890196, 0.486275, 0.196078, 1)
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_k_2"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 29.0
|
||||
offset_top = -21.0
|
||||
offset_right = 52.0
|
||||
offset_bottom = 3.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_k_2/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_v_3" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -1257,14 +1415,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_v_3"]
|
||||
light_mask = 3
|
||||
position = Vector2(35, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="control_progress" type="TextureProgressBar" parent="pribor_prd_v_3"]
|
||||
visible = false
|
||||
layout_mode = 0
|
||||
@@ -1300,6 +1450,25 @@ offset_bottom = 207.0
|
||||
scale = Vector2(0.975409, 0.975409)
|
||||
texture = ExtResource("20_l5wui")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_v_3"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 27.0
|
||||
offset_top = -20.0
|
||||
offset_right = 50.0
|
||||
offset_bottom = 4.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_v_3/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_n_3" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -1344,14 +1513,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_n_3"]
|
||||
light_mask = 3
|
||||
position = Vector2(33, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="control_progress" type="TextureProgressBar" parent="pribor_prd_n_3"]
|
||||
visible = false
|
||||
layout_mode = 0
|
||||
@@ -1387,6 +1548,25 @@ offset_bottom = 219.0
|
||||
scale = Vector2(0.969291, 0.969291)
|
||||
texture = ExtResource("9_qe1go")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_n_3"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 25.0
|
||||
offset_top = -21.0
|
||||
offset_right = 48.0
|
||||
offset_bottom = 3.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_n_3/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_k_3" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -1431,14 +1611,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_k_3"]
|
||||
light_mask = 3
|
||||
position = Vector2(35, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="control_progress" type="TextureProgressBar" parent="pribor_prd_k_3"]
|
||||
visible = false
|
||||
layout_mode = 0
|
||||
@@ -1474,6 +1646,25 @@ offset_bottom = 361.0
|
||||
scale = Vector2(0.882165, 0.896739)
|
||||
texture = ExtResource("16_32yvq")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_k_3"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 27.0
|
||||
offset_top = -20.0
|
||||
offset_right = 50.0
|
||||
offset_bottom = 4.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_k_3/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_v_1" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -1518,14 +1709,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_v_1"]
|
||||
light_mask = 3
|
||||
position = Vector2(34, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="pic_functional" type="TextureRect" parent="pribor_prd_v_1"]
|
||||
visible = false
|
||||
z_index = 1
|
||||
@@ -1561,6 +1744,24 @@ texture_progress = ExtResource("10_lbx5w")
|
||||
tint_under = Color(1, 1, 1, 0.419608)
|
||||
tint_progress = Color(0.890196, 0.486275, 0.196078, 1)
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_v_1"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 26.0
|
||||
offset_top = -20.0
|
||||
offset_right = 42.0
|
||||
offset_bottom = -4.0
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_v_1/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(8, 8)
|
||||
scale = Vector2(0.4, 0.4)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_k_1" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -1605,14 +1806,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_k_1"]
|
||||
light_mask = 3
|
||||
position = Vector2(35, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="control_progress" type="TextureProgressBar" parent="pribor_prd_k_1"]
|
||||
visible = false
|
||||
layout_mode = 0
|
||||
@@ -1648,6 +1841,25 @@ offset_bottom = 973.0
|
||||
scale = Vector2(0.883479, 0.883479)
|
||||
texture = ExtResource("16_32yvq")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_k_1"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 27.0
|
||||
offset_top = -21.0
|
||||
offset_right = 50.0
|
||||
offset_bottom = 3.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_k_1/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_v_4" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -1691,14 +1903,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_v_4"]
|
||||
light_mask = 3
|
||||
position = Vector2(41, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="control_progress" type="TextureProgressBar" parent="pribor_prd_v_4"]
|
||||
visible = false
|
||||
layout_mode = 0
|
||||
@@ -1734,6 +1938,25 @@ offset_bottom = 664.0
|
||||
scale = Vector2(0.976707, 0.976707)
|
||||
texture = ExtResource("20_l5wui")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_v_4"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 33.0
|
||||
offset_top = -21.0
|
||||
offset_right = 56.0
|
||||
offset_bottom = 3.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_v_4/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_n_4" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -1777,14 +2000,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_n_4"]
|
||||
light_mask = 3
|
||||
position = Vector2(40, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="control_progress" type="TextureProgressBar" parent="pribor_prd_n_4"]
|
||||
visible = false
|
||||
layout_mode = 0
|
||||
@@ -1820,6 +2035,25 @@ offset_bottom = 336.0
|
||||
scale = Vector2(0.968111, 0.968111)
|
||||
texture = ExtResource("9_qe1go")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_n_4"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 32.0
|
||||
offset_top = -20.0
|
||||
offset_right = 55.0
|
||||
offset_bottom = 4.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_n_4/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="pribor_prd_k_4" type="TextureButton" parent="." groups=["pribor_buttons"]]
|
||||
editor_description = "Кнопка для выбора прибора."
|
||||
layout_mode = 0
|
||||
@@ -1863,14 +2097,6 @@ patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_k_4"]
|
||||
light_mask = 3
|
||||
position = Vector2(39, -10)
|
||||
scale = Vector2(0.625, 0.625)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="control_progress" type="TextureProgressBar" parent="pribor_prd_k_4"]
|
||||
visible = false
|
||||
layout_mode = 0
|
||||
@@ -1906,6 +2132,25 @@ offset_bottom = 648.0
|
||||
scale = Vector2(0.879295, 0.879295)
|
||||
texture = ExtResource("16_32yvq")
|
||||
|
||||
[node name="panel_pribor" type="PanelContainer" parent="pribor_prd_k_4"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 0
|
||||
offset_left = 31.0
|
||||
offset_top = -20.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 4.0
|
||||
scale = Vector2(0.7, 0.7)
|
||||
tooltip_text = "Нет связи"
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4plr2")
|
||||
script = ExtResource("21_l5wui")
|
||||
|
||||
[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_prd_k_4/panel_pribor"]
|
||||
light_mask = 3
|
||||
position = Vector2(11.4285, 12.8571)
|
||||
scale = Vector2(0.6, 0.596)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
|
||||
[node name="txr_legend0" type="TextureRect" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 316.0
|
||||
@@ -1998,17 +2243,17 @@ alignment = 1
|
||||
|
||||
[node name="connect_legend0" type="AnimatedSprite2D" parent="."]
|
||||
light_mask = 3
|
||||
position = Vector2(1219, 1151)
|
||||
position = Vector2(1312, 1151)
|
||||
scale = Vector2(0.65, 0.65)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame_progress = 0.72355
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="Label" type="Label" parent="connect_legend0"]
|
||||
offset_left = 36.9231
|
||||
offset_top = -15.3846
|
||||
offset_right = 103.923
|
||||
offset_bottom = 3.61538
|
||||
offset_left = 27.6924
|
||||
offset_top = -16.923
|
||||
offset_right = 94.6923
|
||||
offset_bottom = 2.07697
|
||||
scale = Vector2(1.54, 1.54)
|
||||
text = "Отключен"
|
||||
metadata/_edit_use_anchors_ = true
|
||||
@@ -2016,17 +2261,17 @@ metadata/_edit_use_anchors_ = true
|
||||
[node name="connect_legend1" type="AnimatedSprite2D" parent="."]
|
||||
self_modulate = Color(0, 1, 0, 1)
|
||||
light_mask = 3
|
||||
position = Vector2(975, 1152)
|
||||
position = Vector2(1072, 1151)
|
||||
scale = Vector2(0.65, 0.65)
|
||||
sprite_frames = SubResource("SpriteFrames_foasq")
|
||||
frame = 1
|
||||
script = ExtResource("11_u7tym")
|
||||
|
||||
[node name="Label" type="Label" parent="connect_legend1"]
|
||||
offset_left = 36.9231
|
||||
offset_top = -13.8462
|
||||
offset_right = 99.9231
|
||||
offset_bottom = 5.15385
|
||||
offset_left = 27.6923
|
||||
offset_top = -16.9231
|
||||
offset_right = 90.6923
|
||||
offset_bottom = 2.0769
|
||||
scale = Vector2(1.54, 1.54)
|
||||
text = "На связи"
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
@@ -64,8 +64,11 @@ const SETTING_TABLE = [
|
||||
['Включить работу по своим целям', TableEdit, TableToggle, 'Разрешает работу в секторе со своей целью'],
|
||||
['Список своих протоколов', TableEdit, TableEdit, 'Список протоколов целей, по которым запрещено работать' ],
|
||||
['Цвет кнопки \"Подавление\"', TableEdit, TableColorPick, 'Цвет кнопки. Введено по требованию ПЗ' ],
|
||||
['Коэффициент ширины полосы излучения', TableEdit, TableEdit, 'Изменение ширины полосы излучения помехи в зависимости от цели'],
|
||||
['Время повторной отправки помехи', TableEdit, TableEdit, 'Время повторной отправки помехи, с'], ]
|
||||
['Цвет кнопки \"Подавление\"', TableEdit, TableColorPick, 'Цвет кнопки. Введено по требованию ПЗ' ],
|
||||
['Цвет фона схемы', TableEdit, TableColorPick, 'Схема прибора Э2. Изменение цвет фона'],
|
||||
['Цвет схемы', TableEdit, TableColorPick, 'Схема прибора Э2. Изменение цвет схемы '],
|
||||
['Коэффициент ширины полосы излучения', TableEdit, TableEdit, 'Изменение ширины полосы излучения помехи в зависимости от цели'] ]
|
||||
|
||||
|
||||
## TODO: Придумать как избавиться от индексов
|
||||
## Индексы строк таблицы.
|
||||
@@ -78,6 +81,8 @@ const DEBAG_CONTROL = 21 ## Строка - Отладка контроля
|
||||
const COMMIT = 22 ## Строка - Версия УАРЭП
|
||||
const GOS_BTN = 52 ## Разрешить работу по своим целям
|
||||
const COLOR_BTN_ACT = 54 ## Цвет кнопки "Подавление"
|
||||
const COLOR_WHITE = 55 ## Цвет фона схемы
|
||||
const COLOR_BLACK = 56 ## Цвет схемы
|
||||
|
||||
|
||||
var name_to_line_index: = {} ## Для преобразования названия параметра в номер строки
|
||||
@@ -251,6 +256,37 @@ func button_settings():
|
||||
var arr_col = JSON.parse_string(json_col)
|
||||
color_btn_act.color = Color(arr_col[0], arr_col[1], arr_col[2], arr_col[3]) if arr_col else Color.WHITE
|
||||
color_btn_act.text = JSON.stringify(arr_col)
|
||||
var color_white = $scroll_set/table.get_node2(1, COLOR_WHITE)
|
||||
color_white.connect('popup_closed', on_color_closed_w.bind(color_white))
|
||||
var json_col_w = ProjectSettings.get_setting('application/config/%s' % 'Цвет фона схемы', '[0.0, 0.0, 0.0, 0.0]')
|
||||
var arr_col_w = JSON.parse_string(json_col_w)
|
||||
color_white.color = Color(arr_col_w[0], arr_col_w[1], arr_col_w[2], arr_col_w[3]) if arr_col_w else Color.DIM_GRAY
|
||||
color_white.text = JSON.stringify(arr_col_w)
|
||||
var color_black = $scroll_set/table.get_node2(1, COLOR_BLACK)
|
||||
color_black.connect('popup_closed', on_color_closed_b.bind(color_black))
|
||||
var json_col_b = ProjectSettings.get_setting('application/config/%s' % 'Цвет схемы', '[1.0, 1.0, 1.0, 1.0]')
|
||||
var arr_col_b = JSON.parse_string(json_col_b)
|
||||
color_black.color = Color(arr_col_b[0], arr_col_b[1], arr_col_b[2], arr_col_b[3]) if arr_col_b else Color.WHITE_SMOKE
|
||||
color_black.text = JSON.stringify(arr_col_b)
|
||||
|
||||
|
||||
func _update_theme_colors():
|
||||
var color_white = $scroll_set/table.get_node2(1, COLOR_WHITE)
|
||||
var color_black = $scroll_set/table.get_node2(1, COLOR_BLACK)
|
||||
on_color_closed_w(color_white)
|
||||
on_color_closed_b(color_black)
|
||||
|
||||
|
||||
func on_color_closed_w(color_white: ColorPickerButton):
|
||||
var col_w = [color_white.color.r, color_white.color.g, color_white.color.b, color_white.color.a]
|
||||
color_white.text = JSON.stringify(col_w)
|
||||
ProjectSettings.set_setting('application/config/%s' % 'Цвет фона схемы', color_white.text)
|
||||
|
||||
|
||||
func on_color_closed_b(color_black: ColorPickerButton):
|
||||
var col_b = [color_black.color.r, color_black.color.g, color_black.color.b, color_black.color.a]
|
||||
color_black.text = JSON.stringify(col_b)
|
||||
ProjectSettings.set_setting('application/config/%s' % 'Цвет схемы', color_black.text)
|
||||
|
||||
|
||||
func on_color_closed(color_btn_act: ColorPickerButton):
|
||||
|
||||
@@ -467,7 +467,7 @@ func get_strob_band(pos: Vector2, prev: float) -> float:
|
||||
|
||||
## Устанавливает центр строба по частоте и направлению.
|
||||
func set_strob(pos: Vector2) -> void:
|
||||
var radp: Vector2 = tools.map_dec_to_rad(radius_center, pos)
|
||||
var radp: Vector2 = tools.map_dec_to_rad(radius_center, pos / 2.0)
|
||||
if radp.y < $canvas.get_radius_outter():
|
||||
$canvas.set_strob_dir(radp.x)
|
||||
$canvas.set_strob_radius(radp.y)
|
||||
|
||||
@@ -74,18 +74,24 @@ strob_min_band = 0.1
|
||||
strob_min_width = 5.0
|
||||
metadata/_edit_vertical_guides_ = []
|
||||
|
||||
[node name="btn_view" type="CheckBox" parent="."]
|
||||
[node name="canvas" parent="." instance=ExtResource("11_b6su4")]
|
||||
layout_mode = 0
|
||||
offset_left = 835.0
|
||||
offset_top = 5.0
|
||||
offset_right = 994.0
|
||||
offset_bottom = 32.0
|
||||
offset_left = 280.0
|
||||
offset_top = 280.0
|
||||
offset_right = 840.0
|
||||
offset_bottom = 840.0
|
||||
pivot_offset = Vector2(280, 280)
|
||||
|
||||
[node name="btn_view" type="CheckBox" parent="canvas"]
|
||||
layout_mode = 0
|
||||
offset_left = 417.5
|
||||
offset_top = 2.5
|
||||
offset_right = 576.5
|
||||
offset_bottom = 29.5
|
||||
scale = Vector2(0.5, 0.5)
|
||||
action_mode = 0
|
||||
text = "Обзорная карта"
|
||||
|
||||
[node name="canvas" parent="." instance=ExtResource("11_b6su4")]
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="tilemap" parent="." instance=ExtResource("10_gtwyg")]
|
||||
self_modulate = Color(1, 1, 1, 0.415686)
|
||||
position = Vector2(360, 360)
|
||||
@@ -378,7 +384,7 @@ texture_normal = ExtResource("14_ggrwd")
|
||||
|
||||
[connection signal="drag_begin" from="." to="." method="_on_drag_begin"]
|
||||
[connection signal="drag_continue" from="." to="." method="_on_drag_continue"]
|
||||
[connection signal="toggled" from="btn_view" to="." method="on_button_view_toggled"]
|
||||
[connection signal="toggled" from="canvas/btn_view" to="." method="on_button_view_toggled"]
|
||||
[connection signal="toggled" from="chk_auto" to="." method="on_value_changed"]
|
||||
[connection signal="toggled" from="btn_activate" to="." method="on_btn_activate_toggled"]
|
||||
[connection signal="toggled" from="btn_center" to="." method="on_btn_center_toggled"]
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
[ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button-flat/button-flat.tscn" id="2_eju8r"]
|
||||
[ext_resource type="Texture2D" uid="uid://csnts8f155sf7" path="res://data/save1.png" id="3_onafb"]
|
||||
[ext_resource type="Texture2D" uid="uid://o8mam0a060d8" path="res://data/load1.png" id="4_afjfs"]
|
||||
[ext_resource type="Texture2D" uid="uid://bdlbqs88bki8x" path="res://data/connect-a.png" id="5_2nrut"]
|
||||
[ext_resource type="Texture2D" uid="uid://u3tnejvpm8it" path="res://data/disconnect-a.png" id="6_g3q7m"]
|
||||
[ext_resource type="Texture2D" uid="uid://bdlbqs88bki8x" path="res://data/connect-a.png" id="5_wk8og"]
|
||||
[ext_resource type="Texture2D" uid="uid://u3tnejvpm8it" path="res://data/disconnect-a.png" id="6_1fbmy"]
|
||||
[ext_resource type="Script" uid="uid://c5pq0hbrij34d" path="res://table/table.gd" id="8_qcl30"]
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_mu34x"]
|
||||
@@ -35,30 +35,30 @@ modulate_color = Color(0.8, 0.533333, 0.27451, 1)
|
||||
texture = ExtResource("4_afjfs")
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_o7qii"]
|
||||
texture = ExtResource("5_2nrut")
|
||||
texture = ExtResource("5_wk8og")
|
||||
modulate_color = Color(0.8, 0.533333, 0.27451, 1)
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_mgr7r"]
|
||||
texture = ExtResource("5_2nrut")
|
||||
texture = ExtResource("5_wk8og")
|
||||
expand_margin_left = 3.0
|
||||
expand_margin_top = 3.0
|
||||
modulate_color = Color(0.8, 0.533333, 0.27451, 1)
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_hxhyh"]
|
||||
texture = ExtResource("5_2nrut")
|
||||
texture = ExtResource("5_wk8og")
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tnihm"]
|
||||
texture = ExtResource("6_g3q7m")
|
||||
texture = ExtResource("6_1fbmy")
|
||||
modulate_color = Color(0.8, 0.533333, 0.27451, 1)
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_k1qbi"]
|
||||
texture = ExtResource("6_g3q7m")
|
||||
texture = ExtResource("6_1fbmy")
|
||||
expand_margin_left = 3.0
|
||||
expand_margin_top = 3.0
|
||||
modulate_color = Color(0.8, 0.533333, 0.27451, 1)
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_pe5pe"]
|
||||
texture = ExtResource("6_g3q7m")
|
||||
texture = ExtResource("6_1fbmy")
|
||||
|
||||
[node name="ЭМС" type="Panel"]
|
||||
offset_right = 1598.0
|
||||
@@ -126,10 +126,10 @@ theme_override_styles/normal = SubResource("StyleBoxTexture_3ytmi")
|
||||
|
||||
[node name="btn_connect" type="Button" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 627.0
|
||||
offset_top = 55.0
|
||||
offset_right = 679.0
|
||||
offset_bottom = 87.0
|
||||
offset_left = 716.0
|
||||
offset_top = 40.0
|
||||
offset_right = 763.0
|
||||
offset_bottom = 73.0
|
||||
focus_mode = 0
|
||||
theme_override_colors/icon_normal_color = Color(1, 1, 1, 1)
|
||||
theme_override_styles/focus = SubResource("StyleBoxTexture_o7qii")
|
||||
@@ -141,10 +141,10 @@ theme_override_styles/normal = SubResource("StyleBoxTexture_hxhyh")
|
||||
|
||||
[node name="btn_disconnect" type="Button" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 714.0
|
||||
offset_top = 741.0
|
||||
offset_right = 766.0
|
||||
offset_bottom = 775.0
|
||||
offset_left = 718.0
|
||||
offset_top = 735.0
|
||||
offset_right = 764.0
|
||||
offset_bottom = 764.0
|
||||
focus_mode = 0
|
||||
theme_override_colors/icon_normal_color = Color(1, 1, 1, 1)
|
||||
theme_override_styles/focus = SubResource("StyleBoxTexture_tnihm")
|
||||
|
||||
@@ -8,31 +8,8 @@ func _ready() -> void:
|
||||
|
||||
|
||||
func on_trassa_line_changed(unit_trassa):
|
||||
if unit_trassa.online:
|
||||
$'454/СостояниеРэс3'.self_modulate = Color.WEB_GREEN
|
||||
$'СкруглённыйПрямоугольникБелый/Label3'.text = 'Трасса'
|
||||
$'СкруглённыйПрямоугольникБелый/Label4'.text = 'Трасса'
|
||||
$'СкруглённыйПрямоугольникБелый/Label5'.text = 'Активный'
|
||||
$'СкруглённыйПрямоугольникБелый/Label6'.text = str(unit_trassa.daa)
|
||||
$'СкруглённыйПрямоугольникБелый/Label7'.text = str(unit_trassa.dap)
|
||||
$'СкруглённыйПрямоугольникБелый/Label8'.text = '1'
|
||||
$'СкруглённыйПрямоугольникБелый/Label9'.text = str(unit_trassa.lfb)
|
||||
$'СкруглённыйПрямоугольникБелый/Label10'.text = str(unit_trassa.lfb)
|
||||
else:
|
||||
$'454/СостояниеРэс3'.self_modulate = Color.WHITE
|
||||
$'СкруглённыйПрямоугольникБелый/Label3'.text = '-'
|
||||
$'СкруглённыйПрямоугольникБелый/Label4'.text = '-'
|
||||
$'СкруглённыйПрямоугольникБелый/Label5'.text = '-'
|
||||
$'СкруглённыйПрямоугольникБелый/Label6'.text = '-'
|
||||
$'СкруглённыйПрямоугольникБелый/Label7'.text = '-'
|
||||
$'СкруглённыйПрямоугольникБелый/Label8'.text = '-'
|
||||
$'СкруглённыйПрямоугольникБелый/Label9'.text = '-'
|
||||
$'СкруглённыйПрямоугольникБелый/Label10'.text = '-'
|
||||
pass
|
||||
|
||||
|
||||
func on_sector_klaster(_data, unit_trassa):
|
||||
$'СкруглённыйПрямоугольникБелый/Label6'.text = str(unit_trassa.dap)
|
||||
$'СкруглённыйПрямоугольникБелый/Label7'.text = str(unit_trassa.daa)
|
||||
$'СкруглённыйПрямоугольникБелый/Label8'.text = '1'
|
||||
$'СкруглённыйПрямоугольникБелый/Label9'.text = str(unit_trassa.lfb)
|
||||
$'СкруглённыйПрямоугольникБелый/Label10'.text = str(unit_trassa.hfb)
|
||||
pass
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -30,12 +30,15 @@ signal режим_журнал()
|
||||
## Вызывается при переходе в режим [b]ЭМС[/b].
|
||||
signal режим_эмс()
|
||||
|
||||
|
||||
## Вызывается при переходе в режим [b]ЭМС ТГ[/b].
|
||||
signal режим_эмс2()
|
||||
|
||||
|
||||
## Вызывается при переходе в режим [b]Настройка[/b].
|
||||
signal режим_настройки()
|
||||
|
||||
|
||||
## Вызывается при включении/отключении режима [b]Тренаж[/b].[br]
|
||||
## [param val] - [b]true[/b] тренаж включён.
|
||||
signal режим_тренаж(val: bool)
|
||||
@@ -215,10 +218,10 @@ signal tool_tip(new_ctrl_pos)
|
||||
signal update_fs_closed(fs_closed: Dictionary)
|
||||
|
||||
|
||||
signal sector_klaster (new_sector_data)
|
||||
signal sector_klaster(new_sector_data)
|
||||
|
||||
|
||||
signal clear_klaster ()
|
||||
signal clear_klaster()
|
||||
|
||||
|
||||
## Вызывается при нажатии на кнопку "Запуск контроля".[br]
|
||||
|
||||
@@ -160,7 +160,7 @@ class TCP5P28 extends unit.Unit:
|
||||
flags |= 0 << 8 # Флаг рекомендуемой помехи
|
||||
flags |= int(th.fflags['aoa']) << 9 # Флаг доставерности пеленга
|
||||
flags |= int(th.fflags['alt']) << 10 # Флаг доставерности высоты
|
||||
flags |= int(th.fflags['power']) << 11 # Флаг доставерности мощности
|
||||
flags |= int(th.fflags['pow']) << 11 # Флаг доставерности мощности
|
||||
flags |= int(th.fflags['baud']) << 12 # Флаг доставерности ск. мод.
|
||||
flags |= int(th.fflags['slon']) << 13 # Флаг доставерности долготы ст. позиции
|
||||
flags |= int(th.fflags['slat']) << 14 # Флаг доставерности широты ст. позиции
|
||||
@@ -174,7 +174,7 @@ class TCP5P28 extends unit.Unit:
|
||||
th_data.encode_u16(16, int(th.alt)) # Высота объекта
|
||||
th_data.encode_u16(18, int(th.freq)) # Частота объекта
|
||||
th_data.encode_u16(20, int(th.width)) # Ширина частотной полосы объекта
|
||||
th_data.encode_u8(22, int(th.power)) # Мощность излучения объекта
|
||||
th_data.encode_u8(22, int(th.pow)) # Мощность излучения объекта
|
||||
var mod = MOD_TYPES.find(th.tmod)
|
||||
if mod == -1: mod = 0
|
||||
th_data.encode_u8(23, int(mod)) # Тип модуляции
|
||||
|
||||
@@ -80,14 +80,14 @@ class YaU07 extends unit.Unit:
|
||||
rc = Error.FAILED
|
||||
return rc
|
||||
|
||||
func send_flash(cmd_code: int, fl_data: Array, num_byte_rd: int, id_sector: int = 0) -> bool:
|
||||
func send_flash(cmd_code: CmdCode, fl_data: Array, num_byte_rd: int, id_sector: int = 0) -> bool:
|
||||
if (cmd_state == CmdState.WAIT) \
|
||||
or (cmd_state == CmdState.SEND) \
|
||||
or (cmd_state == CmdState.UNCK):
|
||||
return false
|
||||
if not ((cmd_code == CmdCode.ERASE_FLASH) or (cmd_code == CmdCode.WRITE_FLASH) \
|
||||
or (cmd_code == CmdCode.READ_FLASH) or (cmd_code == CmdCode.LOAD_FLASH)
|
||||
or (cmd_code == CmdCode.READ_FLASH_MP550) or (cmd_code == CmdCode.WRITE_FLASH_MP550)):
|
||||
if not cmd_code in [CmdCode.ERASE_FLASH,
|
||||
CmdCode.WRITE_FLASH, CmdCode.READ_FLASH, CmdCode.LOAD_FLASH,
|
||||
CmdCode.READ_FLASH_MP550, CmdCode.WRITE_FLASH_MP550]:
|
||||
return false
|
||||
cmd_num_tx = (cmd_num_rx + 1) % 0xffff
|
||||
tx_data.encode_u16(0, cmd_retry)
|
||||
@@ -122,7 +122,7 @@ class YaU07 extends unit.Unit:
|
||||
cmd_code_tx = cmd_code
|
||||
return true
|
||||
|
||||
func send_isa(cmd_code: int, ports_data: Array) -> bool:
|
||||
func send_isa(cmd_code: CmdCode, ports_data: Array) -> bool:
|
||||
if (cmd_state == CmdState.WAIT) \
|
||||
or (cmd_state == CmdState.SEND) \
|
||||
or (cmd_state == CmdState.UNCK):
|
||||
@@ -150,7 +150,7 @@ class YaU07 extends unit.Unit:
|
||||
cmd_code_tx = cmd_code
|
||||
return true
|
||||
|
||||
func send_block(cmd_code: int, block_len: int, port: Array) -> bool:
|
||||
func send_block(cmd_code: CmdCode, block_len: int, port: Array) -> bool:
|
||||
if (cmd_state == CmdState.WAIT) \
|
||||
or (cmd_state == CmdState.SEND) \
|
||||
or (cmd_state == CmdState.UNCK):
|
||||
@@ -173,7 +173,7 @@ class YaU07 extends unit.Unit:
|
||||
cmd_code_tx = cmd_code
|
||||
return true
|
||||
|
||||
func send_load_ems_done(cmd_code: int) -> bool:
|
||||
func send_load_ems_done(cmd_code: CmdCode) -> bool:
|
||||
if (cmd_state == CmdState.WAIT) \
|
||||
or (cmd_state == CmdState.SEND) \
|
||||
or (cmd_state == CmdState.UNCK):
|
||||
|
||||
101
shaders/antenas.gdshader
Normal file
101
shaders/antenas.gdshader
Normal file
@@ -0,0 +1,101 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
#include "tools.gdshaderinc"
|
||||
|
||||
#define ANT_BAND_READY 1U /* Антенна (модуль ФС) готова или исправна */
|
||||
#define ANT_BAND_FAILED 0U /* Антенна (модуль ФС) не исправно */
|
||||
|
||||
// Конфигурация сетки
|
||||
uniform int grid_cells_angle = 4; /* Количество секторов (90° каждый) */
|
||||
uniform int grid_layers_radius = 7; /* Количество слоёв по радиусу */
|
||||
uniform float alpha: hint_range(0.0, 1.0) = 0.5;
|
||||
uniform float inner_radius = 0.36; /* Внутренняя незакрашенная окружность. Относительное значение */
|
||||
uniform float outer_radius = 1.0; /* Внешний радиус. Относительное значение */
|
||||
uniform float grid_line_width = 0.0025; /* Сетка, ширина линий. Относительное значение */
|
||||
uniform float rotation: hint_range(0, 360) = 0.0;
|
||||
uniform float ffr: hint_range(0.0, 1.0) = 0.15; /* Индикация неисправности модулей ФС. Заметность штриховки. Индикация неисправности модулей ФС */
|
||||
uniform float sfr: hint_range(0.0, 10.0) = 0.0; /* Индикация неисправности модулей ФС. Скорость движения штрховки */
|
||||
uniform float pfr: hint_range(0.01, 1.0) = 0.025; /* Индикация неисправности модулей ФС. Частота штриховки */
|
||||
|
||||
// Вариант 1: Массив цветов для каждой ячейки (4×7 = 28)
|
||||
uniform vec4 ant_band_c[28]: source_color;
|
||||
uniform uint ant_band_m[28];
|
||||
varying vec2 centered_uv;
|
||||
|
||||
|
||||
void vertex()
|
||||
{
|
||||
// 1. Переводим UV в координаты относительно центра (-1..1)
|
||||
centered_uv = (UV - 0.5) * 2.0;
|
||||
rotate_vec2(centered_uv, radians(rotation + 315.0), vec2(0, 0));
|
||||
}
|
||||
|
||||
|
||||
void fragment()
|
||||
{
|
||||
float dist = length(centered_uv);
|
||||
|
||||
// 2. Отсекаем за пределами внешнего радиуса
|
||||
if (dist > outer_radius) {
|
||||
COLOR = vec4(0.0);
|
||||
discard;
|
||||
}
|
||||
|
||||
// 3. Отсекаем внутри внутреннего радиуса
|
||||
if (dist < inner_radius) {
|
||||
COLOR = vec4(0.0);
|
||||
discard;
|
||||
}
|
||||
|
||||
// 4. Вычисляем полярные координаты
|
||||
float angle = 6.28318530718 - atan(centered_uv.y, centered_uv.x);
|
||||
// Приводим к диапазону 0..2π
|
||||
angle = mod(angle + 6.28318530718, 6.28318530718);
|
||||
|
||||
// 5. Определяем индексы ячейки
|
||||
// Сектор (0..3)
|
||||
float sector_width = 6.28318530718 / float(grid_cells_angle);
|
||||
int sector_idx = int(angle / sector_width);
|
||||
|
||||
// Слой (0..6)
|
||||
float available_radius = outer_radius - inner_radius;
|
||||
float normalized_radius = (dist - inner_radius) / available_radius;
|
||||
float layer_height = 1.0 / float(grid_layers_radius);
|
||||
int layer_idx = int(normalized_radius / layer_height);
|
||||
|
||||
// 6. Проверяем границы (чтобы не выйти за пределы)
|
||||
if (layer_idx >= grid_layers_radius) {
|
||||
COLOR = vec4(0.0);
|
||||
discard;
|
||||
}
|
||||
|
||||
// 7. Рассчитываем глобальный индекс ячейки (0..27)
|
||||
int cell_index = layer_idx * grid_cells_angle + sector_idx;
|
||||
|
||||
// 8. Получаем цвет ячейки (два варианта) из массива цветов
|
||||
vec4 cell_color = ant_band_c[cell_index];
|
||||
|
||||
// Границы по углу
|
||||
float angle_in_sector = mod(angle, sector_width);
|
||||
if (angle_in_sector < grid_line_width ||
|
||||
sector_width - angle_in_sector < grid_line_width) {
|
||||
cell_color.rgb *= 0.7; // Затемняем границы
|
||||
}
|
||||
|
||||
// Границы по радиусу
|
||||
float radius_in_layer = mod(normalized_radius, layer_height);
|
||||
if (radius_in_layer < grid_line_width ||
|
||||
layer_height - radius_in_layer < grid_line_width) {
|
||||
cell_color.rgb *= 0.7; // Затемняем границы
|
||||
}
|
||||
|
||||
// Подмешивание шума для включённых
|
||||
cell_color.a = alpha + random_timed(centered_uv) * cell_color.a;
|
||||
|
||||
// Индикация не исправности
|
||||
if (ant_band_m[cell_index] == ANT_BAND_FAILED)
|
||||
{
|
||||
cell_color.a *= (1.0 - ffr) + tanh(10.0 * sin(TIME * sfr + 2.0 * PI * centered_uv.x / pfr)) * ffr;
|
||||
}
|
||||
COLOR = cell_color;
|
||||
}
|
||||
1
shaders/antenas.gdshader.uid
Normal file
1
shaders/antenas.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dhipoo0ju5ebg
|
||||
@@ -1,142 +0,0 @@
|
||||
[gd_resource type="ShaderMaterial" load_steps=2 format=4 uid="uid://s6xe8igevnv2"]
|
||||
|
||||
[sub_resource type="Shader" id="1"]
|
||||
code = "shader_type canvas_item;
|
||||
|
||||
#include \"tools.gdshaderinc\"
|
||||
|
||||
#define RADIUS_INNER_0 200.0 /* Радиус внутренний для режима приоритет РТО */
|
||||
#define RADIUS_INNER_1 480.0 /* Радиус внутренний для режима приоритет РЛС */
|
||||
#define ANTENAS_COUNT 28 /* Количество антенн */
|
||||
#define ANT_BAND_READY 1U /* Антенна (модуль ФС) готова или исправна */
|
||||
#define ANT_BAND_FAILED 0U /* Антенна (модуль ФС) не исправно */
|
||||
|
||||
uniform vec2 pc0 = vec2(560, 560); /* Центр сетки антенн */
|
||||
uniform float rotation: hint_range(0.0, 360.0) = 0.0; /* */
|
||||
uniform vec4 color0: source_color = vec4(0.38, 0.47, 0.51, 0.4);
|
||||
uniform vec4 color1: source_color = vec4(0.39, 0.44, 0.50, 0.4);
|
||||
uniform float radius_inner_0 = RADIUS_INNER_0;
|
||||
uniform float radius_inner_1 = RADIUS_INNER_1;
|
||||
uniform float radius_outter = 550.0; /* Радиус внешний. Должно быть равно ant_band_r1_6 */
|
||||
uniform float alpha: hint_range(0.0, 1.0) = 0.5;
|
||||
uniform int mode = 0; /* Режим отображения. Приоритет РТО - 0, приоритет РЛС - 1 */
|
||||
uniform float ffr: hint_range(0.0, 1.0) = 0.2; /* Индикация неисправности модулей ФС. Заметность штриховки. */
|
||||
uniform float sfr: hint_range(0.0, 10.0) = 0.0; /* Индикация неисправности модулей ФС. Скорость движения штрховки */
|
||||
uniform float afr: hint_range(0.0, 180.0) = 0.0; /* Индикация неисправности модулей ФС. Наклон штрховки */
|
||||
uniform float pfr: hint_range(1.0, 20.0) = 10.0; /* Индикация неисправности модулей ФС. Частота штриховки */
|
||||
|
||||
const int ant_band_count_0 = 2;
|
||||
const int ant_band_count_1 = 2;
|
||||
const int ant_band_count_2 = 2;
|
||||
const int ant_band_count_3 = 2;
|
||||
const int ant_band_count_4 = 2;
|
||||
const int ant_band_count_5 = 2;
|
||||
const int ant_band_count_6 = 2;
|
||||
|
||||
const float ant_band_r0_0[] = {RADIUS_INNER_0, RADIUS_INNER_1};
|
||||
const float ant_band_r0_1[] = {250.0, 490.0};
|
||||
const float ant_band_r0_2[] = {300.0, 500.0};
|
||||
const float ant_band_r0_3[] = {350.0, 510.0};
|
||||
const float ant_band_r0_4[] = {400.0, 520.0};
|
||||
const float ant_band_r0_5[] = {450.0, 530.0};
|
||||
const float ant_band_r0_6[] = {500.0, 540.0};
|
||||
|
||||
const float ant_band_r1_0[] = {250.0, 490.0};
|
||||
const float ant_band_r1_1[] = {300.0, 500.0};
|
||||
const float ant_band_r1_2[] = {350.0, 510.0};
|
||||
const float ant_band_r1_3[] = {400.0, 520.0};
|
||||
const float ant_band_r1_4[] = {450.0, 530.0};
|
||||
const float ant_band_r1_5[] = {500.0, 540.0};
|
||||
const float ant_band_r1_6[] = {550.0, 550.0};
|
||||
|
||||
uniform vec4 ant_band_c[ANTENAS_COUNT];
|
||||
uniform uint ant_band_m[ANTENAS_COUNT];
|
||||
const float d4 = 90.0;
|
||||
const float ds = 1.0;
|
||||
|
||||
|
||||
void sector(inout vec4 c, vec2 uv, vec2 center, float a, float da, float r0, float r1, vec4 color)
|
||||
{
|
||||
float l = distance(center, uv);
|
||||
vec2 d = uv - center;
|
||||
float sf = 500.0;
|
||||
float theta = atan(d.x, d.y) * sf;
|
||||
da /= 2.0;
|
||||
float a0 = radians(a - da);
|
||||
float a1 = radians(a + da);
|
||||
float va = smooth_px(a0 * sf, theta, ds) - smooth_px(a1 * sf, theta, ds);
|
||||
float vr = smooth_px(r0, l, ds) - smooth_px(r1, l, ds);
|
||||
float rgb = sqrt(va * vr);
|
||||
c.rgb += color.rgb * rgb * color.a;
|
||||
c.a += rgb * color.a;
|
||||
}
|
||||
|
||||
|
||||
void antenas(inout vec4 c, vec2 uv, vec2 p0, int cnt, float r0, float r1, inout int index)
|
||||
{
|
||||
float da = 180.0 / float(cnt);
|
||||
for (int i = -cnt; i <= cnt; i ++)
|
||||
{
|
||||
vec4 col;
|
||||
int j = index;
|
||||
if (i == 2)
|
||||
{
|
||||
index--;
|
||||
j = index - 3;
|
||||
}
|
||||
col.rgb = ant_band_c[j].rgb;
|
||||
index++;
|
||||
col.a = alpha + (random_timed(uv) - 0.5f) * ant_band_c[j].a;
|
||||
if (ant_band_m[j] == ANT_BAND_FAILED)
|
||||
{
|
||||
vec2 uvr = uv;
|
||||
rotate_vec2(uvr, radians(afr), pc0);
|
||||
col.a *= (1.0 - ffr) + tanh(10.0 * sin(TIME * sfr + 2.0 * PI * uvr.x / pfr)) * ffr;
|
||||
}
|
||||
float v = float(i & 1);
|
||||
vec4 color = v * col + (1.0f - v) * col;
|
||||
sector(c, uv, p0, float(i) * da, da, r0, r1, color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void vertex()
|
||||
{
|
||||
rotate_vec2(VERTEX, radians(360.0 - rotation), pc0);
|
||||
}
|
||||
|
||||
|
||||
void fragment()
|
||||
{
|
||||
ivec2 isz = textureSize(TEXTURE, 0);
|
||||
vec2 uv = UV * vec2(float(isz.x), float(isz.y)); // координаты текущей точки в пикселях
|
||||
COLOR = vec4(0, 0, 0, 0);
|
||||
int index = 0;
|
||||
// Сетка антенн
|
||||
antenas(COLOR, uv, pc0, ant_band_count_0, ant_band_r0_0[mode], ant_band_r1_0[mode], index);
|
||||
antenas(COLOR, uv, pc0, ant_band_count_1, ant_band_r0_1[mode], ant_band_r1_1[mode], index);
|
||||
antenas(COLOR, uv, pc0, ant_band_count_2, ant_band_r0_2[mode], ant_band_r1_2[mode], index);
|
||||
antenas(COLOR, uv, pc0, ant_band_count_3, ant_band_r0_3[mode], ant_band_r1_3[mode], index);
|
||||
antenas(COLOR, uv, pc0, ant_band_count_4, ant_band_r0_4[mode], ant_band_r1_4[mode], index);
|
||||
antenas(COLOR, uv, pc0, ant_band_count_5, ant_band_r0_5[mode], ant_band_r1_5[mode], index);
|
||||
antenas(COLOR, uv, pc0, ant_band_count_6, ant_band_r0_6[mode], ant_band_r1_6[mode], index);
|
||||
}
|
||||
"
|
||||
|
||||
[resource]
|
||||
shader = SubResource("1")
|
||||
shader_parameter/pc0 = Vector2(560, 560)
|
||||
shader_parameter/rotation = 0.0
|
||||
shader_parameter/color0 = Color(0.380392, 0.470588, 0.509804, 0.537255)
|
||||
shader_parameter/color1 = Color(0.3315, 0.45645, 0.51, 0.537255)
|
||||
shader_parameter/radius_inner_0 = 200.0
|
||||
shader_parameter/radius_inner_1 = 480.0
|
||||
shader_parameter/radius_outter = 550.0
|
||||
shader_parameter/alpha = 0.5
|
||||
shader_parameter/mode = 0
|
||||
shader_parameter/ffr = 0.2
|
||||
shader_parameter/sfr = 0.0
|
||||
shader_parameter/afr = 0.0
|
||||
shader_parameter/pfr = 10.0
|
||||
shader_parameter/ant_band_c = PackedVector4Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
shader_parameter/ant_band_m = PackedInt32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
|
||||
@@ -2,5 +2,5 @@ shader_type canvas_item;
|
||||
|
||||
void fragment()
|
||||
{
|
||||
COLOR.rgb = vec3(1.0, 1.0, 1.0) - log(COLOR.rgb);
|
||||
COLOR.rgb = vec3(1.0, 1.0, 1.0) - log(COLOR.rgb);
|
||||
}
|
||||
|
||||
@@ -16,42 +16,40 @@ uniform float ant_band_r1_0 = 0.4;
|
||||
|
||||
float smooth_px(float r, float R, float dss)
|
||||
{
|
||||
return 1.0 - smoothstep(R - dss, R + dss, r);
|
||||
return 1.0 - smoothstep(R - dss, R + dss, r);
|
||||
}
|
||||
|
||||
void sector(inout vec4 c, vec2 uv, vec2 cnt, float a, float da, float r0, float r1, vec4 col)
|
||||
{
|
||||
float l = distance(cnt, uv);
|
||||
vec2 d = uv - cnt;
|
||||
float sf = 500.0;
|
||||
float theta = atan(d.x, d.y) * sf;
|
||||
da /= 2.0;
|
||||
float a0 = radians(a - da);
|
||||
float a1 = radians(a + da);
|
||||
float va = smooth_px(a0 * sf, theta, dsr) - smooth_px(a1 * sf, theta, dsr);
|
||||
float vr = smooth_px(r0, l, ds) - smooth_px(r1, l, ds);
|
||||
float l = distance(cnt, uv);
|
||||
vec2 d = uv - cnt;
|
||||
float sf = 500.0;
|
||||
float theta = atan(d.x, d.y) * sf;
|
||||
da /= 2.0;
|
||||
float a0 = radians(a - da);
|
||||
float a1 = radians(a + da);
|
||||
float va = smooth_px(a0 * sf, theta, dsr) - smooth_px(a1 * sf, theta, dsr);
|
||||
float vr = smooth_px(r0, l, ds) - smooth_px(r1, l, ds);
|
||||
float rgb = sqrt(va * vr);
|
||||
c.rgb += col.rgb * rgb * col.a;
|
||||
c.rgb += col.rgb * rgb * col.a;
|
||||
c.a += rgb * col.a;
|
||||
}
|
||||
|
||||
|
||||
void antenas(inout vec4 c, vec2 uv, vec2 p0, int cnt, float r0, float r1, vec4 c0, vec4 c1)
|
||||
{
|
||||
float da = 180.0f / float(cnt);
|
||||
float da = 180.0f / float(cnt);
|
||||
for (int i = -cnt; i <= cnt; i ++)
|
||||
{
|
||||
float v = float(i & 1);
|
||||
vec4 col = v * c0 + (1.0f - v) * c1;
|
||||
sector(c, uv, p0, float(i) * da, da, r0, r1, col);
|
||||
}
|
||||
{
|
||||
float v = float(i & 1);
|
||||
vec4 col = v * c0 + (1.0f - v) * c1;
|
||||
sector(c, uv, p0, float(i) * da, da, r0, r1, col);
|
||||
}
|
||||
}
|
||||
|
||||
vec2 rotateUVmatrinx(vec2 uv, vec2 pivot, float rotation)
|
||||
{
|
||||
mat2 rotation_matrix=mat2( vec2(sin(rotation),-cos(rotation)),
|
||||
vec2(cos(rotation),sin(rotation))
|
||||
);
|
||||
mat2 rotation_matrix=mat2(vec2(sin(rotation), -cos(rotation)), vec2(cos(rotation),sin(rotation)));
|
||||
uv -= pivot;
|
||||
uv *= rotation_matrix;
|
||||
uv += pivot;
|
||||
|
||||
@@ -21,7 +21,7 @@ void vertex()
|
||||
|
||||
void fragment()
|
||||
{
|
||||
COLOR = color;
|
||||
COLOR = color;
|
||||
if (disabled)
|
||||
{
|
||||
float ds = 1.0 / sharpness;
|
||||
|
||||
@@ -8,16 +8,16 @@ float random_timed(vec2 uv)
|
||||
|
||||
float smooth_px(float r, float R, float ds)
|
||||
{
|
||||
return 1.0 - smoothstep(R - ds, R + ds, r);
|
||||
return smoothstep(R + ds, R - ds, r);
|
||||
}
|
||||
|
||||
|
||||
void circle_thin(inout vec3 color, vec2 uv, vec2 p, float r, float w, vec3 c, float a)
|
||||
{
|
||||
float d = distance(uv, p);
|
||||
float v0 = r - w;
|
||||
float v1 = r + w;
|
||||
color += a * sqrt(smoothstep(v1, v0, d) * smoothstep(v0, v1, d) * c);
|
||||
float d = distance(uv, p);
|
||||
float v0 = r - w;
|
||||
float v1 = r + w;
|
||||
color += a * sqrt(smoothstep(v1, v0, d) * smoothstep(v0, v1, d) * c);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -19,9 +19,9 @@ uniform float speed: hint_range(0.0, 1024.0) = 0.0;
|
||||
|
||||
float line(vec2 p1, vec2 p2, float width, vec2 uv)
|
||||
{
|
||||
float dist = distance(p1, p2); // Дистанция между точками
|
||||
float dist_uv = distance(p1, uv); // Дистанция между точкой и текущим пикселем
|
||||
return 1.0 - floor(1.0 - (0.001 * width) + distance (mix(p1, p2, clamp(dist_uv / dist, 0.0, 1.0)), uv));
|
||||
float dist = distance(p1, p2); // Дистанция между точками
|
||||
float dist_uv = distance(p1, uv); // Дистанция между точкой и текущим пикселем
|
||||
return 1.0 - floor(1.0 - (0.001 * width) + distance (mix(p1, p2, clamp(dist_uv / dist, 0.0, 1.0)), uv));
|
||||
}
|
||||
|
||||
|
||||
@@ -65,12 +65,12 @@ void fragment()
|
||||
float px1 = 0.0;
|
||||
float py0 = 0.0;
|
||||
float py1 = 0.0;
|
||||
COLOR = vec4(1.0, 0.0, 0.0, 0.0); //texture(TEXTURE, UV); // Цвет текущей точки
|
||||
COLOR = vec4(1.0, 0.0, 0.0, 0.0); // Цвет текущей точки
|
||||
get_line_points(px0, px1, py0, py1, 330.0);
|
||||
COLOR.a += line(vec2(px0, py0), vec2(px1, py1), 15.0, UV);
|
||||
get_line_points(px0, px1, py0, py1, 90.0);
|
||||
COLOR.a += line(vec2(px0, py0), vec2(px1, py1), 15.0, UV);
|
||||
get_line_points(px0, px1, py0, py1, 210.0);
|
||||
COLOR.a += line(vec2(px0, py0), vec2(px1, py1), 15.0, UV);
|
||||
COLOR *= smooth_px(length(UV-center), radius, DSS);
|
||||
COLOR *= smooth_px(length(UV - center), radius, DSS);
|
||||
}
|
||||
|
||||
@@ -13,5 +13,5 @@ vec3 bw_to_2color(vec3 c, vec3 dark, vec3 light)
|
||||
|
||||
void fragment()
|
||||
{
|
||||
COLOR.rgb = bw_to_2color(texture(TEXTURE, UV).rgb, white, black);
|
||||
COLOR.rgb = bw_to_2color(texture(TEXTURE, UV).rgb, white, black);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user