From 0f5640d78977b8478db0ed5015908c91dee52f36 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 2 May 2024 15:00:48 +0100 Subject: [PATCH] Adding targeting cursor when placing drone --- resources/cursors/launch_drone.png | Bin 0 -> 1281 bytes resources/cursors/launch_drone.png.import | 34 ++++++++++++++++++++++ scenes/scripts/drone_manager.gd | 3 ++ scenes/test_level.tscn | 23 ++++++++------- 4 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 resources/cursors/launch_drone.png create mode 100644 resources/cursors/launch_drone.png.import diff --git a/resources/cursors/launch_drone.png b/resources/cursors/launch_drone.png new file mode 100644 index 0000000000000000000000000000000000000000..27b681b15add4e739d6762ee2eab20007313829d GIT binary patch literal 1281 zcmV+c1^)VpP)~SM2;on{cCyKW z7eG7#Mko)F_yJfDq>vTMAdeXlfgo%`Rc!Jg?GJaDF}L?>p97z%RF3;3=d#o@92A7LX=S^>U}aXedc@S)8jH61)}q!Hj$ zOz@X`An;a;dqlpNRDjD4XFEs-dm!jmJBWL+bTNql!$^NRoGtV~z)`l~;Jl6Wu&)4T z9gg;qsyz^FlvQ!RJDiOYAZm~9701ieRbbuw9j#cb1D`sMzZ%sTCBVxLCm$tYR03T5 zUW#h8_XCE3Z94DXP64;maVrFqn7xK5G=WD2jn+mx&=V1DA=c^b;KA@)>u{_>#3qg% z?4-l_%~X_%hl}SCyTKM<%+dM#RCJ2Rs^eH&e6|3OI6D84icaxx@f@)mYypNGo%2gi zWeZncu`RwN+2I4pxs(FeMQnpDKqK-jgVE$%N`Z@KTYRq zN9Qz&kTP)GajY$IVy^^8Ftcdit^{|0?;Ha}zEJcKT>O^tm;(SlcQ|S6)c(MD1&_zkmxIRuPjc5a60(wgxVUC{Q_F&gnELjlc&{j z-1AxA0+@2hZt{kt?1K$hSHjDIS&VgU2%e6+H0)%#wY`+<5 z1pZEC!OwP|<|*KdVN4Bww_lCb=)6Of7_$D)Qve$eVIG}N1CL`8v4fb8CK|vmm<;qS r;IF($I0fiO^!=x^_XQ}MK-u^g;Z&8OV1vpf00000NkvXXu0mjfLQqMW literal 0 HcmV?d00001 diff --git a/resources/cursors/launch_drone.png.import b/resources/cursors/launch_drone.png.import new file mode 100644 index 0000000..f451bf9 --- /dev/null +++ b/resources/cursors/launch_drone.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdvbld0afmw6v" +path="res://.godot/imported/launch_drone.png-aa2945541cae29c2447f4294f2ec091e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/cursors/launch_drone.png" +dest_files=["res://.godot/imported/launch_drone.png-aa2945541cae29c2447f4294f2ec091e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/scripts/drone_manager.gd b/scenes/scripts/drone_manager.gd index ab2ce90..32d660f 100644 --- a/scenes/scripts/drone_manager.gd +++ b/scenes/scripts/drone_manager.gd @@ -4,6 +4,7 @@ var spawning_drone : bool = false var spawning_type : String = "" @onready var drone_controls = %DroneControls +@onready var cursor = preload("res://resources/cursors/launch_drone.png") func _ready() -> void: Log.pr("Drone Manager Ready...") @@ -23,12 +24,14 @@ func spawn_drone(drone_type : String) -> void: 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 diff --git a/scenes/test_level.tscn b/scenes/test_level.tscn index 3502a1f..680aa1f 100644 --- a/scenes/test_level.tscn +++ b/scenes/test_level.tscn @@ -49,8 +49,7 @@ grow_horizontal = 2 grow_vertical = 2 metadata/_edit_use_anchors_ = true -[node name="DroneControls" type="HBoxContainer" parent="DroneManager/Control"] -unique_name_in_owner = true +[node name="MarginContainer" type="MarginContainer" parent="DroneManager/Control"] layout_mode = 1 anchors_preset = 7 anchor_left = 0.5 @@ -62,31 +61,35 @@ offset_top = -31.0 offset_right = 155.5 grow_horizontal = 2 grow_vertical = 0 + +[node name="DroneControls" type="HBoxContainer" parent="DroneManager/Control/MarginContainer"] +unique_name_in_owner = true +layout_mode = 2 size_flags_vertical = 10 alignment = 1 script = ExtResource("3_rqkyv") -[node name="SpawnDirector" type="Button" parent="DroneManager/Control/DroneControls"] +[node name="SpawnDirector" type="Button" parent="DroneManager/Control/MarginContainer/DroneControls"] layout_mode = 2 tooltip_text = "Place a director drone, these are the main drones that define the path bees should follow. The order bees should visit these drones can be defined by clicking on them." text = "Director" -[node name="SpawnCollector" type="Button" parent="DroneManager/Control/DroneControls"] +[node name="SpawnCollector" type="Button" parent="DroneManager/Control/MarginContainer/DroneControls"] layout_mode = 2 tooltip_text = "Place a drone that encourages bees to collect pollen near this area." text = "Collector" -[node name="SpawnDistractor" type="Button" parent="DroneManager/Control/DroneControls"] +[node name="SpawnDistractor" type="Button" parent="DroneManager/Control/MarginContainer/DroneControls"] layout_mode = 2 tooltip_text = "Place a distracting drone that will (hopefully) divert threats attention so they ignore the bees." text = "Distractor" -[node name="SpawnDancer" type="Button" parent="DroneManager/Control/DroneControls"] +[node name="SpawnDancer" type="Button" parent="DroneManager/Control/MarginContainer/DroneControls"] layout_mode = 2 tooltip_text = "Spawn a dancing drone that will encourage bees to leave the hive. Best to put this near to the hive. " text = "Dancer" -[connection signal="pressed" from="DroneManager/Control/DroneControls/SpawnDirector" to="DroneManager" method="_on_spawn_director_pressed"] -[connection signal="pressed" from="DroneManager/Control/DroneControls/SpawnCollector" to="DroneManager" method="_on_spawn_collector_pressed"] -[connection signal="pressed" from="DroneManager/Control/DroneControls/SpawnDistractor" to="DroneManager" method="_on_spawn_distractor_pressed"] -[connection signal="pressed" from="DroneManager/Control/DroneControls/SpawnDancer" to="DroneManager" method="_on_spawn_dancer_pressed"] +[connection signal="pressed" from="DroneManager/Control/MarginContainer/DroneControls/SpawnDirector" to="DroneManager" method="_on_spawn_director_pressed"] +[connection signal="pressed" from="DroneManager/Control/MarginContainer/DroneControls/SpawnCollector" to="DroneManager" method="_on_spawn_collector_pressed"] +[connection signal="pressed" from="DroneManager/Control/MarginContainer/DroneControls/SpawnDistractor" to="DroneManager" method="_on_spawn_distractor_pressed"] +[connection signal="pressed" from="DroneManager/Control/MarginContainer/DroneControls/SpawnDancer" to="DroneManager" method="_on_spawn_dancer_pressed"]