diff --git a/core/stickernode.gd b/core/stickernode.gd index 4b1538e..0423fe2 100644 --- a/core/stickernode.gd +++ b/core/stickernode.gd @@ -24,12 +24,13 @@ class_name Sticker extends Area2D test = null var meta:PackedStringArray = ["sticker"] - +var detected_solids:Array +var detected_stickers:Array func _init(): collision_layer = 2 - collision_mask = 0 + collision_mask = 15 set_meta("tags",meta) - monitoring = false + monitoring = true func _enter_tree(): set_meta("tags",meta) @@ -41,8 +42,24 @@ func _ready(): if (get_parent() == get_tree().root): printerr("stickers should always have a parent") breakpoint + body_entered.connect(_on_body_entered) + body_exited.connect(_on_body_exited) + area_entered.connect(_on_area_entered) + area_exited.connect(_on_area_exited) - +func _on_body_entered(body:Node2D): + print("body entered",body) + detected_solids.append(body) +func _on_body_exited(body:Node2D): + print("body exited",body) + detected_solids.erase(body) +func _on_area_entered(area:Area2D): + print("area entered",area) + #TODO:Filter by type + detected_stickers.append(area) +func _on_area_exited(area:Area2D): + print("area exited",area) + detected_stickers.erase(area) func _process(delta): pass @@ -88,14 +105,14 @@ func on_grab(_offset:Vector2=Vector2(0.0,0.0)): get_parent().reparent(get_tree().root) update_ChildNodes_visibilty(false) disable_ChildNodes_collisions(true) - + func update_ChildNodes_visibilty(_visible:bool=true): for _childNode in get_parent().get_children(): if(_childNode != WorldSprite and _childNode != StickerSprite): _childNode.visible = _visible - + func disable_ChildNodes_collisions(_disable:bool=true): for _childNode in get_parent().get_children(): if (_childNode != self): - _childNode.process_mode = Node.PROCESS_MODE_DISABLED if _disable else Node.PROCESS_MODE_ALWAYS - + _childNode.process_mode = Node.PROCESS_MODE_DISABLED if _disable else Node.PROCESS_MODE_ALWAYS + diff --git a/project.godot b/project.godot index 416a23b..fe532f7 100644 --- a/project.godot +++ b/project.godot @@ -122,6 +122,8 @@ mouse_right={ 2d_physics/layer_1="Player" 2d_physics/layer_2="Stickers" +2d_physics/layer_3="Zone" +2d_physics/layer_4="PNJ" [rendering]