Merge pull request #57 from PYRiTEmonark/main

Added new option to automatically collapse the Synth Helper window
This commit is contained in:
Asriel
2025-09-28 12:23:18 -07:00
committed by GitHub
3 changed files with 25 additions and 0 deletions
+1
View File
@@ -203,6 +203,7 @@ public partial class Configuration
public ProgressBarType ProgressType { get; set; } = ProgressBarType.Colorful;
public bool PinSynthHelperToWindow { get; set; } = true;
public bool CollapseSynthHelper { get; set; }
public bool PinRecipeNoteToWindow { get; set; } = true;
public MacroCopyConfiguration MacroCopy { get; set; } = new();
+9
View File
@@ -920,6 +920,15 @@ public sealed class Settings : Window, IDisposable
ref isDirty
);
DrawOption(
"Always Collapse Helper Window",
"Enabling this will cause the Helper Window to be collapsed whenever you start " +
"a new craft, preventing the solver from running automatically.",
Config.CollapseSynthHelper,
v => Config.CollapseSynthHelper = v,
ref isDirty
);
DrawOption(
"Automatically Suggest Macro",
"(Can cause frame drops!) When navigating to a new recipe or changing your gear " +
+15
View File
@@ -112,6 +112,11 @@ public sealed unsafe class SynthHelper : Window, IDisposable
private bool WasOpen { get; set; }
private bool WasCollapsed { get; set; }
/// <summary>
/// Used to automatically collapse the helper window when a new craft starts.
/// </summary>
private bool ShouldCollapse { get; set; }
private bool ShouldCalculate => !IsCollapsed && ShouldOpen;
private bool WasCalculatable { get; set; }
@@ -203,6 +208,8 @@ public sealed unsafe class SynthHelper : Window, IDisposable
{
OnStartCrafting(recipeId);
OnStateUpdated();
if (Service.Configuration.CollapseSynthHelper) ShouldCollapse = true;
}
if (IsRecalculateQueued)
@@ -266,6 +273,13 @@ public sealed unsafe class SynthHelper : Window, IDisposable
public override void Draw()
{
if (ShouldCollapse)
{
ImGui.SetWindowCollapsed(true);
ShouldCollapse = false;
}
IsCollapsed = false;
DrawMacro();
@@ -285,6 +299,7 @@ public sealed unsafe class SynthHelper : Window, IDisposable
private SimulationState? hoveredState;
private SimulationState DisplayedState => hoveredState ?? (Service.Configuration.SynthHelperDisplayOnlyFirstStep ? Macro.FirstState : Macro.State);
private void DrawMacro()
{
var spacing = ImGui.GetStyle().ItemSpacing.X;