/// <summary>
 /// Template of a Projectile
 /// </summary>
 /// <param name="hitboxLength">Length of the hitbox</param>
 /// <param name="hitboxWidth">Width of the hitbox</param>
 /// <param name="spriteSheet">Spritesheet the Projectile uses</param>
 /// <param name="timeBetweenFrames">Time between frames, measured in seconds</param>
 /// <param name="speed">Traveling speed of the Projectile</param>
 public Projectile(int hitboxLength, int hitboxWidth, SpriteSheet spriteSheet, double timeBetweenFrames, int speed) : base(spriteSheet, timeBetweenFrames)
 {
     this.speed        = speed;
     this.hitboxLength = hitboxLength;
     this.hitboxWidth  = hitboxWidth;
 }
        //Alla sprites hanteras med SpriteSheet objekt.
        //Alla SpriteSheet objekt sparas och hämtas från SpriteSheetManager
        //För att hämta ett Texture2D används "spriteSheetName.texture.
        //Använd gärna "spriteSheetName.frameSize" för spritesheets med flera frames då det drar ner på uträkningar.
        //SpriteSheet måste innehålla ett Texture2D och en Point som representerar hur många rader och kolumner med frames texturen har.
        //SpriteSheet kan innehålla en lista av animationssekvenser.
        //Deklarera nya spriteSheets i LoadContent funktionen.
        //GameObject använder nu SpriteSheet objekt istället för Texture2D

        public static void LoadContent(ContentManager c)
        {
            Point     sheetSize;
            Texture2D texture;

            //Ball
            sheetSize = new Point(0, 0);
            texture   = c.Load <Texture2D>("ball");

            //tillfälllig bakgrunds Tile
            texture  = c.Load <Texture2D>("tempTile");
            tempTile = new SpriteSheet(texture, sheetSize);

            ball = new SpriteSheet(c.Load <Texture2D>("ball"), sheetSize);


            //tillfälliga från Davids testning
            dummy         = new SpriteSheet(c.Load <Texture2D>("dummy"), sheetSize);
            arrow         = new SpriteSheet(c.Load <Texture2D>("Arrow"), sheetSize);
            arrowItem     = new SpriteSheet(c.Load <Texture2D>("arrowitem"), sheetSize);
            coin          = new SpriteSheet(c.Load <Texture2D>("coinitem"), sheetSize);
            sweep         = new SpriteSheet(c.Load <Texture2D>("sweep"), sheetSize);
            sweepItem     = new SpriteSheet(c.Load <Texture2D>("sweepitem"), sheetSize);
            stairTile     = new SpriteSheet(c.Load <Texture2D>("stairtile"), sheetSize);
            downLadder    = new SpriteSheet(c.Load <Texture2D>("ladderdown"), sheetSize);
            upLadder      = new SpriteSheet(c.Load <Texture2D>("ladderup"), sheetSize);
            rock          = new SpriteSheet(c.Load <Texture2D>("rock"), sheetSize);
            knife         = new SpriteSheet(c.Load <Texture2D>("knife"), sheetSize);
            knifeItem     = new SpriteSheet(c.Load <Texture2D>("knifeitem"), sheetSize);
            spear         = new SpriteSheet(c.Load <Texture2D>("spear"), sheetSize);
            spearItem     = new SpriteSheet(c.Load <Texture2D>("spearitem"), sheetSize);
            punch         = new SpriteSheet(c.Load <Texture2D>("punch"), sheetSize);
            punchItem     = new SpriteSheet(c.Load <Texture2D>("punchitem"), sheetSize);
            smash         = new SpriteSheet(c.Load <Texture2D>("smash"), sheetSize);
            smashItem     = new SpriteSheet(c.Load <Texture2D>("smashitem"), sheetSize);
            throwing      = new SpriteSheet(c.Load <Texture2D>("throw"), sheetSize);
            throwItem     = new SpriteSheet(c.Load <Texture2D>("throwitem"), sheetSize);
            shuriken      = new SpriteSheet(c.Load <Texture2D>("shuriken"), sheetSize);
            fireRod       = new SpriteSheet(c.Load <Texture2D>("firerod"), sheetSize);
            fireRodItem   = new SpriteSheet(c.Load <Texture2D>("fireroditem"), sheetSize);
            iceRod        = new SpriteSheet(c.Load <Texture2D>("icerod"), sheetSize);
            iceRodItem    = new SpriteSheet(c.Load <Texture2D>("iceroditem"), sheetSize);
            invisibleTile = new SpriteSheet(c.Load <Texture2D>("invisibletile"), sheetSize);
            healPotion    = new SpriteSheet(c.Load <Texture2D>("healpotion"), sheetSize);

            damageBoost      = new SpriteSheet(c.Load <Texture2D>("damageboost"), sheetSize);
            healthBoost      = new SpriteSheet(c.Load <Texture2D>("healthboost"), sheetSize);
            attackSpeedBoost = new SpriteSheet(c.Load <Texture2D>("attackspeedboost"), sheetSize);
            speedBoost       = new SpriteSheet(c.Load <Texture2D>("speedboost"), sheetSize);

            shopKeeperTextbox = new SpriteSheet(c.Load <Texture2D>("shopkeepertext"), sheetSize);

            bow      = new SpriteSheet(c.Load <Texture2D>("bow"), sheetSize);
            bowItem  = new SpriteSheet(c.Load <Texture2D>("bowitem"), sheetSize);
            arrowBow = new SpriteSheet(c.Load <Texture2D>("arrowbow"), sheetSize);

            gameOver = new SpriteSheet(c.Load <Texture2D>("gameover"), sheetSize);

            newGame  = new SpriteSheet(c.Load <Texture2D>("NewGame"), sheetSize);
            exitGame = new SpriteSheet(c.Load <Texture2D>("exit"), sheetSize);

            backGroundTex    = new SpriteSheet(c.Load <Texture2D>("background"), sheetSize);
            start            = new SpriteSheet(c.Load <Texture2D>("start"), sheetSize);
            door             = new SpriteSheet(c.Load <Texture2D>("Door"), sheetSize);
            resume           = new SpriteSheet(c.Load <Texture2D>("ResumeButton"), sheetSize);
            quit             = new SpriteSheet(c.Load <Texture2D>("QuitButton"), sheetSize);
            options          = new SpriteSheet(c.Load <Texture2D>("OptionsButton"), sheetSize);
            back             = new SpriteSheet(c.Load <Texture2D>("BackButton"), sheetSize);
            muteMusicOff     = new SpriteSheet(c.Load <Texture2D>("MuteMusicOff"), sheetSize);
            muteMusicOn      = new SpriteSheet(c.Load <Texture2D>("MuteMusicOn"), sheetSize);
            fullScreenOff    = new SpriteSheet(c.Load <Texture2D>("FullScreenOff"), sheetSize);
            fullScreenOn     = new SpriteSheet(c.Load <Texture2D>("FullScreenOn"), sheetSize);
            continue_        = new SpriteSheet(c.Load <Texture2D>("Continue"), sheetSize);
            pause            = new SpriteSheet(c.Load <Texture2D>("PauseButton"), sheetSize);
            titleScreenSheet = new SpriteSheet(c.Load <Texture2D>("TitleScreenSheet"), sheetSize);
            doorSheet        = new SpriteSheet(c.Load <Texture2D>("door-Sheet"), sheetSize);



            //Minos arm
            texture = c.Load <Texture2D>("Minos_arm");

            minosArm = new SpriteSheet(texture, sheetSize);


            //Floor tile
            sheetSize = new Point(5, 8);
            texture   = c.Load <Texture2D>("Floor_Tile");

            floorTile = new SpriteSheet(texture, sheetSize);


            //Player
            sheetSize = new Point(3, 0);
            texture   = c.Load <Texture2D>("IdleSpriteSheet");



            playerPlaceHolderAnimations.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
            });

            playerPlaceHolder = new SpriteSheet(texture, sheetSize, playerPlaceHolderAnimations);

            sheetSize = new Point(3, 8);
            wallTiles = new SpriteSheet(c.Load <Texture2D>("walltiles"), sheetSize);


            //Shop Keeper
            sheetSize = new Point(1, 0);
            shopKeeperAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0)
            });
            shopKeeper = new SpriteSheet(c.Load <Texture2D>("shopkeeper"), sheetSize, shopKeeperAnimation);

            rodBallAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
            });
            fireBall = new SpriteSheet(c.Load <Texture2D>("fireball"), sheetSize, rodBallAnimation);
            iceBall  = new SpriteSheet(c.Load <Texture2D>("iceball"), sheetSize, rodBallAnimation);



            //Fire
            sheetSize = new Point(4, 0);
            texture   = c.Load <Texture2D>("Fire");

            fireAnimations.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
                new Point(4, 0),
            });

            fire = new SpriteSheet(texture, sheetSize, fireAnimations);

            //Corpse
            sheetSize = new Point(3, 0);
            texture   = c.Load <Texture2D>("Corpse");

            corpseAnimations.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
            });

            corpse = new SpriteSheet(texture, sheetSize, corpseAnimations);

            //Book
            sheetSize = new Point(3, 0);
            texture   = c.Load <Texture2D>("booksheet");

            bookAnimations.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
            });

            book = new SpriteSheet(texture, sheetSize, bookAnimations);

            //Enemy hit
            sheetSize = new Point(3, 0);
            texture   = c.Load <Texture2D>("enemy-hit");

            enemyHitAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
            });

            enemyHit = new SpriteSheet(texture, sheetSize, enemyHitAnimation);

            shatterAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
                new Point(4, 0),
            });
            shatteredVase = new SpriteSheet(c.Load <Texture2D>("shattervase"), sheetSize, shatterAnimation);

            //Minos
            sheetSize = new Point(5, 0);
            texture   = c.Load <Texture2D>("Minos-Sheet");

            minosAnimations.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
                new Point(4, 0),
            });

            bossMinos = new SpriteSheet(texture, sheetSize, minosAnimations);

            //Minos ground
            sheetSize = new Point(2, 0);
            texture   = c.Load <Texture2D>("Minos-ground");


            minosGroundAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
            });

            minosGround = new SpriteSheet(texture, sheetSize, minosGroundAnimation);

            vase = new SpriteSheet(c.Load <Texture2D>("vase"), sheetSize);


            sheetSize = new Point(6, 0);
            windBreezeAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
                new Point(4, 0),
                new Point(5, 0),
                new Point(6, 0),
            });

            windBreeze = new SpriteSheet(c.Load <Texture2D>("windbreeze"), sheetSize, windBreezeAnimation);

            sheetSize = new Point(8, 0);
            strongWindAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
                new Point(4, 0),
                new Point(5, 0),
                new Point(6, 0),
                new Point(7, 0),
                new Point(8, 0),
            });
            strongWind = new SpriteSheet(c.Load <Texture2D>("strongwind"), sheetSize, strongWindAnimation);

            sheetSize = new Point(11, 0);
            fireDropsAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
                new Point(4, 0),
                new Point(5, 0),
                new Point(7, 0),
                new Point(8, 0),
                new Point(9, 0),
                new Point(10, 0),
                new Point(11, 0),
            });

            fireDrops = new SpriteSheet(c.Load <Texture2D>("firedrops"), sheetSize, fireDropsAnimation);

            sheetSize = new Point(6, 0);

            rainAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(3, 0),
                new Point(4, 0),
                new Point(5, 0),
                new Point(6, 0),
            });
            raindrops = new SpriteSheet(c.Load <Texture2D>("rainsheet"), sheetSize, rainAnimation);

            //Sword sweep

            sheetSize = new Point(2, 0);

            swordSwingAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
            });

            swordSwing = new SpriteSheet(c.Load <Texture2D>("sword_swing"), sheetSize, swordSwingAnimation);

            //Player
            sheetSize = new Point(5, 3);

            playerAnimations.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
                new Point(4, 0),
                new Point(5, 0),
            });
            playerAnimations.Add(new Point[]
            {
                new Point(0, 1),
                new Point(1, 1),
                new Point(2, 1),
                new Point(3, 1),
                new Point(4, 1),
                new Point(5, 1),
            });
            playerAnimations.Add(new Point[]
            {
                new Point(0, 2),
                new Point(1, 2),
                new Point(2, 2),
                new Point(3, 2),
                new Point(4, 2),
                new Point(5, 2),
            });
            playerAnimations.Add(new Point[]
            {
                new Point(0, 3),
                new Point(1, 3),
                new Point(2, 3),
                new Point(3, 3),
                new Point(4, 3),
                new Point(5, 3),
            });

            player = new SpriteSheet(c.Load <Texture2D>("Run-Sheet"), sheetSize, playerAnimations);

            sheetSize = new Point(5, 0);
            bubblesAnimation.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(3, 0),
                new Point(4, 0),
                new Point(5, 0),
            });
            bubbles = new SpriteSheet(c.Load <Texture2D>("bubbles"), sheetSize, bubblesAnimation);

            //Devil

            sheetSize = new Point(3, 0);
            devilAnimations.Add(new Point[]
            {
                new Point(0, 0),
                new Point(1, 0),
                new Point(2, 0),
                new Point(3, 0),
            });
            devil = new SpriteSheet(c.Load <Texture2D>("Devil"), sheetSize, devilAnimations);
        }