diff --git a/scenes/diagram/diagram.gd b/scenes/diagram/diagram.gd index 7be13d4..008dcd3 100644 --- a/scenes/diagram/diagram.gd +++ b/scenes/diagram/diagram.gd @@ -29,9 +29,17 @@ func get_radius_outter() -> float: return material.get('shader_parameter/radius 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); func set_band_colors(val: Array): material.set('shader_parameter/ant_band_c', val) + +func set_view_mode(val: int): + if val == 1: + $строб.hide() + else: + $строб.show() + material.set('shader_parameter/mode', val) + + ## Закрашивание по умолчанию блоков ФС цветами из настроек. func set_def_colors(): var color0: Vector3 = ProjectSettings.get_setting('application/interfer/default_color0', Vector3(0.38, 0.47, 0.51)) diff --git a/scenes/работа/работа.gd b/scenes/работа/работа.gd index 3096fbf..ea8f936 100644 --- a/scenes/работа/работа.gd +++ b/scenes/работа/работа.gd @@ -29,7 +29,7 @@ var shift_pressed: bool ## Кнопка SHIFT нажата. var strob_band_begin: float ## Ширина строба в момент начала перетаскивания. var strob_dir_begin: float ## Направление антенны в момент начала перетаскивания. var strob_width_begin: float ## Ширина строба по углу в момент начала перетаскивания. - +var view_mode: MapViewMode ## Режим отображения карты signal drag_begin ## Вызывается в момент начала перетаскивания. signal drag_continue ## Вызывается во время продолжения перетаскивания. @@ -59,6 +59,13 @@ enum BtnSel { } +## Режим отображения карты +enum MapViewMode { + RTO = 0, ## Режим приоритет РТО (малая карта, широкие секторы) + RLS = 1 ## Режим приоритет РЛС (большая карта, узкие секторы) + } + + const VAL_TO_EVENT = { false: 'manual_control', ## Выбор целей и установка помех вручную. true: 'full_auto' } ## Выбор целей и установка помех автоматически. @@ -86,6 +93,7 @@ func on_button_view_toggled(toggled: bool): var s = map_sizes[int(toggled)] $tilemap.size = s.size $tilemap.position = s.position + view_mode = MapViewMode.RLS if toggled else MapViewMode.RTO ## Встроенный обратный вызов. @@ -379,7 +387,7 @@ func _on_drag_begin(event) -> void: ## Обработчик событий ввода. Вызывается godot. func _input(event) -> void: if not is_visible_in_tree(): return - if event is InputEventMouseMotion: + if (event is InputEventMouseMotion) and (view_mode == MapViewMode.RTO): if drag_fsm == DragFSM.DRAG: emit_signal('drag_continue', event) elif event is InputEventMouseButton: