Рефактор.

This commit is contained in:
sasha80
2026-01-14 14:00:35 +03:00
parent 1a72187683
commit 2919b0174f
2 changed files with 17 additions and 25 deletions

View File

@@ -1,26 +1,22 @@
class_name Diagram extends ColorRect
const NUM_OF_RANGE = 7
const NUM_OF_DIRECTIONS = 4
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 ## Цвета по умолчанию для блоков ФС
var image: Image
const ANTS_COUNT: = 28
const ANT_COLOR: = Color(0.38, 0.47, 0.51, 1.0)
@export var ant_color: Color = ANT_COLOR
@export var SecZap: PackedScene
@export var inner_radius_0: = 0.36 ## Внутренний радиус диаграммы в режиме РТО
@export var inner_radius_1: = 0.855 ## Внутренний радиус диаграммы в обзора
var fs_default_colors: PackedColorArray ## Цвета по умолчанию для блоков ФС
func _ready() -> void:
image = Image.create(NUM_OF_RANGE * NUM_OF_DIRECTIONS, 1, false, Image.FORMAT_RGBA8)
signaller.connect('map_mode_changed', Callable(self, 'set_view_mode'))
ProjectSettings.connect('settings_changed', _on_settings_changed)
_on_settings_changed()
set_def_colors()
_init_def_colors()
set_band_colors(fs_default_colors)
func sv(val: float) -> float: return val / ($строб.scale.x / 2.0) * 0.125
@@ -52,9 +48,10 @@ func get_strob_width() -> float: return $строб.get_instance_shader_pa
## Выставляет цвета для секторов
func set_band_colors(val: PackedColorArray):
var image: = Image.create(val.size(), 1, false, Image.FORMAT_RGBA8)
for x in val.size():
image.set_pixel(x, 0, val[x])
var tex = ImageTexture.create_from_image(image)
var tex: = ImageTexture.create_from_image(image)
material.set('shader_parameter/sec_colors', tex)
@@ -100,7 +97,7 @@ func set_seczap(id: int, szv: Vector4):
func clear_all_seczap():
for child in get_children():
if child.name.begins_with("SECZAP"):
if child.name.begins_with('SECZAP'):
remove_child(child)
child.queue_free()
@@ -116,17 +113,12 @@ func set_view_mode(val: int):
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)
ant_color = ProjectSettings.get_setting('application/interfer/ant_color', ANT_COLOR)
ant_color *= Color(1.0, 1.0, 1.0, 0.0)
## Закрашивание по умолчанию блоков ФС цветами из настроек.
func set_def_colors():
var col_arr: PackedColorArray = [color0, color1]
for i in NUM_OF_RANGE:
for j in NUM_OF_DIRECTIONS:
fs_default_colors.append(col_arr[i & 1])
i += 1
set_band_colors(fs_default_colors)
func _init_def_colors():
fs_default_colors.clear()
for i in ANTS_COUNT:
fs_default_colors.append(ant_color)