extends Sprite2D

func _ready() -> void: signaller.connect('map_mode_changed', Callable(self, 'set_view_mode'))

func sv(val: float) -> float: return val / ($строб.scale.x / 2.0) * 0.125

func set_strob_visible(val: bool):   $строб.visible = val
func set_strob_center(val: Vector2): $строб.position = val
func set_strob_dir(val: float):      $строб.material.set('shader_parameter/dir', val)
func set_strob_color(val: Color):    $строб.material.set('shader_parameter/color', val)
func set_strob_width(val: float):    $строб.material.set('shader_parameter/width', val)
func set_strob_band(val: float):     $строб.material.set('shader_parameter/band', val / 125.0)
func set_strob_radius(val: float):   $строб.material.set('shader_parameter/radius', sv(val))

func get_strob_center()  -> Vector2: return $строб.position
func get_strob_visible() -> bool:    return $строб.visible
func get_strob_width()   -> float:   return $строб.material.get('shader_parameter/width')
func get_strob_band()    -> float:   return $строб.material.get('shader_parameter/band') * 125.0
func get_strob_radius()  -> float:   return $строб.material.get('shader_parameter/radius') * 125.0

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')

func set_view_mode(val: int): material.set('shader_parameter/mode', val);
