initial commit
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
extends Control
|
||||
class_name MovableControl
|
||||
|
||||
@export_category("Logic")
|
||||
@export var move_target: BaseWidgetNode
|
||||
|
||||
var is_hovering: bool
|
||||
var is_grab: bool
|
||||
var mouse_down_pos: Vector2
|
||||
|
||||
func _ready() -> void:
|
||||
mouse_entered.connect(func(): is_hovering = true)
|
||||
mouse_exited.connect(func(): is_hovering = false)
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
#print(is_hovering)
|
||||
if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT) and is_hovering and not is_grab:
|
||||
mouse_down_pos = get_viewport().get_mouse_position()
|
||||
is_grab = true
|
||||
|
||||
if is_grab and not Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT):
|
||||
is_grab = false
|
||||
|
||||
if is_grab:
|
||||
var current_mouse_pos: Vector2 = get_global_mouse_position()
|
||||
var offset: Vector2 = current_mouse_pos - mouse_down_pos
|
||||
move_target.position += offset
|
||||
mouse_down_pos = current_mouse_pos
|
||||
Reference in New Issue
Block a user