extends Node2D var spawning_drone : bool = false var spawning_type : String = "" @onready var drone_controls = %DroneControls @onready var spawned_drones_container = get_node("SpawnedDrones") @onready var cursor = preload("res://resources/cursors/launch_drone.png") @onready var test_drone = preload("res://entities/TestDrone.tscn") func _ready() -> void: Log.pr("Drone Manager Ready...") ## Function to detect right click event func _input(event) -> void: if spawning_drone: if (event is InputEventMouseButton && event.button_index == MOUSE_BUTTON_RIGHT && event.pressed): Log.pr("Cancelling placement of drone") cancel_spawning() if (event is InputEventMouseButton && event.button_index == MOUSE_BUTTON_LEFT && event.pressed): spawn_drone(spawning_type) cancel_spawning() func spawn_drone(drone_type : String) -> void: Log.pr("This function will put a " + drone_type + " drone in the world") var new_drone = test_drone.instantiate() spawned_drones_container.add_child(new_drone) new_drone.position = get_viewport().get_mouse_position() func place_drone(drone_type : String) -> void: if !spawning_drone: Input.set_custom_mouse_cursor(cursor, Input.CURSOR_ARROW, Vector2(32, 32)) drone_controls.disable_buttons() Log.pr("Placing " + drone_type + "...") spawning_drone = true spawning_type = drone_type func cancel_spawning() -> void: Input.set_custom_mouse_cursor(null) drone_controls.reset_button_focus() drone_controls.enable_buttons() spawning_drone = false spawning_type = "" func _on_spawn_director_pressed() -> void: place_drone("director") func _on_spawn_collector_pressed() -> void: place_drone("collector") func _on_spawn_distractor_pressed() -> void: place_drone("distractor") func _on_spawn_dancer_pressed() -> void: place_drone("dancer")