From 151d93e433b2b086ad872052659beb7f2baaa0dc Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Wed, 14 May 2025 16:46:46 -0500 Subject: [PATCH] onion test 0 --- scenes/Entities/OnionSprig.tscn | 41 ++++++++++++++++++++++++++++ scenes/Entities/Sign.tscn | 4 +-- scenes/Maps/TestMap/TestMap.tscn | 13 ++++++++- scripts/Entity/OnionSprig.gd | 23 ++++++++++++++++ scripts/Entity/OnionSprig.gd.uid | 1 + scripts/Item/Ingredient/Onion.gd | 13 +++++++++ scripts/Item/Ingredient/Onion.gd.uid | 1 + scripts/Item/ItemType.gd | 4 +++ scripts/Item/ItemType.gd.uid | 1 + scripts/Singleton/Item.gd | 1 + 10 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 scenes/Entities/OnionSprig.tscn create mode 100644 scripts/Entity/OnionSprig.gd create mode 100644 scripts/Entity/OnionSprig.gd.uid create mode 100644 scripts/Item/Ingredient/Onion.gd create mode 100644 scripts/Item/Ingredient/Onion.gd.uid create mode 100644 scripts/Item/ItemType.gd create mode 100644 scripts/Item/ItemType.gd.uid diff --git a/scenes/Entities/OnionSprig.tscn b/scenes/Entities/OnionSprig.tscn new file mode 100644 index 0000000..b3098c6 --- /dev/null +++ b/scenes/Entities/OnionSprig.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=9 format=3 uid="uid://bes5p6ckw6d58"] + +[ext_resource type="Script" uid="uid://0nn3ix2nwk3f" path="res://scripts/Entity/OnionSprig.gd" id="1_pnyp6"] +[ext_resource type="Script" uid="uid://dtjjqp2atjyhr" path="res://scripts/Entity/Entity.gd" id="2_crfvs"] +[ext_resource type="Script" uid="uid://03dqknw7v4mr" path="res://scripts/Entity/Component/EntityInteractable.gd" id="3_7clu1"] +[ext_resource type="Shader" uid="uid://7h2axb2tsh17" path="res://shaders/NPC Shader.gdshader" id="4_w0eam"] +[ext_resource type="Texture2D" uid="uid://cofrgefp8e617" path="res://textures/human.png" id="5_5uma8"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_cpa1u"] + +[sub_resource type="QuadMesh" id="QuadMesh_dyaax"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_fegux"] +render_priority = 0 +shader = ExtResource("4_w0eam") +shader_parameter/npcTexture = ExtResource("5_5uma8") +shader_parameter/color = Color(0.77816, 0.965494, 0.746061, 1) +shader_parameter/frame = 0 +shader_parameter/direction = 2 + +[node name="OnionSprig" type="StaticBody3D"] +collision_layer = 2 +collision_mask = 258 +script = ExtResource("1_pnyp6") + +[node name="Entity" type="Node" parent="."] +script = ExtResource("2_crfvs") +metadata/_custom_type_script = "uid://dtjjqp2atjyhr" + +[node name="EntityInteractable" type="Node" parent="Entity" node_paths=PackedStringArray("entity")] +script = ExtResource("3_7clu1") +entity = NodePath("..") +metadata/_custom_type_script = "uid://03dqknw7v4mr" + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("BoxShape3D_cpa1u") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.173648, 0.984808, 0, -0.984808, 0.173648, 0, 0, 0) +mesh = SubResource("QuadMesh_dyaax") +surface_material_override/0 = SubResource("ShaderMaterial_fegux") diff --git a/scenes/Entities/Sign.tscn b/scenes/Entities/Sign.tscn index 5909dae..890ba67 100644 --- a/scenes/Entities/Sign.tscn +++ b/scenes/Entities/Sign.tscn @@ -28,11 +28,9 @@ metadata/_custom_type_script = "uid://bitykguiignfu" script = ExtResource("2_obj4d") metadata/_custom_type_script = "uid://dtjjqp2atjyhr" -[node name="EntityInteractable" type="Node" parent="Entity" node_paths=PackedStringArray("entityDirection", "entity", "characterBody")] +[node name="EntityInteractable" type="Node" parent="Entity" node_paths=PackedStringArray("entity")] script = ExtResource("3_cpa1u") -entityDirection = NodePath("") entity = NodePath("..") -characterBody = NodePath("") metadata/_custom_type_script = "uid://03dqknw7v4mr" [node name="CollisionShape3D" type="CollisionShape3D" parent="."] diff --git a/scenes/Maps/TestMap/TestMap.tscn b/scenes/Maps/TestMap/TestMap.tscn index feb18cd..6fcdf1c 100644 --- a/scenes/Maps/TestMap/TestMap.tscn +++ b/scenes/Maps/TestMap/TestMap.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=13 format=3 uid="uid://dx6fv8n4jl5ku"] +[gd_scene load_steps=14 format=3 uid="uid://dx6fv8n4jl5ku"] [ext_resource type="PackedScene" uid="uid://yhtpoum3eek7" path="res://scenes/Entities/Rosa.tscn" id="1_7b7hx"] [ext_resource type="Script" uid="uid://c37crdel0m5mw" path="res://scripts/Map/Map.gd" id="1_ru75d"] [ext_resource type="PackedScene" uid="uid://dr4b2pmsknuhc" path="res://scenes/Entities/TestNPC.tscn" id="2_cg1ph"] [ext_resource type="PackedScene" uid="uid://lh713g04d3bg" path="res://scenes/Maps/TestMap/TestMapGround.tscn" id="3_gxq5o"] [ext_resource type="PackedScene" uid="uid://boj5o4fx41rv8" path="res://scenes/Maps/TestMap/TestMapBuilding.tscn" id="4_brp0k"] +[ext_resource type="PackedScene" uid="uid://bes5p6ckw6d58" path="res://scenes/Entities/OnionSprig.tscn" id="4_ejcqv"] [ext_resource type="Script" uid="uid://tkfc88q8m86f" path="res://scripts/Event/EventConversation.gd" id="5_cg1ph"] [ext_resource type="Script" uid="uid://y7ckj1tn5cro" path="res://scripts/Event/EventTextbox.gd" id="6_gxq5o"] [ext_resource type="Script" uid="uid://c4d7nithqnx5y" path="res://scripts/Event/Quest/EventStartQuest.gd" id="7_brp0k"] @@ -37,6 +38,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.19857, 0.684572, 0.968477) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.68747, 0.459578, -0.399262) interactEvent = NodePath("../Events/TestConversation") +[node name="OnionSprig2" parent="." instance=ExtResource("4_ejcqv")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.09634, 0.190375, -4.64262) + +[node name="OnionSprig" parent="." instance=ExtResource("4_ejcqv")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.75248, 0.159876, -4.57086) + [node name="Sign" parent="." node_paths=PackedStringArray("interactEvent") instance=ExtResource("9_xfqoe")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.36525, 0.136824, 2.58137) interactEvent = NodePath("../Events/TestConversation") @@ -79,3 +86,7 @@ metadata/_custom_type_script = "uid://c4d7nithqnx5y" [node name="Text 1" type="Node" parent="Events/TestConversation"] script = ExtResource("6_gxq5o") text = "Thanks for closing the quest menu" + +[node name="EventConversation" type="Node" parent="Events"] +script = ExtResource("5_cg1ph") +metadata/_custom_type_script = "uid://tkfc88q8m86f" diff --git a/scripts/Entity/OnionSprig.gd b/scripts/Entity/OnionSprig.gd new file mode 100644 index 0000000..5681a1b --- /dev/null +++ b/scripts/Entity/OnionSprig.gd @@ -0,0 +1,23 @@ +class_name OnionSprig extends StaticBody3D + +@export var itemType:ItemType = ItemType.ONION; + +func _ready() -> void: + $Entity/EntityInteractable.onInteract.connect( + self.onEntityInteract + ) + +func _exit_tree() -> void: + $Entity/EntityInteractable.onInteract.disconnect( + self.onEntityInteract + ) + +func onEntityInteract( + interactor:EntityInteractor, + interactee:EntityInteractable +) -> void: + ITEM.PLAYER_INVENTORY.addItem(ITEM.ONION); + + # Dispose self + get_parent().remove_child(self) + self.queue_free() \ No newline at end of file diff --git a/scripts/Entity/OnionSprig.gd.uid b/scripts/Entity/OnionSprig.gd.uid new file mode 100644 index 0000000..7b19aed --- /dev/null +++ b/scripts/Entity/OnionSprig.gd.uid @@ -0,0 +1 @@ +uid://0nn3ix2nwk3f diff --git a/scripts/Item/Ingredient/Onion.gd b/scripts/Item/Ingredient/Onion.gd new file mode 100644 index 0000000..b4449bc --- /dev/null +++ b/scripts/Item/Ingredient/Onion.gd @@ -0,0 +1,13 @@ +class_name Onion extends "res://scripts/Item/Item.gd" + +func getName() -> String: + return "Onion" + +func getCategory() -> ItemCategory: + return ItemCategory.MEDICINE; + +func isConsumable() -> bool: + return true; + +func consume() -> void: + print("Consuming Potion"); diff --git a/scripts/Item/Ingredient/Onion.gd.uid b/scripts/Item/Ingredient/Onion.gd.uid new file mode 100644 index 0000000..757e0ba --- /dev/null +++ b/scripts/Item/Ingredient/Onion.gd.uid @@ -0,0 +1 @@ +uid://bmfaw3kid1pqx diff --git a/scripts/Item/ItemType.gd b/scripts/Item/ItemType.gd new file mode 100644 index 0000000..9f5247b --- /dev/null +++ b/scripts/Item/ItemType.gd @@ -0,0 +1,4 @@ +enum ItemType { + POTION, + ONION +} \ No newline at end of file diff --git a/scripts/Item/ItemType.gd.uid b/scripts/Item/ItemType.gd.uid new file mode 100644 index 0000000..cbf0331 --- /dev/null +++ b/scripts/Item/ItemType.gd.uid @@ -0,0 +1 @@ +uid://nibssdy3ardv diff --git a/scripts/Singleton/Item.gd b/scripts/Singleton/Item.gd index b508141..0528d1a 100644 --- a/scripts/Singleton/Item.gd +++ b/scripts/Singleton/Item.gd @@ -3,6 +3,7 @@ const Inventory = preload("res://scripts/Item/Inventory.gd") # Item Constants static var POTION = preload("res://scripts/Item/Potion.gd").new(); +static var ONION = preload("res://scripts/Item/Ingredient/Onion.gd").new(); # Static inventories static var PLAYER_INVENTORY = Inventory.new();