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

[ExecuteInEditMode]
public class SensibleExample : MonoBehaviour, ISensible
{
    public Vector3 Position
    {
        get
        {
            return transform.position;
        }
    }

    public Vector3 FlatPosition
    {
        get
        {
            return transform.position.GetFlattened();
        }
    }

    public Quaternion Rotation
    {
        get
        {
            return transform.rotation;
        }
    }

    public GameObject GameObject
    {
        get { return gameObject; }
    }

    public Color Color
    {
        get
        {
            return color;
        }
    }

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

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

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

    public Color color = Color.green;

    void OnEnable()
    {
        Register(this);
    }

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