diff --git a/project.godot b/project.godot index 6dc90c7..080df7b 100644 --- a/project.godot +++ b/project.godot @@ -21,12 +21,12 @@ boot_splash/use_filter=false config/icon="res://data/icon.png" config/map_bcs=Vector3(0.5, 1.5, 0.3) config/map_tile_size=256 -config/map_image_hight=512 -config/map_image_width=512 config/map_minimum_zoom=3 config/map_maximum_zoom=19 config/map_server_addr="https://b.tile.openstreetmap.org" interfer/resend_timeout=1000.0 +config/map_image_size_rto=Vector2i(512, 512) +config/map_image_size_rls=Vector2i(1024, 1024) [autoload] diff --git a/scenes/diagram/diagram.gd b/scenes/diagram/diagram.gd index 1d1793d..32828ae 100644 --- a/scenes/diagram/diagram.gd +++ b/scenes/diagram/diagram.gd @@ -16,7 +16,8 @@ func get_strob_width() -> float: return $строб.material.get('shader_par func get_strob_band() -> float: return $строб.material.get('shader_parameter/band') * 125.0 func get_strob_radius() -> float: return $строб.material.get('shader_parameter/radius') * 125.0 -func get_radius_outter() -> float: return material.get('shader_parameter/radius_outter') -func get_radius_inner() -> float: return material.get('shader_parameter/radius_inner') +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 set_view_mode(val: int): material.set('shader_parameter/mode', val); diff --git a/scenes/tilemap/tilemap.gd b/scenes/tilemap/tilemap.gd index 3309cb6..cfae98c 100644 --- a/scenes/tilemap/tilemap.gd +++ b/scenes/tilemap/tilemap.gd @@ -46,15 +46,20 @@ func _ready(): map_request = HTTPRequest.new() add_child(map_request) map_request.request_completed.connect(self._map_request_completed) - var map_image_width = ProjectSettings.get_setting('application/config/map_image_width', 512) - var map_image_hight = ProjectSettings.get_setting('application/config/map_image_hight', 512) - map_image = Image.create(map_image_width, map_image_hight, true, Image.FORMAT_RGB8) map_bcs = ProjectSettings.get_setting('application/config/map_bcs', Vector3(1.0, 1.0, 1.0)) map_server_addr = ProjectSettings.get_setting('application/config/map_server_addr') + var map_image_size = ProjectSettings.get_setting('application/config/map_image_size_rto', Vector2i(512, 512)) var map_tile_size = ProjectSettings.get_setting('application/config/map_tile_size', 256) + map_image = Image.create(map_image_size.x, map_image_size.y, true, Image.FORMAT_RGB8) map_tile = Rect2i(0, 0, map_tile_size, map_tile_size) signaller.connect('zoom_changed', Callable(self, '_on_zoom_changed')) + signaller.connect('map_image_size_changed', Callable(self, '_on_map_image_size_changed')) log.info('Модуль географической карты готов') + log.info('Адрес сервера поставщика карт: \"%s\"' % map_server_addr) + + +func _on_map_mode_changed(mode: bool) -> void: + print_debug(mode) func mark_image_center(image: Image, color: Color = Color.RED): @@ -109,7 +114,6 @@ func _process(_delta: float): else: if map_tile_stack.size() == 0: signaller.emit_signal('zoom_complete', map_zoom) - print_debug('zoom_complete: %s' % [map_rects]) map_tile_state = TASK_STATE.DONE diff --git a/scenes/работа/работа.gd b/scenes/работа/работа.gd index 6e95c7c..92b3191 100644 --- a/scenes/работа/работа.gd +++ b/scenes/работа/работа.gd @@ -45,7 +45,9 @@ enum DragFSM { } -func on_button_view_toggled(toggled: bool): $canvas.set_view_mode(int(toggled)) +func on_button_view_toggled(toggled: bool): + $canvas.set_view_mode(int(toggled)) + signaller.emit_signal('map_mode_changed', toggled) ## Обработчик сигнала изменения списка целей diff --git a/scripts/signaller.gd b/scripts/signaller.gd index 05b561c..ccd7a36 100644 --- a/scripts/signaller.gd +++ b/scripts/signaller.gd @@ -80,4 +80,4 @@ signal map_coords_changed(lan: float, lat: float) ## Вызывается при изменении размера изображения для отображения карты. ## [param w], [param h] - Вновь установленный размер. -signal map_image_size_changed(w: int, h: int) +signal map_mode_changed(w: int, h: int) diff --git a/shaders/antenas.tres b/shaders/antenas.tres index c31a209..e525213 100644 --- a/shaders/antenas.tres +++ b/shaders/antenas.tres @@ -5,13 +5,17 @@ code = "shader_type canvas_item; #include \"tools.gdshaderinc\" +#define RADIUS_INNER_0 200.0 /* Радиус внутренний для режима приоритет РТО */ +#define RADIUS_INNER_1 480.0 /* Радиус внутренний для режима приоритет РЛС */ + 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 = 200.0; /* Радиус внутренний. Должно быть равно ant_band_r0_0 */ -uniform float radius_outter = 550.0; /* Радиус внешний. Должно быть равно ant_band_r1_6 */ -uniform int mode = 0; /* Режим отображения. Приоритет РТО - 0, приоритет РЛС - 1 */ +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 int mode = 0; /* Режим отображения. Приоритет РТО - 0, приоритет РЛС - 1 */ const int ant_band_count_0 = 2; const int ant_band_count_1 = 2; @@ -21,7 +25,7 @@ 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[] = {200.0, 480.0}; +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}; @@ -100,6 +104,7 @@ 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 = 200.0 +shader_parameter/radius_inner_0 = 200.0 +shader_parameter/radius_inner_1 = 480.0 shader_parameter/radius_outter = 550.0 shader_parameter/mode = 0 diff --git a/shaders/tilemap.gdshader b/shaders/tilemap.gdshader index 4764214..64923d2 100644 --- a/shaders/tilemap.gdshader +++ b/shaders/tilemap.gdshader @@ -4,7 +4,7 @@ shader_type canvas_item; /* Рисует текстуру по маске в форме окружности */ -uniform float radius: hint_range(0.0, 1.0) = 0.8; /* Радиус */ +uniform float radius: hint_range(0.0, 1.0) = 0.39; /* Радиус */ const vec2 center = vec2(0.5, 0.5); void fragment()