extends Area2D

export(String) var receiver_node_name = ""

# Declare member variables here. Examples:
# var a = 2
# var b = "text"


## Called when the node enters the scene tree for the first time.
#func _ready():
#	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
#	pass

##TODO: maybe guarantee type with receiver node type instead of just the name.
# The the name helps keep the receiver type generic.

func _on_GenericSender_body_entered(body):
	if body.has_node(receiver_node_name):
		body.get_node(receiver_node_name).on_body_entered(self)


#func _on_Hurtbox_Component_area_shape_entered(area_rid, area, area_shape_index, local_shape_index):
#	#print(area.get_parent().name, "hit", owner.name)
##	if area.get_parent().has_method("gotcha"):
#	print(area.get_parent().name, " you can do it.", owner.name)
#
#	if owner.has_method("_on_Hurtbox_area_entered"):
#		owner.call("_on_Hurtbox_area_entered")
#		print(area.get_parent().name, " just hit me: ", owner.name)



func _on_GenericSender_area_shape_entered(area_rid, area, area_shape_index, local_shape_index):
	if area.get_parent().has_node(receiver_node_name):
		area.get_parent().get_node(receiver_node_name).on_body_entered(self)
	
