Skip to content

Commit 00e8129

Browse files
committed
Refactor legality settings management
1 parent 0706914 commit 00e8129

3 files changed

Lines changed: 44 additions & 11 deletions

File tree

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using PKHeX.Core;
2+
3+
namespace TeraFinder.Core;
4+
5+
public static class LegalityUtil
6+
{
7+
public static LegalitySettings StoreLegalitySettings() => new()
8+
{
9+
CheckActiveHandler = ParseSettings.Settings.Handler.CheckActiveHandler,
10+
ZeroHeightWeight = ParseSettings.Settings.HOMETransfer.ZeroHeightWeight
11+
};
12+
13+
public static void SetDefaultlegalitySettings() => SetLegalitySettings(new()
14+
{
15+
CheckActiveHandler = false,
16+
ZeroHeightWeight = Severity.Fishy
17+
});
18+
19+
public static void SetLegalitySettings(LegalitySettings settings)
20+
{
21+
ParseSettings.Settings.Handler.CheckActiveHandler = settings.CheckActiveHandler;
22+
ParseSettings.Settings.HOMETransfer.ZeroHeightWeight = settings.ZeroHeightWeight;
23+
}
24+
25+
public struct LegalitySettings
26+
{
27+
public required bool CheckActiveHandler;
28+
public required Severity ZeroHeightWeight;
29+
}
30+
}

TeraFinder.Plugins/Utils/GridUtil.cs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -163,16 +163,18 @@ public static void SaveSelectedPk9(this DataGridView dataGrid, CalculatorForm f,
163163
{
164164
if (enc.CanBeCaught)
165165
{
166-
var checkActiveHandler = ParseSettings.Settings.Handler.CheckActiveHandler;
167-
ParseSettings.Settings.Handler.CheckActiveHandler = false;
166+
var settings = LegalityUtil.StoreLegalitySettings();
167+
LegalityUtil.SetDefaultlegalitySettings();
168+
168169
if (!enc.GeneratePK9(result.Value, id32, version, f.Editor.SAV.OT, f.Editor.SAV.Language, f.Editor.SAV.Gender, out var pk9, out var la))
169170
{
170171
var la_encounter = la.Results.Where(l => l.Identifier is CheckIdentifier.Encounter).FirstOrDefault();
171172
if (content is RaidContent.Event or RaidContent.Event_Mighty)
172173
MessageBox.Show($"{strings["GridUtil.ErrorParsing"]}\n{strings["GridUtil.MissingData"]} [{enc.Identifier}].\n{strings["GridUtil.CheckWiki"]}");
173174
else
174175
MessageBox.Show($"{strings["GridUtil.ErrorParsing"]} {strings["GridUtil.Report"]}\n{la.Report()}");
175-
ParseSettings.Settings.Handler.CheckActiveHandler = checkActiveHandler;
176+
177+
LegalityUtil.SetLegalitySettings(settings);
176178
return;
177179
}
178180

@@ -199,7 +201,7 @@ public static void SaveSelectedPk9(this DataGridView dataGrid, CalculatorForm f,
199201
MessageBox.Show($"{strings["GridUtil.Exported"]} {sfd.FileName}");
200202
}
201203

202-
ParseSettings.Settings.Handler.CheckActiveHandler = checkActiveHandler;
204+
LegalityUtil.SetLegalitySettings(settings);
203205
}
204206
else
205207
{
@@ -383,8 +385,9 @@ public static void SendSelectedPk9Editor(this DataGridView dataGrid, CalculatorF
383385
var id32 = TidUtil.GetID32(Convert.ToUInt32(f.txtTID.Text, 10), Convert.ToUInt32(f.txtSID.Text, 10));
384386

385387
var encounters = f.Editor.GetCurrentEncounters(content, map);
386-
var checkActiveHandler = ParseSettings.Settings.Handler.CheckActiveHandler;
387-
ParseSettings.Settings.Handler.CheckActiveHandler = false;
388+
389+
var settings = LegalityUtil.StoreLegalitySettings();
390+
LegalityUtil.SetDefaultlegalitySettings();
388391

389392
if (EncounterRaidTF9.TryGenerateTeraDetails(seed, encounters, version, progress, eventProgress, content, map, id32, groupid, out var enc, out var result))
390393
{
@@ -398,11 +401,11 @@ public static void SendSelectedPk9Editor(this DataGridView dataGrid, CalculatorF
398401
else
399402
MessageBox.Show($"{strings["GridUtil.ErrorParsing"]} {strings["GridUtil.Report"]}\n{la.Report()}");
400403

401-
ParseSettings.Settings.Handler.CheckActiveHandler = checkActiveHandler;
404+
LegalityUtil.SetLegalitySettings(settings);
402405
return;
403406
}
404407

405-
ParseSettings.Settings.Handler.CheckActiveHandler = checkActiveHandler;
408+
LegalityUtil.SetLegalitySettings(settings);
406409
f.Editor.PKMEditor!.PopulateFields(pk9!, true);
407410
}
408411
else

TeraFinder.Tests/GenerateEntities.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class GenerateEntities
1313
[Fact]
1414
public void TestEncounterTeraTF9Standard()
1515
{
16-
ParseSettings.Settings.Handler.CheckActiveHandler = false;
16+
LegalityUtil.SetDefaultlegalitySettings();
1717
for (var map = TeraRaidMapParent.Paldea; map <= TeraRaidMapParent.Blueberry; map++)
1818
{
1919
var encounters = ResourcesUtil.GetAllTeraEncounters(map).standard;
@@ -26,7 +26,7 @@ public void TestEncounterTeraTF9Standard()
2626
[Fact]
2727
public void TestEncounterTeraTF9Black()
2828
{
29-
ParseSettings.Settings.Handler.CheckActiveHandler = false;
29+
LegalityUtil.SetDefaultlegalitySettings();
3030
for (var map = TeraRaidMapParent.Paldea; map <= TeraRaidMapParent.Blueberry; map++)
3131
{
3232
var encounters = ResourcesUtil.GetAllTeraEncounters(map).black;
@@ -38,7 +38,7 @@ public void TestEncounterTeraTF9Black()
3838
[Fact]
3939
public void TestEncounterEventTF9()
4040
{
41-
ParseSettings.Settings.Handler.CheckActiveHandler = false;
41+
LegalityUtil.SetDefaultlegalitySettings();
4242
var (eventsData, mightyData) = ResourcesUtil.GetAllEventEncounters();
4343
var events = SeedCheckerUtil.GroupEventEncounters(eventsData);
4444
var mighty = SeedCheckerUtil.GroupEventEncounters(mightyData);

0 commit comments

Comments
 (0)