Advertisement
PokemonMaster124

Cursor Problem

Jun 21st, 2022 (edited)
1,857
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. extends TextureRect
  2.  
  3. export var menu_parent_path: NodePath
  4. onready var menu_parent = get_node(menu_parent_path)
  5.  
  6. var v_id = 0
  7. var h_id = 0
  8. var g_id = Vector2.ZERO
  9.  
  10. export var movable: bool = false
  11.  
  12. func _process(_delta):
  13.     if visible and movable:
  14.         if menu_parent is HBoxContainer:
  15.             h_input()
  16.         elif menu_parent is VBoxContainer:
  17.             v_input()
  18.         elif menu_parent is GridContainer:
  19.             g_input()
  20.     if visible:
  21.         if menu_parent is HBoxContainer:
  22.             h_id = posmod(h_id, menu_parent.get_child_count())
  23.             rect_global_position = Vector2(menu_parent.get_child(h_id).rect_global_position.x - 20, menu_parent.get_child(h_id).rect_global_position.y)
  24.         elif menu_parent is VBoxContainer:
  25.             v_id = posmod(v_id, menu_parent.get_child_count())
  26.             rect_global_position = Vector2(menu_parent.get_child(v_id).rect_global_position.x - 20, menu_parent.get_child(v_id).rect_global_position.y)
  27.         elif menu_parent is GridContainer:
  28.             var count_col = get_count_at_column(g_id.x)
  29.             var count_row = get_count_at_row(g_id.y)
  30.             g_id.x = posmod(g_id.x, count_row)
  31.             g_id.y = posmod(g_id.y, count_col)
  32.             rect_global_position = Vector2(menu_parent.get_child(g_id.x + g_id.y * menu_parent.columns).rect_global_position.x - 20, menu_parent.get_child(g_id.x + g_id.y * menu_parent.columns).rect_global_position.y)
  33.  
  34.  
  35. func h_input():
  36.     if Input.is_action_just_pressed("left"):
  37.         h_id -= 1
  38.     elif Input.is_action_just_pressed("right"):
  39.         h_id += 1
  40.  
  41. func v_input():
  42.     if Input.is_action_just_pressed("up"):
  43.         v_id -= 1
  44.     elif Input.is_action_just_pressed("down"):
  45.         v_id += 1
  46.  
  47. func g_input():
  48.     if Input.is_action_just_pressed("left"):
  49.         g_id.x -= 1
  50.     elif Input.is_action_just_pressed("right"):
  51.         g_id.x += 1
  52.     elif Input.is_action_just_pressed("up"):
  53.         g_id.y -= 1
  54.     elif Input.is_action_just_pressed("down"):
  55.         g_id.y += 1
  56.  
  57.  
  58. func get_count_at_column(column: int):
  59.     var elements = menu_parent.get_child_count() / menu_parent.columns
  60.     var remaining_elements = menu_parent.get_child_count() % menu_parent.columns
  61.    
  62.     if column < remaining_elements:
  63.         return elements + 1
  64.     return elements
  65.  
  66. func get_count_at_row(row: int):
  67.     if row < menu_parent.get_child_count() / menu_parent.columns:
  68.         return menu_parent.columns
  69.     else:
  70.         return menu_parent.get_child_count() % menu_parent.columns
  71.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement