Reorganize file structure of project

This commit is contained in:
2026-03-17 14:44:13 -05:00
parent 86e3198645
commit 5a94483ffe
155 changed files with 365 additions and 162 deletions

View File

@@ -0,0 +1,11 @@
extends Node2D
@onready var item_notification: Label = $"CanvasLayer/Item Notification"
func _on_player_shop_item_scanned(item_name: String) -> void:
item_notification.text = item_name
func _on_player_shop_item_unscanned() -> void:
item_notification.text = ""

View File

@@ -0,0 +1 @@
uid://btg630l3xo16w

150
Maps/Common/shop.tscn Normal file
View File

@@ -0,0 +1,150 @@
[gd_scene format=4 uid="uid://bwt0ijoq4qmhn"]
[ext_resource type="Script" uid="uid://btg630l3xo16w" path="res://Maps/Common/Scripts/shop.gd" id="1_83xsp"]
[ext_resource type="TileSet" uid="uid://df0lg5vkqwbbt" path="res://Resources/Tilesets/home_interior.tres" id="2_kt7c3"]
[ext_resource type="Script" uid="uid://cpr710p4wdgx" path="res://Maps/Connectors/Scripts/shop_item_label_connector.gd" id="2_r8s0p"]
[ext_resource type="PackedScene" uid="uid://ddgeo3vwebqeg" path="res://Entities/Map Objects/Mechanisms/shop_item.tscn" id="3_7ftpj"]
[ext_resource type="Script" uid="uid://dkcsftcdqtmg" path="res://Maps/Connectors/Scripts/spawn_marker_connector.gd" id="3_t8w5b"]
[ext_resource type="Texture2D" uid="uid://hop1gedjh8s4" path="res://Assets/Spritesheets/Player/icons_full_32.png" id="4_r8s0p"]
[ext_resource type="PackedScene" uid="uid://6athlweutl2g" path="res://Entities/Characters/Player/player.tscn" id="5_6ky6i"]
[ext_resource type="Texture2D" uid="uid://crebnygky3qv0" path="res://Assets/Sprites/Black Square.png" id="6_kt7c3"]
[ext_resource type="PackedScene" uid="uid://bbules4o3xayc" path="res://Entities/Map Objects/Loading Zone/loading_zone_transporter.tscn" id="6_t8w5b"]
[ext_resource type="Texture2D" uid="uid://bf6llktwqhs8l" path="res://Assets/Sprites/Door Fade.png" id="7_7ftpj"]
[ext_resource type="PackedScene" uid="uid://ca75b65eh7vv8" path="res://Entities/Map Objects/Loading Zone/collision_loading_zone.tscn" id="9_kp1fr"]
[sub_resource type="AtlasTexture" id="AtlasTexture_fdj0q"]
atlas = ExtResource("4_r8s0p")
region = Rect2(0, 960, 32, 32)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fdj0q"]
size = Vector2(8, 6)
[sub_resource type="AtlasTexture" id="AtlasTexture_k6jq0"]
atlas = ExtResource("4_r8s0p")
region = Rect2(128, 704, 32, 32)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_83xsp"]
size = Vector2(14, 6)
[sub_resource type="AtlasTexture" id="AtlasTexture_3ps1r"]
atlas = ExtResource("4_r8s0p")
region = Rect2(32, 544, 32, 32)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kt7c3"]
size = Vector2(12, 6)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kp1fr"]
size = Vector2(32, 6)
[node name="Shop" type="Node2D" unique_id=547318403]
script = ExtResource("1_83xsp")
[node name="Shop Item Notification Connector" type="Node" parent="." unique_id=1088308326]
script = ExtResource("2_r8s0p")
[node name="Spawn Marker Connector" type="Node" parent="." unique_id=2053338893 node_paths=PackedStringArray("player", "markers")]
script = ExtResource("3_t8w5b")
player = NodePath("../Player")
markers = NodePath("../Spawn Markers")
[node name="Tilemap" type="Node2D" parent="." unique_id=81778152]
[node name="TileMapLayer" type="TileMapLayer" parent="Tilemap" unique_id=1856499099]
tile_map_data = PackedByteArray("AAANAAgAAQAAAAIAAAANAAkAAQAAAAMAAAAOAAgAAQABAAIAAAAOAAkAAQABAAMAAAANAAoAAQAAAAIAAAANAAsAAQAAAAMAAAAOAAoAAQABAAIAAAAOAAsAAQABAAMAAAAPAAoAAQAAAAIAAAAPAAsAAQAAAAMAAAAQAAoAAQABAAIAAAAQAAsAAQABAAMAAAARAAoAAQAAAAIAAAARAAsAAQAAAAMAAAASAAoAAQABAAIAAAASAAsAAQABAAMAAAATAAoAAQAAAAIAAAATAAsAAQAAAAMAAAAUAAoAAQABAAIAAAAUAAsAAQABAAMAAAAVAAoAAQAAAAIAAAAVAAsAAQAAAAMAAAAWAAoAAQABAAIAAAAWAAsAAQABAAMAAAAXAAoAAQAAAAIAAAAXAAsAAQAAAAMAAAAYAAoAAQABAAIAAAAYAAsAAQABAAMAAAAZAAoAAQAAAAIAAAAZAAsAAQAAAAMAAAAaAAoAAQABAAIAAAAaAAsAAQABAAMAAAAZAAgAAQAAAAIAAAAZAAkAAQAAAAMAAAAaAAgAAQABAAIAAAAaAAkAAQABAAMAAAAXAAgAAQAAAAIAAAAXAAkAAQAAAAMAAAAYAAgAAQABAAIAAAAYAAkAAQABAAMAAAAVAAgAAQAAAAIAAAAVAAkAAQAAAAMAAAAWAAgAAQABAAIAAAAWAAkAAQABAAMAAAATAAgAAQAAAAIAAAATAAkAAQAAAAMAAAAUAAgAAQABAAIAAAAUAAkAAQABAAMAAAARAAgAAQAAAAIAAAARAAkAAQAAAAMAAAASAAgAAQABAAIAAAASAAkAAQABAAMAAAAPAAgAAQAAAAIAAAAPAAkAAQAAAAMAAAAQAAgAAQABAAIAAAAQAAkAAQABAAMAAAALAAoAAQAAAAIAAAALAAsAAQAAAAMAAAAMAAoAAQABAAIAAAAMAAsAAQABAAMAAAALAAwAAQAAAAIAAAALAA0AAQAAAAMAAAAMAAwAAQABAAIAAAAMAA0AAQABAAMAAAANAAwAAQAAAAIAAAANAA0AAQAAAAMAAAAOAAwAAQABAAIAAAAOAA0AAQABAAMAAAAPAAwAAQAAAAIAAAAPAA0AAQAAAAMAAAAQAAwAAQABAAIAAAAQAA0AAQABAAMAAAARAAwAAQAAAAIAAAARAA0AAQAAAAMAAAASAAwAAQABAAIAAAASAA0AAQABAAMAAAATAAwAAQAAAAIAAAATAA0AAQAAAAMAAAAUAAwAAQABAAIAAAAUAA0AAQABAAMAAAAVAAwAAQAAAAIAAAAVAA0AAQAAAAMAAAAWAAwAAQABAAIAAAAWAA0AAQABAAMAAAAXAAwAAQAAAAIAAAAXAA0AAQAAAAMAAAAYAAwAAQABAAIAAAAYAA0AAQABAAMAAAAZAAwAAQAAAAIAAAAZAA0AAQAAAAMAAAAaAAwAAQABAAIAAAAaAA0AAQABAAMAAAALAAgAAQAAAAIAAAALAAkAAQAAAAMAAAAMAAgAAQABAAIAAAAMAAkAAQABAAMAAAALAAUAAAAKAAMAAAALAAYAAAAKAAQAAAALAAcAAAAKAAUAAAAaAAUAAAALAAMAAAAaAAYAAAALAAQAAAAaAAcAAAALAAUAAAAMAAUAAAAEAAMAAAAMAAYAAAAEAAQAAAAMAAcAAAAEAAUAAAANAAUAAAAEAAMAAAANAAYAAAAEAAQAAAANAAcAAAAEAAUAAAAOAAUAAAAEAAMAAAAOAAYAAAAEAAQAAAAOAAcAAAAEAAUAAAAPAAUAAAAEAAMAAAAPAAYAAAAEAAQAAAAPAAcAAAAEAAUAAAAQAAUAAAAEAAMAAAAQAAYAAAAEAAQAAAAQAAcAAAAEAAUAAAARAAUAAAAEAAMAAAARAAYAAAAEAAQAAAARAAcAAAAEAAUAAAASAAUAAAAEAAMAAAASAAYAAAAEAAQAAAASAAcAAAAEAAUAAAATAAUAAAAEAAMAAAATAAYAAAAEAAQAAAATAAcAAAAEAAUAAAAUAAUAAAAEAAMAAAAUAAYAAAAEAAQAAAAUAAcAAAAEAAUAAAAVAAUAAAAEAAMAAAAVAAYAAAAEAAQAAAAVAAcAAAAEAAUAAAAWAAUAAAAEAAMAAAAWAAYAAAAEAAQAAAAWAAcAAAAEAAUAAAAXAAUAAAAEAAMAAAAXAAYAAAAEAAQAAAAXAAcAAAAEAAUAAAAYAAUAAAAEAAMAAAAYAAYAAAAEAAQAAAAYAAcAAAAEAAUAAAAZAAUAAAAEAAMAAAAZAAYAAAAEAAQAAAAZAAcAAAAEAAUAAAALAAQAAAABAAAAAAAMAAQAAAABAAAAAAANAAQAAAABAAAAAAAOAAQAAAABAAAAAAAPAAQAAAABAAAAAAAQAAQAAAABAAAAAAARAAQAAAABAAAAAAASAAQAAAABAAAAAAATAAQAAAABAAAAAAAUAAQAAAABAAAAAAAVAAQAAAABAAAAAAAWAAQAAAABAAAAAAAXAAQAAAABAAAAAAAYAAQAAAABAAAAAAAZAAQAAAABAAAAAAAaAAQAAAABAAAAAAAbAAUAAAACAAEAAAAbAAYAAAACAAEAAAAbAAcAAAACAAEAAAAbAAgAAAACAAEAAAAbAAkAAAACAAEAAAAbAAoAAAACAAEAAAAbAAsAAAACAAEAAAAbAAwAAAACAAEAAAAbAA0AAAACAAEAAAAKAAUAAAAAAAEAAAAKAAYAAAAAAAEAAAAKAAcAAAAAAAEAAAAKAAgAAAAAAAEAAAAKAAkAAAAAAAEAAAAKAAoAAAAAAAEAAAAKAAsAAAAAAAEAAAAKAAwAAAAAAAEAAAAKAA0AAAAAAAEAAAAKAAQAAAAAAAAAAAAbAAQAAAACAAAAAAAKAA4AAAAAAAIAAAALAA4AAAABAAIAAAAMAA4AAAAEAAEAAAAPAA4AAAADAAEAAAAUAA4AAAABAAIAAAAVAA4AAAABAAIAAAAWAA4AAAABAAIAAAAXAA4AAAABAAIAAAAYAA4AAAABAAIAAAAZAA4AAAABAAIAAAAaAA4AAAABAAIAAAAbAA4AAAACAAIAAAAQAA4AAAABAAIAAAARAA4AAAABAAIAAAASAA4AAAABAAIAAAATAA4AAAABAAIAAAANAA4AAQAAAAIAAAAOAA4AAQABAAIAAAAPAA8AAAACAAIAAAAMAA8AAAAAAAIAAAA=")
tile_set = ExtResource("2_kt7c3")
[node name="TileMapLayer2" type="TileMapLayer" parent="Tilemap" unique_id=970584760]
tile_map_data = PackedByteArray("AAALAAkAAgADAAIAAAALAAoAAgADAAMAAAAMAAkAAgAEAAIAAAAMAAoAAgAEAAMAAAANAAkAAgAEAAIAAAANAAoAAgAEAAMAAAAOAAkAAgAEAAIAAAAOAAoAAgAEAAMAAAAPAAkAAgAEAAIAAAAPAAoAAgAEAAMAAAAQAAkAAgAFAAIAAAAQAAoAAgAFAAMAAAATAAkAAgADAAIAAAATAAoAAgADAAMAAAAUAAkAAgAEAAIAAAAUAAoAAgAEAAMAAAAVAAkAAgAEAAIAAAAVAAoAAgAEAAMAAAAWAAkAAgAEAAIAAAAWAAoAAgAEAAMAAAAXAAkAAgAEAAIAAAAXAAoAAgAEAAMAAAAYAAkAAgAEAAIAAAAYAAoAAgAEAAMAAAAZAAkAAgAEAAIAAAAZAAoAAgAEAAMAAAAaAAkAAgAFAAIAAAAaAAoAAgAFAAMAAAA=")
tile_set = ExtResource("2_kt7c3")
[node name="Items For Sale" type="Node2D" parent="." unique_id=1720300524]
[node name="Wooden Sword" parent="Items For Sale" unique_id=8248758 instance=ExtResource("3_7ftpj")]
position = Vector2(193, 156)
[node name="Sprite" type="Sprite2D" parent="Items For Sale/Wooden Sword" unique_id=1754807739]
scale = Vector2(0.5, 0.5)
texture = SubResource("AtlasTexture_fdj0q")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Items For Sale/Wooden Sword" unique_id=145882430]
position = Vector2(-1, 8)
shape = SubResource("RectangleShape2D_fdj0q")
debug_color = Color(0.9710676, 0.103622, 0.35069537, 0.41960785)
[node name="Bronze Key" parent="Items For Sale" unique_id=1844694995 instance=ExtResource("3_7ftpj")]
position = Vector2(219, 159)
check_location = 1
[node name="Sprite" type="Sprite2D" parent="Items For Sale/Bronze Key" unique_id=1718023639]
position = Vector2(6, -2)
scale = Vector2(0.5, 0.5)
texture = SubResource("AtlasTexture_k6jq0")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Items For Sale/Bronze Key" unique_id=228842260]
position = Vector2(6, 4)
shape = SubResource("RectangleShape2D_83xsp")
debug_color = Color(0.9710676, 0.103622, 0.35069537, 0.41960785)
[node name="Potion" parent="Items For Sale" unique_id=817810520 instance=ExtResource("3_7ftpj")]
position = Vector2(255, 156)
check_location = 2
[node name="Sprite" type="Sprite2D" parent="Items For Sale/Potion" unique_id=625278572]
scale = Vector2(0.5, 0.5)
texture = SubResource("AtlasTexture_3ps1r")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Items For Sale/Potion" unique_id=2016098276]
position = Vector2(0, 7)
shape = SubResource("RectangleShape2D_kt7c3")
debug_color = Color(0.9710676, 0.103622, 0.35069537, 0.41960785)
[node name="Loading Zones" type="Node2D" parent="." unique_id=525992692]
[node name="Collision Loading Zone" parent="Loading Zones" unique_id=1043800735 node_paths=PackedStringArray("loading_zone_transporter") instance=ExtResource("9_kp1fr")]
loading_zone_transporter = NodePath("Loading Zone Transporter")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Loading Zones/Collision Loading Zone" unique_id=1798970421]
position = Vector2(224, 243)
shape = SubResource("RectangleShape2D_kp1fr")
[node name="Loading Zone Transporter" parent="Loading Zones/Collision Loading Zone" unique_id=1690817663 instance=ExtResource("6_t8w5b")]
destination_marker_name = "Shop Entrance"
[node name="Spawn Markers" type="Node2D" parent="." unique_id=680471197]
[node name="Shop Entrance" type="Marker2D" parent="Spawn Markers" unique_id=122141189]
position = Vector2(223, 225)
[node name="Player" parent="." unique_id=1502234578 instance=ExtResource("5_6ky6i")]
position = Vector2(289, 174)
[node name="Camera2D" type="Camera2D" parent="." unique_id=1684491254]
position = Vector2(307, 165)
zoom = Vector2(3, 3)
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1847766034]
[node name="Item Notification" type="Label" parent="CanvasLayer" unique_id=55309360]
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -40.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
[node name="Background" type="Sprite2D" parent="." unique_id=607338553]
z_index = -999
position = Vector2(356.5, 187.5)
scale = Vector2(23.28125, 12.71875)
texture = ExtResource("6_kt7c3")
[node name="Door Fade" type="Sprite2D" parent="." unique_id=833339897]
position = Vector2(224, 232)
scale = Vector2(2, 1)
texture = ExtResource("7_7ftpj")
[connection signal="InteractScannerAreaEntered" from="Player" to="Shop Item Notification Connector" method="OnPlayerInteractScannerAreaEntered"]
[connection signal="InteractScannerAreaExited" from="Player" to="Shop Item Notification Connector" method="OnPlayerInteractScannerAreaExited"]

