diff --git a/core/Cursor.gd b/core/Cursor.gd index 80a6824..ddf7add 100644 --- a/core/Cursor.gd +++ b/core/Cursor.gd @@ -33,15 +33,6 @@ func _process(_delta): grabbedSticker.position = grabbedStickerOffset+get_global_mouse_position() -func isSticker(selectedObject:Node): - var _isSticker:bool = false - var _tags = Global.getTags(selectedObject) - if (_tags.size() > 0): - if (_tags.find("sticker") != -1): - _isSticker = true - - return _isSticker - func pointcast(): resetCast() query.collide_with_areas = true @@ -67,7 +58,7 @@ func pointcast(): if (hoveredObject and hoveredObject.has_method("on_hover")): hoveredObject.on_hover() print("Current hovered object :", hoveredObject) - if (isSticker(hoveredObject)): + if (Global.isSticker(hoveredObject)): hoveredSticker = hoveredObject print("Current hovered sticker :", hoveredSticker) else: diff --git a/core/global.gd b/core/global.gd index 39115e9..97fcea5 100644 --- a/core/global.gd +++ b/core/global.gd @@ -10,7 +10,7 @@ func _ready(): func _process(_delta): pass -func getTags(selectedObject:Node): +func get_tags(selectedObject:Node): var _tags: Array if (selectedObject.has_meta("tags")): _tags = selectedObject.get_meta("tags") @@ -19,3 +19,25 @@ func getTags(selectedObject:Node): printerr("no tags inside %",selectedObject) return _tags +func add_tags(selectedObject:Node,tags:Array): + var _all_tags:Array + if (selectedObject.has_meta("tags")): + _all_tags = selectedObject.get_meta("tags") + _all_tags.append(tags) + selectedObject.set_meta("tags",_all_tags) + +func remove_tags(selectedObject:Node,tags:Array): + if (selectedObject.has_meta("tags")): + var _all_tags:Array + _all_tags = selectedObject.get_meta("tags") + for _tag in tags: + _all_tags.erase(_tag) + +func isSticker(selectedObject:Node): + var _isSticker:bool = false + var _tags = get_tags(selectedObject) + if (_tags.size() > 0): + if (_tags.find("sticker") != -1): + _isSticker = true + + return _isSticker