Godot-RTS-Template/Core/cursor_behaviour.gd

25 lines
993 B
GDScript3
Raw Normal View History

2025-07-18 15:44:53 +00:00
extends Node
## Handle all the cursor appareance related stuff.
2025-07-21 15:46:53 +00:00
2025-07-21 17:07:26 +00:00
# Mapping 8 primary directions to custom cursor images
const DIRECTION_CURSOR_MAP = {
Vector2(-1, -1): preload("uid://bnwb6728ln3ae"),
Vector2(0, -1): preload("uid://cgx332aowj6dn"),
Vector2(1, -1): preload("uid://dmn7dlir4ohff"),
Vector2(1, 0): preload("uid://bwfy3euyxmi7j"),
Vector2(1, 1): preload("uid://cpklilc6jmw0d"),
Vector2(0, 1): preload("uid://cbr6j5g1ipdi4"),
Vector2(-1, 1): preload("uid://doia8nobwmv4n"),
Vector2(-1, 0): preload("uid://bqg7s8lukudkc"),
Vector2(0, 0): preload("uid://dp4ed16rb1754"),
}
var edge_scroll_vector = Vector2(1,1)
2025-07-21 15:46:53 +00:00
func _on_player_root_cursor_edge_scrolling(direction: Vector2) -> void:
2025-07-21 17:07:26 +00:00
if direction.length() > 0 or edge_scroll_vector.length() != 0:
#print("direction lenght = ",direction.length()," and stored vector is ", edge_scroll_vector.length())
edge_scroll_vector = direction
Input.set_custom_mouse_cursor(DIRECTION_CURSOR_MAP.get(direction))
print(direction)