Hub.gd 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. class_name Hub
  2. extends Node2D
  3. # User interface to create liners
  4. signal hub_finished
  5. export (Array, Color) var playerColors = [
  6. Color.red,
  7. Color.blue,
  8. Color.green,
  9. Color.yellow,
  10. Color.white,
  11. Color.cyan,
  12. Color.magenta,
  13. Color.orange,
  14. ]
  15. var _playerScene = preload("res://Player.tscn")
  16. var _playerActionsLeft = ["p1_left", "p2_left", "p3_left"]
  17. var _playerActionsRight = ["p1_right", "p2_right", "p3_right"]
  18. var _hub_enabled = true
  19. func _unhandled_input(event):
  20. if event.is_pressed() and _hub_enabled:
  21. if event.is_action("ui_accept"):
  22. if get_tree().get_nodes_in_group("players").size() > 0:
  23. get_tree().set_input_as_handled()
  24. _hub_enabled = false
  25. emit_signal("hub_finished")
  26. elif event.is_action_type():
  27. for pal in _playerActionsLeft:
  28. if event.is_action(pal):
  29. # Create player
  30. var id = _playerActionsLeft.find(pal)
  31. var player
  32. player = _playerScene.instance()
  33. player.turn_left_action = _playerActionsLeft[id]
  34. player.turn_right_action = _playerActionsRight[id]
  35. player.position = Vector2(id * 100.0, 0.0)
  36. player.modulate = playerColors[id]
  37. add_child(player)