Compare commits

...

11 commits

12 changed files with 50 additions and 3 deletions

View file

@ -14,6 +14,11 @@ config/name="girl will never sing again"
config/features=PackedStringArray("4.5", "GL Compatibility")
config/icon="uid://4aq8ekc6sruc"
[autoload]
GameDirector="*res://scenes/autoload/game_director.gd"
EventBus="*res://scenes/autoload/event_bus.gd"
[debug]
gdscript/warnings/untyped_declaration=2

8
resources/waypoint.gd Normal file
View file

@ -0,0 +1,8 @@
# TODO: better name
class_name Waypoint
extends Resource
#@export var from_scene: PackedScene
@export var to_scene: PackedScene
@export var spawn_coordinates: Vector2i

View file

@ -0,0 +1 @@
uid://cbj1m2pm266x1

View file

@ -0,0 +1,5 @@
extends Node
@warning_ignore("unused_signal")
signal room_changed(previous_room: StringName, next_room: StringName, waypoint: Waypoint)

View file

@ -0,0 +1 @@
uid://bmfdu1fyum1nf

View file

@ -0,0 +1,23 @@
extends Node
func goto_room(previous_room: Room, waypoint: Waypoint) -> void:
print("changing rooms")
# for signal
var prev_name: StringName
var next_name: StringName
prev_name = previous_room.name
# wait until previous room is freed
await previous_room.tree_exited
# instantiate next room and set room variables
var next_room: Room = waypoint.to_scene.instantiate()
next_name = next_room.name
next_room.initial_spawn = waypoint.spawn_coordinates
get_tree().root.add_child(next_room)
# notify event bus
EventBus.room_changed.emit(prev_name, next_name, waypoint)

View file

@ -0,0 +1 @@
uid://b4ydqderhu3mr

View file

@ -9,7 +9,7 @@ func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void:
func _state_physics_update(_delta: float) -> void:
#region player physics
var direction: Vector2 = player.get_movement_vector()
direction = direction.normalized()
#direction = direction.normalized() # unneeded with 4 way movement
player.velocity = direction * player.max_speed * player.speed_mult
player.move_and_slide()

View file

@ -6,7 +6,9 @@ class_name Room extends Node2D
@onready var camera: RoomCamera = $RoomCamera
@onready var director: StateMachine = $RoomDirector
var player_scene: PackedScene = preload("res://scenes/player/player.tscn")
# TODO: better alternatice to preloading as i add functionality?
# https://theduriel.github.io/Godot/Do-not-use---Preload
var player_scene: PackedScene = preload("uid://cqm5besqgsb7x")
var player: Player
var initial_spawn: Vector2i = Vector2i(16,16)

View file

@ -8,6 +8,7 @@
[ext_resource type="Script" uid="uid://ceevyto3vbq7c" path="res://scenes/room/states/room_paused.gd" id="6_gui0a"]
[node name="Room" type="Node2D"]
y_sort_enabled = true
script = ExtResource("1_8xru0")
[node name="RoomDirector" type="Node" parent="." node_paths=PackedStringArray("initial_state")]

View file

@ -1,7 +1,7 @@
@tool class_name RoomConfig extends Resource
@export var size: Vector2i = Vector2i.ZERO
#@export var size: Vector2i = Vector2i.ZERO
@export var follow_player: bool = true
@export var camera_position: Vector2i = Vector2i.ZERO