Доработка. В процессе. Вращение в соответсвии с курсом
This commit is contained in:
@@ -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')
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user