From 77fecfa55cf78d3472f188c9c1b79fc8f2ea68e1 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Fri, 6 Sep 2024 10:07:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project.godot | 6 +++--- scenes/tilemap/tilemap.gd | 19 +++++++------------ scenes/tilemap/tilemap.tscn | 1 + scenes/работа/работа.gd | 26 +++++--------------------- scenes/работа/работа.tscn | 12 +----------- scripts/signaller.gd | 10 ---------- 6 files changed, 17 insertions(+), 57 deletions(-) diff --git a/project.godot b/project.godot index d6286c62..241fd596 100644 --- a/project.godot +++ b/project.godot @@ -24,8 +24,6 @@ config/map_tile_size=256 config/map_minimum_zoom=5 config/map_maximum_zoom=19 config/map_server_addr="https://b.tile.openstreetmap.org" -config/map_image_size_rto=Vector2i(512, 512) -config/map_image_size_rls=Vector2i(1024, 1024) interfer/center_offset=Vector2(0, 25) interfer/default_color0=Vector3(0.38, 0.47, 0.51) interfer/default_color1=Vector3(0.39, 0.44, 0.5) @@ -89,6 +87,8 @@ window/vsync/vsync_mode=false [editor] +movie_writer/mjpeg_quality=0.5 +movie_writer/fps=24 version_control/autoload_on_startup=true [editor_plugins] @@ -99,6 +99,7 @@ enabled=PackedStringArray() folder_colors={ "res://addons/": "blue", +"res://data/": "yellow", "res://modbus/": "blue", "res://scenes/": "teal", "res://scenes/bip/": "blue", @@ -192,7 +193,6 @@ common/enable_object_picking=false renderer/rendering_method="gl_compatibility" renderer/rendering_method.web="mobile" -gl_compatibility/item_buffer_size=8192 shader_compiler/shader_cache/strip_debug=true textures/default_filters/anisotropic_filtering_level=0 anti_aliasing/screen_space_roughness_limiter/enabled=false diff --git a/scenes/tilemap/tilemap.gd b/scenes/tilemap/tilemap.gd index ca742a9e..8634bd41 100644 --- a/scenes/tilemap/tilemap.gd +++ b/scenes/tilemap/tilemap.gd @@ -1,14 +1,9 @@ @tool extends CanvasGroup +class_name MercatorTileMap ## Отображение карт WEB Mercator -const MIN_ZOOM: float = 2.0 -const MAX_ZOOM: float = 19.0 -const TEST_COORDS: = [ Vector2(0, 0), Vector2(1, 0), Vector2(0, 1), Vector2(1, 1) ] -var test_coords_i: = 3 - - #http://10.1.1.220/osm_tiles/0/0/0.png #https://tile.openstreetmap.org/{z}/{x}/{y}.png @export var base_url: String = 'https://tile.openstreetmap.org/{z}/{x}/{y}.png': @@ -23,7 +18,8 @@ var test_coords_i: = 3 @export var tile_height: float = 256.0 @export_range(1, 1000, 1) var max_concurrent_requests:int = 5 @export_range(100, 100000, 1) var max_cached_tiles: int = 200 -@export_range(0, 25, 1) var max_zoom_level: int = 21 +@export_range(0, 25, 1) var max_zoom_level: int = 19 +@export_range(0, 25, 1) var min_zoom_level: int = 0 @export_color_no_alpha() var back_color: = Color.BLACK @export var animation_time: float = 1.0 @@ -61,7 +57,7 @@ var test_coords_i: = 3 return _xyz.z -var _xyz: Vector3 = Vector3(0, 0, MIN_ZOOM) +var _xyz: Vector3 = Vector3(0, 0, min_zoom_level) var _cache: Dictionary = {} var _queue: Dictionary = {} var _dragging: bool = false @@ -218,7 +214,7 @@ func is_border_visible(): func multiply_zoom(multiplier: float, pivot: Vector2): var p1: = screen_to_world(_xyz, pivot.x, pivot.y) - _xyz.z = clampf(_xyz.z * multiplier, MIN_ZOOM, MAX_ZOOM) + _xyz.z = clampf(_xyz.z * multiplier, min_zoom_level, max_zoom_level) var p2: = screen_to_world(_xyz, pivot.x, pivot.y) _xyz.x -= p2.x - p1.x _xyz.y -= p2.y - p1.y @@ -229,7 +225,7 @@ func set_zoom(zoom: float, pivot=null): pivot = $canvas.size / 2.0 var p1: = screen_to_world(_xyz, pivot.x, pivot.y) - _xyz.z = clampf(zoom, MAX_ZOOM, MIN_ZOOM) + _xyz.z = clampf(zoom, max_zoom_level, min_zoom_level) var p2: = screen_to_world(_xyz, pivot.x, pivot.y) _xyz.x -= p2.x - p1.x _xyz.y -= p2.y - p1.y @@ -335,7 +331,7 @@ func _process(delta): # result, response_code, headers, body -func _response(result, code, headers: Array, body: PackedByteArray, req, tile: Tile): +func _response(result, code, _headers: Array, body: PackedByteArray, req, tile: Tile): _req_count -= 1 remove_child(req) @@ -635,7 +631,6 @@ func remove_closest_dot(screen_pos): func find_at_screen_position(screen_pos: Vector2): var closest_dot = null - var closest_l = null var closest_distance = INF for mark in _marks.values(): var dot_screen_pos = world_to_screen(mark.position.x, mark.position.y) diff --git a/scenes/tilemap/tilemap.tscn b/scenes/tilemap/tilemap.tscn index b67f3306..6019bff4 100644 --- a/scenes/tilemap/tilemap.tscn +++ b/scenes/tilemap/tilemap.tscn @@ -6,6 +6,7 @@ [node name="tilemap" type="CanvasGroup" groups=["gui_items"]] script = ExtResource("1_l64tp") +max_zoom_level = 21 az = 2.0 [node name="canvas" type="TextureRect" parent="." groups=["gui_items"]] diff --git a/scenes/работа/работа.gd b/scenes/работа/работа.gd index 98c701d3..d439ea00 100644 --- a/scenes/работа/работа.gd +++ b/scenes/работа/работа.gd @@ -37,6 +37,7 @@ signal drag_begin ## Вызывается в момент начала пе signal drag_continue ## Вызывается во время продолжения перетаскивания. signal drag_end ## Вызывается в момент завершения перетаскивания. + ## Границы секторов блоков ФС по частоте в режиме РТО. const fs_band_rto: Dictionary = { 0: [200.0, 250.0], @@ -105,6 +106,10 @@ func on_threats_resized(threats: Dictionary): $count_all_pad/count_all.text = '% func on_threat_selected(th, ecm_btns): on_rto_threat_sel(th.id, ecm_btns) +## Встроенный обратный вызов. +func on_enter_tree() -> void: call_deferred('on_button_strobe_pressed') + + ## Обработчик нажатия на кнопку вид. func on_button_view_toggled(toggled: bool): signaller.emit_signal('map_mode_changed', int(toggled)) @@ -136,7 +141,6 @@ func _ready(): min_zoom = ProjectSettings.get_setting('application/config/map_minimum_zoom', 5) max_zoom = ProjectSettings.get_setting('application/config/map_maximum_zoom', 19) drag_fsm = DragFSM.OFF - $btn_zoom.set_meta('zoom', min_zoom - 1) var btns_select: Array = $btns_select.get_children() btns_select.any(func(btn): btn.button_connect('pressed', Callable(self, 'on_button_select').bind(btn, btns_select))) $btn_view.button_connect('toggled', Callable(self, 'on_button_view_toggled')) @@ -146,7 +150,6 @@ func _ready(): threats.connect('threat_lost', Callable(self, 'on_threat_lost')) threats.connect('threats_resized', Callable(self, 'on_threats_resized')) threats.connect('threat_update', Callable(self, 'on_threat_update')) - signaller.connect('zoom_complete', Callable(self, '_on_zoom_complete')) signaller.connect('rto_threat_sel', Callable(self, 'on_rto_threat_sel').bind(nodes)) signaller.connect('bip_pressed', Callable(self, 'on_bip_pressed').bind(nodes)) signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel').bind(nodes)) @@ -166,11 +169,6 @@ func get_all_nodes(root): return nodes -func on_enter_tree() -> void: - call_deferred('_on_btn_scale_pressed') - call_deferred('on_button_strobe_pressed') - - ## Производит отображение цели на диаграмму. func map_threat_to_bip(th: threats.Threat, bip: Control): bip.position = tools.pos_calc( @@ -370,20 +368,6 @@ func _input(event) -> void: shift_pressed = event.pressed -## Вызывается по нажатию кнопки "Детализация". -func _on_btn_scale_pressed() -> void: - var zoom = $btn_zoom.get_meta('zoom') - zoom = zoom + 1 if zoom < max_zoom else min_zoom - signaller.emit_signal('zoom_changed', zoom) - - -## Вызывается по завершению изменения детализации карты. -func _on_zoom_complete(zoom: int) -> void: - var prefix = $btn_zoom.get_meta('prefix') - $btn_zoom/lbl.text = '%s %d' % [prefix, zoom] - $btn_zoom.set_meta('zoom', zoom) - - ## Обработчик нажатия по сектору формирователя сигналов. func sel_fs_sector(event): if (event.button_index == MOUSE_BUTTON_LEFT) or (event.button_index == MOUSE_BUTTON_RIGHT): diff --git a/scenes/работа/работа.tscn b/scenes/работа/работа.tscn index c9dfd150..357d0d0c 100644 --- a/scenes/работа/работа.tscn +++ b/scenes/работа/работа.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=3 uid="uid://b276iygic5itk"] +[gd_scene load_steps=12 format=3 uid="uid://b276iygic5itk"] [ext_resource type="Script" path="res://scenes/работа/работа.gd" id="1_niok4"] [ext_resource type="PackedScene" uid="uid://nl1vklubr5kr" path="res://scenes/bip/bip.tscn" id="2_br3s6"] @@ -7,7 +7,6 @@ [ext_resource type="PackedScene" uid="uid://dymo732qc2doa" path="res://scenes/count-all/count-all-pad.tscn" id="6_e3re7"] [ext_resource type="PackedScene" uid="uid://bwti82byphl68" path="res://scenes/count-danger/count_danger_pad.tscn" id="7_2arls"] [ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button-flat/button-flat.tscn" id="8_k0iv2"] -[ext_resource type="PackedScene" uid="uid://0uqi1ghf7sma" path="res://scenes/button-scale/btn-scale.tscn" id="9_oey3x"] [ext_resource type="PackedScene" uid="uid://ceknxxfu1loo5" path="res://scenes/tilemap/tilemap.tscn" id="10_gtwyg"] [ext_resource type="PackedScene" uid="uid://b5kjdyxuwsot5" path="res://scenes/diagram/diagram.tscn" id="11_b6su4"] [ext_resource type="Script" path="res://scenes/работа/sld-mode.gd" id="12_gqdkl"] @@ -145,14 +144,6 @@ layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 -[node name="btn_zoom" parent="." instance=ExtResource("9_oey3x")] -layout_mode = 0 -offset_left = 12.0 -offset_top = 986.0 -offset_right = 112.0 -offset_bottom = 1006.0 -metadata/zoom = 4 - [node name="btns_select" type="GridContainer" parent="."] layout_mode = 0 offset_left = 1018.0 @@ -264,5 +255,4 @@ vertical_alignment = 1 [connection signal="drag_begin" from="." to="." method="_on_drag_begin"] [connection signal="drag_continue" from="." to="." method="_on_drag_continue"] -[connection signal="pressed" from="btn_zoom" to="." method="_on_btn_scale_pressed"] [connection signal="value_changed" from="vslider" to="vslider" method="_on_value_changed"] diff --git a/scripts/signaller.gd b/scripts/signaller.gd index 05f9591a..068b44fa 100644 --- a/scripts/signaller.gd +++ b/scripts/signaller.gd @@ -119,16 +119,6 @@ signal interfer_selected (ecm: interfer.Interfer) signal fs_selected(ecm: interfer.Interfer) -## Вызывается при запросе изменения уровня детализации карты.[br] -## [param zoom] - Вновь установленный уровень детализации. -signal zoom_changed(zoom: int) - - -## Вызывается при завершении изменения уровня детализации карты.[br] -## [param zoom] - Вновь установленный уровень детализации. -signal zoom_complete(zoom: int) - - ## Вызывается при изменении координат карты.[br] ## [param lan], [param lat] - Вновь установленные координаты. signal map_coords_changed(lan: float, lat: float)