extends Node3D @onready var outline_shader = preload("res://Shaders/outline.gdshader") @onready var food_item = preload("res://Scenes/Prefabs/food_item.tscn") @export var debugLabel1: Label signal interact(person,interact_object) signal object_selected_signal signal object_unselected_signal signal object_over_mouse_selected_signal(object) signal object_over_mouse_unselected_signal(object) signal show_context_menu signal hide_context_menu var is_context_menu_active: bool = false var object_selected var object_over_mouse func _ready() -> void: interact.connect(_on_interact) object_selected_signal.connect(_on_object_selected) object_unselected_signal.connect(_on_object_unselected) object_over_mouse_selected_signal.connect(_on_mouse_object_selected) object_over_mouse_unselected_signal.connect(_on_mouse_object_unselected) func _input(event: InputEvent) -> void: if event.is_action_released("mouse_click") and !is_context_menu_active: if object_over_mouse != null: object_selected_signal.emit(object_over_mouse) else: object_unselected_signal.emit() if event.is_action_released("right_mouse_click"): show_context_menu.emit() func _on_interact(person, object): if object.name == "ActionNode": object.start_action(person, object) else: object.ActionNode.start_action(person, object) func _on_object_selected(object): if object_selected != null and object != object_selected: object_unselected_signal.emit() object_selected = object object_selected.is_selected = true print(object_selected) func _on_object_unselected(): if object_selected != null: object_selected.is_selected = false object_selected.disable_outline() object_selected = null func _on_mouse_object_selected(object): object_over_mouse = object func _on_mouse_object_unselected(object): object_over_mouse = null