Enhanced snail interaction and sleep behavior
The update includes improvements to the snail's interactive behavior. Now, when the mouse hovers over a snail that is eating, it changes to a hand cursor. This change enhances user feedback during interaction. Additionally, the sleeping state of the snail has been expanded. The snail now wakes up after a random interval between 15 and 25 seconds. A timer tracks this duration and triggers a state transition to "Eating" once elapsed. A new hand cursor resource was also added to the CursorManager for use in these interactions.
This commit is contained in:
parent
f0a7c5ca05
commit
7d47bdbf5a
3 changed files with 23 additions and 5 deletions
|
|
@ -37,8 +37,10 @@ func get_random_target() -> Vector2:
|
||||||
return flowers.get_random_circumference_points()
|
return flowers.get_random_circumference_points()
|
||||||
|
|
||||||
func on_mouse_entered() -> void:
|
func on_mouse_entered() -> void:
|
||||||
mouse_over = true
|
if eating:
|
||||||
Log.pr("Mouse entered the snail!")
|
mouse_over = true
|
||||||
|
CursorMgr.hand()
|
||||||
|
Log.pr("Mouse entered the snail!")
|
||||||
|
|
||||||
func on_mouse_exited() -> void:
|
func on_mouse_exited() -> void:
|
||||||
# Reset the cursor to the default
|
# Reset the cursor to the default
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,26 @@ class_name SnailSleeping
|
||||||
|
|
||||||
@onready var snail : Snail = get_parent().get_parent() as Snail # I think this is bad but I dont care it works
|
@onready var snail : Snail = get_parent().get_parent() as Snail # I think this is bad but I dont care it works
|
||||||
|
|
||||||
|
var wakes_up_in : float = 0
|
||||||
|
var sleep_timer : float = 0
|
||||||
|
|
||||||
func enter(_msg : Dictionary = {}) -> void:
|
func enter(_msg : Dictionary = {}) -> void:
|
||||||
Log.pr("I am a snail asleep...")
|
Log.pr("I am a snail asleep...")
|
||||||
|
snail.rotation = 0
|
||||||
|
CursorMgr.reset_cursor()
|
||||||
|
|
||||||
|
# Decide how many seconds until the snail wakes up again
|
||||||
|
wakes_up_in = randf_range(15.0, 25.0)
|
||||||
|
sleep_timer = 0
|
||||||
|
|
||||||
func exit() -> void:
|
func exit() -> void:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func update(_delta : float) -> void:
|
func update(delta : float) -> void:
|
||||||
pass
|
sleep_timer += delta
|
||||||
|
|
||||||
|
if sleep_timer > wakes_up_in:
|
||||||
|
state_transition.emit(self, "Eating")
|
||||||
|
|
||||||
func physics_update(_delta : float) -> void:
|
func physics_update(_delta : float) -> void:
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ class_name CursorManager
|
||||||
@onready var default_cursor : Resource = preload("res://resources/cursors/pointer_a.png")
|
@onready var default_cursor : Resource = preload("res://resources/cursors/pointer_a.png")
|
||||||
@onready var place_cursor : Resource = preload("res://resources/cursors/target_round_b.png")
|
@onready var place_cursor : Resource = preload("res://resources/cursors/target_round_b.png")
|
||||||
@onready var edit_cursor : Resource = preload("res://resources/cursors/message_dots_round.png")
|
@onready var edit_cursor : Resource = preload("res://resources/cursors/message_dots_round.png")
|
||||||
|
@onready var hand_cursor : Resource = preload("res://resources/cursors/hand_open.png")
|
||||||
|
|
||||||
func reset_cursor() -> void:
|
func reset_cursor() -> void:
|
||||||
Input.set_custom_mouse_cursor(default_cursor, Input.CURSOR_ARROW, Vector2(8, 8))
|
Input.set_custom_mouse_cursor(default_cursor, Input.CURSOR_ARROW, Vector2(8, 8))
|
||||||
|
|
@ -12,4 +13,7 @@ func place() -> void:
|
||||||
Input.set_custom_mouse_cursor(place_cursor, Input.CURSOR_ARROW, Vector2(32, 32))
|
Input.set_custom_mouse_cursor(place_cursor, Input.CURSOR_ARROW, Vector2(32, 32))
|
||||||
|
|
||||||
func edit() -> void:
|
func edit() -> void:
|
||||||
Input.set_custom_mouse_cursor(edit_cursor, Input.CURSOR_ARROW, Vector2(32, 32))
|
Input.set_custom_mouse_cursor(edit_cursor, Input.CURSOR_ARROW, Vector2(32, 32))
|
||||||
|
|
||||||
|
func hand() -> void:
|
||||||
|
Input.set_custom_mouse_cursor(hand_cursor, Input.CURSOR_ARROW, Vector2(32, 32))
|
||||||
Loading…
Add table
Add a link
Reference in a new issue