Compare commits
No commits in common. "f7d5e40d8c76d7bdd1b51dad64c185798dc7d33f" and "e2682da7fe8a4e4b67cfe2fcfb12377cf11a7694" have entirely different histories.
f7d5e40d8c
...
e2682da7fe
5 changed files with 38 additions and 66 deletions
|
|
@ -1,10 +1,7 @@
|
||||||
@warning_ignore_start("unused_signal")
|
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
|
|
||||||
## Emitted when the game starts.
|
@warning_ignore_start("unused_signal")
|
||||||
signal game_started()
|
|
||||||
|
|
||||||
## Emitted when the room has transitioned.
|
## Emitted when the room has transitioned.
|
||||||
signal room_changed(previous_room: StringName, next_room: StringName, waypoint: Waypoint)
|
signal room_changed(previous_room: StringName, next_room: StringName, waypoint: Waypoint)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ extends Node
|
||||||
func start_game() -> void:
|
func start_game() -> void:
|
||||||
print("starting game")
|
print("starting game")
|
||||||
get_tree().change_scene_to_file("res://scenes/worlds/yukotsukis_room/yukotsukis_room.tscn")
|
get_tree().change_scene_to_file("res://scenes/worlds/yukotsukis_room/yukotsukis_room.tscn")
|
||||||
EventBus.game_started.emit()
|
|
||||||
|
|
||||||
|
|
||||||
func goto_room(previous_room: Room, waypoint: RemoteWaypoint, config: RoomConfig = null) -> void:
|
func goto_room(previous_room: Room, waypoint: RemoteWaypoint, config: RoomConfig = null) -> void:
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=8 format=3 uid="uid://5wfpwjykqson"]
|
[gd_scene load_steps=7 format=3 uid="uid://5wfpwjykqson"]
|
||||||
|
|
||||||
[ext_resource type="FontFile" uid="uid://bce5el6o5igwn" path="res://assets/fonts/Axolotl.ttf" id="1_ob46e"]
|
[ext_resource type="FontFile" uid="uid://bce5el6o5igwn" path="res://assets/fonts/Axolotl.ttf" id="1_ob46e"]
|
||||||
[ext_resource type="Script" uid="uid://xuibr7dn2qtw" path="res://scenes/main_menu/main_menu.gd" id="1_uqeha"]
|
[ext_resource type="Script" uid="uid://xuibr7dn2qtw" path="res://scenes/main_menu/main_menu.gd" id="1_uqeha"]
|
||||||
|
|
@ -13,10 +13,6 @@ shader = ExtResource("2_uqeha")
|
||||||
shader_parameter/palette = ExtResource("3_wem23")
|
shader_parameter/palette = ExtResource("3_wem23")
|
||||||
shader_parameter/palette_size = 120
|
shader_parameter/palette_size = 120
|
||||||
|
|
||||||
[sub_resource type="LabelSettings" id="LabelSettings_uqeha"]
|
|
||||||
font = ExtResource("1_ob46e")
|
|
||||||
font_size = 32
|
|
||||||
|
|
||||||
[node name="MainMenu" type="Node2D"]
|
[node name="MainMenu" type="Node2D"]
|
||||||
script = ExtResource("1_uqeha")
|
script = ExtResource("1_uqeha")
|
||||||
|
|
||||||
|
|
@ -26,10 +22,10 @@ anchor_left = 0.5
|
||||||
anchor_top = 1.0
|
anchor_top = 1.0
|
||||||
anchor_right = 0.5
|
anchor_right = 0.5
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
offset_left = 125.0
|
offset_left = 24.0
|
||||||
offset_top = 155.0
|
offset_top = 208.0
|
||||||
offset_right = 200.0
|
offset_right = 99.0
|
||||||
offset_bottom = 171.0
|
offset_bottom = 224.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 0
|
grow_vertical = 0
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
|
|
@ -46,19 +42,3 @@ anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
metadata/_edit_lock_ = true
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
[node name="Label2" type="Label" parent="."]
|
|
||||||
anchors_preset = 8
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
offset_left = 45.0
|
|
||||||
offset_top = 93.0
|
|
||||||
offset_right = 275.0
|
|
||||||
offset_bottom = 119.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
size_flags_horizontal = 4
|
|
||||||
text = "girl will never sing again"
|
|
||||||
label_settings = SubResource("LabelSettings_uqeha")
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
class_name Room extends Node2D
|
class_name Room extends Node2D
|
||||||
|
|
||||||
|
|
||||||
signal player_spawned(player: Player)
|
|
||||||
|
|
||||||
|
|
||||||
@export var config: RoomConfig
|
@export var config: RoomConfig
|
||||||
|
|
||||||
@onready var camera: RoomCamera = $RoomCamera
|
@onready var camera: RoomCamera = $RoomCamera
|
||||||
|
|
@ -17,39 +14,7 @@ var player_scene: PackedScene = preload("uid://cqm5besqgsb7x")
|
||||||
var initial_spawn: Vector2i = Vector2i.ZERO
|
var initial_spawn: Vector2i = Vector2i.ZERO
|
||||||
|
|
||||||
var player: Player
|
var player: Player
|
||||||
var wake_timer: Timer
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
assert(config != null, "room config is null")
|
assert(config != null, "room config is null")
|
||||||
|
|
||||||
|
|
||||||
func spawn_player(waking: bool) -> Player:
|
|
||||||
var p: Player = player_scene.instantiate()
|
|
||||||
add_child(p)
|
|
||||||
if waking:
|
|
||||||
wake_timer = Timer.new()
|
|
||||||
p.add_child(wake_timer)
|
|
||||||
wake_timer.one_shot = true
|
|
||||||
wake_timer.start(config.transition_in_duration)
|
|
||||||
|
|
||||||
wake_timer.timeout.connect(_on_wake_timer)
|
|
||||||
|
|
||||||
p.state_machine._transition_to_next_state(PlayerState.PAUSED)
|
|
||||||
|
|
||||||
if initial_spawn != Vector2i.ZERO:
|
|
||||||
p.global_position = initial_spawn
|
|
||||||
else:
|
|
||||||
assert(
|
|
||||||
config.initial_spawn != Vector2i.ZERO,
|
|
||||||
"invalid player initial spawn provided"
|
|
||||||
)
|
|
||||||
p.global_position = config.initial_spawn
|
|
||||||
|
|
||||||
player_spawned.emit(p)
|
|
||||||
return p
|
|
||||||
|
|
||||||
|
|
||||||
func _on_wake_timer() -> void:
|
|
||||||
player.state_machine._transition_to_next_state(PlayerState.WAKING)
|
|
||||||
wake_timer.queue_free()
|
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,12 @@ extends RoomState
|
||||||
|
|
||||||
var trans_tween: Tween
|
var trans_tween: Tween
|
||||||
var player_light_tween: Tween
|
var player_light_tween: Tween
|
||||||
|
var wake_timer: Timer
|
||||||
|
|
||||||
|
|
||||||
func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void:
|
func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void:
|
||||||
print("entering room")
|
print("entering room")
|
||||||
room.player = room.spawn_player(true)
|
room.player = _instantiate_player(true)
|
||||||
assert(room.player != null, "player is null")
|
assert(room.player != null, "player is null")
|
||||||
room.camera.global_position = room.config.camera_position
|
room.camera.global_position = room.config.camera_position
|
||||||
|
|
||||||
|
|
@ -71,3 +72,33 @@ func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void:
|
||||||
await trans_tween.finished
|
await trans_tween.finished
|
||||||
|
|
||||||
finished.emit(PLAYING)
|
finished.emit(PLAYING)
|
||||||
|
|
||||||
|
|
||||||
|
func _instantiate_player(waking: bool) -> Player:
|
||||||
|
var p: Player = room.player_scene.instantiate()
|
||||||
|
room.add_child(p)
|
||||||
|
if waking:
|
||||||
|
wake_timer = Timer.new()
|
||||||
|
p.add_child(wake_timer)
|
||||||
|
wake_timer.one_shot = true
|
||||||
|
wake_timer.start(room.config.transition_in_duration)
|
||||||
|
|
||||||
|
wake_timer.timeout.connect(_on_wake_timer)
|
||||||
|
|
||||||
|
p.state_machine._transition_to_next_state(PlayerState.PAUSED)
|
||||||
|
|
||||||
|
if room.initial_spawn != Vector2i.ZERO:
|
||||||
|
p.global_position = room.initial_spawn
|
||||||
|
else:
|
||||||
|
assert(
|
||||||
|
room.config.initial_spawn != Vector2i.ZERO,
|
||||||
|
"invalid player initial spawn provided"
|
||||||
|
)
|
||||||
|
p.global_position = room.config.initial_spawn
|
||||||
|
|
||||||
|
return p
|
||||||
|
|
||||||
|
|
||||||
|
func _on_wake_timer() -> void:
|
||||||
|
room.player.state_machine._transition_to_next_state(PlayerState.WAKING)
|
||||||
|
wake_timer.queue_free()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue