/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { Effect vitaboyEffect = null; try { GameFacade.MainFont = new FSO.Client.UI.Framework.Font(); GameFacade.MainFont.AddSize(10, Content.Load <SpriteFont>("Fonts/FreeSO_10px")); GameFacade.MainFont.AddSize(12, Content.Load <SpriteFont>("Fonts/FreeSO_12px")); GameFacade.MainFont.AddSize(14, Content.Load <SpriteFont>("Fonts/FreeSO_14px")); GameFacade.MainFont.AddSize(16, Content.Load <SpriteFont>("Fonts/FreeSO_16px")); GameFacade.EdithFont = new FSO.Client.UI.Framework.Font(); GameFacade.EdithFont.AddSize(12, Content.Load <SpriteFont>("Fonts/Trebuchet_12px")); GameFacade.EdithFont.AddSize(14, Content.Load <SpriteFont>("Fonts/Trebuchet_14px")); vitaboyEffect = Content.Load <Effect>((FSOEnvironment.GLVer == 2)?"Effects/VitaboyiOS":"Effects/Vitaboy"); uiLayer = new UILayer(this, Content.Load <SpriteFont>("Fonts/FreeSO_12px"), Content.Load <SpriteFont>("Fonts/FreeSO_16px")); } catch (Exception e) { FSOProgram.ShowDialog("Content could not be loaded. Make sure that the FreeSO content has been compiled! (ContentSrc/TSOClientContent.mgcb) \r\n\r\n" + e.ToString()); Exit(); Environment.Exit(0); } FSO.Vitaboy.Avatar.setVitaboyEffect(vitaboyEffect); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { Effect vitaboyEffect = null; try { /* * GameFacade.MainFont = new FSO.Client.UI.Framework.Font(); * GameFacade.MainFont.AddSize(10, Content.Load<SpriteFont>("Fonts/FreeSO_10px")); * GameFacade.MainFont.AddSize(12, Content.Load<SpriteFont>("Fonts/FreeSO_12px")); * GameFacade.MainFont.AddSize(14, Content.Load<SpriteFont>("Fonts/FreeSO_14px")); * GameFacade.MainFont.AddSize(16, Content.Load<SpriteFont>("Fonts/FreeSO_16px")); * * GameFacade.EdithFont = new FSO.Client.UI.Framework.Font(); * GameFacade.EdithFont.AddSize(12, Content.Load<SpriteFont>("Fonts/Trebuchet_12px")); * GameFacade.EdithFont.AddSize(14, Content.Load<SpriteFont>("Fonts/Trebuchet_14px")); */ GameFacade.VectorFont = new MSDFFont(Content.Load <FieldFont>("../Fonts/simdialogue")); GameFacade.VectorFont.AddFallback(Content.Load <FieldFont>("../Fonts/Fallbacks/thai"), "thai", 0.75f); GameFacade.EdithVectorFont = new MSDFFont(Content.Load <FieldFont>("../Fonts/trebuchet")); GameFacade.EdithVectorFont.VectorScale = 0.366f; GameFacade.EdithVectorFont.Height = 15; GameFacade.EdithVectorFont.YOff = 11; MSDFFont.MSDFEffect = Content.Load <Effect>("Effects/MSDFFont"); vitaboyEffect = Content.Load <Effect>((FSOEnvironment.GLVer == 2)?"Effects/VitaboyiOS":"Effects/Vitaboy"); uiLayer = new UILayer(this); } catch (Exception e) { FSOProgram.ShowDialog("Content could not be loaded. Make sure that the FreeSO content has been compiled! (ContentSrc/TSOClientContent.mgcb) \r\n\r\n" + e.ToString()); Exit(); Environment.Exit(0); } FSO.Vitaboy.Avatar.setVitaboyEffect(vitaboyEffect); }
/// <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() { System.Net.ServicePointManager.DefaultConnectionLimit = 32; var kernel = new StandardKernel( new RegulatorsModule(), new NetworkModule(), new CacheModule() ); FSOFacade.Kernel = kernel; var settings = GlobalSettings.Default; if (FSOEnvironment.SoftwareDepth) { settings.GraphicsWidth = (int)(GraphicsDevice.Viewport.Width / FSOEnvironment.DPIScaleFactor); settings.GraphicsHeight = (int)(GraphicsDevice.Viewport.Height / FSOEnvironment.DPIScaleFactor); } //manage settings if (settings.LightingMode == -1) { if (settings.Lighting) { if (settings.Shadows3D) { settings.LightingMode = 2; } else { settings.LightingMode = 1; } } else { settings.LightingMode = 0; } settings.Save(); } LotView.WorldConfig.Current = new LotView.WorldConfig() { LightingMode = settings.LightingMode, SmoothZoom = settings.SmoothZoom, SurroundingLots = settings.SurroundingLotMode, AA = settings.AntiAlias, }; FeatureLevelTest.UpdateFeatureLevel(GraphicsDevice); if (!FSOEnvironment.TexCompressSupport) { settings.TexCompression = 0; } else if ((settings.TexCompression & 2) == 0) { settings.TexCompression = 1; } FSOEnvironment.TexCompress = (!IffFile.RETAIN_CHUNK_DATA) && (settings.TexCompression & 1) > 0; //end settings management OperatingSystem os = Environment.OSVersion; PlatformID pid = os.Platform; GameFacade.Linux = (pid == PlatformID.MacOSX || pid == PlatformID.Unix); FSO.Content.Content.TS1Hybrid = GlobalSettings.Default.TS1HybridEnable; FSO.Content.Content.TS1HybridBasePath = GlobalSettings.Default.TS1HybridPath; FSO.Content.Content.InitBasic(GlobalSettings.Default.StartupPath, GraphicsDevice); //VMContext.InitVMConfig(); base.Initialize(); GameFacade.GameThread = Thread.CurrentThread; SceneMgr = new _3DLayer(); SceneMgr.Initialize(GraphicsDevice); FSOFacade.Controller = kernel.Get <GameController>(); FSOFacade.Hints = new UI.Hints.UIHintManager(); GameFacade.Screens = uiLayer; GameFacade.Scenes = SceneMgr; GameFacade.GraphicsDevice = GraphicsDevice; GameFacade.GraphicsDeviceManager = Graphics; GameFacade.Emojis = new Common.Rendering.Emoji.EmojiProvider(GraphicsDevice); CurLoader.BmpLoaderFunc = Files.ImageLoader.FromStream; GameFacade.Cursor = new CursorManager(GraphicsDevice); if (!GameFacade.Linux) { GameFacade.Cursor.Init(FSO.Content.Content.Get().GetPath(""), false); } /** Init any computed values **/ GameFacade.Init(); //init audio now HITVM.Init(); var hit = HITVM.Get(); hit.SetMasterVolume(HITVolumeGroup.FX, GlobalSettings.Default.FXVolume / 10f); hit.SetMasterVolume(HITVolumeGroup.MUSIC, GlobalSettings.Default.MusicVolume / 10f); hit.SetMasterVolume(HITVolumeGroup.VOX, GlobalSettings.Default.VoxVolume / 10f); hit.SetMasterVolume(HITVolumeGroup.AMBIENCE, GlobalSettings.Default.AmbienceVolume / 10f); GameFacade.Strings = new ContentStrings(); FSOFacade.Controller.StartLoading(); GraphicsDevice.RasterizerState = new RasterizerState() { CullMode = CullMode.None }; try { var audioTest = new SoundEffect(new byte[2], 44100, AudioChannels.Mono); //initialises XAudio. audioTest.CreateInstance().Play(); } catch (Exception e) { FSOProgram.ShowDialog("Failed to initialize audio: \r\n\r\n" + e.StackTrace); } this.IsMouseVisible = true; this.IsFixedTimeStep = true; WorldContent.Init(this.Services, Content.RootDirectory); DGRP3DMesh.InitRCWorkers(); if (!(FSOEnvironment.SoftwareKeyboard && FSOEnvironment.SoftwareDepth)) { AddTextInput(); } base.Screen.Layers.Add(SceneMgr); base.Screen.Layers.Add(uiLayer); GameFacade.LastUpdateState = base.Screen.State; //Bind ninject objects kernel.Bind <FSO.Content.Content>().ToConstant(FSO.Content.Content.Get()); kernel.Load(new ClientDomainModule()); //Have to be eager with this, it sets a singleton instance on itself to avoid packets having //to be created using Ninject for performance reasons kernel.Get <cTSOSerializer>(); var ds = kernel.Get <DataService>(); ds.AddProvider(new ClientAvatarProvider()); this.Window.Title = "FreeSO"; DiscordRpcEngine.Init(); if (!GlobalSettings.Default.Windowed && !GameFacade.GraphicsDeviceManager.IsFullScreen) { GameFacade.GraphicsDeviceManager.ToggleFullScreen(); } }