View File

@@ -0,0 +1,54 @@
extends Node
class_name BenchInteractionConnector
# Signals
signal SitOnBenchTriggered(position: Vector2, sitting_direction: Enums.Directions)
# Exports
@export var player: PlayerCharacter
# Private Variables
var _benches_in_range: Array[WoodenBench] = []
# Private Methods
func _ready() -> void:
player.interact_scanner.area_entered.connect(_on_interact_scanned)
player.interact_scanner.area_exited.connect(_on_interact_unscanned)
player.interact_scanner.InteractionActionTriggered.connect(_on_interact_triggered)
func _on_interact_scanned(area: Area2D) -> void:
var parent := area.get_parent()
if parent == null or parent is not WoodenBench or _benches_in_range.has(parent):
return
_benches_in_range.append(parent)
func _on_interact_unscanned(area: Area2D) -> void:
var parent: Node = area.get_parent()
if parent == null or parent is not WoodenBench or !_benches_in_range.has(parent):
return
_benches_in_range.erase(parent)
func _on_interact_triggered() -> void:
if _benches_in_range.is_empty():
return
var bench := _benches_in_range[0]
var sitting_spots_container := bench.get_node("Sitting Spots") as Node2D
var sitting_spot_markers := sitting_spots_container.get_children()
var closest_marker: Marker2D
var distance_to_player := 9999.0
for node in sitting_spot_markers:
var marker := node as Marker2D
var distance := marker.global_position.distance_to(player.global_position)
if distance < distance_to_player:
closest_marker = marker
distance_to_player = distance
if !closest_marker:
return
player.SitOnFurnitureTriggered.emit(closest_marker.global_position, Enums.Directions.DOWN)

View File

@@ -0,0 +1 @@
uid://c5yjcjk51l4bd

View File

@@ -0,0 +1,26 @@
extends Area2D
@export var camera_to_limit: Camera2D
@export var auto_limit := true
func _ready() -> void:
if camera_to_limit == null or !auto_limit or get_child_count() == 0:
return
var collision_shape: CollisionShape2D = get_children()[0]
if collision_shape.shape is not RectangleShape2D:
return
var limits := _get_normalized_limits(collision_shape)
camera_to_limit.limit_left = limits.position.x
camera_to_limit.limit_top = limits.position.y
camera_to_limit.limit_right = limits.end.x
camera_to_limit.limit_bottom = limits.end.y
func _get_normalized_limits(collision_shape: CollisionShape2D) -> Rect2i:
var rectangle_shape := collision_shape.shape as RectangleShape2D
var rect_position := collision_shape.position
var size := rectangle_shape.size
var begin := rect_position - size / 2
return Rect2(begin.x, begin.y, size.x, size.y)

View File

@@ -0,0 +1 @@
uid://kfupww4frb1r

View File

@@ -0,0 +1,76 @@
extends Node
# Signals
signal OpeningOfOpenedChestAttempted
# Exports
@export var player: PlayerCharacter
@export var auto_connect_all_chests := true
# Private Variables
var _chests_in_range: Array[BaseChest] = []
# Private Methods
func _ready() -> void:
player.interact_scanner.area_entered.connect(_on_interact_scanned)
player.interact_scanner.area_exited.connect(_on_interact_unscanned)
player.interact_scanner.InteractionActionTriggered.connect(_on_interact_triggered)
var chests := GroupUtils.GetAllTreasureChests()
for chest in chests:
chest.OpeningAnimationStarted.connect(_on_chest_opening_animation_started)
func _on_chest_opening_animation_started() -> void:
var player := GroupUtils.GetPlayer()
var children := player.get_children()
player.QueueCutsceneState()
var camera_idx := children.find_custom(func(x): return x is Camera2D)
if camera_idx == -1: return
# Zoom In
var camera := children[camera_idx] as Camera2D
var current_zoom := camera.zoom
await get_tree().create_tween().tween_property(camera, "zoom", current_zoom + Vector2(2, 2), 0.5).finished
# Player the player's chest opening animation
player.state_machine.QueueStateChange(PlayerStateMachine.States.PLAY_ANIMATION, { "animation_name": "opening-chest-down" })
await player.state_machine.StateChanged
var play_animation_state := player.state_machine.current_state as PlayerPlayAnimationState
await play_animation_state.AnimationFinished
player.state_machine.QueueStateChange(PlayerStateMachine.States.IDLE)
# Zoom back out
await get_tree().create_tween().tween_property(camera, "zoom", current_zoom, 0.5).finished
func _on_interact_scanned(area: Area2D) -> void:
var chest = area.get_parent()
if chest == null or chest is not BaseChest:
return
if _chests_in_range.has(chest):
return
_chests_in_range.append(chest)
func _on_interact_unscanned(area: Area2D) -> void:
var chest = area.get_parent()
if chest == null or chest is not BaseChest:
return
if !_chests_in_range.has(chest):
return
_chests_in_range.erase(chest)
func _on_interact_triggered() -> void:
if _chests_in_range.is_empty():
return
var chest := _chests_in_range[0]
if !chest.is_open:
chest.Open()
else:
chest.OpenAlreadyOpened()
OpeningOfOpenedChestAttempted.emit()

