@tool extends Area2D #TODO: I need to remake stickers by exporting node directly instead of customizing all the thing in export tab. @export_group("Sticker Detection Shape") @export var Shape :Shape2D: set(new_shape): Shape = new_shape $StickerDetectionShape.shape = Shape $StickerDetectionShape.queue_redraw() @export var Position :Vector2: set(new_position): Position = new_position $StickerDetectionShape.position = Position $StickerDetectionShape.queue_redraw() @export var Rotation :float: set(new_rotation): Rotation = new_rotation $StickerDetectionShape.rotation = Rotation $StickerDetectionShape.queue_redraw() @export_group("Sticker Sprites") @export var WorldSprite:Texture2D: set(new_texture): WorldSprite = new_texture $StickerSprite.texture = WorldSprite $StickerSprite.queue_redraw() @export var StickerSprite:Texture2D @export var Offset:Vector2: set(new_offset): Offset = new_offset $StickerSprite.offset = Offset $StickerSprite.queue_redraw() @export var FlipH:bool: set(flip): FlipH = flip $StickerSprite.flip_h = FlipH $StickerSprite.queue_redraw() @export var OutlineMat:ShaderMaterial = preload("res://shaders/shaderMaterial_Outline.tres") @export var PreviewSticker:bool: set(set_preview): PreviewSticker = set_preview if (PreviewSticker): $StickerSprite.texture = StickerSprite else: $StickerSprite.texture = WorldSprite $StickerSprite.queue_redraw() @export var Foiled:bool #TODO: Foil material and logic func _ready(): if (position != Vector2(0,0)): position == Vector2(0,0) printerr(self," should not have transform, resetting") if (get_parent() == get_tree().root): printerr("stickers should always have a parent") breakpoint func on_released(): print(self," released") get_parent().top_level = false get_parent().reparent(MapManager.current_scene.get_child(0)) for _childNode in get_parent().get_children(): _childNode.set_deferred("disabled",false) if(_childNode != self): _childNode.visible = true func on_click(): print(self," clicked") func on_hover(): if (StickerSprite != null): $StickerSprite.texture = StickerSprite else: $StickerSprite.texture = WorldSprite $StickerSprite.material = OutlineMat queue_redraw() func on_unhover(): $StickerSprite.texture = WorldSprite $StickerSprite.material = null queue_redraw() func on_grab(_offset:Vector2=Vector2(0.0,0.0)): get_parent().top_level = true get_parent().reparent(get_tree().root) for _childNode in get_parent().get_children(): _childNode.set_deferred("disabled",true) if(_childNode != self): _childNode.visible = false #func _on_tree_entered(): #if(ParentSprite != null): #var StickerTag:Array #StickerTag.append("sticker") #Global.add_tags(ParentSprite,StickerTag) #func _on_tree_exited(): #if(ParentSprite != null): #var StickerTag:Array #StickerTag.append("sticker") #Global.remove_tags(ParentSprite,StickerTag)