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
|
test = null
|
||||||
|
|
||||||
var meta:PackedStringArray = ["sticker"]
|
var meta:PackedStringArray = ["sticker"]
|
||||||
|
var detected_solids:Array
|
||||||
|
var detected_stickers:Array
|
||||||
func _init():
|
func _init():
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 0
|
collision_mask = 15
|
||||||
set_meta("tags",meta)
|
set_meta("tags",meta)
|
||||||
monitoring = false
|
monitoring = true
|
||||||
|
|
||||||
func _enter_tree():
|
func _enter_tree():
|
||||||
set_meta("tags",meta)
|
set_meta("tags",meta)
|
||||||
|
@ -41,8 +42,24 @@ func _ready():
|
||||||
if (get_parent() == get_tree().root):
|
if (get_parent() == get_tree().root):
|
||||||
printerr("stickers should always have a parent")
|
printerr("stickers should always have a parent")
|
||||||
breakpoint
|
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):
|
func _process(delta):
|
||||||
pass
|
pass
|
||||||
|
@ -88,14 +105,14 @@ func on_grab(_offset:Vector2=Vector2(0.0,0.0)):
|
||||||
get_parent().reparent(get_tree().root)
|
get_parent().reparent(get_tree().root)
|
||||||
update_ChildNodes_visibilty(false)
|
update_ChildNodes_visibilty(false)
|
||||||
disable_ChildNodes_collisions(true)
|
disable_ChildNodes_collisions(true)
|
||||||
|
|
||||||
func update_ChildNodes_visibilty(_visible:bool=true):
|
func update_ChildNodes_visibilty(_visible:bool=true):
|
||||||
for _childNode in get_parent().get_children():
|
for _childNode in get_parent().get_children():
|
||||||
if(_childNode != WorldSprite and _childNode != StickerSprite):
|
if(_childNode != WorldSprite and _childNode != StickerSprite):
|
||||||
_childNode.visible = _visible
|
_childNode.visible = _visible
|
||||||
|
|
||||||
func disable_ChildNodes_collisions(_disable:bool=true):
|
func disable_ChildNodes_collisions(_disable:bool=true):
|
||||||
for _childNode in get_parent().get_children():
|
for _childNode in get_parent().get_children():
|
||||||
if (_childNode != self):
|
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_1="Player"
|
||||||
2d_physics/layer_2="Stickers"
|
2d_physics/layer_2="Stickers"
|
||||||
|
2d_physics/layer_3="Zone"
|
||||||
|
2d_physics/layer_4="PNJ"
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue