﻿using System.Collections.Generic;
using UnityEngine;

namespace Mochie {
    public class Toggles {

        bool[] toggles; 
        string[] headers;
        List<int> foldouts = new List<int>();
        
        public Toggles(string[] s, int defaultOffset){
            headers = s;
            toggles = new bool[s.Length];

            for (int i = 0; i < s.Length; i++){
                if (i <= defaultOffset)
                    toggles[i] = true;
            }
            
            for (int i = 0; i < s.Length; i++){
                    foldouts.Add(i);
            }
        }

        public bool GetState(int index){ 
            return toggles[index]; 
        }

        public bool GetState(string index){
            bool state = false;
            for (int i = 0; i < headers.Length; i++){
                if (headers[i].ToLower() == index.ToLower()){
                    state = toggles[i];
                }
            }
            return state;
        }

        public void SetState(int index, bool state){ 
            toggles[index] = state; 
        }

        public void SetState(string index, bool state){
            for (int i = 0; i < headers.Length; i++){
                if (headers[i].ToLower() == index.ToLower()){
                    toggles[i] = state;
                }
            }
        }

        public bool[] GetToggles(){ 
            return toggles; 
        }

        public static void CollapseFoldouts(Material mat, Dictionary<Material, Toggles> foldouts, int startIndex){
            for (int i = startIndex; i <= foldouts[mat].GetToggles().Length-1; i++)
                foldouts[mat].SetState(i, false);
        }
    }
}