Доработка. [PATCH] Движение кораблика по координатам. Экран ЭМС ТГ

This commit is contained in:
lepshiy
2025-11-01 12:46:25 +03:00
committed by sasha80
parent 23c12ffb2d
commit 8f95859a33
3 changed files with 21 additions and 47 deletions

View File

@@ -147,14 +147,13 @@ func _ready() -> void:
signaller.connect('map_centered', on_map_centered)
if not Engine.is_editor_hint():
var unit_nav = network.get_unit_instance('навигация')
unit_nav.connect('data_received', Callable(self, 'on_data_received'))
unit_nav.connect('data_received', on_data_received)
ProjectSettings.connect('settings_changed', _settings_changed)
threats.connect('threat_new', Callable(self, '_on_threat_new'))
threats.connect('threat_lost', Callable(self, '_on_threat_lost'))
threats.connect('threat_update', Callable(self, '_on_threat_update'))
func _settings_changed():
base_url = ProjectSettings.get_setting('application/config/Шаблон адреса сервера карт', base_url)
@@ -196,7 +195,7 @@ func add_mark_from_lon_lat(id: int, lon: float, lat: float, mark: Node, gap_size
if _marks.has(id):
return false
var wrld_pos: Vector2 = lonlat_to_world(lon, lat)
_marks[id] = {'id': id, 'position': wrld_pos, 'mark': mark, 'gap_size': gap_size} # Добавляем ID
_marks[id] = {'position': wrld_pos, 'mark': mark, 'gap_size': gap_size}
add_child(mark)
queue_redraw()
return true
@@ -294,15 +293,20 @@ func _draw() -> void:
for tx in range(t1.x, t2.x):
for ty in range(t1.y, t2.y):
_draw_tile(tx, ty, z)
# Рисование отметок
var n: = pow(2, z)
var dx: = n * tile_width
var c: Vector2 = $canvas.size / 2.0
var r: float = c.length()
visible_marks_count = 0
for dot in _marks.values():
var screen_pos = world_to_screen(dot.position)
dot.mark.position = screen_pos
var scr_pos: Vector2 = world_to_screen(dot.position)
scr_pos.x = posmod(int(scr_pos.x), int(dx))
dot.mark.position = scr_pos
dot.mark.visible = is_mark_visible(dot)
dot.mark.visible = c.distance_to(screen_pos) < (r - dot.gap_size)
dot.mark.visible = c.distance_to(scr_pos) < (r - dot.gap_size)
visible_marks_count += int(dot.mark.visible)
# Рисование границ
var p1: Vector2 = $canvas.position
var p2: Vector2 = $canvas.size / Vector2(1, 20)
if is_out_border1 and _dragging: