demon.gd 829 B

1234567891011121314151617181920212223242526272829
  1. extends Area2D
  2. class_name Demon
  3. var is_being_dragged: bool = false
  4. func _on_mouse_entered():
  5. if not GlobalInput.is_dragging():
  6. # TODO: add custom cursor image
  7. Input.set_custom_mouse_cursor(null, Input.CURSOR_MOVE)
  8. func _on_mouse_exited():
  9. if not GlobalInput.is_dragging():
  10. # TODO: add custom cursor image
  11. Input.set_custom_mouse_cursor(null, Input.CURSOR_ARROW)
  12. func _on_input_event(_viewport: Node, event: InputEvent, _shape_idx: int):
  13. if event is InputEventMouseButton:
  14. handle_click(event)
  15. func handle_click(event: InputEventMouseButton):
  16. if event.button_index != MOUSE_BUTTON_LEFT:
  17. return
  18. if event.pressed && not GlobalInput.is_dragging():
  19. is_being_dragged = true
  20. GlobalInput.start_dragging(self)
  21. elif not event.pressed && is_being_dragged:
  22. is_being_dragged = false
  23. GlobalInput.stop_dragging()