move initial spawn to room config

This commit is contained in:
yuki 2025-11-24 17:36:27 -03:00
parent fd43faf658
commit b3db7f1ba6
7 changed files with 35 additions and 15 deletions

View file

@ -15,7 +15,7 @@ z_index = 1
collision_mask = 2
motion_mode = 1
script = ExtResource("1_dovo2")
max_speed = 95.0
max_speed = 85.0
[node name="PlayerStateMachine" type="Node" parent="." node_paths=PackedStringArray("initial_state")]
script = ExtResource("2_lvxji")

View file

@ -9,7 +9,7 @@ class_name Room extends Node2D
# TODO: better alternative to preloading as i add functionality?
# https://theduriel.github.io/Godot/Do-not-use---Preload
var player_scene: PackedScene = preload("uid://cqm5besqgsb7x")
var initial_spawn: Vector2i = Vector2i(16,16)
var initial_spawn: Vector2i = Vector2i.ZERO
var player: Player

View file

@ -1,5 +1,9 @@
class_name RoomConfig extends Resource
@export_group('Player')
## The initial player spawn point.
## Only used if one wasn't provided to the room beforehand.
@export var initial_spawn: Vector2i = Vector2i.ZERO
@export_group('Camera')
## Whether the camera will (initially) follow the player ot not.

View file

@ -14,6 +14,13 @@ func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void:
func _instantiate_player() -> Player:
var p: Player = room.player_scene.instantiate()
room.add_child(p)
p.global_position = room.initial_spawn
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

View file

@ -941,6 +941,7 @@ texture_region_size = Vector2i(18, 18)
9:9/0/terrains_peering_bit/top_right_corner = 0
10:9/0 = 0
10:9/0/z_index = 1
10:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
11:9/0 = 0
11:9/0/z_index = 1
11:9/0/terrain_set = 0
@ -2724,6 +2725,8 @@ texture_region_size = Vector2i(18, 18)
11:3/0/terrains_peering_bit/top_side = 3
[resource]
physics_layer_0/collision_layer = 2
physics_layer_0/collision_mask = 0
terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "Auto1"
terrain_set_0/terrain_0/color = Color(0.79, 0.57, 0.73, 1)

View file

