aboutsummaryrefslogtreecommitdiff
path: root/client/player
diff options
context:
space:
mode:
Diffstat (limited to 'client/player')
-rw-r--r--client/player/controllable_player.gd11
-rw-r--r--client/player/onscreen_controls/controls.gd9
-rw-r--r--client/player/onscreen_controls/controls.tscn17
3 files changed, 35 insertions, 2 deletions
diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd
index f9cb74f1..7f33831d 100644
--- a/client/player/controllable_player.gd
+++ b/client/player/controllable_player.gd
@@ -66,9 +66,10 @@ func _process(delta):
_process_movement(dt)
delta -= dt
super(delta)
+ update_touch_scrolls()
func _process_movement(delta):
- var input = Input.get_vector("left", "right", "forward", "backwards") if not game.menu.covered and enable_input else Vector2.ZERO
+ var input = Input.get_vector("left", "right", "forward", "backwards") if is_input_enabled() else Vector2.ZERO
var boost = Input.is_action_pressed("boost") or (Global.get_setting("latch_boost") and boosting)
input = input.rotated( - game.camera.angle_target)
if Input.is_action_pressed("interact") or Input.is_action_just_released("interact"):
@@ -130,6 +131,14 @@ func collide(dt: float):
self.velocity_.x += norm.x * f * dt
self.velocity_.y += norm.y * f * dt
+func is_input_enabled() -> bool:
+ return not game.menu.covered and enable_input
+
+func update_touch_scrolls():
+ # TODO: Don't call this function every frame, but only when input menu
+ # covered value is updated
+ onscreen_controls.visible = is_input_enabled()
+
func aabb_point_distance(mi: Vector2, ma: Vector2, p: Vector2) -> float:
return (p - p.clamp(mi, ma)).length()
diff --git a/client/player/onscreen_controls/controls.gd b/client/player/onscreen_controls/controls.gd
index 48cab7e3..45fec653 100644
--- a/client/player/onscreen_controls/controls.gd
+++ b/client/player/onscreen_controls/controls.gd
@@ -18,6 +18,7 @@ extends CanvasLayer
@onready var buttons = $Buttons
@onready var boost = $Buttons/Boost
@onready var interact = $Buttons/Interact
+@onready var pause = $Buttons2/Pause
@onready var modulate_color = $MovementStick.pressed_color
func _ready():
@@ -42,3 +43,11 @@ func _on_interact_pressed():
func _on_interact_released():
Input.action_release("interact")
interact.modulate = Color.WHITE
+
+func _on_pause_pressed():
+ Input.action_press("ui_menu")
+ pause.modulate = modulate_color
+
+func _on_pause_released():
+ Input.action_release("ui_menu")
+ pause.modulate = Color.WHITE
diff --git a/client/player/onscreen_controls/controls.tscn b/client/player/onscreen_controls/controls.tscn
index 53acc922..0d09504f 100644
--- a/client/player/onscreen_controls/controls.tscn
+++ b/client/player/onscreen_controls/controls.tscn
@@ -1,9 +1,10 @@
-[gd_scene load_steps=5 format=3 uid="uid://bq2sqb1u1l5ve"]
+[gd_scene load_steps=6 format=3 uid="uid://bq2sqb1u1l5ve"]
[ext_resource type="PackedScene" uid="uid://dmr0fcamx7t56" path="res://player/onscreen_controls/virtual_joystick_scene.tscn" id="1_4k4lh"]
[ext_resource type="Script" path="res://player/onscreen_controls/controls.gd" id="1_rnoki"]
[ext_resource type="Texture2D" uid="uid://bnxllatlo4clg" path="res://menu/boost.webp" id="2_i4ife"]
[ext_resource type="Texture2D" uid="uid://dcgt82qkya880" path="res://menu/interact.webp" id="3_37rne"]
+[ext_resource type="Texture2D" uid="uid://qto5rj6wlaeb" path="res://menu/pause.webp" id="5_4bttq"]
[node name="UI" type="CanvasLayer"]
script = ExtResource("1_rnoki")
@@ -35,7 +36,21 @@ position = Vector2(150, 150)
scale = Vector2(0.5, 0.5)
texture_normal = ExtResource("3_37rne")
+[node name="Buttons2" type="Control" parent="."]
+modulate = Color(1, 1, 1, 0.752941)
+layout_mode = 3
+anchors_preset = 0
+offset_right = 300.0
+offset_bottom = 300.0
+
+[node name="Pause" type="TouchScreenButton" parent="Buttons2"]
+position = Vector2(50, 50)
+scale = Vector2(0.5, 0.5)
+texture_normal = ExtResource("5_4bttq")
+
[connection signal="pressed" from="Buttons/Boost" to="." method="_on_boost_pressed"]
[connection signal="released" from="Buttons/Boost" to="." method="_on_boost_released"]
[connection signal="pressed" from="Buttons/Interact" to="." method="_on_interact_pressed"]
[connection signal="released" from="Buttons/Interact" to="." method="_on_interact_released"]
+[connection signal="pressed" from="Buttons2/Pause" to="." method="_on_pause_pressed"]
+[connection signal="released" from="Buttons2/Pause" to="." method="_on_pause_released"]