aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/menu/pause.webpbin0 -> 3144 bytes
-rw-r--r--client/menu/pause.webp.import34
-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
5 files changed, 69 insertions, 2 deletions
diff --git a/client/menu/pause.webp b/client/menu/pause.webp
new file mode 100644
index 00000000..24ec72d8
--- /dev/null
+++ b/client/menu/pause.webp
Binary files differ
diff --git a/client/menu/pause.webp.import b/client/menu/pause.webp.import
new file mode 100644
index 00000000..d132a237
--- /dev/null
+++ b/client/menu/pause.webp.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://qto5rj6wlaeb"
+path="res://.godot/imported/pause.webp-109d517ceb320a1dc8b8c95512f630f5.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://menu/pause.webp"
+dest_files=["res://.godot/imported/pause.webp-109d517ceb320a1dc8b8c95512f630f5.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
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"]