diff options
author | Malfurious <m@lfurio.us> | 2022-09-12 03:37:12 -0400 |
---|---|---|
committer | Malfurious <m@lfurio.us> | 2022-09-12 03:37:12 -0400 |
commit | 31bc7653eb89688b9890523e1f2b39cc867837fc (patch) | |
tree | e5f25d2bfcf1205732707c0d89335f5d35d9904c /assets/view_model | |
parent | e9baf6602be3efbf5ea566b4e0c80a12c38f475e (diff) | |
parent | 355dcc29148461dd79815e76fa1a5a887a44ecc3 (diff) | |
download | project-s-31bc7653eb89688b9890523e1f2b39cc867837fc.tar.gz project-s-31bc7653eb89688b9890523e1f2b39cc867837fc.zip |
Merge branch 'dynamic-viewmodel'
* dynamic-viewmodel:
ViewModel cycles characters on interact/ping
Decouple ViewModel and the BaseCharacter
Allow dynamic character material
Diffstat (limited to 'assets/view_model')
-rw-r--r-- | assets/view_model/ViewModel.gd | 15 | ||||
-rw-r--r-- | assets/view_model/ViewModel.tscn | 5 |
2 files changed, 15 insertions, 5 deletions
diff --git a/assets/view_model/ViewModel.gd b/assets/view_model/ViewModel.gd index cb85117..6d42a5a 100644 --- a/assets/view_model/ViewModel.gd +++ b/assets/view_model/ViewModel.gd @@ -8,7 +8,7 @@ export var gravity = 35 var velocity = Vector3.ZERO var snap = Vector3.DOWN -onready var character = $BaseCharacter +export(NodePath) onready var character = get_node(character) onready var anchor = $Anchor onready var spring_arm = $Anchor/SpringArm onready var fps_label = $fps_label @@ -64,6 +64,9 @@ func _physics_process(delta): # Handle extra player inputs character.is_firing = Input.is_action_pressed("fire") + + if Input.is_action_just_pressed("ping"): + cycle_parent() func _unhandled_input(event): # Implement mouse aim direction @@ -73,3 +76,13 @@ func _unhandled_input(event): spring_arm.rotation_degrees.y -= event.relative.x * aim_sensitivity spring_arm.rotation_degrees.y = wrapf(spring_arm.rotation_degrees.y, 0, 360) + +func cycle_parent(): + var parents = get_tree().get_nodes_in_group("players") + var idx = parents.find(character) + + if idx < 0 or idx == parents.size() - 1: + if parents.size() > 0: + character = parents[0] + else: + character = parents[idx + 1] diff --git a/assets/view_model/ViewModel.tscn b/assets/view_model/ViewModel.tscn index 3412e91..f6390af 100644 --- a/assets/view_model/ViewModel.tscn +++ b/assets/view_model/ViewModel.tscn @@ -1,13 +1,10 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=2 format=2] -[ext_resource path="res://assets/characters/base_character/BaseCharacter.tscn" type="PackedScene" id=1] [ext_resource path="res://assets/view_model/ViewModel.gd" type="Script" id=2] [node name="ViewModel" type="Spatial"] script = ExtResource( 2 ) -[node name="BaseCharacter" parent="." instance=ExtResource( 1 )] - [node name="Anchor" type="Spatial" parent="."] [node name="SpringArm" type="SpringArm" parent="Anchor"] |