Доработка. В процессе. Вращение в соответсвии с курсом
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 set_canvas_rotation(val: float) -> void: material.set('shader_parameter/rotation', val)
|
||||
func set_strob_visible(val: bool): $строб.visible = val
|
||||
func set_strob_center(val: Vector2): $строб.position = 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_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_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')
|
||||
|
||||
@@ -152,7 +152,7 @@ func on_data_received(coords: Dictionary) -> void:
|
||||
if not is_centered:
|
||||
return
|
||||
if coords.has_all(['latitude', 'longitude']):
|
||||
set_coordinates(coords['longitude'], coords['latitude'])
|
||||
set_coordinates(coords['longitude'], coords['latitude'], coords['k'])
|
||||
|
||||
|
||||
func _on_resize() -> void:
|
||||
@@ -677,7 +677,7 @@ func clear() -> void:
|
||||
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 new_pos: Vector2 = lonlat_to_world(lon, lat)
|
||||
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()
|
||||
add_mark_from_lon_lat(ship_id, lon, lat, ship_instance, 0.0)
|
||||
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:
|
||||
|
||||
@@ -143,6 +143,8 @@ func _ready():
|
||||
signaller.connect('map_user_panning', Callable(self, 'on_user_panning'))
|
||||
signaller.connect('update_coordinates_map', Callable(self, 'on_update_coordinates_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_activate_toggled(true)
|
||||
#$canvas.add_seczap(0, Vector4(372, 0, 30, 348))
|
||||
@@ -154,6 +156,10 @@ func _ready():
|
||||
#$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():
|
||||
$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()
|
||||
{
|
||||
rotate_vec2(VERTEX, radians(rotation), pc0);
|
||||
rotate_vec2(VERTEX, radians(360.0 - rotation), pc0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user