aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/game.gd2
-rw-r--r--client/menu/ingame.gd2
-rw-r--r--client/player/controllable_player.gd9
3 files changed, 12 insertions, 1 deletions
diff --git a/client/game.gd b/client/game.gd
index 0bbc4ab0..671f328f 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -20,6 +20,7 @@ extends Node3D
signal update_players(players: Dictionary)
signal data_updated()
+signal player_set_input_enabled(b: bool)
var player_id: int = -1
var item_names: Array = []
@@ -86,6 +87,7 @@ func _ready():
if player == player_id:
player_instance = ControllablePlayer.new(player, player_name, pos, character, self)
camera.target = player_instance
+ player_set_input_enabled.connect(player_instance.set_input_enabled)
else:
player_instance = Player.new(player, player_name, pos, character, self)
players[player] = player_instance
diff --git a/client/menu/ingame.gd b/client/menu/ingame.gd
index e6ec7c54..61984c99 100644
--- a/client/menu/ingame.gd
+++ b/client/menu/ingame.gd
@@ -14,10 +14,12 @@ func _ready():
func anim_setup(): pass
func menu_anim_open():
print("ingame open")
+ game.player_set_input_enabled.emit(false)
anim.play("activate")
await anim.animation_finished
func menu_anim_exit():
print("ingame exit")
+ game.player_set_input_enabled.emit(true)
anim.play_backwards("activate")
await anim.animation_finished
diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd
index 8361ca6a..de39abfb 100644
--- a/client/player/controllable_player.gd
+++ b/client/player/controllable_player.gd
@@ -29,6 +29,7 @@ var facing = Vector2(1, 0)
var velocity_ = Vector2(0, 0)
var stamina = 0
var chat_open := false
+var enable_input := true
var target: Vector2i = Vector2i(0, 0)
@@ -52,6 +53,7 @@ func _input(_event):
else:
chat_bubble.edit()
chat_open = !chat_open
+ enable_input = !enable_input
const MAX_DT = 1./50.
func _process(delta):
@@ -62,7 +64,7 @@ func _process(delta):
super(delta)
func _process_movement(delta):
- var input = Input.get_vector("left", "right", "forward", "backwards")
+ var input = Input.get_vector("left", "right", "forward", "backwards") if enable_input 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"):
@@ -145,6 +147,8 @@ func take_item(tile: Tile):
Input.start_joy_vibration(0, 0.1, 0.0, 0.075)
func interact():
+ if not enable_input:
+ return
var tile = game.map.get_tile_instance(target)
if tile != null:
game.marker.set_interactive(game.get_tile_interactive(target))
@@ -157,3 +161,6 @@ func interact():
game.mp.send_tile_interact(target, false)
else:
game.marker.visible = false
+
+func set_input_enabled(b: bool):
+ enable_input = b