public SoundOptionsState(GuiPanoramaSkyBox skyBox) : base(skyBox) { TitleTranslationKey = "options.sounds.title"; var masterSlider = CreateSlider(v => $"{GuiRenderer.GetTranslation("soundCategory.master")}: {((int)(v * 100)).ToString(CultureInfo.InvariantCulture)}", options => options.SoundOptions.GlobalVolume, 0, 1D, 0.01D); var musicSlider = CreateSlider(v => $"{GuiRenderer.GetTranslation("soundCategory.music")}: {((int)(v * 100)).ToString(CultureInfo.InvariantCulture)}", options => options.SoundOptions.MusicVolume, 0, 1D, 0.01); var effectSlider = CreateSlider(v => $"{GuiRenderer.GetTranslation("soundCategory.ambient")}: {((int)(v * 100)).ToString(CultureInfo.InvariantCulture)}", options => options.SoundOptions.SoundEffectsVolume, 0, 1D, 0.01); AddGuiRow(masterSlider); AddGuiRow(musicSlider, effectSlider); }
protected override void OnInit(IGuiRenderer renderer) { AddGuiRow(CreateSlider($"{GuiRenderer.GetTranslation("options.fov")}: {{0}}", o => o.FieldOfVision, 30, 120, 1), CreateLinkButton <VideoOptionsState>("options.video")); AddGuiRow(CreateLinkButton <ResourcePackOptionsState>("options.resourcepack"), CreateLinkButton <SoundOptionsState>("options.sounds")); AddGuiRow(CreateLinkButton <LanguageOptionsState>("options.language"), CreateLinkButton <ControlOptionsState>("options.controls")); AddGuiRow(CreateLinkButton <NetworkOptionsState>("options.network"), new GuiControl()); base.OnInit(renderer); }
protected override void OnInit(IGuiRenderer renderer) { AddGuiRow( RenderDistance = CreateSlider("Render Distance: {0} chunks", o => Options.VideoOptions.RenderDistance, 2, 32, 1), GuiScaleGlider = CreateSlider(v => $"GUI Scale: {((int) v == 0 ? "Auto" : v.ToString("0"))}", options => options.VideoOptions.GuiScale, 0, 3, 1)); AddGuiRow( ProcessingThreads = CreateSlider("Processing Threads: {0}", o => Options.VideoOptions.ChunkThreads, 1, Environment.ProcessorCount, 1), Brightness = CreateSlider("Brightness: {0}%", o => Options.VideoOptions.Brightness, 0, 100, 1)); AddGuiRow(Antialiasing = CreateSlider(v => { string subText = $"x{v:0}"; return($"Antialiasing: {((int) v == 0 ? "Disabled" : subText)}"); }, options => options.VideoOptions.Antialiasing, 0, 16, 2)); AddGuiRow( FrameRateLimiter = CreateToggle("Limit Framerate: {0}", options => options.VideoOptions.LimitFramerate), FpsSlider = CreateSlider($"{GuiRenderer.GetTranslation("options.framerateLimit")}: {{0}} fps", o => Options.VideoOptions.MaxFramerate, 1, 120, 1)); AddGuiRow( VSync = CreateToggle($"{GuiRenderer.GetTranslation("options.vsync")}: {{0}}", o => { return(Options.VideoOptions.UseVsync); }), Fullscreen = CreateToggle("Fullscreen: {0}", o => { return(Options.VideoOptions.Fullscreen); })); AddGuiRow(Depthmap = CreateToggle("Use DepthMap: {0}", options => options.VideoOptions.Depthmap), Minimap = CreateToggle("Minimap: {0}", options => options.VideoOptions.Minimap)); AddGuiRow(Skybox = CreateToggle("Render Skybox: {0}", options => options.VideoOptions.Skybox), CustomSkins = CreateToggle("Custom entity models: {0}", options => options.VideoOptions.CustomSkins)); AddGuiRow( ClientSideLighting = CreateToggle( "Client Side Lighting: {0}", options => options.VideoOptions.ClientSideLighting), SmoothLighting = CreateToggle("Smooth Lighting: {0}", o => o.VideoOptions.SmoothLighting)); AddGuiRow( ChunkMeshInRam = CreateToggle("Meshes in RAM: {0}", options => options.MiscelaneousOptions.MeshInRam), new GuiElement()); Description = new GuiTextElement() { Anchor = Alignment.MiddleLeft, Margin = new Thickness(5, 15, 5, 5), MinHeight = 80 }; var row = AddGuiRow(Description); row.ChildAnchor = Alignment.MiddleLeft; Descriptions.Add(RenderDistance, $"{TextColor.Bold}Render Distance:{TextColor.Reset}\n{TextColor.Red}High values may decrease performance significantly!\n"); Descriptions.Add(ProcessingThreads, $"{TextColor.Bold}Processing Threads:{TextColor.Reset}\nThe maximum amount of concurrent chunk updates to execute.\nIf you are experiencing lag spikes, try lowering this value."); Descriptions.Add(Minimap, $"{TextColor.Bold}Minimap:{TextColor.Reset}\nIf enabled, renders a minimap in the top right corner of the screen.\nMay impact performance heavily."); Descriptions.Add(Depthmap, $"{TextColor.Bold}Use DepthMap:{TextColor.Reset}\n{TextColor.Bold}{TextColor.Red}EXPERIMENTAL FEATURE{TextColor.Reset}\nHeavy performance impact"); Descriptions.Add(Skybox, $"{TextColor.Bold}Render Skybox:{TextColor.Reset}\nEnabled: Renders skybox in game\nDisabled: May improve performance slightly"); Descriptions.Add(Antialiasing, $"{TextColor.Bold}Antialiasing:{TextColor.Reset}\nImproves sharpness on textures\nMay significantly impact performance on lower-end hardware"); Descriptions.Add(FrameRateLimiter, $"{TextColor.Bold}Limit Framerate:{TextColor.Reset}\nLimit the framerate to value set in Max Framerate slider\n"); Descriptions.Add(FpsSlider, $"{TextColor.Bold}Max Framerate:{TextColor.Reset}\nOnly applies if Limit Framerate is set to true\nLimit's the game's framerate to set value."); Descriptions.Add(VSync, $"{TextColor.Bold}Use VSync:{TextColor.Reset}\nEnabled: Synchronizes the framerate with the monitor's refresh rate.\n"); Descriptions.Add(CustomSkins, $"{TextColor.Bold}Custom entity models:{TextColor.Reset}\nEnabled: Shows custom entity models. May impact performance heavily!\nDisabled: Do not show custom models, may improve performance."); Descriptions.Add(ClientSideLighting, $"{TextColor.Bold}Client Side Lighting:{TextColor.Reset}\nEnabled: Calculate lighting on the client.\nDisabled: May improve chunk loading performance"); Descriptions.Add(ChunkMeshInRam, $"{TextColor.Bold}Meshes in RAM:{TextColor.Reset}\nEnabled: May significantly improve chunk processing performance (High memory usage)\nDisabled: Do not keep chunks meshes in memory (Lower memory usage)"); Descriptions.Add(SmoothLighting, $"{TextColor.Bold}Smooth Lighting:{TextColor.Reset}\nEnabled: Smoother transition in lighting.\nDisabled: May improve chunk loading performance"); base.OnInit(renderer); }