interior tiles and scene transitions

This commit is contained in:
2025-10-27 02:54:20 +01:00
parent eea9c18358
commit b36923a196
14 changed files with 196 additions and 82 deletions

View File

@@ -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()

View File

@@ -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)

View File

@@ -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)