From 9e14cc915ec1a49112a9c7d083c8623c2aad6dc3 Mon Sep 17 00:00:00 2001 From: LUCASTUCIOUS Date: Sun, 28 Jul 2024 22:49:46 +0200 Subject: [PATCH] move sticker !! --- core/Cursor.gd | 12 ++++++++++-- prefab/free_sticker.tscn | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/core/Cursor.gd b/core/Cursor.gd index 4c9464c..bac701f 100644 --- a/core/Cursor.gd +++ b/core/Cursor.gd @@ -8,6 +8,7 @@ var hoveredObjects : Array var hoveredObject var hoveredSticker var grabbedSticker +var grabbedStickerOffset enum CURSOR_STATE {DEFAULT, CLICK, GRAB, GRABBED} var currentCursorState:CURSOR_STATE = CURSOR_STATE.DEFAULT @@ -28,6 +29,8 @@ func _process(_delta): #endregion pointcast() cursor_look() + if (grabbedSticker): + grabbedSticker.position = grabbedStickerOffset+get_global_mouse_position() func isSticker(selectedObject:Node): @@ -117,10 +120,15 @@ func _input(rawInputEvent:InputEvent): grab_end() func grab_start(): - if (hoveredSticker): + if (hoveredSticker and grabbedSticker == null): grabbedSticker = hoveredSticker + print("Grabbed ", grabbedSticker) - + grabbedStickerOffset = grabbedSticker.position - get_global_mouse_position() + print("offset =", grabbedStickerOffset, " Stickpos:",grabbedSticker.position,"-",get_global_mouse_position() ) + if (grabbedSticker.has_method("on_grab")): + grabbedSticker.on_grab(grabbedStickerOffset) + func grab_end(): grabbedSticker.on_released() diff --git a/prefab/free_sticker.tscn b/prefab/free_sticker.tscn index 7e6c587..a072aa3 100644 --- a/prefab/free_sticker.tscn +++ b/prefab/free_sticker.tscn @@ -43,6 +43,9 @@ func on_hover(): func on_unhover(): material = null queue_redraw() + +func on_grab(_offset:Vector2=Vector2(0.0,0.0)): + pass " [node name="FreeSticker1" type="Sprite2D"]