using Microsoft.Xna.Framework;
using Protogame;
using Protoinject;

namespace SuperBallBrawlers
{
    public class SuperBallBrawlersGameConfiguration : IGameConfiguration
    {
        public void ConfigureKernel(IKernel kernel)
        {
            kernel.Load<ProtogameCoreModule>();
            kernel.Load<ProtogameAssetModule>();
            kernel.Load<ProtogameLevelModule>();
            kernel.Load<ProtogamePhysicsModule>();
            kernel.Load<ProtogameCameraModule>();
            kernel.Load<ProtogameEventsModule>();
            kernel.Load<ProtogameDebugModule>();
            kernel.Load<SuperBallBrawlersModule>();
        }

        public void InitializeAssetManagerProvider(IAssetManagerProviderInitializer initializer)
        {
            initializer.Initialize<GameAssetManagerProvider>();
        }

        public Game ConstructGame(IKernel kernel)
        {
            return new SuperBallBrawlersGame(kernel, kernel.Get<IRawLaunchArguments>());
        }
    }
}