system.gd 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. extends Node
  2. enum PhysicsEngine {
  3. BULLET,
  4. GODOT_PHYSICS,
  5. OTHER,
  6. }
  7. var _engine = PhysicsEngine.OTHER
  8. func _enter_tree():
  9. pause_mode = Node.PAUSE_MODE_PROCESS
  10. get_tree().debug_collisions_hint = true
  11. var engine_string = ProjectSettings.get_setting("physics/3d/physics_engine")
  12. match engine_string:
  13. "DEFAULT":
  14. _engine = PhysicsEngine.BULLET
  15. "Bullet":
  16. _engine = PhysicsEngine.BULLET
  17. "GodotPhysics":
  18. _engine = PhysicsEngine.GODOT_PHYSICS
  19. _:
  20. _engine = PhysicsEngine.OTHER
  21. func _process(_delta):
  22. if Input.is_action_just_pressed("toggle_full_screen"):
  23. OS.window_fullscreen = not OS.window_fullscreen
  24. if Input.is_action_just_pressed("toggle_debug_collision"):
  25. var debug_collision_enabled = not _is_debug_collision_enabled()
  26. _set_debug_collision_enabled(debug_collision_enabled)
  27. if debug_collision_enabled:
  28. Log.print_log("Debug Collision ON")
  29. else:
  30. Log.print_log("Debug Collision OFF")
  31. if Input.is_action_just_pressed("toggle_pause"):
  32. get_tree().paused = not get_tree().paused
  33. if Input.is_action_just_pressed("exit"):
  34. get_tree().quit()
  35. func get_physics_engine():
  36. return _engine
  37. func _set_debug_collision_enabled(enabled):
  38. get_tree().debug_collisions_hint = enabled
  39. func _is_debug_collision_enabled():
  40. return get_tree().debug_collisions_hint