diff options
Diffstat (limited to 'scenes/item')
| -rw-r--r-- | scenes/item/door.gd | 14 | ||||
| -rw-r--r-- | scenes/item/door.gd.uid | 1 | ||||
| -rw-r--r-- | scenes/item/door.tscn | 14 | ||||
| -rw-r--r-- | scenes/item/inventory.gd | 12 | ||||
| -rw-r--r-- | scenes/item/inventory.gd.uid | 1 | ||||
| -rw-r--r-- | scenes/item/inventory.tscn | 3 | ||||
| -rw-r--r-- | scenes/item/inventory_item.gd | 1 | ||||
| -rw-r--r-- | scenes/item/inventory_item.gd.uid | 1 | ||||
| -rw-r--r-- | scenes/item/item.gd | 42 | ||||
| -rw-r--r-- | scenes/item/item.gd.uid | 1 | ||||
| -rw-r--r-- | scenes/item/item.tscn | 13 |
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"] |