View File

@@ -0,0 +1 @@
uid://dw76slp457s1v

View File

@@ -0,0 +1,12 @@
extends Node
@export var player: PlayerCharacter
# Public Methods
func OnPlayerAreaEntered(area: Area2D) -> void:
pass
# Private Methods
func _ready() -> void:
pass

View File

@@ -0,0 +1 @@
uid://dbscr0b7k3rtp

View File

@@ -0,0 +1,35 @@
extends Node
# Exports
@export var player: PlayerCharacter
# Private Variables
var _zones_in_range: Array[InteractiveLoadingZone] = []
# Private Methods
func _ready() -> void:
player.interact_scanner.area_entered.connect(_on_interact_scanned)
player.interact_scanner.area_exited.connect(_on_interact_unscanned)
player.interact_scanner.InteractionActionTriggered.connect(_on_interact_triggered)
func _on_interact_scanned(area: Area2D) -> void:
if area is not InteractiveLoadingZone or _zones_in_range.has(area):
return
_zones_in_range.append(area)
func _on_interact_unscanned(area: Area2D) -> void:
if area is not InteractiveLoadingZone or !_zones_in_range.has(area):
return
_zones_in_range.erase(area)
func _on_interact_triggered() -> void:
if _zones_in_range.is_empty():
return
var zone := _zones_in_range[0]
zone.Activate()

