GUI blocks mouse input on map

This commit is contained in:
Daydreel 2025-09-07 11:52:50 +02:00
parent d324a66d54
commit 7aac67b765
6 changed files with 71 additions and 19 deletions

View file

@ -41,4 +41,14 @@ signal wave_has_change(waveNumber : int, timeRemaining : float)
## [b]Subscriber[/b] : [WorldManager]
signal lauch_next_wave
## [b]Emitter[/b] : [gui.gd][br]
## [b]Subscriber[/b] : [TowerManager]
signal mouse_entered_gui
## [b]Emitter[/b] : [gui.gd][br]
## [b]Subscriber[/b] : [TowerManager]
signal mouse_exited_gui
@warning_ignore_restore("unused_signal")

View file

@ -10,11 +10,14 @@ var usedLocations : Dictionary
var selectedTile : Vector3
var selected_tower : Tower
var buildedTower : int = 0
var is_on_gui : bool = false
func _ready() -> void:
EventBus.tower_selected.connect(onTowerSelect)
#$AnimationPlayer.play("arrow_bobbing")
EventBus.mouse_entered_gui.connect(onMouseEnteredGui)
EventBus.mouse_exited_gui.connect(onMouseExitedGui)
func _process(_delta: float) -> void:
@ -46,6 +49,10 @@ func _input(event: InputEvent) -> void:
func handle_player_controls() -> Node3D:
#If the player has the mouse on the GUI, player can't place tower
if is_on_gui:
return
var space_state : PhysicsDirectSpaceState3D = get_world_3d().direct_space_state
var mouse_pos : Vector2 = get_viewport().get_mouse_position()
@ -147,3 +154,13 @@ func handleTowerShortCuts(event: InputEventKey) -> void:
if Game.towers.has(towerType):
selectTower(towerType, true)
func onMouseEnteredGui() -> void:
is_on_gui = true
print(is_on_gui)
func onMouseExitedGui() -> void:
is_on_gui = false
print(is_on_gui)

View file

@ -24,6 +24,10 @@ func _ready() -> void:
%QuitLevelBtn.pressed.connect(Helper.showConfirmPopup.bind("Quit level ?", self, Game.quitLevel))
%QuitGameBtn.pressed.connect(Helper.showConfirmPopup.bind("Quit game ?", self, Game.quitGame))
$TowerInfoPanel.visible = false
$TowerInfoPanel.mouse_entered.connect(onMouseEnteredGui)
$TowerInfoPanel.mouse_exited.connect(onMouseExitedGui)
$TowerButtonPanel.mouse_entered.connect(onMouseEnteredGui)
$TowerButtonPanel.mouse_exited.connect(onMouseExitedGui)
if Engine.is_editor_hint():
var allowedTowers : Array[Tower.TYPE]
@ -73,3 +77,11 @@ func createTowerButton(towerType : Tower.TYPE) -> void:
else:
btn.disabled = true
buttonContainer.add_child(btn)
func onMouseEnteredGui() -> void:
EventBus.mouse_entered_gui.emit()
func onMouseExitedGui() -> void:
EventBus.mouse_exited_gui.emit()

View file

