﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Arugula.Prototypical;
using Arugula;

[ExecuteInEditMode]
public class SensibleObject : MonoBehaviour, ISensible
{
    public Color color = Color.green;

    public Vector3 Position => transform.position;
    public Vector3 FlatPosition => transform.position.GetFlattened();
    public Quaternion Rotation => transform.rotation;
    public GameObject GameObject => gameObject;
    public Color Color => color;

    public virtual void OnEnable()
    {
        Register(this);
    }

    public virtual void OnDisable()
    {
        Unregister(this);
    }

    public void DrawGizmos()
    {
        Sensor.DrawSensibleGizmo(this);
    }

    public void Register(ISensible sensible)
    {
        Sensor.Register(this);
    }

    public void Unregister(ISensible sensible)
    {
        Sensor.Unregister(this);
    }
}
