From e4a6188d89b3c79be2e0ebfa26935e9ca8d74043 Mon Sep 17 00:00:00 2001 From: Nitsud Yarg Date: Sat, 22 Jun 2024 15:14:27 -0700 Subject: [PATCH] Generalized interactable template. Created health pickup derived class. --- assets/quick_health.png | Bin 0 -> 566 bytes assets/quick_health.png.import | 35 ++++++++++++++++++ project.godot | 10 ++++- src/Interactables/Chest.gd | 14 +++++++ src/Interactables/Chest.tscn | 21 +++++++++++ src/Interactables/HealthPickup.gd | 12 ++++++ src/Interactables/HealthPickup.tscn | 19 ++++++++++ src/Interactables/QuickHealthPickup.tres | 27 ++++++++++++++ src/Levels/Level.tscn | 15 ++++++-- src/components/Interactable_Component.tscn | 24 ------------ src/playerD/Player.gd | 6 ++- src/playerD/Player.tscn | 2 +- .../Interactable}/Interactable_Component.gd | 6 +-- .../Interactable/Interactable_Component.tscn | 9 +++++ .../Interactable}/Interactable_Receiver.gd | 0 15 files changed, 164 insertions(+), 36 deletions(-) create mode 100644 assets/quick_health.png create mode 100644 assets/quick_health.png.import create mode 100644 src/Interactables/Chest.gd create mode 100644 src/Interactables/Chest.tscn create mode 100644 src/Interactables/HealthPickup.gd create mode 100644 src/Interactables/HealthPickup.tscn create mode 100644 src/Interactables/QuickHealthPickup.tres delete mode 100644 src/components/Interactable_Component.tscn rename src/{components => templates/Interactable}/Interactable_Component.gd (94%) create mode 100644 src/templates/Interactable/Interactable_Component.tscn rename src/{components => templates/Interactable}/Interactable_Receiver.gd (100%) diff --git a/assets/quick_health.png b/assets/quick_health.png new file mode 100644 index 0000000000000000000000000000000000000000..ac4d0e0c10e90dad905ae5e87413c6780bcfc533 GIT binary patch literal 566 zcmV-60?GY}P)Px$@JU2LR7i>Cmame#Fc8PT*ZB$LJpvNRBOoIyk(J1k$jHc(k;uwQWFH|C$s<(8 zyk^M1|seDb{yJH#HbC1x>O>x?HjkESv8` zluSa*e1n;9S%UzUj_`B7F5mNC9ZQnBA92En z0RpCMqx}IQTZj|J=#VmHOGP&G?J4`JP{JGz@7>g(n;I0;^Z5h(0iy)HhvyX=CyZ3+ zaOiBZN1GgnaA@U4Drc>AFfx9ma*)bt+qj20TC-9SN49pd+BObG((f*o`|+%{4cQ}G zOb%QbAYiM0Q7#3|rS8YgmL|6UAZCD|6MqlOTU%Gxm)H<9@5o%cCodkh|A-8RHr;da z;4Ahot={{=(Rp?EX~*^5UafV=*MtL1OAJFk}i0Vwi bool: print("You see! a THING...", the_thing.name) - return false + if the_thing is HealthPickup: + # Do some healthy stuff. + the_thing.trigger_interaction() + return false + return true func _on_attack_do_attack(): var is_shooting = false diff --git a/src/playerD/Player.tscn b/src/playerD/Player.tscn index 4fc4f34..b72c85f 100644 --- a/src/playerD/Player.tscn +++ b/src/playerD/Player.tscn @@ -15,7 +15,7 @@ [ext_resource path="res://src/Gun.gd" type="Script" id=13] [ext_resource path="res://src/playerD/states/roll.gd" type="Script" id=14] [ext_resource path="res://src/state_animated_actor.gd" type="Script" id=15] -[ext_resource path="res://src/components/Interactable_Receiver.gd" type="Script" id=16] +[ext_resource path="res://src/templates/Interactable/Interactable_Receiver.gd" type="Script" id=16] [sub_resource type="StreamTexture" id=90] load_path = "res://.import/Mega.png-93dfe0790902b932f7b46f7b23c5d4e7.stex" diff --git a/src/components/Interactable_Component.gd b/src/templates/Interactable/Interactable_Component.gd similarity index 94% rename from src/components/Interactable_Component.gd rename to src/templates/Interactable/Interactable_Component.gd index 1728940..32116bd 100644 --- a/src/components/Interactable_Component.gd +++ b/src/templates/Interactable/Interactable_Component.gd @@ -17,9 +17,8 @@ extends Area2D # Declare member variables here. Examples: # var a = 2 # var b = "text" -export (NodePath) var sprite_node -onready var sprite: Sprite = get_node(sprite_node) +export var type_name :String # Called when the node enters the scene tree for the first time. func _ready(): @@ -28,8 +27,7 @@ func _ready(): func trigger_interaction(): # This is something that should maybe be extended for every differant interactible. # They could inherit from this base class and implement this function. - sprite.frame = 1 - +# sprite.frame = 1 pass # Called every frame. 'delta' is the elapsed time since the previous frame. diff --git a/src/templates/Interactable/Interactable_Component.tscn b/src/templates/Interactable/Interactable_Component.tscn new file mode 100644 index 0000000..c114073 --- /dev/null +++ b/src/templates/Interactable/Interactable_Component.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://src/templates/Interactable/Interactable_Component.gd" type="Script" id=2] + +[node name="Interactable_Template" type="Area2D"] +script = ExtResource( 2 ) + +[connection signal="body_entered" from="." to="." method="_on_Interactable_Component_body_entered"] +[connection signal="body_exited" from="." to="." method="_on_Interactable_Component_body_exited"] diff --git a/src/components/Interactable_Receiver.gd b/src/templates/Interactable/Interactable_Receiver.gd similarity index 100% rename from src/components/Interactable_Receiver.gd rename to src/templates/Interactable/Interactable_Receiver.gd