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

public class BoidRuleManager : MonoBehaviour
{


    /* ボイドに関する情報 */

    //ボイドオブジェクトの配列
    private SingleBoid[] boid;
    //ボイドの個体数
    private int pop = 0;

    // 視界距離を全てのボイドで一様とする（グローバルモード）
    private bool is_vision_space_global = true;

    // 接触距離を全てのボイドで一様とする（グローバルモード）
    private bool is_neighbor_space_global = true;



    //ルールの係数
    public float c1 = 0.1f;
    public float c2 = 5.0f;
    public float c3 = 0.01f;

    //ルールの適用
    public bool rule1 = false;
    public bool rule2 = false;
    public bool rule3 = false;



    // Start is called before the first frame update
    void Start()
    {

    }

    /* BoidManagerが保持するボイドの状態を自クラスのインスタンス変数にコピーする */
    public void SetBoid(BoidManager m)
    {
        boid = m.boid;
        pop = m.pop;

        if (is_vision_space_global)
        {
            for (int i = 0; i < pop; i++)
            {
                boid[i].SetVisionSpace(m.vision_space);
            }
        }

        if (is_neighbor_space_global)
        {
            for (int i = 0; i < pop; i++)
            {
                boid[i].SetNeighborSpace(m.neighbor_space);
            }
        }

    }


    /* 全てのルールを適用する。 */
    public void ApplyRules()
    {

        if (rule1)
        {
            ApplyRule1();
        }

        if (rule2)
        {
            ApplyRule2();
        }

        if (rule3)
        {
            ApplyRule3();
        }

    }

    /* ルール１の実行内容*/
    private void ApplyRule1()
    {

    }
    /* ルール2の実行内容 */
    private void ApplyRule2()
    {

    }

    /* ルール3の実行内容 */
    private void ApplyRule3()
    {

    }



}




