using System.Threading.Tasks;
using Game.Plugins.App.Sync;
using Game.Plugins.JNGame.Sync.Frame.AstarPath.RVO;
using UnityEngine;

namespace Game.Plugins.App.Game.RVO
{
    //RVO 寻路
    public class JNGRVOManager : JNGSyncFrameDefault
    {
        
        private JNRVOSimulator _simulator = new JNRVOSimulator(MovementPlane.XZ);
        public JNRVOSimulator Simulator => _simulator;

        public override void OnSyncUpdate(int dt, JNFrameInfo frame, Object input)
        {
            base.OnSyncUpdate(dt, frame, input);
            // Simulator.DesiredDeltaTime = 1.0f / 30;
            // Simulator.symmetryBreakingBias = 0.1f;
            // //更新避障
            // Simulator.Update();
            if (frame.Index > 0)
            {
                Simulator.DesiredDeltaTime = 1.0f / 15;
                Simulator.symmetryBreakingBias = 0.1f;
                //更新避障
                Simulator.Update();
            }
        }

        // public override Task OnSyncUpdateThread(int dt, JNFrameInfo frame)
        // {
        //     return Task.Run(() =>
        //     {
        //         if (frame.Index > 0)
        //         {
        //             Simulator.DesiredDeltaTime = 1.0f / 15;
        //             Simulator.symmetryBreakingBias = 0.1f;
        //             //更新避障
        //             Simulator.Update();
        //         }
        //     });
        // }
    }
}