Commit of existing data.
This commit is contained in:
Executable
+39
@@ -0,0 +1,39 @@
|
||||
class_name DoorZone
|
||||
extends Area2D
|
||||
|
||||
@export_category("Outgoing")
|
||||
@export_file("*.tscn") var TargetRoomPath: String
|
||||
@export var TargetDoor: String
|
||||
@export var PreserveX: bool = false
|
||||
@export var PreserveY: bool = false
|
||||
@export var PreserveVelocity: bool = false
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta: float) -> void:
|
||||
pass
|
||||
|
||||
|
||||
func _on_body_entered(body: Node2D) -> void:
|
||||
if body is Player:
|
||||
if self.name == global.player_target:
|
||||
return
|
||||
var offset := Vector2(0., 0.);
|
||||
if PreserveX:
|
||||
offset.x = body.position.x - self.position.x
|
||||
if PreserveY:
|
||||
offset.y = body.position.y - self.position.y
|
||||
global.player_offset = offset
|
||||
global.player_velocity = Vector2(0., 0.)
|
||||
if PreserveVelocity:
|
||||
global.player_velocity = body.velocity
|
||||
global.player_target = TargetDoor
|
||||
global.goto_scene(load(TargetRoomPath))
|
||||
|
||||
|
||||
func _on_body_exited(body: Node2D) -> void:
|
||||
global.player_target = ""
|
||||
Reference in New Issue
Block a user