add starting and playing room states
This commit is contained in:
parent
cb326a5c94
commit
68cf5ea4df
7 changed files with 49 additions and 3 deletions
|
|
@ -3,7 +3,10 @@ class_name Room extends Node2D
|
|||
|
||||
@export var room_config: RoomConfig
|
||||
|
||||
@onready var camera: RoomCamera = $RoomCamera
|
||||
@onready var state_machine: StateMachine = $RoomStateMachine
|
||||
|
||||
var player_scene: PackedScene = preload("res://scenes/player/player.tscn")
|
||||
|
||||
var player: Player
|
||||
var intial_spawn: Vector2i
|
||||
var initial_spawn: Vector2i = Vector2i(16,16)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,32 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://bxhyxox662buj"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://bxhyxox662buj"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://pcl0om2k32g6" path="res://scenes/room/room.gd" id="1_8xru0"]
|
||||
[ext_resource type="Script" uid="uid://bamoq5wi0lkdy" path="res://resources/room_config.gd" id="2_kxljb"]
|
||||
[ext_resource type="Script" uid="uid://diou146pyb0br" path="res://scenes/room/room_camera.gd" id="3_y1kpu"]
|
||||
[ext_resource type="Script" uid="uid://b7715auuhy7vu" path="res://scenes/room/states/room_starting.gd" id="4_1w8vm"]
|
||||
[ext_resource type="Script" uid="uid://diths5s8vd7lr" path="res://classes/state_machine/state_machine.gd" id="4_vaubn"]
|
||||
[ext_resource type="Script" uid="uid://d2xitfobwbk20" path="res://scenes/room/states/room_playing.gd" id="5_w7vtx"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_y1kpu"]
|
||||
script = ExtResource("2_kxljb")
|
||||
metadata/_custom_type_script = "uid://bamoq5wi0lkdy"
|
||||
|
||||
[node name="Room" type="Node2D"]
|
||||
script = ExtResource("1_8xru0")
|
||||
room_config = SubResource("Resource_y1kpu")
|
||||
|
||||
[node name="RoomStateMachine" type="Node" parent="." node_paths=PackedStringArray("initial_state")]
|
||||
script = ExtResource("4_vaubn")
|
||||
initial_state = NodePath("Starting")
|
||||
metadata/_custom_type_script = "uid://diths5s8vd7lr"
|
||||
|
||||
[node name="Starting" type="Node" parent="RoomStateMachine"]
|
||||
script = ExtResource("4_1w8vm")
|
||||
metadata/_custom_type_script = "uid://hjm43hb4os07"
|
||||
|
||||
[node name="Playing" type="Node" parent="RoomStateMachine"]
|
||||
script = ExtResource("5_w7vtx")
|
||||
metadata/_custom_type_script = "uid://hjm43hb4os07"
|
||||
|
||||
[node name="RoomCamera" type="Camera2D" parent="."]
|
||||
script = ExtResource("3_y1kpu")
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ func _state_physics_update(_delta: float) -> void:
|
|||
|
||||
|
||||
func match_state(exclude: Array[StringName] = []) -> StringName:
|
||||
|
||||
return ""
|
||||
|
||||
|
||||
|
|
|
|||
6
scenes/room/states/room_playing.gd
Normal file
6
scenes/room/states/room_playing.gd
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
extends RoomState
|
||||
|
||||
|
||||
func _state_physics_update(delta: float) -> void:
|
||||
room.camera.follow_player(delta)
|
||||
if match_state([PLAYING]): return
|
||||
1
scenes/room/states/room_playing.gd.uid
Normal file
1
scenes/room/states/room_playing.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://d2xitfobwbk20
|
||||
10
scenes/room/states/room_starting.gd
Normal file
10
scenes/room/states/room_starting.gd
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
extends RoomState
|
||||
|
||||
|
||||
func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void:
|
||||
room.player = room.player_scene.instantiate()
|
||||
room.add_child(room.player)
|
||||
room.player.global_position = room.initial_spawn
|
||||
|
||||
finished.emit(PLAYING)
|
||||
return
|
||||
1
scenes/room/states/room_starting.gd.uid
Normal file
1
scenes/room/states/room_starting.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b7715auuhy7vu
|
||||
Loading…
Add table
Reference in a new issue