From 9538d1321a58e52c7ff6654dd96a397376766959 Mon Sep 17 00:00:00 2001 From: William Moorehouse Date: Wed, 17 Jun 2015 10:02:06 -0400 Subject: [PATCH 1/4] Added support for changing preferred resolution --- TrueCraft.Client/TrueCraftGame.cs | 4 +-- TrueCraft.Core/UserSettings.cs | 10 ++++++++ TrueCraft.Launcher/Views/OptionView.cs | 35 ++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/TrueCraft.Client/TrueCraftGame.cs b/TrueCraft.Client/TrueCraftGame.cs index c6fd897..d274c14 100644 --- a/TrueCraft.Client/TrueCraftGame.cs +++ b/TrueCraft.Client/TrueCraftGame.cs @@ -52,8 +52,8 @@ namespace TrueCraft.Client Content.RootDirectory = "Content"; Graphics = new GraphicsDeviceManager(this); Graphics.IsFullScreen = false; - Graphics.PreferredBackBufferWidth = 1280; - Graphics.PreferredBackBufferHeight = 720; + Graphics.PreferredBackBufferWidth = UserSettings.Local.Window.Width; + Graphics.PreferredBackBufferHeight = UserSettings.Local.Window.Height; Client = client; EndPoint = endPoint; NextPhysicsUpdate = DateTime.MinValue; diff --git a/TrueCraft.Core/UserSettings.cs b/TrueCraft.Core/UserSettings.cs index 1d4a012..128e637 100644 --- a/TrueCraft.Core/UserSettings.cs +++ b/TrueCraft.Core/UserSettings.cs @@ -23,6 +23,7 @@ namespace TrueCraft.Core public string LastIP { get; set; } public string SelectedTexturePack { get; set; } public FavoriteServer[] FavoriteServers { get; set; } + public WindowParams Window { get; set; } public UserSettings() { @@ -32,6 +33,9 @@ namespace TrueCraft.Core LastIP = ""; SelectedTexturePack = TexturePack.Default.Name; FavoriteServers = new FavoriteServer[0]; + Window = new WindowParams(); + Window.Width = 1280; + Window.Height = 720; } public void Load() @@ -52,4 +56,10 @@ namespace TrueCraft.Core public string Name { get; set; } public string Address { get; set; } } + + public class WindowParams + { + public int Width { get; set; } + public int Height { get; set; } + } } \ No newline at end of file diff --git a/TrueCraft.Launcher/Views/OptionView.cs b/TrueCraft.Launcher/Views/OptionView.cs index 52d04ba..d62ed67 100644 --- a/TrueCraft.Launcher/Views/OptionView.cs +++ b/TrueCraft.Launcher/Views/OptionView.cs @@ -13,6 +13,9 @@ namespace TrueCraft.Launcher.Views public LauncherWindow Window { get; set; } public Label OptionLabel { get; set; } + public Label ResolutionLabel { get; set; } + public TextEntry WidthEntry { get; set; } + public TextEntry HeightEntry { get; set; } public Label TexturePackLabel { get; set; } public DataField TexturePackImageField { get; set; } public DataField TexturePackTextField { get; set; } @@ -37,6 +40,16 @@ namespace TrueCraft.Launcher.Views Font = Font.WithSize(16), TextAlignment = Alignment.Center }; + + ResolutionLabel = new Label("Set resolution..."); + WidthEntry = new TextEntry() { PlaceholderText = UserSettings.Local.Window.Width.ToString() }; + HeightEntry = new TextEntry() { PlaceholderText = UserSettings.Local.Window.Height.ToString() }; + + var resolutionHBox = new HBox(); + WidthEntry.WidthRequest = HeightEntry.WidthRequest = 0.5; + resolutionHBox.PackStart(WidthEntry, true); + resolutionHBox.PackStart(HeightEntry, true); + TexturePackLabel = new Label("Select a texture pack..."); TexturePackImageField = new DataField(); TexturePackTextField = new DataField(); @@ -54,6 +67,26 @@ namespace TrueCraft.Launcher.Views TexturePackListView.Columns.Add("Image", TexturePackImageField); TexturePackListView.Columns.Add("Text", TexturePackTextField); + WidthEntry.Changed += (sender, e) => + { + int value; + if (int.TryParse(WidthEntry.Text, out value)) + { + UserSettings.Local.Window.Width = value; + UserSettings.Local.Save(); + } + }; + + HeightEntry.Changed += (sender, e) => + { + int value; + if (int.TryParse(WidthEntry.Text, out value)) + { + UserSettings.Local.Window.Height = value; + UserSettings.Local.Save(); + } + }; + TexturePackListView.SelectionChanged += (sender, e) => { var texturePack = _texturePacks[TexturePackListView.SelectedRow]; @@ -79,6 +112,8 @@ namespace TrueCraft.Launcher.Views LoadTexturePacks(); this.PackStart(OptionLabel); + this.PackStart(ResolutionLabel); + this.PackStart(resolutionHBox); this.PackStart(TexturePackLabel); this.PackStart(TexturePackListView); this.PackStart(OpenFolderButton); From 5c3c035019795b7611007603099a58e514f2831a Mon Sep 17 00:00:00 2001 From: William Moorehouse Date: Wed, 17 Jun 2015 13:24:39 -0400 Subject: [PATCH 2/4] Fixes for client crashing when not run through the launcher --- TrueCraft.Client/Content/default-pack.png | Bin 0 -> 2743 bytes TrueCraft.Client/Content/default-pack.txt | 1 + TrueCraft.Client/Rendering/Mesh.cs | 4 ++-- TrueCraft.Client/TrueCraft.Client.csproj | 6 ++++++ TrueCraft.Core/TexturePack.cs | 2 +- 5 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 TrueCraft.Client/Content/default-pack.png create mode 100644 TrueCraft.Client/Content/default-pack.txt diff --git a/TrueCraft.Client/Content/default-pack.png b/TrueCraft.Client/Content/default-pack.png new file mode 100644 index 0000000000000000000000000000000000000000..cf893db4a22398b9d906512de47182124ead2f6e GIT binary patch literal 2743 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 literal 0 HcmV?d00001 diff --git a/TrueCraft.Client/Content/default-pack.txt b/TrueCraft.Client/Content/default-pack.txt new file mode 100644 index 0000000..b90cfbc --- /dev/null +++ b/TrueCraft.Client/Content/default-pack.txt @@ -0,0 +1 @@ +No description available. \ No newline at end of file diff --git a/TrueCraft.Client/Rendering/Mesh.cs b/TrueCraft.Client/Rendering/Mesh.cs index 91a8109..43d8cd8 100644 --- a/TrueCraft.Client/Rendering/Mesh.cs +++ b/TrueCraft.Client/Rendering/Mesh.cs @@ -38,7 +38,7 @@ namespace TrueCraft.Client.Rendering lock (_syncLock) { _vertices = new VertexBuffer(_graphicsDevice, VertexPositionNormalTexture.VertexDeclaration, - value.Length, BufferUsage.WriteOnly); + (value.Length + 1), BufferUsage.WriteOnly); _vertices.SetData(value); } @@ -119,7 +119,7 @@ namespace TrueCraft.Client.Rendering _indices[index].Dispose(); _indices[index] = new IndexBuffer(_graphicsDevice, typeof(int), - indices.Length, BufferUsage.WriteOnly); + (indices.Length + 1), BufferUsage.WriteOnly); _indices[index].SetData(indices); } } diff --git a/TrueCraft.Client/TrueCraft.Client.csproj b/TrueCraft.Client/TrueCraft.Client.csproj index 63564df..0be89e5 100644 --- a/TrueCraft.Client/TrueCraft.Client.csproj +++ b/TrueCraft.Client/TrueCraft.Client.csproj @@ -162,6 +162,12 @@ + + PreserveNewest + + + PreserveNewest + PreserveNewest diff --git a/TrueCraft.Core/TexturePack.cs b/TrueCraft.Core/TexturePack.cs index d5f4418..e9c735a 100644 --- a/TrueCraft.Core/TexturePack.cs +++ b/TrueCraft.Core/TexturePack.cs @@ -32,7 +32,7 @@ namespace TrueCraft.Core { get { - return System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), + return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".truecraft/texturepacks/"); } } From 9ad14273a480a3ab76506c49420ee8394c53f419 Mon Sep 17 00:00:00 2001 From: William Moorehouse Date: Wed, 17 Jun 2015 14:23:46 -0400 Subject: [PATCH 3/4] Changed resolution setting to a dropdown --- TrueCraft.Client/TrueCraftGame.cs | 4 +- TrueCraft.Core/UserSettings.cs | 39 +++++++++++++++--- TrueCraft.Launcher/Views/OptionView.cs | 55 +++++++++++++------------- 3 files changed, 64 insertions(+), 34 deletions(-) diff --git a/TrueCraft.Client/TrueCraftGame.cs b/TrueCraft.Client/TrueCraftGame.cs index d274c14..03ffb16 100644 --- a/TrueCraft.Client/TrueCraftGame.cs +++ b/TrueCraft.Client/TrueCraftGame.cs @@ -52,8 +52,8 @@ namespace TrueCraft.Client Content.RootDirectory = "Content"; Graphics = new GraphicsDeviceManager(this); Graphics.IsFullScreen = false; - Graphics.PreferredBackBufferWidth = UserSettings.Local.Window.Width; - Graphics.PreferredBackBufferHeight = UserSettings.Local.Window.Height; + Graphics.PreferredBackBufferWidth = UserSettings.Local.WindowResolution.Width; + Graphics.PreferredBackBufferHeight = UserSettings.Local.WindowResolution.Height; Client = client; EndPoint = endPoint; NextPhysicsUpdate = DateTime.MinValue; diff --git a/TrueCraft.Core/UserSettings.cs b/TrueCraft.Core/UserSettings.cs index 128e637..414f851 100644 --- a/TrueCraft.Core/UserSettings.cs +++ b/TrueCraft.Core/UserSettings.cs @@ -23,7 +23,7 @@ namespace TrueCraft.Core public string LastIP { get; set; } public string SelectedTexturePack { get; set; } public FavoriteServer[] FavoriteServers { get; set; } - public WindowParams Window { get; set; } + public WindowResolution WindowResolution { get; set; } public UserSettings() { @@ -33,9 +33,11 @@ namespace TrueCraft.Core LastIP = ""; SelectedTexturePack = TexturePack.Default.Name; FavoriteServers = new FavoriteServer[0]; - Window = new WindowParams(); - Window.Width = 1280; - Window.Height = 720; + WindowResolution = new WindowResolution() + { + Width = 1280, + Height = 720 + }; } public void Load() @@ -57,9 +59,36 @@ namespace TrueCraft.Core public string Address { get; set; } } - public class WindowParams + public class WindowResolution { + public static readonly WindowResolution[] Defaults = + new WindowResolution[] + { + // (from Wikipedia) + WindowResolution.FromString("800 x 600"), // SVGA + WindowResolution.FromString("960 x 640"), // DVGA + WindowResolution.FromString("1024 x 600"), // WSVGA + WindowResolution.FromString("1024 x 768"), // XGA + WindowResolution.FromString("1280 x 1024"), // SXGA + WindowResolution.FromString("1600 x 1200"), // UXGA + }; + + public static WindowResolution FromString(string str) + { + var tmp = str.Split('x'); + return new WindowResolution() + { + Width = int.Parse(tmp[0].Trim()), + Height = int.Parse(tmp[1].Trim()) + }; + } + public int Width { get; set; } public int Height { get; set; } + + public override string ToString() + { + return string.Format("{0} x {1}", Width, Height); + } } } \ No newline at end of file diff --git a/TrueCraft.Launcher/Views/OptionView.cs b/TrueCraft.Launcher/Views/OptionView.cs index d62ed67..e65d31a 100644 --- a/TrueCraft.Launcher/Views/OptionView.cs +++ b/TrueCraft.Launcher/Views/OptionView.cs @@ -14,8 +14,7 @@ namespace TrueCraft.Launcher.Views public Label OptionLabel { get; set; } public Label ResolutionLabel { get; set; } - public TextEntry WidthEntry { get; set; } - public TextEntry HeightEntry { get; set; } + public ComboBox ResolutionComboBox { get; set; } public Label TexturePackLabel { get; set; } public DataField TexturePackImageField { get; set; } public DataField TexturePackTextField { get; set; } @@ -41,14 +40,29 @@ namespace TrueCraft.Launcher.Views TextAlignment = Alignment.Center }; - ResolutionLabel = new Label("Set resolution..."); - WidthEntry = new TextEntry() { PlaceholderText = UserSettings.Local.Window.Width.ToString() }; - HeightEntry = new TextEntry() { PlaceholderText = UserSettings.Local.Window.Height.ToString() }; + ResolutionLabel = new Label("Select a resolution..."); + ResolutionComboBox = new ComboBox(); - var resolutionHBox = new HBox(); - WidthEntry.WidthRequest = HeightEntry.WidthRequest = 0.5; - resolutionHBox.PackStart(WidthEntry, true); - resolutionHBox.PackStart(HeightEntry, true); + int resolutionIndex = -1; + for (int i = 0; i < WindowResolution.Defaults.Length; i++) + { + ResolutionComboBox.Items.Add(WindowResolution.Defaults[i].ToString()); + + if (resolutionIndex == -1) + { + resolutionIndex = + ((WindowResolution.Defaults[i].Width == UserSettings.Local.WindowResolution.Width) && + (WindowResolution.Defaults[i].Height == UserSettings.Local.WindowResolution.Height)) ? i : -1; + } + } + + if (resolutionIndex == -1) + { + ResolutionComboBox.Items.Add(UserSettings.Local.WindowResolution.ToString()); + resolutionIndex = ResolutionComboBox.Items.Count - 1; + } + + ResolutionComboBox.SelectedIndex = resolutionIndex; TexturePackLabel = new Label("Select a texture pack..."); TexturePackImageField = new DataField(); @@ -67,24 +81,11 @@ namespace TrueCraft.Launcher.Views TexturePackListView.Columns.Add("Image", TexturePackImageField); TexturePackListView.Columns.Add("Text", TexturePackTextField); - WidthEntry.Changed += (sender, e) => + ResolutionComboBox.SelectionChanged += (sender, e) => { - int value; - if (int.TryParse(WidthEntry.Text, out value)) - { - UserSettings.Local.Window.Width = value; - UserSettings.Local.Save(); - } - }; - - HeightEntry.Changed += (sender, e) => - { - int value; - if (int.TryParse(WidthEntry.Text, out value)) - { - UserSettings.Local.Window.Height = value; - UserSettings.Local.Save(); - } + UserSettings.Local.WindowResolution = + WindowResolution.FromString(ResolutionComboBox.SelectedText); + UserSettings.Local.Save(); }; TexturePackListView.SelectionChanged += (sender, e) => @@ -113,7 +114,7 @@ namespace TrueCraft.Launcher.Views this.PackStart(OptionLabel); this.PackStart(ResolutionLabel); - this.PackStart(resolutionHBox); + this.PackStart(ResolutionComboBox); this.PackStart(TexturePackLabel); this.PackStart(TexturePackListView); this.PackStart(OpenFolderButton); From d5224f72c944fcff6bcda098b798a19ef4064371 Mon Sep 17 00:00:00 2001 From: William Moorehouse Date: Wed, 17 Jun 2015 15:03:06 -0400 Subject: [PATCH 4/4] Added more resolution options and fullscreen support --- TrueCraft.Client/TrueCraftGame.cs | 2 +- TrueCraft.Core/UserSettings.cs | 7 ++++++- TrueCraft.Launcher/Views/OptionView.cs | 13 +++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/TrueCraft.Client/TrueCraftGame.cs b/TrueCraft.Client/TrueCraftGame.cs index 03ffb16..b747325 100644 --- a/TrueCraft.Client/TrueCraftGame.cs +++ b/TrueCraft.Client/TrueCraftGame.cs @@ -51,7 +51,7 @@ namespace TrueCraft.Client Window.Title = "TrueCraft"; Content.RootDirectory = "Content"; Graphics = new GraphicsDeviceManager(this); - Graphics.IsFullScreen = false; + Graphics.IsFullScreen = UserSettings.Local.IsFullscreen; Graphics.PreferredBackBufferWidth = UserSettings.Local.WindowResolution.Width; Graphics.PreferredBackBufferHeight = UserSettings.Local.WindowResolution.Height; Client = client; diff --git a/TrueCraft.Core/UserSettings.cs b/TrueCraft.Core/UserSettings.cs index 414f851..8ead5d9 100644 --- a/TrueCraft.Core/UserSettings.cs +++ b/TrueCraft.Core/UserSettings.cs @@ -23,6 +23,7 @@ namespace TrueCraft.Core public string LastIP { get; set; } public string SelectedTexturePack { get; set; } public FavoriteServer[] FavoriteServers { get; set; } + public bool IsFullscreen { get; set; } public WindowResolution WindowResolution { get; set; } public UserSettings() @@ -33,6 +34,7 @@ namespace TrueCraft.Core LastIP = ""; SelectedTexturePack = TexturePack.Default.Name; FavoriteServers = new FavoriteServer[0]; + IsFullscreen = false; WindowResolution = new WindowResolution() { Width = 1280, @@ -64,13 +66,16 @@ namespace TrueCraft.Core public static readonly WindowResolution[] Defaults = new WindowResolution[] { - // (from Wikipedia) + // (from Wikipedia/other) WindowResolution.FromString("800 x 600"), // SVGA WindowResolution.FromString("960 x 640"), // DVGA WindowResolution.FromString("1024 x 600"), // WSVGA WindowResolution.FromString("1024 x 768"), // XGA WindowResolution.FromString("1280 x 1024"), // SXGA WindowResolution.FromString("1600 x 1200"), // UXGA + WindowResolution.FromString("1920 x 1080"), // big + WindowResolution.FromString("1920 x 1200"), // really big + WindowResolution.FromString("4096 x 2160"), // huge }; public static WindowResolution FromString(string str) diff --git a/TrueCraft.Launcher/Views/OptionView.cs b/TrueCraft.Launcher/Views/OptionView.cs index e65d31a..92d13b0 100644 --- a/TrueCraft.Launcher/Views/OptionView.cs +++ b/TrueCraft.Launcher/Views/OptionView.cs @@ -15,6 +15,7 @@ namespace TrueCraft.Launcher.Views public Label OptionLabel { get; set; } public Label ResolutionLabel { get; set; } public ComboBox ResolutionComboBox { get; set; } + public CheckBox FullscreenCheckBox { get; set; } public Label TexturePackLabel { get; set; } public DataField TexturePackImageField { get; set; } public DataField TexturePackTextField { get; set; } @@ -63,6 +64,11 @@ namespace TrueCraft.Launcher.Views } ResolutionComboBox.SelectedIndex = resolutionIndex; + FullscreenCheckBox = new CheckBox() + { + Label = "Fullscreen mode", + State = (UserSettings.Local.IsFullscreen) ? CheckBoxState.On : CheckBoxState.Off + }; TexturePackLabel = new Label("Select a texture pack..."); TexturePackImageField = new DataField(); @@ -88,6 +94,12 @@ namespace TrueCraft.Launcher.Views UserSettings.Local.Save(); }; + FullscreenCheckBox.Clicked += (sender, e) => + { + UserSettings.Local.IsFullscreen = !UserSettings.Local.IsFullscreen; + UserSettings.Local.Save(); + }; + TexturePackListView.SelectionChanged += (sender, e) => { var texturePack = _texturePacks[TexturePackListView.SelectedRow]; @@ -115,6 +127,7 @@ namespace TrueCraft.Launcher.Views this.PackStart(OptionLabel); this.PackStart(ResolutionLabel); this.PackStart(ResolutionComboBox); + this.PackStart(FullscreenCheckBox); this.PackStart(TexturePackLabel); this.PackStart(TexturePackListView); this.PackStart(OpenFolderButton);