Compare commits
11 commits
cbc83e8d20
...
1ae389ff42
| Author | SHA1 | Date | |
|---|---|---|---|
| 1ae389ff42 | |||
| c8223643b8 | |||
| 0ac147c3c7 | |||
| d4bf3241c5 | |||
| f6cf980ac5 | |||
| e579887b33 | |||
| 1250b7a80a | |||
| 5c6dc263c4 | |||
| 68f5a98519 | |||
| a8c062e974 | |||
| a73293bcfb |
12 changed files with 50 additions and 3 deletions
|
|
@ -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
8
resources/waypoint.gd
Normal 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
|
||||
1
resources/waypoint.gd.uid
Normal file
1
resources/waypoint.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cbj1m2pm266x1
|
||||
5
scenes/autoload/event_bus.gd
Normal file
5
scenes/autoload/event_bus.gd
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
extends Node
|
||||
|
||||
|
||||
@warning_ignore("unused_signal")
|
||||
signal room_changed(previous_room: StringName, next_room: StringName, waypoint: Waypoint)
|
||||
1
scenes/autoload/event_bus.gd.uid
Normal file
1
scenes/autoload/event_bus.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bmfdu1fyum1nf
|
||||
23
scenes/autoload/game_director.gd
Normal file
23
scenes/autoload/game_director.gd
Normal 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)
|
||||
1
scenes/autoload/game_director.gd.uid
Normal file
1
scenes/autoload/game_director.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b4ydqderhu3mr
|
||||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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")]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Loading…
Add table
Reference in a new issue