summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-07-11 17:17:38 +0200
committermetamuffin <metamuffin@disroot.org>2024-07-11 17:17:38 +0200
commit5c722e926f04f7d81dcb235d11dda3eff1545f76 (patch)
treeaea0c1f5a344e37b625f755eabded59179bf1b88
parent2537e764a359328870c3eabb16ee5238becd3c73 (diff)
downloadhurrycurry-5c722e926f04f7d81dcb235d11dda3eff1545f76.tar
hurrycurry-5c722e926f04f7d81dcb235d11dda3eff1545f76.tar.bz2
hurrycurry-5c722e926f04f7d81dcb235d11dda3eff1545f76.tar.zst
slower anim of non-player owned items and fix static call to interpolation functions.
-rw-r--r--client/global.gd1
-rw-r--r--client/map/items/item.gd3
-rw-r--r--client/map/tiles/conveyor_model.gd2
-rw-r--r--client/menu/overlay.gd6
-rw-r--r--client/player/controllable_player.gd2
-rw-r--r--client/player/follow_camera.gd16
-rw-r--r--client/player/player.gd4
7 files changed, 18 insertions, 16 deletions
diff --git a/client/global.gd b/client/global.gd
index dc3f7549..6584c1d9 100644
--- a/client/global.gd
+++ b/client/global.gd
@@ -15,6 +15,7 @@
# 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 G
extends Node
signal settings_changed()
diff --git a/client/map/items/item.gd b/client/map/items/item.gd
index 466348fe..a42edc39 100644
--- a/client/map/items/item.gd
+++ b/client/map/items/item.gd
@@ -44,7 +44,8 @@ func _ready():
position = owned_by.global_position
func _process(delta):
- position = Global.interpolate(position, owned_by.global_position, delta * 30.0)
+ var ispeed = 30.0 if owned_by.get_parent().get_parent() is Player else 10.
+ position = G.interpolate(position, owned_by.global_position, delta * ispeed)
func progress(p: float, warn: bool):
progress_instance.visible = true
diff --git a/client/map/tiles/conveyor_model.gd b/client/map/tiles/conveyor_model.gd
index 7dd48957..66706ddd 100644
--- a/client/map/tiles/conveyor_model.gd
+++ b/client/map/tiles/conveyor_model.gd
@@ -6,7 +6,7 @@ var alpha: float = 0.
@onready var mat: ShaderMaterial = $ConveyorDirection.get_active_material(0)
func _process(delta):
- alpha = Global.interpolate(alpha, 0., delta)
+ alpha = G.interpolate(alpha, 0., delta)
mat.set_shader_parameter("alpha_fac", alpha)
func to_direction(direction: Vector2):
diff --git a/client/menu/overlay.gd b/client/menu/overlay.gd
index 0bedd817..08520412 100644
--- a/client/menu/overlay.gd
+++ b/client/menu/overlay.gd
@@ -54,9 +54,9 @@ func reset():
timer.stop()
func _process(delta):
- failed_label.scale = Global.interpolate(failed_label.scale, Vector2(1, 1), delta * 4.)
- completed_label.scale = Global.interpolate(completed_label.scale, Vector2(1, 1), delta * 4.)
- points_label.scale = Global.interpolate(points_label.scale, Vector2(1, 1), delta * 4.)
+ failed_label.scale = G.interpolate(failed_label.scale, Vector2(1, 1), delta * 4.)
+ completed_label.scale = G.interpolate(completed_label.scale, Vector2(1, 1), delta * 4.)
+ points_label.scale = G.interpolate(points_label.scale, Vector2(1, 1), delta * 4.)
var seconds: float = floor(timer.time_left)
seconds_label.text = str(int(seconds))
decimals_label.text = "%01d" % int((timer.time_left - seconds) * 10)
diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd
index 93b05e9a..659a5c6b 100644
--- a/client/player/controllable_player.gd
+++ b/client/player/controllable_player.gd
@@ -59,7 +59,7 @@ func _input(_event):
const MAX_DT = 1./50.
func _process(delta):
- marker.position = Global.interpolate(marker.position, marker_target, delta * 30.)
+ marker.position = G.interpolate(marker.position, marker_target, delta * 30.)
while delta > 0.001:
var dt = min(delta, MAX_DT)
_process_movement(dt)
diff --git a/client/player/follow_camera.gd b/client/player/follow_camera.gd
index 62d3daed..dec83b61 100644
--- a/client/player/follow_camera.gd
+++ b/client/player/follow_camera.gd
@@ -51,7 +51,7 @@ func _process(delta):
if target != null:
follow(delta)
-func _input(event):
+func _input(_event):
if Input.is_action_just_pressed("reset"):
angle_target = 0
angle_up_target = 1
@@ -61,13 +61,13 @@ func follow(delta):
angle_target += Input.get_axis("rotate_left", "rotate_right") * (
ROTATE_SPEED * delta * (-1 if Global.get_setting("invert_camera") else 1)
)
- angle = Global.interpolate_angle(angle, angle_target, delta * ROTATE_WEIGHT)
+ angle = G.interpolate_angle(angle, angle_target, delta * ROTATE_WEIGHT)
angle_up_target += Input.get_axis("rotate_down", "rotate_up") * (
ROTATE_UP_SPEED * delta * (-1 if Global.get_setting("invert_camera") else 1)
)
angle_up_target = clamp(angle_up_target, ANGLE_UP_MIN, ANGLE_UP_MAX)
- angle_up = Global.interpolate_angle(angle_up, angle_up_target, delta * ROTATE_UP_WEIGHT)
+ angle_up = G.interpolate_angle(angle_up, angle_up_target, delta * ROTATE_UP_WEIGHT)
var offset = Vector3(0, sin(angle_up) * camera_distance, cos(angle_up) * camera_distance).rotated(Vector3.UP, angle)
@@ -77,17 +77,17 @@ func follow(delta):
if Global.get_setting("interpolate_camera_rotation"):
transform.basis = Basis.from_euler(Vector3(
- Global.interpolate_angle(transform.basis.get_euler().x, new_transform.basis.get_euler().x, delta * LOOK_WEIGHT),
- Global.interpolate_angle(transform.basis.get_euler().y, new_transform.basis.get_euler().y, delta * LOOK_WEIGHT),
- Global.interpolate_angle(transform.basis.get_euler().z, new_transform.basis.get_euler().z, delta * LOOK_WEIGHT)
+ G.interpolate_angle(transform.basis.get_euler().x, new_transform.basis.get_euler().x, delta * LOOK_WEIGHT),
+ G.interpolate_angle(transform.basis.get_euler().y, new_transform.basis.get_euler().y, delta * LOOK_WEIGHT),
+ G.interpolate_angle(transform.basis.get_euler().z, new_transform.basis.get_euler().z, delta * LOOK_WEIGHT)
))
else:
transform.basis = new_transform.basis
- ground = Global.interpolate(ground, target.position, delta * MOVE_WEIGHT)
+ ground = G.interpolate(ground, target.position, delta * MOVE_WEIGHT)
camera_distance_target += Input.get_axis("zoom_in", "zoom_out") * ZOOM_SPEED * delta
camera_distance_target = clamp(camera_distance_target, MIN_ZOOM, MAX_ZOOM)
- camera_distance = Global.interpolate(camera_distance, camera_distance_target, delta * ZOOM_WEIGHT)
+ camera_distance = G.interpolate(camera_distance, camera_distance_target, delta * ZOOM_WEIGHT)
position = ground + offset
diff --git a/client/player/player.gd b/client/player/player.gd
index c7a12598..0e06d521 100644
--- a/client/player/player.gd
+++ b/client/player/player.gd
@@ -136,8 +136,8 @@ func pass_to(player: Player):
func _process(delta):
_anim_angle = fmod(_anim_angle + delta, TAU)
hand_base.position.y = HAND_BASE_POSITION.y + 0.05 * sin(_anim_angle * 3)
- position_anim = Global.interpolate(position_anim, position_, delta * 10)
- rotation_anim = Global.interpolate_angle(rotation_anim, rotation_, delta * 10)
+ position_anim = G.interpolate(position_anim, position_, delta * 10)
+ rotation_anim = G.interpolate_angle(rotation_anim, rotation_, delta * 10)
movement_base.position.x = position_anim.x
movement_base.position.z = position_anim.y
movement_base.rotation.y = rotation_anim