using Plugins.JNGame.BepuPhysics;
using UnityEngine;

namespace Script.battle.mode
{
    public class GWorldSceneModeInput
    {
        
    }
    public class GWorldSceneMode:GBaseMode<GWorldSceneModeInput>
    {

        public GameObject[] balls = null;
        private JNBepuPhysics Physics;


        public override void OnSyncLoad()
        {
            
            base.OnSyncLoad();
            Physics = new();
            // BufferPool pool = new BufferPool();
            // Simulation.Create(pool, new DemoNarrowPhaseCallbacks(), new DemoPoseIntegratorCallbacks(new System.Numerics.Vector3(0, -10, 0)), new PositionFirstTimestepper());
        }

        public override void OnSyncUpdate(int dt, JNFrameInfo frame, GWorldSceneModeInput input)
        {
            Physics.OnUpdate((float) dt / 1000);
            if (frame.Index > 0)
            {
                var index = GetSync().nRandomInt(0, balls.Length - 1);
                Debug.Log(index);
                var ballNode = Instantiate(balls[index],this.transform);
                var transformPosition = ballNode.transform.position;
                ballNode.transform.position = new Vector3(GetSync().nRandomFloat(-6,6),transformPosition.y,GetSync().nRandomFloat(-6,6));
            }
        }
        
    }
}