diff --git a/autoloads/entity_manager.gd b/autoloads/entity_manager.gd index 0919d31..df62167 100644 --- a/autoloads/entity_manager.gd +++ b/autoloads/entity_manager.gd @@ -3,4 +3,4 @@ extends Node signal create_block(id: String, position: Vector3) signal drop_block(id: String, position: Vector3) signal reset_world ## Used for signaling a deletion of all in the BlocksContainer and DroppedItemsContainer -signal spawn_player(position: Vector3) +signal spawn_player(transform: Transform3D) diff --git a/save_load/resources/node_types/player_data_resource.gd b/save_load/resources/node_types/player_data_resource.gd index 89278d6..c2b7cfb 100644 --- a/save_load/resources/node_types/player_data_resource.gd +++ b/save_load/resources/node_types/player_data_resource.gd @@ -13,4 +13,4 @@ func _load_data(window: Window) -> void: if scene_node == null: return - EntityManager.spawn_player.emit(transform.origin) + EntityManager.spawn_player.emit(transform) diff --git a/scenes/world/world.gd b/scenes/world/world.gd index d87dcb0..0dde3c0 100644 --- a/scenes/world/world.gd +++ b/scenes/world/world.gd @@ -19,7 +19,10 @@ func _ready() -> void: _initialize_ground() _create_test_blocks() - _spawn_player(default_spawn_position) + + var default_transform: Transform3D = Transform3D() + default_transform.origin = default_spawn_position + _spawn_player(default_transform) func _create_block(id: String, block_position: Vector3) -> void: @@ -42,13 +45,13 @@ func _create_test_blocks() -> void: _create_block("00" + str(index), Vector3(index, 3, -5)) _create_dropped_block("00" + str(index), Vector3(index, 2, -3)) -func _spawn_player(player_position: Vector3) -> void: +func _spawn_player(player_position: Transform3D) -> void: if has_node("Player"): $Player.queue_free() await $Player.tree_exited var player: Player = player_scene.instantiate() - player.position = player_position + player.transform = player_position player.name = "Player" add_child(player)