From 60988cf783046beb1c9aef9551313079eb6471c7 Mon Sep 17 00:00:00 2001 From: Rosia E Evans Date: Fri, 16 Aug 2024 21:24:48 +0100 Subject: [PATCH] adds basic arm control flow system --- scenes/body.tscn | 2 +- scenes/icepick_arm.tscn | 6 ++++-- scripts/arm.gd | 11 ++++++++++- scripts/body.gd | 16 ++++++++++++---- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/scenes/body.tscn b/scenes/body.tscn index 83cb40e..d603a19 100644 --- a/scenes/body.tscn +++ b/scenes/body.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=3 uid="uid://dgm3241ceqpim"] -[ext_resource type="Script" path="res://body.gd" id="1_21au4"] +[ext_resource type="Script" path="res://scripts/body.gd" id="1_21au4"] [sub_resource type="SphereMesh" id="SphereMesh_jcpb6"] radius = 5.0 diff --git a/scenes/icepick_arm.tscn b/scenes/icepick_arm.tscn index 17fe165..66566b5 100644 --- a/scenes/icepick_arm.tscn +++ b/scenes/icepick_arm.tscn @@ -1,11 +1,13 @@ -[gd_scene load_steps=2 format=3 uid="uid://cgqpfh5j5v3yd"] +[gd_scene load_steps=3 format=3 uid="uid://c4aghhlbletw"] [ext_resource type="PackedScene" uid="uid://ccggyhqyue6fr" path="res://assets/pickaxe_arm.glb" id="1_grvsx"] +[ext_resource type="Script" path="res://scripts/arm.gd" id="2_u82st"] [node name="pickaxe_arm" instance=ExtResource("1_grvsx")] +script = ExtResource("2_u82st") [node name="Sphere_004" parent="Armature/Skeleton3D" index="0"] -transform = Transform3D(0.919691, 0, -2.19271e-07, 0, 0.919691, 0, 2.19271e-07, 0, 0.919691, 0, -9.53674e-07, 0) +transform = Transform3D(0.919691, 0, 0, 0, 0.919691, 0, 0, 0, 0.919691, 0, -9.53674e-07, 0) [node name="Sphere_001" parent="Armature/Skeleton3D" index="1"] transform = Transform3D(0.919691, 0, 0, 0, 0.919691, 0, 0, 0, 0.919691, 0, 0, 0) diff --git a/scripts/arm.gd b/scripts/arm.gd index e3a16cd..773ab2f 100644 --- a/scripts/arm.gd +++ b/scripts/arm.gd @@ -1,6 +1,6 @@ extends Node3D -@export var key: Key +@export var action: StringName # Called when the node enters the scene tree for the first time. @@ -11,3 +11,12 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass + + +func _arm_enabled(arm): + print_debug("enabled!") + pass + +func _arm_disabled(arm): + print_debug("disabled!") + pass diff --git a/scripts/body.gd b/scripts/body.gd index 8affe25..001fcb4 100644 --- a/scripts/body.gd +++ b/scripts/body.gd @@ -2,12 +2,20 @@ extends Node3D @export var arms: Array[Node] +signal arm_enabled(arm) +signal arm_disabled(arm) + # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. - + for arm in arms: + arm_enabled.connect(arm.arm_enabled) + arm_disabled.connect(arm.arm_disabled) # Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - pass +func _physics_process(delta: float) -> void: + for arm in arms: + if Input.is_action_just_pressed(arm.action): + arm_enabled.emit(arm) + if Input.is_action_just_released(arm.action): + arm_disabled.emit(arm)