diff options
Diffstat (limited to 'client/map/tiles/portal.gd')
| -rw-r--r-- | client/map/tiles/portal.gd | 20 |
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) |