platformer-game-test/src/Scripts/WarpZone.gd

27 lines
679 B
GDScript3
Raw Normal View History

extends Area2D
class_name WarpZone
signal player_entered
2020-10-31 21:50:16 +00:00
export var to_level_coord:Vector2 = Vector2(-1, -1)
export var is_exit:bool = true
const spawn_offset = 30
2020-10-31 21:50:16 +00:00
var initialized = false
const NON_SPECIFIED_LEVEL :=Vector2(-1, -1)
2020-10-30 13:05:56 +00:00
2020-10-30 13:05:56 +00:00
func _ready() -> void:
2020-10-31 21:50:16 +00:00
if not initialized: add_to_group("WarpZones")
initialized = true;
2020-10-30 13:05:56 +00:00
func _on_body_entered(body:Node):
if body.name == "Player" and get_parent().is_active_level:
2020-10-31 21:50:16 +00:00
print("Warp - exit=%s to_level=%s" % [is_exit, to_level_coord])
emit_signal("player_entered", is_exit, to_level_coord)
func get_checkpoint_position():
var factor = -1 if is_exit else 1
return position + Vector2(factor * spawn_offset, 0)