/// <summary>Loads the default grass sprites into the sprite pools.</summary> /// <param name="grassTexture">The grass texture.</param> private void LoadDefaultGrass(Texture2D grassTexture) { foreach (var season in new[] { "spring", "summer", "fall", "winter" }) { // clear any existing default grass sprites in the sprite pool switch (season) { case "spring": SpringSpritePool.ClearDefaultGrass(); break; case "summer": SummerSpritePool.ClearDefaultGrass(); break; case "fall": FallSpritePool.ClearDefaultGrass(); break; case "winter": WinterSpritePool.ClearDefaultGrass(); break; } // calculate the default grass bounds var yOffset = 0; switch (season) { case "summer": yOffset = 21; break; case "fall": yOffset = 41; break; case "winter": yOffset = 81; break; } var grassBounds = new[] { new Rectangle(0, yOffset, 15, 20), new Rectangle(16, yOffset, 15, 20), new Rectangle(30, yOffset, 15, 20) }; // load the individual grass sprites in the correct sprite pool using the above calculated bounds foreach (var grassBound in grassBounds) { // create a new texture using the grassBound var grassSprite = new Texture2D(Game1.graphics.GraphicsDevice, grassBound.Width, grassBound.Height); var grassData = new Color[grassBound.Width * grassBound.Height]; grassTexture.GetData(0, grassBound, grassData, 0, grassData.Length); grassSprite.SetData(grassData); // add sprite to correct sprite pool switch (season) { case "spring": SpringSpritePool.AddDefaultGrass(grassSprite); break; case "summer": SummerSpritePool.AddDefaultGrass(grassSprite); break; case "fall": FallSpritePool.AddDefaultGrass(grassSprite); break; case "winter": WinterSpritePool.AddDefaultGrass(grassSprite); break; } } } }