interior tiles and scene transitions
This commit is contained in:
@@ -3,14 +3,19 @@ extends Node
|
||||
var player_free: bool = true
|
||||
var player: Player
|
||||
|
||||
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
||||
|
||||
enum Events { NONE, PUMPKIN_CARVE, OUTSIDE_NORMAL }
|
||||
var current_event: Events = Events.NONE
|
||||
|
||||
func transition_start() -> void:
|
||||
pass
|
||||
player_free = false
|
||||
animation_player.play("transition")
|
||||
|
||||
func transition_end() -> void:
|
||||
pass
|
||||
animation_player.play_backwards("transition")
|
||||
await animation_player.animation_finished
|
||||
player_free = true
|
||||
|
||||
func run_event(event: Events, player_postion: Vector2 = Vector2.ZERO):
|
||||
current_event = event
|
||||
@@ -23,3 +28,10 @@ func run_event(event: Events, player_postion: Vector2 = Vector2.ZERO):
|
||||
await get_tree().scene_changed
|
||||
player.animated_sprite.animation = "sit" # should be replaced with chair interaction trigger
|
||||
transition_end()
|
||||
|
||||
func transition_scene_file(scene: String) -> void:
|
||||
if !animation_player.is_playing():
|
||||
transition_start()
|
||||
get_tree().call_deferred("change_scene_to_file", scene)
|
||||
await get_tree().scene_changed
|
||||
transition_end()
|
||||
|
||||
@@ -3,4 +3,11 @@ extends Area2D
|
||||
|
||||
signal interacted(player: Player)
|
||||
|
||||
@export var auto_interact: bool = false
|
||||
|
||||
func interact(player: Player) -> void: interacted.emit(player)
|
||||
|
||||
|
||||
func _on_body_entered(body: Node2D) -> void:
|
||||
if auto_interact && body is Player:
|
||||
interacted.emit(body as Player)
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
extends Node2D
|
||||
|
||||
@export var scene: PackedScene
|
||||
@export_file_path("*.tscn") var scene: String
|
||||
@export var auto_interact: bool = false
|
||||
|
||||
func _ready() -> void: $Interactable.auto_interact = auto_interact
|
||||
|
||||
func _on_interacted(_player: Player) -> void:
|
||||
get_tree().change_scene_to_packed(scene)
|
||||
EventManager.transition_scene_file(scene)
|
||||
|
||||
Reference in New Issue
Block a user