seated_vehicle.gd 795 B

1234567891011121314151617181920212223242526272829303132
  1. class_name SeatedVehicle
  2. extends VehicleBody3D
  3. var _current_commander: LocalInput = null
  4. ## Make the vehicle responds to driver commands
  5. func drive_with(commander: LocalInput) -> void:
  6. commander.dir_changed.connect(_on_dir_changed)
  7. commander.main_action.connect(_on_main_action)
  8. _current_commander = commander
  9. func get_out() -> void:
  10. _current_commander.dir_changed.disconnect(_on_dir_changed)
  11. _current_commander.main_action.disconnect(_on_main_action)
  12. _current_commander = null
  13. ## Need to be overriden to return an available seat
  14. func get_free_seat() -> Node3D:
  15. return null
  16. ## Need to be overriden to react to direction changed
  17. func _on_dir_changed(dir: Vector2) -> void:
  18. pass
  19. ## Need to be overriden to react to main action
  20. func _on_main_action(pressed: bool) -> void:
  21. pass