using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlatformMover : MonoBehaviour
{
    [SerializeField] private Transform m_StartPos;
    [SerializeField] private Transform m_EndPos;
    [SerializeField] private float m_Duration = 2f;

    private Transform m_OldParent;

    private void Update()
    {
        transform.position = Vector2.Lerp(m_StartPos.position, m_EndPos.position, (Mathf.Sin(Time.time * m_Duration) + 1.0f) / 2.0f);
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        var playerController = collision.gameObject.GetComponent<CharacterController2D>();
        if(playerController)
        {
            m_OldParent = playerController.transform.parent;
            playerController.transform.parent = transform;
        }
    }

    private void OnCollisionExit2D(Collision2D collision)
    {
        var playerController = collision.gameObject.GetComponent<CharacterController2D>();
        if(playerController)
        {
            playerController.transform.parent = m_OldParent;
            m_OldParent = null;
        }

    }

#if UNITY_EDITOR
    private void OnDrawGizmos()
    {
        Gizmos.color = Color.green;
        Gizmos.DrawLine(m_StartPos.position, m_EndPos.position);
    }
#endif
}
