aboutsummaryrefslogtreecommitdiff
path: root/client/map/tiles/portal.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/map/tiles/portal.gd')
-rw-r--r--client/map/tiles/portal.gd20
1 files changed, 17 insertions, 3 deletions
diff --git a/client/map/tiles/portal.gd b/client/map/tiles/portal.gd
index 961a8615..75da4980 100644
--- a/client/map/tiles/portal.gd
+++ b/client/map/tiles/portal.gd
@@ -16,7 +16,21 @@
class_name PortalModel
extends Node3D
+var target_type = 0.
+var current_type = 0.
+var target_size = 0.
+var current_size = 0.
+var mat: ShaderMaterial
+
func configure(size: float, type: bool):
- var mat: ShaderMaterial = $Mesh.get_active_material(0)
- mat.set_shader_parameter("size", size)
- mat.set_shader_parameter("type", 1. if type else -1.)
+ mat = $Mesh.get_active_material(0)
+ target_type = 1. if type else -1.
+ target_size = size
+
+func _process(delta: float) -> void:
+ if abs(target_type - current_type) > 0.01:
+ current_type = G.interpolate(current_type, target_type, delta * 10.)
+ mat.set_shader_parameter("type", current_type)
+ if abs(target_size - current_size) > 0.01:
+ current_size = G.interpolate(current_size, target_size, delta * 3.)
+ mat.set_shader_parameter("size", current_size)