From df1762014918741bf130e57d4d3b73ffee0ce6f8 Mon Sep 17 00:00:00 2001 From: unfa Date: Fri, 18 Jun 2021 01:43:10 +0200 Subject: [PATCH] Added Player-Weapon trigger API --- Game/Assets/Characters/Player.gd | 11 +++++++++++ Game/Assets/Weapons/Weapon.gd | 22 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 Game/Assets/Weapons/Weapon.gd diff --git a/Game/Assets/Characters/Player.gd b/Game/Assets/Characters/Player.gd index f234de1..30e323b 100644 --- a/Game/Assets/Characters/Player.gd +++ b/Game/Assets/Characters/Player.gd @@ -16,6 +16,8 @@ extends CharacterBody3D @onready var body = $Body @onready var mesh = $Mesh +@onready var weapon = $Head/Camera/Hand/Weapon + @onready var body_height = body.shape.height @onready var body_y = body.position.y @onready var mesh_height = mesh.mesh.mid_height @@ -115,6 +117,15 @@ func _input(event) -> void: rpc_unreliable(&'aim', event) + if Input.is_action_just_pressed("trigger_primary"): + weapon.trigger(0, true) + elif Input.is_action_just_released("trigger_primary"): + weapon.trigger(0, false) + if Input.is_action_just_pressed("trigger_secondary"): + weapon.trigger(1, true) + elif Input.is_action_just_released("trigger_secondary"): + weapon.trigger(1, false) + func _physics_process(delta): rpc_unreliable(&'set_global_transform', global_transform) head.rpc_unreliable(&'set_rotation', head.get_rotation()) diff --git a/Game/Assets/Weapons/Weapon.gd b/Game/Assets/Weapons/Weapon.gd new file mode 100644 index 0000000..4c223c0 --- /dev/null +++ b/Game/Assets/Weapons/Weapon.gd @@ -0,0 +1,22 @@ +extends Node3D + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +#enum Trigger {TRIGGER_PRIMARY, TRIGGER_SECONDARY} + +func trigger(index: int, active: bool) -> void: + print("Weapon " + str(name) + ", Trigger " + str(index) + ", active: " + str(active)) + + if index == 0 and active: + $Flash/FlashParticles.emmiting = true + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass