12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- extends Node
- const FULL_SCREEN_MODES: Array[DisplayServer.WindowMode] = [
- DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN,
- DisplayServer.WINDOW_MODE_FULLSCREEN,
- ]
- var visible_vision: bool = false
- var dragging_disabled: bool = false
- var dragged_object: Node2D = null
- var drop_spot: Node2D = null
- var original_z: int = 0
- func is_dragging() -> bool:
- return dragged_object != null
- func start_dragging(object: Node2D):
- assert(object != null)
- stop_dragging()
-
- if dragging_disabled:
- return
-
- dragged_object = object
- original_z = dragged_object.z_index
- dragged_object.z_index = 1000
- func stop_dragging():
- if dragged_object != null:
- if drop_spot != null:
- drop_spot.drop(dragged_object)
- dragged_object.position = Vector2.ZERO
- dragged_object.rotation = 0.0
- dragged_object.z_index = original_z
- 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_action_pressed("toddle_vision"):
- visible_vision = !visible_vision
- elif event is InputEventMouseMotion && is_dragging():
- dragged_object.global_position = event.global_position
|