View File

@@ -0,0 +1 @@
uid://d3hhbegfxdnqq

View File

@@ -0,0 +1,27 @@
extends Node
@onready var item_notification: Label = $"../CanvasLayer/Item Notification"
var current_shop_item: ShopItem = null
# Public Methods
func OnPlayerInteractScannerAreaEntered(area: Area2D) -> void:
if area is not ShopItem:
return
var shop_item := area as ShopItem
if shop_item != current_shop_item:
current_shop_item = shop_item
var check_location := shop_item.check_location
var item := GameManager.location_items.CheckItemAtLocation(check_location)
var item_name: String = Enums.Items.keys()[item]
item_notification.text = item_name
func OnPlayerInteractScannerAreaExited(area: Area2D) -> void:
if area is not ShopItem:
return
if area == current_shop_item:
item_notification.text = ""
current_shop_item = null

View File

@@ -0,0 +1 @@
uid://cpr710p4wdgx

View File

@@ -0,0 +1,16 @@
extends Node
@export var player: CharacterBody2D
@export var markers: Node2D
# Public Methods
func _ready() -> void:
var marker_name := MapLoader.GetSpawnMarker()
if !marker_name:
return
for child in markers.get_children():
if child.name == marker_name:
var marker := child as Marker2D
var position := marker.global_position
player.position = position

View File

@@ -0,0 +1 @@
uid://dkcsftcdqtmg

View File

@@ -0,0 +1,7 @@
[gd_scene format=3 uid="uid://303hbhqetdhy"]
[ext_resource type="Script" uid="uid://dvgd5ejerauqm" path="res://Entities/Map Objects/Entity Spawners/arrow_spawner.gd" id="1_dsltu"]
[node name="Arrow Spawner" type="Node" unique_id=627092886 node_paths=PackedStringArray("arrow_parent")]
script = ExtResource("1_dsltu")
arrow_parent = NodePath("")

View File

@@ -0,0 +1,6 @@
[gd_scene format=3 uid="uid://divmfeqf10ri1"]
[ext_resource type="Script" uid="uid://c5yjcjk51l4bd" path="res://Maps/Connectors/Scripts/bench_interaction_connector.gd" id="1_34r4h"]
[node name="Bench Interaction Connector" type="Node" unique_id=541204437]
script = ExtResource("1_34r4h")

View File

@@ -0,0 +1,6 @@
[gd_scene format=3 uid="uid://dl2jpjtbiju34"]
[ext_resource type="Script" uid="uid://dw76slp457s1v" path="res://Maps/Connectors/Scripts/chest_interaction_connector.gd" id="1_aitih"]
[node name="Chest Interaction Connector" type="Node" unique_id=625804018]
script = ExtResource("1_aitih")

