diff options
Diffstat (limited to 'client/player')
| -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 | 
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"] | 
