using System;
using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
using UnityEditor;
using UnityEngine;

public class Door : MonoBehaviour
{
    [SerializeField] private Transform _graphics;
    [SerializeField] private Transform _endpoint;
    [SerializeField] private float _animTime = 1.2f;
    public float AnimTime => _animTime;

    // private bool _opened = false;
    private Vector3 _initialPos;

    private void Awake()
    {
        _initialPos = _graphics.position;
    }

    public void Open()
    {
        _graphics
            .DOMove(_endpoint.position, _animTime)
            .SetEase(Ease.InOutSine);
    }

    public void Close()
    {
        _graphics
            .DOMove(_initialPos, _animTime)
            .SetEase(Ease.InOutSine);
    }

    public void Reset()
    {
        _graphics.DOKill();
        _graphics.position = _initialPos;
    }
}

#if UNITY_EDITOR
[CustomEditor(typeof(Door))]
public class DoorEditor : Editor
{
    private Door _door;

    private void OnEnable()
    {
        _door = target as Door;
    }

    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        if (!Application.isPlaying) return;

        if (GUILayout.Button("Open"))
        {
            _door.Open();
        }

        if (GUILayout.Button("Close"))
        {
            _door.Close();
        }
    }
}
#endif