/// <summary>
/// Allows the game to perform any initialization it needs to before starting to run.
/// This is where it can query for any required services and load any non-graphic
/// related content. Calling base.Initialize will enumerate through any components
/// and initialize them as well.
/// </summary>
protected override void Initialize()
{
FSO.Content.Content.Init(GlobalSettings.Default.StartupPath, GraphicsDevice);
base.Initialize();
GameFacade.SoundManager = new FSO.Client.Sound.SoundManager();
GameFacade.GameThread = Thread.CurrentThread;
SceneMgr = new _3DLayer();
SceneMgr.Initialize(GraphicsDevice);
GameFacade.Controller = new GameController();
GameFacade.Screens = uiLayer;
GameFacade.Scenes = SceneMgr;
GameFacade.GraphicsDevice = GraphicsDevice;
GameFacade.Cursor = new CursorManager(this.Window);
GameFacade.Cursor.Init(FSO.Content.Content.Get().GetPath(""));
/** Init any computed values **/
GameFacade.Init();
GameFacade.Strings = new ContentStrings();
GameFacade.Controller.StartLoading();
GraphicsDevice.RasterizerState = new RasterizerState() { CullMode = CullMode.None }; //no culling until i find a good way to do this in xna4 (apparently recreating state obj is bad?)
BassNet.Registration("*****@*****.**", "2X3163018312422");
Bass.BASS_Init(-1, 8000, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero, System.Guid.Empty);
this.IsMouseVisible = true;
this.IsFixedTimeStep = true;
WorldContent.Init(this.Services, Content.RootDirectory);
base.Screen.Layers.Add(SceneMgr);
base.Screen.Layers.Add(uiLayer);
GameFacade.LastUpdateState = base.Screen.State;
if (!GlobalSettings.Default.Windowed) Graphics.ToggleFullScreen();
//var test = new IDE.TestEditor();
//test.Show();
}