1234567891011121314151617181920212223242526272829303132333435363738394041 |
- extends Node
- const FULL_SCREEN_MODES: Array[DisplayServer.WindowMode] = [
- DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN,
- DisplayServer.WINDOW_MODE_FULLSCREEN,
- ]
- var dragged_object: Node2D = null
- var drop_spot: Node2D = null
- func is_dragging() -> bool:
- return dragged_object != null
- func start_dragging(object: Node2D):
- assert(object != null)
- stop_dragging()
- dragged_object = object
- func stop_dragging():
- if dragged_object != null:
- if drop_spot != null:
- drop_spot.drop(dragged_object)
- dragged_object.position = Vector2.ZERO
- dragged_object = null
- func set_drop_spot(spot: Node2D):
- assert(spot == null || spot.has_method("drop"))
- drop_spot = spot
-
- func toggle_fullscreen():
- var current_mode = DisplayServer.window_get_mode()
- if current_mode in FULL_SCREEN_MODES:
- DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
- else:
- DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
- func _input(event: InputEvent):
- if event.is_action_pressed("toggle_fullscreen"):
- toggle_fullscreen()
- elif event is InputEventMouseMotion && is_dragging():
- dragged_object.global_position = event.global_position
|