BlockHitter.gd 569 B

1234567891011121314151617181920212223
  1. class_name BlockHitter
  2. extends Node
  3. @export var hitbox: Area2D = null
  4. @export var can_break_bricks := false
  5. @export var enabled := true:
  6. set(value):
  7. enabled = value
  8. set_physics_process(value)
  9. signal block_hit(block: Block)
  10. func _ready() -> void:
  11. hitbox.set_collision_mask_value(3, true)
  12. func _physics_process(_delta: float) -> void:
  13. for i in hitbox.get_overlapping_bodies():
  14. if i is Block and i.global_position.y < owner.global_position.y:
  15. i.shell_block_hit.emit(self)
  16. block_hit.emit(i)
  17. if i is BrickBlock:
  18. if i.item == null:
  19. i.destroy()