@ -1,28 +1,24 @@
[gd_scene load_steps=6 format=4 uid="uid://04d4byo43t4b"]
[gd_scene load_steps=5 format=4 uid="uid://04d4byo43t4b"]
[ext_resource type="PackedScene" uid="uid://bxhyxox662buj" path="res://scenes/room/room.tscn" id="1_1k8b4"]
[ext_resource type="Script" uid="uid://bamoq5wi0lkdy" path="res://scenes/room/room_config.gd" id="2_2qa51"]
[ext_resource type="Resource" uid="uid://h54yiuv2bup1" path="res://scenes/worlds/yukotsukis_room/yukotsukis_room_config.tres" id="2_vqekq"]
[ext_resource type="TileSet" uid="uid://chb3vsmojvo8q" path="res://scenes/worlds/yukotsukis_room/assets/curtains/curtains_godot4.tres" id="3_od2gb"]
[ext_resource type="TileSet" uid="uid://bcpinmakhx3ix" path="res://scenes/worlds/yukotsukis_room/assets/carpets/carpets_godot4.tres" id="4_vqekq"]
[sub_resource type="Resource" id="Resource_r3h47"]
script = ExtResource("2_2qa51")
follow_player = false
camera_position = Vector2i(160, 120)
metadata/_custom_type_script = "uid://bamoq5wi0lkdy"
[ext_resource type="TileSet" uid="uid://diqyujsetlsp6" path="res://scenes/worlds/yukotsukis_room/assets/floorboards/floorboards_godot4.tres" id="4_od2gb"]
[node name="Yukotsuki\'s Room" instance=ExtResource("1_1k8b4")]
config = SubResource("Resource_r3h47")
config = ExtResource("2_vqekq")
[node name="FloorLayer" type="TileMapLayer" parent="." index="2"]
tile_map_data = PackedByteArray("AAAPAA4AAQALAAMAAAAPAA0AAQALAAIAAAAPAAwAAQALAA4AAAAPAAsAAQALAAYAAAAPAAoAAQALAAQAAAAOAA4AAQAJAA8AAAAOAA0AAQAJAA4AAAAOAAwAAQAJAAIAAAAOAAsAAQAJAAoAAAAOAAoAAQAKAAQAAAANAA4AAQAJAA8AAAANAA0AAQAJAA4AAAANAAwAAQAJAAYAAAANAAsAAQAJAAYAAAANAAoAAQAKAAwAAAAMAA4AAQAJAAMAAAAMAA0AAQAJAAoAAAAMAAwAAQAJAAYAAAAMAAsAAQAJAA4AAAAMAAoAAQAKAAQAAAALAA4AAQAJAAsAAAALAA0AAQAJAAYAAAALAAwAAQAJAAoAAAALAAsAAQAJAAoAAAALAAoAAQAKAAAAAAAKAA4AAQAJAA8AAAAKAA0AAQAJAAYAAAAKAAwAAQAJAAIAAAAKAAsAAQAJAAIAAAAKAAoAAQAKAAAAAAAJAA4AAQAJAAMAAAAJAA0AAQAJAAYAAAAJAAwAAQAJAAIAAAAJAAsAAQAJAAoAAAAJAAoAAQAKAAwAAAAIAA4AAQAJAAcAAAAIAA0AAQAJAA4AAAAIAAwAAQAJAAIAAAAIAAsAAQAJAAoAAAAIAAoAAQAKAAAAAAAHAA4AAQAJAA8AAAAHAA0AAQAJAAoAAAAHAAwAAQAJAAYAAAAHAAsAAQAJAAoAAAAHAAoAAQAKAAgAAAAGAA4AAQAJAAsAAAAGAA0AAQAJAAYAAAAGAAwAAQAJAAYAAAAGAAsAAQAJAAoAAAAGAAoAAQAKAAgAAAAFAA4AAQAJAA8AAAAFAA0AAQAJAAoAAAAFAAwAAQAJAAoAAAAFAAsAAQAJAAYAAAAFAAoAAQAKAAQAAAAEAA4AAQAIAAcAAAAEAA0AAQAIAAUAAAAEAAwAAQAIAAEAAAAEAAsAAQAIAAUAAAAEAAoAAQAIAAQAAAA=")
tile_set = ExtResource("3_od2gb")
[node name="CarpetLayer" type="TileMapLayer" parent="." index="3"]
tile_map_data = PackedByteArray("AAAFAAsAAAAIAAAAAAAFAAwAAAAIAAEAAAAFAA0AAAAIAAMAAAAGAAwAAAALAAIAAAAGAAsAAAALAAAAAAAGAA0AAAALAAMAAAA=")
tile_set = ExtResource("4_vqekq")
tile_map_data = PackedByteArray("AAAIAAsAAwAIAAAAAAAJAAsAAwAFAAEAAAAJAAoAAwAIAAAAAAAKAAoAAwAKAAAAAAALAAoAAwAKAAAAAAAMAAoAAwAKAAAAAAANAAoAAwALAAAAAAANAAsAAwAGAAEAAAAOAAsAAwALAAAAAAAOAAwAAwALAAMAAAANAAwAAwAGAAIAAAANAA0AAwALAAMAAAAMAA0AAwAJAAMAAAALAA0AAwAJAAMAAAAKAA0AAwAJAAMAAAAJAA0AAwAJAAMAAAAIAA0AAwAIAAMAAAAIAAwAAwAIAAEAAAAMAAsAAwAJAAIAAAAMAAwAAwAJAAIAAAALAAwAAwAJAAIAAAAKAAwAAwAJAAIAAAAJAAwAAwAJAAIAAAAKAAsAAwAJAAIAAAALAAsAAwAJAAIAAAA=")
tile_set = ExtResource("4_od2gb")
[node name="WallLayer" type="TileMapLayer" parent="." index="4"]
tile_map_data = PackedByteArray("AAADAA4AAAAKAAkAAAADAA0AAAAKAAkAAAADAAwAAAAKAAkAAAADAAsAAAAKAAkAAAADAAoAAAAKAAkAAAADAAkAAAAKAAkAAAAEAAkAAAAKAAkAAAAFAAkAAAAKAAkAAAAGAAkAAAAKAAkAAAAHAAkAAAAKAAkAAAAIAAkAAAAKAAkAAAAJAAkAAAAKAAkAAAAKAAkAAAAKAAkAAAALAAkAAAAKAAkAAAAMAAkAAAAKAAkAAAANAAkAAAAKAAkAAAAOAAkAAAAKAAkAAAAPAAkAAAAKAAkAAAAQAAkAAAAKAAkAAAAQAAoAAAAKAAkAAAAQAAsAAAAKAAkAAAAQAAwAAAAKAAkAAAAQAA0AAAAKAAkAAAAQAA4AAAAKAAkAAAADAA8AAAAKAAkAAAAEAA8AAAAKAAkAAAAFAA8AAAAKAAkAAAAGAA8AAAAKAAkAAAAHAA8AAAAKAAkAAAAIAA8AAAAKAAkAAAAJAA8AAAAKAAkAAAAKAA8AAAAKAAkAAAALAA8AAAAKAAkAAAAMAA8AAAAKAAkAAAANAA8AAAAKAAkAAAAOAA8AAAAKAAkAAAAPAA8AAAAKAAkAAAAQAA8AAAAKAAkAAAA=")
tile_set = ExtResource("4_od2gb")
[node name="CurtainLayer" type="TileMapLayer" parent="." index="5"]
tile_set = ExtResource("3_od2gb")

View file

@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="RoomConfig" load_steps=2 format=3 uid="uid://h54yiuv2bup1"]
[ext_resource type="Script" uid="uid://bamoq5wi0lkdy" path="res://scenes/room/room_config.gd" id="1_vlksg"]
[resource]
script = ExtResource("1_vlksg")
initial_spawn = Vector2i(85, 225)
follow_player = false
camera_position = Vector2i(160, 120)
metadata/_custom_type_script = "uid://bamoq5wi0lkdy"