summaryrefslogtreecommitdiff
path: root/scenes/item
diff options
context:
space:
mode:
Diffstat (limited to 'scenes/item')
-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
11 files changed, 99 insertions, 4 deletions
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"]