summaryrefslogtreecommitdiff
path: root/scenes/item/item.gd
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 /scenes/item/item.gd
parent7f437327b25be23b1cdcd4aa3898d428421e533f (diff)
area transitions, basic inventory and use events
Diffstat (limited to 'scenes/item/item.gd')
-rw-r--r--scenes/item/item.gd42
1 files changed, 42 insertions, 0 deletions
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: