make hovering_manager to manage hovers from one place

This commit is contained in:
2024-10-06 18:34:54 +10:00
parent adbf71ad02
commit 2eb3369b95
7 changed files with 52 additions and 52 deletions

View File

@@ -26,7 +26,7 @@ func _ready() -> void:
assert(selection_sprite != null, "selection_sprite missing!")
set_selected(false)
if spawn_pos != null:
if spawn_pos != null and spawn_pos != Vector3.ZERO:
global_position = spawn_pos
super._ready()

View File

@@ -8,6 +8,7 @@ var max_wander_distance: float = 5
var min_wander_interval: float = 0.25
var max_wander_interval: float = 5
var hovered_rect: bool = false
var hovered: bool = false
var is_on_screen: bool = false
var wandering_timer: float = 0
@@ -28,12 +29,9 @@ func _ready() -> void:
assert(visibility_notifier != null, "visibility_notifier missing!")
wandering_center = global_position
set_hovered(false)
nav_agent.max_speed = MOVE_SPEED
nav_agent.velocity_computed.connect(_on_nav_agent_velocity_computed)
set_max_slides(2)
mouse_entered.connect(_on_mouse_entered)
mouse_exited.connect(_on_mouse_exited)
visibility_notifier.screen_entered.connect(
_on_visibility_notifier_screen_entered,
)
@@ -43,15 +41,17 @@ func _ready() -> void:
func _process(delta: float) -> void:
hovered = HoveringManager.hovered_node == self
_animate(delta)
hover_sprite.visible = hovered or hovered_rect
func _physics_process(_delta: float) -> void:
_navigate()
func set_hovered(on: bool) -> void:
hovered = on
func set_hovered_rect(on: bool) -> void:
hovered_rect = on
func _navigate() -> void:
@@ -111,14 +111,6 @@ func _on_nav_agent_velocity_computed(safe_velocity: Vector3) -> void:
move_and_slide()
func _on_mouse_entered() -> void:
set_hovered(true)
func _on_mouse_exited() -> void:
set_hovered(false)
func _on_visibility_notifier_screen_entered() -> void:
is_on_screen = true