class_name MagneticObject
extends RigidBody2D
## Объект, подверженный магнитному полю.
## Перемещается под воздействием сил от магнитов.

## Масса объекта (влияет на инерцию)
@export var object_mass: float = 1.0

## Чувствительность к магнитному полю (множитель)
@export var magnetic_sensitivity: float = 1.0

## Имеет ли объект свою полярность (ведёт себя как магнит)
@export var has_polarity: bool = false

## Полярность (если has_polarity = true)
@export var north_up: bool = true


func _ready() -> void:
	add_to_group("magnetic")
	mass = object_mass
	# Отключаем стандартную гравитацию — объект двигается только магнитами
	gravity_scale = 0.0
	# Линейное затухание для стабильности
	linear_damp = 2.0


## Возвращает полярность (используется магнитами для определения притяжения/отталкивания)
func get_polarity() -> bool:
	return north_up


## Визуальное обновление (если есть полярность — показать цвет)
func _process(_delta: float) -> void:
	if has_polarity:
		if north_up:
			modulate = Color(1.0, 0.5, 0.5)
		else:
			modulate = Color(0.5, 0.5, 1.0)
