using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Input.Touch;


namespace SpaceWinnie
{
	public enum Obstacle
	{ 
		Left,
		Center,
		Right,
	}

	public class GameState : DrawableGameComponent
	{
		internal static Vector3 LightYellowVector = Color.LightYellow.ToVector3 ();

		Skybox skybox;
		Winnie winnie;
		ObjectCollection sc;

		public GameState ( Main game )
			: base ( game )
		{
			// TODO: Construct any child components here
			skybox = new Skybox ( Game );
			winnie = new Winnie ( Game );
			sc = new ObjectCollection ( game );

			
		}

		/// <summary>
		/// Allows the game component to update itself.
		/// </summary>
		/// <param name="gameTime">Provides a snapshot of timing values.</param>
		public override void Update ( GameTime gameTime )
		{
			// TODO: Add your update code here

			winnie.Update ( gameTime );
			sc.Update ( gameTime );

			base.Update ( gameTime );
		}

		public override void Draw ( GameTime gameTime )
		{
			skybox.Draw ( gameTime );
			winnie.Draw ( gameTime );
			sc.Draw ( gameTime );

			base.Draw ( gameTime );
		}
	}
}
