WIP: sticker land detection + sticker mode
This commit is contained in:
parent
a4c7e49438
commit
cb570cc0f4
2 changed files with 27 additions and 8 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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]
|
||||
|
||||
|
|
Loading…
Reference in a new issue