using UnityEngine;

/// <summary>Marks an EdgeCollider2D as a ridable rail. Caches world points.</summary>
[RequireComponent(typeof(EdgeCollider2D))]
public class Rail : MonoBehaviour
{
    public Vector2[] WorldPoints
    {
        get
        {
            var ec = GetComponent<EdgeCollider2D>();
            var local = ec.points;
            var world = new Vector2[local.Length];
            for (int i = 0; i < local.Length; i++)
                world[i] = transform.TransformPoint(local[i] + ec.offset);
            return world;
        }
    }

    void Reset()
    {
        var ec = GetComponent<EdgeCollider2D>();
        ec.isTrigger = true;
        ec.edgeRadius = 0.3f;   // makes the wire easier to land on
    }
}