Fix Observe action spamming

This commit is contained in:
Asriel Camora
2023-12-14 18:46:10 -08:00
parent 3d056b7794
commit dfe014df34
2 changed files with 2 additions and 11 deletions
+1 -1
View File
@@ -225,7 +225,7 @@ public sealed class Solver : IDisposable
} }
if (definiteCount != equalCount) if (definiteCount != equalCount)
{ {
foreach(var action in refActions.Take(equalCount).Skip(definiteCount)) foreach (var action in refActions.Take(equalCount).Skip(definiteCount))
InvokeNewAction(action); InvokeNewAction(action);
definiteActionCount = equalCount; definiteActionCount = equalCount;
+1 -10
View File
@@ -6,7 +6,7 @@ namespace Craftimizer.Solver;
public readonly record struct SolverSolution { public readonly record struct SolverSolution {
private readonly List<ActionType> actions = null!; private readonly List<ActionType> actions = null!;
public readonly IReadOnlyList<ActionType> Actions { get => actions; init => ActionEnumerable = value; } public readonly IReadOnlyList<ActionType> Actions { get => actions; init => ActionEnumerable = value; }
public readonly IEnumerable<ActionType> ActionEnumerable { init => actions = SanitizeCombos(value).ToList(); } public readonly IEnumerable<ActionType> ActionEnumerable { init => actions = value.ToList(); }
public readonly SimulationState State { get; init; } public readonly SimulationState State { get; init; }
public SolverSolution(IEnumerable<ActionType> actions, in SimulationState state) public SolverSolution(IEnumerable<ActionType> actions, in SimulationState state)
@@ -33,13 +33,4 @@ public readonly record struct SolverSolution {
else else
yield return action; yield return action;
} }
internal static IEnumerable<ActionType> SanitizeCombos(IEnumerable<ActionType> actions)
{
foreach (var action in actions)
{
foreach (var sanitizedAction in SanitizeCombo(action))
yield return sanitizedAction;
}
}
} }