Prevent overlapping buildings

This commit is contained in:
2025-04-30 11:21:34 +02:00
parent 7d79d3f60f
commit fee9cb99cf
8 changed files with 82 additions and 11 deletions

View File

@ -24,10 +24,25 @@ func _ready() -> void:
func _process(delta: float) -> void:
if follower:
position = get_viewport().get_mouse_position()
if not target:
if not name.contains("MortarTower"):
if get_node("Area2D").get_overlapping_bodies().size() > 1:
get_node("CharacterBody2D/AnimatedSprite2D").modulate = Color(255, 0, 0, 0.3)
else:
get_node("CharacterBody2D/AnimatedSprite2D").modulate = Color(1, 1, 1, 1)
else:
if get_node("Area2D").get_overlapping_bodies().size() > 1:
get_node("CharacterBody2D/lifter - 1").modulate = Color(255, 0, 0, 0.3)
get_node("CharacterBody2D/lifter - 2").modulate = Color(255, 0, 0, 0.3)
get_node("CharacterBody2D/MortarPart(2)").modulate = Color(255, 0, 0, 0.3)
else:
get_node("CharacterBody2D/lifter - 1").modulate = Color(1, 1, 1, 1)
get_node("CharacterBody2D/lifter - 2").modulate = Color(1, 1, 1, 1)
get_node("CharacterBody2D/MortarPart(2)").modulate = Color(1, 1, 1, 1)
elif not target:
if get_node("CharacterBody2D/Area2D").get_overlapping_bodies():
choose_target(null)
if lifter:
elif lifter:
lifteramount += 4
if lifteramount <= 40:
get_node("CharacterBody2D/lifter - 1").position.y -= 4
@ -59,7 +74,8 @@ func get_if_moving_state():
func _input(event):
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
if abs(position) <= get_viewport().get_mouse_position():
follower = false
if get_node("Area2D").get_overlapping_bodies().size() <= 1:
follower = false
func choose_target(body : Node2D) -> void:
if not follower: