Доработка. В процессе. Вращение в соответсвии с курсом

This commit is contained in:
sasha80
2025-10-06 17:46:25 +03:00
parent 60d9640a5c
commit da15b92408
4 changed files with 13 additions and 4 deletions

View File

@@ -13,6 +13,7 @@ func _ready() -> void:
func sv(val: float) -> float: return val / ($строб.scale.x / 2.0) * 0.125 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_visible(val: bool): $строб.visible = val
func set_strob_center(val: Vector2): $строб.position = val func set_strob_center(val: Vector2): $строб.position = val
func set_strob_dir(val: float): $строб.set_instance_shader_parameter('dir', val) func set_strob_dir(val: float): $строб.set_instance_shader_parameter('dir', val)
@@ -29,6 +30,7 @@ func get_strob_band() -> float: return $строб.get_instance_shader_param
func get_strob_radius() -> float: return $строб.get_instance_shader_parameter('radius') * 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_strob_color() -> float: return $строб.get_instance_shader_parameter('color')
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_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_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_radius_inner_1() -> float: return material.get('shader_parameter/radius_inner_1')

View File

@@ -152,7 +152,7 @@ func on_data_received(coords: Dictionary) -> void:
if not is_centered: if not is_centered:
return return
if coords.has_all(['latitude', 'longitude']): if coords.has_all(['latitude', 'longitude']):
set_coordinates(coords['longitude'], coords['latitude']) set_coordinates(coords['longitude'], coords['latitude'], coords['k'])
func _on_resize() -> void: func _on_resize() -> void:
@@ -677,7 +677,7 @@ func clear() -> void:
queue_redraw() queue_redraw()
func set_coordinates(lon: float, lat: float) -> void: func set_coordinates(lon: float, lat: float, course: float) -> void:
var anim: Animation = $player.get_animation('goto') var anim: Animation = $player.get_animation('goto')
var new_pos: Vector2 = lonlat_to_world(lon, lat) var new_pos: Vector2 = lonlat_to_world(lon, lat)
anim.track_insert_key(0, 0, _xyz.x) anim.track_insert_key(0, 0, _xyz.x)
@@ -690,7 +690,8 @@ func set_coordinates(lon: float, lat: float) -> void:
ship_instance = ship_mark.instantiate() ship_instance = ship_mark.instantiate()
add_mark_from_lon_lat(ship_id, lon, lat, ship_instance, 0.0) add_mark_from_lon_lat(ship_id, lon, lat, ship_instance, 0.0)
else: else:
_marks[ship_id].position = lonlat_to_world(lon, lat) ship_instance.position = lonlat_to_world(lon, lat)
ship_instance.rotation_degrees = course - 90
func blend_mask(val: bool) -> void: func blend_mask(val: bool) -> void:

View File

@@ -143,6 +143,8 @@ func _ready():
signaller.connect('map_user_panning', Callable(self, 'on_user_panning')) signaller.connect('map_user_panning', Callable(self, 'on_user_panning'))
signaller.connect('update_coordinates_map', Callable(self, 'on_update_coordinates_label')) signaller.connect('update_coordinates_map', Callable(self, 'on_update_coordinates_label'))
signaller.connect('update_scale_map', Callable(self, 'on_update_scale_label')) signaller.connect('update_scale_map', Callable(self, 'on_update_scale_label'))
var unit_nav = network.get_unit_instance('навигация')
unit_nav.connect('data_received', on_navi_data_received)
on_btn_center_toggled(true) on_btn_center_toggled(true)
on_btn_activate_toggled(true) on_btn_activate_toggled(true)
#$canvas.add_seczap(0, Vector4(372, 0, 30, 348)) #$canvas.add_seczap(0, Vector4(372, 0, 30, 348))
@@ -154,6 +156,10 @@ func _ready():
#$canvas.set_seczap_color(3, Color.CHARTREUSE) #$canvas.set_seczap_color(3, Color.CHARTREUSE)
func on_navi_data_received(data: Dictionary):
$canvas.set_canvas_rotation(data.get('k', 0.0))
func on_user_panning(): func on_user_panning():
$btn_center.button_pressed = false $btn_center.button_pressed = false

View File

@@ -90,7 +90,7 @@ void antenas(inout vec4 c, vec2 uv, vec2 p0, int cnt, float r0, float r1, inout
void vertex() void vertex()
{ {
rotate_vec2(VERTEX, radians(rotation), pc0); rotate_vec2(VERTEX, radians(360.0 - rotation), pc0);
} }