diff options
Diffstat (limited to 'client/gui/overlays/controls_visualization/controller/controller_explanation.gd')
-rw-r--r-- | client/gui/overlays/controls_visualization/controller/controller_explanation.gd | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/client/gui/overlays/controls_visualization/controller/controller_explanation.gd b/client/gui/overlays/controls_visualization/controller/controller_explanation.gd new file mode 100644 index 00000000..84e93cfa --- /dev/null +++ b/client/gui/overlays/controls_visualization/controller/controller_explanation.gd @@ -0,0 +1,45 @@ +# Hurry Curry! - a game about cooking +# Copyright (C) 2025 Hurry Curry! contributors +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, version 3 of the License only. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +class_name ControllerExplanation +extends DeviceExplanation + +const MODULATE_SPEED := 5. + +var double_handed := false + +@onready var left_hand: Node2D = $Control/Node2D/InteractLeft +@onready var right_hand: Node2D = $Control/Node2D/InteractRight + +@onready var left_arrow: Sprite2D = $Control/Node2D/Arrow4 + +@onready var interact_right_label: Label = $Control/Node2D/InteractRight/Label + +func toggle_double_handed(val: bool) -> void: + double_handed = val + left_hand.visible = val + left_arrow.visible = val + interact_right_label.text = tr("c.controls_explanation.interact_right") if val else tr("c.settings.input.interact") + +var t := 0. +func _process(delta: float) -> void: + if not double_handed: return + + t += delta + var weight: float = (cos(t * MODULATE_SPEED) - 1.) * -0.5 + for i: Node2D in [left_hand,right_hand]: + i.modulate = Color.WHITE.lerp(Color("ffcd59ff"), weight) + var size_ := lerpf(1, 1.2, weight) + i.scale = Vector2(size_, size_) |