View File

@@ -0,0 +1,6 @@
[gd_scene format=3 uid="uid://b03s7fw8bxdxs"]
[ext_resource type="Script" uid="uid://d3hhbegfxdnqq" path="res://Maps/Connectors/Scripts/interactive_loading_zone_connector.gd" id="1_2sjeq"]
[node name="Interactive Loading Zone Connector" type="Node" unique_id=833475826]
script = ExtResource("1_2sjeq")

View File

@@ -0,0 +1,8 @@
[gd_scene format=3 uid="uid://did853bh5xeic"]
[ext_resource type="Script" uid="uid://dkcsftcdqtmg" path="res://Maps/Connectors/Scripts/spawn_marker_connector.gd" id="1_kb3a7"]
[node name="Spawn Marker Connector" type="Node" unique_id=807187299 node_paths=PackedStringArray("player", "markers")]
script = ExtResource("1_kb3a7")
player = NodePath("")
markers = NodePath("")

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bqvnkdyhfa1yq"
path="res://.godot/imported/Home_01_Overlay_01.png-26fde7ad2be3b256e0075725eafecc1c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Maps/Forest Dungeon Entrance/Interiors/Home_01_Overlay_01.png"
dest_files=["res://.godot/imported/Home_01_Overlay_01.png-26fde7ad2be3b256e0075725eafecc1c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,167 @@
[gd_scene format=4 uid="uid://laxewy7irxno"]
[ext_resource type="Script" uid="uid://dbscr0b7k3rtp" path="res://Maps/Connectors/Scripts/collision_loading_zone_connector.gd" id="1_18bbf"]
[ext_resource type="TileSet" uid="uid://df0lg5vkqwbbt" path="res://Resources/Tilesets/home_interior.tres" id="1_rf04x"]
[ext_resource type="Script" uid="uid://dkcsftcdqtmg" path="res://Maps/Connectors/Scripts/spawn_marker_connector.gd" id="2_16uj4"]
[ext_resource type="PackedScene" uid="uid://ca75b65eh7vv8" path="res://Entities/Map Objects/Loading Zone/collision_loading_zone.tscn" id="2_fdso5"]
[ext_resource type="PackedScene" uid="uid://6athlweutl2g" path="res://Entities/Characters/Player/player.tscn" id="2_lky26"]
[ext_resource type="PackedScene" uid="uid://bbules4o3xayc" path="res://Entities/Map Objects/Loading Zone/loading_zone_transporter.tscn" id="3_7kg22"]
[ext_resource type="PackedScene" uid="uid://dl2jpjtbiju34" path="res://Maps/Connectors/chest_interaction_connector.tscn" id="3_ec540"]
[ext_resource type="PackedScene" uid="uid://b7u4hlvuqiefn" path="res://Entities/Map Objects/Chests/Item Chests/item_chest_02 (Metal).tscn" id="4_a58cd"]
[ext_resource type="PackedScene" uid="uid://b60nr4wfvijpf" path="res://Entities/Map Objects/Dialogue/dialogue_trigger.tscn" id="5_msu6a"]
[ext_resource type="Texture2D" uid="uid://bm5ewxv51potl" path="res://Assets/Spritesheets/NPCs/Miner_Mike.png" id="6_x3y8m"]
[ext_resource type="Texture2D" uid="uid://bqvnkdyhfa1yq" path="res://Maps/Forest Dungeon Entrance/Interiors/Home_01_Overlay_01.png" id="11_6xfm6"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_7kg22"]
size = Vector2(32, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ec540"]
size = Vector2(11, 18)
[sub_resource type="AtlasTexture" id="AtlasTexture_a58cd"]
atlas = ExtResource("6_x3y8m")
region = Rect2(0, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_msu6a"]
atlas = ExtResource("6_x3y8m")
region = Rect2(64, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_ec540"]
atlas = ExtResource("6_x3y8m")
region = Rect2(128, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_6xfm6"]
atlas = ExtResource("6_x3y8m")
region = Rect2(192, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_nhbhl"]
atlas = ExtResource("6_x3y8m")
region = Rect2(256, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_1662b"]
atlas = ExtResource("6_x3y8m")
region = Rect2(320, 0, 64, 64)
[sub_resource type="SpriteFrames" id="SpriteFrames_qunaf"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_a58cd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_msu6a")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ec540")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6xfm6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nhbhl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1662b")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6xfm6"]
size = Vector2(11, 14)
[node name="Home 01" type="Node2D" unique_id=1401818514]
y_sort_enabled = true
[node name="Connectors" type="Node" parent="." unique_id=517749045]
[node name="Collision Loading Zone Connector" type="Node" parent="Connectors" unique_id=483597596]
script = ExtResource("1_18bbf")
[node name="Spawn Marker Connector" type="Node" parent="Connectors" unique_id=296643918 node_paths=PackedStringArray("player", "markers")]
script = ExtResource("2_16uj4")
player = NodePath("../../Player")
markers = NodePath("../../Spawn Markers")
[node name="Chest Interaction Connector" parent="Connectors" unique_id=625804018 node_paths=PackedStringArray("player") instance=ExtResource("3_ec540")]
player = NodePath("../../Player")
[node name="Tilemap" type="Node2D" parent="." unique_id=894627186]
y_sort_enabled = true
[node name="Structure" type="TileMapLayer" parent="Tilemap" unique_id=1211329497]
tile_map_data = PackedByteArray("AAACAAUAAQAGAAAAAAACAAYAAQAGAAEAAAACAAcAAQAGAAAAAAADAAUAAQAHAAAAAAADAAYAAQAHAAEAAAADAAcAAQAHAAAAAAAEAAUAAQAGAAAAAAAEAAYAAQAGAAEAAAAEAAcAAQAGAAAAAAAFAAUAAQAHAAAAAAAFAAYAAQAHAAEAAAAFAAcAAQAHAAAAAAAGAAUAAQAGAAAAAAAGAAYAAQAGAAEAAAAGAAcAAQAGAAAAAAAHAAUAAQAHAAAAAAAHAAYAAQAHAAEAAAAHAAcAAQAHAAAAAAAIAAUAAQAGAAAAAAAIAAYAAQAGAAEAAAAIAAcAAQAGAAAAAAAJAAUAAQAHAAAAAAAJAAYAAQAHAAEAAAAJAAcAAQAHAAAAAAAKAAUAAQAGAAAAAAAKAAYAAQAGAAEAAAAKAAcAAQAGAAAAAAALAAUAAQAHAAAAAAALAAYAAQAHAAEAAAALAAcAAQAHAAAAAAAMAAUAAQAGAAAAAAAMAAYAAQAGAAEAAAAMAAcAAQAGAAAAAAANAAUAAQAHAAAAAAANAAYAAQAHAAEAAAANAAcAAQAHAAAAAAACAAgAAQAGAAEAAAACAAkAAQAGAAAAAAACAAoAAQAGAAEAAAADAAgAAQAHAAEAAAADAAkAAQAHAAAAAAADAAoAAQAHAAEAAAAEAAgAAQAGAAEAAAAEAAkAAQAGAAAAAAAEAAoAAQAGAAEAAAAFAAgAAQAHAAEAAAAFAAkAAQAHAAAAAAAFAAoAAQAHAAEAAAAGAAgAAQAGAAEAAAAGAAkAAQAGAAAAAAAGAAoAAQAGAAEAAAAHAAgAAQAHAAEAAAAHAAkAAQAHAAAAAAAHAAoAAQAHAAEAAAAIAAgAAQAGAAEAAAAIAAkAAQAGAAAAAAAIAAoAAQAGAAEAAAAJAAgAAQAHAAEAAAAJAAkAAQAHAAAAAAAJAAoAAQAHAAEAAAAKAAgAAQAGAAEAAAAKAAkAAQAGAAAAAAAKAAoAAQAGAAEAAAALAAgAAQAHAAEAAAALAAkAAQAHAAAAAAALAAoAAQAHAAEAAAAMAAgAAQAGAAEAAAAMAAkAAQAGAAAAAAAMAAoAAQAGAAEAAAANAAgAAQAHAAEAAAANAAkAAQAHAAAAAAANAAoAAQAHAAEAAAACAAQAAAAGAAUAAAACAAIAAAAGAAMAAAACAAMAAAAGAAQAAAANAAIAAAAHAAMAAAANAAMAAAAHAAQAAAANAAQAAAAHAAUAAAADAAIAAAABAAMAAAADAAMAAAABAAQAAAADAAQAAAABAAUAAAAEAAIAAAABAAMAAAAEAAMAAAABAAQAAAAEAAQAAAABAAUAAAAFAAIAAAABAAMAAAAFAAMAAAABAAQAAAAFAAQAAAABAAUAAAAGAAIAAAABAAMAAAAGAAMAAAABAAQAAAAGAAQAAAABAAUAAAAHAAIAAAABAAMAAAAHAAMAAAABAAQAAAAHAAQAAAABAAUAAAAIAAIAAAABAAMAAAAIAAMAAAABAAQAAAAIAAQAAAABAAUAAAAJAAIAAAABAAMAAAAJAAMAAAABAAQAAAAJAAQAAAABAAUAAAAKAAIAAAABAAMAAAAKAAMAAAABAAQAAAAKAAQAAAABAAUAAAALAAIAAAABAAMAAAALAAMAAAABAAQAAAALAAQAAAABAAUAAAAMAAIAAAABAAMAAAAMAAMAAAABAAQAAAAMAAQAAAABAAUAAAAOAAIAAAACAAEAAAAOAAMAAAACAAEAAAAOAAQAAAACAAEAAAAOAAUAAAACAAEAAAAOAAYAAAACAAEAAAAOAAcAAAACAAEAAAAOAAgAAAACAAEAAAAOAAkAAAACAAEAAAAOAAoAAAACAAEAAAACAAEAAAABAAAAAAADAAEAAAABAAAAAAAEAAEAAAABAAAAAAAFAAEAAAABAAAAAAAGAAEAAAABAAAAAAAHAAEAAAABAAAAAAAIAAEAAAABAAAAAAAJAAEAAAABAAAAAAAKAAEAAAABAAAAAAALAAEAAAABAAAAAAAMAAEAAAABAAAAAAANAAEAAAABAAAAAAABAAIAAAAAAAEAAAABAAMAAAAAAAEAAAABAAQAAAAAAAEAAAABAAUAAAAAAAEAAAABAAYAAAAAAAEAAAABAAcAAAAAAAEAAAABAAgAAAAAAAEAAAABAAkAAAAAAAEAAAABAAoAAAAAAAEAAAACAAsAAAABAAIAAAADAAsAAAAEAAEAAAAMAAsAAAABAAIAAAANAAsAAAABAAIAAAABAAEAAAAAAAAAAAAOAAEAAAACAAAAAAABAAsAAAAAAAIAAAAOAAsAAAACAAIAAAALAAsAAAABAAIAAAAKAAsAAAABAAIAAAAJAAsAAAABAAIAAAAIAAsAAAABAAIAAAAHAAsAAAABAAIAAAAGAAsAAAADAAEAAAAEAAsAAQAHAAAAAAAFAAsAAQAHAAAAAAA=")
tile_set = ExtResource("1_rf04x")
[node name="Decor" type="TileMapLayer" parent="Tilemap" unique_id=941487815]
y_sort_enabled = true
tile_map_data = PackedByteArray("AAADAAQABAAAAAAAAAAEAAUABQAAAAAAAAACAAgAAgAAAAIAAAACAAkAAgAAAAMAAAADAAgAAgACAAIAAAADAAkAAgACAAMAAAAEAAgACQADAAAAAAAMAAUACwAAAAgAAAAIAAMACgAGAAAAAAAJAAQAAwAAAAAAAAAKAAQACQABAAAAAAA=")
tile_set = ExtResource("1_rf04x")
[node name="Decor 2" type="TileMapLayer" parent="Tilemap" unique_id=1988290805]
y_sort_enabled = true
tile_map_data = PackedByteArray("AAADAAgABwAAAAQAAAA=")
tile_set = ExtResource("1_rf04x")
[node name="Objects" type="Node2D" parent="." unique_id=1163373560]
y_sort_enabled = true
[node name="Item Chest 02" parent="Objects" unique_id=152271802 node_paths=PackedStringArray("locked_message_dialogue_trigger") instance=ExtResource("4_a58cd")]
position = Vector2(206, 117)
is_locked = true
locked_message_dialogue_trigger = NodePath("Locked Dialogue Trigger")
[node name="Locked Dialogue Trigger" parent="Objects/Item Chest 02" unique_id=189867444 instance=ExtResource("5_msu6a")]
dialogue_name = "MSG_FOREST_DUNGEON_ENTRANCE_HOME_01_LOCKED_CHEST_01"
[node name="Loading Zones" type="Node2D" parent="." unique_id=1862302491]
[node name="Collision Loading Zone" parent="Loading Zones" unique_id=1043800735 node_paths=PackedStringArray("loading_zone_transporter") instance=ExtResource("2_fdso5")]
loading_zone_transporter = NodePath("Loading Zone Transporter")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Loading Zones/Collision Loading Zone" unique_id=2049955470]
position = Vector2(80, 188)
shape = SubResource("RectangleShape2D_7kg22")
[node name="Loading Zone Transporter" parent="Loading Zones/Collision Loading Zone" unique_id=1690817663 instance=ExtResource("3_7kg22")]
destination_marker_name = "Home 01 Entrance"
[node name="Spawn Markers" type="Node2D" parent="." unique_id=1756787676]
[node name="Entrance" type="Marker2D" parent="Spawn Markers" unique_id=421447336]
position = Vector2(80, 175)
[node name="NPCs" type="Node2D" parent="." unique_id=1965309351]
[node name="CharacterBody2D" type="CharacterBody2D" parent="NPCs" unique_id=1487693855]
position = Vector2(93, 85)
[node name="CollisionShape2D" type="CollisionShape2D" parent="NPCs/CharacterBody2D" unique_id=542589948]
position = Vector2(-0.5, -2)
shape = SubResource("RectangleShape2D_ec540")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="NPCs/CharacterBody2D" unique_id=1921427945]
sprite_frames = SubResource("SpriteFrames_qunaf")
autoplay = "default"
[node name="Dialogue Trigger" parent="NPCs/CharacterBody2D" unique_id=661667742 instance=ExtResource("5_msu6a")]
dialogue_name = "MSG_BLACKSMITH"
[node name="CollisionShape2D" type="CollisionShape2D" parent="NPCs/CharacterBody2D/Dialogue Trigger" unique_id=2044300734]
position = Vector2(-0.5, -4)
shape = SubResource("RectangleShape2D_6xfm6")
debug_color = Color(0.7930861, 0.42714188, 7.70092e-07, 0.41960785)
[node name="Camera2D" type="Camera2D" parent="." unique_id=2134984506]
position = Vector2(127, 110)
zoom = Vector2(3, 3)
[node name="Player" parent="." unique_id=1502234578 instance=ExtResource("2_lky26")]
position = Vector2(108, 139)
[node name="Overlay" type="Sprite2D" parent="." unique_id=455840170]
position = Vector2(124, 217)
scale = Vector2(0.25, 0.25)
texture = ExtResource("11_6xfm6")
offset = Vector2(16, -436)

File diff suppressed because one or more lines are too long