mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2025-12-31 09:49:06 +03:00
64 lines
1.7 KiB
GDScript
64 lines
1.7 KiB
GDScript
extends Node
|
|
|
|
|
|
enum PhysicsEngine {
|
|
GODOT_PHYSICS,
|
|
JOLT_PHYSICS,
|
|
OTHER,
|
|
}
|
|
|
|
var _engine := PhysicsEngine.OTHER
|
|
|
|
|
|
func _enter_tree() -> void:
|
|
process_mode = Node.PROCESS_MODE_ALWAYS
|
|
|
|
# Always enable visible collision shapes on startup
|
|
# (same as the Debug > Visible Collision Shapes option).
|
|
get_tree().debug_collisions_hint = true
|
|
|
|
var engine_string: String = ProjectSettings.get_setting("physics/3d/physics_engine")
|
|
match engine_string:
|
|
"DEFAULT":
|
|
_engine = PhysicsEngine.GODOT_PHYSICS
|
|
"GodotPhysics3D":
|
|
_engine = PhysicsEngine.GODOT_PHYSICS
|
|
"Jolt Physics":
|
|
_engine = PhysicsEngine.JOLT_PHYSICS
|
|
_:
|
|
_engine = PhysicsEngine.OTHER
|
|
|
|
|
|
func _process(_delta: float) -> void:
|
|
if Input.is_action_just_pressed(&"toggle_full_screen"):
|
|
if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
|
else:
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
|
|
|
if Input.is_action_just_pressed(&"toggle_debug_collision"):
|
|
var debug_collision_enabled := not _is_debug_collision_enabled()
|
|
_set_debug_collision_enabled(debug_collision_enabled)
|
|
if debug_collision_enabled:
|
|
Log.print_log("Debug Collision ON")
|
|
else:
|
|
Log.print_log("Debug Collision OFF")
|
|
|
|
if Input.is_action_just_pressed(&"toggle_pause"):
|
|
get_tree().paused = not get_tree().paused
|
|
|
|
if Input.is_action_just_pressed(&"exit"):
|
|
get_tree().quit()
|
|
|
|
|
|
func get_physics_engine() -> PhysicsEngine:
|
|
return _engine
|
|
|
|
|
|
func _set_debug_collision_enabled(enabled: bool) -> void:
|
|
get_tree().debug_collisions_hint = enabled
|
|
|
|
|
|
func _is_debug_collision_enabled() -> bool:
|
|
return get_tree().debug_collisions_hint
|