mirror of
https://github.com/bloxstraplabs/bloxstrap.git
synced 2025-04-21 10:01:27 -07:00
Add debug flags, fix mod preset bug
This commit is contained in:
parent
258746f5fa
commit
d8842cc0cc
@ -1110,22 +1110,26 @@ namespace Bloxstrap
|
|||||||
private static async Task CheckModPreset(bool condition, string location, string name)
|
private static async Task CheckModPreset(bool condition, string location, string name)
|
||||||
{
|
{
|
||||||
string fullLocation = Path.Combine(Directories.Modifications, location);
|
string fullLocation = Path.Combine(Directories.Modifications, location);
|
||||||
byte[] embeddedData = string.IsNullOrEmpty(name) ? Array.Empty<byte>() : await Resource.Get(name);
|
|
||||||
|
|
||||||
string fileHash = File.Exists(fullLocation) ? Utility.MD5Hash.FromFile(fullLocation) : "";
|
string fileHash = File.Exists(fullLocation) ? Utility.MD5Hash.FromFile(fullLocation) : "";
|
||||||
|
|
||||||
|
if (!condition)
|
||||||
|
{
|
||||||
|
if (fileHash != "")
|
||||||
|
File.Delete(fullLocation);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] embeddedData = string.IsNullOrEmpty(name) ? Array.Empty<byte>() : await Resource.Get(name);
|
||||||
string embeddedHash = Utility.MD5Hash.FromBytes(embeddedData);
|
string embeddedHash = Utility.MD5Hash.FromBytes(embeddedData);
|
||||||
|
|
||||||
if (condition && fileHash != embeddedHash)
|
if (fileHash != embeddedHash)
|
||||||
{
|
{
|
||||||
Directory.CreateDirectory(Path.GetDirectoryName(fullLocation)!);
|
Directory.CreateDirectory(Path.GetDirectoryName(fullLocation)!);
|
||||||
File.Delete(fullLocation);
|
File.Delete(fullLocation);
|
||||||
|
|
||||||
await File.WriteAllBytesAsync(fullLocation, embeddedData);
|
await File.WriteAllBytesAsync(fullLocation, embeddedData);
|
||||||
}
|
}
|
||||||
else if (!condition && fileHash != "")
|
|
||||||
{
|
|
||||||
File.Delete(fullLocation);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task DownloadPackage(Package package)
|
private async Task DownloadPackage(Package package)
|
||||||
|
@ -9,8 +9,8 @@ namespace Bloxstrap.Extensions
|
|||||||
public static IReadOnlyDictionary<string, CursorType> Selections => new Dictionary<string, CursorType>
|
public static IReadOnlyDictionary<string, CursorType> Selections => new Dictionary<string, CursorType>
|
||||||
{
|
{
|
||||||
{ "Default", CursorType.Default },
|
{ "Default", CursorType.Default },
|
||||||
{ "Before 2022", CursorType.From2013 },
|
{ "2013 - 2022", CursorType.From2013 },
|
||||||
{ "Before 2013", CursorType.From2006 },
|
{ "2006 - 2013", CursorType.From2006 },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ namespace Bloxstrap.Models
|
|||||||
public bool CheckForUpdates { get; set; } = true;
|
public bool CheckForUpdates { get; set; } = true;
|
||||||
public bool CreateDesktopIcon { get; set; } = true;
|
public bool CreateDesktopIcon { get; set; } = true;
|
||||||
public bool MultiInstanceLaunching { get; set; } = false;
|
public bool MultiInstanceLaunching { get; set; } = false;
|
||||||
|
public bool OhHeyYouFoundMe { get; set; } = false;
|
||||||
|
|
||||||
// channel configuration
|
// channel configuration
|
||||||
public string Channel { get; set; } = RobloxDeployment.DefaultChannel;
|
public string Channel { get; set; } = RobloxDeployment.DefaultChannel;
|
||||||
|
@ -41,6 +41,37 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ui:CardAction>
|
</ui:CardAction>
|
||||||
|
|
||||||
|
<StackPanel Visibility="{Binding ShowDebugFlags, Mode=OneTime}">
|
||||||
|
<TextBlock Text="Debug" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" />
|
||||||
|
<ui:CardControl Margin="0,8,0,0">
|
||||||
|
<ui:CardControl.Header>
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock FontSize="14" Text="HTTP request logging" />
|
||||||
|
<TextBlock Margin="0,2,0,0" FontSize="12" Text="Enables logging of HTTP requests (DFLogHttpTraceLight=12)." Foreground="{DynamicResource TextFillColorTertiaryBrush}" />
|
||||||
|
</StackPanel>
|
||||||
|
</ui:CardControl.Header>
|
||||||
|
<ui:ToggleSwitch IsChecked="{Binding HttpRequestLogging, Mode=TwoWay}" />
|
||||||
|
</ui:CardControl>
|
||||||
|
<ui:CardControl Margin="0,8,0,0">
|
||||||
|
<ui:CardControl.Header>
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock FontSize="14" Text="HTTP proxy address" />
|
||||||
|
<TextBlock Margin="0,2,0,0" FontSize="12" Text="Set blank if not using a proxy. Don't forget to add cacert.pem as a mod." Foreground="{DynamicResource TextFillColorTertiaryBrush}" />
|
||||||
|
</StackPanel>
|
||||||
|
</ui:CardControl.Header>
|
||||||
|
<ui:TextBox Margin="5,0,0,0" Padding="10,5,10,5" Width="200" Text="{Binding HttpRequestProxy, Mode=TwoWay}" />
|
||||||
|
</ui:CardControl>
|
||||||
|
<ui:CardControl Margin="0,8,0,0">
|
||||||
|
<ui:CardControl.Header>
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock FontSize="14" Text="Flag state overlay" />
|
||||||
|
<TextBlock Margin="0,2,0,0" FontSize="12" Text="Show values of specified flags during runtime. Each flag is comma separated." Foreground="{DynamicResource TextFillColorTertiaryBrush}" />
|
||||||
|
</StackPanel>
|
||||||
|
</ui:CardControl.Header>
|
||||||
|
<ui:TextBox Margin="5,0,0,0" Padding="10,5,10,5" Width="200" Text="{Binding StateOverlayFlags, Mode=TwoWay}" />
|
||||||
|
</ui:CardControl>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
<TextBlock Text="Presets" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" />
|
<TextBlock Text="Presets" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" />
|
||||||
<ui:CardControl Margin="0,8,0,0">
|
<ui:CardControl Margin="0,8,0,0">
|
||||||
<ui:CardControl.Header>
|
<ui:CardControl.Header>
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Windows;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
@ -16,6 +19,42 @@ namespace Bloxstrap.UI.ViewModels.Menu
|
|||||||
|
|
||||||
private void OpenClientSettings() => Utilities.ShellExecute(Path.Combine(Directories.Modifications, "ClientSettings\\ClientAppSettings.json"));
|
private void OpenClientSettings() => Utilities.ShellExecute(Path.Combine(Directories.Modifications, "ClientSettings\\ClientAppSettings.json"));
|
||||||
|
|
||||||
|
public Visibility ShowDebugFlags => App.Settings.Prop.OhHeyYouFoundMe ? Visibility.Visible : Visibility.Collapsed;
|
||||||
|
|
||||||
|
public bool HttpRequestLogging
|
||||||
|
{
|
||||||
|
get => App.FastFlags.GetValue("DFLogHttpTraceLight") is not null;
|
||||||
|
set => App.FastFlags.SetValue("DFLogHttpTraceLight", value ? 12 : null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string HttpRequestProxy
|
||||||
|
{
|
||||||
|
get => App.FastFlags.GetValue("DFStringDebugPlayerHttpProxyUrl") ?? "";
|
||||||
|
|
||||||
|
set
|
||||||
|
{
|
||||||
|
bool? boolValue = null;
|
||||||
|
string? stringValue = null;
|
||||||
|
|
||||||
|
if (!String.IsNullOrEmpty(value))
|
||||||
|
{
|
||||||
|
boolValue = true;
|
||||||
|
stringValue = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
App.FastFlags.SetValue("DFFlagDebugEnableHttpProxy", boolValue);
|
||||||
|
App.FastFlags.SetValue("DFStringDebugPlayerHttpProxyUrl", stringValue);
|
||||||
|
App.FastFlags.SetValue("DFStringHttpCurlProxyHostAndPort", stringValue);
|
||||||
|
App.FastFlags.SetValue("DFStringHttpCurlProxyHostAndPortForExternalUrl", stringValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string StateOverlayFlags
|
||||||
|
{
|
||||||
|
get => App.FastFlags.GetValue("FStringDebugShowFlagState") ?? "";
|
||||||
|
set => App.FastFlags.SetValue("FStringDebugShowFlagState", String.IsNullOrEmpty(value) ? null : value);
|
||||||
|
}
|
||||||
|
|
||||||
public int FramerateLimit
|
public int FramerateLimit
|
||||||
{
|
{
|
||||||
get => int.TryParse(App.FastFlags.GetValue("DFIntTaskSchedulerTargetFps"), out int x) ? x : 60;
|
get => int.TryParse(App.FastFlags.GetValue("DFIntTaskSchedulerTargetFps"), out int x) ? x : 60;
|
||||||
@ -111,18 +150,18 @@ namespace Bloxstrap.UI.ViewModels.Menu
|
|||||||
return mode.Key;
|
return mode.Key;
|
||||||
}
|
}
|
||||||
|
|
||||||
return "Automatic";
|
return LightingTechnologies.First().Key;
|
||||||
}
|
}
|
||||||
|
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
foreach (var mode in LightingTechnologies)
|
foreach (var mode in LightingTechnologies)
|
||||||
{
|
{
|
||||||
if (mode.Key != "Automatic")
|
if (mode.Key != LightingTechnologies.First().Key)
|
||||||
App.FastFlags.SetValue(mode.Value, null);
|
App.FastFlags.SetValue(mode.Value, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value != "Automatic")
|
if (value != LightingTechnologies.First().Key)
|
||||||
App.FastFlags.SetValue(LightingTechnologies[value], "True");
|
App.FastFlags.SetValue(LightingTechnologies[value], "True");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user