|
@@ -3,11 +3,13 @@ extends Node2D
|
|
|
# User interface to create liners
|
|
|
|
|
|
signal hub_finished
|
|
|
+signal input_list_updated
|
|
|
|
|
|
const ACTION_PLAYER_PREFIX = "p"
|
|
|
const ACTION_LEFT_SUFFIX = "_left"
|
|
|
const ACTION_RIGHT_SUFFIX = "_right"
|
|
|
const MAX_PLAYERS = 8
|
|
|
+const TXT_FORMAT_INPUT_LINE = "Player %d > left : %s | right : %s"
|
|
|
|
|
|
export (Array, Color) var playerColors = [
|
|
|
Color.red,
|
|
@@ -26,9 +28,12 @@ var _playerActionsRight
|
|
|
|
|
|
var _hub_enabled = true
|
|
|
|
|
|
+var _input_list_text = "";
|
|
|
+
|
|
|
|
|
|
func _ready():
|
|
|
_fill_action_arrays()
|
|
|
+ _update_input_list_text()
|
|
|
|
|
|
|
|
|
func _unhandled_input(event):
|
|
@@ -63,3 +68,21 @@ func _fill_action_arrays():
|
|
|
for k in MAX_PLAYERS:
|
|
|
_playerActionsLeft.append(ACTION_PLAYER_PREFIX + str(k) + ACTION_LEFT_SUFFIX)
|
|
|
_playerActionsRight.append(ACTION_PLAYER_PREFIX + str(k) + ACTION_RIGHT_SUFFIX)
|
|
|
+
|
|
|
+
|
|
|
+func _update_input_list_text():
|
|
|
+ var input_text_array = PoolStringArray()
|
|
|
+ for k in _playerActionsLeft.size():
|
|
|
+ var values = [k]
|
|
|
+ values.append(_get_label_from_action_name(_playerActionsLeft[k]))
|
|
|
+ values.append(_get_label_from_action_name(_playerActionsRight[k]))
|
|
|
+ input_text_array.append(TXT_FORMAT_INPUT_LINE % values)
|
|
|
+ _input_list_text = input_text_array.join("\n")
|
|
|
+ emit_signal("input_list_updated", _input_list_text)
|
|
|
+
|
|
|
+
|
|
|
+func _get_label_from_action_name(action:String):
|
|
|
+ var default_event = InputMap.get_action_list(action)[0]
|
|
|
+ if default_event is InputEventMouseButton:
|
|
|
+ return "Mouse button %s" % default_event.button_index
|
|
|
+ return default_event.as_text()
|