12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- class_name Hub
- extends Node2D
- # User interface to create liners
- signal hub_finished
- export (Array, Color) var playerColors = [
- Color.red,
- Color.blue,
- Color.green,
- Color.yellow,
- Color.white,
- Color.cyan,
- Color.magenta,
- Color.orange,
- ]
- var _playerScene = preload("res://Player.tscn")
- var _playerActionsLeft = ["p1_left", "p2_left", "p3_left"]
- var _playerActionsRight = ["p1_right", "p2_right", "p3_right"]
- var _hub_enabled = true
- func _unhandled_input(event):
- if event.is_pressed() and _hub_enabled:
- if event.is_action("ui_accept"):
- if get_tree().get_nodes_in_group("players").size() > 0:
- get_tree().set_input_as_handled()
-
- _hub_enabled = false
- emit_signal("hub_finished")
- elif event.is_action_type():
- for pal in _playerActionsLeft:
- if event.is_action(pal):
- # Create player
- var id = _playerActionsLeft.find(pal)
- var player
- player = _playerScene.instance()
- player.turn_left_action = _playerActionsLeft[id]
- player.turn_right_action = _playerActionsRight[id]
- player.position = Vector2(id * 100.0, 0.0)
- player.modulate = playerColors[id]
- add_child(player)
|