Files
gymkhana-actions/game/ui/ui_mouse_icons/verbs_mouseicons.gd
Dennis Ploeger 746a724f5a ESC compiler rewrite
Splits the former ESC_Runner and ESC_Level_Runner into multiple dedicated managers. 
Authored-by: Dennis Ploeger <develop@dieploegers.de>
2021-06-04 16:12:42 +02:00

55 lines
1.4 KiB
GDScript

tool
extends Control
var current_cursor_id : int = 0
onready var cursors : Array = $actions.get_children()
"""
This script is out of Escoria's scope. It controls the UI reaction to an
UI event (eg right click) to change the cursor accordingly.
"""
enum UI_ACTIONS_DIRECTION {
UP = 1,
DOWN = -1
}
func _ready():
if !Engine.is_editor_hint():
current_cursor_id = cursors.size()
iterate_actions_cursor(UI_ACTIONS_DIRECTION.UP)
func _process(delta):
$mouse_position.rect_global_position = get_global_mouse_position()
func iterate_actions_cursor(direction : int):
current_cursor_id += direction
if current_cursor_id > cursors.size() - 1:
current_cursor_id = 0
elif current_cursor_id < 0:
current_cursor_id = cursors.size() - 1
Input.set_custom_mouse_cursor(cursors[current_cursor_id].texture)
escoria.action_manager.set_current_action(cursors[current_cursor_id].name)
if $mouse_position/tool.texture != null:
clear_tool_texture()
func set_by_name(name : String) -> void:
for i in cursors.size():
if cursors[i].name == name:
current_cursor_id = i
break
Input.set_custom_mouse_cursor(cursors[current_cursor_id].texture)
escoria.action_manager.set_current_action(cursors[current_cursor_id].name)
func set_tool_texture(texture : Texture):
set_process(true)
$mouse_position/tool.texture = texture
func clear_tool_texture():
$mouse_position/tool.texture = null
set_process(false)