summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRadio <radiohotline@disroot.org>2026-06-01 22:28:46 +0300
committerRadio <radiohotline@disroot.org>2026-06-01 22:28:46 +0300
commit2c85d452ad02a5f89cd43bad7f9de31d0e4fa0c1 (patch)
tree758998f717dab8c0ed9d1b47419e7590c28e8fa2
parent7f437327b25be23b1cdcd4aa3898d428421e533f (diff)
area transitions, basic inventory and use events
-rw-r--r--project.godot7
-rw-r--r--scenes/char/weener.gd87
-rw-r--r--scenes/char/weener.tscn48
-rw-r--r--scenes/item/door.gd14
-rw-r--r--scenes/item/door.gd.uid1
-rw-r--r--scenes/item/door.tscn14
-rw-r--r--scenes/item/inventory.gd12
-rw-r--r--scenes/item/inventory.gd.uid1
-rw-r--r--scenes/item/inventory.tscn3
-rw-r--r--scenes/item/inventory_item.gd1
-rw-r--r--scenes/item/inventory_item.gd.uid1
-rw-r--r--scenes/item/item.gd42
-rw-r--r--scenes/item/item.gd.uid1
-rw-r--r--scenes/item/item.tscn13
-rw-r--r--scenes/room/kitchen.tscn17
-rw-r--r--scenes/room/room.gd7
-rw-r--r--scenes/room/room.gd.uid1
-rw-r--r--scenes/room/room.tscn8
-rw-r--r--scenes/room/spawnpoint.gd1
-rw-r--r--scenes/room/spawnpoint.gd.uid1
-rw-r--r--scenes/room/spawnpoint.tscn6
-rw-r--r--scenes/room/start.tscn91
22 files changed, 311 insertions, 66 deletions
diff --git a/project.godot b/project.godot
index fa48572..22de0a0 100644
--- a/project.godot
+++ b/project.godot
@@ -22,6 +22,11 @@ config/icon="res://icon.svg"
[autoload]
Menu="*uid://dqhxjaxlgy4yf"
+Inventory="*uid://dsnx5a3q0ffv0"
+
+[debug]
+
+gdscript/warnings/shadowed_variable=0
[display]
@@ -38,7 +43,7 @@ ui_menu={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194305,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
-ui_interact={
+interact={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
diff --git a/scenes/char/weener.gd b/scenes/char/weener.gd
index f4f9e38..b970b20 100644
--- a/scenes/char/weener.gd
+++ b/scenes/char/weener.gd
@@ -1,4 +1,4 @@
-extends CharacterBody2D
+class_name Weener extends CharacterBody2D
@onready var sprite := $Sprite
@onready var nav2d := $NavigationAgent2D
@@ -7,18 +7,43 @@ const ref_speed := 500.0
@onready var speed := ref_speed
@onready var target := position
+@onready var interactions := []
+var door: Door = null
+#@onready var inventory := []
+
+static var spawnpoint: int = -1
+static var sprite_flip: bool
+
+var input_listen := true
+
func _physics_process(delta: float) -> void:
set_target()
- navigate(delta)
+ if input_listen:
+ navigate(delta)
+
+
+func _ready() -> void:
+ nav2d.navigation_finished.connect(func() -> void:
+ if door != null:
+ travel(door)
+ )
+ sprite.flip_h = sprite_flip
+
+
+func _exit_tree() -> void:
+ sprite_flip = sprite.flip_h
func set_target() -> void:
if Input.is_action_just_pressed("set_target"):
- nav2d.target_position = get_global_mouse_position()
- if position.distance_to(nav2d.target_position) > 750:
- speed = ref_speed * 1.8
+ if !interactions.is_empty() and interactions[0].mouse_in:
+ interact(interactions[0])
else:
- speed = ref_speed
+ nav2d.target_position = get_global_mouse_position()
+ if position.distance_to(nav2d.target_position) > 750:
+ speed = ref_speed * 1.8
+ else:
+ speed = ref_speed
func navigate(delta: float) -> void:
@@ -33,3 +58,53 @@ func navigate(delta: float) -> void:
sprite.play("run")
else:
sprite.play("walk")
+
+
+func _on_area_entered(area):
+ interactions.insert(0, area)
+
+
+func _on_area_exited(area):
+ interactions.erase(area)
+
+
+func _on_walk_detect_area_entered(area: Area2D) -> void:
+ door = area as Door
+
+
+func _on_walk_detect_area_exited(_area: Area2D) -> void:
+ door = null
+
+
+func interact(item: Item) -> void:
+ match item.item_type:
+ Item.ItemTypes.NONE:
+ return
+ Item.ItemTypes.TALK:
+ print(" ".join(item.text))
+ Item.ItemTypes.PICKUP:
+ input_listen = false
+ sprite.play("grab")
+ sprite.animation_finished.connect(func() -> void: input_listen = true)
+ Inventory.inventory.set(item.item_id, false)
+ item.queue_free()
+ print(Inventory.inventory)
+ Item.ItemTypes.USE:
+ #item.execute(item.uses)
+ for use in item.uses:
+ match use:
+ Item.UseTypes.TAKE_ITEM:
+ if item.useable_item in Inventory.inventory:
+ Inventory.inventory.set(item.useable_item, true)
+ print(Inventory.inventory)
+ item.used = true
+ Item.UseTypes.CLEAR:
+ if item.used:
+ item.queue_free()
+ _:
+ break
+
+
+func travel(d: Door) -> void:
+ spawnpoint = d.go_to_spawnpoint
+ get_tree().change_scene_to_file(d.target_scene)
diff --git a/scenes/char/weener.tscn b/scenes/char/weener.tscn
index c8164fe..8ed1a80 100644
--- a/scenes/char/weener.tscn
+++ b/scenes/char/weener.tscn
@@ -21,12 +21,6 @@ animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_ka3oh")
-}, {
-"duration": 1.0,
-"texture": ExtResource("1_b3dvs")
-}, {
-"duration": 1.0,
-"texture": ExtResource("1_b3dvs")
}],
"loop": false,
"name": &"grab",
@@ -70,7 +64,11 @@ animations = [{
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_rsd08"]
-size = Vector2(44, 109.5)
+size = Vector2(65.5, 150.25)
+
+[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_rsd08"]
+radius = 116.0
+height = 444.0
[node name="Weener" type="CharacterBody2D" unique_id=1834042649]
script = ExtResource("1_5hljh")
@@ -81,21 +79,31 @@ sprite_frames = SubResource("SpriteFrames_ka3oh")
animation = &"stand"
autoplay = "stand"
-[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1548923938]
+[node name="WalkCollision" type="CollisionShape2D" parent="." unique_id=1548923938]
rotation = 1.5707964
shape = SubResource("RectangleShape2D_rsd08")
[node name="NavigationAgent2D" type="NavigationAgent2D" parent="." unique_id=2038637548]
-debug_enabled = true
-[node name="Debug" type="Label" parent="." unique_id=999070759]
-visible = false
-anchors_preset = 5
-anchor_left = 0.5
-anchor_right = 0.5
-offset_left = -20.0
-offset_top = -502.0
-offset_right = 20.0
-offset_bottom = -479.0
-grow_horizontal = 2
-size_flags_vertical = 0
+[node name="InteractDetect" type="Area2D" parent="." unique_id=1466530066]
+collision_mask = 2
+
+[node name="InteractCollision" type="CollisionShape2D" parent="InteractDetect" unique_id=526603123]
+position = Vector2(0, -205)
+shape = SubResource("CapsuleShape2D_rsd08")
+
+[node name="WalkDetect" type="Area2D" parent="." unique_id=1208097571]
+
+[node name="WalkCollision" type="CollisionShape2D" parent="WalkDetect" unique_id=1174332734]
+rotation = 1.5707964
+shape = SubResource("RectangleShape2D_rsd08")
+
+[node name="Inventory" type="Label" parent="." unique_id=1503183978]
+offset_top = -471.0
+offset_right = 40.0
+offset_bottom = -448.0
+
+[connection signal="area_entered" from="InteractDetect" to="." method="_on_area_entered"]
+[connection signal="area_exited" from="InteractDetect" to="." method="_on_area_exited"]
+[connection signal="area_entered" from="WalkDetect" to="." method="_on_walk_detect_area_entered"]
+[connection signal="area_exited" from="WalkDetect" to="." method="_on_walk_detect_area_exited"]
diff --git a/scenes/item/door.gd b/scenes/item/door.gd
new file mode 100644
index 0000000..75b8d84
--- /dev/null
+++ b/scenes/item/door.gd
@@ -0,0 +1,14 @@
+class_name Door extends Area2D
+
+@export_file var target_scene
+@export var go_to_spawnpoint: int
+@export var flip_sprite: bool = false
+
+var mouse_in := false
+
+#func _on_mouse_entered() -> void:
+ #mouse_in = true
+#
+#
+#func _on_mouse_exited() -> void:
+ #mouse_in = false
diff --git a/scenes/item/door.gd.uid b/scenes/item/door.gd.uid
new file mode 100644
index 0000000..e0ea3be
--- /dev/null
+++ b/scenes/item/door.gd.uid
@@ -0,0 +1 @@
+uid://br4thmxp67m51
diff --git a/scenes/item/door.tscn b/scenes/item/door.tscn
new file mode 100644
index 0000000..901f8e1
--- /dev/null
+++ b/scenes/item/door.tscn
@@ -0,0 +1,14 @@
+[gd_scene format=3 uid="uid://ldwt8qv482qa"]
+
+[ext_resource type="Script" uid="uid://br4thmxp67m51" path="res://scenes/item/door.gd" id="1_tbo8r"]
+
+[node name="Door" type="Area2D" unique_id=359892745]
+collision_mask = 0
+script = ExtResource("1_tbo8r")
+
+[node name="Sprite" type="Sprite2D" parent="." unique_id=89747108]
+
+[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="." unique_id=348112285]
+
+[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"]
+[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"]
diff --git a/scenes/item/inventory.gd b/scenes/item/inventory.gd
new file mode 100644
index 0000000..84bf1e2
--- /dev/null
+++ b/scenes/item/inventory.gd
@@ -0,0 +1,12 @@
+extends Node
+
+var inventory = {}
+
+# structure
+# item, dictionary of:
+# prop 1
+# prop 2 etc...
+# inventory, dictionary of dictionaries with value used
+# inventory items have a used property
+# on scene load, if item exists in inventory, do not spawn
+# once item is expended, used is true, then the item also does not spawn
diff --git a/scenes/item/inventory.gd.uid b/scenes/item/inventory.gd.uid
new file mode 100644
index 0000000..8d523c7
--- /dev/null
+++ b/scenes/item/inventory.gd.uid
@@ -0,0 +1 @@
+uid://dsnx5a3q0ffv0
diff --git a/scenes/item/inventory.tscn b/scenes/item/inventory.tscn
new file mode 100644
index 0000000..1d8f705
--- /dev/null
+++ b/scenes/item/inventory.tscn
@@ -0,0 +1,3 @@
+[gd_scene format=3 uid="uid://ccrfeohraf7yl"]
+
+[node name="Inventory" type="Node2D" unique_id=739717319]
diff --git a/scenes/item/inventory_item.gd b/scenes/item/inventory_item.gd
new file mode 100644
index 0000000..10d18f8
--- /dev/null
+++ b/scenes/item/inventory_item.gd
@@ -0,0 +1 @@
+class_name InventoryItem extends Node
diff --git a/scenes/item/inventory_item.gd.uid b/scenes/item/inventory_item.gd.uid
new file mode 100644
index 0000000..8cf1b07
--- /dev/null
+++ b/scenes/item/inventory_item.gd.uid
@@ -0,0 +1 @@
+uid://dlyiamkvjhmkt
diff --git a/scenes/item/item.gd b/scenes/item/item.gd
new file mode 100644
index 0000000..dc37a40
--- /dev/null
+++ b/scenes/item/item.gd
@@ -0,0 +1,42 @@
+class_name Item extends Area2D
+
+enum ItemTypes { NONE, TALK, PICKUP, SCRIPT, USE, ANIM }
+
+enum UseTypes { TAKE_ITEM, FLAG, ANIM, CLEAR }
+
+# play a little animation, check for received item and:
+# take item
+# trigger flag -> global flag for a door unlock, etc
+# change sprite
+# instantiate an item (flag?)
+# clear item
+
+@export var item_type := ItemTypes.NONE
+@export var item_id := ""
+
+@export var text: Array[String]
+@export var item_script: Script
+
+@export var interact_anim := ""
+
+@export var uses: Array[UseTypes]
+@export var useable_item := ""
+@export var use_anim := ""
+static var used := false
+
+var mouse_in := false
+
+func _ready() -> void:
+ if (item_type == ItemTypes.PICKUP and item_id in Inventory.inventory) or (item_type == ItemTypes.USE and used):
+ queue_free()
+
+
+func _on_mouse_entered() -> void:
+ mouse_in = true
+
+
+func _on_mouse_exited() -> void:
+ mouse_in = false
+
+
+#func execute(uses) -> void:
diff --git a/scenes/item/item.gd.uid b/scenes/item/item.gd.uid
new file mode 100644
index 0000000..8200bc7
--- /dev/null
+++ b/scenes/item/item.gd.uid
@@ -0,0 +1 @@
+uid://bw4bw3o6okiy4
diff --git a/scenes/item/item.tscn b/scenes/item/item.tscn
index a8c3dda..c2d21d8 100644
--- a/scenes/item/item.tscn
+++ b/scenes/item/item.tscn
@@ -1,14 +1,19 @@
[gd_scene format=3 uid="uid://xn4bxjj1vuim"]
-[ext_resource type="Texture2D" uid="uid://det86lqkb5y4p" path="res://room/start/testprop.png" id="1_vcqat"]
+[ext_resource type="Script" uid="uid://bw4bw3o6okiy4" path="res://scenes/item/item.gd" id="1_vcqat"]
[sub_resource type="CircleShape2D" id="CircleShape2D_vijbe"]
-radius = 77.00649
+radius = 76.105194
-[node name="Item" type="StaticBody2D" unique_id=724668915]
+[node name="Item" type="Area2D" unique_id=359892745]
+collision_layer = 2
+collision_mask = 0
+script = ExtResource("1_vcqat")
[node name="Sprite" type="Sprite2D" parent="." unique_id=89747108]
-texture = ExtResource("1_vcqat")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=574625641]
shape = SubResource("CircleShape2D_vijbe")
+
+[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"]
+[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"]
diff --git a/scenes/room/kitchen.tscn b/scenes/room/kitchen.tscn
index 5284629..74fabf4 100644
--- a/scenes/room/kitchen.tscn
+++ b/scenes/room/kitchen.tscn
@@ -2,15 +2,13 @@
[ext_resource type="PackedScene" uid="uid://b1s6v121kb2mi" path="res://scenes/room/room.tscn" id="1_4qnmt"]
[ext_resource type="Texture2D" uid="uid://domalafsxaubx" path="res://room/kitchen/kitchen.png" id="2_6oufn"]
+[ext_resource type="PackedScene" uid="uid://ldwt8qv482qa" path="res://scenes/item/door.tscn" id="3_u4rop"]
[sub_resource type="NavigationPolygon" id="NavigationPolygon_6oufn"]
vertices = PackedVector2Array(856.2578, 1032.0703, 817.2578, 913.3281, 916.02344, 900.28906, 1515.4922, 1038.9609, 1701.0469, 888.5078, 1123.5625, 563.03906, 1748.4766, 567.9219, 1755.3672, 703.6172, 1910, 916.5625, 1910, 748.5)
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(4, 3, 2, 5, 6, 7), PackedInt32Array(8, 4, 7, 9)])
outlines = Array[PackedVector2Array]([PackedVector2Array(1704, 899, 1519, 1049, 849, 1042, 804, 905, 910, 891, 1118, 553, 1758, 558, 1765, 696, 1920, 741, 1920, 928)])
-[sub_resource type="RectangleShape2D" id="RectangleShape2D_6oufn"]
-size = Vector2(170, 232)
-
[node name="Kitchen" unique_id=2088608692 instance=ExtResource("1_4qnmt")]
[node name="Room" parent="." index="0" unique_id=1997957082]
@@ -22,8 +20,13 @@ position = Vector2(1671, 837)
[node name="NavigationRegion2D" parent="." index="2" unique_id=1498960834]
navigation_polygon = SubResource("NavigationPolygon_6oufn")
-[node name="Bedroom" type="Area2D" parent="." index="3" unique_id=904050755]
+[node name="Spawnpoint" parent="." index="3" unique_id=1413507405]
+position = Vector2(1671, 822)
+
+[node name="Door" parent="." index="4" unique_id=359892745 instance=ExtResource("3_u4rop")]
+target_scene = "uid://cec247tmm7ait"
+
+[node name="CollisionPolygon2D" parent="Door" index="1" unique_id=348112285]
+polygon = PackedVector2Array(1803, 702, 1799, 927, 1920, 928, 1920, 705)
-[node name="CollisionShape2D" type="CollisionShape2D" parent="Bedroom" index="0" unique_id=1414369935]
-position = Vector2(1845, 819)
-shape = SubResource("RectangleShape2D_6oufn")
+[editable path="Door"]
diff --git a/scenes/room/room.gd b/scenes/room/room.gd
new file mode 100644
index 0000000..fe8cf70
--- /dev/null
+++ b/scenes/room/room.gd
@@ -0,0 +1,7 @@
+extends Node2D
+
+@export var entrances: Array[Marker2D] = []
+
+func _ready() -> void:
+ if $Weener.spawnpoint != -1:
+ $Weener.position = entrances[$Weener.spawnpoint].global_position
diff --git a/scenes/room/room.gd.uid b/scenes/room/room.gd.uid
new file mode 100644
index 0000000..05233ba
--- /dev/null
+++ b/scenes/room/room.gd.uid
@@ -0,0 +1 @@
+uid://drthtcpmeydm6
diff --git a/scenes/room/room.tscn b/scenes/room/room.tscn
index 6c867d8..145ee48 100644
--- a/scenes/room/room.tscn
+++ b/scenes/room/room.tscn
@@ -1,8 +1,12 @@
[gd_scene format=3 uid="uid://b1s6v121kb2mi"]
+[ext_resource type="Script" uid="uid://drthtcpmeydm6" path="res://scenes/room/room.gd" id="1_kxljb"]
[ext_resource type="PackedScene" uid="uid://bt4utdbe577mj" path="res://scenes/char/weener.tscn" id="2_vaubn"]
+[ext_resource type="PackedScene" uid="uid://chwbsexrxbi4a" path="res://scenes/room/spawnpoint.tscn" id="3_y1kpu"]
-[node name="Room" type="Node2D" unique_id=2088608692]
+[node name="Room" type="Node2D" unique_id=2088608692 node_paths=PackedStringArray("entrances")]
+script = ExtResource("1_kxljb")
+entrances = [NodePath("Spawnpoint")]
[node name="Room" type="Sprite2D" parent="." unique_id=1997957082]
centered = false
@@ -11,3 +15,5 @@ centered = false
position = Vector2(1127, 956)
[node name="NavigationRegion2D" type="NavigationRegion2D" parent="." unique_id=1498960834]
+
+[node name="Spawnpoint" parent="." unique_id=1413507405 instance=ExtResource("3_y1kpu")]
diff --git a/scenes/room/spawnpoint.gd b/scenes/room/spawnpoint.gd
new file mode 100644
index 0000000..fd74c79
--- /dev/null
+++ b/scenes/room/spawnpoint.gd
@@ -0,0 +1 @@
+extends Marker2D
diff --git a/scenes/room/spawnpoint.gd.uid b/scenes/room/spawnpoint.gd.uid
new file mode 100644
index 0000000..c1ecb4c
--- /dev/null
+++ b/scenes/room/spawnpoint.gd.uid
@@ -0,0 +1 @@
+uid://j2ctii1213or
diff --git a/scenes/room/spawnpoint.tscn b/scenes/room/spawnpoint.tscn
new file mode 100644
index 0000000..9c217ab
--- /dev/null
+++ b/scenes/room/spawnpoint.tscn
@@ -0,0 +1,6 @@
+[gd_scene format=3 uid="uid://chwbsexrxbi4a"]
+
+[ext_resource type="Script" uid="uid://j2ctii1213or" path="res://scenes/room/spawnpoint.gd" id="1_xdtlq"]
+
+[node name="Spawnpoint" type="Marker2D" unique_id=1413507405]
+script = ExtResource("1_xdtlq")
diff --git a/scenes/room/start.tscn b/scenes/room/start.tscn
index 32a8bcd..df92143 100644
--- a/scenes/room/start.tscn
+++ b/scenes/room/start.tscn
@@ -1,41 +1,78 @@
[gd_scene format=3 uid="uid://cec247tmm7ait"]
+[ext_resource type="PackedScene" uid="uid://b1s6v121kb2mi" path="res://scenes/room/room.tscn" id="1_c20yv"]
[ext_resource type="Texture2D" uid="uid://cfn3ctcvyfjn0" path="res://room/start/room.jpg" id="1_ft2pm"]
-[ext_resource type="PackedScene" uid="uid://bt4utdbe577mj" path="res://scenes/char/weener.tscn" id="2_d0alr"]
+[ext_resource type="PackedScene" uid="uid://ldwt8qv482qa" path="res://scenes/item/door.tscn" id="3_tspce"]
[ext_resource type="PackedScene" uid="uid://xn4bxjj1vuim" path="res://scenes/item/item.tscn" id="3_uxhtn"]
+[ext_resource type="Texture2D" uid="uid://det86lqkb5y4p" path="res://room/start/testprop.png" id="4_q15md"]
+[ext_resource type="PackedScene" uid="uid://chwbsexrxbi4a" path="res://scenes/room/spawnpoint.tscn" id="5_c20yv"]
-[sub_resource type="RectangleShape2D" id="RectangleShape2D_q15md"]
-size = Vector2(125.15787, 285.6711)
+[sub_resource type="NavigationPolygon" id="NavigationPolygon_tspce"]
+vertices = PackedVector2Array(9.0234375, 884.4922, 196.39844, 766.34375, 211.64844, 814.03125, 1180.5234, 843, 1738.7969, 863.5625, 1910, 981.2578, 1910, 1070, 9.953125, 1070, 699.8828, 843, 619.5703, 725.96094, 674.9297, 724.25, 344.52344, 807.15625, 1243.9688, 699.21875, 1524.6563, 749.5469, 302.3672, 769.89844)
+polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2), PackedInt32Array(3, 4, 5, 6, 7, 0, 8), PackedInt32Array(9, 10, 8, 11), PackedInt32Array(3, 12, 13, 4), PackedInt32Array(2, 14, 11), PackedInt32Array(11, 8, 0, 2)])
+outlines = Array[PackedVector2Array]([PackedVector2Array(202, 751, 217.65723, 799.9918, 304, 758, 347, 796, 618, 716, 683, 714, 708, 833, 1174, 833, 1238, 688, 1528, 740, 1744, 855, 1920, 976, 1920, 1080, 0, 1080, -1, 879)])
-[sub_resource type="NavigationPolygon" id="NavigationPolygon_d0alr"]
-vertices = PackedVector2Array(10, 824.25, 195.53125, 763.6328, 211.64844, 814.03125, 10, 1070, 1738.7969, 863.5625, 1910, 981.2578, 1910, 1070, 699.8828, 843, 1180.5234, 843, 344.52344, 807.15625, 619.5703, 725.96094, 674.9297, 724.25, 1243.9688, 699.21875, 1524.6563, 749.5469, 302.3672, 769.89844)
-polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(4, 5, 6, 3, 7, 8), PackedInt32Array(9, 10, 11, 7, 3), PackedInt32Array(8, 12, 13, 4), PackedInt32Array(2, 14, 9, 3)])
-outlines = Array[PackedVector2Array]([PackedVector2Array(202, 751, 217.65723, 799.9918, 304, 758, 347, 796, 618, 716, 683, 714, 708, 833, 1174, 833, 1238, 688, 1528, 740, 1744, 855, 1920, 976, 1920, 1080, 0, 1080, 0, 817)])
+[node name="Room" unique_id=2088608692 node_paths=PackedStringArray("entrances") instance=ExtResource("1_c20yv")]
+entrances = [NodePath("Spawnpoint"), NodePath("From Corridor")]
-[node name="Start" type="Node2D" unique_id=2088608692]
-
-[node name="Room" type="Sprite2D" parent="." unique_id=1997957082]
+[node name="Room" parent="." index="0" unique_id=1997957082]
texture = ExtResource("1_ft2pm")
-centered = false
-
-[node name="Kitchen" type="StaticBody2D" parent="." unique_id=357217904]
-collision_layer = 0
-collision_mask = 0
-[node name="CollisionShape2D" type="CollisionShape2D" parent="Kitchen" unique_id=727728769]
-position = Vector2(93.75002, 862.75)
-rotation = 0.7853982
-scale = Vector2(0.9999999, 0.9999999)
-shape = SubResource("RectangleShape2D_q15md")
+[node name="NavigationRegion2D" parent="." index="2" unique_id=1498960834]
+visible = false
+navigation_polygon = SubResource("NavigationPolygon_tspce")
-[node name="Weener" parent="." unique_id=1834042649 instance=ExtResource("2_d0alr")]
-position = Vector2(1127, 956)
+[node name="Kitchen" parent="." index="3" unique_id=359892745 instance=ExtResource("3_tspce")]
+position = Vector2(90, 864)
+target_scene = "uid://c40vhh8wtss4b"
-[node name="NavigationRegion2D" type="NavigationRegion2D" parent="." unique_id=1498960834]
-navigation_polygon = SubResource("NavigationPolygon_d0alr")
+[node name="CollisionPolygon2D" parent="Kitchen" index="1" unique_id=348112285]
+polygon = PackedVector2Array(-90, 91, -1, 107, 101, 80, 139, -4, 119, -62, 96, -523, -90, -445)
-[node name="Item" parent="." unique_id=724668915 instance=ExtResource("3_uxhtn")]
+[node name="Item" parent="." index="4" unique_id=1732180617 instance=ExtResource("3_uxhtn")]
position = Vector2(1626, 608)
+item_type = 2
+item_id = "test1"
+
+[node name="Sprite" parent="Item" index="0" unique_id=89747108]
+texture = ExtResource("4_q15md")
+
+[node name="Item3" parent="." index="5" unique_id=1012362187 instance=ExtResource("3_uxhtn")]
+position = Vector2(1806, 649)
+item_type = 2
+item_id = "test3"
+
+[node name="Sprite" parent="Item3" index="0" unique_id=89747108]
+texture = ExtResource("4_q15md")
+
+[node name="Item2" parent="." index="6" unique_id=740081124 instance=ExtResource("3_uxhtn")]
+position = Vector2(500, 417)
+item_type = 1
+item_id = "test2"
+text = Array[String](["abababab"])
+
+[node name="Sprite" parent="Item2" index="0" unique_id=89747108]
+texture = ExtResource("4_q15md")
+
+[node name="Item4" parent="." index="7" unique_id=811205574 instance=ExtResource("3_uxhtn")]
+position = Vector2(789, 956)
+item_type = 4
+item_id = "test4"
+uses = Array[int]([0, 3])
+useable_item = "test1"
+
+[node name="Sprite" parent="Item4" index="0" unique_id=89747108]
+texture = ExtResource("4_q15md")
+
+[node name="From Corridor" parent="." index="8" unique_id=1847337443 instance=ExtResource("5_c20yv")]
+position = Vector2(1355, 763)
+
+[node name="Spawnpoint" parent="." index="9" unique_id=1413507405]
+position = Vector2(209, 890)
-[node name="Item2" parent="." unique_id=1487046604 instance=ExtResource("3_uxhtn")]
-position = Vector2(394, 458)
+[editable path="Kitchen"]
+[editable path="Item"]
+[editable path="Item3"]
+[editable path="Item2"]
+[editable path="Item4"]
+[editable path="Spawnpoint"]