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

// Classe générique pour savoir si un cube est en zone de dépot ou sélectionnable ou idle, portée par un Otool
// Post: estSelectionnable = true ssi le cube rentre en collision avec Otool
//       estSelectionnable = true => cube rouge
//       estEnZoneDepot = true ssi le cube rentre en collision avec la zone de dépôt Zone Dépôt
//       estEnZoneDepot = true => cube vert
//       estSelectionnable mis à jour par SelectionnableTriggerScriptTP3scene2 porté par Otool
//       etsEnZoneDeport mis à jour par EstEnZoneDepotTriggerScriptTP3scene2 porté par le cube.
public class EtatCubeTP3 : MonoBehaviour
{
    public enum EtatCubeEnum { Sélectionnable, Sélectionné, EnZoneDépôt, Idle }
    public EtatCubeEnum etatCube;
    public ToColor tocolor;

    public bool estSelectionnable;
    public bool estSelectionne;
    public bool estEnZoneDepot;
    // Start is called before the first frame update
    void Awake()
    {
        estSelectionnable = false;
        estSelectionne = false;
        estEnZoneDepot = false;
    }

    //-----------------------------------------
    // Post: Etat du cube dans { En Zone Dépôt, Sélectionné, Sélectionnable, Idle}
    public EtatCubeEnum DonneEtat()
    {
        return etatCube;
    }

    //------------------------------------------
    // Update is called once per frame
    void Update()
    {
        if (transform.parent != null)
        {
            if (transform.parent.name == "Otool")
            {
                estSelectionne = true;
                estSelectionnable = false;
                estEnZoneDepot = false;
                tocolor.SetColor(Color.grey);
                etatCube = EtatCubeEnum.Sélectionné;
            }
            else
                estSelectionne = false;
        }
        else
        {

            if (estEnZoneDepot == true)
            {
                estSelectionnable = false;
                estSelectionne = false;
                tocolor.SetColor(Color.green);
                etatCube = EtatCubeEnum.EnZoneDépôt;
            }
            else if (estSelectionnable == true)
            {
                estSelectionne = false;
                estEnZoneDepot = false;
                tocolor.SetColor(Color.red);
                etatCube = EtatCubeEnum.Sélectionnable;
            }
            else
            {
                estSelectionnable = false;
                estSelectionne = false;
                estEnZoneDepot = false;
                tocolor.SetColor(Color.grey);
                etatCube = EtatCubeEnum.Idle;
            }
        }
    }
}