@ -54,7 +54,7 @@ theme_override_font_sizes/font_size = 40
[node name="Timer" type="Timer" parent="WaveCooldown"]
wait_time = 0.1
[node name="HBoxContainer" type="HBoxContainer" parent="."]
[node name="TowerButtonPanel" type="HBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
@ -67,22 +67,23 @@ grow_horizontal = 0
grow_vertical = 0
theme_override_constants/separation = 0
[node name="InfoPanel" type="PanelContainer" parent="HBoxContainer"]
[node name="InfoPanel" type="PanelContainer" parent="TowerButtonPanel"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_h4fn5")
[node name="MarginContainer" type="MarginContainer" parent="HBoxContainer/InfoPanel"]
[node name="MarginContainer" type="MarginContainer" parent="TowerButtonPanel/InfoPanel"]
layout_mode = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/InfoPanel/MarginContainer"]
[node name="VBoxContainer" type="VBoxContainer" parent="TowerButtonPanel/InfoPanel/MarginContainer"]
layout_mode = 2
[node name="LabelMoney" type="Label" parent="HBoxContainer/InfoPanel/MarginContainer/VBoxContainer"]
[node name="LabelMoney" type="Label" parent="TowerButtonPanel/InfoPanel/MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 1
@ -93,7 +94,7 @@ text = "1'000'000 €"
horizontal_alignment = 2
vertical_alignment = 2
[node name="LabelTowerInCube" type="Label" parent="HBoxContainer/InfoPanel/MarginContainer/VBoxContainer"]
[node name="LabelTowerInCube" type="Label" parent="TowerButtonPanel/InfoPanel/MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
tooltip_text = "Le nombre de héros disponible dans le cube !"
@ -102,7 +103,7 @@ theme_override_colors/font_color = Color(0.2, 0.2, 0.2, 1)
text = "0"
horizontal_alignment = 2
[node name="LabelTowerOnTerrain" type="Label" parent="HBoxContainer/InfoPanel/MarginContainer/VBoxContainer"]
[node name="LabelTowerOnTerrain" type="Label" parent="TowerButtonPanel/InfoPanel/MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
tooltip_text = "Le nombre de héros en action sur le terrain !"
@ -111,17 +112,18 @@ theme_override_colors/font_color = Color(0.2, 0.2, 0.2, 1)
text = "0"
horizontal_alignment = 2
[node name="WaveNumber" type="Label" parent="HBoxContainer/InfoPanel/MarginContainer/VBoxContainer"]
[node name="WaveNumber" type="Label" parent="TowerButtonPanel/InfoPanel/MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.2, 0.2, 0.2, 1)
[node name="CubeIntegrity" type="ProgressBar" parent="HBoxContainer"]
[node name="CubeIntegrity" type="ProgressBar" parent="TowerButtonPanel"]
unique_name_in_owner = true
custom_minimum_size = Vector2(10, 0)
layout_mode = 2
size_flags_vertical = 1
tooltip_text = "Les points d'intégrités du Cube. S'ils arrivent à 0, fin de la partie."
mouse_filter = 1
theme_override_styles/background = SubResource("StyleBoxFlat_nxmp4")
theme_override_styles/fill = SubResource("StyleBoxFlat_epgl5")
max_value = 50.0
@ -129,12 +131,13 @@ value = 50.0
fill_mode = 3
show_percentage = false
[node name="ControlPanelBase" type="PanelContainer" parent="HBoxContainer"]
[node name="ControlPanelBase" type="PanelContainer" parent="TowerButtonPanel"]
layout_mode = 2
size_flags_horizontal = 3
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_3lugd")
[node name="MarginContainer" type="MarginContainer" parent="HBoxContainer/ControlPanelBase"]
[node name="MarginContainer" type="MarginContainer" parent="TowerButtonPanel/ControlPanelBase"]
layout_mode = 2
size_flags_vertical = 0
theme_override_constants/margin_left = 10
@ -142,34 +145,37 @@ theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="ButtonContainer" type="GridContainer" parent="HBoxContainer/ControlPanelBase/MarginContainer"]
[node name="ButtonContainer" type="GridContainer" parent="TowerButtonPanel/ControlPanelBase/MarginContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 0
columns = 4
[node name="CubeBtn" parent="HBoxContainer/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
[node name="CubeBtn" parent="TowerButtonPanel/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
layout_mode = 2
mouse_filter = 1
texture = ExtResource("7_fffne")
[node name="QuitLevelBtn" parent="HBoxContainer/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
[node name="QuitLevelBtn" parent="TowerButtonPanel/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 1
texture = ExtResource("8_decjp")
[node name="QuitGameBtn" parent="HBoxContainer/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
[node name="QuitGameBtn" parent="TowerButtonPanel/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 1
texture = ExtResource("9_reygo")
[node name="NextWaveBtn" parent="HBoxContainer/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
[node name="NextWaveBtn" parent="TowerButtonPanel/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 1
texture = ExtResource("8_ay13l")
[node name="TowerInfoPanel" type="HBoxContainer" parent="."]
visible = false
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
@ -183,6 +189,7 @@ script = ExtResource("9_3lugd")
[node name="InfoPanel" type="PanelContainer" parent="TowerInfoPanel"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_h4fn5")
[node name="MarginContainer" type="MarginContainer" parent="TowerInfoPanel/InfoPanel"]
@ -259,6 +266,7 @@ horizontal_alignment = 2
[node name="PanelContainer" type="PanelContainer" parent="TowerInfoPanel"]
layout_mode = 2
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_3lugd")
[node name="MarginContainer" type="MarginContainer" parent="TowerInfoPanel/PanelContainer"]
@ -274,4 +282,4 @@ layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 0
[connection signal="pressed" from="HBoxContainer/ControlPanelBase/MarginContainer/ButtonContainer/CubeBtn" to="." method="_on_button_cube_pressed"]
[connection signal="pressed" from="TowerButtonPanel/ControlPanelBase/MarginContainer/ButtonContainer/CubeBtn" to="." method="_on_button_cube_pressed"]

View file

@ -25,6 +25,7 @@ offset_bottom = 80.0
size_flags_horizontal = 4
size_flags_vertical = 4
tooltip_text = "Sélectionner Pierre"
mouse_filter = 1
mouse_default_cursor_shape = 2
script = ExtResource("1_snobr")
metadata/_custom_type_script = "uid://dyhtr6g7kd1g2"
@ -44,6 +45,7 @@ layout_mode = 0
offset_top = 70.0
offset_right = 80.0
offset_bottom = 80.0
mouse_filter = 1
theme_override_styles/fill = SubResource("StyleBoxFlat_i47ne")
show_percentage = false
@ -57,10 +59,11 @@ anchor_bottom = 1.0
offset_top = -36.0
grow_horizontal = 2
grow_vertical = 0
mouse_filter = 2
mouse_filter = 1
theme_override_styles/panel = SubResource("StyleBoxFlat_snobr")
[node name="Label" type="Label" parent="LeFond"]
layout_mode = 2
mouse_filter = 1
label_settings = SubResource("LabelSettings_snobr")
horizontal_alignment = 1

View file

@ -12,12 +12,14 @@ script = ExtResource("1_xoo7y")
[node name="UpgradeName" type="Label" parent="."]
layout_mode = 2
size_flags_horizontal = 3
mouse_filter = 1
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 24
text = "test"
[node name="UpgradeButton" type="Button" parent="."]
layout_mode = 2
mouse_filter = 1
theme_override_font_sizes/font_size = 18
text = "Lvl. 0
"