diff options
-rw-r--r-- | client/menu/pause.webp | bin | 0 -> 3144 bytes | |||
-rw-r--r-- | client/menu/pause.webp.import | 34 | ||||
-rw-r--r-- | client/player/controllable_player.gd | 11 | ||||
-rw-r--r-- | client/player/onscreen_controls/controls.gd | 9 | ||||
-rw-r--r-- | client/player/onscreen_controls/controls.tscn | 17 |
5 files changed, 69 insertions, 2 deletions
diff --git a/client/menu/pause.webp b/client/menu/pause.webp Binary files differnew file mode 100644 index 00000000..24ec72d8 --- /dev/null +++ b/client/menu/pause.webp 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"] |