# Hurry Curry! - a game about cooking # Copyright 2024 tpart # # 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 . # extends ScrollContainer class_name ScrollContainerCustom # Adds support for scrolling with joypad and touch const SCROLL_SPEED := 1000. var velocity := 0. @export var auto_scroll_to_bottom := false func _init(): follow_focus = true func _ready(): if auto_scroll_to_bottom: call_deferred("scroll_to_bottom") func scroll_to_bottom(): set_deferred("scroll_vertical", get_v_scroll_bar().max_value) func _process(delta): velocity = G.interpolate(velocity, 0., delta * 5.) velocity = 0. if abs(velocity) < .001 else velocity if Input.get_axis("scroll_up", "scroll_down") != 0.: velocity = Input.get_axis("scroll_up", "scroll_down") set_deferred("scroll_vertical", scroll_vertical + velocity * delta * SCROLL_SPEED) func _input(event): if event is InputEventScreenDrag: velocity = -(scroll_vertical - (scroll_vertical - event.relative.y)) * .1