diff options
| author | nokoe <nokoe@mailbox.org> | 2024-07-18 10:47:27 +0200 | 
|---|---|---|
| committer | nokoe <nokoe@mailbox.org> | 2024-07-18 10:47:27 +0200 | 
| commit | c457871aac886b9b015f4716c8ae69c20407a104 (patch) | |
| tree | 6b76c0765aec66713c19e398629b1ad10edfe094 /client/player | |
| parent | 7c73b9274f42e95c094717ca3c2550426b08a9f8 (diff) | |
| download | hurrycurry-c457871aac886b9b015f4716c8ae69c20407a104.tar hurrycurry-c457871aac886b9b015f4716c8ae69c20407a104.tar.bz2 hurrycurry-c457871aac886b9b015f4716c8ae69c20407a104.tar.zst | |
interact marker indicates interaction
Diffstat (limited to 'client/player')
| -rw-r--r-- | client/player/controllable_player.gd | 2 | ||||
| -rw-r--r-- | client/player/interact_marker.gdshader | 7 | ||||
| -rw-r--r-- | client/player/marker.gd | 5 | ||||
| -rw-r--r-- | client/player/marker.tscn | 1 | 
4 files changed, 12 insertions, 3 deletions
| diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index 659a5c6b..9287a533 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -160,8 +160,10 @@ func interact():  		if Input.is_action_just_pressed("interact"):  			game.mp.send_tile_interact(target, true)  			tile.interact() +			marker.set_interacting(true)  		elif Input.is_action_just_released("interact"):  			game.mp.send_tile_interact(target, false) +			marker.set_interacting(false)  	else:  		marker.visible = false diff --git a/client/player/interact_marker.gdshader b/client/player/interact_marker.gdshader index eee76270..3720290f 100644 --- a/client/player/interact_marker.gdshader +++ b/client/player/interact_marker.gdshader @@ -21,9 +21,12 @@ uniform float max_width = .1;  uniform float marker_length = .5;  uniform float pulse_speed = 4.;  uniform bool interactive = false; +uniform bool interacting = false;  void fragment() { -    if (interactive) { +    if (interacting) { +        ALBEDO = vec3(0., 0., 15.); +    } else if (interactive) {          ALBEDO = vec3(15., 0., 0.);      } else {          ALBEDO = vec3(.1, .1, .1); @@ -31,7 +34,7 @@ void fragment() {      vec2 uv = abs(2. * UV.xy - 1.);      float m_length = marker_length / max_width;      float anim; -    if (interactive) { +    if (interactive || interacting) {          anim = sin(TIME * pulse_speed) * .5 + 1.;      } else {          anim = .5; diff --git a/client/player/marker.gd b/client/player/marker.gd index 7161c78e..07f6bfe8 100644 --- a/client/player/marker.gd +++ b/client/player/marker.gd @@ -18,7 +18,10 @@ class_name Marker  extends Node3D  @onready var _cube: MeshInstance3D = $Cube +@onready var mat: ShaderMaterial = _cube.get_active_material(0)  func set_interactive(val: bool): -	var mat: ShaderMaterial = _cube.get_active_material(0)  	mat.set_shader_parameter("interactive", val) + +func set_interacting(val: bool): +	mat.set_shader_parameter("interacting", val) diff --git a/client/player/marker.tscn b/client/player/marker.tscn index 9a68e1c1..0d5efedb 100644 --- a/client/player/marker.tscn +++ b/client/player/marker.tscn @@ -42,6 +42,7 @@ shader_parameter/max_width = 0.1  shader_parameter/marker_length = 0.5  shader_parameter/pulse_speed = 4.0  shader_parameter/interactive = false +shader_parameter/interacting = false  [node name="Marker" type="Node3D"]  script = ExtResource("1_3njdu") | 
