From e4ea6eb904c22b1345cb01300697058c551dec63 Mon Sep 17 00:00:00 2001 From: teatov Date: Thu, 27 Feb 2025 04:15:05 +1000 Subject: [PATCH] add cursor screen corner inset for controller --- scripts/globals/cursor.gd | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/globals/cursor.gd b/scripts/globals/cursor.gd index dee2d14..b1d00dc 100644 --- a/scripts/globals/cursor.gd +++ b/scripts/globals/cursor.gd @@ -1,6 +1,7 @@ extends CanvasLayer @export var side_change_speed: float = 15 +@export var screen_inset: float = 100 var _side: float @@ -26,9 +27,15 @@ func _process(delta: float) -> void: var cursor_pos_world := player.attack.global_position + player.aiming.aim_offset var cursor_pos_screen := Referencer.main_camera.unproject_position(cursor_pos_world) + + var clamp_corner_min := Vector2.ZERO + var clamp_corner_max := get_viewport().get_visible_rect().size + if Inputer.mode == Inputer.Mode.CONTROLLER: + clamp_corner_min += Vector2(screen_inset, screen_inset) + clamp_corner_max -= Vector2(screen_inset, screen_inset) + _base.position = ( - cursor_pos_screen.clamp(Vector2.ZERO, get_viewport().get_visible_rect().size) - - _base.size / 2 + cursor_pos_screen.clamp(clamp_corner_min, clamp_corner_max) - _base.size / 2 ) _side = lerpf(