From 02b0159b5b67ccb0945431634dd11be9707998e7 Mon Sep 17 00:00:00 2001 From: cadon Date: Wed, 10 Jan 2024 23:49:24 +0100 Subject: [PATCH 01/29] fix out of range exception for unused stats (fixes #1337) --- ARKBreedingStats/Form1.extractor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ARKBreedingStats/Form1.extractor.cs b/ARKBreedingStats/Form1.extractor.cs index 31a17458..c2b1ed5d 100644 --- a/ARKBreedingStats/Form1.extractor.cs +++ b/ARKBreedingStats/Form1.extractor.cs @@ -414,7 +414,7 @@ private bool ExtractLevels(bool autoExtraction = false, bool statInputsHighPreci int domLevelsChosenSum = 0; for (int s = 0; s < Stats.StatsCount; s++) { - if (s != Stats.Torpidity) + if (s != Stats.Torpidity && _extractor.Results[s].Any()) domLevelsChosenSum += _extractor.Results[s][_extractor.ChosenResults[s]].levelDom; } if (domLevelsChosenSum != _extractor.LevelDomSum) From 76ccbc5f63dd5d552dba92bc127be916b6b27037 Mon Sep 17 00:00:00 2001 From: cadon Date: Thu, 11 Jan 2024 00:23:59 +0100 Subject: [PATCH 02/29] added undefined color id for ASA 255 --- ARKBreedingStats/Ark.cs | 18 +++++++++++++++++- ARKBreedingStats/library/CreatureCollection.cs | 2 ++ ARKBreedingStats/uiControls/MyColorPicker.cs | 12 ++++++++---- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/ARKBreedingStats/Ark.cs b/ARKBreedingStats/Ark.cs index 70dc623e..ec557a32 100644 --- a/ARKBreedingStats/Ark.cs +++ b/ARKBreedingStats/Ark.cs @@ -91,10 +91,26 @@ public static class Ark public const byte ColorFirstId = 1; public const byte DyeFirstIdASE = 201; public const byte DyeMaxId = 255; + + /// + /// When choosing a random color for a mutation, ARK can erroneously select an undefined color. For ASE that's the color id 227 (one too high to be defined). + /// + public const byte UndefinedColorIdAse = 227; + + /// + /// When choosing a random color for a mutation, ARK can erroneously select an undefined color. For ASA that's the color id 255 (one too high to be defined). + /// + public const byte UndefinedColorIdAsa = 255; + /// /// When choosing a random color for a mutation, ARK can erroneously select an undefined color. Usually this is color id 227 (one too high to be defined). /// - public const byte UndefinedColorId = 227; + public static byte UndefinedColorId = UndefinedColorIdAse; + + /// + /// Sets the undefined color id to the one of ASE or ASA. + /// + public static void SetUndefinedColorId(bool asa) => UndefinedColorId = asa ? UndefinedColorIdAsa : UndefinedColorIdAse; /// /// Number of possible color regions for all species. diff --git a/ARKBreedingStats/library/CreatureCollection.cs b/ARKBreedingStats/library/CreatureCollection.cs index f7ef4908..4ec8be9b 100644 --- a/ARKBreedingStats/library/CreatureCollection.cs +++ b/ARKBreedingStats/library/CreatureCollection.cs @@ -620,6 +620,7 @@ public string Game switch (value) { case Ark.Asa: + Ark.SetUndefinedColorId(true); if (modIDs == null) modIDs = new List(); if (!modIDs.Contains(Ark.Asa)) { @@ -629,6 +630,7 @@ public string Game break; default: // non ASA + Ark.SetUndefinedColorId(false); if (modIDs == null) return; ModList.RemoveAll(m => m.id == Ark.Asa); if (modIDs.Remove(Ark.Asa)) diff --git a/ARKBreedingStats/uiControls/MyColorPicker.cs b/ARKBreedingStats/uiControls/MyColorPicker.cs index fbd86582..2cc3edbc 100644 --- a/ARKBreedingStats/uiControls/MyColorPicker.cs +++ b/ARKBreedingStats/uiControls/MyColorPicker.cs @@ -29,10 +29,7 @@ public MyColorPicker() BtNoColor.Text = Loc.S("noColor"); LbAlternativeColor.Text = Loc.S("LbAlternativeColor"); _tt.SetToolTip(BtNoColor, "0: no color"); - - BtUndefinedColor.Tag = Ark.UndefinedColorId; // one possible id of undefined color, currently used by Ark - _tt.SetToolTip(BtUndefinedColor, $"{Ark.UndefinedColorId}: undefined color"); - + SetUndefinedColorId(); buttonCancel.Text = Loc.S("Cancel"); Disposed += MyColorPicker_Disposed; @@ -48,6 +45,12 @@ private void MyColorPicker_Disposed(object sender, EventArgs e) _tt.Dispose(); } + public void SetUndefinedColorId() + { + BtUndefinedColor.Tag = Ark.UndefinedColorId; // one possible id of undefined color, currently used by Ark + _tt.SetToolTip(BtUndefinedColor, $"{Ark.UndefinedColorId}: undefined color"); + } + /// /// Clears color buttons. Call if color definitions changed, e.g. when a mod with colors is loaded or unloaded. /// @@ -60,6 +63,7 @@ private void ResetColors() c.Dispose(); } flowLayoutPanel1.Controls.Clear(); + SetUndefinedColorId(); } public void PickColor(byte selectedColorId, string headerText, List naturalColors = null, byte selectedColorIdAlternative = 0) From 7cc928d592746d271efe21cd6e97380546bfb827 Mon Sep 17 00:00:00 2001 From: cadon Date: Fri, 12 Jan 2024 20:06:24 +0100 Subject: [PATCH 03/29] fix for default speed imprinting overriding custom values when mods update species --- ARKBreedingStats/species/Species.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ARKBreedingStats/species/Species.cs b/ARKBreedingStats/species/Species.cs index 658ccaac..47051e22 100644 --- a/ARKBreedingStats/species/Species.cs +++ b/ARKBreedingStats/species/Species.cs @@ -107,7 +107,7 @@ public class Species /// /// The used multipliers for each stat applied to the imprinting-bonus, affected by custom overrides and global leveling settings. - /// + /// public double[] StatImprintMultipliers; [JsonProperty] @@ -436,7 +436,7 @@ public void LoadOverrides(Species overrides) if (overrides.DisplayedStats != 0) DisplayedStats = overrides.DisplayedStats; if (overrides.skipWildLevelStats != 0) skipWildLevelStats = overrides.skipWildLevelStats; if (overrides.TamedBaseHealthMultiplier != null) TamedBaseHealthMultiplier = overrides.TamedBaseHealthMultiplier; - if (overrides.statImprintMult != null) statImprintMult = overrides.statImprintMult.ToArray(); + if (overrides.statImprintMult != null && overrides.statImprintMult != StatImprintMultipliersDefaultAse) statImprintMult = overrides.statImprintMult.ToArray(); if (overrides.mutationMult != null) mutationMult = overrides.mutationMult; if (overrides.colors != null) colors = overrides.colors; if (overrides.taming != null) taming = overrides.taming; From c7feaabcab273fd2d46689f6dea1b1e844d8993a Mon Sep 17 00:00:00 2001 From: cadon Date: Fri, 12 Jan 2024 20:06:43 +0100 Subject: [PATCH 04/29] fix to correctly set speed level when chosing a combination --- ARKBreedingStats/Form1.extractor.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ARKBreedingStats/Form1.extractor.cs b/ARKBreedingStats/Form1.extractor.cs index c2b1ed5d..2a1d58f0 100644 --- a/ARKBreedingStats/Form1.extractor.cs +++ b/ARKBreedingStats/Form1.extractor.cs @@ -762,17 +762,18 @@ private void SetLevelCombination(int s, int i, bool validateCombination = false) /// private void SetWildUnknownLevelsAccordingToOthers() { + var species = speciesSelector1.SelectedSpecies; // wild speed level is wildTotalLevels - determinedWildLevels. sometimes the oxygen level cannot be determined as well var unknownLevelIndices = new List(); int notDeterminedLevels = _statIOs[Stats.Torpidity].LevelWild; for (int s = 0; s < Stats.StatsCount; s++) { - if (s == Stats.Torpidity || !speciesSelector1.SelectedSpecies.UsesStat(s)) + if (s == Stats.Torpidity || !species.UsesStat(s)) { continue; } - if (_statIOs[s].LevelWild < 0) + if (_statIOs[s].LevelWild < 0 || species.stats[s].IncPerWildLevel == 0) { unknownLevelIndices.Add(s); continue; From bc86adc1de1976bb08788855800bb3cfd7f8da1a Mon Sep 17 00:00:00 2001 From: cadon Date: Sat, 13 Jan 2024 19:35:49 +0100 Subject: [PATCH 05/29] try to reconnect to AsbServer if there's an exception --- ARKBreedingStats/ARKBreedingStats.csproj | 1 + ARKBreedingStats/AsbServer/Connection.cs | 133 ++++++++++-------- .../AsbServer/ProgressReportAsbServer.cs | 15 ++ ARKBreedingStats/FileService.cs | 2 +- ARKBreedingStats/Form1.collection.cs | 30 ++-- ARKBreedingStats/Form1.cs | 14 +- 6 files changed, 117 insertions(+), 78 deletions(-) create mode 100644 ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs diff --git a/ARKBreedingStats/ARKBreedingStats.csproj b/ARKBreedingStats/ARKBreedingStats.csproj index b0efff1c..38e83bca 100644 --- a/ARKBreedingStats/ARKBreedingStats.csproj +++ b/ARKBreedingStats/ARKBreedingStats.csproj @@ -84,6 +84,7 @@ + diff --git a/ARKBreedingStats/AsbServer/Connection.cs b/ARKBreedingStats/AsbServer/Connection.cs index 40a49a0c..e1a19bd1 100644 --- a/ARKBreedingStats/AsbServer/Connection.cs +++ b/ARKBreedingStats/AsbServer/Connection.cs @@ -1,13 +1,12 @@ using System; using System.IO; using System.Linq; -using System.Net; using System.Net.Http; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; -using System.Xml; +using System.Windows.Forms; using ARKBreedingStats.importExportGun; using ARKBreedingStats.Library; using Newtonsoft.Json.Linq; @@ -24,7 +23,7 @@ internal static class Connection private static SimpleCancellationToken _lastCancellationToken; public static async void StartListeningAsync( - IProgress<(string jsonText, string serverHash, string message)> progressDataSent, string token = null) + IProgress progressDataSent, string token = null) { if (string.IsNullOrEmpty(token)) return; @@ -33,71 +32,90 @@ public static async void StartListeningAsync( var cancellationToken = new SimpleCancellationToken(); _lastCancellationToken = cancellationToken; - var requestUri = ApiUri + "listen/" + token; // "https://httpstat.us/429"; + var reconnectTries = 0; - try + while (!cancellationToken.IsCancellationRequested) { - var client = FileService.GetHttpClient; - using (var response = await client.GetAsync(requestUri, HttpCompletionOption.ResponseHeadersRead)) + var requestUri = ApiUri + "listen/" + token; // "https://httpstat.us/429"; + + try { - if (!response.IsSuccessStatusCode) + var client = FileService.GetHttpClient; + using (var response = await client.GetAsync(requestUri, HttpCompletionOption.ResponseHeadersRead)) { - var statusCode = (int)response.StatusCode; - string serverMessage = await response.Content.ReadAsStringAsync(); - - try - { - serverMessage = JObject.Parse(serverMessage).SelectToken("error.message").ToString(); - } - catch + if (!response.IsSuccessStatusCode) { - // server message in unknown format, use raw content string + var statusCode = (int)response.StatusCode; + string serverMessage = await response.Content.ReadAsStringAsync(); + + try + { + serverMessage = JObject.Parse(serverMessage).SelectToken("error.message").ToString(); + } + catch + { + // server message in unknown format, use raw content string + } + + serverMessage = Environment.NewLine + serverMessage; + + switch (statusCode) + { + case 400: // Bad Request + WriteErrorMessage($"Something went wrong with the server connection.{serverMessage}", + response); + return; + case 429: // Too Many Requests + WriteErrorMessage( + $"The server is currently at the rate limit and cannot process the request. Try again later.{serverMessage}", + response); + return; + case 507: // Insufficient Storage + WriteErrorMessage($"Too many connections to the server. Try again later.{serverMessage}", + response); + return; + default: + var errorMessage = statusCode >= 500 + ? "Something went wrong with the server or its proxy." + Environment.NewLine + : null; + WriteErrorMessage($"{errorMessage}{serverMessage}", response); + return; + } } - serverMessage = Environment.NewLine + serverMessage; + reconnectTries = 0; - switch (statusCode) + using (var stream = await response.Content.ReadAsStreamAsync()) + using (var reader = new StreamReader(stream)) { - case 400: // Bad Request - WriteMessage($"Something went wrong with the server connection.{serverMessage}", response); - return; - case 429: // Too Many Requests - WriteMessage($"The server is currently at the rate limit and cannot process the request. Try again later.{serverMessage}", response); - return; - case 507: // Insufficient Storage - WriteMessage($"Too many connections to the server. Try again later.{serverMessage}", response); - return; - default: - var errorMessage = statusCode >= 500 - ? "Something went wrong with the server or its proxy." + Environment.NewLine - : null; - WriteMessage($"{errorMessage}{serverMessage}", response); - return; + await ReadServerSentEvents(reader, progressDataSent, token, cancellationToken); } } + } + catch (Exception ex) + { + var tryToReconnect = reconnectTries++ < 3; + WriteErrorMessage( + $"ASB Server listening {ex.GetType()}: {ex.Message}{Environment.NewLine}{(tryToReconnect ? "Trying to reconnect" + Environment.NewLine : string.Empty)}Stack trace: {ex.StackTrace}", + stopListening: !tryToReconnect); - using (var stream = await response.Content.ReadAsStreamAsync()) - using (var reader = new StreamReader(stream)) - { - await ReadServerSentEvents(reader, progressDataSent, token, cancellationToken); - } + if (!tryToReconnect) + break; + // try to reconnect after some time + Thread.Sleep(1000); } - } - catch (Exception ex) - { - WriteMessage($"ASB Server listening exception:\n{ex.Message}\n\nStack trace:\n{ex.StackTrace}"); - } - finally - { + finally + { #if DEBUG - Console.WriteLine($"ASB Server listening stopped using token: {token}"); + Console.WriteLine($"ASB Server listening stopped using token: {token}"); #endif + } } return; // Displays an error message in the UI, also logs on the console if in debug mode - void WriteMessage(string message, HttpResponseMessage response = null) + void WriteErrorMessage(string message, HttpResponseMessage response = null, bool stopListening = true) { if (response != null) { @@ -106,17 +124,19 @@ void WriteMessage(string message, HttpResponseMessage response = null) #if DEBUG Console.WriteLine(message); #endif - progressDataSent.Report((null, null, message)); + progressDataSent.Report(new ProgressReportAsbServer { Message = message, StopListening = stopListening, IsError = true }); } } private static Regex _eventRegex = new Regex(@"^event: (welcome|ping|replaced|export|server|closing)(?: (\-?\d+))?(?:\ndata:\s(.+))?$"); - private static async Task ReadServerSentEvents(StreamReader reader, IProgress<(string jsonText, string serverHash, string message)> progressDataSent, string token, SimpleCancellationToken cancellationToken) + private static async Task ReadServerSentEvents(StreamReader reader, IProgress progressDataSent, string token, SimpleCancellationToken cancellationToken) { #if DEBUG Console.WriteLine($"Now listening using token: {token}"); #endif + progressDataSent.Report(new ProgressReportAsbServer { Message = $"Now listening to the export server using the token (also copied to clipboard){Environment.NewLine}{token}", ClipboardText = token }); + while (!cancellationToken.IsCancellationRequested) { var received = await reader.ReadLineAsync(); @@ -134,14 +154,14 @@ private static async Task ReadServerSentEvents(StreamReader reader, IProgress<(s continue; case "event: replaced": if (!cancellationToken.IsCancellationRequested) - progressDataSent.Report((null, null, - "ASB Server listening stopped. Connection used by a different user")); + progressDataSent.Report(new ProgressReportAsbServer + { Message = "ASB Server listening stopped. Connection used by a different user", StopListening = true, IsError = true }); return; case "event: closing": // only report closing if the user hasn't done this already if (!cancellationToken.IsCancellationRequested) - progressDataSent.Report((null, null, - "ASB Server listening stopped. Connection closed by the server")); + progressDataSent.Report(new ProgressReportAsbServer + { Message = "ASB Server listening stopped. Connection closed by the server", StopListening = true, IsError = true }); return; } @@ -160,10 +180,11 @@ private static async Task ReadServerSentEvents(StreamReader reader, IProgress<(s switch (m.Groups[1].Value) { case "export": - progressDataSent.Report((m.Groups[3].Value, null, null)); + progressDataSent.Report(new ProgressReportAsbServer { JsonText = m.Groups[3].Value }); + throw new IOException("test"); break; case "server": - progressDataSent.Report((m.Groups[3].Value, m.Groups[2].Value, null)); + progressDataSent.Report(new ProgressReportAsbServer { JsonText = m.Groups[3].Value, ServerHash = m.Groups[2].Value }); break; } } diff --git a/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs b/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs new file mode 100644 index 00000000..508d3338 --- /dev/null +++ b/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs @@ -0,0 +1,15 @@ +namespace ARKBreedingStats.AsbServer +{ + /// + /// Info of progress reports while listening to an AsbServer. + /// + internal struct ProgressReportAsbServer + { + public string JsonText; + public string ServerHash; + public string Message; + public bool IsError; + public bool StopListening; + public string ClipboardText; + } +} diff --git a/ARKBreedingStats/FileService.cs b/ARKBreedingStats/FileService.cs index c46b620b..405e705c 100644 --- a/ARKBreedingStats/FileService.cs +++ b/ARKBreedingStats/FileService.cs @@ -285,7 +285,7 @@ internal static bool IsValidJsonFile(string filePath) private static HttpClient _httpClient; /// - /// Returns a static HttpClient. It's apparently better to reuse on object per app only. + /// Returns a static HttpClient. It's apparently better to reuse one object per app only. /// public static HttpClient GetHttpClient { diff --git a/ARKBreedingStats/Form1.collection.cs b/ARKBreedingStats/Form1.collection.cs index c938fc06..90214df8 100644 --- a/ARKBreedingStats/Form1.collection.cs +++ b/ARKBreedingStats/Form1.collection.cs @@ -15,6 +15,8 @@ using ARKBreedingStats.importExportGun; using ARKBreedingStats.uiControls; using ARKBreedingStats.utils; +using ARKBreedingStats.AsbServer; +using Newtonsoft.Json.Linq; namespace ARKBreedingStats { @@ -945,24 +947,32 @@ private void UpdateListsAfterCreaturesAdded() } /// - /// Imports a creature when listening to a server. + /// Handle reports from the AsbServer listening, e.g. importing creatures or handle errors. /// - private void AsbServerDataSent((string jsonData, string serverHash, string errorMessage) data) + private void AsbServerDataSent(ProgressReportAsbServer data) { - if (!string.IsNullOrEmpty(data.errorMessage)) + if (!string.IsNullOrEmpty(data.Message)) { - SetMessageLabelText(data.errorMessage, MessageBoxIcon.Error); - // don't remove the error message with the stop listening message - _ignoreNextMessageLabel = true; - listenToolStripMenuItem.Checked = false; + SetMessageLabelText(data.Message, data.IsError ? MessageBoxIcon.Error : MessageBoxIcon.Information, clipboardText: data.ClipboardText); + + if (!string.IsNullOrEmpty(data.ClipboardText)) + Clipboard.SetText(data.ClipboardText); + + if (data.StopListening && !listenToolStripMenuItem.Checked) + { + // don't remove the error message with the stop listening message + _ignoreNextMessageLabel = true; + listenToolStripMenuItem.Checked = false; + } + return; } string resultText; - if (string.IsNullOrEmpty(data.serverHash)) + if (string.IsNullOrEmpty(data.ServerHash)) { // import creature - var creature = ImportExportGun.ImportCreatureFromJson(data.jsonData, null, out resultText, out _); + var creature = ImportExportGun.ImportCreatureFromJson(data.JsonText, null, out resultText, out _); if (creature == null) { SetMessageLabelText(resultText, MessageBoxIcon.Error); @@ -987,7 +997,7 @@ private void AsbServerDataSent((string jsonData, string serverHash, string error } // import server settings - var success = ImportExportGun.ImportServerMultipliersFromJson(_creatureCollection, data.jsonData, data.serverHash, out resultText); + var success = ImportExportGun.ImportServerMultipliersFromJson(_creatureCollection, data.JsonText, data.ServerHash, out resultText); SetMessageLabelText(resultText, success ? MessageBoxIcon.Information : MessageBoxIcon.Error, resultText); } } diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs index 4e2dd11b..db3cd21e 100644 --- a/ARKBreedingStats/Form1.cs +++ b/ARKBreedingStats/Form1.cs @@ -21,6 +21,7 @@ using ARKBreedingStats.utils; using static ARKBreedingStats.settings.Settings; using Color = System.Drawing.Color; +using ARKBreedingStats.AsbServer; namespace ARKBreedingStats { @@ -3878,12 +3879,10 @@ private void listenWithNewTokenToolStripMenuItem_Click(object sender, EventArgs private void AsbServerStartListening() { - AsbServer.Connection.StopListening(); - var progressDataSent = new Progress<(string jsonText, string serverHash, string message)>(AsbServerDataSent); + var progressReporter = new Progress(AsbServerDataSent); if (string.IsNullOrEmpty(Properties.Settings.Default.ExportServerToken)) Properties.Settings.Default.ExportServerToken = AsbServer.Connection.CreateNewToken(); - Task.Factory.StartNew(() => AsbServer.Connection.StartListeningAsync(progressDataSent, Properties.Settings.Default.ExportServerToken)); - MessageServerListening(Properties.Settings.Default.ExportServerToken); + Task.Factory.StartNew(() => AsbServer.Connection.StartListeningAsync(progressReporter, Properties.Settings.Default.ExportServerToken)); } private void AsbServerStopListening() @@ -3892,13 +3891,6 @@ private void AsbServerStopListening() SetMessageLabelText($"ASB Server listening stopped using token: {Properties.Settings.Default.ExportServerToken}", MessageBoxIcon.Error); } - private void MessageServerListening(string token) - { - SetMessageLabelText($"Now listening to the export server using the token (also copied to clipboard){Environment.NewLine}{token}", MessageBoxIcon.Information, clipboardText: token); - if (!string.IsNullOrEmpty(token)) - Clipboard.SetText(token); - } - private void sendExampleCreatureToolStripMenuItem_Click(object sender, EventArgs e) { // debug function, sends a test creature to the server From 6c9c9061d07609a43f37bbf56c78cd551b2b40cb Mon Sep 17 00:00:00 2001 From: cadon Date: Mon, 15 Jan 2024 23:56:30 +0100 Subject: [PATCH 06/29] fixing replaced and token --- ARKBreedingStats/AsbServer/Connection.cs | 173 ++++++++++-------- .../AsbServer/ProgressReportAsbServer.cs | 2 +- ARKBreedingStats/Form1.collection.cs | 2 +- 3 files changed, 97 insertions(+), 80 deletions(-) diff --git a/ARKBreedingStats/AsbServer/Connection.cs b/ARKBreedingStats/AsbServer/Connection.cs index e1a19bd1..10c44eae 100644 --- a/ARKBreedingStats/AsbServer/Connection.cs +++ b/ARKBreedingStats/AsbServer/Connection.cs @@ -18,9 +18,9 @@ namespace ARKBreedingStats.AsbServer /// internal static class Connection { - private const string ApiUri = "https://export.arkbreeder.com/api/v1/"; + private const string ApiUri = "http://localhost:5173/api/v1/"; //"https://export.arkbreeder.com/api/v1/"; - private static SimpleCancellationToken _lastCancellationToken; + private static CancellationTokenSource _lastCancellationTokenSource; public static async void StartListeningAsync( IProgress progressDataSent, string token = null) @@ -29,89 +29,102 @@ public static async void StartListeningAsync( // stop previous listening if any StopListening(); - var cancellationToken = new SimpleCancellationToken(); - _lastCancellationToken = cancellationToken; - var reconnectTries = 0; - - while (!cancellationToken.IsCancellationRequested) + using (var cancellationTokenSource = new CancellationTokenSource()) { - var requestUri = ApiUri + "listen/" + token; // "https://httpstat.us/429"; + _lastCancellationTokenSource = cancellationTokenSource; - try + var reconnectTries = 0; + + while (!cancellationTokenSource.Token.IsCancellationRequested) { - var client = FileService.GetHttpClient; - using (var response = await client.GetAsync(requestUri, HttpCompletionOption.ResponseHeadersRead)) + var requestUri = ApiUri + "listen/" + token; // "https://httpstat.us/429"; + + try { - if (!response.IsSuccessStatusCode) + var client = FileService.GetHttpClient; + using (var response = await client.GetAsync(requestUri, HttpCompletionOption.ResponseHeadersRead)) { - var statusCode = (int)response.StatusCode; - string serverMessage = await response.Content.ReadAsStringAsync(); - - try - { - serverMessage = JObject.Parse(serverMessage).SelectToken("error.message").ToString(); - } - catch + if (!response.IsSuccessStatusCode) { - // server message in unknown format, use raw content string + var statusCode = (int)response.StatusCode; + string serverMessage = await response.Content.ReadAsStringAsync(); + + try + { + serverMessage = JObject.Parse(serverMessage).SelectToken("error.message").ToString(); + } + catch + { + // server message in unknown format, use raw content string + } + + serverMessage = Environment.NewLine + serverMessage; + + switch (statusCode) + { + case 400: // Bad Request + WriteErrorMessage($"Something went wrong with the server connection.{serverMessage}", + response); + return; + case 429: // Too Many Requests + WriteErrorMessage( + $"The server is currently at the rate limit and cannot process the request. Try again later.{serverMessage}", + response); + return; + case 507: // Insufficient Storage + WriteErrorMessage($"Too many connections to the server. Try again later.{serverMessage}", + response); + return; + default: + var errorMessage = statusCode >= 500 + ? "Something went wrong with the server or its proxy." + Environment.NewLine + : null; + WriteErrorMessage($"{errorMessage}{serverMessage}", response); + return; + } } - serverMessage = Environment.NewLine + serverMessage; + reconnectTries = 0; - switch (statusCode) + using (var stream = await response.Content.ReadAsStreamAsync()) + using (var reader = new StreamReader(stream)) { - case 400: // Bad Request - WriteErrorMessage($"Something went wrong with the server connection.{serverMessage}", - response); - return; - case 429: // Too Many Requests - WriteErrorMessage( - $"The server is currently at the rate limit and cannot process the request. Try again later.{serverMessage}", - response); - return; - case 507: // Insufficient Storage - WriteErrorMessage($"Too many connections to the server. Try again later.{serverMessage}", - response); - return; - default: - var errorMessage = statusCode >= 500 - ? "Something went wrong with the server or its proxy." + Environment.NewLine - : null; - WriteErrorMessage($"{errorMessage}{serverMessage}", response); - return; + var report = await ReadServerSentEvents(reader, progressDataSent, token, cancellationTokenSource.Token); + if (report != null) + { + progressDataSent.Report(report); + if (report.StopListening) + { + StopListening(); + } + } } } + } + catch (Exception ex) + { + var tryToReconnect = reconnectTries++ < 3; + WriteErrorMessage( + $"ASB Server listening {ex.GetType()}: {ex.Message}{Environment.NewLine}{(tryToReconnect ? "Trying to reconnect" + Environment.NewLine : string.Empty)}Stack trace: {ex.StackTrace}", + stopListening: !tryToReconnect); - reconnectTries = 0; - - using (var stream = await response.Content.ReadAsStreamAsync()) - using (var reader = new StreamReader(stream)) - { - await ReadServerSentEvents(reader, progressDataSent, token, cancellationToken); - } + if (!tryToReconnect) + break; + // try to reconnect after some time + Thread.Sleep(10_000); } - } - catch (Exception ex) - { - var tryToReconnect = reconnectTries++ < 3; - WriteErrorMessage( - $"ASB Server listening {ex.GetType()}: {ex.Message}{Environment.NewLine}{(tryToReconnect ? "Trying to reconnect" + Environment.NewLine : string.Empty)}Stack trace: {ex.StackTrace}", - stopListening: !tryToReconnect); - - if (!tryToReconnect) - break; - // try to reconnect after some time - Thread.Sleep(1000); - } - finally - { + finally + { #if DEBUG - Console.WriteLine($"ASB Server listening stopped using token: {token}"); + Console.WriteLine($"ASB Server listening stopped using token: {token}"); #endif + } } } + _lastCancellationTokenSource = null; + return; // Displays an error message in the UI, also logs on the console if in debug mode @@ -130,7 +143,7 @@ void WriteErrorMessage(string message, HttpResponseMessage response = null, bool private static Regex _eventRegex = new Regex(@"^event: (welcome|ping|replaced|export|server|closing)(?: (\-?\d+))?(?:\ndata:\s(.+))?$"); - private static async Task ReadServerSentEvents(StreamReader reader, IProgress progressDataSent, string token, SimpleCancellationToken cancellationToken) + private static async Task ReadServerSentEvents(StreamReader reader, IProgress progressDataSent, string token, CancellationToken cancellationToken) { #if DEBUG Console.WriteLine($"Now listening using token: {token}"); @@ -153,16 +166,19 @@ private static async Task ReadServerSentEvents(StreamReader reader, IProgress diff --git a/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs b/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs index 508d3338..686b0676 100644 --- a/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs +++ b/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs @@ -3,7 +3,7 @@ /// /// Info of progress reports while listening to an AsbServer. /// - internal struct ProgressReportAsbServer + internal class ProgressReportAsbServer { public string JsonText; public string ServerHash; diff --git a/ARKBreedingStats/Form1.collection.cs b/ARKBreedingStats/Form1.collection.cs index 90214df8..ab599dbe 100644 --- a/ARKBreedingStats/Form1.collection.cs +++ b/ARKBreedingStats/Form1.collection.cs @@ -958,7 +958,7 @@ private void AsbServerDataSent(ProgressReportAsbServer data) if (!string.IsNullOrEmpty(data.ClipboardText)) Clipboard.SetText(data.ClipboardText); - if (data.StopListening && !listenToolStripMenuItem.Checked) + if (data.StopListening) { // don't remove the error message with the stop listening message _ignoreNextMessageLabel = true; From d8ab3398b71b7a228d67b49b6173b01074e700f6 Mon Sep 17 00:00:00 2001 From: cadon Date: Mon, 15 Jan 2024 23:57:43 +0100 Subject: [PATCH 07/29] fixed server --- ARKBreedingStats/AsbServer/Connection.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ARKBreedingStats/AsbServer/Connection.cs b/ARKBreedingStats/AsbServer/Connection.cs index 10c44eae..0a98f314 100644 --- a/ARKBreedingStats/AsbServer/Connection.cs +++ b/ARKBreedingStats/AsbServer/Connection.cs @@ -18,7 +18,7 @@ namespace ARKBreedingStats.AsbServer /// internal static class Connection { - private const string ApiUri = "http://localhost:5173/api/v1/"; //"https://export.arkbreeder.com/api/v1/"; + private const string ApiUri = "https://export.arkbreeder.com/api/v1/"; private static CancellationTokenSource _lastCancellationTokenSource; From e9dfb197fbe991c1093d5c853636334a17a7f0c6 Mon Sep 17 00:00:00 2001 From: cadon Date: Tue, 16 Jan 2024 01:39:22 +0100 Subject: [PATCH 08/29] show exception info if listViewItem doesn't exist --- ARKBreedingStats/Form1.library.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ARKBreedingStats/Form1.library.cs b/ARKBreedingStats/Form1.library.cs index 209d1ffd..c03057c1 100644 --- a/ARKBreedingStats/Form1.library.cs +++ b/ARKBreedingStats/Form1.library.cs @@ -757,7 +757,8 @@ private Creature[] InsertDividers(IList creatures) private void ListViewLibrary_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e) { // check to see if the requested item is currently in the cache - if (_libraryListViewItemCache != null && e.ItemIndex >= _libraryItemCacheFirstIndex && e.ItemIndex < _libraryItemCacheFirstIndex + _libraryListViewItemCache.Length) + if (_libraryListViewItemCache != null && e.ItemIndex >= _libraryItemCacheFirstIndex && + e.ItemIndex < _libraryItemCacheFirstIndex + _libraryListViewItemCache.Length) { // get the ListViewItem from the cache instead of making a new one. e.Item = _libraryListViewItemCache[e.ItemIndex - _libraryItemCacheFirstIndex]; @@ -765,7 +766,14 @@ private void ListViewLibrary_RetrieveVirtualItem(object sender, RetrieveVirtualI else if (_creaturesDisplayed?.Length > e.ItemIndex) { // create item not available in the cache - e.Item = CreateCreatureLvItem(_creaturesDisplayed[e.ItemIndex], Properties.Settings.Default.DisplayLibraryCreatureIndex); + e.Item = CreateCreatureLvItem(_creaturesDisplayed[e.ItemIndex], + Properties.Settings.Default.DisplayLibraryCreatureIndex); + } + else + { + throw new Exception($"ListViewItem could not be retrieved. ItemIndex: {e.ItemIndex}." + + $"_creaturesDisplayedLength: {_creaturesDisplayed?.Length}." + + $"_libraryListViewItemCacheLength: {_libraryListViewItemCache?.Length}"); } } From f7e0fae15fd938dc72699f37ddcd7e6de90ef5f1 Mon Sep 17 00:00:00 2001 From: cadon Date: Wed, 17 Jan 2024 18:17:10 +0100 Subject: [PATCH 09/29] only display allowSpeedLeveling for ASA --- .../settings/Settings.Designer.cs | 91 ++++++++++--------- ARKBreedingStats/settings/Settings.cs | 19 +++- 2 files changed, 63 insertions(+), 47 deletions(-) diff --git a/ARKBreedingStats/settings/Settings.Designer.cs b/ARKBreedingStats/settings/Settings.Designer.cs index 6f48f8a7..5c0ec3f9 100644 --- a/ARKBreedingStats/settings/Settings.Designer.cs +++ b/ARKBreedingStats/settings/Settings.Designer.cs @@ -124,6 +124,10 @@ private void InitializeComponent() this.checkBoxDisplayHiddenStats = new System.Windows.Forms.CheckBox(); this.tabControlSettings = new System.Windows.Forms.TabControl(); this.tabPageMultipliers = new System.Windows.Forms.TabPage(); + this.TbRemoteServerSettingsUri = new System.Windows.Forms.TextBox(); + this.BtSettingsToClipboard = new System.Windows.Forms.Button(); + this.btExportMultipliers = new System.Windows.Forms.Button(); + this.BtRemoteServerSettingsUri = new System.Windows.Forms.Button(); this.CbKeepMultipliersForNewLibrary = new System.Windows.Forms.CheckBox(); this.BtAutoImportLocalSettings = new System.Windows.Forms.Button(); this.panel3 = new System.Windows.Forms.Panel(); @@ -131,12 +135,10 @@ private void InitializeComponent() this.RbGameAse = new System.Windows.Forms.RadioButton(); this.BtImportSettingsSelectFile = new System.Windows.Forms.Button(); this.CbAtlasSettings = new System.Windows.Forms.CheckBox(); - this.BtSettingsToClipboard = new System.Windows.Forms.Button(); this.groupBox29 = new System.Windows.Forms.GroupBox(); this.CbAllowSpeedLeveling = new System.Windows.Forms.CheckBox(); this.CbAllowFlyerSpeedLeveling = new System.Windows.Forms.CheckBox(); this.label34 = new System.Windows.Forms.Label(); - this.btExportMultipliers = new System.Windows.Forms.Button(); this.groupBox18 = new System.Windows.Forms.GroupBox(); this.btApplyPreset = new System.Windows.Forms.Button(); this.cbbStatMultiplierPresets = new System.Windows.Forms.ComboBox(); @@ -351,8 +353,6 @@ private void InitializeComponent() this.label1 = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); this.colorDialog1 = new System.Windows.Forms.ColorDialog(); - this.BtRemoteServerSettingsUri = new System.Windows.Forms.Button(); - this.TbRemoteServerSettingsUri = new System.Windows.Forms.TextBox(); this.groupBoxMultiplier.SuspendLayout(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).BeginInit(); @@ -1900,6 +1900,43 @@ private void InitializeComponent() this.tabPageMultipliers.DragDrop += new System.Windows.Forms.DragEventHandler(this.tabPage2_DragDrop); this.tabPageMultipliers.DragEnter += new System.Windows.Forms.DragEventHandler(this.tabPage2_DragEnter); // + // TbRemoteServerSettingsUri + // + this.TbRemoteServerSettingsUri.Location = new System.Drawing.Point(407, 659); + this.TbRemoteServerSettingsUri.Name = "TbRemoteServerSettingsUri"; + this.TbRemoteServerSettingsUri.Size = new System.Drawing.Size(152, 20); + this.TbRemoteServerSettingsUri.TabIndex = 20; + // + // BtSettingsToClipboard + // + this.BtSettingsToClipboard.Location = new System.Drawing.Point(600, 713); + this.BtSettingsToClipboard.Name = "BtSettingsToClipboard"; + this.BtSettingsToClipboard.Size = new System.Drawing.Size(142, 23); + this.BtSettingsToClipboard.TabIndex = 13; + this.BtSettingsToClipboard.Text = "Copy settings to clipboard"; + this.BtSettingsToClipboard.UseVisualStyleBackColor = true; + this.BtSettingsToClipboard.Click += new System.EventHandler(this.BtSettingsToClipboard_Click); + // + // btExportMultipliers + // + this.btExportMultipliers.Location = new System.Drawing.Point(407, 713); + this.btExportMultipliers.Name = "btExportMultipliers"; + this.btExportMultipliers.Size = new System.Drawing.Size(187, 23); + this.btExportMultipliers.TabIndex = 11; + this.btExportMultipliers.Text = "Export multiplier settings to file…"; + this.btExportMultipliers.UseVisualStyleBackColor = true; + this.btExportMultipliers.Click += new System.EventHandler(this.btExportMultipliers_Click); + // + // BtRemoteServerSettingsUri + // + this.BtRemoteServerSettingsUri.Location = new System.Drawing.Point(565, 657); + this.BtRemoteServerSettingsUri.Name = "BtRemoteServerSettingsUri"; + this.BtRemoteServerSettingsUri.Size = new System.Drawing.Size(167, 23); + this.BtRemoteServerSettingsUri.TabIndex = 19; + this.BtRemoteServerSettingsUri.Text = "Import remote settings"; + this.BtRemoteServerSettingsUri.UseVisualStyleBackColor = true; + this.BtRemoteServerSettingsUri.Click += new System.EventHandler(this.BtRemoteServerSettingsUri_Click); + // // CbKeepMultipliersForNewLibrary // this.CbKeepMultipliersForNewLibrary.AutoSize = true; @@ -1940,6 +1977,7 @@ private void InitializeComponent() this.RbGameAsa.TabStop = true; this.RbGameAsa.Text = "ASA"; this.RbGameAsa.UseVisualStyleBackColor = true; + this.RbGameAsa.CheckedChanged += new System.EventHandler(this.RbGameAsa_CheckedChanged); // // RbGameAse // @@ -1973,16 +2011,6 @@ private void InitializeComponent() this.CbAtlasSettings.Text = "ATLAS settings"; this.CbAtlasSettings.UseVisualStyleBackColor = true; // - // BtSettingsToClipboard - // - this.BtSettingsToClipboard.Location = new System.Drawing.Point(600, 713); - this.BtSettingsToClipboard.Name = "BtSettingsToClipboard"; - this.BtSettingsToClipboard.Size = new System.Drawing.Size(142, 23); - this.BtSettingsToClipboard.TabIndex = 13; - this.BtSettingsToClipboard.Text = "Copy settings to clipboard"; - this.BtSettingsToClipboard.UseVisualStyleBackColor = true; - this.BtSettingsToClipboard.Click += new System.EventHandler(this.BtSettingsToClipboard_Click); - // // groupBox29 // this.groupBox29.Controls.Add(this.CbAllowSpeedLeveling); @@ -2023,16 +2051,6 @@ private void InitializeComponent() this.label34.TabIndex = 10; this.label34.Text = "You can export the settings on this page to a file or the clipboard to share it w" + "ith tribe members or for bug reports."; - // - // btExportMultipliers - // - this.btExportMultipliers.Location = new System.Drawing.Point(407, 713); - this.btExportMultipliers.Name = "btExportMultipliers"; - this.btExportMultipliers.Size = new System.Drawing.Size(187, 23); - this.btExportMultipliers.TabIndex = 11; - this.btExportMultipliers.Text = "Export multiplier settings to file…"; - this.btExportMultipliers.UseVisualStyleBackColor = true; - this.btExportMultipliers.Click += new System.EventHandler(this.btExportMultipliers_Click); // // groupBox18 // @@ -3743,7 +3761,7 @@ private void InitializeComponent() this.customSCCustom.Location = new System.Drawing.Point(6, 139); this.customSCCustom.Name = "customSCCustom"; this.customSCCustom.Size = new System.Drawing.Size(401, 23); - this.customSCCustom.SoundFile = ""; + this.customSCCustom.SoundFile = null; this.customSCCustom.TabIndex = 4; // // customSCWakeup @@ -3751,7 +3769,7 @@ private void InitializeComponent() this.customSCWakeup.Location = new System.Drawing.Point(6, 81); this.customSCWakeup.Name = "customSCWakeup"; this.customSCWakeup.Size = new System.Drawing.Size(401, 23); - this.customSCWakeup.SoundFile = null; + this.customSCWakeup.SoundFile = ""; this.customSCWakeup.TabIndex = 2; // // customSCBirth @@ -3759,7 +3777,7 @@ private void InitializeComponent() this.customSCBirth.Location = new System.Drawing.Point(6, 110); this.customSCBirth.Name = "customSCBirth"; this.customSCBirth.Size = new System.Drawing.Size(401, 23); - this.customSCBirth.SoundFile = null; + this.customSCBirth.SoundFile = ""; this.customSCBirth.TabIndex = 3; // // customSCStarving @@ -3767,7 +3785,7 @@ private void InitializeComponent() this.customSCStarving.Location = new System.Drawing.Point(6, 52); this.customSCStarving.Name = "customSCStarving"; this.customSCStarving.Size = new System.Drawing.Size(401, 23); - this.customSCStarving.SoundFile = ""; + this.customSCStarving.SoundFile = null; this.customSCStarving.TabIndex = 1; // // label20 @@ -4486,23 +4504,6 @@ private void InitializeComponent() this.panel1.Size = new System.Drawing.Size(758, 30); this.panel1.TabIndex = 12; // - // BtRemoteServerSettingsUri - // - this.BtRemoteServerSettingsUri.Location = new System.Drawing.Point(565, 657); - this.BtRemoteServerSettingsUri.Name = "BtRemoteServerSettingsUri"; - this.BtRemoteServerSettingsUri.Size = new System.Drawing.Size(167, 23); - this.BtRemoteServerSettingsUri.TabIndex = 19; - this.BtRemoteServerSettingsUri.Text = "Import remote settings"; - this.BtRemoteServerSettingsUri.UseVisualStyleBackColor = true; - this.BtRemoteServerSettingsUri.Click += new System.EventHandler(this.BtRemoteServerSettingsUri_Click); - // - // TbRemoteServerSettingsUri - // - this.TbRemoteServerSettingsUri.Location = new System.Drawing.Point(407, 659); - this.TbRemoteServerSettingsUri.Name = "TbRemoteServerSettingsUri"; - this.TbRemoteServerSettingsUri.Size = new System.Drawing.Size(152, 20); - this.TbRemoteServerSettingsUri.TabIndex = 20; - // // Settings // this.AcceptButton = this.buttonOK; diff --git a/ARKBreedingStats/settings/Settings.cs b/ARKBreedingStats/settings/Settings.cs index ecac9b50..e1b6f7e6 100644 --- a/ARKBreedingStats/settings/Settings.cs +++ b/ARKBreedingStats/settings/Settings.cs @@ -215,8 +215,15 @@ private void LoadSettings(CreatureCollection cc) } cbSingleplayerSettings.Checked = cc.singlePlayerSettings; CbAtlasSettings.Checked = _cc.AtlasSettings; - if (_cc.Game == Ark.Asa) RbGameAsa.Checked = true; - else RbGameAse.Checked = true; + if (_cc.Game == Ark.Asa) + { + RbGameAsa.Checked = true; + } + else + { + RbGameAse.Checked = true; + CbAllowSpeedLeveling.Visible = false; + } nudMaxDomLevels.ValueSave = cc.maxDomLevel; numericUpDownMaxBreedingSug.ValueSave = cc.maxBreedingSuggestions; @@ -1776,5 +1783,13 @@ private async void BtRemoteServerSettingsUri_Click(object sender, EventArgs e) BtRemoteServerSettingsUri.Text = "Load remote settings"; } } + + private void RbGameAsa_CheckedChanged(object sender, EventArgs e) + { + var isAsa = RbGameAsa.Checked; + CbAllowSpeedLeveling.Visible = isAsa; + if (!isAsa) + CbAllowSpeedLeveling.Checked = true; + } } } From b3204a9c79bbfdd3d2d9c205d66a28356aa35e04 Mon Sep 17 00:00:00 2001 From: cadon Date: Wed, 17 Jan 2024 21:03:52 +0100 Subject: [PATCH 10/29] new sound for export creature updating --- ARKBreedingStats/ARKBreedingStats.csproj | 1 + ARKBreedingStats/Form1.importExported.cs | 2 +- .../Properties/Resources.Designer.cs | 11 ++++++- ARKBreedingStats/Properties/Resources.resx | 3 ++ ARKBreedingStats/Resources/updated.wav | Bin 0 -> 66264 bytes ARKBreedingStats/local/strings.de.resx | 6 ++++ ARKBreedingStats/local/strings.resx | 6 ++++ .../settings/Settings.Designer.cs | 29 +++++++++++++----- ARKBreedingStats/settings/Settings.cs | 6 ++++ ARKBreedingStats/utils/SoundFeedback.cs | 29 ++++++++++-------- 10 files changed, 71 insertions(+), 22 deletions(-) create mode 100644 ARKBreedingStats/Resources/updated.wav diff --git a/ARKBreedingStats/ARKBreedingStats.csproj b/ARKBreedingStats/ARKBreedingStats.csproj index 38e83bca..4cb8c03e 100644 --- a/ARKBreedingStats/ARKBreedingStats.csproj +++ b/ARKBreedingStats/ARKBreedingStats.csproj @@ -677,6 +677,7 @@ PreserveNewest + TextTemplatingFileGenerator _manifest.json diff --git a/ARKBreedingStats/Form1.importExported.cs b/ARKBreedingStats/Form1.importExported.cs index 2ae5f5dd..6dcfbc14 100644 --- a/ARKBreedingStats/Form1.importExported.cs +++ b/ARKBreedingStats/Form1.importExported.cs @@ -296,7 +296,7 @@ private Creature ImportExportedAddIfPossible(string filePath) if (uniqueExtraction) { if (alreadyExists) - SoundFeedback.BeepSignal(SoundFeedback.FeedbackSounds.Indifferent); + SoundFeedback.BeepSignal(SoundFeedback.FeedbackSounds.Updated); else if (hasNewTopLevels) SoundFeedback.BeepSignal(SoundFeedback.FeedbackSounds.Great); else if (hasTopLevels) diff --git a/ARKBreedingStats/Properties/Resources.Designer.cs b/ARKBreedingStats/Properties/Resources.Designer.cs index 168f7e4a..a6ae603a 100644 --- a/ARKBreedingStats/Properties/Resources.Designer.cs +++ b/ARKBreedingStats/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace ARKBreedingStats.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -184,5 +184,14 @@ internal static System.Drawing.Bitmap unlocked { return ((System.Drawing.Bitmap)(obj)); } } + + /// + /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream updated { + get { + return ResourceManager.GetStream("updated", resourceCulture); + } + } } } diff --git a/ARKBreedingStats/Properties/Resources.resx b/ARKBreedingStats/Properties/Resources.resx index cba3c906..42ec3b18 100644 --- a/ARKBreedingStats/Properties/Resources.resx +++ b/ARKBreedingStats/Properties/Resources.resx @@ -157,4 +157,7 @@ ..\Resources\topstat.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\updated.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/ARKBreedingStats/Resources/updated.wav b/ARKBreedingStats/Resources/updated.wav new file mode 100644 index 0000000000000000000000000000000000000000..cf03f3275023cd39738820d71b10bbb1413f77e5 GIT binary patch literal 66264 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 jSU*H8OJ-5NPuqI{w3 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 W-1GK1HM$JD@Af Klicken um in die Zwischenablage zu kopieren + + Aktualisiert + + + Dieser Ton wird abgespielt, wenn eine Kreatur aktualisiert wird, d.h. erneut importiert wird + \ No newline at end of file diff --git a/ARKBreedingStats/local/strings.resx b/ARKBreedingStats/local/strings.resx index e3291687..ea5a75c3 100644 --- a/ARKBreedingStats/local/strings.resx +++ b/ARKBreedingStats/local/strings.resx @@ -1343,4 +1343,10 @@ It's also possible to filter for creatures with a color in one of multiple possi Click to copy to clipboard + + Updated + + + This sound is played if a creature is updated, i.e. imported again + \ No newline at end of file diff --git a/ARKBreedingStats/settings/Settings.Designer.cs b/ARKBreedingStats/settings/Settings.Designer.cs index 5c0ec3f9..1ccdaa33 100644 --- a/ARKBreedingStats/settings/Settings.Designer.cs +++ b/ARKBreedingStats/settings/Settings.Designer.cs @@ -353,6 +353,7 @@ private void InitializeComponent() this.label1 = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); this.colorDialog1 = new System.Windows.Forms.ColorDialog(); + this.BtBeepUpdated = new System.Windows.Forms.Button(); this.groupBoxMultiplier.SuspendLayout(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).BeginInit(); @@ -3351,6 +3352,7 @@ private void InitializeComponent() // // panel2 // + this.panel2.Controls.Add(this.BtBeepUpdated); this.panel2.Controls.Add(this.BtBeepNewTop); this.panel2.Controls.Add(this.BtBeepTop); this.panel2.Controls.Add(this.BtBeepSuccess); @@ -3358,12 +3360,12 @@ private void InitializeComponent() this.panel2.Controls.Add(this.BtBeepFailure); this.panel2.Location = new System.Drawing.Point(285, 11); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(121, 131); + this.panel2.Size = new System.Drawing.Size(121, 148); this.panel2.TabIndex = 7; // // BtBeepNewTop // - this.BtBeepNewTop.Location = new System.Drawing.Point(3, 105); + this.BtBeepNewTop.Location = new System.Drawing.Point(3, 96); this.BtBeepNewTop.Name = "BtBeepNewTop"; this.BtBeepNewTop.Size = new System.Drawing.Size(115, 23); this.BtBeepNewTop.TabIndex = 4; @@ -3373,7 +3375,7 @@ private void InitializeComponent() // // BtBeepTop // - this.BtBeepTop.Location = new System.Drawing.Point(3, 76); + this.BtBeepTop.Location = new System.Drawing.Point(3, 70); this.BtBeepTop.Name = "BtBeepTop"; this.BtBeepTop.Size = new System.Drawing.Size(115, 23); this.BtBeepTop.TabIndex = 3; @@ -3383,7 +3385,7 @@ private void InitializeComponent() // // BtBeepSuccess // - this.BtBeepSuccess.Location = new System.Drawing.Point(3, 47); + this.BtBeepSuccess.Location = new System.Drawing.Point(3, 44); this.BtBeepSuccess.Name = "BtBeepSuccess"; this.BtBeepSuccess.Size = new System.Drawing.Size(115, 23); this.BtBeepSuccess.TabIndex = 2; @@ -3761,7 +3763,7 @@ private void InitializeComponent() this.customSCCustom.Location = new System.Drawing.Point(6, 139); this.customSCCustom.Name = "customSCCustom"; this.customSCCustom.Size = new System.Drawing.Size(401, 23); - this.customSCCustom.SoundFile = null; + this.customSCCustom.SoundFile = ""; this.customSCCustom.TabIndex = 4; // // customSCWakeup @@ -3769,7 +3771,7 @@ private void InitializeComponent() this.customSCWakeup.Location = new System.Drawing.Point(6, 81); this.customSCWakeup.Name = "customSCWakeup"; this.customSCWakeup.Size = new System.Drawing.Size(401, 23); - this.customSCWakeup.SoundFile = ""; + this.customSCWakeup.SoundFile = null; this.customSCWakeup.TabIndex = 2; // // customSCBirth @@ -3777,7 +3779,7 @@ private void InitializeComponent() this.customSCBirth.Location = new System.Drawing.Point(6, 110); this.customSCBirth.Name = "customSCBirth"; this.customSCBirth.Size = new System.Drawing.Size(401, 23); - this.customSCBirth.SoundFile = ""; + this.customSCBirth.SoundFile = null; this.customSCBirth.TabIndex = 3; // // customSCStarving @@ -3785,7 +3787,7 @@ private void InitializeComponent() this.customSCStarving.Location = new System.Drawing.Point(6, 52); this.customSCStarving.Name = "customSCStarving"; this.customSCStarving.Size = new System.Drawing.Size(401, 23); - this.customSCStarving.SoundFile = null; + this.customSCStarving.SoundFile = ""; this.customSCStarving.TabIndex = 1; // // label20 @@ -4504,6 +4506,16 @@ private void InitializeComponent() this.panel1.Size = new System.Drawing.Size(758, 30); this.panel1.TabIndex = 12; // + // BtBeepUpdated + // + this.BtBeepUpdated.Location = new System.Drawing.Point(3, 122); + this.BtBeepUpdated.Name = "BtBeepUpdated"; + this.BtBeepUpdated.Size = new System.Drawing.Size(115, 23); + this.BtBeepUpdated.TabIndex = 5; + this.BtBeepUpdated.Text = "updated"; + this.BtBeepUpdated.UseVisualStyleBackColor = true; + this.BtBeepUpdated.Click += new System.EventHandler(this.BtBeepUpdated_Click); + // // Settings // this.AcceptButton = this.buttonOK; @@ -4995,5 +5007,6 @@ private void InitializeComponent() private System.Windows.Forms.Label label69; private System.Windows.Forms.Button BtRemoteServerSettingsUri; private System.Windows.Forms.TextBox TbRemoteServerSettingsUri; + private System.Windows.Forms.Button BtBeepUpdated; } } \ No newline at end of file diff --git a/ARKBreedingStats/settings/Settings.cs b/ARKBreedingStats/settings/Settings.cs index e1b6f7e6..31eb0577 100644 --- a/ARKBreedingStats/settings/Settings.cs +++ b/ARKBreedingStats/settings/Settings.cs @@ -1303,6 +1303,7 @@ private void Localization() Loc.ControlText(BtBeepSuccess, _tt); Loc.ControlText(BtBeepTop, _tt); Loc.ControlText(BtBeepNewTop, _tt); + Loc.ControlText(BtBeepUpdated, _tt); Loc.ControlText(BtGetExportFolderAutomatically); } @@ -1342,6 +1343,11 @@ private void BtBeepNewTop_Click(object sender, EventArgs e) SoundFeedback.BeepSignal(SoundFeedback.FeedbackSounds.Great); } + private void BtBeepUpdated_Click(object sender, EventArgs e) + { + SoundFeedback.BeepSignal(SoundFeedback.FeedbackSounds.Updated); + } + private void BtImportArchiveFolder_Click(object sender, EventArgs e) { // get folder of first export path diff --git a/ARKBreedingStats/utils/SoundFeedback.cs b/ARKBreedingStats/utils/SoundFeedback.cs index a4d9217d..8f3aa151 100644 --- a/ARKBreedingStats/utils/SoundFeedback.cs +++ b/ARKBreedingStats/utils/SoundFeedback.cs @@ -13,10 +13,11 @@ internal enum FeedbackSounds Success, Good, Great, - Indifferent + Indifferent, + Updated } - private static readonly SoundPlayer _sp = new SoundPlayer(); + private static readonly SoundPlayer Sp = new SoundPlayer(); /// /// Beeps. @@ -25,25 +26,29 @@ public static void BeepSignal(FeedbackSounds kind) { switch (kind) { + case FeedbackSounds.Updated: + Sp.Stream = Properties.Resources.updated; + Sp.Play(); + return; case FeedbackSounds.Indifferent: - _sp.Stream = Properties.Resources.indifferent; - _sp.Play(); + Sp.Stream = Properties.Resources.indifferent; + Sp.Play(); return; case FeedbackSounds.Failure: - _sp.Stream = Properties.Resources.failure; - _sp.Play(); + Sp.Stream = Properties.Resources.failure; + Sp.Play(); return; case FeedbackSounds.Success: - _sp.Stream = Properties.Resources.success; - _sp.Play(); + Sp.Stream = Properties.Resources.success; + Sp.Play(); return; case FeedbackSounds.Good: - _sp.Stream = Properties.Resources.topstat; - _sp.Play(); + Sp.Stream = Properties.Resources.topstat; + Sp.Play(); return; case FeedbackSounds.Great: - _sp.Stream = Properties.Resources.newtopstat; - _sp.Play(); + Sp.Stream = Properties.Resources.newtopstat; + Sp.Play(); return; } } From aa73e3057d54702da22952d166bce647eb4fc4c1 Mon Sep 17 00:00:00 2001 From: cadon Date: Wed, 17 Jan 2024 21:14:33 +0100 Subject: [PATCH 11/29] breeding planner for combining wild stats ignore mutated levels --- ARKBreedingStats/BreedingPlanning/BreedingScore.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ARKBreedingStats/BreedingPlanning/BreedingScore.cs b/ARKBreedingStats/BreedingPlanning/BreedingScore.cs index d5b05bc9..ed3f0795 100644 --- a/ARKBreedingStats/BreedingPlanning/BreedingScore.cs +++ b/ARKBreedingStats/BreedingPlanning/BreedingScore.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Linq; using ARKBreedingStats.Library; -using ARKBreedingStats.Properties; using ARKBreedingStats.species; namespace ARKBreedingStats.BreedingPlanning @@ -86,8 +85,8 @@ public static List CalculateBreedingScores(Creature[] females, Cre { if (s == Stats.Torpidity || !species.UsesStat(s)) continue; bestPossLevels[s] = 0; - int higherLevel = Math.Max(female.levelsWild[s] + (female.levelsMutated?[s] ?? 0), male.levelsWild[s] + (male.levelsMutated?[s] ?? 0)); - int lowerLevel = Math.Min(female.levelsWild[s] + (female.levelsMutated?[s] ?? 0), male.levelsWild[s] + (male.levelsMutated?[s] ?? 0)); + int higherLevel = Math.Max(female.levelsWild[s], male.levelsWild[s]); + int lowerLevel = Math.Min(female.levelsWild[s], male.levelsWild[s]); if (higherLevel < 0) higherLevel = 0; if (lowerLevel < 0) lowerLevel = 0; maxPossibleOffspringLevel += higherLevel; From 6a7543a5e5ba8d0a2ce927584c6b2de7055beb78 Mon Sep 17 00:00:00 2001 From: cadon Date: Sat, 20 Jan 2024 14:42:21 +0100 Subject: [PATCH 12/29] popup for easier reading server token. streamer mode to not show this. --- ARKBreedingStats/ARKBreedingStats.csproj | 3 + ARKBreedingStats/App.config | 3 + ARKBreedingStats/AsbServer/Connection.cs | 19 +++--- .../AsbServer/ProgressReportAsbServer.cs | 1 + ARKBreedingStats/Form1.collection.cs | 10 +++- ARKBreedingStats/Form1.cs | 10 ++-- .../Properties/Settings.Designer.cs | 12 ++++ ARKBreedingStats/Properties/Settings.settings | 3 + .../settings/Settings.Designer.cs | 59 +++++++++++-------- ARKBreedingStats/settings/Settings.cs | 3 +- ARKBreedingStats/uiControls/PopupMessage.cs | 55 +++++++++++++++++ 11 files changed, 140 insertions(+), 38 deletions(-) create mode 100644 ARKBreedingStats/uiControls/PopupMessage.cs diff --git a/ARKBreedingStats/ARKBreedingStats.csproj b/ARKBreedingStats/ARKBreedingStats.csproj index 4cb8c03e..8c704bd3 100644 --- a/ARKBreedingStats/ARKBreedingStats.csproj +++ b/ARKBreedingStats/ARKBreedingStats.csproj @@ -131,6 +131,9 @@ Component + + Form + UserControl diff --git a/ARKBreedingStats/App.config b/ARKBreedingStats/App.config index 06dd1ae2..d4980d5d 100644 --- a/ARKBreedingStats/App.config +++ b/ARKBreedingStats/App.config @@ -511,6 +511,9 @@ True + + False + diff --git a/ARKBreedingStats/AsbServer/Connection.cs b/ARKBreedingStats/AsbServer/Connection.cs index 0a98f314..ee6ff413 100644 --- a/ARKBreedingStats/AsbServer/Connection.cs +++ b/ARKBreedingStats/AsbServer/Connection.cs @@ -6,7 +6,6 @@ using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; -using System.Windows.Forms; using ARKBreedingStats.importExportGun; using ARKBreedingStats.Library; using Newtonsoft.Json.Linq; @@ -148,7 +147,12 @@ private static async Task ReadServerSentEvents(StreamRe #if DEBUG Console.WriteLine($"Now listening using token: {token}"); #endif - progressDataSent.Report(new ProgressReportAsbServer { Message = $"Now listening to the export server using the token (also copied to clipboard){Environment.NewLine}{token}", ClipboardText = token }); + progressDataSent.Report(new ProgressReportAsbServer + { + Message = "Now listening to the export server using the token (also copied to clipboard)", + ServerToken = token, + ClipboardText = token + }); while (!cancellationToken.IsCancellationRequested) { @@ -208,6 +212,9 @@ private static async Task ReadServerSentEvents(StreamRe return null; } + /// + /// Stops the currently running listener. Returns false if no listener was running. + /// public static void StopListening() { if (_lastCancellationTokenSource == null) @@ -265,12 +272,8 @@ public static string CreateNewToken() } /// - /// Simple replacement of CancellationTokenSource to avoid unnecessary complexities with disposal of CTS when the token is still in use. + /// Returns the passed token string, or wildcards if the streamer mode is enabled. /// - private class SimpleCancellationToken - { - public bool IsCancellationRequested; - public void Cancel() => IsCancellationRequested = true; - } + public static string TokenStringForDisplay(string token) => Properties.Settings.Default.StreamerMode ? "****" : token; } } diff --git a/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs b/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs index 686b0676..b8218e77 100644 --- a/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs +++ b/ARKBreedingStats/AsbServer/ProgressReportAsbServer.cs @@ -8,6 +8,7 @@ internal class ProgressReportAsbServer public string JsonText; public string ServerHash; public string Message; + public string ServerToken; public bool IsError; public bool StopListening; public string ClipboardText; diff --git a/ARKBreedingStats/Form1.collection.cs b/ARKBreedingStats/Form1.collection.cs index ab599dbe..d2f3af6a 100644 --- a/ARKBreedingStats/Form1.collection.cs +++ b/ARKBreedingStats/Form1.collection.cs @@ -953,7 +953,15 @@ private void AsbServerDataSent(ProgressReportAsbServer data) { if (!string.IsNullOrEmpty(data.Message)) { - SetMessageLabelText(data.Message, data.IsError ? MessageBoxIcon.Error : MessageBoxIcon.Information, clipboardText: data.ClipboardText); + var displayPopup = false; + var message = data.Message; + if (!string.IsNullOrEmpty(data.ServerToken)) + { + message += Environment.NewLine + Connection.TokenStringForDisplay(data.ServerToken); + displayPopup = !Properties.Settings.Default.StreamerMode; + } + + SetMessageLabelText(message, data.IsError ? MessageBoxIcon.Error : MessageBoxIcon.Information, clipboardText: data.ClipboardText, displayPopup: displayPopup); if (!string.IsNullOrEmpty(data.ClipboardText)) Clipboard.SetText(data.ClipboardText); diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs index db3cd21e..a9f3ea3a 100644 --- a/ARKBreedingStats/Form1.cs +++ b/ARKBreedingStats/Form1.cs @@ -54,8 +54,8 @@ public delegate void Species species = null, // if null is passed for species, breeding-related controls are not updated bool triggeredByFileWatcher = false); - public delegate void SetMessageLabelTextEventHandler(string text = null, - MessageBoxIcon icon = MessageBoxIcon.None, string path = null, string clipboardContent = null); + public delegate void SetMessageLabelTextEventHandler(string text = null, MessageBoxIcon icon = MessageBoxIcon.None, + string path = null, string clipboardContent = null, bool displayPopup = false); private bool _updateTorporInTester; private bool _filterListAllowed; @@ -1363,7 +1363,7 @@ private void Form1_FormClosed(object sender, FormClosedEventArgs e) /// If valid path to file or folder, the user can click on the message to display the path in the explorer /// If not null, user can copy this text to the clipboard by clicking on the label private void SetMessageLabelText(string text = null, MessageBoxIcon icon = MessageBoxIcon.None, - string path = null, string clipboardText = null) + string path = null, string clipboardText = null, bool displayPopup = false) { if (_ignoreNextMessageLabel) { @@ -1389,6 +1389,8 @@ private void SetMessageLabelText(string text = null, MessageBoxIcon icon = Messa TbMessageLabel.BackColor = SystemColors.Control; break; } + if (displayPopup && !string.IsNullOrEmpty(text)) + PopupMessage.Show(this, text, 20); } /// @@ -3888,7 +3890,7 @@ private void AsbServerStartListening() private void AsbServerStopListening() { AsbServer.Connection.StopListening(); - SetMessageLabelText($"ASB Server listening stopped using token: {Properties.Settings.Default.ExportServerToken}", MessageBoxIcon.Error); + SetMessageLabelText($"ASB Server listening stopped using token: {Connection.TokenStringForDisplay(Properties.Settings.Default.ExportServerToken)}", MessageBoxIcon.Error); } private void sendExampleCreatureToolStripMenuItem_Click(object sender, EventArgs e) diff --git a/ARKBreedingStats/Properties/Settings.Designer.cs b/ARKBreedingStats/Properties/Settings.Designer.cs index 41c269f0..edf82fcc 100644 --- a/ARKBreedingStats/Properties/Settings.Designer.cs +++ b/ARKBreedingStats/Properties/Settings.Designer.cs @@ -2278,5 +2278,17 @@ public bool LibraryShowMutationLevelColumns { this["LibraryShowMutationLevelColumns"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool StreamerMode { + get { + return ((bool)(this["StreamerMode"])); + } + set { + this["StreamerMode"] = value; + } + } } } diff --git a/ARKBreedingStats/Properties/Settings.settings b/ARKBreedingStats/Properties/Settings.settings index 1b15c4df..ddf33e81 100644 --- a/ARKBreedingStats/Properties/Settings.settings +++ b/ARKBreedingStats/Properties/Settings.settings @@ -572,5 +572,8 @@ True + + False + \ No newline at end of file diff --git a/ARKBreedingStats/settings/Settings.Designer.cs b/ARKBreedingStats/settings/Settings.Designer.cs index 1ccdaa33..5883f7c4 100644 --- a/ARKBreedingStats/settings/Settings.Designer.cs +++ b/ARKBreedingStats/settings/Settings.Designer.cs @@ -256,6 +256,7 @@ private void InitializeComponent() this.CbExportFileRenameAfterImport = new System.Windows.Forms.CheckBox(); this.BtImportArchiveFolder = new System.Windows.Forms.Button(); this.panel2 = new System.Windows.Forms.Panel(); + this.BtBeepUpdated = new System.Windows.Forms.Button(); this.BtBeepNewTop = new System.Windows.Forms.Button(); this.BtBeepTop = new System.Windows.Forms.Button(); this.BtBeepSuccess = new System.Windows.Forms.Button(); @@ -353,7 +354,7 @@ private void InitializeComponent() this.label1 = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); this.colorDialog1 = new System.Windows.Forms.ColorDialog(); - this.BtBeepUpdated = new System.Windows.Forms.Button(); + this.CbStreamerMode = new System.Windows.Forms.CheckBox(); this.groupBoxMultiplier.SuspendLayout(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).BeginInit(); @@ -2211,7 +2212,7 @@ private void InitializeComponent() // CbAskSaveSettingsOnClose // this.CbAskSaveSettingsOnClose.AutoSize = true; - this.CbAskSaveSettingsOnClose.Location = new System.Drawing.Point(329, 699); + this.CbAskSaveSettingsOnClose.Location = new System.Drawing.Point(435, 721); this.CbAskSaveSettingsOnClose.Name = "CbAskSaveSettingsOnClose"; this.CbAskSaveSettingsOnClose.Size = new System.Drawing.Size(309, 17); this.CbAskSaveSettingsOnClose.TabIndex = 15; @@ -2223,7 +2224,7 @@ private void InitializeComponent() this.groupBox31.Controls.Add(this.CbColorIdOnColorRegionButton); this.groupBox31.Controls.Add(this.CbAlwaysShowAllColorRegions); this.groupBox31.Controls.Add(this.CbHideInvisibleColorRegions); - this.groupBox31.Location = new System.Drawing.Point(329, 283); + this.groupBox31.Location = new System.Drawing.Point(329, 319); this.groupBox31.Name = "groupBox31"; this.groupBox31.Size = new System.Drawing.Size(413, 66); this.groupBox31.TabIndex = 14; @@ -2266,9 +2267,9 @@ private void InitializeComponent() this.groupBox30.Controls.Add(this.BExportSpreadsheetMoveDown); this.groupBox30.Controls.Add(this.BExportSpreadsheetMoveUp); this.groupBox30.Controls.Add(this.ClbExportSpreadsheetFields); - this.groupBox30.Location = new System.Drawing.Point(329, 355); + this.groupBox30.Location = new System.Drawing.Point(329, 391); this.groupBox30.Name = "groupBox30"; - this.groupBox30.Size = new System.Drawing.Size(413, 281); + this.groupBox30.Size = new System.Drawing.Size(413, 268); this.groupBox30.TabIndex = 13; this.groupBox30.TabStop = false; this.groupBox30.Text = "Info to export for spreadsheet"; @@ -2307,9 +2308,9 @@ private void InitializeComponent() // ClbExportSpreadsheetFields // this.ClbExportSpreadsheetFields.FormattingEnabled = true; - this.ClbExportSpreadsheetFields.Location = new System.Drawing.Point(36, 41); + this.ClbExportSpreadsheetFields.Location = new System.Drawing.Point(36, 42); this.ClbExportSpreadsheetFields.Name = "ClbExportSpreadsheetFields"; - this.ClbExportSpreadsheetFields.Size = new System.Drawing.Size(371, 229); + this.ClbExportSpreadsheetFields.Size = new System.Drawing.Size(371, 214); this.ClbExportSpreadsheetFields.TabIndex = 12; // // GbImgCacheLocalAppData @@ -2334,18 +2335,18 @@ private void InitializeComponent() // // groupBox16 // + this.groupBox16.Controls.Add(this.CbStreamerMode); this.groupBox16.Controls.Add(this.cbDevTools); this.groupBox16.Location = new System.Drawing.Point(329, 234); this.groupBox16.Name = "groupBox16"; - this.groupBox16.Size = new System.Drawing.Size(413, 43); + this.groupBox16.Size = new System.Drawing.Size(413, 79); this.groupBox16.TabIndex = 10; this.groupBox16.TabStop = false; - this.groupBox16.Text = "Dev-Tools"; + this.groupBox16.Text = "Application"; // // cbDevTools // - this.cbDevTools.Dock = System.Windows.Forms.DockStyle.Fill; - this.cbDevTools.Location = new System.Drawing.Point(3, 16); + this.cbDevTools.Location = new System.Drawing.Point(6, 44); this.cbDevTools.Name = "cbDevTools"; this.cbDevTools.Size = new System.Drawing.Size(407, 24); this.cbDevTools.TabIndex = 0; @@ -2505,7 +2506,7 @@ private void InitializeComponent() this.groupBox17.Controls.Add(this.LbLanguage2); this.groupBox17.Controls.Add(this.CbbLanguage2); this.groupBox17.Controls.Add(this.CbbLanguage); - this.groupBox17.Location = new System.Drawing.Point(329, 642); + this.groupBox17.Location = new System.Drawing.Point(329, 665); this.groupBox17.Name = "groupBox17"; this.groupBox17.Size = new System.Drawing.Size(413, 51); this.groupBox17.TabIndex = 5; @@ -3363,6 +3364,16 @@ private void InitializeComponent() this.panel2.Size = new System.Drawing.Size(121, 148); this.panel2.TabIndex = 7; // + // BtBeepUpdated + // + this.BtBeepUpdated.Location = new System.Drawing.Point(3, 122); + this.BtBeepUpdated.Name = "BtBeepUpdated"; + this.BtBeepUpdated.Size = new System.Drawing.Size(115, 23); + this.BtBeepUpdated.TabIndex = 5; + this.BtBeepUpdated.Text = "updated"; + this.BtBeepUpdated.UseVisualStyleBackColor = true; + this.BtBeepUpdated.Click += new System.EventHandler(this.BtBeepUpdated_Click); + // // BtBeepNewTop // this.BtBeepNewTop.Location = new System.Drawing.Point(3, 96); @@ -3763,7 +3774,7 @@ private void InitializeComponent() this.customSCCustom.Location = new System.Drawing.Point(6, 139); this.customSCCustom.Name = "customSCCustom"; this.customSCCustom.Size = new System.Drawing.Size(401, 23); - this.customSCCustom.SoundFile = ""; + this.customSCCustom.SoundFile = null; this.customSCCustom.TabIndex = 4; // // customSCWakeup @@ -3771,7 +3782,7 @@ private void InitializeComponent() this.customSCWakeup.Location = new System.Drawing.Point(6, 81); this.customSCWakeup.Name = "customSCWakeup"; this.customSCWakeup.Size = new System.Drawing.Size(401, 23); - this.customSCWakeup.SoundFile = null; + this.customSCWakeup.SoundFile = ""; this.customSCWakeup.TabIndex = 2; // // customSCBirth @@ -3779,7 +3790,7 @@ private void InitializeComponent() this.customSCBirth.Location = new System.Drawing.Point(6, 110); this.customSCBirth.Name = "customSCBirth"; this.customSCBirth.Size = new System.Drawing.Size(401, 23); - this.customSCBirth.SoundFile = null; + this.customSCBirth.SoundFile = ""; this.customSCBirth.TabIndex = 3; // // customSCStarving @@ -3787,7 +3798,7 @@ private void InitializeComponent() this.customSCStarving.Location = new System.Drawing.Point(6, 52); this.customSCStarving.Name = "customSCStarving"; this.customSCStarving.Size = new System.Drawing.Size(401, 23); - this.customSCStarving.SoundFile = ""; + this.customSCStarving.SoundFile = null; this.customSCStarving.TabIndex = 1; // // label20 @@ -4506,15 +4517,14 @@ private void InitializeComponent() this.panel1.Size = new System.Drawing.Size(758, 30); this.panel1.TabIndex = 12; // - // BtBeepUpdated + // CbStreamerMode // - this.BtBeepUpdated.Location = new System.Drawing.Point(3, 122); - this.BtBeepUpdated.Name = "BtBeepUpdated"; - this.BtBeepUpdated.Size = new System.Drawing.Size(115, 23); - this.BtBeepUpdated.TabIndex = 5; - this.BtBeepUpdated.Text = "updated"; - this.BtBeepUpdated.UseVisualStyleBackColor = true; - this.BtBeepUpdated.Click += new System.EventHandler(this.BtBeepUpdated_Click); + this.CbStreamerMode.Location = new System.Drawing.Point(6, 19); + this.CbStreamerMode.Name = "CbStreamerMode"; + this.CbStreamerMode.Size = new System.Drawing.Size(407, 24); + this.CbStreamerMode.TabIndex = 1; + this.CbStreamerMode.Text = "Streamer mode (hide confidential info, e.g. ASB server tag)"; + this.CbStreamerMode.UseVisualStyleBackColor = true; // // Settings // @@ -5008,5 +5018,6 @@ private void InitializeComponent() private System.Windows.Forms.Button BtRemoteServerSettingsUri; private System.Windows.Forms.TextBox TbRemoteServerSettingsUri; private System.Windows.Forms.Button BtBeepUpdated; + private System.Windows.Forms.CheckBox CbStreamerMode; } } \ No newline at end of file diff --git a/ARKBreedingStats/settings/Settings.cs b/ARKBreedingStats/settings/Settings.cs index 31eb0577..cc03cf9a 100644 --- a/ARKBreedingStats/settings/Settings.cs +++ b/ARKBreedingStats/settings/Settings.cs @@ -5,7 +5,6 @@ using System.Drawing; using System.IO; using System.Linq; -using System.Net.Http; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; @@ -439,6 +438,7 @@ private void LoadSettings(CreatureCollection cc) NudSpeciesSelectorCountLastUsed.ValueSave = Properties.Settings.Default.SpeciesSelectorCountLastSpecies; + CbStreamerMode.Checked = Properties.Settings.Default.StreamerMode; cbDevTools.Checked = Properties.Settings.Default.DevTools; cbPrettifyJSON.Checked = Properties.Settings.Default.prettifyCollectionJson; @@ -677,6 +677,7 @@ private void SaveSettings() Properties.Settings.Default.SpeciesSelectorCountLastSpecies = (int)NudSpeciesSelectorCountLastUsed.Value; + Properties.Settings.Default.StreamerMode = CbStreamerMode.Checked; Properties.Settings.Default.DevTools = cbDevTools.Checked; Properties.Settings.Default.prettifyCollectionJson = cbPrettifyJSON.Checked; diff --git a/ARKBreedingStats/uiControls/PopupMessage.cs b/ARKBreedingStats/uiControls/PopupMessage.cs new file mode 100644 index 00000000..d665eddc --- /dev/null +++ b/ARKBreedingStats/uiControls/PopupMessage.cs @@ -0,0 +1,55 @@ +using System; +using System.Drawing; +using System.Windows.Forms; + +namespace ARKBreedingStats.uiControls +{ + internal class PopupMessage : Form + { + private Label _label; + + public PopupMessage() + { + Width = 500; + Height = 400; + FormBorderStyle = FormBorderStyle.None; + ShowInTaskbar = false; + BackColor = Color.Black; + StartPosition = FormStartPosition.CenterParent; + + var lClose = new Label + { + Text = Loc.S("click to close"), + Dock = DockStyle.Bottom, + TextAlign = ContentAlignment.MiddleCenter, + BackColor = Color.LightSalmon + }; + Controls.Add(lClose); + lClose.Click += CloseClick; + + _label = new Label + { + Dock = DockStyle.Fill, + Margin = new Padding(2), + ForeColor = Color.Gainsboro, + TextAlign = ContentAlignment.MiddleCenter + }; + Controls.Add(_label); + _label.Click += CloseClick; + } + + public PopupMessage(string message, float fontSize = 8.25f) : this() + { + if (fontSize != 8.25f) + _label.Font = new Font(_label.Font.FontFamily, fontSize); + _label.Text = message; + } + + public static void Show(Form parent, string message, float fontSize = 8.25f) + { + new PopupMessage(message, fontSize).ShowDialog(parent); + } + + private void CloseClick(object sender, EventArgs e) => Close(); + } +} From 9723d551f9fe764ff7f4383ebd0587cca11c882b Mon Sep 17 00:00:00 2001 From: cadon Date: Sat, 20 Jan 2024 18:33:05 +0100 Subject: [PATCH 13/29] popup border --- ARKBreedingStats/uiControls/PopupMessage.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ARKBreedingStats/uiControls/PopupMessage.cs b/ARKBreedingStats/uiControls/PopupMessage.cs index d665eddc..daad7823 100644 --- a/ARKBreedingStats/uiControls/PopupMessage.cs +++ b/ARKBreedingStats/uiControls/PopupMessage.cs @@ -14,7 +14,8 @@ public PopupMessage() Height = 400; FormBorderStyle = FormBorderStyle.None; ShowInTaskbar = false; - BackColor = Color.Black; + BackColor = Color.LightGray; + Padding = new Padding(2); StartPosition = FormStartPosition.CenterParent; var lClose = new Label @@ -30,8 +31,8 @@ public PopupMessage() _label = new Label { Dock = DockStyle.Fill, - Margin = new Padding(2), ForeColor = Color.Gainsboro, + BackColor = Color.Black, TextAlign = ContentAlignment.MiddleCenter }; Controls.Add(_label); From 8bcb85efcd55cde4653ff49d6942fe78f8c4cbd8 Mon Sep 17 00:00:00 2001 From: cadon Date: Sat, 20 Jan 2024 18:33:18 +0100 Subject: [PATCH 14/29] stop ASB server listening on close --- ARKBreedingStats/Form1.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs index a9f3ea3a..68039a4d 100644 --- a/ARKBreedingStats/Form1.cs +++ b/ARKBreedingStats/Form1.cs @@ -1351,6 +1351,7 @@ private void Form1_FormClosed(object sender, FormClosedEventArgs e) // remove old cache-files CreatureColored.CleanupCache(); + AsbServerStopListening(false); _tt?.Dispose(); _timerGlobal?.Dispose(); } @@ -3887,10 +3888,11 @@ private void AsbServerStartListening() Task.Factory.StartNew(() => AsbServer.Connection.StartListeningAsync(progressReporter, Properties.Settings.Default.ExportServerToken)); } - private void AsbServerStopListening() + private void AsbServerStopListening(bool displayMessage = true) { AsbServer.Connection.StopListening(); - SetMessageLabelText($"ASB Server listening stopped using token: {Connection.TokenStringForDisplay(Properties.Settings.Default.ExportServerToken)}", MessageBoxIcon.Error); + if (displayMessage) + SetMessageLabelText($"ASB Server listening stopped using token: {Connection.TokenStringForDisplay(Properties.Settings.Default.ExportServerToken)}", MessageBoxIcon.Error); } private void sendExampleCreatureToolStripMenuItem_Click(object sender, EventArgs e) From bf2e364191ffa1fb302e601da9ccec4c11fd19e7 Mon Sep 17 00:00:00 2001 From: cadon Date: Sun, 21 Jan 2024 14:03:43 +0100 Subject: [PATCH 15/29] removed unintentional initializing on deserialization --- ARKBreedingStats/ocr/OCRControl.cs | 2 +- ARKBreedingStats/ocr/OCRTemplate.cs | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ARKBreedingStats/ocr/OCRControl.cs b/ARKBreedingStats/ocr/OCRControl.cs index fcfff40f..3136bc76 100644 --- a/ARKBreedingStats/ocr/OCRControl.cs +++ b/ARKBreedingStats/ocr/OCRControl.cs @@ -590,7 +590,7 @@ private void btUnloadOCR_Click(object sender, EventArgs e) private void BtNewOcrConfig_Click(object sender, EventArgs e) { var currentOcrConfig = ArkOcr.Ocr.ocrConfig; - ArkOcr.Ocr.ocrConfig = new OcrTemplate(); + ArkOcr.Ocr.ocrConfig = new OcrTemplate(true); if (SaveOcrFileAs()) return; // user doesn't want to create new config, reset to old one diff --git a/ARKBreedingStats/ocr/OCRTemplate.cs b/ARKBreedingStats/ocr/OCRTemplate.cs index 20b73bff..3da6faf2 100644 --- a/ARKBreedingStats/ocr/OCRTemplate.cs +++ b/ARKBreedingStats/ocr/OCRTemplate.cs @@ -40,7 +40,7 @@ public class OcrTemplate /// /// Coordinates of the rectangles to read. Kept for backwards compatibility, now uses LabelRectangles. /// - [JsonProperty] + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public Rectangle[] labelRectangles; /// @@ -61,10 +61,11 @@ public class OcrTemplate public List> reducedIndices = new List>(); // indices of letters for reduced set (only [0-9\.,/%:]) - public OcrTemplate() + public OcrTemplate(bool initialize) { Version = new Version(CurrentVersion); - InitializeOcrTemplate(); + if (initialize) + InitializeOcrTemplate(); } public void InitializeOcrTemplate() From 3703e9817aba09ee07d45a98514ac166844172e2 Mon Sep 17 00:00:00 2001 From: cadon Date: Sun, 21 Jan 2024 14:04:16 +0100 Subject: [PATCH 16/29] converted to new format to avoid issues with false initialization --- ARKBreedingStats/json/ocr/ocr_1920x1080_100.json | 2 +- ARKBreedingStats/json/ocr/ocr_2560x1440_100.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ARKBreedingStats/json/ocr/ocr_1920x1080_100.json b/ARKBreedingStats/json/ocr/ocr_1920x1080_100.json index 23da53e4..e06d6e71 100644 --- a/ARKBreedingStats/json/ocr/ocr_1920x1080_100.json +++ b/ARKBreedingStats/json/ocr/ocr_1920x1080_100.json @@ -1 +1 @@ -{"Version":"2.0","description":null,"resize":1.0,"resolutionWidth":1920,"resolutionHeight":1080,"statDistance":0,"guiZoom":100,"RecognitionPatterns":{"Texts":[{"Text":"!","Patterns":[{"y":0,"Data":[2,12,14679551]},{"y":0,"Data":[1,10,895]}]},{"Text":"\"","Patterns":[{"y":0,"Data":[5,4,987377]},{"y":0,"Data":[4,3,3595]}]},{"Text":"#","Patterns":[{"y":0,"Data":[13,12,-5675593754190184176,1806490977058232337,1577345]},{"y":0,"Data":[11,10,-4526032829485600692,829739179836]}]},{"Text":"$","Patterns":[{"y":0,"Data":[7,12,-3573634383000125384,248894]},{"y":0,"Data":[6,10,259439581955807260]}]},{"Text":"%","Patterns":[{"y":0,"Data":[11,12,134599147163596804,132918339478960134,7]},{"y":0,"Data":[10,11,-7492051260306076666,30841146759792]},{"y":0,"Data":[9,10,7449013377828664838,63017188]},{"y":0,"Data":[9,10,8011956633315583495,62951652]}]},{"Text":"&","Patterns":[{"y":0,"Data":[10,12,4351539627639693576,1693112599339974]},{"y":0,"Data":[9,10,-8338676649610969914,1063967]}]},{"Text":"'","Patterns":[{"y":0,"Data":[2,4,241]},{"y":0,"Data":[2,2,7]}]},{"Text":"(","Patterns":[{"y":0,"Data":[4,15,576528938667213248]},{"y":0,"Data":[3,13,412417515760]},{"y":0,"Data":[3,15,26396868939768]}]},{"Text":")","Patterns":[{"y":0,"Data":[4,15,15780187594014721]},{"y":0,"Data":[3,13,68516179969]}]},{"Text":"*","Patterns":[{"y":0,"Data":[5,5,4595332]},{"y":0,"Data":[4,4,42850]}]},{"Text":"+","Patterns":[{"y":5,"Data":[6,6,13102793484]},{"y":3,"Data":[5,6,204731148]}]},{"Text":",","Patterns":[{"y":10,"Data":[3,4,508]},{"y":10,"Data":[3,3,126]},{"y":9,"Data":[2,3,30]}]},{"Text":"-","Patterns":[{"y":7,"Data":[4,2,255]},{"y":5,"Data":[3,2,63]}]},{"Text":".","Patterns":[{"y":10,"Data":[2,2,15]},{"y":8,"Data":[2,2,15]},{"y":8,"Data":[1,2,3]}]},{"Text":"/","Patterns":[{"y":0,"Data":[8,12,-2290065002308040704,1049344]},{"y":0,"Data":[7,11,252695124297384960,4]},{"y":0,"Data":[7,10,1156314657855504896,0]},{"y":0,"Data":[6,10,1133626670908160]}]},{"Text":"0","Patterns":[{"y":0,"Data":[10,12,4324511409900601584,17952408180884416]},{"y":0,"Data":[10,11,135173988541264120,4140321273871]},{"y":0,"Data":[9,10,4325427893140715640,16547824]}]},{"Text":"1","Patterns":[{"y":0,"Data":[3,12,68702707714]},{"y":0,"Data":[3,11,8585746434]},{"y":0,"Data":[3,10,1073740801]}]},{"Text":"2","Patterns":[{"y":0,"Data":[8,12,4432650607404264448,3287056076]},{"y":0,"Data":[8,11,3597319504896466432,12654843]},{"y":0,"Data":[7,10,-1373771675889563904,48]}]},{"Text":"3","Patterns":[{"y":0,"Data":[8,12,4351539627643911170,969408198]},{"y":0,"Data":[7,11,4171244095319055875,3963]},{"y":0,"Data":[7,10,-1153148225409202431,28]}]},{"Text":"4","Patterns":[{"y":0,"Data":[9,12,3534782280039661952,1103790862608]},{"y":0,"Data":[8,11,-4568775273204481600,3153888]},{"y":0,"Data":[8,10,-8078117213996597056,8255]}]},{"Text":"5","Patterns":[{"y":0,"Data":[7,12,4351535228523789375,246654]},{"y":0,"Data":[7,11,-1088995471009935809,513]},{"y":0,"Data":[6,10,542597737130510111]}]},{"Text":"6","Patterns":[{"y":0,"Data":[9,12,4338869619491013056,4125283328707]},{"y":0,"Data":[8,11,1792780293042585824,8132803]},{"y":0,"Data":[8,10,893429643454443760,14367]}]},{"Text":"7","Patterns":[{"y":0,"Data":[8,12,3585833139966062595,15736583]},{"y":0,"Data":[8,11,2129700729988847619,24636]},{"y":0,"Data":[7,10,8085150145732674561,0]},{"y":0,"Data":[8,10,8103226357411480577,64]}]},{"Text":"8","Patterns":[{"y":0,"Data":[9,12,4351539627975107456,8300023018438]},{"y":0,"Data":[8,11,1865401086104304064,8116719]},{"y":0,"Data":[8,10,-223190121080963900,29118]}]},{"Text":"9","Patterns":[{"y":0,"Data":[9,12,4378567770993319960,533110932332]},{"y":0,"Data":[8,11,-5717851056935669732,1034125]},{"y":0,"Data":[8,10,8252179774253890572,3975]}]},{"Text":":","Patterns":[{"y":3,"Data":[1,9,387]},{"y":2,"Data":[1,8,195]},{"y":3,"Data":[2,9,198531]}]},{"Text":";","Patterns":[{"y":3,"Data":[3,11,3774350336]},{"y":2,"Data":[3,10,138284544]}]},{"Text":"<","Patterns":[{"y":4,"Data":[7,7,438925902941704]},{"y":3,"Data":[6,6,55605576460]}]},{"Text":"=","Patterns":[{"y":5,"Data":[6,5,935194491]},{"y":4,"Data":[5,4,768955]}]},{"Text":">","Patterns":[{"y":4,"Data":[7,7,124121447510499]},{"y":3,"Data":[6,6,13360639203]}]},{"Text":"?","Patterns":[{"y":0,"Data":[8,12,3486637399386107906,8404486]},{"y":0,"Data":[7,10,4646607660775228417,0]}]},{"Text":"@","Patterns":[{"y":0,"Data":[16,15,7350093424881304000,-7270718866723136000,-9195228645226820212,17318379831393]},{"y":0,"Data":[14,13,-7199565064100151056,-62648989679651173,1108839793629196]}]},{"Text":"A","Patterns":[{"y":0,"Data":[12,12,8078903044008315904,33779127974727448,32782]},{"y":0,"Data":[10,10,-2194305236006927616,51568975367]},{"y":0,"Data":[12,12,8087373147937966080,-9205918423200987376,49167]}]},{"Text":"B","Patterns":[{"y":0,"Data":[8,12,4351533028967710719,2112815046]},{"y":0,"Data":[7,10,-238952719835199489,30]}]},{"Text":"C","Patterns":[{"y":0,"Data":[10,12,4324406062942765152,54091590150128576]},{"y":0,"Data":[9,10,2019584885671589944,50446448]}]},{"Text":"D","Patterns":[{"y":0,"Data":[10,12,4324511431203487743,4367244623348672]},{"y":0,"Data":[8,10,4327679692952569855,16280]}]},{"Text":"E","Patterns":[{"y":0,"Data":[8,12,4351539627644420095,3222037446]},{"y":0,"Data":[6,10,920759402994911231]}]},{"Text":"F","Patterns":[{"y":0,"Data":[7,12,3486637341404561407,25350]},{"y":0,"Data":[6,10,55223024169830399]}]},{"Text":"G","Patterns":[{"y":0,"Data":[10,12,4324546800431120480,69858037136622528]},{"y":0,"Data":[9,10,2019584885671589944,65140848]}]},{"Text":"H","Patterns":[{"y":0,"Data":[10,12,27028196461379583,72057589843648518]},{"y":0,"Data":[8,10,54096023676568575,65475]}]},{"Text":"I","Patterns":[{"y":0,"Data":[2,12,16777215]},{"y":0,"Data":[1,10,1023]}]},{"Text":"J","Patterns":[{"y":0,"Data":[4,12,70334380248064]},{"y":0,"Data":[3,10,536609536]}]},{"Text":"K","Patterns":[{"y":0,"Data":[10,12,-9155811445357674497,36059599995080221]},{"y":0,"Data":[9,10,3681811502760723455,33603704]}]},{"Text":"L","Patterns":[{"y":0,"Data":[6,12,864902286244052991,192]},{"y":0,"Data":[5,10,845250369946623]}]},{"Text":"M","Patterns":[{"y":0,"Data":[12,12,252218072276991999,-71810821926223648,65535]},{"y":0,"Data":[10,10,1009791719497015295,68652828430]}]},{"Text":"N","Patterns":[{"y":0,"Data":[10,12,31526846893948927,72057591622238220]},{"y":0,"Data":[9,10,216225584456409087,67108824]}]},{"Text":"O","Patterns":[{"y":0,"Data":[12,12,4324511684778508384,-256445677905902656,3843]},{"y":0,"Data":[10,10,2019584883524106296,17075519728]}]},{"Text":"P","Patterns":[{"y":0,"Data":[8,12,3513656738551169023,65044230]},{"y":0,"Data":[7,10,-2275389783044782081,0]}]},{"Text":"Q","Patterns":[{"y":0,"Data":[12,15,3567099134693212256,249956857632790720,32989629351804]},{"y":0,"Data":[10,13,3463690901644099640,2288329816673371650,0]}]},{"Text":"R","Patterns":[{"y":0,"Data":[9,12,3513656738551169023,8799346177854]},{"y":0,"Data":[8,10,-689911607977834497,32816]}]},{"Text":"S","Patterns":[{"y":0,"Data":[9,12,4351539627644149788,4133876425670]},{"y":0,"Data":[8,10,2073680907601738766,30815]}]},{"Text":"T","Patterns":[{"y":0,"Data":[8,12,4611685949758255107,3146496]},{"y":0,"Data":[7,10,1154049602464252929,0]}]},{"Text":"U","Patterns":[{"y":0,"Data":[10,12,864902286235661311,4494800850780352]},{"y":0,"Data":[8,10,865536378825212415,32728]}]},{"Text":"V","Patterns":[{"y":0,"Data":[12,12,1116925695017218051,504949032470118624,16]},{"y":0,"Data":[10,10,1009791994408483843,67571471]}]},{"Text":"W","Patterns":[{"y":0,"Data":[14,12,-9097007296847810545,-9214646046281429245,8455516175]},{"y":0,"Data":[13,10,3466707627345442831,76560158593910656,0]}]},{"Text":"X","Patterns":[{"y":0,"Data":[11,12,141926911075956737,126231692548632591,8]},{"y":0,"Data":[10,10,-4476516203142312447,34477269452]}]},{"Text":"Y","Patterns":[{"y":0,"Data":[10,12,1143918154112593921,52841012031740]},{"y":0,"Data":[9,10,-2241684246565483519,65728]}]},{"Text":"Z","Patterns":[{"y":0,"Data":[8,12,-4885334407164969469,3229355969]},{"y":0,"Data":[7,10,4332196512590137217,48]}]},{"Text":"[","Patterns":[{"y":0,"Data":[4,15,864823074145435647]},{"y":0,"Data":[4,13,3378661927419903]}]},{"Text":"\\","Patterns":[{"y":0,"Data":[8,12,126108486617591811,2148270192]},{"y":0,"Data":[7,10,865183829952830465,32]}]},{"Text":"]","Patterns":[{"y":0,"Data":[4,15,1152921504338534403]},{"y":0,"Data":[3,13,549739051009]}]},{"Text":"^","Patterns":[{"y":0,"Data":[7,6,2224894561824]},{"y":0,"Data":[6,5,820088208]}]},{"Text":"_","Patterns":[{"y":12,"Data":[8,2,65535]},{"y":10,"Data":[7,2,16383]}]},{"Text":"`","Patterns":[{"y":0,"Data":[4,2,181]},{"y":0,"Data":[3,1,7]}]},{"Text":"a","Patterns":[{"y":3,"Data":[7,9,9192507906305549536]},{"y":2,"Data":[6,8,279669406167664]}]},{"Text":"b","Patterns":[{"y":0,"Data":[7,12,871659335216861183,254071]},{"y":0,"Data":[6,10,568465942083544063]}]},{"Text":"c","Patterns":[{"y":3,"Data":[7,9,6967200823140547704]},{"y":2,"Data":[6,8,215245570342460]}]},{"Text":"d","Patterns":[{"y":0,"Data":[8,12,871659335749403584,4294967233]},{"y":0,"Data":[7,10,-271840546660112,63]}]},{"Text":"e","Patterns":[{"y":3,"Data":[8,9,7472132848649632824,14]},{"y":2,"Data":[7,8,8126335215697468]},{"y":3,"Data":[7,7,55476904689468]}]},{"Text":"f","Patterns":[{"y":0,"Data":[5,12,283193416728574]},{"y":0,"Data":[4,10,1087387647]},{"y":0,"Data":[4,10,9676258300]}]},{"Text":"g","Patterns":[{"y":3,"Data":[8,12,4432624217029075064,1072168904]},{"y":2,"Data":[7,11,-5561846539751364,2041]}]},{"Text":"h","Patterns":[{"y":0,"Data":[7,12,6757048977133567,1044735]},{"y":0,"Data":[6,10,1143940706524472319]}]},{"Text":"i","Patterns":[{"y":0,"Data":[1,12,4091]},{"y":0,"Data":[1,10,1021]},{"y":0,"Data":[3,12,1090502643]},{"y":1,"Data":[1,9,509]},{"y":1,"Data":[2,9,261117]},{"y":0,"Data":[2,12,16760827]}]},{"Text":"j","Patterns":[{"y":0,"Data":[2,15,1073602560]},{"y":0,"Data":[2,13,33537024]}]},{"Text":"k","Patterns":[{"y":0,"Data":[8,12,-9000424613577814017,2215440633]},{"y":0,"Data":[7,10,928810467592250367,32]}]},{"Text":"l","Patterns":[{"y":0,"Data":[1,12,4095]},{"y":0,"Data":[1,10,1023]}]},{"Text":"m","Patterns":[{"y":3,"Data":[12,9,9205287476162727423,17488973005569]},{"y":2,"Data":[10,8,217016098992816895,65027]},{"y":3,"Data":[11,7,-9006623177486319745,3903]}]},{"Text":"n","Patterns":[{"y":3,"Data":[7,9,9205287476162727423]},{"y":2,"Data":[6,8,279301773722367]}]},{"Text":"o","Patterns":[{"y":3,"Data":[8,9,3580493903357934712,126]},{"y":2,"Data":[7,8,35684390097092156]}]},{"Text":"p","Patterns":[{"y":3,"Data":[7,12,-2196885592294801409,31758]},{"y":2,"Data":[6,11,4471618708997283839,0]}]},{"Text":"q","Patterns":[{"y":3,"Data":[8,12,3567721930789216376,4293918488]},{"y":2,"Data":[7,11,-32596644889104324,8187]}]},{"Text":"r","Patterns":[{"y":3,"Data":[4,9,403181055]},{"y":2,"Data":[3,8,197375]},{"y":3,"Data":[5,9,137709223935]}]},{"Text":"s","Patterns":[{"y":3,"Data":[7,9,4088841016286592012]},{"y":2,"Data":[6,8,126287534086670]},{"y":3,"Data":[8,9,8986505593863748616,112]}]},{"Text":"t","Patterns":[{"y":2,"Data":[4,10,831888817407]},{"y":1,"Data":[4,9,52447411455]}]},{"Text":"u","Patterns":[{"y":3,"Data":[7,9,9214338500961435903]},{"y":2,"Data":[6,8,280922012303615]}]},{"Text":"v","Patterns":[{"y":3,"Data":[8,9,-8948760151530128377,1]},{"y":2,"Data":[7,8,861161896549895]}]},{"Text":"w","Patterns":[{"y":3,"Data":[12,9,270466176792985095,107370102844]},{"y":2,"Data":[11,8,-2288946752006357497,69624]}]},{"Text":"x","Patterns":[{"y":3,"Data":[8,9,-2244543304241541373,128]},{"y":2,"Data":[7,8,36525150153008771]}]},{"Text":"y","Patterns":[{"y":3,"Data":[8,12,-9088127652882948089,3149575]},{"y":2,"Data":[7,11,542546870131552263,12]}]},{"Text":"z","Patterns":[{"y":3,"Data":[7,9,6985639089849468800]},{"y":2,"Data":[6,8,144652815819715]}]},{"Text":"{","Patterns":[{"y":0,"Data":[5,15,2290062676612612480,1024]},{"y":0,"Data":[4,13,3378519994007648]}]},{"Text":"|","Patterns":[{"y":0,"Data":[2,15,1073741823]},{"y":0,"Data":[1,13,8191]}]},{"Text":"}","Patterns":[{"y":0,"Data":[5,15,15771391554994177,24]},{"y":0,"Data":[4,13,52792730841089]}]},{"Text":"~","Patterns":[{"y":6,"Data":[6,3,222362]},{"y":5,"Data":[5,2,703]}]},{"Text":"♀","Patterns":[{"y":0,"Data":[22,15,72023508120469630,15763114108125432,-4607463764923645892,2233851387752603655,-1143931348285667392,3]}]},{"Text":"♂","Patterns":[{"y":0,"Data":[21,15,-33812185335986240,216179379686882816,13511211203166336,-1144054909694640104,15784582485901119]}]}],"TrainingSettings":{"IsTrainingEnabled":false,"SkipName":false,"SkipTribe":false,"SkipOwner":false}},"labelRectangles":["989, 509, 129, 14","989, 552, 129, 14","989, 595, 129, 14","989, 638, 129, 14","989, 681, 129, 14","989, 724, 129, 14","989, 767, 129, 14","989, 810, 129, 14","989, 853, 129, 14","857, 199, 206, 15","850, 164, 219, 15","877, 233, 168, 13","892, 273, 150, 13"]} \ No newline at end of file +{"Version":"2.0","description":null,"resize":1.0,"resolutionWidth":1920,"resolutionHeight":1080,"statDistance":0,"guiZoom":100,"RecognitionPatterns":{"Texts":[{"Text":"!","Patterns":[{"y":0,"Data":[2,12,14679551]},{"y":0,"Data":[1,10,895]}]},{"Text":"\"","Patterns":[{"y":0,"Data":[5,4,987377]},{"y":0,"Data":[4,3,3595]}]},{"Text":"#","Patterns":[{"y":0,"Data":[13,12,-5675593754190184176,1806490977058232337,1577345]},{"y":0,"Data":[11,10,-4526032829485600692,829739179836]}]},{"Text":"$","Patterns":[{"y":0,"Data":[7,12,-3573634383000125384,248894]},{"y":0,"Data":[6,10,259439581955807260]}]},{"Text":"%","Patterns":[{"y":0,"Data":[11,12,134599147163596804,132918339478960134,7]},{"y":0,"Data":[10,11,-7492051260306076666,30841146759792]},{"y":0,"Data":[9,10,7449013377828664838,63017188]},{"y":0,"Data":[9,10,8011956633315583495,62951652]}]},{"Text":"&","Patterns":[{"y":0,"Data":[10,12,4351539627639693576,1693112599339974]},{"y":0,"Data":[9,10,-8338676649610969914,1063967]}]},{"Text":"'","Patterns":[{"y":0,"Data":[2,4,241]},{"y":0,"Data":[2,2,7]}]},{"Text":"(","Patterns":[{"y":0,"Data":[4,15,576528938667213248]},{"y":0,"Data":[3,13,412417515760]},{"y":0,"Data":[3,15,26396868939768]}]},{"Text":")","Patterns":[{"y":0,"Data":[4,15,15780187594014721]},{"y":0,"Data":[3,13,68516179969]}]},{"Text":"*","Patterns":[{"y":0,"Data":[5,5,4595332]},{"y":0,"Data":[4,4,42850]}]},{"Text":"+","Patterns":[{"y":5,"Data":[6,6,13102793484]},{"y":3,"Data":[5,6,204731148]}]},{"Text":",","Patterns":[{"y":10,"Data":[3,4,508]},{"y":10,"Data":[3,3,126]},{"y":9,"Data":[2,3,30]}]},{"Text":"-","Patterns":[{"y":7,"Data":[4,2,255]},{"y":5,"Data":[3,2,63]}]},{"Text":".","Patterns":[{"y":10,"Data":[2,2,15]},{"y":8,"Data":[2,2,15]},{"y":8,"Data":[1,2,3]}]},{"Text":"/","Patterns":[{"y":0,"Data":[8,12,-2290065002308040704,1049344]},{"y":0,"Data":[7,11,252695124297384960,4]},{"y":0,"Data":[7,10,1156314657855504896,0]},{"y":0,"Data":[6,10,1133626670908160]}]},{"Text":"0","Patterns":[{"y":0,"Data":[10,12,4324511409900601584,17952408180884416]},{"y":0,"Data":[10,11,135173988541264120,4140321273871]},{"y":0,"Data":[9,10,4325427893140715640,16547824]}]},{"Text":"1","Patterns":[{"y":0,"Data":[3,12,68702707714]},{"y":0,"Data":[3,11,8585746434]},{"y":0,"Data":[3,10,1073740801]}]},{"Text":"2","Patterns":[{"y":0,"Data":[8,12,4432650607404264448,3287056076]},{"y":0,"Data":[8,11,3597319504896466432,12654843]},{"y":0,"Data":[7,10,-1373771675889563904,48]}]},{"Text":"3","Patterns":[{"y":0,"Data":[8,12,4351539627643911170,969408198]},{"y":0,"Data":[7,11,4171244095319055875,3963]},{"y":0,"Data":[7,10,-1153148225409202431,28]}]},{"Text":"4","Patterns":[{"y":0,"Data":[9,12,3534782280039661952,1103790862608]},{"y":0,"Data":[8,11,-4568775273204481600,3153888]},{"y":0,"Data":[8,10,-8078117213996597056,8255]}]},{"Text":"5","Patterns":[{"y":0,"Data":[7,12,4351535228523789375,246654]},{"y":0,"Data":[7,11,-1088995471009935809,513]},{"y":0,"Data":[6,10,542597737130510111]}]},{"Text":"6","Patterns":[{"y":0,"Data":[9,12,4338869619491013056,4125283328707]},{"y":0,"Data":[8,11,1792780293042585824,8132803]},{"y":0,"Data":[8,10,893429643454443760,14367]}]},{"Text":"7","Patterns":[{"y":0,"Data":[8,12,3585833139966062595,15736583]},{"y":0,"Data":[8,11,2129700729988847619,24636]},{"y":0,"Data":[7,10,8085150145732674561,0]},{"y":0,"Data":[8,10,8103226357411480577,64]}]},{"Text":"8","Patterns":[{"y":0,"Data":[9,12,4351539627975107456,8300023018438]},{"y":0,"Data":[8,11,1865401086104304064,8116719]},{"y":0,"Data":[8,10,-223190121080963900,29118]}]},{"Text":"9","Patterns":[{"y":0,"Data":[9,12,4378567770993319960,533110932332]},{"y":0,"Data":[8,11,-5717851056935669732,1034125]},{"y":0,"Data":[8,10,8252179774253890572,3975]}]},{"Text":":","Patterns":[{"y":3,"Data":[1,9,387]},{"y":2,"Data":[1,8,195]},{"y":3,"Data":[2,9,198531]}]},{"Text":";","Patterns":[{"y":3,"Data":[3,11,3774350336]},{"y":2,"Data":[3,10,138284544]}]},{"Text":"<","Patterns":[{"y":4,"Data":[7,7,438925902941704]},{"y":3,"Data":[6,6,55605576460]}]},{"Text":"=","Patterns":[{"y":5,"Data":[6,5,935194491]},{"y":4,"Data":[5,4,768955]}]},{"Text":">","Patterns":[{"y":4,"Data":[7,7,124121447510499]},{"y":3,"Data":[6,6,13360639203]}]},{"Text":"?","Patterns":[{"y":0,"Data":[8,12,3486637399386107906,8404486]},{"y":0,"Data":[7,10,4646607660775228417,0]}]},{"Text":"@","Patterns":[{"y":0,"Data":[16,15,7350093424881304000,-7270718866723136000,-9195228645226820212,17318379831393]},{"y":0,"Data":[14,13,-7199565064100151056,-62648989679651173,1108839793629196]}]},{"Text":"A","Patterns":[{"y":0,"Data":[12,12,8078903044008315904,33779127974727448,32782]},{"y":0,"Data":[10,10,-2194305236006927616,51568975367]},{"y":0,"Data":[12,12,8087373147937966080,-9205918423200987376,49167]}]},{"Text":"B","Patterns":[{"y":0,"Data":[8,12,4351533028967710719,2112815046]},{"y":0,"Data":[7,10,-238952719835199489,30]}]},{"Text":"C","Patterns":[{"y":0,"Data":[10,12,4324406062942765152,54091590150128576]},{"y":0,"Data":[9,10,2019584885671589944,50446448]}]},{"Text":"D","Patterns":[{"y":0,"Data":[10,12,4324511431203487743,4367244623348672]},{"y":0,"Data":[8,10,4327679692952569855,16280]}]},{"Text":"E","Patterns":[{"y":0,"Data":[8,12,4351539627644420095,3222037446]},{"y":0,"Data":[6,10,920759402994911231]}]},{"Text":"F","Patterns":[{"y":0,"Data":[7,12,3486637341404561407,25350]},{"y":0,"Data":[6,10,55223024169830399]}]},{"Text":"G","Patterns":[{"y":0,"Data":[10,12,4324546800431120480,69858037136622528]},{"y":0,"Data":[9,10,2019584885671589944,65140848]}]},{"Text":"H","Patterns":[{"y":0,"Data":[10,12,27028196461379583,72057589843648518]},{"y":0,"Data":[8,10,54096023676568575,65475]}]},{"Text":"I","Patterns":[{"y":0,"Data":[2,12,16777215]},{"y":0,"Data":[1,10,1023]}]},{"Text":"J","Patterns":[{"y":0,"Data":[4,12,70334380248064]},{"y":0,"Data":[3,10,536609536]}]},{"Text":"K","Patterns":[{"y":0,"Data":[10,12,-9155811445357674497,36059599995080221]},{"y":0,"Data":[9,10,3681811502760723455,33603704]}]},{"Text":"L","Patterns":[{"y":0,"Data":[6,12,864902286244052991,192]},{"y":0,"Data":[5,10,845250369946623]}]},{"Text":"M","Patterns":[{"y":0,"Data":[12,12,252218072276991999,-71810821926223648,65535]},{"y":0,"Data":[10,10,1009791719497015295,68652828430]}]},{"Text":"N","Patterns":[{"y":0,"Data":[10,12,31526846893948927,72057591622238220]},{"y":0,"Data":[9,10,216225584456409087,67108824]}]},{"Text":"O","Patterns":[{"y":0,"Data":[12,12,4324511684778508384,-256445677905902656,3843]},{"y":0,"Data":[10,10,2019584883524106296,17075519728]}]},{"Text":"P","Patterns":[{"y":0,"Data":[8,12,3513656738551169023,65044230]},{"y":0,"Data":[7,10,-2275389783044782081,0]}]},{"Text":"Q","Patterns":[{"y":0,"Data":[12,15,3567099134693212256,249956857632790720,32989629351804]},{"y":0,"Data":[10,13,3463690901644099640,2288329816673371650,0]}]},{"Text":"R","Patterns":[{"y":0,"Data":[9,12,3513656738551169023,8799346177854]},{"y":0,"Data":[8,10,-689911607977834497,32816]}]},{"Text":"S","Patterns":[{"y":0,"Data":[9,12,4351539627644149788,4133876425670]},{"y":0,"Data":[8,10,2073680907601738766,30815]}]},{"Text":"T","Patterns":[{"y":0,"Data":[8,12,4611685949758255107,3146496]},{"y":0,"Data":[7,10,1154049602464252929,0]}]},{"Text":"U","Patterns":[{"y":0,"Data":[10,12,864902286235661311,4494800850780352]},{"y":0,"Data":[8,10,865536378825212415,32728]}]},{"Text":"V","Patterns":[{"y":0,"Data":[12,12,1116925695017218051,504949032470118624,16]},{"y":0,"Data":[10,10,1009791994408483843,67571471]}]},{"Text":"W","Patterns":[{"y":0,"Data":[14,12,-9097007296847810545,-9214646046281429245,8455516175]},{"y":0,"Data":[13,10,3466707627345442831,76560158593910656,0]}]},{"Text":"X","Patterns":[{"y":0,"Data":[11,12,141926911075956737,126231692548632591,8]},{"y":0,"Data":[10,10,-4476516203142312447,34477269452]}]},{"Text":"Y","Patterns":[{"y":0,"Data":[10,12,1143918154112593921,52841012031740]},{"y":0,"Data":[9,10,-2241684246565483519,65728]}]},{"Text":"Z","Patterns":[{"y":0,"Data":[8,12,-4885334407164969469,3229355969]},{"y":0,"Data":[7,10,4332196512590137217,48]}]},{"Text":"[","Patterns":[{"y":0,"Data":[4,15,864823074145435647]},{"y":0,"Data":[4,13,3378661927419903]}]},{"Text":"\\","Patterns":[{"y":0,"Data":[8,12,126108486617591811,2148270192]},{"y":0,"Data":[7,10,865183829952830465,32]}]},{"Text":"]","Patterns":[{"y":0,"Data":[4,15,1152921504338534403]},{"y":0,"Data":[3,13,549739051009]}]},{"Text":"^","Patterns":[{"y":0,"Data":[7,6,2224894561824]},{"y":0,"Data":[6,5,820088208]}]},{"Text":"_","Patterns":[{"y":12,"Data":[8,2,65535]},{"y":10,"Data":[7,2,16383]}]},{"Text":"`","Patterns":[{"y":0,"Data":[4,2,181]},{"y":0,"Data":[3,1,7]}]},{"Text":"a","Patterns":[{"y":3,"Data":[7,9,9192507906305549536]},{"y":2,"Data":[6,8,279669406167664]}]},{"Text":"b","Patterns":[{"y":0,"Data":[7,12,871659335216861183,254071]},{"y":0,"Data":[6,10,568465942083544063]}]},{"Text":"c","Patterns":[{"y":3,"Data":[7,9,6967200823140547704]},{"y":2,"Data":[6,8,215245570342460]}]},{"Text":"d","Patterns":[{"y":0,"Data":[8,12,871659335749403584,4294967233]},{"y":0,"Data":[7,10,-271840546660112,63]}]},{"Text":"e","Patterns":[{"y":3,"Data":[8,9,7472132848649632824,14]},{"y":2,"Data":[7,8,8126335215697468]},{"y":3,"Data":[7,7,55476904689468]}]},{"Text":"f","Patterns":[{"y":0,"Data":[5,12,283193416728574]},{"y":0,"Data":[4,10,1087387647]},{"y":0,"Data":[4,10,9676258300]}]},{"Text":"g","Patterns":[{"y":3,"Data":[8,12,4432624217029075064,1072168904]},{"y":2,"Data":[7,11,-5561846539751364,2041]}]},{"Text":"h","Patterns":[{"y":0,"Data":[7,12,6757048977133567,1044735]},{"y":0,"Data":[6,10,1143940706524472319]}]},{"Text":"i","Patterns":[{"y":0,"Data":[1,12,4091]},{"y":0,"Data":[1,10,1021]},{"y":0,"Data":[3,12,1090502643]},{"y":1,"Data":[1,9,509]},{"y":1,"Data":[2,9,261117]},{"y":0,"Data":[2,12,16760827]}]},{"Text":"j","Patterns":[{"y":0,"Data":[2,15,1073602560]},{"y":0,"Data":[2,13,33537024]}]},{"Text":"k","Patterns":[{"y":0,"Data":[8,12,-9000424613577814017,2215440633]},{"y":0,"Data":[7,10,928810467592250367,32]}]},{"Text":"l","Patterns":[{"y":0,"Data":[1,12,4095]},{"y":0,"Data":[1,10,1023]}]},{"Text":"m","Patterns":[{"y":3,"Data":[12,9,9205287476162727423,17488973005569]},{"y":2,"Data":[10,8,217016098992816895,65027]},{"y":3,"Data":[11,7,-9006623177486319745,3903]}]},{"Text":"n","Patterns":[{"y":3,"Data":[7,9,9205287476162727423]},{"y":2,"Data":[6,8,279301773722367]}]},{"Text":"o","Patterns":[{"y":3,"Data":[8,9,3580493903357934712,126]},{"y":2,"Data":[7,8,35684390097092156]}]},{"Text":"p","Patterns":[{"y":3,"Data":[7,12,-2196885592294801409,31758]},{"y":2,"Data":[6,11,4471618708997283839,0]}]},{"Text":"q","Patterns":[{"y":3,"Data":[8,12,3567721930789216376,4293918488]},{"y":2,"Data":[7,11,-32596644889104324,8187]}]},{"Text":"r","Patterns":[{"y":3,"Data":[4,9,403181055]},{"y":2,"Data":[3,8,197375]},{"y":3,"Data":[5,9,137709223935]}]},{"Text":"s","Patterns":[{"y":3,"Data":[7,9,4088841016286592012]},{"y":2,"Data":[6,8,126287534086670]},{"y":3,"Data":[8,9,8986505593863748616,112]}]},{"Text":"t","Patterns":[{"y":2,"Data":[4,10,831888817407]},{"y":1,"Data":[4,9,52447411455]}]},{"Text":"u","Patterns":[{"y":3,"Data":[7,9,9214338500961435903]},{"y":2,"Data":[6,8,280922012303615]}]},{"Text":"v","Patterns":[{"y":3,"Data":[8,9,-8948760151530128377,1]},{"y":2,"Data":[7,8,861161896549895]}]},{"Text":"w","Patterns":[{"y":3,"Data":[12,9,270466176792985095,107370102844]},{"y":2,"Data":[11,8,-2288946752006357497,69624]}]},{"Text":"x","Patterns":[{"y":3,"Data":[8,9,-2244543304241541373,128]},{"y":2,"Data":[7,8,36525150153008771]}]},{"Text":"y","Patterns":[{"y":3,"Data":[8,12,-9088127652882948089,3149575]},{"y":2,"Data":[7,11,542546870131552263,12]}]},{"Text":"z","Patterns":[{"y":3,"Data":[7,9,6985639089849468800]},{"y":2,"Data":[6,8,144652815819715]}]},{"Text":"{","Patterns":[{"y":0,"Data":[5,15,2290062676612612480,1024]},{"y":0,"Data":[4,13,3378519994007648]}]},{"Text":"|","Patterns":[{"y":0,"Data":[2,15,1073741823]},{"y":0,"Data":[1,13,8191]}]},{"Text":"}","Patterns":[{"y":0,"Data":[5,15,15771391554994177,24]},{"y":0,"Data":[4,13,52792730841089]}]},{"Text":"~","Patterns":[{"y":6,"Data":[6,3,222362]},{"y":5,"Data":[5,2,703]}]},{"Text":"♀","Patterns":[{"y":0,"Data":[22,15,72023508120469630,15763114108125432,-4607463764923645892,2233851387752603655,-1143931348285667392,3]}]},{"Text":"♂","Patterns":[{"y":0,"Data":[21,15,-33812185335986240,216179379686882816,13511211203166336,-1144054909694640104,15784582485901119]}]}],"TrainingSettings":{"IsTrainingEnabled":false,"SkipName":false,"SkipTribe":false,"SkipOwner":false}},"LabelRectangles":{"default":["989, 509, 129, 14","989, 552, 129, 14","989, 595, 129, 14","989, 638, 129, 14","989, 681, 129, 14","989, 724, 129, 14","989, 767, 129, 14","989, 810, 129, 14","989, 853, 129, 14","857, 199, 206, 15","850, 164, 219, 15","877, 233, 168, 13","892, 273, 150, 13"]},"SelectedLabelSetName":"default"} \ No newline at end of file diff --git a/ARKBreedingStats/json/ocr/ocr_2560x1440_100.json b/ARKBreedingStats/json/ocr/ocr_2560x1440_100.json index 2588099b..8b4175b9 100644 --- a/ARKBreedingStats/json/ocr/ocr_2560x1440_100.json +++ b/ARKBreedingStats/json/ocr/ocr_2560x1440_100.json @@ -1 +1 @@ -{"Version":"2.0","description":null,"resize":1.0,"resolutionWidth":2560,"resolutionHeight":1440,"statDistance":0,"guiZoom":100,"RecognitionPatterns":{"Texts":[{"Text":"!","Patterns":[{"y":1,"Data":[3,18,16325542206742527]}]},{"Text":"\"","Patterns":[{"y":1,"Data":[7,5,34326184959]}]},{"Text":"#","Patterns":[{"y":1,"Data":[21,18,1730233282148184064,287684887449722892,432558372080782590,-9151450814992345085,-4503546425407192193,105553519117824]}]},{"Text":"$","Patterns":[{"y":1,"Data":[10,18,-4103278981860531728,1022826792737775416,273643088650183]}]},{"Text":"%","Patterns":[{"y":1,"Data":[16,18,4106163815056277566,137325641983386488,-8680719338870668825,2049171967118085937,1006657408]},{"y":0,"Data":[12,14,-7053536677925691362,-932582802203840509,481169521857]},{"y":0,"Data":[12,14,4483561862185410590,-6693201297471932665,515452713155]},{"y":1,"Data":[15,16,8079985718278946828,270224490505649185,-4174900503865950992,61574731646467]}]},{"Text":"&","Patterns":[{"y":1,"Data":[15,18,-2170735123539362692,-560559554484271135,-286244522801241887,3941197286469663,56]}]},{"Text":"'","Patterns":[{"y":1,"Data":[2,5,1023]}]},{"Text":"(","Patterns":[{"y":1,"Data":[5,22,-8796109668416,35184438149247]}]},{"Text":")","Patterns":[{"y":1,"Data":[5,22,-549488427005,1097368338403]},{"y":4,"Data":[3,14,272864638983]}]},{"Text":"*","Patterns":[{"y":1,"Data":[7,7,21318136116748]}]},{"Text":"+","Patterns":[{"y":8,"Data":[9,9,1010811825620545592,14364]}]},{"Text":",","Patterns":[{"y":17,"Data":[5,5,1310680]},{"y":12,"Data":[3,4,2044]}]},{"Text":"-","Patterns":[{"y":11,"Data":[6,3,262143]}]},{"Text":".","Patterns":[{"y":16,"Data":[3,3,511]},{"y":12,"Data":[2,2,15]}]},{"Text":"/","Patterns":[{"y":1,"Data":[12,18,17451508685733888,35466388239679614,31525729975795838,64]},{"y":0,"Data":[9,14,-2297396698093182976,281595267259905]},{"y":0,"Data":[9,13,2234876663345188864,1100451660024]},{"y":0,"Data":[8,14,-572096859246413824,51555340160]}]},{"Text":"0","Patterns":[{"y":1,"Data":[15,18,549439034279084016,-576322213305643144,35465982357528577,288214982963234748,1023]},{"y":0,"Data":[12,14,531453342862213312,-5185965275232861960,136935630595]},{"y":0,"Data":[13,16,-1150819108452032520,-2304787461407776761,4610696728277934087,8184]}]},{"Text":"1","Patterns":[{"y":1,"Data":[5,18,-68717903866,67108863]},{"y":0,"Data":[3,14,4398046494722]},{"y":0,"Data":[4,16,-131070]},{"y":0,"Data":[5,14,-144115188344258558,31]}]},{"Text":"2","Patterns":[{"y":1,"Data":[12,18,142989833631924238,-306105273587595272,2300811624938727297,14687800]},{"y":0,"Data":[9,14,276988695431673862,3465733197579215095]},{"y":0,"Data":[10,16,-575352410490806266,-2031150885676778493,3766280702]}]},{"Text":"3","Patterns":[{"y":1,"Data":[11,18,-2163917507132424185,-560559554484271136,-3474527130504666655,15]},{"y":0,"Data":[8,14,-4340609070631161853,137413182501360]},{"y":0,"Data":[10,16,-4502507245899620345,-33226378460797,1044152190]}]},{"Text":"4","Patterns":[{"y":1,"Data":[14,18,-2304734697466349568,-4357302029505535985,-139365245363745273,54043401703651391]},{"y":0,"Data":[11,14,4331267114076734976,4607463637696742278,4194688]},{"y":0,"Data":[13,16,2296870445095328768,2019613877842222320,1729663598741028835,4096]},{"y":0,"Data":[10,13,7053547462563727232,4620676722868667406,0]},{"y":0,"Data":[11,14,4326763239554679552,4607322899134579650,2099196]}]},{"Text":"5","Patterns":[{"y":1,"Data":[12,18,7059427591953679328,-569566788098881568,-1119148769023631135,2031631]},{"y":0,"Data":[9,14,7188183737201324287,504541764850036976]},{"y":0,"Data":[10,16,-4556586399423274498,-899627269675040573,1057193859]}]},{"Text":"6","Patterns":[{"y":1,"Data":[13,18,9088262965693546368,-568317737051243280,-572504694404685711,541174251551]},{"y":0,"Data":[10,14,7404405454224101344,2288078762587986160,480]},{"y":0,"Data":[12,16,-2243794301736697920,-2250743424589840178,864760949582651840]}]},{"Text":"7","Patterns":[{"y":1,"Data":[12,18,141863903660081159,-4327833965794162696,283731157457503217,960]},{"y":0,"Data":[9,14,-4360593020886654973,1970857541925063]},{"y":0,"Data":[11,16,-574244103575371769,71780409994067463,30066802751]},{"y":0,"Data":[10,14,-8937376417146945533,-4607462811190103857,0]}]},{"Text":"8","Patterns":[{"y":1,"Data":[13,18,-1018095025189749700,-560559554484271135,-528729742253855,1083346763679]},{"y":0,"Data":[11,14,-4340449831568833024,-5044098038478655248,15730671]},{"y":0,"Data":[13,16,-2022257527479334912,-4484527756880387641,4556657105958855111,3072]}]},{"Text":"9","Patterns":[{"y":1,"Data":[13,18,-4485444628543700488,-2566983514540603583,-873139651416196736,34226044803]},{"y":0,"Data":[10,14,-8951452811812437764,287700518790717689,62]},{"y":0,"Data":[12,16,4829833003767038204,4252368931551175427,27025978899177351]}]},{"Text":":","Patterns":[{"y":6,"Data":[3,13,481564883975]},{"y":4,"Data":[2,12,14712327]},{"y":5,"Data":[2,11,3153411]}]},{"Text":";","Patterns":[{"y":6,"Data":[5,16,4037468304070197248,2055]}]},{"Text":"<","Patterns":[{"y":7,"Data":[11,11,-1288660680781348752,126655199102223928]}]},{"Text":"=","Patterns":[{"y":9,"Data":[9,7,8351872316837001715]}]},{"Text":">","Patterns":[{"y":7,"Data":[11,11,-1288901282071298297,7885151801377648]}]},{"Text":"?","Patterns":[{"y":1,"Data":[11,18,-4469276791359668217,-4598052022172842009,558455115594203361,0]}]},{"Text":"@","Patterns":[{"y":1,"Data":[24,22,-139638043770944,1015949255508464,-222989876083621778,3571126657511528947,-3571245546502069492,-4357232883757245416,8950904744193352703,18012208076031744,508]}]},{"Text":"A","Patterns":[{"y":1,"Data":[19,18,17732987957411840,-4602749052621193153,-4327835838431952865,35747459213246209,1090719796170720,2097166]},{"y":1,"Data":[16,16,2287967153330118656,1010776774528467952,1143923067194377743,-4611422131408846976]}]},{"Text":"B","Patterns":[{"y":1,"Data":[14,18,144115188075855871,-562811414427727904,7997845516770074817,135215734493003772]}]},{"Text":"C","Patterns":[{"y":1,"Data":[14,18,544935288621768672,-576321113827570052,35465982357528577,1008840951279387128]},{"y":0,"Data":[11,13,-9192401818209025568,24773646711058439,24587]}]},{"Text":"D","Patterns":[{"y":1,"Data":[16,18,144115188075855871,-576322213309839392,35465982357528577,-8935157122074672196,133695487]}]},{"Text":"E","Patterns":[{"y":1,"Data":[13,18,-2161727821137838081,-560559554484271136,4070706641703002337,3848305435128]},{"y":0,"Data":[11,16,-2195504818343116801,-2195538319599214201,246324453171591]}]},{"Text":"F","Patterns":[{"y":1,"Data":[12,18,-2161727821137838081,-4595800213829744896,4066765976996610273,448]}]},{"Text":"G","Patterns":[{"y":1,"Data":[14,18,544935288621768672,-576321113827570052,35465982357528577,1148453072303817208]}]},{"Text":"H","Patterns":[{"y":1,"Data":[16,18,-2287828610704211969,15762658825568256,4035240659345473760,-4383014068224,4294967295]}]},{"Text":"I","Patterns":[{"y":1,"Data":[3,18,18014398509481983]}]},{"Text":"J","Patterns":[{"y":1,"Data":[7,18,15762658825568256,288217181978623856]}]},{"Text":"K","Patterns":[{"y":1,"Data":[17,18,18014398509481983,15762598695796736,-8952890114301754376,4539663471578187655,562953174677504]}]},{"Text":"L","Patterns":[{"y":1,"Data":[11,18,18014398509481983,4035240659345473760,3940664706392064,56]},{"y":0,"Data":[9,16,-2305561534236983297,-2305596714850918400,57344]},{"y":0,"Data":[10,16,-4611404543450807296,-4611474908973580288,3221274624]}]},{"Text":"M","Patterns":[{"y":1,"Data":[19,18,1152921504606846975,141863455907970048,4362879184674688,17733194124034110,-4293951457,4194303]},{"y":1,"Data":[17,16,16888636041592831,-576391482806631952,279257265985351680,-4293000968,32767]}]},{"Text":"N","Patterns":[{"y":1,"Data":[16,18,576460752303423487,4222132703739392,-4611549678859714320,-2267740766205,4294967295]}]},{"Text":"O","Patterns":[{"y":1,"Data":[17,18,544935288621768672,-576322213339197572,35465982357528577,-1765274989098958344,70301098381311]}]},{"Text":"P","Patterns":[{"y":1,"Data":[14,18,144115188075855871,-4584541274891090176,4391042742412050881,527774137778048]}]},{"Text":"Q","Patterns":[{"y":1,"Data":[17,22,1152851273268076512,-2305348503606935432,-9221386318381580176,8435455118803395,-5497524924182530,70300091806239]}]},{"Text":"R","Patterns":[{"y":1,"Data":[15,18,144115188075855871,-4580037675263719680,4391570508932907969,864941546506059743,8192]}]},{"Text":"S","Patterns":[{"y":1,"Data":[13,18,-2163911528271986180,-560559554484271136,-1117141061865053983,1091030729182]},{"y":1,"Data":[13,16,-2177665249145257968,-2196699421590953529,4541738951479910787,7680]},{"y":3,"Data":[9,12,4351539558966616088,8531888333766]}]},{"Text":"T","Patterns":[{"y":1,"Data":[13,18,126101270604546055,-67107072,31525317651202047,117440960]},{"y":0,"Data":[9,13,-549554462717,3298937602047]},{"y":1,"Data":[12,16,844437815230467,2251799813619715,844437815230467]},{"y":4,"Data":[9,11,72057585452189697,16785412]}]},{"Text":"U","Patterns":[{"y":1,"Data":[16,18,4503539497568255,4035240659349667964,3940664706392064,-864693464901615560,67094527]}]},{"Text":"V","Patterns":[{"y":1,"Data":[18,18,9187351967213289475,1148419000197183488,-9219009158072697344,-2296870857963749313,3377764146069519,0]},{"y":0,"Data":[16,16,142989833631891459,-1152644426611290144,283761688132515840,281539405349118]}]},{"Text":"W","Patterns":[{"y":1,"Data":[23,18,-285978644923547641,1134924148594442495,139615917841582048,2234209758348224,-4610564516032282370,-285979126106427377,4096]}]},{"Text":"X","Patterns":[{"y":1,"Data":[18,18,285979108914888705,274442371254468344,-144045918579062792,-594342142184309247,1970341480102912,8]}]},{"Text":"Y","Patterns":[{"y":1,"Data":[16,18,1116893738381869057,34902930398182400,4472072248118804416,8070586873770180096,16384]}]},{"Text":"Z","Patterns":[{"y":1,"Data":[13,18,143834260709539847,-542544975582459906,287669485667082481,3848557037560]}]},{"Text":"[","Patterns":[{"y":1,"Data":[6,22,-1,545357897400351,12]}]},{"Text":"\\","Patterns":[{"y":1,"Data":[12,18,2269816342500343809,141863523553769472,4362870594740096,8388664]}]},{"Text":"]","Patterns":[{"y":1,"Data":[6,22,136339474350087,-4194273,15]}]},{"Text":"^","Patterns":[{"y":1,"Data":[12,9,270464346063307008,8821925771295]}]},{"Text":"_","Patterns":[{"y":19,"Data":[12,3,68719476735]}]},{"Text":"`","Patterns":[{"y":1,"Data":[5,3,20441]}]},{"Text":"a","Patterns":[{"y":6,"Data":[11,13,-8773520101673996352,-13511472200486713,32755]},{"y":5,"Data":[10,12,4351539642671965120,72004810608894914]},{"y":4,"Data":[8,9,9201541476357498866,254]}]},{"Text":"b","Patterns":[{"y":1,"Data":[12,18,3476778912330022911,4036929515648245984,-285979109972975560,2080783]},{"y":0,"Data":[9,13,218451384737988606,1056076742799457]}]},{"Text":"c","Patterns":[{"y":6,"Data":[11,13,-2272189569753448352,-9188464878614939633,28703]}]},{"Text":"d","Patterns":[{"y":1,"Data":[11,18,4043737719489200000,4036929515648246000,-2132746184,31]},{"y":0,"Data":[9,13,-9003794678155574400,9006099710353505]}]},{"Text":"e","Patterns":[{"y":6,"Data":[11,13,-3585300985993509892,-6927398350325483065,29683]},{"y":4,"Data":[9,9,4963654244503518264,7375]},{"y":5,"Data":[11,12,3919106358481240160,8703184834156848070,0]}]},{"Text":"f","Patterns":[{"y":0,"Data":[9,19,-7061644490596417544,224054508811743233,100663520]},{"y":0,"Data":[5,13,229711622032064508,0]},{"y":0,"Data":[6,17,234187163443265528,207619632]}]},{"Text":"g","Patterns":[{"y":6,"Data":[12,17,-1135403539355663364,137079359490605180,-288230376152889402,255]},{"y":5,"Data":[11,16,-4105374115425419168,-1872435300412439033,70362301691655]}]},{"Text":"h","Patterns":[{"y":1,"Data":[12,18,3476778912330022911,1688856302764032,-283727326265475048,16769087]}]},{"Text":"i","Patterns":[{"y":1,"Data":[3,18,18012749235748839]},{"y":1,"Data":[3,16,140677358026739]},{"y":0,"Data":[2,13,67010546]},{"y":1,"Data":[2,16,4294180851]}]},{"Text":"j","Patterns":[{"y":1,"Data":[4,22,-422212566777856,8388511]}]},{"Text":"k","Patterns":[{"y":1,"Data":[13,18,3476778912330022911,217861638416556032,-139766061361783272,2199035965496]},{"y":1,"Data":[11,16,27303072740933631,8948683452206547040,215370730370672]}]},{"Text":"l","Patterns":[{"y":1,"Data":[3,18,18014398509481983]},{"y":1,"Data":[2,16,4294967295]}]},{"Text":"m","Patterns":[{"y":6,"Data":[19,13,31529045615181823,-1098572054522,54049794477490171,36024398972387384]},{"y":7,"Data":[12,8,107803820880396031,4278124801]}]},{"Text":"n","Patterns":[{"y":6,"Data":[12,13,27025445987811327,-8999502270644218,268337147]},{"y":7,"Data":[8,8,-72337965189759223]}]},{"Text":"o","Patterns":[{"y":6,"Data":[12,13,-4594230461768678404,-1117240732616697,33300473]},{"y":4,"Data":[9,9,7057263864975326460,31871]}]},{"Text":"p","Patterns":[{"y":6,"Data":[12,17,6926536226895822847,254172743642234928,-4602687477891856626,31]},{"y":5,"Data":[11,16,433330726646054910,506107431554845699,412383709182]},{"y":7,"Data":[8,11,2417326350311358463,229884]}]},{"Text":"q","Patterns":[{"y":6,"Data":[12,17,-2290013906707675140,110057555566379120,-32766194,4095]}]},{"Text":"r","Patterns":[{"y":6,"Data":[6,13,31533443661692927,6]},{"y":4,"Data":[5,9,69122916351]},{"y":4,"Data":[4,9,403439615]}]},{"Text":"s","Patterns":[{"y":6,"Data":[10,13,-3585302962172334978,-508933149943072313,1]},{"y":5,"Data":[10,12,4351539911567073304,16932358779069382]}]},{"Text":"t","Patterns":[{"y":4,"Data":[6,15,-3602422308280483841,58746624]},{"y":3,"Data":[5,14,918791497648693247,48]}]},{"Text":"u","Patterns":[{"y":6,"Data":[12,13,-4607744819031186433,-7317937027270655,268435455]},{"y":5,"Data":[10,12,864902294825596927,72057591889789024]}]},{"Text":"v","Patterns":[{"y":6,"Data":[13,13,-143554428622610429,2297954004820311553,268664956]}]},{"Text":"w","Patterns":[{"y":6,"Data":[19,13,-1148422234373103613,135177291909578241,-9205919497360375556,4414723063783]}]},{"Text":"x","Patterns":[{"y":6,"Data":[13,13,9207485709806497793,-4472182045208214544,1099981451295]}]},{"Text":"y","Patterns":[{"y":6,"Data":[13,17,2297963900303179779,-2296976410543129076,4035361614088894479,4096]},{"y":5,"Data":[12,16,-2018526881273413629,283761412197613536,281505045610748]}]},{"Text":"z","Patterns":[{"y":6,"Data":[10,13,-2431976792454562813,-9152422883697427993,3]}]},{"Text":"{","Patterns":[{"y":1,"Data":[7,22,1150669737005423616,1125779647750136,30]}]},{"Text":"|","Patterns":[{"y":1,"Data":[3,22,-1,3]}]},{"Text":"}","Patterns":[{"y":1,"Data":[7,22,-126105187583524863,1116901503563456511,114688]}]},{"Text":"~","Patterns":[{"y":11,"Data":[9,3,131856091]}]},{"Text":"♂","Patterns":[{"y":0,"Data":[27,23,-1123701151957248,284835151957982979,1143914579693173728,-576458621999386624,30786333442048,2111062576988190,142989305080447968,-4499238087823872,-8070451356881715709,133156700131]}]},{"Text":"♀","Patterns":[{"y":0,"Data":[29,23,1152851170214019580,-2303573626071285792,2216615573716999,1292533238815785952,-144106409162115072,-4611405093173002237,5048957996630143,8866462806575228,-9151350718244714528,144080072419065855,8128]}]}],"TrainingSettings":{"IsTrainingEnabled":false,"SkipName":false,"SkipTribe":false,"SkipOwner":false}},"labelRectangles":["1294, 679, 195, 18","1294, 736, 195, 18","1294, 793, 195, 18","1294, 851, 195, 18","1294, 908, 195, 18","1294, 965, 195, 18","1294, 1023, 195, 18","1294, 1080, 195, 18","1294, 1137, 195, 18","1166, 265, 231, 20","1125, 218, 308, 23","1179, 311, 216, 18","1212, 357, 150, 18"]} \ No newline at end of file +{"Version":"2.0","description":null,"resize":1.0,"resolutionWidth":2560,"resolutionHeight":1440,"statDistance":0,"guiZoom":100,"RecognitionPatterns":{"Texts":[{"Text":"!","Patterns":[{"y":1,"Data":[3,18,16325542206742527]}]},{"Text":"\"","Patterns":[{"y":1,"Data":[7,5,34326184959]}]},{"Text":"#","Patterns":[{"y":1,"Data":[21,18,1730233282148184064,287684887449722892,432558372080782590,-9151450814992345085,-4503546425407192193,105553519117824]}]},{"Text":"$","Patterns":[{"y":1,"Data":[10,18,-4103278981860531728,1022826792737775416,273643088650183]}]},{"Text":"%","Patterns":[{"y":1,"Data":[16,18,4106163815056277566,137325641983386488,-8680719338870668825,2049171967118085937,1006657408]},{"y":0,"Data":[12,14,-7053536677925691362,-932582802203840509,481169521857]},{"y":0,"Data":[12,14,4483561862185410590,-6693201297471932665,515452713155]},{"y":1,"Data":[15,16,8079985718278946828,270224490505649185,-4174900503865950992,61574731646467]}]},{"Text":"&","Patterns":[{"y":1,"Data":[15,18,-2170735123539362692,-560559554484271135,-286244522801241887,3941197286469663,56]}]},{"Text":"'","Patterns":[{"y":1,"Data":[2,5,1023]}]},{"Text":"(","Patterns":[{"y":1,"Data":[5,22,-8796109668416,35184438149247]}]},{"Text":")","Patterns":[{"y":1,"Data":[5,22,-549488427005,1097368338403]},{"y":4,"Data":[3,14,272864638983]}]},{"Text":"*","Patterns":[{"y":1,"Data":[7,7,21318136116748]}]},{"Text":"+","Patterns":[{"y":8,"Data":[9,9,1010811825620545592,14364]}]},{"Text":",","Patterns":[{"y":17,"Data":[5,5,1310680]},{"y":12,"Data":[3,4,2044]}]},{"Text":"-","Patterns":[{"y":11,"Data":[6,3,262143]}]},{"Text":".","Patterns":[{"y":16,"Data":[3,3,511]},{"y":12,"Data":[2,2,15]},{"y":12,"Data":[2,1,3]}]},{"Text":"/","Patterns":[{"y":1,"Data":[12,18,17451508685733888,35466388239679614,31525729975795838,64]},{"y":0,"Data":[9,14,-2297396698093182976,281595267259905]},{"y":0,"Data":[9,13,2234876663345188864,1100451660024]},{"y":0,"Data":[8,14,-572096859246413824,51555340160]}]},{"Text":"0","Patterns":[{"y":1,"Data":[15,18,549439034279084016,-576322213305643144,35465982357528577,288214982963234748,1023]},{"y":0,"Data":[12,14,531453342862213312,-5185965275232861960,136935630595]},{"y":0,"Data":[13,16,-1150819108452032520,-2304787461407776761,4610696728277934087,8184]}]},{"Text":"1","Patterns":[{"y":1,"Data":[5,18,-68717903866,67108863]},{"y":0,"Data":[3,14,4398046494722]},{"y":0,"Data":[4,16,-131070]},{"y":0,"Data":[5,14,-144115188344258558,31]}]},{"Text":"2","Patterns":[{"y":1,"Data":[12,18,142989833631924238,-306105273587595272,2300811624938727297,14687800]},{"y":0,"Data":[9,14,276988695431673862,3465733197579215095]},{"y":0,"Data":[10,16,-575352410490806266,-2031150885676778493,3766280702]}]},{"Text":"3","Patterns":[{"y":1,"Data":[11,18,-2163917507132424185,-560559554484271136,-3474527130504666655,15]},{"y":0,"Data":[8,14,-4340609070631161853,137413182501360]},{"y":0,"Data":[10,16,-4502507245899620345,-33226378460797,1044152190]}]},{"Text":"4","Patterns":[{"y":1,"Data":[14,18,-2304734697466349568,-4357302029505535985,-139365245363745273,54043401703651391]},{"y":0,"Data":[11,14,4331267114076734976,4607463637696742278,4194688]},{"y":0,"Data":[13,16,2296870445095328768,2019613877842222320,1729663598741028835,4096]},{"y":0,"Data":[10,13,7053547462563727232,4620676722868667406,0]},{"y":0,"Data":[11,14,4326763239554679552,4607322899134579650,2099196]}]},{"Text":"5","Patterns":[{"y":1,"Data":[12,18,7059427591953679328,-569566788098881568,-1119148769023631135,2031631]},{"y":0,"Data":[9,14,7188183737201324287,504541764850036976]},{"y":0,"Data":[10,16,-4556586399423274498,-899627269675040573,1057193859]},{"y":0,"Data":[9,13,439154572344160256,4365052808814787]}]},{"Text":"6","Patterns":[{"y":1,"Data":[13,18,9088262965693546368,-568317737051243280,-572504694404685711,541174251551]},{"y":0,"Data":[10,14,7404405454224101344,2288078762587986160,480]},{"y":0,"Data":[12,16,-2243794301736697920,-2250743424589840178,864760949582651840]}]},{"Text":"7","Patterns":[{"y":1,"Data":[12,18,141863903660081159,-4327833965794162696,283731157457503217,960]},{"y":0,"Data":[9,14,-4360593020886654973,1970857541925063]},{"y":0,"Data":[11,16,-574244103575371769,71780409994067463,30066802751]},{"y":0,"Data":[10,14,-8937376417146945533,-4607462811190103857,0]},{"y":1,"Data":[10,13,8655637970969174017,9014899998868418,0]}]},{"Text":"8","Patterns":[{"y":1,"Data":[13,18,-1018095025189749700,-560559554484271135,-528729742253855,1083346763679]},{"y":0,"Data":[11,14,-4340449831568833024,-5044098038478655248,15730671]},{"y":0,"Data":[13,16,-2022257527479334912,-4484527756880387641,4556657105958855111,3072]}]},{"Text":"9","Patterns":[{"y":1,"Data":[13,18,-4485444628543700488,-2566983514540603583,-873139651416196736,34226044803]},{"y":0,"Data":[10,14,-8951452811812437764,287700518790717689,62]},{"y":0,"Data":[12,16,4829833003767038204,4252368931551175427,27025978899177351]}]},{"Text":":","Patterns":[{"y":6,"Data":[3,13,481564883975]},{"y":4,"Data":[2,12,14712327]},{"y":5,"Data":[2,11,3153411]}]},{"Text":";","Patterns":[{"y":6,"Data":[5,16,4037468304070197248,2055]}]},{"Text":"<","Patterns":[{"y":7,"Data":[11,11,-1288660680781348752,126655199102223928]}]},{"Text":"=","Patterns":[{"y":9,"Data":[9,7,8351872316837001715]}]},{"Text":">","Patterns":[{"y":7,"Data":[11,11,-1288901282071298297,7885151801377648]}]},{"Text":"?","Patterns":[{"y":1,"Data":[11,18,-4469276791359668217,-4598052022172842009,558455115594203361,0]}]},{"Text":"@","Patterns":[{"y":1,"Data":[24,22,-139638043770944,1015949255508464,-222989876083621778,3571126657511528947,-3571245546502069492,-4357232883757245416,8950904744193352703,18012208076031744,508]}]},{"Text":"A","Patterns":[{"y":1,"Data":[19,18,17732987957411840,-4602749052621193153,-4327835838431952865,35747459213246209,1090719796170720,2097166]},{"y":1,"Data":[16,16,2287967153330118656,1010776774528467952,1143923067194377743,-4611422131408846976]}]},{"Text":"B","Patterns":[{"y":1,"Data":[14,18,144115188075855871,-562811414427727904,7997845516770074817,135215734493003772]},{"y":1,"Data":[12,16,-2304717109306851329,-2178649838201872381,4475592036103184835]}]},{"Text":"C","Patterns":[{"y":1,"Data":[14,18,544935288621768672,-576321113827570052,35465982357528577,1008840951279387128]},{"y":0,"Data":[11,13,-9192401818209025568,24773646711058439,24587]}]},{"Text":"D","Patterns":[{"y":1,"Data":[16,18,144115188075855871,-576322213309839392,35465982357528577,-8935157122074672196,133695487]}]},{"Text":"E","Patterns":[{"y":1,"Data":[13,18,-2161727821137838081,-560559554484271136,4070706641703002337,3848305435128]},{"y":0,"Data":[11,16,-2195504818343116801,-2195538319599214201,246324453171591]}]},{"Text":"F","Patterns":[{"y":1,"Data":[12,18,-2161727821137838081,-4595800213829744896,4066765976996610273,448]}]},{"Text":"G","Patterns":[{"y":1,"Data":[14,18,544935288621768672,-576321113827570052,35465982357528577,1148453072303817208]}]},{"Text":"H","Patterns":[{"y":1,"Data":[16,18,-2287828610704211969,15762658825568256,4035240659345473760,-4383014068224,4294967295]}]},{"Text":"I","Patterns":[{"y":1,"Data":[3,18,18014398509481983]}]},{"Text":"J","Patterns":[{"y":1,"Data":[7,18,15762658825568256,288217181978623856]}]},{"Text":"K","Patterns":[{"y":1,"Data":[17,18,18014398509481983,15762598695796736,-8952890114301754376,4539663471578187655,562953174677504]}]},{"Text":"L","Patterns":[{"y":1,"Data":[11,18,18014398509481983,4035240659345473760,3940664706392064,56]},{"y":0,"Data":[9,16,-2305561534236983297,-2305596714850918400,57344]},{"y":0,"Data":[10,16,-4611404543450807296,-4611474908973580288,3221274624]}]},{"Text":"M","Patterns":[{"y":1,"Data":[19,18,1152921504606846975,141863455907970048,4362879184674688,17733194124034110,-4293951457,4194303]},{"y":1,"Data":[17,16,16888636041592831,-576391482806631952,279257265985351680,-4293000968,32767]}]},{"Text":"N","Patterns":[{"y":1,"Data":[16,18,576460752303423487,4222132703739392,-4611549678859714320,-2267740766205,4294967295]}]},{"Text":"O","Patterns":[{"y":1,"Data":[17,18,544935288621768672,-576322213339197572,35465982357528577,-1765274989098958344,70301098381311]}]},{"Text":"P","Patterns":[{"y":1,"Data":[14,18,144115188075855871,-4584541274891090176,4391042742412050881,527774137778048]}]},{"Text":"Q","Patterns":[{"y":1,"Data":[17,22,1152851273268076512,-2305348503606935432,-9221386318381580176,8435455118803395,-5497524924182530,70300091806239]}]},{"Text":"R","Patterns":[{"y":1,"Data":[15,18,144115188075855871,-4580037675263719680,4391570508932907969,864941546506059743,8192]},{"y":1,"Data":[13,16,1125899906842623,1117745391757099011,-4594533093838209597,32768]},{"y":1,"Data":[12,16,844442110001151,2288681294915371267,-4611439184761176857]},{"y":1,"Data":[12,16,844442110001151,2270666896405889027,-4604683785185837881]}]},{"Text":"S","Patterns":[{"y":1,"Data":[13,18,-2163911528271986180,-560559554484271136,-1117141061865053983,1091030729182]},{"y":1,"Data":[13,16,-2177665249145257968,-2196699421590953529,4541738951479910787,7680]},{"y":3,"Data":[9,12,4351539558966616088,8531888333766]}]},{"Text":"T","Patterns":[{"y":1,"Data":[13,18,126101270604546055,-67107072,31525317651202047,117440960]},{"y":0,"Data":[9,13,-549554462717,3298937602047]},{"y":1,"Data":[12,16,844437815230467,2251799813619715,844437815230467]},{"y":4,"Data":[9,11,72057585452189697,16785412]},{"y":0,"Data":[9,13,-7146624229373,2199291740167]}]},{"Text":"U","Patterns":[{"y":1,"Data":[16,18,4503539497568255,4035240659349667964,3940664706392064,-864693464901615560,67094527]}]},{"Text":"V","Patterns":[{"y":1,"Data":[18,18,9187351967213289475,1148419000197183488,-9219009158072697344,-2296870857963749313,3377764146069519,0]},{"y":0,"Data":[16,16,142989833631891459,-1152644426611290144,283761688132515840,281539405349118]}]},{"Text":"W","Patterns":[{"y":1,"Data":[23,18,-285978644923547641,1134924148594442495,139615917841582048,2234209758348224,-4610564516032282370,-285979126106427377,4096]}]},{"Text":"X","Patterns":[{"y":1,"Data":[18,18,285979108914888705,274442371254468344,-144045918579062792,-594342142184309247,1970341480102912,8]}]},{"Text":"Y","Patterns":[{"y":1,"Data":[16,18,1116893738381869057,34902930398182400,4472072248118804416,8070586873770180096,16384]}]},{"Text":"Z","Patterns":[{"y":1,"Data":[13,18,143834260709539847,-542544975582459906,287669485667082481,3848557037560]}]},{"Text":"[","Patterns":[{"y":1,"Data":[6,22,-1,545357897400351,12]}]},{"Text":"\\","Patterns":[{"y":1,"Data":[12,18,2269816342500343809,141863523553769472,4362870594740096,8388664]}]},{"Text":"]","Patterns":[{"y":1,"Data":[6,22,136339474350087,-4194273,15]}]},{"Text":"^","Patterns":[{"y":1,"Data":[12,9,270464346063307008,8821925771295]}]},{"Text":"_","Patterns":[{"y":19,"Data":[12,3,68719476735]},{"y":17,"Data":[10,2,1048575]}]},{"Text":"`","Patterns":[{"y":1,"Data":[5,3,20441]}]},{"Text":"a","Patterns":[{"y":6,"Data":[11,13,-8773520101673996352,-13511472200486713,32755]},{"y":5,"Data":[10,12,4351539642671965120,72004810608894914]},{"y":4,"Data":[8,9,9201541476357498866,254]}]},{"Text":"b","Patterns":[{"y":1,"Data":[12,18,3476778912330022911,4036929515648245984,-285979109972975560,2080783]},{"y":0,"Data":[9,13,218451384737988606,1056076742799457]}]},{"Text":"c","Patterns":[{"y":6,"Data":[11,13,-2272189569753448352,-9188464878614939633,28703]}]},{"Text":"d","Patterns":[{"y":1,"Data":[11,18,4043737719489200000,4036929515648246000,-2132746184,31]},{"y":0,"Data":[9,13,-9003794678155574400,9006099710353505]}]},{"Text":"e","Patterns":[{"y":6,"Data":[11,13,-3585300985993509892,-6927398350325483065,29683]},{"y":4,"Data":[9,9,4963654244503518264,7375]},{"y":5,"Data":[11,12,3919106358481240160,8703184834156848070,0]}]},{"Text":"f","Patterns":[{"y":0,"Data":[9,19,-7061644490596417544,224054508811743233,100663520]},{"y":0,"Data":[5,13,229711622032064508,0]},{"y":0,"Data":[6,17,234187163443265528,207619632]}]},{"Text":"g","Patterns":[{"y":6,"Data":[12,17,-1135403539355663364,137079359490605180,-288230376152889402,255]},{"y":5,"Data":[11,16,-4105374115425419168,-1872435300412439033,70362301691655]}]},{"Text":"h","Patterns":[{"y":1,"Data":[12,18,3476778912330022911,1688856302764032,-283727326265475048,16769087]}]},{"Text":"i","Patterns":[{"y":1,"Data":[3,18,18012749235748839]},{"y":1,"Data":[3,16,140677358026739]},{"y":0,"Data":[2,13,67010546]},{"y":1,"Data":[2,16,4294180851]}]},{"Text":"j","Patterns":[{"y":1,"Data":[4,22,-422212566777856,8388511]}]},{"Text":"k","Patterns":[{"y":1,"Data":[13,18,3476778912330022911,217861638416556032,-139766061361783272,2199035965496]},{"y":1,"Data":[11,16,27303072740933631,8948683452206547040,215370730370672]}]},{"Text":"l","Patterns":[{"y":1,"Data":[3,18,18014398509481983]},{"y":1,"Data":[2,16,4294967295]}]},{"Text":"m","Patterns":[{"y":6,"Data":[19,13,31529045615181823,-1098572054522,54049794477490171,36024398972387384]},{"y":7,"Data":[12,8,107803820880396031,4278124801]},{"y":5,"Data":[17,12,3459327807354566655,504350373133157120,-8999501867843488,4094]}]},{"Text":"n","Patterns":[{"y":6,"Data":[12,13,27025445987811327,-8999502270644218,268337147]},{"y":7,"Data":[8,8,-72337965189759223]}]},{"Text":"o","Patterns":[{"y":6,"Data":[12,13,-4594230461768678404,-1117240732616697,33300473]},{"y":4,"Data":[9,9,7057263864975326460,31871]},{"y":5,"Data":[11,12,4324406131666445308,-558472749044071488,1]}]},{"Text":"p","Patterns":[{"y":6,"Data":[12,17,6926536226895822847,254172743642234928,-4602687477891856626,31]},{"y":5,"Data":[11,16,433330726646054910,506107431554845699,412383709182]},{"y":7,"Data":[8,11,2417326350311358463,229884]}]},{"Text":"q","Patterns":[{"y":6,"Data":[12,17,-2290013906707675140,110057555566379120,-32766194,4095]}]},{"Text":"r","Patterns":[{"y":6,"Data":[6,13,31533443661692927,6]},{"y":4,"Data":[5,9,69122916351]},{"y":4,"Data":[4,9,403439615]}]},{"Text":"s","Patterns":[{"y":6,"Data":[10,13,-3585302962172334978,-508933149943072313,1]},{"y":5,"Data":[10,12,4351539911567073304,16932358779069382]}]},{"Text":"t","Patterns":[{"y":4,"Data":[6,15,-3602422308280483841,58746624]},{"y":3,"Data":[5,14,918791497648693247,48]}]},{"Text":"u","Patterns":[{"y":6,"Data":[12,13,-4607744819031186433,-7317937027270655,268435455]},{"y":5,"Data":[10,12,864902294825596927,72057591889789024]}]},{"Text":"v","Patterns":[{"y":6,"Data":[13,13,-143554428622610429,2297954004820311553,268664956]}]},{"Text":"w","Patterns":[{"y":6,"Data":[19,13,-1148422234373103613,135177291909578241,-9205919497360375556,4414723063783]}]},{"Text":"x","Patterns":[{"y":6,"Data":[13,13,9207485709806497793,-4472182045208214544,1099981451295]}]},{"Text":"y","Patterns":[{"y":6,"Data":[13,17,2297963900303179779,-2296976410543129076,4035361614088894479,4096]},{"y":5,"Data":[12,16,-2018526881273413629,283761412197613536,281505045610748]}]},{"Text":"z","Patterns":[{"y":6,"Data":[10,13,-2431976792454562813,-9152422883697427993,3]}]},{"Text":"{","Patterns":[{"y":1,"Data":[7,22,1150669737005423616,1125779647750136,30]}]},{"Text":"|","Patterns":[{"y":1,"Data":[3,22,-1,3]}]},{"Text":"}","Patterns":[{"y":1,"Data":[7,22,-126105187583524863,1116901503563456511,114688]}]},{"Text":"~","Patterns":[{"y":11,"Data":[9,3,131856091]}]},{"Text":"♂","Patterns":[{"y":0,"Data":[27,23,-1123701151957248,284835151957982979,1143914579693173728,-576458621999386624,30786333442048,2111062576988190,142989305080447968,-4499238087823872,-8070451356881715709,133156700131]}]},{"Text":"♀","Patterns":[{"y":0,"Data":[29,23,1152851170214019580,-2303573626071285792,2216615573716999,1292533238815785952,-144106409162115072,-4611405093173002237,5048957996630143,8866462806575228,-9151350718244714528,144080072419065855,8128]}]}],"TrainingSettings":{"IsTrainingEnabled":false,"SkipName":false,"SkipTribe":false,"SkipOwner":false}},"LabelRectangles":{"default":["1294, 679, 195, 18","1294, 736, 195, 18","1294, 793, 195, 18","1294, 851, 195, 18","1294, 908, 195, 18","1375, 965, 114, 18","1375, 1023, 114, 18","1294, 1080, 195, 18","1294, 1137, 195, 18","1166, 265, 231, 20","1125, 218, 308, 23","1179, 311, 216, 18","1212, 357, 150, 18"]},"SelectedLabelSetName":"default"} \ No newline at end of file From 42782b37c60aef67b99a1abbf7d7105f239e7859 Mon Sep 17 00:00:00 2001 From: cadon Date: Sun, 21 Jan 2024 14:59:36 +0100 Subject: [PATCH 17/29] changed topStatIndices type --- .../BreedingPlanning/BreedingPlan.cs | 10 +++--- ARKBreedingStats/Form1.cs | 5 +-- ARKBreedingStats/Form1.importExported.cs | 2 +- ARKBreedingStats/Form1.library.cs | 6 ++-- ARKBreedingStats/Pedigree/PedigreeCreature.cs | 8 ++--- .../Pedigree/PedigreeCreatureCompact.cs | 2 +- ARKBreedingStats/library/Creature.cs | 34 +++++++++++++++---- 7 files changed, 45 insertions(+), 22 deletions(-) diff --git a/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs b/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs index bdb55312..d3cce2c3 100644 --- a/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs +++ b/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs @@ -795,7 +795,7 @@ private void SetBestLevels(int[] bestLevels, IEnumerable creatures, bo crB.levelsWild[s] = bestLevels[s]; if (crB.levelsWild[s] == -1) totalLevelUnknown = true; - crB.topBreedingStats[s] = crB.levelsWild[s] > 0 && crB.levelsWild[s] == _bestLevels[s]; + crB.SetTopStat(s, crB.levelsWild[s] > 0 && crB.levelsWild[s] == _bestLevels[s]); } crB.levelsWild[Stats.Torpidity] = crB.levelsWild.Sum(); crB.RecalculateCreatureValues(levelStep); @@ -847,19 +847,19 @@ private void SetParents(int comboIndex) crB.levelsWild[s] = _statWeights[s] < 0 ? Math.Min(mother.levelsWild[s], father.levelsWild[s]) : BreedingScore.GetHigherBestLevel(mother.levelsWild[s], father.levelsWild[s], _statOddEvens[s]); crB.levelsMutated[s] = (crB.levelsWild[s] == mother.levelsWild[s] ? mother : father).levelsMutated?[s] ?? 0; crB.valuesBreeding[s] = StatValueCalculation.CalculateValue(_currentSpecies, s, crB.levelsWild[s], crB.levelsMutated[s], 0, true, 1, 0); - crB.topBreedingStats[s] = (_currentSpecies.stats[s].IncPerTamedLevel != 0 && crB.levelsWild[s] == _bestLevels[s]); + crB.SetTopStat(s, _currentSpecies.stats[s].IncPerTamedLevel != 0 && crB.levelsWild[s] == _bestLevels[s]); crW.levelsWild[s] = _statWeights[s] < 0 ? Math.Max(mother.levelsWild[s], father.levelsWild[s]) : Math.Min(mother.levelsWild[s], father.levelsWild[s]); crB.levelsMutated[s] = (crW.levelsWild[s] == mother.levelsWild[s] ? mother : father).levelsMutated?[s] ?? 0; crW.valuesBreeding[s] = StatValueCalculation.CalculateValue(_currentSpecies, s, crW.levelsWild[s], crW.levelsMutated[s], 0, true, 1, 0); - crW.topBreedingStats[s] = (_currentSpecies.stats[s].IncPerTamedLevel != 0 && crW.levelsWild[s] == _bestLevels[s]); + crW.SetTopStat(s, _currentSpecies.stats[s].IncPerTamedLevel != 0 && crW.levelsWild[s] == _bestLevels[s]); if (crB.levelsWild[s] == -1 || crW.levelsWild[s] == -1) totalLevelUnknown = true; // in top stats breeding mode consider only probability of top stats if (crB.levelsWild[s] > crW.levelsWild[s] - && (!topStatBreedingMode || crB.topBreedingStats[s])) + && (!topStatBreedingMode || crB.IsTopStat(s))) probabilityBest *= Ark.ProbabilityInheritHigherLevel; else if (crB.levelsWild[s] < crW.levelsWild[s] - && (!topStatBreedingMode || crB.topBreedingStats[s])) + && (!topStatBreedingMode || crB.IsTopStat(s))) probabilityBest *= Ark.ProbabilityInheritLowerLevel; } crB.levelsWild[Stats.Torpidity] = crB.levelsWild.Sum(); diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs index 68039a4d..3bda3dd0 100644 --- a/ARKBreedingStats/Form1.cs +++ b/ARKBreedingStats/Form1.cs @@ -3101,8 +3101,9 @@ private Creature CreateCreatureFromExtractorOrTester(CreatureInfoInput input) cr.imprintingBonus = _extractor.ImprintingBonus; cr.tamingEff = _extractor.UniqueTamingEffectiveness(); cr.isBred = rbBredExtractor.Checked; - cr.topBreedingStats = _statIOs.Select(s => - s.TopLevel.HasFlag(LevelStatus.TopLevel) || s.TopLevel.HasFlag(LevelStatus.NewTopLevel)).ToArray(); + for (int s = 0; s < Stats.StatsCount; s++) + cr.SetTopStat(s, _statIOs[s].TopLevel.HasFlag(LevelStatus.TopLevel) || _statIOs[s].TopLevel.HasFlag(LevelStatus.NewTopLevel)); + } else { diff --git a/ARKBreedingStats/Form1.importExported.cs b/ARKBreedingStats/Form1.importExported.cs index 6dcfbc14..71096c07 100644 --- a/ARKBreedingStats/Form1.importExported.cs +++ b/ARKBreedingStats/Form1.importExported.cs @@ -402,7 +402,7 @@ private void OverlayFeedbackForImport(Creature creature, bool uniqueExtraction, sb.Append($" {Loc.S("newTopLevel")}"); newTopLevels = true; } - else if (creature.topBreedingStats[statIndex]) + else if (creature.IsTopStat(statIndex)) { sb.Append($" {Loc.S("topLevel")}"); topLevels = true; diff --git a/ARKBreedingStats/Form1.library.cs b/ARKBreedingStats/Form1.library.cs index c03057c1..5ef62da2 100644 --- a/ARKBreedingStats/Form1.library.cs +++ b/ARKBreedingStats/Form1.library.cs @@ -332,7 +332,7 @@ private void CalculateTopStats(List creatures) continue; // reset topBreeding stats for this creature - c.topBreedingStats = new bool[Stats.StatsCount]; + c.ResetTopStats(); c.topBreedingCreature = false; if ( @@ -469,7 +469,7 @@ private void CalculateTopStats(List creatures) for (int c = 0; c < bestCreatures[s].Count; c++) { // flag topStats in creatures - bestCreatures[s][c].topBreedingStats[s] = true; + bestCreatures[s][c].SetTopStat(s, true); } } } @@ -1038,7 +1038,7 @@ private ListViewItem CreateCreatureLvItem(Creature cr, bool displayIndex = false } else lvi.SubItems[ColumnIndexFirstStat + s].BackColor = Utils.GetColorFromPercent((int)(cr.levelsWild[s] * (s == Stats.Torpidity ? colorFactor / 7 : colorFactor)), // TODO set factor to number of other stats (flyers have 6, Gacha has 8?) - _considerStatHighlight[s] ? cr.topBreedingStats[s] ? 0.2 : 0.7 : 0.93); + _considerStatHighlight[s] ? cr.IsTopStat(s) ? 0.2 : 0.7 : 0.93); // mutated levels if (cr.levelsMutated == null || cr.levelsMutated[s] == 0) diff --git a/ARKBreedingStats/Pedigree/PedigreeCreature.cs b/ARKBreedingStats/Pedigree/PedigreeCreature.cs index 7cf3c6a1..d8e804e6 100644 --- a/ARKBreedingStats/Pedigree/PedigreeCreature.cs +++ b/ARKBreedingStats/Pedigree/PedigreeCreature.cs @@ -215,7 +215,7 @@ public Creature Creature { _labels[s].Text = _creature.levelsWild[si].ToString(); if (Properties.Settings.Default.Highlight255Level && _creature.levelsWild[si] > 253) // 255 is max, 254 is the highest that allows dom leveling - _labels[s].BackColor = Utils.AdjustColorLight(_creature.levelsWild[si] == 254 ? Utils.Level254 : Utils.Level255, _creature.topBreedingStats[si] ? 0.2 : 0.7); + _labels[s].BackColor = Utils.AdjustColorLight(_creature.levelsWild[si] == 254 ? Utils.Level254 : Utils.Level255, _creature.IsTopStat(si) ? 0.2 : 0.7); else if (Properties.Settings.Default.HighlightEvenOdd) { var levelForColor = Math.Min(maxChartLevel, Math.Max(minChartLevel, _creature.levelsWild[si])); @@ -228,10 +228,10 @@ public Creature Creature { hue = Properties.Settings.Default.ChartHueOddMin + levelForColor * hueRangeOdd / chartLevelRange; } - _labels[s].BackColor = Utils.ColorFromHue(hue, _creature.topBreedingStats[si] ? 0.4 : 0.7); + _labels[s].BackColor = Utils.ColorFromHue(hue, _creature.IsTopStat(si) ? 0.4 : 0.7); } else - _labels[s].BackColor = Utils.GetColorFromPercent((int)(_creature.levelsWild[si] * 2.5), _creature.topBreedingStats[si] ? 0.2 : 0.7); + _labels[s].BackColor = Utils.GetColorFromPercent((int)(_creature.levelsWild[si] * 2.5), _creature.IsTopStat(si) ? 0.2 : 0.7); _labels[s].ForeColor = Parent?.ForeColor ?? Color.Black; // needed so text is not transparent on overlay _ttMonospaced.SetToolTip(_labels[s], Utils.StatName(si, false, _creature.Species?.statNames) + ": " + $"{_creature.valuesBreeding[si] * (Utils.Precision(si) == 3 ? 100 : 1),7:#,0.0}" @@ -241,7 +241,7 @@ public Creature Creature )); } // fonts are strange, and this seems to work. The assigned font-object is probably only used to read out the properties and then not used anymore. - using (var font = new Font("Microsoft Sans Serif", 8.25F, (_creature.topBreedingStats?[si]).GetValueOrDefault() ? FontStyle.Bold : FontStyle.Regular, GraphicsUnit.Point, 0)) + using (var font = new Font("Microsoft Sans Serif", 8.25F, _creature.IsTopStat(si) ? FontStyle.Bold : FontStyle.Regular, GraphicsUnit.Point, 0)) _labels[s].Font = font; } if (OnlyLevels) diff --git a/ARKBreedingStats/Pedigree/PedigreeCreatureCompact.cs b/ARKBreedingStats/Pedigree/PedigreeCreatureCompact.cs index f21b5afc..8acf3985 100644 --- a/ARKBreedingStats/Pedigree/PedigreeCreatureCompact.cs +++ b/ARKBreedingStats/Pedigree/PedigreeCreatureCompact.cs @@ -162,7 +162,7 @@ private void DrawData(Creature creature, bool highlight, int highlightStatIndex, var pieRadius = (int)(radiusInnerCircle + (centerCoord - radiusInnerCircle - borderWidth) * statSize); var leftTop = centerCoord - pieRadius; var angle = AngleOffset + anglePerStat * i++; - brush.Color = Utils.GetColorFromPercent((int)(100 * statSize), creature.topBreedingStats[si] ? 0 : 0.7); + brush.Color = Utils.GetColorFromPercent((int)(100 * statSize), creature.IsTopStat(si) ? 0 : 0.7); g.FillPie(brush, leftTop, leftTop, 2 * pieRadius, 2 * pieRadius, angle, anglePerStat); pen.Width = highlightStatIndex == si ? 2 : 1; diff --git a/ARKBreedingStats/library/Creature.cs b/ARKBreedingStats/library/Creature.cs index 07007089..ccd8d330 100644 --- a/ARKBreedingStats/library/Creature.cs +++ b/ARKBreedingStats/library/Creature.cs @@ -2,6 +2,7 @@ using Newtonsoft.Json; using System; using System.Collections.Generic; +using System.Drawing.Text; using System.Linq; using System.Runtime.Serialization; @@ -42,11 +43,35 @@ public class Creature : IEquatable public double[] valuesBreeding; public double[] valuesDom; + + /// + /// Set a stat index to a top stat or not for that species in the creatureCollection. + /// + public void SetTopStat(int statIndex, bool isTopStat) => + _topBreedingStatIndices = (isTopStat ? _topBreedingStatIndices | (1 << statIndex) : _topBreedingStatIndices & ~(1 << statIndex)); + /// - /// Indices of stats that are top for that species in the creatureCollection + /// Returns if a stat index is a top stat for that species in the creatureCollection. /// - public bool[] topBreedingStats; + public bool IsTopStat(int statIndex) => (_topBreedingStatIndices & (1 << statIndex)) != 0; + + public void ResetTopStats() => _topBreedingStatIndices = 0; + private int _topBreedingStatIndices; // bit flags if a stat index is a top stat public short topStatsCount; + + /// + /// Set a stat index to a top mutation stat or not for that species in the creatureCollection. + /// + public void SetTopMutationStat(int statIndex, bool isTopMutationStat) => + _topMutationStatIndices = (isTopMutationStat ? _topMutationStatIndices | (1 << statIndex) : _topMutationStatIndices & ~(1 << statIndex)); + + /// + /// Returns if a stat index is a top mutation stat for that species in the creatureCollection. + /// + public bool IsTopMutationStat(int statIndex) => (_topMutationStatIndices & (1 << statIndex)) != 0; + public void ResetTopMutationStats() => _topMutationStatIndices = 0; + private int _topMutationStatIndices; // bit flags if a stat index is a top mutation stat + /// /// topStatCount with all stats (regardless of considerStatHighlight[]) and without torpor (for breedingPlanner) /// @@ -412,13 +437,11 @@ public void SetTopStatCount(bool[] considerStatHighlight, bool considerWastedSta || flags.HasFlag(CreatureFlags.Placeholder)) return; - if (topBreedingStats == null) topBreedingStats = new bool[Stats.StatsCount]; - short c = 0, cBP = 0; onlyTopConsideredStats = true; for (int s = 0; s < Stats.StatsCount; s++) { - if (topBreedingStats[s]) + if (IsTopStat(s)) { if (s != Stats.Torpidity) cBP++; @@ -558,7 +581,6 @@ private void InitializeArrays() if (levelsDom == null) levelsDom = new int[Stats.StatsCount]; if (valuesBreeding == null) valuesBreeding = new double[Stats.StatsCount]; if (valuesDom == null) valuesDom = new double[Stats.StatsCount]; - if (topBreedingStats == null) topBreedingStats = new bool[Stats.StatsCount]; } /// From b86761d6e21aba8bc7c2915d5237a8fd4d4fe401 Mon Sep 17 00:00:00 2001 From: cadon Date: Sun, 21 Jan 2024 19:36:24 +0100 Subject: [PATCH 18/29] highlight topMutatedStats in library --- ARKBreedingStats/Form1.cs | 24 +-- ARKBreedingStats/Form1.extractor.cs | 4 +- ARKBreedingStats/Form1.importExported.cs | 4 +- ARKBreedingStats/Form1.library.cs | 167 +++++++++++++------ ARKBreedingStats/uiControls/StatWeighting.cs | 22 ++- 5 files changed, 151 insertions(+), 70 deletions(-) diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs index 3bda3dd0..e3b306e4 100644 --- a/ARKBreedingStats/Form1.cs +++ b/ARKBreedingStats/Form1.cs @@ -32,11 +32,12 @@ public partial class Form1 : Form private bool _collectionDirty; /// - /// List of all top stats per species + /// List of all highest stats per species /// - private readonly Dictionary _topLevels = new Dictionary(); - - private readonly Dictionary _lowestLevels = new Dictionary(); + private readonly Dictionary _highestSpeciesLevels = new Dictionary(); + private readonly Dictionary _lowestSpeciesLevels = new Dictionary(); + private readonly Dictionary _highestSpeciesMutationLevels = new Dictionary(); + private readonly Dictionary _lowestSpeciesMutationLevels = new Dictionary(); private readonly StatIO[] _statIOs = new StatIO[Stats.StatsCount]; private readonly StatIO[] _testingIOs = new StatIO[Stats.StatsCount]; private int _activeStatIndex = -1; @@ -735,7 +736,7 @@ private void SpeciesSelector1OnSpeciesSelected(bool speciesChanged) breedingPlan1.SetSpecies(species); } } - hatching1.SetSpecies(species, _topLevels.TryGetValue(species, out var bl) ? bl : null, _lowestLevels.TryGetValue(species, out var ll) ? ll : null); + hatching1.SetSpecies(species, _highestSpeciesLevels.TryGetValue(species, out var bl) ? bl : null, _lowestSpeciesLevels.TryGetValue(species, out var ll) ? ll : null); _hiddenLevelsCreatureTester = 0; @@ -3053,8 +3054,8 @@ private void CreatureInfoInput_CreatureDataRequested(CreatureInfoInput input, bo if (openPatternEditor) { - input.OpenNamePatternEditor(cr, _topLevels.TryGetValue(cr.Species, out var tl) ? tl : null, - _lowestLevels.TryGetValue(cr.Species, out var ll) ? ll : null, + input.OpenNamePatternEditor(cr, _highestSpeciesLevels.TryGetValue(cr.Species, out var tl) ? tl : null, + _lowestSpeciesLevels.TryGetValue(cr.Species, out var ll) ? ll : null, _customReplacingNamingPattern, namingPatternIndex, ReloadNamePatternCustomReplacings); UpdatePatternButtons(); @@ -3073,8 +3074,8 @@ private void CreatureInfoInput_CreatureDataRequested(CreatureInfoInput input, bo colorAlreadyExistingInformation = _creatureCollection.ColorAlreadyAvailable(cr.Species, input.RegionColors, out _); input.ColorAlreadyExistingInformation = colorAlreadyExistingInformation; - input.GenerateCreatureName(cr, alreadyExistingCreature, _topLevels.TryGetValue(cr.Species, out var tl) ? tl : null, - _lowestLevels.TryGetValue(cr.Species, out var ll) ? ll : null, + input.GenerateCreatureName(cr, alreadyExistingCreature, _highestSpeciesLevels.TryGetValue(cr.Species, out var tl) ? tl : null, + _lowestSpeciesLevels.TryGetValue(cr.Species, out var ll) ? ll : null, _customReplacingNamingPattern, showDuplicateNameWarning, namingPatternIndex); if (Properties.Settings.Default.PatternNameToClipboardAfterManualApplication) { @@ -3521,14 +3522,15 @@ private void GenerateCreatureNames() foreach (int i in listViewLibrary.SelectedIndices) { var cr = _creaturesDisplayed[i]; + if (cr.Species == null) continue; if (sameSpecies?.FirstOrDefault()?.Species != cr.Species) sameSpecies = _creatureCollection.creatures.Where(c => c.Species == cr.Species).ToArray(); // set new name cr.name = NamePattern.GenerateCreatureName(cr, cr, sameSpecies, - _topLevels.ContainsKey(cr.Species) ? _topLevels[cr.Species] : null, - _lowestLevels.ContainsKey(cr.Species) ? _lowestLevels[cr.Species] : null, + _highestSpeciesLevels.TryGetValue(cr.Species, out var highestSpeciesLevels) ? highestSpeciesLevels : null, + _lowestSpeciesLevels.TryGetValue(cr.Species, out var lowestSpeciesLevels) ? lowestSpeciesLevels : null, _customReplacingNamingPattern, false, 0, libraryCreatureCount: libraryCreatureCount); creaturesToUpdate.Add(cr); diff --git a/ARKBreedingStats/Form1.extractor.cs b/ARKBreedingStats/Form1.extractor.cs index 2a1d58f0..a5b0777f 100644 --- a/ARKBreedingStats/Form1.extractor.cs +++ b/ARKBreedingStats/Form1.extractor.cs @@ -116,8 +116,8 @@ private void ShowSumOfChosenLevels() radarChartExtractor.SetLevels(_statIOs.Select(s => s.LevelWild).ToArray(), _statIOs.Select(s => s.LevelMut).ToArray(), speciesSelector1.SelectedSpecies); cbExactlyImprinting.BackColor = Color.Transparent; var species = speciesSelector1.SelectedSpecies; - var checkTopLevels = _topLevels.TryGetValue(species, out int[] topSpeciesLevels); - var checkLowLevels = _lowestLevels.TryGetValue(species, out int[] lowSpeciesLevels); + var checkTopLevels = _highestSpeciesLevels.TryGetValue(species, out int[] topSpeciesLevels); + var checkLowLevels = _lowestSpeciesLevels.TryGetValue(species, out int[] lowSpeciesLevels); var customStatNames = species.statNames; var statWeights = breedingPlan1.StatWeighting.GetWeightingForSpecies(species); diff --git a/ARKBreedingStats/Form1.importExported.cs b/ARKBreedingStats/Form1.importExported.cs index 71096c07..86d03d2b 100644 --- a/ARKBreedingStats/Form1.importExported.cs +++ b/ARKBreedingStats/Form1.importExported.cs @@ -339,8 +339,8 @@ private bool SetNameOfImportedCreature(Creature creature, Creature[] creaturesOf creaturesOfSpecies = _creatureCollection.creatures.Where(c => c.Species == creature.Species) .ToArray(); creature.name = NamePattern.GenerateCreatureName(creature, alreadyExistingCreature, creaturesOfSpecies, - _topLevels.TryGetValue(creature.Species, out var topLevels) ? topLevels : null, - _lowestLevels.TryGetValue(creature.Species, out var lowestLevels) ? lowestLevels : null, + _highestSpeciesLevels.TryGetValue(creature.Species, out var topLevels) ? topLevels : null, + _lowestSpeciesLevels.TryGetValue(creature.Species, out var lowestLevels) ? lowestLevels : null, _customReplacingNamingPattern, false, 0, libraryCreatureCount: totalCreatureCount); if (alreadyExistingCreature != null) alreadyExistingCreature.name = creature.name; // if alreadyExistingCreature was already updated and creature is not used anymore make sure name is not lost diff --git a/ARKBreedingStats/Form1.library.cs b/ARKBreedingStats/Form1.library.cs index 5ef62da2..1425c5cc 100644 --- a/ARKBreedingStats/Form1.library.cs +++ b/ARKBreedingStats/Form1.library.cs @@ -295,6 +295,11 @@ private static void ApplySpeciesObjectsToCollection(CreatureCollection cc) /// creatures to consider private void CalculateTopStats(List creatures) { + _highestSpeciesLevels.Clear(); + _lowestSpeciesLevels.Clear(); + _highestSpeciesMutationLevels.Clear(); + _lowestSpeciesMutationLevels.Clear(); + var filteredCreaturesHash = Properties.Settings.Default.useFiltersInTopStatCalculation ? new HashSet(ApplyLibraryFilterSettings(creatures)) : null; var speciesCreaturesGroups = creatures.GroupBy(c => c.Species); @@ -308,13 +313,17 @@ private void CalculateTopStats(List creatures) List usedStatIndices = new List(Stats.StatsCount); List usedAndConsideredStatIndices = new List(Stats.StatsCount); - int[] bestStat = new int[Stats.StatsCount]; - int[] lowestStat = new int[Stats.StatsCount]; + var highestLevels = new int[Stats.StatsCount]; + var lowestLevels = new int[Stats.StatsCount]; + var highestMutationLevels = new int[Stats.StatsCount]; + var lowestMutationLevels = new int[Stats.StatsCount]; var statWeights = breedingPlan1.StatWeighting.GetWeightingForSpecies(species); for (int s = 0; s < Stats.StatsCount; s++) { - bestStat[s] = -1; - lowestStat[s] = -1; + highestLevels[s] = -1; + lowestLevels[s] = -1; + highestMutationLevels[s] = -1; + lowestMutationLevels[s] = -1; if (species.UsesStat(s)) { usedStatIndices.Add(s); @@ -322,7 +331,8 @@ private void CalculateTopStats(List creatures) usedAndConsideredStatIndices.Add(s); } } - List[] bestCreatures = new List[Stats.StatsCount]; + List[] bestCreaturesWildLevels = new List[Stats.StatsCount]; + List[] bestCreaturesMutatedLevels = new List[Stats.StatsCount]; int usedStatsCount = usedStatIndices.Count; int usedAndConsideredStatsCount = usedAndConsideredStatIndices.Count; @@ -331,8 +341,8 @@ private void CalculateTopStats(List creatures) if (c.flags.HasFlag(CreatureFlags.Placeholder)) continue; - // reset topBreeding stats for this creature c.ResetTopStats(); + c.ResetTopMutationStats(); c.topBreedingCreature = false; if ( @@ -351,34 +361,81 @@ private void CalculateTopStats(List creatures) for (int s = 0; s < usedStatsCount; s++) { int si = usedStatIndices[s]; - if (c.levelsWild[si] != -1 && (lowestStat[si] == -1 || c.levelsWild[si] < lowestStat[si])) - { - lowestStat[si] = c.levelsWild[si]; - } + var statWeight = statWeights.Item1[s]; + var statPreference = statWeight > 0 ? StatWeighting.StatValuePreference.High : + statWeight < 0 ? StatWeighting.StatValuePreference.Low : + StatWeighting.StatValuePreference.Indifferent; - if (c.levelsWild[si] <= 0) continue; - - if (c.levelsWild[si] == bestStat[si]) + if (c.levelsWild[si] >= 0) { - bestCreatures[si].Add(c); + if (statPreference == StatWeighting.StatValuePreference.Low) + { + if (lowestLevels[si] == -1 || c.levelsWild[si] < lowestLevels[si]) + { + bestCreaturesWildLevels[si] = new List { c }; + lowestLevels[si] = c.levelsWild[si]; + } + else if (c.levelsWild[si] == lowestLevels[si]) + { + bestCreaturesWildLevels[si].Add(c); + } + } + else if (statPreference == StatWeighting.StatValuePreference.High) + { + if (c.levelsWild[si] > highestLevels[si]) + { + // creature has a higher level than the current highest level + // check if highest stats are only counted if odd or even + if ((statWeights.Item2?[s] ?? 0) == 0 // even/odd doesn't matter + || (statWeights.Item2[s] == 1 && c.levelsWild[si] % 2 == 1) + || (statWeights.Item2[s] == 2 && c.levelsWild[si] % 2 == 0) + ) + { + bestCreaturesWildLevels[si] = new List { c }; + highestLevels[si] = c.levelsWild[si]; + } + } + else if (c.levelsWild[si] == highestLevels[si]) + { + bestCreaturesWildLevels[si].Add(c); + } + } } - else if (c.levelsWild[si] > bestStat[si]) + + if (c.levelsMutated != null && c.levelsMutated[si] >= 0) { - // check if highest stats are only counted if odd or even - if ((statWeights.Item2?[s] ?? 0) == 0 // even/odd doesn't matter - || (statWeights.Item2[s] == 1 && c.levelsWild[si] % 2 == 1) - || (statWeights.Item2[s] == 2 && c.levelsWild[si] % 2 == 0) - ) + if (statPreference == StatWeighting.StatValuePreference.Low) + { + if (lowestMutationLevels[si] == -1 || c.levelsMutated[si] < lowestMutationLevels[si]) + { + bestCreaturesMutatedLevels[si] = new List { c }; + lowestMutationLevels[si] = c.levelsMutated[si]; + } + else if (c.levelsMutated[si] == lowestMutationLevels[si]) + { + bestCreaturesMutatedLevels[si].Add(c); + } + } + else if (statPreference == StatWeighting.StatValuePreference.High) { - bestCreatures[si] = new List { c }; - bestStat[si] = c.levelsWild[si]; + if (c.levelsMutated[si] > 0 && c.levelsMutated[si] > highestMutationLevels[si]) + { + bestCreaturesMutatedLevels[si] = new List { c }; + highestMutationLevels[si] = c.levelsMutated[si]; + } + else if (c.levelsMutated[si] == highestMutationLevels[si]) + { + bestCreaturesMutatedLevels[si].Add(c); + } } } } } - _topLevels[species] = bestStat; - _lowestLevels[species] = lowestStat; + _highestSpeciesLevels[species] = highestLevels; + _lowestSpeciesLevels[species] = lowestLevels; + _highestSpeciesMutationLevels[species] = highestMutationLevels; + _lowestSpeciesMutationLevels[species] = lowestMutationLevels; // bestStat and bestCreatures now contain the best stats and creatures for each stat. @@ -387,8 +444,8 @@ private void CalculateTopStats(List creatures) for (int s = 0; s < usedAndConsideredStatsCount; s++) { int si = usedAndConsideredStatIndices[s]; - if (bestStat[si] > 0) - sumTopLevels += bestStat[si]; + if (highestLevels[si] > 0) + sumTopLevels += highestLevels[si]; } if (sumTopLevels > 0) { @@ -408,54 +465,53 @@ private void CalculateTopStats(List creatures) // if any male is in more than 1 category, remove any male from the topBreedingCreatures that is not top in at least 2 categories himself for (int s = 0; s < Stats.StatsCount; s++) { - if (bestCreatures[s] == null || bestCreatures[s].Count == 0) + if (bestCreaturesMutatedLevels[s] != null) { - continue; // no creature has levelups in this stat or the stat is not used for this species + foreach (var c in bestCreaturesMutatedLevels[s]) + c.topBreedingCreature = true; } - var crCount = bestCreatures[s].Count; + if (bestCreaturesWildLevels[s] == null || bestCreaturesWildLevels[s].Count == 0) + continue; // no creature has levelups in this stat or the stat is not used for this species + + var crCount = bestCreaturesWildLevels[s].Count; if (crCount == 1) { - bestCreatures[s][0].topBreedingCreature = true; + bestCreaturesWildLevels[s][0].topBreedingCreature = true; continue; } - for (int c = 0; c < crCount; c++) + foreach (var currentCreature in bestCreaturesWildLevels[s]) { - bestCreatures[s][c].topBreedingCreature = true; - if (bestCreatures[s][c].sex != Sex.Male) + currentCreature.topBreedingCreature = true; + if (currentCreature.sex != Sex.Male) continue; - Creature currentCreature = bestCreatures[s][c]; // check how many best stat the male has int maxval = 0; for (int cs = 0; cs < Stats.StatsCount; cs++) { - if (currentCreature.levelsWild[cs] == bestStat[cs]) + if (currentCreature.levelsWild[cs] == highestLevels[cs]) maxval++; } if (maxval > 1) { // check now if the other males have only 1. - for (int oc = 0; oc < crCount; oc++) + foreach (var otherMale in bestCreaturesWildLevels[s]) { - if (bestCreatures[s][oc].sex != Sex.Male) - continue; - - if (oc == c) + if (otherMale.sex != Sex.Male + || currentCreature.Equals(otherMale)) continue; - Creature otherMale = bestCreatures[s][oc]; - int othermaxval = 0; for (int ocs = 0; ocs < Stats.StatsCount; ocs++) { - if (otherMale.levelsWild[ocs] == bestStat[ocs]) + if (otherMale.levelsWild[ocs] == highestLevels[ocs]) othermaxval++; } if (othermaxval == 1) - bestCreatures[s][oc].topBreedingCreature = false; + otherMale.topBreedingCreature = false; } } } @@ -464,13 +520,16 @@ private void CalculateTopStats(List creatures) // now we have a list of all candidates for breeding. Iterate on stats. for (int s = 0; s < Stats.StatsCount; s++) { - if (bestCreatures[s] != null) + if (bestCreaturesWildLevels[s] != null) { - for (int c = 0; c < bestCreatures[s].Count; c++) - { - // flag topStats in creatures - bestCreatures[s][c].SetTopStat(s, true); - } + foreach (var c in bestCreaturesWildLevels[s]) + c.SetTopStat(s, true); + } + + if (bestCreaturesMutatedLevels[s] != null) + { + foreach (var c in bestCreaturesMutatedLevels[s]) + c.SetTopMutationStat(s, true); } } } @@ -481,7 +540,7 @@ private void CalculateTopStats(List creatures) var selectedSpecies = speciesSelector1.SelectedSpecies; if (selectedSpecies != null) - hatching1.SetSpecies(selectedSpecies, _topLevels.TryGetValue(selectedSpecies, out var tl) ? tl : null, _lowestLevels.TryGetValue(selectedSpecies, out var ll) ? ll : null); + hatching1.SetSpecies(selectedSpecies, _highestSpeciesLevels.TryGetValue(selectedSpecies, out var tl) ? tl : null, _lowestSpeciesLevels.TryGetValue(selectedSpecies, out var ll) ? ll : null); } /// @@ -1038,7 +1097,7 @@ private ListViewItem CreateCreatureLvItem(Creature cr, bool displayIndex = false } else lvi.SubItems[ColumnIndexFirstStat + s].BackColor = Utils.GetColorFromPercent((int)(cr.levelsWild[s] * (s == Stats.Torpidity ? colorFactor / 7 : colorFactor)), // TODO set factor to number of other stats (flyers have 6, Gacha has 8?) - _considerStatHighlight[s] ? cr.IsTopStat(s) ? 0.2 : 0.7 : 0.93); + _considerStatHighlight[s] ? cr.IsTopStat(s) ? 0.2 : 0.75 : 0.93); // mutated levels if (cr.levelsMutated == null || cr.levelsMutated[s] == 0) @@ -1047,8 +1106,8 @@ private ListViewItem CreateCreatureLvItem(Creature cr, bool displayIndex = false lvi.SubItems[ColumnIndexFirstStat + Stats.StatsCount + s].BackColor = Color.White; } else - lvi.SubItems[ColumnIndexFirstStat + Stats.StatsCount + s].BackColor = Utils.GetColorFromPercent((int)(cr.levelsMutated[s] * (s == Stats.Torpidity ? colorFactor / 7 : colorFactor)), - _considerStatHighlight[s] ? 0.7 : 0.93, true); + lvi.SubItems[ColumnIndexFirstStat + Stats.StatsCount + s].BackColor = Utils.GetColorFromPercent((int)(cr.levelsMutated[s] * colorFactor), + _considerStatHighlight[s] ? cr.IsTopMutationStat(s) ? 0.4 : 0.8 : 0.93, true); } lvi.SubItems[ColumnIndexSex].BackColor = cr.flags.HasFlag(CreatureFlags.Neutered) ? Color.FromArgb(220, 220, 220) : cr.sex == Sex.Female ? Color.FromArgb(255, 230, 255) : diff --git a/ARKBreedingStats/uiControls/StatWeighting.cs b/ARKBreedingStats/uiControls/StatWeighting.cs index 21a2f449..fa247c58 100644 --- a/ARKBreedingStats/uiControls/StatWeighting.cs +++ b/ARKBreedingStats/uiControls/StatWeighting.cs @@ -385,5 +385,25 @@ private void SetState(byte state) } } } - } + + /// + /// Describes if a stat level is desired to be high or low or if it doesn't matter. + /// + public enum StatValuePreference + { + Indifferent, + High, + Low + } + + /// + /// Describes if a stat level should be even or odd or if it doesn't matter. + /// + public enum StatValueEvenOdd + { + Indifferent, + Even, + Odd + } + } } From e3ad04bb43ed2dcc47b279a4f9df09533a705919 Mon Sep 17 00:00:00 2001 From: cadon Date: Sun, 21 Jan 2024 20:04:59 +0100 Subject: [PATCH 19/29] fix in top creature calculation --- ARKBreedingStats/Form1.library.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ARKBreedingStats/Form1.library.cs b/ARKBreedingStats/Form1.library.cs index 1425c5cc..2032731c 100644 --- a/ARKBreedingStats/Form1.library.cs +++ b/ARKBreedingStats/Form1.library.cs @@ -509,6 +509,12 @@ private void CalculateTopStats(List creatures) { if (otherMale.levelsWild[ocs] == highestLevels[ocs]) othermaxval++; + if (otherMale.IsTopMutationStat(ocs)) + { + // if this creature has top mutation levels, don't remove it from breeding pool + othermaxval = 99; + break; + } } if (othermaxval == 1) otherMale.topBreedingCreature = false; From 05dd6db3ed25d835b2341bf7b8c8adf10d6dea6e Mon Sep 17 00:00:00 2001 From: cadon Date: Sun, 21 Jan 2024 20:17:12 +0100 Subject: [PATCH 20/29] resize path displays with window --- .../settings/Settings.Designer.cs | 3438 ++++++++--------- 1 file changed, 1714 insertions(+), 1724 deletions(-) diff --git a/ARKBreedingStats/settings/Settings.Designer.cs b/ARKBreedingStats/settings/Settings.Designer.cs index 5883f7c4..be7f4432 100644 --- a/ARKBreedingStats/settings/Settings.Designer.cs +++ b/ARKBreedingStats/settings/Settings.Designer.cs @@ -45,50 +45,26 @@ private void InitializeComponent() this.label6 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.nudTamedDinoCharacterFoodDrain = new ARKBreedingStats.uiControls.Nud(); - this.nudTamedDinoCharacterFoodDrainEvent = new ARKBreedingStats.uiControls.Nud(); this.label64 = new System.Windows.Forms.Label(); - this.nudBabyImprintAmountEvent = new ARKBreedingStats.uiControls.Nud(); this.label49 = new System.Windows.Forms.Label(); - this.nudBabyImprintAmount = new ARKBreedingStats.uiControls.Nud(); this.label44 = new System.Windows.Forms.Label(); - this.nudMatingSpeed = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyFoodConsumptionSpeedEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudMatingIntervalEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyCuddleIntervalEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyMatureSpeedEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudEggHatchSpeedEvent = new ARKBreedingStats.uiControls.Nud(); this.labelBabyFoodConsumptionSpeed = new System.Windows.Forms.Label(); - this.nudBabyFoodConsumptionSpeed = new ARKBreedingStats.uiControls.Nud(); this.label3 = new System.Windows.Forms.Label(); - this.nudMatingInterval = new ARKBreedingStats.uiControls.Nud(); this.label17 = new System.Windows.Forms.Label(); - this.nudBabyCuddleInterval = new ARKBreedingStats.uiControls.Nud(); this.label13 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label(); - this.nudBabyMatureSpeed = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyImprintingStatScale = new ARKBreedingStats.uiControls.Nud(); this.label8 = new System.Windows.Forms.Label(); - this.nudEggHatchSpeed = new ARKBreedingStats.uiControls.Nud(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.LbDefaultLevelups = new System.Windows.Forms.Label(); - this.nudMaxServerLevel = new ARKBreedingStats.uiControls.Nud(); this.lbMaxTotalLevel = new System.Windows.Forms.Label(); - this.nudMaxGraphLevel = new ARKBreedingStats.uiControls.Nud(); this.label18 = new System.Windows.Forms.Label(); this.label11 = new System.Windows.Forms.Label(); - this.nudMaxWildLevels = new ARKBreedingStats.uiControls.Nud(); this.label10 = new System.Windows.Forms.Label(); - this.nudMaxDomLevels = new ARKBreedingStats.uiControls.Nud(); this.groupBox4 = new System.Windows.Forms.GroupBox(); this.label57 = new System.Windows.Forms.Label(); this.label56 = new System.Windows.Forms.Label(); this.pbChartOddRange = new System.Windows.Forms.PictureBox(); this.pbChartEvenRange = new System.Windows.Forms.PictureBox(); - this.nudChartLevelOddMax = new ARKBreedingStats.uiControls.Nud(); - this.nudChartLevelOddMin = new ARKBreedingStats.uiControls.Nud(); - this.nudChartLevelEvenMax = new ARKBreedingStats.uiControls.Nud(); - this.nudChartLevelEvenMin = new ARKBreedingStats.uiControls.Nud(); this.CbHighlightLevelEvenOdd = new System.Windows.Forms.CheckBox(); this.CbHighlightLevel255 = new System.Windows.Forms.CheckBox(); this.cbIgnoreSexInBreedingPlan = new System.Windows.Forms.CheckBox(); @@ -96,30 +72,20 @@ private void InitializeComponent() this.radioButtonFahrenheit = new System.Windows.Forms.RadioButton(); this.radioButtonCelsius = new System.Windows.Forms.RadioButton(); this.label12 = new System.Windows.Forms.Label(); - this.numericUpDownMaxBreedingSug = new ARKBreedingStats.uiControls.Nud(); this.groupBox5 = new System.Windows.Forms.GroupBox(); - this.NudWildDinoCharacterFoodDrainMultiplier = new ARKBreedingStats.uiControls.Nud(); this.label69 = new System.Windows.Forms.Label(); this.label67 = new System.Windows.Forms.Label(); - this.NudWildDinoTorporDrainMultiplier = new ARKBreedingStats.uiControls.Nud(); - this.nudDinoCharacterFoodDrainEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudTamingSpeedEvent = new ARKBreedingStats.uiControls.Nud(); this.label7 = new System.Windows.Forms.Label(); this.label14 = new System.Windows.Forms.Label(); - this.nudDinoCharacterFoodDrain = new ARKBreedingStats.uiControls.Nud(); - this.nudTamingSpeed = new ARKBreedingStats.uiControls.Nud(); this.label15 = new System.Windows.Forms.Label(); this.groupBox6 = new System.Windows.Forms.GroupBox(); this.label55 = new System.Windows.Forms.Label(); - this.NudWaitBeforeAutoLoad = new ARKBreedingStats.uiControls.Nud(); this.label54 = new System.Windows.Forms.Label(); - this.NudKeepBackupFilesCount = new ARKBreedingStats.uiControls.Nud(); this.label53 = new System.Windows.Forms.Label(); this.BtClearBackupFolder = new System.Windows.Forms.Button(); this.label52 = new System.Windows.Forms.Label(); this.BtBackupFolder = new System.Windows.Forms.Button(); this.label2 = new System.Windows.Forms.Label(); - this.NudBackupEveryMinutes = new ARKBreedingStats.uiControls.Nud(); this.groupBox7 = new System.Windows.Forms.GroupBox(); this.checkBoxDisplayHiddenStats = new System.Windows.Forms.CheckBox(); this.tabControlSettings = new System.Windows.Forms.TabControl(); @@ -146,7 +112,6 @@ private void InitializeComponent() this.cbSingleplayerSettings = new System.Windows.Forms.CheckBox(); this.groupBox11 = new System.Windows.Forms.GroupBox(); this.cbAllowMoreThanHundredImprinting = new System.Windows.Forms.CheckBox(); - this.nudWildLevelStep = new ARKBreedingStats.uiControls.Nud(); this.cbConsiderWildLevelSteps = new System.Windows.Forms.CheckBox(); this.buttonEventToDefault = new System.Windows.Forms.Button(); this.labelEvent = new System.Windows.Forms.Label(); @@ -164,17 +129,16 @@ private void InitializeComponent() this.GbImgCacheLocalAppData = new System.Windows.Forms.GroupBox(); this.CbImgCacheUseLocalAppData = new System.Windows.Forms.CheckBox(); this.groupBox16 = new System.Windows.Forms.GroupBox(); + this.CbStreamerMode = new System.Windows.Forms.CheckBox(); this.cbDevTools = new System.Windows.Forms.CheckBox(); this.GbSpecies = new System.Windows.Forms.GroupBox(); this.LbSpeciesSelectorCountLastUsed = new System.Windows.Forms.Label(); - this.NudSpeciesSelectorCountLastUsed = new ARKBreedingStats.uiControls.Nud(); this.groupBox26 = new System.Windows.Forms.GroupBox(); this.cbAdminConsoleCommandWithCheat = new System.Windows.Forms.CheckBox(); this.groupBox25 = new System.Windows.Forms.GroupBox(); this.CbbAppDefaultFontName = new System.Windows.Forms.ComboBox(); this.label48 = new System.Windows.Forms.Label(); this.CbbColorMode = new System.Windows.Forms.ComboBox(); - this.nudDefaultFontSize = new ARKBreedingStats.uiControls.Nud(); this.label33 = new System.Windows.Forms.Label(); this.label32 = new System.Windows.Forms.Label(); this.groupBox20 = new System.Windows.Forms.GroupBox(); @@ -200,7 +164,6 @@ private void InitializeComponent() this.groupBox32 = new System.Windows.Forms.GroupBox(); this.LbInfoGraphicSize = new System.Windows.Forms.Label(); this.CbbInfoGraphicFontName = new System.Windows.Forms.ComboBox(); - this.nudInfoGraphicHeight = new ARKBreedingStats.uiControls.Nud(); this.BtInfoGraphicForeColor = new System.Windows.Forms.Button(); this.BtInfoGraphicBackColor = new System.Windows.Forms.Button(); this.BtInfoGraphicBorderColor = new System.Windows.Forms.Button(); @@ -216,7 +179,6 @@ private void InitializeComponent() this.CbInfoGraphicDisplayMaxWildLevel = new System.Windows.Forms.CheckBox(); this.label50 = new System.Windows.Forms.Label(); this.tabPageImportSavegame = new System.Windows.Forms.TabPage(); - this.groupBox12 = new System.Windows.Forms.GroupBox(); this.label68 = new System.Windows.Forms.Label(); this.CbImportUnclaimedBabies = new System.Windows.Forms.CheckBox(); this.cbSaveImportCryo = new System.Windows.Forms.CheckBox(); @@ -226,17 +188,12 @@ private void InitializeComponent() this.cbImportUpdateCreatureStatus = new System.Windows.Forms.CheckBox(); this.groupBox15 = new System.Windows.Forms.GroupBox(); this.dataGridView_FileLocations = new System.Windows.Forms.DataGridView(); - this.convenientNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.serverNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.fileLocationDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dgvFileLocation_Change = new System.Windows.Forms.DataGridViewButtonColumn(); this.ImportWithQuickImport = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.dgvFileLocation_Delete = new System.Windows.Forms.DataGridViewButtonColumn(); - this.aTImportFileLocationBindingSource = new System.Windows.Forms.BindingSource(this.components); this.btAddSavegameFileLocation = new System.Windows.Forms.Button(); this.labelSavegameFileLocationHint = new System.Windows.Forms.Label(); this.groupBox14 = new System.Windows.Forms.GroupBox(); - this.fileSelectorExtractedSaveFolder = new ARKBreedingStats.uiControls.FileSelector(); this.label24 = new System.Windows.Forms.Label(); this.tabPageImportExported = new System.Windows.Forms.TabPage(); this.BtGetExportFolderAutomatically = new System.Windows.Forms.Button(); @@ -247,7 +204,6 @@ private void InitializeComponent() this.groupBox23 = new System.Windows.Forms.GroupBox(); this.label31 = new System.Windows.Forms.Label(); this.label30 = new System.Windows.Forms.Label(); - this.nudImportLowerBoundTE = new ARKBreedingStats.uiControls.Nud(); this.groupBox22 = new System.Windows.Forms.GroupBox(); this.CbBringToFrontOnImportExportIssue = new System.Windows.Forms.CheckBox(); this.CbAutoExtractAddToLibrary = new System.Windows.Forms.CheckBox(); @@ -279,13 +235,9 @@ private void InitializeComponent() this.nudWarnImportMoreThan = new System.Windows.Forms.NumericUpDown(); this.groupBox13 = new System.Windows.Forms.GroupBox(); this.dataGridViewExportFolders = new System.Windows.Forms.DataGridView(); - this.convenientNameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ownerSuffixDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.folderPathDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dgvExportFolderChange = new System.Windows.Forms.DataGridViewButtonColumn(); this.dgvExportFolderDelete = new System.Windows.Forms.DataGridViewButtonColumn(); this.dgvExportMakeDefault = new System.Windows.Forms.DataGridViewButtonColumn(); - this.aTExportFolderLocationsBindingSource = new System.Windows.Forms.BindingSource(this.components); this.btAddExportFolder = new System.Windows.Forms.Button(); this.label25 = new System.Windows.Forms.Label(); this.tabPageTimers = new System.Windows.Forms.TabPage(); @@ -296,36 +248,24 @@ private void InitializeComponent() this.groupBox8 = new System.Windows.Forms.GroupBox(); this.label22 = new System.Windows.Forms.Label(); this.tbPlayAlarmsSeconds = new System.Windows.Forms.TextBox(); - this.customSCCustom = new ARKBreedingStats.settings.customSoundChooser(); - this.customSCWakeup = new ARKBreedingStats.settings.customSoundChooser(); - this.customSCBirth = new ARKBreedingStats.settings.customSoundChooser(); - this.customSCStarving = new ARKBreedingStats.settings.customSoundChooser(); this.label20 = new System.Windows.Forms.Label(); this.tabPageOverlay = new System.Windows.Forms.TabPage(); this.groupBox10 = new System.Windows.Forms.GroupBox(); - this.NudOverlayRelativeFontSize = new ARKBreedingStats.uiControls.Nud(); this.label65 = new System.Windows.Forms.Label(); this.CbOverlayDisplayInheritance = new System.Windows.Forms.CheckBox(); this.label45 = new System.Windows.Forms.Label(); this.pCustomOverlayLocation = new System.Windows.Forms.Panel(); - this.nudCustomOverlayLocX = new ARKBreedingStats.uiControls.Nud(); this.label42 = new System.Windows.Forms.Label(); this.label43 = new System.Windows.Forms.Label(); - this.nudCustomOverlayLocY = new ARKBreedingStats.uiControls.Nud(); this.cbCustomOverlayLocation = new System.Windows.Forms.CheckBox(); this.label38 = new System.Windows.Forms.Label(); - this.nudOverlayInfoPosY = new ARKBreedingStats.uiControls.Nud(); this.label39 = new System.Windows.Forms.Label(); - this.nudOverlayInfoPosDFR = new ARKBreedingStats.uiControls.Nud(); this.label40 = new System.Windows.Forms.Label(); this.label37 = new System.Windows.Forms.Label(); - this.nudOverlayTimerPosY = new ARKBreedingStats.uiControls.Nud(); this.label36 = new System.Windows.Forms.Label(); - this.nudOverlayTimerPosX = new ARKBreedingStats.uiControls.Nud(); this.label35 = new System.Windows.Forms.Label(); this.cbInventoryCheck = new System.Windows.Forms.CheckBox(); this.label21 = new System.Windows.Forms.Label(); - this.nudOverlayInfoDuration = new ARKBreedingStats.uiControls.Nud(); this.chkbSpeechRecognition = new System.Windows.Forms.CheckBox(); this.label66 = new System.Windows.Forms.Label(); this.tabPageOCR = new System.Windows.Forms.TabPage(); @@ -336,67 +276,92 @@ private void InitializeComponent() this.label60 = new System.Windows.Forms.Label(); this.label59 = new System.Windows.Forms.Label(); this.label58 = new System.Windows.Forms.Label(); - this.NudOCRClipboardCropHeight = new ARKBreedingStats.uiControls.Nud(); - this.NudOCRClipboardCropWidth = new ARKBreedingStats.uiControls.Nud(); - this.NudOCRClipboardCropTop = new ARKBreedingStats.uiControls.Nud(); - this.NudOCRClipboardCropLeft = new ARKBreedingStats.uiControls.Nud(); this.CbOCRFromClipboard = new System.Windows.Forms.CheckBox(); this.BtGameNameAse = new System.Windows.Forms.Button(); this.cbOCRIgnoreImprintValue = new System.Windows.Forms.CheckBox(); this.cbShowOCRButton = new System.Windows.Forms.CheckBox(); this.label23 = new System.Windows.Forms.Label(); - this.nudWaitBeforeScreenCapture = new ARKBreedingStats.uiControls.Nud(); this.label19 = new System.Windows.Forms.Label(); - this.nudWhiteThreshold = new ARKBreedingStats.uiControls.Nud(); this.tbOCRCaptureApp = new System.Windows.Forms.TextBox(); this.label4 = new System.Windows.Forms.Label(); this.cbbOCRApp = new System.Windows.Forms.ComboBox(); this.label1 = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); this.colorDialog1 = new System.Windows.Forms.ColorDialog(); - this.CbStreamerMode = new System.Windows.Forms.CheckBox(); + this.nudWildLevelStep = new ARKBreedingStats.uiControls.Nud(); + this.nudTamedDinoCharacterFoodDrain = new ARKBreedingStats.uiControls.Nud(); + this.nudTamedDinoCharacterFoodDrainEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyImprintAmountEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyImprintAmount = new ARKBreedingStats.uiControls.Nud(); + this.nudMatingSpeed = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyFoodConsumptionSpeedEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudMatingIntervalEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyCuddleIntervalEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyMatureSpeedEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudEggHatchSpeedEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyFoodConsumptionSpeed = new ARKBreedingStats.uiControls.Nud(); + this.nudMatingInterval = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyCuddleInterval = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyMatureSpeed = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyImprintingStatScale = new ARKBreedingStats.uiControls.Nud(); + this.nudEggHatchSpeed = new ARKBreedingStats.uiControls.Nud(); + this.nudMaxServerLevel = new ARKBreedingStats.uiControls.Nud(); + this.nudMaxGraphLevel = new ARKBreedingStats.uiControls.Nud(); + this.nudMaxWildLevels = new ARKBreedingStats.uiControls.Nud(); + this.nudMaxDomLevels = new ARKBreedingStats.uiControls.Nud(); + this.NudWildDinoCharacterFoodDrainMultiplier = new ARKBreedingStats.uiControls.Nud(); + this.NudWildDinoTorporDrainMultiplier = new ARKBreedingStats.uiControls.Nud(); + this.nudDinoCharacterFoodDrainEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudTamingSpeedEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudDinoCharacterFoodDrain = new ARKBreedingStats.uiControls.Nud(); + this.nudTamingSpeed = new ARKBreedingStats.uiControls.Nud(); + this.NudSpeciesSelectorCountLastUsed = new ARKBreedingStats.uiControls.Nud(); + this.nudDefaultFontSize = new ARKBreedingStats.uiControls.Nud(); + this.nudChartLevelOddMax = new ARKBreedingStats.uiControls.Nud(); + this.nudChartLevelOddMin = new ARKBreedingStats.uiControls.Nud(); + this.nudChartLevelEvenMax = new ARKBreedingStats.uiControls.Nud(); + this.nudChartLevelEvenMin = new ARKBreedingStats.uiControls.Nud(); + this.numericUpDownMaxBreedingSug = new ARKBreedingStats.uiControls.Nud(); + this.NudWaitBeforeAutoLoad = new ARKBreedingStats.uiControls.Nud(); + this.NudKeepBackupFilesCount = new ARKBreedingStats.uiControls.Nud(); + this.NudBackupEveryMinutes = new ARKBreedingStats.uiControls.Nud(); + this.nudInfoGraphicHeight = new ARKBreedingStats.uiControls.Nud(); + this.convenientNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.serverNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.fileLocationDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.aTImportFileLocationBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.fileSelectorExtractedSaveFolder = new ARKBreedingStats.uiControls.FileSelector(); + this.nudImportLowerBoundTE = new ARKBreedingStats.uiControls.Nud(); + this.convenientNameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ownerSuffixDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.folderPathDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.aTExportFolderLocationsBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.customSCCustom = new ARKBreedingStats.settings.customSoundChooser(); + this.customSCWakeup = new ARKBreedingStats.settings.customSoundChooser(); + this.customSCBirth = new ARKBreedingStats.settings.customSoundChooser(); + this.customSCStarving = new ARKBreedingStats.settings.customSoundChooser(); + this.NudOverlayRelativeFontSize = new ARKBreedingStats.uiControls.Nud(); + this.nudCustomOverlayLocX = new ARKBreedingStats.uiControls.Nud(); + this.nudCustomOverlayLocY = new ARKBreedingStats.uiControls.Nud(); + this.nudOverlayInfoPosY = new ARKBreedingStats.uiControls.Nud(); + this.nudOverlayInfoPosDFR = new ARKBreedingStats.uiControls.Nud(); + this.nudOverlayTimerPosY = new ARKBreedingStats.uiControls.Nud(); + this.nudOverlayTimerPosX = new ARKBreedingStats.uiControls.Nud(); + this.nudOverlayInfoDuration = new ARKBreedingStats.uiControls.Nud(); + this.NudOCRClipboardCropHeight = new ARKBreedingStats.uiControls.Nud(); + this.NudOCRClipboardCropWidth = new ARKBreedingStats.uiControls.Nud(); + this.NudOCRClipboardCropTop = new ARKBreedingStats.uiControls.Nud(); + this.NudOCRClipboardCropLeft = new ARKBreedingStats.uiControls.Nud(); + this.nudWaitBeforeScreenCapture = new ARKBreedingStats.uiControls.Nud(); + this.nudWhiteThreshold = new ARKBreedingStats.uiControls.Nud(); this.groupBoxMultiplier.SuspendLayout(); this.groupBox2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrainEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmountEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmount)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingSpeed)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeedEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingIntervalEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleIntervalEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeedEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeedEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeed)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingInterval)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleInterval)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeed)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintingStatScale)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeed)).BeginInit(); this.groupBox3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxServerLevel)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxGraphLevel)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxWildLevels)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxDomLevels)).BeginInit(); this.groupBox4.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbChartOddRange)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pbChartEvenRange)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMax)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMin)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMax)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMin)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxBreedingSug)).BeginInit(); this.groupBox5.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoCharacterFoodDrainMultiplier)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoTorporDrainMultiplier)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrainEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeedEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrain)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeed)).BeginInit(); this.groupBox6.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NudWaitBeforeAutoLoad)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudKeepBackupFilesCount)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudBackupEveryMinutes)).BeginInit(); this.groupBox7.SuspendLayout(); this.tabControlSettings.SuspendLayout(); this.tabPageMultipliers.SuspendLayout(); @@ -404,35 +369,28 @@ private void InitializeComponent() this.groupBox29.SuspendLayout(); this.groupBox18.SuspendLayout(); this.groupBox11.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudWildLevelStep)).BeginInit(); this.tabPageGeneral.SuspendLayout(); this.groupBox31.SuspendLayout(); this.groupBox30.SuspendLayout(); this.GbImgCacheLocalAppData.SuspendLayout(); this.groupBox16.SuspendLayout(); this.GbSpecies.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NudSpeciesSelectorCountLastUsed)).BeginInit(); this.groupBox26.SuspendLayout(); this.groupBox25.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudDefaultFontSize)).BeginInit(); this.groupBox20.SuspendLayout(); this.groupBox17.SuspendLayout(); this.groupBox9.SuspendLayout(); this.tabPageInfoGraphic.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.PbInfoGraphicPreview)).BeginInit(); this.groupBox32.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudInfoGraphicHeight)).BeginInit(); this.groupBox28.SuspendLayout(); this.tabPageImportSavegame.SuspendLayout(); - this.groupBox12.SuspendLayout(); this.groupBox15.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView_FileLocations)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.aTImportFileLocationBindingSource)).BeginInit(); this.groupBox14.SuspendLayout(); this.tabPageImportExported.SuspendLayout(); this.groupBox27.SuspendLayout(); this.groupBox23.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudImportLowerBoundTE)).BeginInit(); this.groupBox22.SuspendLayout(); this.panel2.SuspendLayout(); this.groupBox21.SuspendLayout(); @@ -440,14 +398,57 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.nudWarnImportMoreThan)).BeginInit(); this.groupBox13.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridViewExportFolders)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.aTExportFolderLocationsBindingSource)).BeginInit(); this.tabPageTimers.SuspendLayout(); this.groupBox24.SuspendLayout(); this.groupBox8.SuspendLayout(); this.tabPageOverlay.SuspendLayout(); this.groupBox10.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NudOverlayRelativeFontSize)).BeginInit(); this.pCustomOverlayLocation.SuspendLayout(); + this.tabPageOCR.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudWildLevelStep)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrainEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmountEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingSpeed)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeedEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingIntervalEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleIntervalEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeedEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeedEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeed)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingInterval)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleInterval)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeed)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintingStatScale)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeed)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxServerLevel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxGraphLevel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxWildLevels)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxDomLevels)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoCharacterFoodDrainMultiplier)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoTorporDrainMultiplier)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrainEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeedEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrain)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeed)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudSpeciesSelectorCountLastUsed)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDefaultFontSize)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxBreedingSug)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudWaitBeforeAutoLoad)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudKeepBackupFilesCount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudBackupEveryMinutes)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudInfoGraphicHeight)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.aTImportFileLocationBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudImportLowerBoundTE)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.aTExportFolderLocationsBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudOverlayRelativeFontSize)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudCustomOverlayLocX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudCustomOverlayLocY)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayInfoPosY)).BeginInit(); @@ -455,15 +456,12 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.nudOverlayTimerPosY)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayTimerPosX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayInfoDuration)).BeginInit(); - this.tabPageOCR.SuspendLayout(); - this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropHeight)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropWidth)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropTop)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropLeft)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudWaitBeforeScreenCapture)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudWhiteThreshold)).BeginInit(); - this.panel1.SuspendLayout(); this.SuspendLayout(); // // groupBoxMultiplier @@ -641,88 +639,16 @@ private void InitializeComponent() this.groupBox2.TabStop = false; this.groupBox2.Text = "Breeding-Multiplier"; // - // nudTamedDinoCharacterFoodDrain + // label64 // - this.nudTamedDinoCharacterFoodDrain.DecimalPlaces = 6; - this.nudTamedDinoCharacterFoodDrain.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudTamedDinoCharacterFoodDrain.Location = new System.Drawing.Point(183, 227); - this.nudTamedDinoCharacterFoodDrain.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudTamedDinoCharacterFoodDrain.Name = "nudTamedDinoCharacterFoodDrain"; - this.nudTamedDinoCharacterFoodDrain.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudTamedDinoCharacterFoodDrain.Size = new System.Drawing.Size(72, 20); - this.nudTamedDinoCharacterFoodDrain.TabIndex = 21; - this.nudTamedDinoCharacterFoodDrain.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); + this.label64.AutoSize = true; + this.label64.Location = new System.Drawing.Point(10, 229); + this.label64.Name = "label64"; + this.label64.Size = new System.Drawing.Size(177, 13); + this.label64.TabIndex = 22; + this.label64.Text = "TamedDinoCharacterFoodDrainMult"; // - // nudTamedDinoCharacterFoodDrainEvent - // - this.nudTamedDinoCharacterFoodDrainEvent.DecimalPlaces = 6; - this.nudTamedDinoCharacterFoodDrainEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudTamedDinoCharacterFoodDrainEvent.Location = new System.Drawing.Point(263, 227); - this.nudTamedDinoCharacterFoodDrainEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudTamedDinoCharacterFoodDrainEvent.Name = "nudTamedDinoCharacterFoodDrainEvent"; - this.nudTamedDinoCharacterFoodDrainEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudTamedDinoCharacterFoodDrainEvent.Size = new System.Drawing.Size(72, 20); - this.nudTamedDinoCharacterFoodDrainEvent.TabIndex = 23; - this.nudTamedDinoCharacterFoodDrainEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // label64 - // - this.label64.AutoSize = true; - this.label64.Location = new System.Drawing.Point(10, 229); - this.label64.Name = "label64"; - this.label64.Size = new System.Drawing.Size(177, 13); - this.label64.TabIndex = 22; - this.label64.Text = "TamedDinoCharacterFoodDrainMult"; - // - // nudBabyImprintAmountEvent - // - this.nudBabyImprintAmountEvent.DecimalPlaces = 6; - this.nudBabyImprintAmountEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyImprintAmountEvent.Location = new System.Drawing.Point(263, 149); - this.nudBabyImprintAmountEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyImprintAmountEvent.Name = "nudBabyImprintAmountEvent"; - this.nudBabyImprintAmountEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyImprintAmountEvent.Size = new System.Drawing.Size(72, 20); - this.nudBabyImprintAmountEvent.TabIndex = 12; - this.nudBabyImprintAmountEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // label49 + // label49 // this.label49.AutoSize = true; this.label49.Location = new System.Drawing.Point(10, 151); @@ -731,30 +657,6 @@ private void InitializeComponent() this.label49.TabIndex = 20; this.label49.Text = "BabyImprintAmountMultiplier"; // - // nudBabyImprintAmount - // - this.nudBabyImprintAmount.DecimalPlaces = 6; - this.nudBabyImprintAmount.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyImprintAmount.Location = new System.Drawing.Point(183, 149); - this.nudBabyImprintAmount.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyImprintAmount.Name = "nudBabyImprintAmount"; - this.nudBabyImprintAmount.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyImprintAmount.Size = new System.Drawing.Size(72, 20); - this.nudBabyImprintAmount.TabIndex = 5; - this.nudBabyImprintAmount.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // // label44 // this.label44.AutoSize = true; @@ -764,150 +666,6 @@ private void InitializeComponent() this.label44.TabIndex = 18; this.label44.Text = "MatingSpeedMultiplier"; // - // nudMatingSpeed - // - this.nudMatingSpeed.DecimalPlaces = 6; - this.nudMatingSpeed.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudMatingSpeed.Location = new System.Drawing.Point(183, 19); - this.nudMatingSpeed.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudMatingSpeed.Name = "nudMatingSpeed"; - this.nudMatingSpeed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMatingSpeed.Size = new System.Drawing.Size(72, 20); - this.nudMatingSpeed.TabIndex = 0; - this.nudMatingSpeed.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyFoodConsumptionSpeedEvent - // - this.nudBabyFoodConsumptionSpeedEvent.DecimalPlaces = 6; - this.nudBabyFoodConsumptionSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyFoodConsumptionSpeedEvent.Location = new System.Drawing.Point(263, 201); - this.nudBabyFoodConsumptionSpeedEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyFoodConsumptionSpeedEvent.Name = "nudBabyFoodConsumptionSpeedEvent"; - this.nudBabyFoodConsumptionSpeedEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyFoodConsumptionSpeedEvent.Size = new System.Drawing.Size(72, 20); - this.nudBabyFoodConsumptionSpeedEvent.TabIndex = 13; - this.nudBabyFoodConsumptionSpeedEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudMatingIntervalEvent - // - this.nudMatingIntervalEvent.DecimalPlaces = 6; - this.nudMatingIntervalEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudMatingIntervalEvent.Location = new System.Drawing.Point(263, 45); - this.nudMatingIntervalEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudMatingIntervalEvent.Name = "nudMatingIntervalEvent"; - this.nudMatingIntervalEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMatingIntervalEvent.Size = new System.Drawing.Size(72, 20); - this.nudMatingIntervalEvent.TabIndex = 8; - this.nudMatingIntervalEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyCuddleIntervalEvent - // - this.nudBabyCuddleIntervalEvent.DecimalPlaces = 6; - this.nudBabyCuddleIntervalEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyCuddleIntervalEvent.Location = new System.Drawing.Point(263, 123); - this.nudBabyCuddleIntervalEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyCuddleIntervalEvent.Name = "nudBabyCuddleIntervalEvent"; - this.nudBabyCuddleIntervalEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyCuddleIntervalEvent.Size = new System.Drawing.Size(72, 20); - this.nudBabyCuddleIntervalEvent.TabIndex = 11; - this.nudBabyCuddleIntervalEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyMatureSpeedEvent - // - this.nudBabyMatureSpeedEvent.DecimalPlaces = 6; - this.nudBabyMatureSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyMatureSpeedEvent.Location = new System.Drawing.Point(263, 97); - this.nudBabyMatureSpeedEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyMatureSpeedEvent.Name = "nudBabyMatureSpeedEvent"; - this.nudBabyMatureSpeedEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyMatureSpeedEvent.Size = new System.Drawing.Size(72, 20); - this.nudBabyMatureSpeedEvent.TabIndex = 10; - this.nudBabyMatureSpeedEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudEggHatchSpeedEvent - // - this.nudEggHatchSpeedEvent.DecimalPlaces = 6; - this.nudEggHatchSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudEggHatchSpeedEvent.Location = new System.Drawing.Point(263, 71); - this.nudEggHatchSpeedEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudEggHatchSpeedEvent.Name = "nudEggHatchSpeedEvent"; - this.nudEggHatchSpeedEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudEggHatchSpeedEvent.Size = new System.Drawing.Size(72, 20); - this.nudEggHatchSpeedEvent.TabIndex = 9; - this.nudEggHatchSpeedEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // // labelBabyFoodConsumptionSpeed // this.labelBabyFoodConsumptionSpeed.AutoSize = true; @@ -917,30 +675,6 @@ private void InitializeComponent() this.labelBabyFoodConsumptionSpeed.TabIndex = 10; this.labelBabyFoodConsumptionSpeed.Text = "BabyFoodConsumptionSpeedMult"; // - // nudBabyFoodConsumptionSpeed - // - this.nudBabyFoodConsumptionSpeed.DecimalPlaces = 6; - this.nudBabyFoodConsumptionSpeed.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyFoodConsumptionSpeed.Location = new System.Drawing.Point(183, 201); - this.nudBabyFoodConsumptionSpeed.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyFoodConsumptionSpeed.Name = "nudBabyFoodConsumptionSpeed"; - this.nudBabyFoodConsumptionSpeed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyFoodConsumptionSpeed.Size = new System.Drawing.Size(72, 20); - this.nudBabyFoodConsumptionSpeed.TabIndex = 7; - this.nudBabyFoodConsumptionSpeed.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // // label3 // this.label3.AutoSize = true; @@ -950,31 +684,7 @@ private void InitializeComponent() this.label3.TabIndex = 8; this.label3.Text = "MatingIntervalMultiplier"; // - // nudMatingInterval - // - this.nudMatingInterval.DecimalPlaces = 6; - this.nudMatingInterval.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudMatingInterval.Location = new System.Drawing.Point(183, 45); - this.nudMatingInterval.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudMatingInterval.Name = "nudMatingInterval"; - this.nudMatingInterval.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMatingInterval.Size = new System.Drawing.Size(72, 20); - this.nudMatingInterval.TabIndex = 1; - this.nudMatingInterval.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // label17 + // label17 // this.label17.AutoSize = true; this.label17.Location = new System.Drawing.Point(10, 125); @@ -983,30 +693,6 @@ private void InitializeComponent() this.label17.TabIndex = 6; this.label17.Text = "BabyCuddleIntervalMultiplier"; // - // nudBabyCuddleInterval - // - this.nudBabyCuddleInterval.DecimalPlaces = 6; - this.nudBabyCuddleInterval.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyCuddleInterval.Location = new System.Drawing.Point(183, 123); - this.nudBabyCuddleInterval.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyCuddleInterval.Name = "nudBabyCuddleInterval"; - this.nudBabyCuddleInterval.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyCuddleInterval.Size = new System.Drawing.Size(72, 20); - this.nudBabyCuddleInterval.TabIndex = 4; - this.nudBabyCuddleInterval.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // // label13 // this.label13.AutoSize = true; @@ -1025,54 +711,6 @@ private void InitializeComponent() this.label9.TabIndex = 2; this.label9.Text = "BabyMatureSpeedMultiplier"; // - // nudBabyMatureSpeed - // - this.nudBabyMatureSpeed.DecimalPlaces = 6; - this.nudBabyMatureSpeed.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyMatureSpeed.Location = new System.Drawing.Point(183, 97); - this.nudBabyMatureSpeed.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyMatureSpeed.Name = "nudBabyMatureSpeed"; - this.nudBabyMatureSpeed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyMatureSpeed.Size = new System.Drawing.Size(72, 20); - this.nudBabyMatureSpeed.TabIndex = 3; - this.nudBabyMatureSpeed.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyImprintingStatScale - // - this.nudBabyImprintingStatScale.DecimalPlaces = 6; - this.nudBabyImprintingStatScale.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyImprintingStatScale.Location = new System.Drawing.Point(183, 175); - this.nudBabyImprintingStatScale.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyImprintingStatScale.Name = "nudBabyImprintingStatScale"; - this.nudBabyImprintingStatScale.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyImprintingStatScale.Size = new System.Drawing.Size(72, 20); - this.nudBabyImprintingStatScale.TabIndex = 6; - this.nudBabyImprintingStatScale.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // // label8 // this.label8.AutoSize = true; @@ -1082,30 +720,6 @@ private void InitializeComponent() this.label8.TabIndex = 0; this.label8.Text = "EggHatchSpeedMultiplier"; // - // nudEggHatchSpeed - // - this.nudEggHatchSpeed.DecimalPlaces = 6; - this.nudEggHatchSpeed.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudEggHatchSpeed.Location = new System.Drawing.Point(183, 71); - this.nudEggHatchSpeed.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudEggHatchSpeed.Name = "nudEggHatchSpeed"; - this.nudEggHatchSpeed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudEggHatchSpeed.Size = new System.Drawing.Size(72, 20); - this.nudEggHatchSpeed.TabIndex = 2; - this.nudEggHatchSpeed.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // // groupBox3 // this.groupBox3.Controls.Add(this.LbDefaultLevelups); @@ -1132,24 +746,6 @@ private void InitializeComponent() this.LbDefaultLevelups.Size = new System.Drawing.Size(0, 13); this.LbDefaultLevelups.TabIndex = 13; // - // nudMaxServerLevel - // - this.nudMaxServerLevel.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudMaxServerLevel.Location = new System.Drawing.Point(183, 97); - this.nudMaxServerLevel.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudMaxServerLevel.Name = "nudMaxServerLevel"; - this.nudMaxServerLevel.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMaxServerLevel.Size = new System.Drawing.Size(57, 20); - this.nudMaxServerLevel.TabIndex = 3; - // // lbMaxTotalLevel // this.lbMaxTotalLevel.AutoSize = true; @@ -1159,24 +755,6 @@ private void InitializeComponent() this.lbMaxTotalLevel.TabIndex = 12; this.lbMaxTotalLevel.Text = "Max Total Level (0: disabled)"; // - // nudMaxGraphLevel - // - this.nudMaxGraphLevel.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudMaxGraphLevel.Location = new System.Drawing.Point(183, 71); - this.nudMaxGraphLevel.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudMaxGraphLevel.Name = "nudMaxGraphLevel"; - this.nudMaxGraphLevel.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMaxGraphLevel.Size = new System.Drawing.Size(57, 20); - this.nudMaxGraphLevel.TabIndex = 2; - // // label18 // this.label18.AutoSize = true; @@ -1195,24 +773,6 @@ private void InitializeComponent() this.label11.TabIndex = 0; this.label11.Text = "Max Wild Level"; // - // nudMaxWildLevels - // - this.nudMaxWildLevels.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudMaxWildLevels.Location = new System.Drawing.Point(183, 19); - this.nudMaxWildLevels.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudMaxWildLevels.Name = "nudMaxWildLevels"; - this.nudMaxWildLevels.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMaxWildLevels.Size = new System.Drawing.Size(57, 20); - this.nudMaxWildLevels.TabIndex = 0; - // // label10 // this.label10.AutoSize = true; @@ -1222,24 +782,6 @@ private void InitializeComponent() this.label10.TabIndex = 2; this.label10.Text = "Max Tamed Levelups"; // - // nudMaxDomLevels - // - this.nudMaxDomLevels.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudMaxDomLevels.Location = new System.Drawing.Point(183, 45); - this.nudMaxDomLevels.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudMaxDomLevels.Name = "nudMaxDomLevels"; - this.nudMaxDomLevels.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMaxDomLevels.Size = new System.Drawing.Size(57, 20); - this.nudMaxDomLevels.TabIndex = 1; - // // groupBox4 // this.groupBox4.Controls.Add(this.label57); @@ -1299,128 +841,27 @@ private void InitializeComponent() this.pbChartEvenRange.TabIndex = 12; this.pbChartEvenRange.TabStop = false; // - // nudChartLevelOddMax + // CbHighlightLevelEvenOdd // - this.nudChartLevelOddMax.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudChartLevelOddMax.Location = new System.Drawing.Point(268, 137); - this.nudChartLevelOddMax.Maximum = new decimal(new int[] { - 360, - 0, - 0, - 0}); - this.nudChartLevelOddMax.Minimum = new decimal(new int[] { - 360, - 0, - 0, - -2147483648}); - this.nudChartLevelOddMax.Name = "nudChartLevelOddMax"; - this.nudChartLevelOddMax.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudChartLevelOddMax.Size = new System.Drawing.Size(41, 20); - this.nudChartLevelOddMax.TabIndex = 11; - this.nudChartLevelOddMax.Value = new decimal(new int[] { - 360, - 0, - 0, - 0}); - this.nudChartLevelOddMax.ValueChanged += new System.EventHandler(this.nudChartLevelOddMax_ValueChanged); + this.CbHighlightLevelEvenOdd.AutoSize = true; + this.CbHighlightLevelEvenOdd.Location = new System.Drawing.Point(6, 114); + this.CbHighlightLevelEvenOdd.Name = "CbHighlightLevelEvenOdd"; + this.CbHighlightLevelEvenOdd.Size = new System.Drawing.Size(156, 17); + this.CbHighlightLevelEvenOdd.TabIndex = 7; + this.CbHighlightLevelEvenOdd.Text = "Highlight even / odd levels"; + this.CbHighlightLevelEvenOdd.UseVisualStyleBackColor = true; // - // nudChartLevelOddMin + // CbHighlightLevel255 // - this.nudChartLevelOddMin.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudChartLevelOddMin.Location = new System.Drawing.Point(209, 137); - this.nudChartLevelOddMin.Maximum = new decimal(new int[] { - 360, - 0, - 0, - 0}); - this.nudChartLevelOddMin.Minimum = new decimal(new int[] { - 360, - 0, - 0, - -2147483648}); - this.nudChartLevelOddMin.Name = "nudChartLevelOddMin"; - this.nudChartLevelOddMin.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudChartLevelOddMin.Size = new System.Drawing.Size(41, 20); - this.nudChartLevelOddMin.TabIndex = 10; - this.nudChartLevelOddMin.ValueChanged += new System.EventHandler(this.nudChartLevelOddMin_ValueChanged); + this.CbHighlightLevel255.AutoSize = true; + this.CbHighlightLevel255.Location = new System.Drawing.Point(6, 91); + this.CbHighlightLevel255.Name = "CbHighlightLevel255"; + this.CbHighlightLevel255.Size = new System.Drawing.Size(159, 17); + this.CbHighlightLevel255.TabIndex = 6; + this.CbHighlightLevel255.Text = "Highlight Level 254 and 255"; + this.CbHighlightLevel255.UseVisualStyleBackColor = true; // - // nudChartLevelEvenMax - // - this.nudChartLevelEvenMax.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudChartLevelEvenMax.Location = new System.Drawing.Point(102, 137); - this.nudChartLevelEvenMax.Maximum = new decimal(new int[] { - 360, - 0, - 0, - 0}); - this.nudChartLevelEvenMax.Minimum = new decimal(new int[] { - 360, - 0, - 0, - -2147483648}); - this.nudChartLevelEvenMax.Name = "nudChartLevelEvenMax"; - this.nudChartLevelEvenMax.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudChartLevelEvenMax.Size = new System.Drawing.Size(41, 20); - this.nudChartLevelEvenMax.TabIndex = 9; - this.nudChartLevelEvenMax.ValueChanged += new System.EventHandler(this.nudChartLevelEvenMax_ValueChanged); - // - // nudChartLevelEvenMin - // - this.nudChartLevelEvenMin.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudChartLevelEvenMin.Location = new System.Drawing.Point(43, 137); - this.nudChartLevelEvenMin.Maximum = new decimal(new int[] { - 360, - 0, - 0, - 0}); - this.nudChartLevelEvenMin.Minimum = new decimal(new int[] { - 360, - 0, - 0, - -2147483648}); - this.nudChartLevelEvenMin.Name = "nudChartLevelEvenMin"; - this.nudChartLevelEvenMin.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudChartLevelEvenMin.Size = new System.Drawing.Size(41, 20); - this.nudChartLevelEvenMin.TabIndex = 8; - this.nudChartLevelEvenMin.ValueChanged += new System.EventHandler(this.nudChartLevelEvenMin_ValueChanged); - // - // CbHighlightLevelEvenOdd - // - this.CbHighlightLevelEvenOdd.AutoSize = true; - this.CbHighlightLevelEvenOdd.Location = new System.Drawing.Point(6, 114); - this.CbHighlightLevelEvenOdd.Name = "CbHighlightLevelEvenOdd"; - this.CbHighlightLevelEvenOdd.Size = new System.Drawing.Size(156, 17); - this.CbHighlightLevelEvenOdd.TabIndex = 7; - this.CbHighlightLevelEvenOdd.Text = "Highlight even / odd levels"; - this.CbHighlightLevelEvenOdd.UseVisualStyleBackColor = true; - // - // CbHighlightLevel255 - // - this.CbHighlightLevel255.AutoSize = true; - this.CbHighlightLevel255.Location = new System.Drawing.Point(6, 91); - this.CbHighlightLevel255.Name = "CbHighlightLevel255"; - this.CbHighlightLevel255.Size = new System.Drawing.Size(159, 17); - this.CbHighlightLevel255.TabIndex = 6; - this.CbHighlightLevel255.Text = "Highlight Level 254 and 255"; - this.CbHighlightLevel255.UseVisualStyleBackColor = true; - // - // cbIgnoreSexInBreedingPlan + // cbIgnoreSexInBreedingPlan // this.cbIgnoreSexInBreedingPlan.AutoSize = true; this.cbIgnoreSexInBreedingPlan.Location = new System.Drawing.Point(6, 68); @@ -1470,24 +911,6 @@ private void InitializeComponent() this.label12.TabIndex = 0; this.label12.Text = "Max Breeding Pair Suggestions"; // - // numericUpDownMaxBreedingSug - // - this.numericUpDownMaxBreedingSug.ForeColor = System.Drawing.SystemColors.GrayText; - this.numericUpDownMaxBreedingSug.Location = new System.Drawing.Point(252, 19); - this.numericUpDownMaxBreedingSug.Maximum = new decimal(new int[] { - 200, - 0, - 0, - 0}); - this.numericUpDownMaxBreedingSug.Name = "numericUpDownMaxBreedingSug"; - this.numericUpDownMaxBreedingSug.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.numericUpDownMaxBreedingSug.Size = new System.Drawing.Size(57, 20); - this.numericUpDownMaxBreedingSug.TabIndex = 1; - // // groupBox5 // this.groupBox5.Controls.Add(this.NudWildDinoCharacterFoodDrainMultiplier); @@ -1507,30 +930,6 @@ private void InitializeComponent() this.groupBox5.TabStop = false; this.groupBox5.Text = "Taming-Multiplier"; // - // NudWildDinoCharacterFoodDrainMultiplier - // - this.NudWildDinoCharacterFoodDrainMultiplier.DecimalPlaces = 6; - this.NudWildDinoCharacterFoodDrainMultiplier.ForeColor = System.Drawing.SystemColors.WindowText; - this.NudWildDinoCharacterFoodDrainMultiplier.Location = new System.Drawing.Point(183, 71); - this.NudWildDinoCharacterFoodDrainMultiplier.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.NudWildDinoCharacterFoodDrainMultiplier.Name = "NudWildDinoCharacterFoodDrainMultiplier"; - this.NudWildDinoCharacterFoodDrainMultiplier.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudWildDinoCharacterFoodDrainMultiplier.Size = new System.Drawing.Size(72, 20); - this.NudWildDinoCharacterFoodDrainMultiplier.TabIndex = 4; - this.NudWildDinoCharacterFoodDrainMultiplier.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // // label69 // this.label69.AutoSize = true; @@ -1549,78 +948,6 @@ private void InitializeComponent() this.label67.TabIndex = 5; this.label67.Text = "WildDinoTorporDrainMultiplier"; // - // NudWildDinoTorporDrainMultiplier - // - this.NudWildDinoTorporDrainMultiplier.DecimalPlaces = 6; - this.NudWildDinoTorporDrainMultiplier.ForeColor = System.Drawing.SystemColors.WindowText; - this.NudWildDinoTorporDrainMultiplier.Location = new System.Drawing.Point(183, 97); - this.NudWildDinoTorporDrainMultiplier.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.NudWildDinoTorporDrainMultiplier.Name = "NudWildDinoTorporDrainMultiplier"; - this.NudWildDinoTorporDrainMultiplier.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudWildDinoTorporDrainMultiplier.Size = new System.Drawing.Size(72, 20); - this.NudWildDinoTorporDrainMultiplier.TabIndex = 5; - this.NudWildDinoTorporDrainMultiplier.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudDinoCharacterFoodDrainEvent - // - this.nudDinoCharacterFoodDrainEvent.DecimalPlaces = 6; - this.nudDinoCharacterFoodDrainEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudDinoCharacterFoodDrainEvent.Location = new System.Drawing.Point(263, 45); - this.nudDinoCharacterFoodDrainEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudDinoCharacterFoodDrainEvent.Name = "nudDinoCharacterFoodDrainEvent"; - this.nudDinoCharacterFoodDrainEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudDinoCharacterFoodDrainEvent.Size = new System.Drawing.Size(72, 20); - this.nudDinoCharacterFoodDrainEvent.TabIndex = 3; - this.nudDinoCharacterFoodDrainEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudTamingSpeedEvent - // - this.nudTamingSpeedEvent.DecimalPlaces = 6; - this.nudTamingSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudTamingSpeedEvent.Location = new System.Drawing.Point(263, 19); - this.nudTamingSpeedEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudTamingSpeedEvent.Name = "nudTamingSpeedEvent"; - this.nudTamingSpeedEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudTamingSpeedEvent.Size = new System.Drawing.Size(72, 20); - this.nudTamingSpeedEvent.TabIndex = 1; - this.nudTamingSpeedEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // // label7 // this.label7.AutoSize = true; @@ -1639,54 +966,6 @@ private void InitializeComponent() this.label14.TabIndex = 0; this.label14.Text = "TamingSpeedMultiplier"; // - // nudDinoCharacterFoodDrain - // - this.nudDinoCharacterFoodDrain.DecimalPlaces = 6; - this.nudDinoCharacterFoodDrain.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudDinoCharacterFoodDrain.Location = new System.Drawing.Point(183, 45); - this.nudDinoCharacterFoodDrain.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudDinoCharacterFoodDrain.Name = "nudDinoCharacterFoodDrain"; - this.nudDinoCharacterFoodDrain.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudDinoCharacterFoodDrain.Size = new System.Drawing.Size(72, 20); - this.nudDinoCharacterFoodDrain.TabIndex = 2; - this.nudDinoCharacterFoodDrain.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudTamingSpeed - // - this.nudTamingSpeed.DecimalPlaces = 6; - this.nudTamingSpeed.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudTamingSpeed.Location = new System.Drawing.Point(183, 19); - this.nudTamingSpeed.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudTamingSpeed.Name = "nudTamingSpeed"; - this.nudTamingSpeed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudTamingSpeed.Size = new System.Drawing.Size(72, 20); - this.nudTamingSpeed.TabIndex = 0; - this.nudTamingSpeed.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // // label15 // this.label15.Location = new System.Drawing.Point(450, 548); @@ -1727,24 +1006,6 @@ private void InitializeComponent() this.label55.TabIndex = 13; this.label55.Text = "wait before loading [ms]"; // - // NudWaitBeforeAutoLoad - // - this.NudWaitBeforeAutoLoad.ForeColor = System.Drawing.SystemColors.GrayText; - this.NudWaitBeforeAutoLoad.Location = new System.Drawing.Point(255, 41); - this.NudWaitBeforeAutoLoad.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.NudWaitBeforeAutoLoad.Name = "NudWaitBeforeAutoLoad"; - this.NudWaitBeforeAutoLoad.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudWaitBeforeAutoLoad.Size = new System.Drawing.Size(56, 20); - this.NudWaitBeforeAutoLoad.TabIndex = 12; - // // label54 // this.label54.AutoSize = true; @@ -1754,20 +1015,7 @@ private void InitializeComponent() this.label54.TabIndex = 5; this.label54.Text = "backup files (0 to disable backups)"; // - // NudKeepBackupFilesCount - // - this.NudKeepBackupFilesCount.ForeColor = System.Drawing.SystemColors.GrayText; - this.NudKeepBackupFilesCount.Location = new System.Drawing.Point(44, 118); - this.NudKeepBackupFilesCount.Name = "NudKeepBackupFilesCount"; - this.NudKeepBackupFilesCount.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudKeepBackupFilesCount.Size = new System.Drawing.Size(59, 20); - this.NudKeepBackupFilesCount.TabIndex = 4; - // - // label53 + // label53 // this.label53.AutoSize = true; this.label53.Location = new System.Drawing.Point(6, 120); @@ -1815,19 +1063,6 @@ private void InitializeComponent() this.label2.Text = "Enable both checkboxes if you want to edit the library file with multiple persons" + ". Place the .asb collection-file in a shared-folder that the others have access " + "to."; - // - // NudBackupEveryMinutes - // - this.NudBackupEveryMinutes.ForeColor = System.Drawing.SystemColors.GrayText; - this.NudBackupEveryMinutes.Location = new System.Drawing.Point(132, 144); - this.NudBackupEveryMinutes.Name = "NudBackupEveryMinutes"; - this.NudBackupEveryMinutes.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudBackupEveryMinutes.Size = new System.Drawing.Size(47, 20); - this.NudBackupEveryMinutes.TabIndex = 7; // // groupBox7 // @@ -2127,34 +1362,6 @@ private void InitializeComponent() this.cbAllowMoreThanHundredImprinting.Text = "Allow more than 100% imprinting"; this.cbAllowMoreThanHundredImprinting.UseVisualStyleBackColor = true; // - // nudWildLevelStep - // - this.nudWildLevelStep.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudWildLevelStep.Location = new System.Drawing.Point(319, 17); - this.nudWildLevelStep.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudWildLevelStep.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.nudWildLevelStep.Name = "nudWildLevelStep"; - this.nudWildLevelStep.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudWildLevelStep.Size = new System.Drawing.Size(57, 20); - this.nudWildLevelStep.TabIndex = 1; - this.nudWildLevelStep.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // // cbConsiderWildLevelSteps // this.cbConsiderWildLevelSteps.AutoSize = true; @@ -2344,6 +1551,15 @@ private void InitializeComponent() this.groupBox16.TabStop = false; this.groupBox16.Text = "Application"; // + // CbStreamerMode + // + this.CbStreamerMode.Location = new System.Drawing.Point(6, 19); + this.CbStreamerMode.Name = "CbStreamerMode"; + this.CbStreamerMode.Size = new System.Drawing.Size(407, 24); + this.CbStreamerMode.TabIndex = 1; + this.CbStreamerMode.Text = "Streamer mode (hide confidential info, e.g. ASB server tag)"; + this.CbStreamerMode.UseVisualStyleBackColor = true; + // // cbDevTools // this.cbDevTools.Location = new System.Drawing.Point(6, 44); @@ -2373,19 +1589,6 @@ private void InitializeComponent() this.LbSpeciesSelectorCountLastUsed.TabIndex = 0; this.LbSpeciesSelectorCountLastUsed.Text = "Number of displayed last used species"; // - // NudSpeciesSelectorCountLastUsed - // - this.NudSpeciesSelectorCountLastUsed.ForeColor = System.Drawing.SystemColors.GrayText; - this.NudSpeciesSelectorCountLastUsed.Location = new System.Drawing.Point(252, 19); - this.NudSpeciesSelectorCountLastUsed.Name = "NudSpeciesSelectorCountLastUsed"; - this.NudSpeciesSelectorCountLastUsed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudSpeciesSelectorCountLastUsed.Size = new System.Drawing.Size(57, 20); - this.NudSpeciesSelectorCountLastUsed.TabIndex = 1; - // // groupBox26 // this.groupBox26.Controls.Add(this.cbAdminConsoleCommandWithCheat); @@ -2449,20 +1652,6 @@ private void InitializeComponent() this.CbbColorMode.Size = new System.Drawing.Size(222, 21); this.CbbColorMode.TabIndex = 5; // - // nudDefaultFontSize - // - this.nudDefaultFontSize.DecimalPlaces = 2; - this.nudDefaultFontSize.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudDefaultFontSize.Location = new System.Drawing.Point(335, 18); - this.nudDefaultFontSize.Name = "nudDefaultFontSize"; - this.nudDefaultFontSize.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudDefaultFontSize.Size = new System.Drawing.Size(72, 20); - this.nudDefaultFontSize.TabIndex = 3; - // // label33 // this.label33.AutoSize = true; @@ -2727,35 +1916,6 @@ private void InitializeComponent() this.CbbInfoGraphicFontName.TabIndex = 16; this.CbbInfoGraphicFontName.SelectedIndexChanged += new System.EventHandler(this.CbbInfoGraphicFontName_SelectedIndexChanged); // - // nudInfoGraphicHeight - // - this.nudInfoGraphicHeight.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudInfoGraphicHeight.Location = new System.Drawing.Point(126, 18); - this.nudInfoGraphicHeight.Maximum = new decimal(new int[] { - 99999, - 0, - 0, - 0}); - this.nudInfoGraphicHeight.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.nudInfoGraphicHeight.Name = "nudInfoGraphicHeight"; - this.nudInfoGraphicHeight.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudInfoGraphicHeight.Size = new System.Drawing.Size(57, 20); - this.nudInfoGraphicHeight.TabIndex = 2; - this.nudInfoGraphicHeight.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - this.nudInfoGraphicHeight.ValueChanged += new System.EventHandler(this.nudInfoGraphicHeight_ValueChanged); - // // BtInfoGraphicForeColor // this.BtInfoGraphicForeColor.Location = new System.Drawing.Point(9, 44); @@ -2913,7 +2073,16 @@ private void InitializeComponent() // tabPageImportSavegame // this.tabPageImportSavegame.AutoScroll = true; - this.tabPageImportSavegame.Controls.Add(this.groupBox12); + this.tabPageImportSavegame.Controls.Add(this.label68); + this.tabPageImportSavegame.Controls.Add(this.CbImportUnclaimedBabies); + this.tabPageImportSavegame.Controls.Add(this.cbSaveImportCryo); + this.tabPageImportSavegame.Controls.Add(this.label24); + this.tabPageImportSavegame.Controls.Add(this.cbIgnoreUnknownBPOnSaveImport); + this.tabPageImportSavegame.Controls.Add(this.groupBox14); + this.tabPageImportSavegame.Controls.Add(this.textBoxImportTribeNameFilter); + this.tabPageImportSavegame.Controls.Add(this.groupBox15); + this.tabPageImportSavegame.Controls.Add(this.label_Filter); + this.tabPageImportSavegame.Controls.Add(this.cbImportUpdateCreatureStatus); this.tabPageImportSavegame.Location = new System.Drawing.Point(4, 22); this.tabPageImportSavegame.Name = "tabPageImportSavegame"; this.tabPageImportSavegame.Padding = new System.Windows.Forms.Padding(3); @@ -2922,30 +2091,11 @@ private void InitializeComponent() this.tabPageImportSavegame.Text = "Import Savegame"; this.tabPageImportSavegame.UseVisualStyleBackColor = true; // - // groupBox12 - // - this.groupBox12.Controls.Add(this.label68); - this.groupBox12.Controls.Add(this.CbImportUnclaimedBabies); - this.groupBox12.Controls.Add(this.cbSaveImportCryo); - this.groupBox12.Controls.Add(this.cbIgnoreUnknownBPOnSaveImport); - this.groupBox12.Controls.Add(this.textBoxImportTribeNameFilter); - this.groupBox12.Controls.Add(this.label_Filter); - this.groupBox12.Controls.Add(this.cbImportUpdateCreatureStatus); - this.groupBox12.Controls.Add(this.groupBox15); - this.groupBox12.Controls.Add(this.groupBox14); - this.groupBox12.Controls.Add(this.label24); - this.groupBox12.Location = new System.Drawing.Point(3, 3); - this.groupBox12.Name = "groupBox12"; - this.groupBox12.Size = new System.Drawing.Size(739, 667); - this.groupBox12.TabIndex = 0; - this.groupBox12.TabStop = false; - this.groupBox12.Text = "Import Data from Save-File"; - // // label68 // this.label68.AutoSize = true; this.label68.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label68.Location = new System.Drawing.Point(6, 16); + this.label68.Location = new System.Drawing.Point(8, 3); this.label68.Name = "label68"; this.label68.Size = new System.Drawing.Size(506, 20); this.label68.TabIndex = 1; @@ -2954,7 +2104,7 @@ private void InitializeComponent() // CbImportUnclaimedBabies // this.CbImportUnclaimedBabies.AutoSize = true; - this.CbImportUnclaimedBabies.Location = new System.Drawing.Point(9, 176); + this.CbImportUnclaimedBabies.Location = new System.Drawing.Point(11, 163); this.CbImportUnclaimedBabies.Name = "CbImportUnclaimedBabies"; this.CbImportUnclaimedBabies.Size = new System.Drawing.Size(140, 17); this.CbImportUnclaimedBabies.TabIndex = 8; @@ -2964,7 +2114,7 @@ private void InitializeComponent() // cbSaveImportCryo // this.cbSaveImportCryo.AutoSize = true; - this.cbSaveImportCryo.Location = new System.Drawing.Point(9, 153); + this.cbSaveImportCryo.Location = new System.Drawing.Point(11, 140); this.cbSaveImportCryo.Name = "cbSaveImportCryo"; this.cbSaveImportCryo.Size = new System.Drawing.Size(216, 17); this.cbSaveImportCryo.TabIndex = 3; @@ -2974,7 +2124,7 @@ private void InitializeComponent() // cbIgnoreUnknownBPOnSaveImport // this.cbIgnoreUnknownBPOnSaveImport.AutoSize = true; - this.cbIgnoreUnknownBPOnSaveImport.Location = new System.Drawing.Point(9, 130); + this.cbIgnoreUnknownBPOnSaveImport.Location = new System.Drawing.Point(11, 117); this.cbIgnoreUnknownBPOnSaveImport.Name = "cbIgnoreUnknownBPOnSaveImport"; this.cbIgnoreUnknownBPOnSaveImport.Size = new System.Drawing.Size(334, 17); this.cbIgnoreUnknownBPOnSaveImport.TabIndex = 2; @@ -2983,7 +2133,7 @@ private void InitializeComponent() // // textBoxImportTribeNameFilter // - this.textBoxImportTribeNameFilter.Location = new System.Drawing.Point(3, 215); + this.textBoxImportTribeNameFilter.Location = new System.Drawing.Point(5, 202); this.textBoxImportTribeNameFilter.Name = "textBoxImportTribeNameFilter"; this.textBoxImportTribeNameFilter.Size = new System.Drawing.Size(730, 20); this.textBoxImportTribeNameFilter.TabIndex = 5; @@ -2991,7 +2141,7 @@ private void InitializeComponent() // label_Filter // this.label_Filter.AutoSize = true; - this.label_Filter.Location = new System.Drawing.Point(3, 199); + this.label_Filter.Location = new System.Drawing.Point(5, 186); this.label_Filter.Name = "label_Filter"; this.label_Filter.Size = new System.Drawing.Size(487, 13); this.label_Filter.TabIndex = 4; @@ -3000,7 +2150,7 @@ private void InitializeComponent() // // cbImportUpdateCreatureStatus // - this.cbImportUpdateCreatureStatus.Location = new System.Drawing.Point(9, 87); + this.cbImportUpdateCreatureStatus.Location = new System.Drawing.Point(11, 74); this.cbImportUpdateCreatureStatus.Name = "cbImportUpdateCreatureStatus"; this.cbImportUpdateCreatureStatus.Size = new System.Drawing.Size(727, 37); this.cbImportUpdateCreatureStatus.TabIndex = 1; @@ -3011,10 +2161,12 @@ private void InitializeComponent() // // groupBox15 // + this.groupBox15.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.groupBox15.Controls.Add(this.dataGridView_FileLocations); this.groupBox15.Controls.Add(this.btAddSavegameFileLocation); this.groupBox15.Controls.Add(this.labelSavegameFileLocationHint); - this.groupBox15.Location = new System.Drawing.Point(6, 302); + this.groupBox15.Location = new System.Drawing.Point(8, 289); this.groupBox15.Name = "groupBox15"; this.groupBox15.Size = new System.Drawing.Size(730, 386); this.groupBox15.TabIndex = 7; @@ -3044,28 +2196,6 @@ private void InitializeComponent() this.dataGridView_FileLocations.TabIndex = 2; this.dataGridView_FileLocations.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView_FileLocations_CellClick); // - // convenientNameDataGridViewTextBoxColumn - // - this.convenientNameDataGridViewTextBoxColumn.DataPropertyName = "ConvenientName"; - this.convenientNameDataGridViewTextBoxColumn.HeaderText = "Name"; - this.convenientNameDataGridViewTextBoxColumn.Name = "convenientNameDataGridViewTextBoxColumn"; - this.convenientNameDataGridViewTextBoxColumn.ReadOnly = true; - // - // serverNameDataGridViewTextBoxColumn - // - this.serverNameDataGridViewTextBoxColumn.DataPropertyName = "ServerName"; - this.serverNameDataGridViewTextBoxColumn.HeaderText = "Server name"; - this.serverNameDataGridViewTextBoxColumn.Name = "serverNameDataGridViewTextBoxColumn"; - this.serverNameDataGridViewTextBoxColumn.ReadOnly = true; - // - // fileLocationDataGridViewTextBoxColumn - // - this.fileLocationDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.fileLocationDataGridViewTextBoxColumn.DataPropertyName = "FileLocation"; - this.fileLocationDataGridViewTextBoxColumn.HeaderText = "File location"; - this.fileLocationDataGridViewTextBoxColumn.Name = "fileLocationDataGridViewTextBoxColumn"; - this.fileLocationDataGridViewTextBoxColumn.ReadOnly = true; - // // dgvFileLocation_Change // this.dgvFileLocation_Change.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; @@ -3100,11 +2230,6 @@ private void InitializeComponent() this.dgvFileLocation_Delete.UseColumnTextForButtonValue = true; this.dgvFileLocation_Delete.Width = 50; // - // aTImportFileLocationBindingSource - // - this.aTImportFileLocationBindingSource.AllowNew = false; - this.aTImportFileLocationBindingSource.DataSource = typeof(ARKBreedingStats.settings.ATImportFileLocation); - // // btAddSavegameFileLocation // this.btAddSavegameFileLocation.Dock = System.Windows.Forms.DockStyle.Top; @@ -3131,26 +2256,17 @@ private void InitializeComponent() // groupBox14 // this.groupBox14.Controls.Add(this.fileSelectorExtractedSaveFolder); - this.groupBox14.Location = new System.Drawing.Point(6, 249); + this.groupBox14.Location = new System.Drawing.Point(8, 236); this.groupBox14.Name = "groupBox14"; this.groupBox14.Size = new System.Drawing.Size(730, 47); this.groupBox14.TabIndex = 6; this.groupBox14.TabStop = false; this.groupBox14.Text = "Target folder for save-game working copy (user\'s temp dir if empty). It\'s recomme" + "nded to leave this setting empty."; - // - // fileSelectorExtractedSaveFolder - // - this.fileSelectorExtractedSaveFolder.Dock = System.Windows.Forms.DockStyle.Fill; - this.fileSelectorExtractedSaveFolder.Link = "filename"; - this.fileSelectorExtractedSaveFolder.Location = new System.Drawing.Point(3, 16); - this.fileSelectorExtractedSaveFolder.Name = "fileSelectorExtractedSaveFolder"; - this.fileSelectorExtractedSaveFolder.Size = new System.Drawing.Size(724, 28); - this.fileSelectorExtractedSaveFolder.TabIndex = 0; // // label24 // - this.label24.Location = new System.Drawing.Point(6, 52); + this.label24.Location = new System.Drawing.Point(8, 39); this.label24.Name = "label24"; this.label24.Size = new System.Drawing.Size(730, 38); this.label24.TabIndex = 0; @@ -3258,20 +2374,6 @@ private void InitializeComponent() this.label30.TabIndex = 11; this.label30.Text = "%"; // - // nudImportLowerBoundTE - // - this.nudImportLowerBoundTE.DecimalPlaces = 2; - this.nudImportLowerBoundTE.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudImportLowerBoundTE.Location = new System.Drawing.Point(227, 19); - this.nudImportLowerBoundTE.Name = "nudImportLowerBoundTE"; - this.nudImportLowerBoundTE.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudImportLowerBoundTE.Size = new System.Drawing.Size(64, 20); - this.nudImportLowerBoundTE.TabIndex = 1; - // // groupBox22 // this.groupBox22.Controls.Add(this.CbBringToFrontOnImportExportIssue); @@ -3580,6 +2682,8 @@ private void InitializeComponent() // // groupBox13 // + this.groupBox13.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.groupBox13.Controls.Add(this.dataGridViewExportFolders); this.groupBox13.Controls.Add(this.btAddExportFolder); this.groupBox13.Location = new System.Drawing.Point(6, 112); @@ -3608,6 +2712,1451 @@ private void InitializeComponent() this.dataGridViewExportFolders.TabIndex = 1; this.dataGridViewExportFolders.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewExportFolders_CellClick); // + // dgvExportFolderChange + // + this.dgvExportFolderChange.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.dgvExportFolderChange.HeaderText = "Change"; + this.dgvExportFolderChange.MinimumWidth = 50; + this.dgvExportFolderChange.Name = "dgvExportFolderChange"; + this.dgvExportFolderChange.ReadOnly = true; + this.dgvExportFolderChange.Text = "Change"; + this.dgvExportFolderChange.UseColumnTextForButtonValue = true; + this.dgvExportFolderChange.Width = 50; + // + // dgvExportFolderDelete + // + this.dgvExportFolderDelete.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.dgvExportFolderDelete.HeaderText = "Delete"; + this.dgvExportFolderDelete.MinimumWidth = 50; + this.dgvExportFolderDelete.Name = "dgvExportFolderDelete"; + this.dgvExportFolderDelete.ReadOnly = true; + this.dgvExportFolderDelete.Text = "Delete"; + this.dgvExportFolderDelete.UseColumnTextForButtonValue = true; + this.dgvExportFolderDelete.Width = 50; + // + // dgvExportMakeDefault + // + this.dgvExportMakeDefault.HeaderText = "Default"; + this.dgvExportMakeDefault.Name = "dgvExportMakeDefault"; + this.dgvExportMakeDefault.ReadOnly = true; + this.dgvExportMakeDefault.Text = "Make default"; + this.dgvExportMakeDefault.UseColumnTextForButtonValue = true; + // + // btAddExportFolder + // + this.btAddExportFolder.Dock = System.Windows.Forms.DockStyle.Top; + this.btAddExportFolder.Location = new System.Drawing.Point(3, 16); + this.btAddExportFolder.Name = "btAddExportFolder"; + this.btAddExportFolder.Size = new System.Drawing.Size(730, 23); + this.btAddExportFolder.TabIndex = 0; + this.btAddExportFolder.Text = "Add Export Folder…"; + this.btAddExportFolder.UseVisualStyleBackColor = true; + this.btAddExportFolder.Click += new System.EventHandler(this.btAddExportFolder_Click); + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Location = new System.Drawing.Point(3, 3); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(669, 91); + this.label25.TabIndex = 0; + this.label25.Text = resources.GetString("label25.Text"); + // + // tabPageTimers + // + this.tabPageTimers.Controls.Add(this.groupBox24); + this.tabPageTimers.Controls.Add(this.groupBox8); + this.tabPageTimers.Location = new System.Drawing.Point(4, 22); + this.tabPageTimers.Name = "tabPageTimers"; + this.tabPageTimers.Padding = new System.Windows.Forms.Padding(3); + this.tabPageTimers.Size = new System.Drawing.Size(750, 744); + this.tabPageTimers.TabIndex = 6; + this.tabPageTimers.Text = "Timers"; + this.tabPageTimers.UseVisualStyleBackColor = true; + // + // groupBox24 + // + this.groupBox24.Controls.Add(this.cbKeepExpiredTimersInOverlay); + this.groupBox24.Controls.Add(this.cbDeleteExpiredTimersOnSaving); + this.groupBox24.Controls.Add(this.cbTimersInOverlayAutomatically); + this.groupBox24.Location = new System.Drawing.Point(8, 233); + this.groupBox24.Name = "groupBox24"; + this.groupBox24.Size = new System.Drawing.Size(413, 90); + this.groupBox24.TabIndex = 1; + this.groupBox24.TabStop = false; + this.groupBox24.Text = "Timers"; + // + // cbKeepExpiredTimersInOverlay + // + this.cbKeepExpiredTimersInOverlay.AutoSize = true; + this.cbKeepExpiredTimersInOverlay.Location = new System.Drawing.Point(6, 42); + this.cbKeepExpiredTimersInOverlay.Name = "cbKeepExpiredTimersInOverlay"; + this.cbKeepExpiredTimersInOverlay.Size = new System.Drawing.Size(166, 17); + this.cbKeepExpiredTimersInOverlay.TabIndex = 1; + this.cbKeepExpiredTimersInOverlay.Text = "Keep expired timers in overlay"; + this.cbKeepExpiredTimersInOverlay.UseVisualStyleBackColor = true; + // + // cbDeleteExpiredTimersOnSaving + // + this.cbDeleteExpiredTimersOnSaving.AutoSize = true; + this.cbDeleteExpiredTimersOnSaving.Location = new System.Drawing.Point(6, 65); + this.cbDeleteExpiredTimersOnSaving.Name = "cbDeleteExpiredTimersOnSaving"; + this.cbDeleteExpiredTimersOnSaving.Size = new System.Drawing.Size(217, 17); + this.cbDeleteExpiredTimersOnSaving.TabIndex = 2; + this.cbDeleteExpiredTimersOnSaving.Text = "Delete expired timers when saving library"; + this.cbDeleteExpiredTimersOnSaving.UseVisualStyleBackColor = true; + // + // cbTimersInOverlayAutomatically + // + this.cbTimersInOverlayAutomatically.AutoSize = true; + this.cbTimersInOverlayAutomatically.Location = new System.Drawing.Point(6, 19); + this.cbTimersInOverlayAutomatically.Name = "cbTimersInOverlayAutomatically"; + this.cbTimersInOverlayAutomatically.Size = new System.Drawing.Size(202, 17); + this.cbTimersInOverlayAutomatically.TabIndex = 0; + this.cbTimersInOverlayAutomatically.Text = "Display timers in overlay automatically"; + this.cbTimersInOverlayAutomatically.UseVisualStyleBackColor = true; + // + // groupBox8 + // + this.groupBox8.Controls.Add(this.label22); + this.groupBox8.Controls.Add(this.tbPlayAlarmsSeconds); + this.groupBox8.Controls.Add(this.customSCCustom); + this.groupBox8.Controls.Add(this.customSCWakeup); + this.groupBox8.Controls.Add(this.customSCBirth); + this.groupBox8.Controls.Add(this.customSCStarving); + this.groupBox8.Controls.Add(this.label20); + this.groupBox8.Location = new System.Drawing.Point(8, 6); + this.groupBox8.Name = "groupBox8"; + this.groupBox8.Size = new System.Drawing.Size(413, 221); + this.groupBox8.TabIndex = 0; + this.groupBox8.TabStop = false; + this.groupBox8.Text = "Timer Sounds"; + // + // label22 + // + this.label22.Location = new System.Drawing.Point(6, 171); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(255, 66); + this.label22.TabIndex = 5; + this.label22.Text = "List of seconds the alarms play before they reach 0.\r\nE.g. \"60,0\" to play the ala" + + "rm at 60 s and at 0 s. Use commas to separate the values."; + // + // tbPlayAlarmsSeconds + // + this.tbPlayAlarmsSeconds.Location = new System.Drawing.Point(267, 168); + this.tbPlayAlarmsSeconds.Name = "tbPlayAlarmsSeconds"; + this.tbPlayAlarmsSeconds.Size = new System.Drawing.Size(140, 20); + this.tbPlayAlarmsSeconds.TabIndex = 6; + // + // label20 + // + this.label20.Location = new System.Drawing.Point(6, 16); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(316, 33); + this.label20.TabIndex = 0; + this.label20.Text = "Only PCM-WAV-files are supported. The sound will play 1 min before the timer runs" + + " out."; + // + // tabPageOverlay + // + this.tabPageOverlay.Controls.Add(this.groupBox10); + this.tabPageOverlay.Location = new System.Drawing.Point(4, 22); + this.tabPageOverlay.Name = "tabPageOverlay"; + this.tabPageOverlay.Padding = new System.Windows.Forms.Padding(3); + this.tabPageOverlay.Size = new System.Drawing.Size(750, 744); + this.tabPageOverlay.TabIndex = 5; + this.tabPageOverlay.Text = "Overlay"; + this.tabPageOverlay.UseVisualStyleBackColor = true; + // + // groupBox10 + // + this.groupBox10.Controls.Add(this.NudOverlayRelativeFontSize); + this.groupBox10.Controls.Add(this.label65); + this.groupBox10.Controls.Add(this.CbOverlayDisplayInheritance); + this.groupBox10.Controls.Add(this.label45); + this.groupBox10.Controls.Add(this.pCustomOverlayLocation); + this.groupBox10.Controls.Add(this.cbCustomOverlayLocation); + this.groupBox10.Controls.Add(this.label38); + this.groupBox10.Controls.Add(this.nudOverlayInfoPosY); + this.groupBox10.Controls.Add(this.label39); + this.groupBox10.Controls.Add(this.nudOverlayInfoPosDFR); + this.groupBox10.Controls.Add(this.label40); + this.groupBox10.Controls.Add(this.label37); + this.groupBox10.Controls.Add(this.nudOverlayTimerPosY); + this.groupBox10.Controls.Add(this.label36); + this.groupBox10.Controls.Add(this.nudOverlayTimerPosX); + this.groupBox10.Controls.Add(this.label35); + this.groupBox10.Controls.Add(this.cbInventoryCheck); + this.groupBox10.Controls.Add(this.label21); + this.groupBox10.Controls.Add(this.nudOverlayInfoDuration); + this.groupBox10.Controls.Add(this.chkbSpeechRecognition); + this.groupBox10.Controls.Add(this.label66); + this.groupBox10.Location = new System.Drawing.Point(8, 6); + this.groupBox10.Name = "groupBox10"; + this.groupBox10.Size = new System.Drawing.Size(734, 307); + this.groupBox10.TabIndex = 0; + this.groupBox10.TabStop = false; + this.groupBox10.Text = "Overlay"; + // + // label65 + // + this.label65.AutoSize = true; + this.label65.Location = new System.Drawing.Point(6, 252); + this.label65.Name = "label65"; + this.label65.Size = new System.Drawing.Size(141, 13); + this.label65.TabIndex = 18; + this.label65.Text = "Relative font size (default: 1)"; + // + // CbOverlayDisplayInheritance + // + this.CbOverlayDisplayInheritance.AutoSize = true; + this.CbOverlayDisplayInheritance.Location = new System.Drawing.Point(6, 284); + this.CbOverlayDisplayInheritance.Name = "CbOverlayDisplayInheritance"; + this.CbOverlayDisplayInheritance.Size = new System.Drawing.Size(203, 17); + this.CbOverlayDisplayInheritance.TabIndex = 17; + this.CbOverlayDisplayInheritance.Text = "Display creature inheritance on import"; + this.CbOverlayDisplayInheritance.UseVisualStyleBackColor = true; + // + // label45 + // + this.label45.AutoSize = true; + this.label45.Location = new System.Drawing.Point(38, 25); + this.label45.Name = "label45"; + this.label45.Size = new System.Drawing.Size(495, 13); + this.label45.TabIndex = 0; + this.label45.Text = "For the overlay to work, you need to set the window-mode \"Fullscreen-Windowed\" in" + + " the game settings."; + // + // pCustomOverlayLocation + // + this.pCustomOverlayLocation.Controls.Add(this.nudCustomOverlayLocX); + this.pCustomOverlayLocation.Controls.Add(this.label42); + this.pCustomOverlayLocation.Controls.Add(this.label43); + this.pCustomOverlayLocation.Controls.Add(this.nudCustomOverlayLocY); + this.pCustomOverlayLocation.Enabled = false; + this.pCustomOverlayLocation.Location = new System.Drawing.Point(195, 217); + this.pCustomOverlayLocation.Name = "pCustomOverlayLocation"; + this.pCustomOverlayLocation.Size = new System.Drawing.Size(201, 28); + this.pCustomOverlayLocation.TabIndex = 16; + // + // label42 + // + this.label42.AutoSize = true; + this.label42.Location = new System.Drawing.Point(105, 5); + this.label42.Name = "label42"; + this.label42.Size = new System.Drawing.Size(14, 13); + this.label42.TabIndex = 2; + this.label42.Text = "Y"; + // + // label43 + // + this.label43.AutoSize = true; + this.label43.Location = new System.Drawing.Point(4, 5); + this.label43.Name = "label43"; + this.label43.Size = new System.Drawing.Size(14, 13); + this.label43.TabIndex = 0; + this.label43.Text = "X"; + // + // cbCustomOverlayLocation + // + this.cbCustomOverlayLocation.AutoSize = true; + this.cbCustomOverlayLocation.Location = new System.Drawing.Point(6, 221); + this.cbCustomOverlayLocation.Name = "cbCustomOverlayLocation"; + this.cbCustomOverlayLocation.Size = new System.Drawing.Size(138, 17); + this.cbCustomOverlayLocation.TabIndex = 15; + this.cbCustomOverlayLocation.Text = "Custom overlay location"; + this.cbCustomOverlayLocation.UseVisualStyleBackColor = true; + this.cbCustomOverlayLocation.CheckedChanged += new System.EventHandler(this.cbCustomOverlayLocation_CheckedChanged); + // + // label38 + // + this.label38.AutoSize = true; + this.label38.Location = new System.Drawing.Point(120, 187); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(93, 13); + this.label38.TabIndex = 11; + this.label38.Text = "distance from right"; + // + // label39 + // + this.label39.AutoSize = true; + this.label39.Location = new System.Drawing.Point(300, 187); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(14, 13); + this.label39.TabIndex = 13; + this.label39.Text = "Y"; + // + // label40 + // + this.label40.AutoSize = true; + this.label40.Location = new System.Drawing.Point(6, 187); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(94, 13); + this.label40.TabIndex = 10; + this.label40.Text = "Position of the info"; + // + // label37 + // + this.label37.AutoSize = true; + this.label37.Location = new System.Drawing.Point(300, 161); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(14, 13); + this.label37.TabIndex = 8; + this.label37.Text = "Y"; + // + // label36 + // + this.label36.AutoSize = true; + this.label36.Location = new System.Drawing.Point(199, 161); + this.label36.Name = "label36"; + this.label36.Size = new System.Drawing.Size(14, 13); + this.label36.TabIndex = 6; + this.label36.Text = "X"; + // + // label35 + // + this.label35.AutoSize = true; + this.label35.Location = new System.Drawing.Point(6, 161); + this.label35.Name = "label35"; + this.label35.Size = new System.Drawing.Size(104, 13); + this.label35.TabIndex = 5; + this.label35.Text = "Position of the timers"; + // + // cbInventoryCheck + // + this.cbInventoryCheck.Location = new System.Drawing.Point(6, 116); + this.cbInventoryCheck.Name = "cbInventoryCheck"; + this.cbInventoryCheck.Size = new System.Drawing.Size(305, 35); + this.cbInventoryCheck.TabIndex = 4; + this.cbInventoryCheck.Text = "Automatically extract inventory levels (needs working OCR and enabled overlay)"; + this.cbInventoryCheck.UseVisualStyleBackColor = true; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(6, 84); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(138, 13); + this.label21.TabIndex = 2; + this.label21.Text = "Display info in overlay for [s]"; + // + // chkbSpeechRecognition + // + this.chkbSpeechRecognition.AutoSize = true; + this.chkbSpeechRecognition.Location = new System.Drawing.Point(6, 59); + this.chkbSpeechRecognition.Name = "chkbSpeechRecognition"; + this.chkbSpeechRecognition.Size = new System.Drawing.Size(338, 17); + this.chkbSpeechRecognition.TabIndex = 1; + this.chkbSpeechRecognition.Text = "Speech Recognition (displays taming info, e.g. say \"Rex level 30\")"; + this.chkbSpeechRecognition.UseVisualStyleBackColor = true; + // + // label66 + // + this.label66.AutoSize = true; + this.label66.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label66.Location = new System.Drawing.Point(6, 16); + this.label66.Name = "label66"; + this.label66.Size = new System.Drawing.Size(37, 26); + this.label66.TabIndex = 19; + this.label66.Text = "💡"; + // + // tabPageOCR + // + this.tabPageOCR.AutoScroll = true; + this.tabPageOCR.Controls.Add(this.groupBox1); + this.tabPageOCR.Location = new System.Drawing.Point(4, 22); + this.tabPageOCR.Name = "tabPageOCR"; + this.tabPageOCR.Padding = new System.Windows.Forms.Padding(3); + this.tabPageOCR.Size = new System.Drawing.Size(750, 744); + this.tabPageOCR.TabIndex = 4; + this.tabPageOCR.Text = "OCR"; + this.tabPageOCR.UseVisualStyleBackColor = true; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.BtGameNameAsa); + this.groupBox1.Controls.Add(this.label62); + this.groupBox1.Controls.Add(this.label61); + this.groupBox1.Controls.Add(this.label60); + this.groupBox1.Controls.Add(this.label59); + this.groupBox1.Controls.Add(this.label58); + this.groupBox1.Controls.Add(this.NudOCRClipboardCropHeight); + this.groupBox1.Controls.Add(this.NudOCRClipboardCropWidth); + this.groupBox1.Controls.Add(this.NudOCRClipboardCropTop); + this.groupBox1.Controls.Add(this.NudOCRClipboardCropLeft); + this.groupBox1.Controls.Add(this.CbOCRFromClipboard); + this.groupBox1.Controls.Add(this.BtGameNameAse); + this.groupBox1.Controls.Add(this.cbOCRIgnoreImprintValue); + this.groupBox1.Controls.Add(this.cbShowOCRButton); + this.groupBox1.Controls.Add(this.label23); + this.groupBox1.Controls.Add(this.nudWaitBeforeScreenCapture); + this.groupBox1.Controls.Add(this.label19); + this.groupBox1.Controls.Add(this.nudWhiteThreshold); + this.groupBox1.Controls.Add(this.tbOCRCaptureApp); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.cbbOCRApp); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(6, 6); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(734, 377); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "OCR"; + // + // BtGameNameAsa + // + this.BtGameNameAsa.Location = new System.Drawing.Point(6, 318); + this.BtGameNameAsa.Name = "BtGameNameAsa"; + this.BtGameNameAsa.Size = new System.Drawing.Size(171, 23); + this.BtGameNameAsa.TabIndex = 21; + this.BtGameNameAsa.Text = "ArkAscended (ASA default)"; + this.BtGameNameAsa.UseVisualStyleBackColor = true; + this.BtGameNameAsa.Click += new System.EventHandler(this.BtGameNameAsa_Click); + // + // label62 + // + this.label62.AutoSize = true; + this.label62.Location = new System.Drawing.Point(34, 211); + this.label62.Name = "label62"; + this.label62.Size = new System.Drawing.Size(616, 13); + this.label62.TabIndex = 20; + this.label62.Text = "Set an area of the clipboard screenshot to be used for the actual OCR. Set all fi" + + "elds to 0 to disable and use the whole screenshot."; + // + // label61 + // + this.label61.AutoSize = true; + this.label61.Location = new System.Drawing.Point(151, 229); + this.label61.Name = "label61"; + this.label61.Size = new System.Drawing.Size(26, 13); + this.label61.TabIndex = 19; + this.label61.Text = "Top"; + // + // label60 + // + this.label60.AutoSize = true; + this.label60.Location = new System.Drawing.Point(258, 229); + this.label60.Name = "label60"; + this.label60.Size = new System.Drawing.Size(35, 13); + this.label60.TabIndex = 18; + this.label60.Text = "Width"; + // + // label59 + // + this.label59.AutoSize = true; + this.label59.Location = new System.Drawing.Point(374, 229); + this.label59.Name = "label59"; + this.label59.Size = new System.Drawing.Size(38, 13); + this.label59.TabIndex = 17; + this.label59.Text = "Height"; + // + // label58 + // + this.label58.AutoSize = true; + this.label58.Location = new System.Drawing.Point(45, 229); + this.label58.Name = "label58"; + this.label58.Size = new System.Drawing.Size(25, 13); + this.label58.TabIndex = 16; + this.label58.Text = "Left"; + // + // CbOCRFromClipboard + // + this.CbOCRFromClipboard.AutoSize = true; + this.CbOCRFromClipboard.Location = new System.Drawing.Point(6, 191); + this.CbOCRFromClipboard.Name = "CbOCRFromClipboard"; + this.CbOCRFromClipboard.Size = new System.Drawing.Size(506, 17); + this.CbOCRFromClipboard.TabIndex = 11; + this.CbOCRFromClipboard.Text = "Use image in clipboard for the OCR. You can press the Print-key to copy a screens" + + "hot to the cliphoard"; + this.CbOCRFromClipboard.UseVisualStyleBackColor = true; + // + // BtGameNameAse + // + this.BtGameNameAse.Location = new System.Drawing.Point(183, 318); + this.BtGameNameAse.Name = "BtGameNameAse"; + this.BtGameNameAse.Size = new System.Drawing.Size(170, 23); + this.BtGameNameAse.TabIndex = 8; + this.BtGameNameAse.Text = "ShooterGame (ASE default)"; + this.BtGameNameAse.UseVisualStyleBackColor = true; + this.BtGameNameAse.Click += new System.EventHandler(this.BtGameNameAse_Click); + // + // cbOCRIgnoreImprintValue + // + this.cbOCRIgnoreImprintValue.AutoSize = true; + this.cbOCRIgnoreImprintValue.Location = new System.Drawing.Point(6, 168); + this.cbOCRIgnoreImprintValue.Name = "cbOCRIgnoreImprintValue"; + this.cbOCRIgnoreImprintValue.Size = new System.Drawing.Size(287, 17); + this.cbOCRIgnoreImprintValue.TabIndex = 6; + this.cbOCRIgnoreImprintValue.Text = "Don\'t read imprinting value (can be overlapped by chat)"; + this.cbOCRIgnoreImprintValue.UseVisualStyleBackColor = true; + // + // cbShowOCRButton + // + this.cbShowOCRButton.AutoSize = true; + this.cbShowOCRButton.Location = new System.Drawing.Point(6, 96); + this.cbShowOCRButton.Name = "cbShowOCRButton"; + this.cbShowOCRButton.Size = new System.Drawing.Size(228, 17); + this.cbShowOCRButton.TabIndex = 1; + this.cbShowOCRButton.Text = "Show OCR-Button instead of Import-Button"; + this.cbShowOCRButton.UseVisualStyleBackColor = true; + // + // label23 + // + this.label23.Location = new System.Drawing.Point(6, 145); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(296, 20); + this.label23.TabIndex = 4; + this.label23.Text = "Wait before screencapture (time to tab into game) in ms"; + // + // label19 + // + this.label19.Location = new System.Drawing.Point(6, 119); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(296, 20); + this.label19.TabIndex = 2; + this.label19.Text = "White Threshold (increase if you increased gamma ingame)"; + // + // tbOCRCaptureApp + // + this.tbOCRCaptureApp.Location = new System.Drawing.Point(6, 292); + this.tbOCRCaptureApp.Name = "tbOCRCaptureApp"; + this.tbOCRCaptureApp.Size = new System.Drawing.Size(722, 20); + this.tbOCRCaptureApp.TabIndex = 9; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 276); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(111, 13); + this.label4.TabIndex = 7; + this.label4.Text = "Process name of ARK"; + // + // cbbOCRApp + // + this.cbbOCRApp.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbbOCRApp.FormattingEnabled = true; + this.cbbOCRApp.Location = new System.Drawing.Point(6, 347); + this.cbbOCRApp.Name = "cbbOCRApp"; + this.cbbOCRApp.Size = new System.Drawing.Size(722, 21); + this.cbbOCRApp.TabIndex = 10; + this.cbbOCRApp.SelectedIndexChanged += new System.EventHandler(this.cbOCRApp_SelectedIndexChanged); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(6, 16); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(722, 77); + this.label1.TabIndex = 0; + this.label1.Text = resources.GetString("label1.Text"); + // + // panel1 + // + this.panel1.Controls.Add(this.buttonCancel); + this.panel1.Controls.Add(this.buttonOK); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 770); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(758, 30); + this.panel1.TabIndex = 12; + // + // nudWildLevelStep + // + this.nudWildLevelStep.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudWildLevelStep.Location = new System.Drawing.Point(319, 17); + this.nudWildLevelStep.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudWildLevelStep.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.nudWildLevelStep.Name = "nudWildLevelStep"; + this.nudWildLevelStep.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudWildLevelStep.Size = new System.Drawing.Size(57, 20); + this.nudWildLevelStep.TabIndex = 1; + this.nudWildLevelStep.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudTamedDinoCharacterFoodDrain + // + this.nudTamedDinoCharacterFoodDrain.DecimalPlaces = 6; + this.nudTamedDinoCharacterFoodDrain.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudTamedDinoCharacterFoodDrain.Location = new System.Drawing.Point(183, 227); + this.nudTamedDinoCharacterFoodDrain.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudTamedDinoCharacterFoodDrain.Name = "nudTamedDinoCharacterFoodDrain"; + this.nudTamedDinoCharacterFoodDrain.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudTamedDinoCharacterFoodDrain.Size = new System.Drawing.Size(72, 20); + this.nudTamedDinoCharacterFoodDrain.TabIndex = 21; + this.nudTamedDinoCharacterFoodDrain.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudTamedDinoCharacterFoodDrainEvent + // + this.nudTamedDinoCharacterFoodDrainEvent.DecimalPlaces = 6; + this.nudTamedDinoCharacterFoodDrainEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudTamedDinoCharacterFoodDrainEvent.Location = new System.Drawing.Point(263, 227); + this.nudTamedDinoCharacterFoodDrainEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudTamedDinoCharacterFoodDrainEvent.Name = "nudTamedDinoCharacterFoodDrainEvent"; + this.nudTamedDinoCharacterFoodDrainEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudTamedDinoCharacterFoodDrainEvent.Size = new System.Drawing.Size(72, 20); + this.nudTamedDinoCharacterFoodDrainEvent.TabIndex = 23; + this.nudTamedDinoCharacterFoodDrainEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudBabyImprintAmountEvent + // + this.nudBabyImprintAmountEvent.DecimalPlaces = 6; + this.nudBabyImprintAmountEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyImprintAmountEvent.Location = new System.Drawing.Point(263, 149); + this.nudBabyImprintAmountEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyImprintAmountEvent.Name = "nudBabyImprintAmountEvent"; + this.nudBabyImprintAmountEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyImprintAmountEvent.Size = new System.Drawing.Size(72, 20); + this.nudBabyImprintAmountEvent.TabIndex = 12; + this.nudBabyImprintAmountEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudBabyImprintAmount + // + this.nudBabyImprintAmount.DecimalPlaces = 6; + this.nudBabyImprintAmount.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyImprintAmount.Location = new System.Drawing.Point(183, 149); + this.nudBabyImprintAmount.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyImprintAmount.Name = "nudBabyImprintAmount"; + this.nudBabyImprintAmount.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyImprintAmount.Size = new System.Drawing.Size(72, 20); + this.nudBabyImprintAmount.TabIndex = 5; + this.nudBabyImprintAmount.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudMatingSpeed + // + this.nudMatingSpeed.DecimalPlaces = 6; + this.nudMatingSpeed.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudMatingSpeed.Location = new System.Drawing.Point(183, 19); + this.nudMatingSpeed.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudMatingSpeed.Name = "nudMatingSpeed"; + this.nudMatingSpeed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMatingSpeed.Size = new System.Drawing.Size(72, 20); + this.nudMatingSpeed.TabIndex = 0; + this.nudMatingSpeed.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudBabyFoodConsumptionSpeedEvent + // + this.nudBabyFoodConsumptionSpeedEvent.DecimalPlaces = 6; + this.nudBabyFoodConsumptionSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyFoodConsumptionSpeedEvent.Location = new System.Drawing.Point(263, 201); + this.nudBabyFoodConsumptionSpeedEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyFoodConsumptionSpeedEvent.Name = "nudBabyFoodConsumptionSpeedEvent"; + this.nudBabyFoodConsumptionSpeedEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyFoodConsumptionSpeedEvent.Size = new System.Drawing.Size(72, 20); + this.nudBabyFoodConsumptionSpeedEvent.TabIndex = 13; + this.nudBabyFoodConsumptionSpeedEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudMatingIntervalEvent + // + this.nudMatingIntervalEvent.DecimalPlaces = 6; + this.nudMatingIntervalEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudMatingIntervalEvent.Location = new System.Drawing.Point(263, 45); + this.nudMatingIntervalEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudMatingIntervalEvent.Name = "nudMatingIntervalEvent"; + this.nudMatingIntervalEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMatingIntervalEvent.Size = new System.Drawing.Size(72, 20); + this.nudMatingIntervalEvent.TabIndex = 8; + this.nudMatingIntervalEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudBabyCuddleIntervalEvent + // + this.nudBabyCuddleIntervalEvent.DecimalPlaces = 6; + this.nudBabyCuddleIntervalEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyCuddleIntervalEvent.Location = new System.Drawing.Point(263, 123); + this.nudBabyCuddleIntervalEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyCuddleIntervalEvent.Name = "nudBabyCuddleIntervalEvent"; + this.nudBabyCuddleIntervalEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyCuddleIntervalEvent.Size = new System.Drawing.Size(72, 20); + this.nudBabyCuddleIntervalEvent.TabIndex = 11; + this.nudBabyCuddleIntervalEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudBabyMatureSpeedEvent + // + this.nudBabyMatureSpeedEvent.DecimalPlaces = 6; + this.nudBabyMatureSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyMatureSpeedEvent.Location = new System.Drawing.Point(263, 97); + this.nudBabyMatureSpeedEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyMatureSpeedEvent.Name = "nudBabyMatureSpeedEvent"; + this.nudBabyMatureSpeedEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyMatureSpeedEvent.Size = new System.Drawing.Size(72, 20); + this.nudBabyMatureSpeedEvent.TabIndex = 10; + this.nudBabyMatureSpeedEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudEggHatchSpeedEvent + // + this.nudEggHatchSpeedEvent.DecimalPlaces = 6; + this.nudEggHatchSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudEggHatchSpeedEvent.Location = new System.Drawing.Point(263, 71); + this.nudEggHatchSpeedEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudEggHatchSpeedEvent.Name = "nudEggHatchSpeedEvent"; + this.nudEggHatchSpeedEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudEggHatchSpeedEvent.Size = new System.Drawing.Size(72, 20); + this.nudEggHatchSpeedEvent.TabIndex = 9; + this.nudEggHatchSpeedEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudBabyFoodConsumptionSpeed + // + this.nudBabyFoodConsumptionSpeed.DecimalPlaces = 6; + this.nudBabyFoodConsumptionSpeed.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyFoodConsumptionSpeed.Location = new System.Drawing.Point(183, 201); + this.nudBabyFoodConsumptionSpeed.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyFoodConsumptionSpeed.Name = "nudBabyFoodConsumptionSpeed"; + this.nudBabyFoodConsumptionSpeed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyFoodConsumptionSpeed.Size = new System.Drawing.Size(72, 20); + this.nudBabyFoodConsumptionSpeed.TabIndex = 7; + this.nudBabyFoodConsumptionSpeed.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudMatingInterval + // + this.nudMatingInterval.DecimalPlaces = 6; + this.nudMatingInterval.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudMatingInterval.Location = new System.Drawing.Point(183, 45); + this.nudMatingInterval.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudMatingInterval.Name = "nudMatingInterval"; + this.nudMatingInterval.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMatingInterval.Size = new System.Drawing.Size(72, 20); + this.nudMatingInterval.TabIndex = 1; + this.nudMatingInterval.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudBabyCuddleInterval + // + this.nudBabyCuddleInterval.DecimalPlaces = 6; + this.nudBabyCuddleInterval.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyCuddleInterval.Location = new System.Drawing.Point(183, 123); + this.nudBabyCuddleInterval.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyCuddleInterval.Name = "nudBabyCuddleInterval"; + this.nudBabyCuddleInterval.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyCuddleInterval.Size = new System.Drawing.Size(72, 20); + this.nudBabyCuddleInterval.TabIndex = 4; + this.nudBabyCuddleInterval.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudBabyMatureSpeed + // + this.nudBabyMatureSpeed.DecimalPlaces = 6; + this.nudBabyMatureSpeed.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyMatureSpeed.Location = new System.Drawing.Point(183, 97); + this.nudBabyMatureSpeed.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyMatureSpeed.Name = "nudBabyMatureSpeed"; + this.nudBabyMatureSpeed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyMatureSpeed.Size = new System.Drawing.Size(72, 20); + this.nudBabyMatureSpeed.TabIndex = 3; + this.nudBabyMatureSpeed.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudBabyImprintingStatScale + // + this.nudBabyImprintingStatScale.DecimalPlaces = 6; + this.nudBabyImprintingStatScale.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyImprintingStatScale.Location = new System.Drawing.Point(183, 175); + this.nudBabyImprintingStatScale.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyImprintingStatScale.Name = "nudBabyImprintingStatScale"; + this.nudBabyImprintingStatScale.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyImprintingStatScale.Size = new System.Drawing.Size(72, 20); + this.nudBabyImprintingStatScale.TabIndex = 6; + this.nudBabyImprintingStatScale.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudEggHatchSpeed + // + this.nudEggHatchSpeed.DecimalPlaces = 6; + this.nudEggHatchSpeed.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudEggHatchSpeed.Location = new System.Drawing.Point(183, 71); + this.nudEggHatchSpeed.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudEggHatchSpeed.Name = "nudEggHatchSpeed"; + this.nudEggHatchSpeed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudEggHatchSpeed.Size = new System.Drawing.Size(72, 20); + this.nudEggHatchSpeed.TabIndex = 2; + this.nudEggHatchSpeed.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudMaxServerLevel + // + this.nudMaxServerLevel.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudMaxServerLevel.Location = new System.Drawing.Point(183, 97); + this.nudMaxServerLevel.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudMaxServerLevel.Name = "nudMaxServerLevel"; + this.nudMaxServerLevel.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMaxServerLevel.Size = new System.Drawing.Size(57, 20); + this.nudMaxServerLevel.TabIndex = 3; + // + // nudMaxGraphLevel + // + this.nudMaxGraphLevel.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudMaxGraphLevel.Location = new System.Drawing.Point(183, 71); + this.nudMaxGraphLevel.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudMaxGraphLevel.Name = "nudMaxGraphLevel"; + this.nudMaxGraphLevel.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMaxGraphLevel.Size = new System.Drawing.Size(57, 20); + this.nudMaxGraphLevel.TabIndex = 2; + // + // nudMaxWildLevels + // + this.nudMaxWildLevels.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudMaxWildLevels.Location = new System.Drawing.Point(183, 19); + this.nudMaxWildLevels.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudMaxWildLevels.Name = "nudMaxWildLevels"; + this.nudMaxWildLevels.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMaxWildLevels.Size = new System.Drawing.Size(57, 20); + this.nudMaxWildLevels.TabIndex = 0; + // + // nudMaxDomLevels + // + this.nudMaxDomLevels.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudMaxDomLevels.Location = new System.Drawing.Point(183, 45); + this.nudMaxDomLevels.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudMaxDomLevels.Name = "nudMaxDomLevels"; + this.nudMaxDomLevels.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMaxDomLevels.Size = new System.Drawing.Size(57, 20); + this.nudMaxDomLevels.TabIndex = 1; + // + // NudWildDinoCharacterFoodDrainMultiplier + // + this.NudWildDinoCharacterFoodDrainMultiplier.DecimalPlaces = 6; + this.NudWildDinoCharacterFoodDrainMultiplier.ForeColor = System.Drawing.SystemColors.WindowText; + this.NudWildDinoCharacterFoodDrainMultiplier.Location = new System.Drawing.Point(183, 71); + this.NudWildDinoCharacterFoodDrainMultiplier.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.NudWildDinoCharacterFoodDrainMultiplier.Name = "NudWildDinoCharacterFoodDrainMultiplier"; + this.NudWildDinoCharacterFoodDrainMultiplier.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudWildDinoCharacterFoodDrainMultiplier.Size = new System.Drawing.Size(72, 20); + this.NudWildDinoCharacterFoodDrainMultiplier.TabIndex = 4; + this.NudWildDinoCharacterFoodDrainMultiplier.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // NudWildDinoTorporDrainMultiplier + // + this.NudWildDinoTorporDrainMultiplier.DecimalPlaces = 6; + this.NudWildDinoTorporDrainMultiplier.ForeColor = System.Drawing.SystemColors.WindowText; + this.NudWildDinoTorporDrainMultiplier.Location = new System.Drawing.Point(183, 97); + this.NudWildDinoTorporDrainMultiplier.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.NudWildDinoTorporDrainMultiplier.Name = "NudWildDinoTorporDrainMultiplier"; + this.NudWildDinoTorporDrainMultiplier.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudWildDinoTorporDrainMultiplier.Size = new System.Drawing.Size(72, 20); + this.NudWildDinoTorporDrainMultiplier.TabIndex = 5; + this.NudWildDinoTorporDrainMultiplier.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudDinoCharacterFoodDrainEvent + // + this.nudDinoCharacterFoodDrainEvent.DecimalPlaces = 6; + this.nudDinoCharacterFoodDrainEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudDinoCharacterFoodDrainEvent.Location = new System.Drawing.Point(263, 45); + this.nudDinoCharacterFoodDrainEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudDinoCharacterFoodDrainEvent.Name = "nudDinoCharacterFoodDrainEvent"; + this.nudDinoCharacterFoodDrainEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudDinoCharacterFoodDrainEvent.Size = new System.Drawing.Size(72, 20); + this.nudDinoCharacterFoodDrainEvent.TabIndex = 3; + this.nudDinoCharacterFoodDrainEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudTamingSpeedEvent + // + this.nudTamingSpeedEvent.DecimalPlaces = 6; + this.nudTamingSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudTamingSpeedEvent.Location = new System.Drawing.Point(263, 19); + this.nudTamingSpeedEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudTamingSpeedEvent.Name = "nudTamingSpeedEvent"; + this.nudTamingSpeedEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudTamingSpeedEvent.Size = new System.Drawing.Size(72, 20); + this.nudTamingSpeedEvent.TabIndex = 1; + this.nudTamingSpeedEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudDinoCharacterFoodDrain + // + this.nudDinoCharacterFoodDrain.DecimalPlaces = 6; + this.nudDinoCharacterFoodDrain.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudDinoCharacterFoodDrain.Location = new System.Drawing.Point(183, 45); + this.nudDinoCharacterFoodDrain.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudDinoCharacterFoodDrain.Name = "nudDinoCharacterFoodDrain"; + this.nudDinoCharacterFoodDrain.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudDinoCharacterFoodDrain.Size = new System.Drawing.Size(72, 20); + this.nudDinoCharacterFoodDrain.TabIndex = 2; + this.nudDinoCharacterFoodDrain.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // nudTamingSpeed + // + this.nudTamingSpeed.DecimalPlaces = 6; + this.nudTamingSpeed.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudTamingSpeed.Location = new System.Drawing.Point(183, 19); + this.nudTamingSpeed.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudTamingSpeed.Name = "nudTamingSpeed"; + this.nudTamingSpeed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudTamingSpeed.Size = new System.Drawing.Size(72, 20); + this.nudTamingSpeed.TabIndex = 0; + this.nudTamingSpeed.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // NudSpeciesSelectorCountLastUsed + // + this.NudSpeciesSelectorCountLastUsed.ForeColor = System.Drawing.SystemColors.GrayText; + this.NudSpeciesSelectorCountLastUsed.Location = new System.Drawing.Point(252, 19); + this.NudSpeciesSelectorCountLastUsed.Name = "NudSpeciesSelectorCountLastUsed"; + this.NudSpeciesSelectorCountLastUsed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudSpeciesSelectorCountLastUsed.Size = new System.Drawing.Size(57, 20); + this.NudSpeciesSelectorCountLastUsed.TabIndex = 1; + // + // nudDefaultFontSize + // + this.nudDefaultFontSize.DecimalPlaces = 2; + this.nudDefaultFontSize.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudDefaultFontSize.Location = new System.Drawing.Point(335, 18); + this.nudDefaultFontSize.Name = "nudDefaultFontSize"; + this.nudDefaultFontSize.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudDefaultFontSize.Size = new System.Drawing.Size(72, 20); + this.nudDefaultFontSize.TabIndex = 3; + // + // nudChartLevelOddMax + // + this.nudChartLevelOddMax.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudChartLevelOddMax.Location = new System.Drawing.Point(268, 137); + this.nudChartLevelOddMax.Maximum = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.nudChartLevelOddMax.Minimum = new decimal(new int[] { + 360, + 0, + 0, + -2147483648}); + this.nudChartLevelOddMax.Name = "nudChartLevelOddMax"; + this.nudChartLevelOddMax.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudChartLevelOddMax.Size = new System.Drawing.Size(41, 20); + this.nudChartLevelOddMax.TabIndex = 11; + this.nudChartLevelOddMax.Value = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.nudChartLevelOddMax.ValueChanged += new System.EventHandler(this.nudChartLevelOddMax_ValueChanged); + // + // nudChartLevelOddMin + // + this.nudChartLevelOddMin.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudChartLevelOddMin.Location = new System.Drawing.Point(209, 137); + this.nudChartLevelOddMin.Maximum = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.nudChartLevelOddMin.Minimum = new decimal(new int[] { + 360, + 0, + 0, + -2147483648}); + this.nudChartLevelOddMin.Name = "nudChartLevelOddMin"; + this.nudChartLevelOddMin.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudChartLevelOddMin.Size = new System.Drawing.Size(41, 20); + this.nudChartLevelOddMin.TabIndex = 10; + this.nudChartLevelOddMin.ValueChanged += new System.EventHandler(this.nudChartLevelOddMin_ValueChanged); + // + // nudChartLevelEvenMax + // + this.nudChartLevelEvenMax.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudChartLevelEvenMax.Location = new System.Drawing.Point(102, 137); + this.nudChartLevelEvenMax.Maximum = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.nudChartLevelEvenMax.Minimum = new decimal(new int[] { + 360, + 0, + 0, + -2147483648}); + this.nudChartLevelEvenMax.Name = "nudChartLevelEvenMax"; + this.nudChartLevelEvenMax.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudChartLevelEvenMax.Size = new System.Drawing.Size(41, 20); + this.nudChartLevelEvenMax.TabIndex = 9; + this.nudChartLevelEvenMax.ValueChanged += new System.EventHandler(this.nudChartLevelEvenMax_ValueChanged); + // + // nudChartLevelEvenMin + // + this.nudChartLevelEvenMin.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudChartLevelEvenMin.Location = new System.Drawing.Point(43, 137); + this.nudChartLevelEvenMin.Maximum = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.nudChartLevelEvenMin.Minimum = new decimal(new int[] { + 360, + 0, + 0, + -2147483648}); + this.nudChartLevelEvenMin.Name = "nudChartLevelEvenMin"; + this.nudChartLevelEvenMin.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudChartLevelEvenMin.Size = new System.Drawing.Size(41, 20); + this.nudChartLevelEvenMin.TabIndex = 8; + this.nudChartLevelEvenMin.ValueChanged += new System.EventHandler(this.nudChartLevelEvenMin_ValueChanged); + // + // numericUpDownMaxBreedingSug + // + this.numericUpDownMaxBreedingSug.ForeColor = System.Drawing.SystemColors.GrayText; + this.numericUpDownMaxBreedingSug.Location = new System.Drawing.Point(252, 19); + this.numericUpDownMaxBreedingSug.Maximum = new decimal(new int[] { + 200, + 0, + 0, + 0}); + this.numericUpDownMaxBreedingSug.Name = "numericUpDownMaxBreedingSug"; + this.numericUpDownMaxBreedingSug.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.numericUpDownMaxBreedingSug.Size = new System.Drawing.Size(57, 20); + this.numericUpDownMaxBreedingSug.TabIndex = 1; + // + // NudWaitBeforeAutoLoad + // + this.NudWaitBeforeAutoLoad.ForeColor = System.Drawing.SystemColors.GrayText; + this.NudWaitBeforeAutoLoad.Location = new System.Drawing.Point(255, 41); + this.NudWaitBeforeAutoLoad.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.NudWaitBeforeAutoLoad.Name = "NudWaitBeforeAutoLoad"; + this.NudWaitBeforeAutoLoad.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudWaitBeforeAutoLoad.Size = new System.Drawing.Size(56, 20); + this.NudWaitBeforeAutoLoad.TabIndex = 12; + // + // NudKeepBackupFilesCount + // + this.NudKeepBackupFilesCount.ForeColor = System.Drawing.SystemColors.GrayText; + this.NudKeepBackupFilesCount.Location = new System.Drawing.Point(44, 118); + this.NudKeepBackupFilesCount.Name = "NudKeepBackupFilesCount"; + this.NudKeepBackupFilesCount.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudKeepBackupFilesCount.Size = new System.Drawing.Size(59, 20); + this.NudKeepBackupFilesCount.TabIndex = 4; + // + // NudBackupEveryMinutes + // + this.NudBackupEveryMinutes.ForeColor = System.Drawing.SystemColors.GrayText; + this.NudBackupEveryMinutes.Location = new System.Drawing.Point(132, 144); + this.NudBackupEveryMinutes.Name = "NudBackupEveryMinutes"; + this.NudBackupEveryMinutes.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudBackupEveryMinutes.Size = new System.Drawing.Size(47, 20); + this.NudBackupEveryMinutes.TabIndex = 7; + // + // nudInfoGraphicHeight + // + this.nudInfoGraphicHeight.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudInfoGraphicHeight.Location = new System.Drawing.Point(126, 18); + this.nudInfoGraphicHeight.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.nudInfoGraphicHeight.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.nudInfoGraphicHeight.Name = "nudInfoGraphicHeight"; + this.nudInfoGraphicHeight.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudInfoGraphicHeight.Size = new System.Drawing.Size(57, 20); + this.nudInfoGraphicHeight.TabIndex = 2; + this.nudInfoGraphicHeight.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.nudInfoGraphicHeight.ValueChanged += new System.EventHandler(this.nudInfoGraphicHeight_ValueChanged); + // + // convenientNameDataGridViewTextBoxColumn + // + this.convenientNameDataGridViewTextBoxColumn.DataPropertyName = "ConvenientName"; + this.convenientNameDataGridViewTextBoxColumn.HeaderText = "Name"; + this.convenientNameDataGridViewTextBoxColumn.Name = "convenientNameDataGridViewTextBoxColumn"; + this.convenientNameDataGridViewTextBoxColumn.ReadOnly = true; + // + // serverNameDataGridViewTextBoxColumn + // + this.serverNameDataGridViewTextBoxColumn.DataPropertyName = "ServerName"; + this.serverNameDataGridViewTextBoxColumn.HeaderText = "Server name"; + this.serverNameDataGridViewTextBoxColumn.Name = "serverNameDataGridViewTextBoxColumn"; + this.serverNameDataGridViewTextBoxColumn.ReadOnly = true; + // + // fileLocationDataGridViewTextBoxColumn + // + this.fileLocationDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.fileLocationDataGridViewTextBoxColumn.DataPropertyName = "FileLocation"; + this.fileLocationDataGridViewTextBoxColumn.HeaderText = "File location"; + this.fileLocationDataGridViewTextBoxColumn.Name = "fileLocationDataGridViewTextBoxColumn"; + this.fileLocationDataGridViewTextBoxColumn.ReadOnly = true; + // + // aTImportFileLocationBindingSource + // + this.aTImportFileLocationBindingSource.AllowNew = false; + this.aTImportFileLocationBindingSource.DataSource = typeof(ARKBreedingStats.settings.ATImportFileLocation); + // + // fileSelectorExtractedSaveFolder + // + this.fileSelectorExtractedSaveFolder.Dock = System.Windows.Forms.DockStyle.Fill; + this.fileSelectorExtractedSaveFolder.Link = "filename"; + this.fileSelectorExtractedSaveFolder.Location = new System.Drawing.Point(3, 16); + this.fileSelectorExtractedSaveFolder.Name = "fileSelectorExtractedSaveFolder"; + this.fileSelectorExtractedSaveFolder.Size = new System.Drawing.Size(724, 28); + this.fileSelectorExtractedSaveFolder.TabIndex = 0; + // + // nudImportLowerBoundTE + // + this.nudImportLowerBoundTE.DecimalPlaces = 2; + this.nudImportLowerBoundTE.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudImportLowerBoundTE.Location = new System.Drawing.Point(227, 19); + this.nudImportLowerBoundTE.Name = "nudImportLowerBoundTE"; + this.nudImportLowerBoundTE.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudImportLowerBoundTE.Size = new System.Drawing.Size(64, 20); + this.nudImportLowerBoundTE.TabIndex = 1; + // // convenientNameDataGridViewTextBoxColumn1 // this.convenientNameDataGridViewTextBoxColumn1.DataPropertyName = "ConvenientName"; @@ -3628,147 +4177,11 @@ private void InitializeComponent() this.folderPathDataGridViewTextBoxColumn.Name = "folderPathDataGridViewTextBoxColumn"; this.folderPathDataGridViewTextBoxColumn.ReadOnly = true; // - // dgvExportFolderChange - // - this.dgvExportFolderChange.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - this.dgvExportFolderChange.HeaderText = "Change"; - this.dgvExportFolderChange.MinimumWidth = 50; - this.dgvExportFolderChange.Name = "dgvExportFolderChange"; - this.dgvExportFolderChange.ReadOnly = true; - this.dgvExportFolderChange.Text = "Change"; - this.dgvExportFolderChange.UseColumnTextForButtonValue = true; - this.dgvExportFolderChange.Width = 50; - // - // dgvExportFolderDelete - // - this.dgvExportFolderDelete.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - this.dgvExportFolderDelete.HeaderText = "Delete"; - this.dgvExportFolderDelete.MinimumWidth = 50; - this.dgvExportFolderDelete.Name = "dgvExportFolderDelete"; - this.dgvExportFolderDelete.ReadOnly = true; - this.dgvExportFolderDelete.Text = "Delete"; - this.dgvExportFolderDelete.UseColumnTextForButtonValue = true; - this.dgvExportFolderDelete.Width = 50; - // - // dgvExportMakeDefault - // - this.dgvExportMakeDefault.HeaderText = "Default"; - this.dgvExportMakeDefault.Name = "dgvExportMakeDefault"; - this.dgvExportMakeDefault.ReadOnly = true; - this.dgvExportMakeDefault.Text = "Make default"; - this.dgvExportMakeDefault.UseColumnTextForButtonValue = true; - // // aTExportFolderLocationsBindingSource // this.aTExportFolderLocationsBindingSource.AllowNew = false; this.aTExportFolderLocationsBindingSource.DataSource = typeof(ARKBreedingStats.settings.ATImportExportedFolderLocation); // - // btAddExportFolder - // - this.btAddExportFolder.Dock = System.Windows.Forms.DockStyle.Top; - this.btAddExportFolder.Location = new System.Drawing.Point(3, 16); - this.btAddExportFolder.Name = "btAddExportFolder"; - this.btAddExportFolder.Size = new System.Drawing.Size(730, 23); - this.btAddExportFolder.TabIndex = 0; - this.btAddExportFolder.Text = "Add Export Folder…"; - this.btAddExportFolder.UseVisualStyleBackColor = true; - this.btAddExportFolder.Click += new System.EventHandler(this.btAddExportFolder_Click); - // - // label25 - // - this.label25.AutoSize = true; - this.label25.Location = new System.Drawing.Point(3, 3); - this.label25.Name = "label25"; - this.label25.Size = new System.Drawing.Size(669, 91); - this.label25.TabIndex = 0; - this.label25.Text = resources.GetString("label25.Text"); - // - // tabPageTimers - // - this.tabPageTimers.Controls.Add(this.groupBox24); - this.tabPageTimers.Controls.Add(this.groupBox8); - this.tabPageTimers.Location = new System.Drawing.Point(4, 22); - this.tabPageTimers.Name = "tabPageTimers"; - this.tabPageTimers.Padding = new System.Windows.Forms.Padding(3); - this.tabPageTimers.Size = new System.Drawing.Size(750, 744); - this.tabPageTimers.TabIndex = 6; - this.tabPageTimers.Text = "Timers"; - this.tabPageTimers.UseVisualStyleBackColor = true; - // - // groupBox24 - // - this.groupBox24.Controls.Add(this.cbKeepExpiredTimersInOverlay); - this.groupBox24.Controls.Add(this.cbDeleteExpiredTimersOnSaving); - this.groupBox24.Controls.Add(this.cbTimersInOverlayAutomatically); - this.groupBox24.Location = new System.Drawing.Point(8, 233); - this.groupBox24.Name = "groupBox24"; - this.groupBox24.Size = new System.Drawing.Size(413, 90); - this.groupBox24.TabIndex = 1; - this.groupBox24.TabStop = false; - this.groupBox24.Text = "Timers"; - // - // cbKeepExpiredTimersInOverlay - // - this.cbKeepExpiredTimersInOverlay.AutoSize = true; - this.cbKeepExpiredTimersInOverlay.Location = new System.Drawing.Point(6, 42); - this.cbKeepExpiredTimersInOverlay.Name = "cbKeepExpiredTimersInOverlay"; - this.cbKeepExpiredTimersInOverlay.Size = new System.Drawing.Size(166, 17); - this.cbKeepExpiredTimersInOverlay.TabIndex = 1; - this.cbKeepExpiredTimersInOverlay.Text = "Keep expired timers in overlay"; - this.cbKeepExpiredTimersInOverlay.UseVisualStyleBackColor = true; - // - // cbDeleteExpiredTimersOnSaving - // - this.cbDeleteExpiredTimersOnSaving.AutoSize = true; - this.cbDeleteExpiredTimersOnSaving.Location = new System.Drawing.Point(6, 65); - this.cbDeleteExpiredTimersOnSaving.Name = "cbDeleteExpiredTimersOnSaving"; - this.cbDeleteExpiredTimersOnSaving.Size = new System.Drawing.Size(217, 17); - this.cbDeleteExpiredTimersOnSaving.TabIndex = 2; - this.cbDeleteExpiredTimersOnSaving.Text = "Delete expired timers when saving library"; - this.cbDeleteExpiredTimersOnSaving.UseVisualStyleBackColor = true; - // - // cbTimersInOverlayAutomatically - // - this.cbTimersInOverlayAutomatically.AutoSize = true; - this.cbTimersInOverlayAutomatically.Location = new System.Drawing.Point(6, 19); - this.cbTimersInOverlayAutomatically.Name = "cbTimersInOverlayAutomatically"; - this.cbTimersInOverlayAutomatically.Size = new System.Drawing.Size(202, 17); - this.cbTimersInOverlayAutomatically.TabIndex = 0; - this.cbTimersInOverlayAutomatically.Text = "Display timers in overlay automatically"; - this.cbTimersInOverlayAutomatically.UseVisualStyleBackColor = true; - // - // groupBox8 - // - this.groupBox8.Controls.Add(this.label22); - this.groupBox8.Controls.Add(this.tbPlayAlarmsSeconds); - this.groupBox8.Controls.Add(this.customSCCustom); - this.groupBox8.Controls.Add(this.customSCWakeup); - this.groupBox8.Controls.Add(this.customSCBirth); - this.groupBox8.Controls.Add(this.customSCStarving); - this.groupBox8.Controls.Add(this.label20); - this.groupBox8.Location = new System.Drawing.Point(8, 6); - this.groupBox8.Name = "groupBox8"; - this.groupBox8.Size = new System.Drawing.Size(413, 221); - this.groupBox8.TabIndex = 0; - this.groupBox8.TabStop = false; - this.groupBox8.Text = "Timer Sounds"; - // - // label22 - // - this.label22.Location = new System.Drawing.Point(6, 171); - this.label22.Name = "label22"; - this.label22.Size = new System.Drawing.Size(255, 66); - this.label22.TabIndex = 5; - this.label22.Text = "List of seconds the alarms play before they reach 0.\r\nE.g. \"60,0\" to play the ala" + - "rm at 60 s and at 0 s. Use commas to separate the values."; - // - // tbPlayAlarmsSeconds - // - this.tbPlayAlarmsSeconds.Location = new System.Drawing.Point(267, 168); - this.tbPlayAlarmsSeconds.Name = "tbPlayAlarmsSeconds"; - this.tbPlayAlarmsSeconds.Size = new System.Drawing.Size(140, 20); - this.tbPlayAlarmsSeconds.TabIndex = 6; - // // customSCCustom // this.customSCCustom.Location = new System.Drawing.Point(6, 139); @@ -3801,56 +4214,6 @@ private void InitializeComponent() this.customSCStarving.SoundFile = null; this.customSCStarving.TabIndex = 1; // - // label20 - // - this.label20.Location = new System.Drawing.Point(6, 16); - this.label20.Name = "label20"; - this.label20.Size = new System.Drawing.Size(316, 33); - this.label20.TabIndex = 0; - this.label20.Text = "Only PCM-WAV-files are supported. The sound will play 1 min before the timer runs" + - " out."; - // - // tabPageOverlay - // - this.tabPageOverlay.Controls.Add(this.groupBox10); - this.tabPageOverlay.Location = new System.Drawing.Point(4, 22); - this.tabPageOverlay.Name = "tabPageOverlay"; - this.tabPageOverlay.Padding = new System.Windows.Forms.Padding(3); - this.tabPageOverlay.Size = new System.Drawing.Size(750, 744); - this.tabPageOverlay.TabIndex = 5; - this.tabPageOverlay.Text = "Overlay"; - this.tabPageOverlay.UseVisualStyleBackColor = true; - // - // groupBox10 - // - this.groupBox10.Controls.Add(this.NudOverlayRelativeFontSize); - this.groupBox10.Controls.Add(this.label65); - this.groupBox10.Controls.Add(this.CbOverlayDisplayInheritance); - this.groupBox10.Controls.Add(this.label45); - this.groupBox10.Controls.Add(this.pCustomOverlayLocation); - this.groupBox10.Controls.Add(this.cbCustomOverlayLocation); - this.groupBox10.Controls.Add(this.label38); - this.groupBox10.Controls.Add(this.nudOverlayInfoPosY); - this.groupBox10.Controls.Add(this.label39); - this.groupBox10.Controls.Add(this.nudOverlayInfoPosDFR); - this.groupBox10.Controls.Add(this.label40); - this.groupBox10.Controls.Add(this.label37); - this.groupBox10.Controls.Add(this.nudOverlayTimerPosY); - this.groupBox10.Controls.Add(this.label36); - this.groupBox10.Controls.Add(this.nudOverlayTimerPosX); - this.groupBox10.Controls.Add(this.label35); - this.groupBox10.Controls.Add(this.cbInventoryCheck); - this.groupBox10.Controls.Add(this.label21); - this.groupBox10.Controls.Add(this.nudOverlayInfoDuration); - this.groupBox10.Controls.Add(this.chkbSpeechRecognition); - this.groupBox10.Controls.Add(this.label66); - this.groupBox10.Location = new System.Drawing.Point(8, 6); - this.groupBox10.Name = "groupBox10"; - this.groupBox10.Size = new System.Drawing.Size(734, 307); - this.groupBox10.TabIndex = 0; - this.groupBox10.TabStop = false; - this.groupBox10.Text = "Overlay"; - // // NudOverlayRelativeFontSize // this.NudOverlayRelativeFontSize.DecimalPlaces = 2; @@ -3874,57 +4237,16 @@ private void InitializeComponent() this.NudOverlayRelativeFontSize.Name = "NudOverlayRelativeFontSize"; this.NudOverlayRelativeFontSize.NeutralNumber = new decimal(new int[] { 0, - 0, - 0, - 0}); - this.NudOverlayRelativeFontSize.Size = new System.Drawing.Size(57, 20); - this.NudOverlayRelativeFontSize.TabIndex = 4; - this.NudOverlayRelativeFontSize.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // label65 - // - this.label65.AutoSize = true; - this.label65.Location = new System.Drawing.Point(6, 252); - this.label65.Name = "label65"; - this.label65.Size = new System.Drawing.Size(141, 13); - this.label65.TabIndex = 18; - this.label65.Text = "Relative font size (default: 1)"; - // - // CbOverlayDisplayInheritance - // - this.CbOverlayDisplayInheritance.AutoSize = true; - this.CbOverlayDisplayInheritance.Location = new System.Drawing.Point(6, 284); - this.CbOverlayDisplayInheritance.Name = "CbOverlayDisplayInheritance"; - this.CbOverlayDisplayInheritance.Size = new System.Drawing.Size(203, 17); - this.CbOverlayDisplayInheritance.TabIndex = 17; - this.CbOverlayDisplayInheritance.Text = "Display creature inheritance on import"; - this.CbOverlayDisplayInheritance.UseVisualStyleBackColor = true; - // - // label45 - // - this.label45.AutoSize = true; - this.label45.Location = new System.Drawing.Point(38, 25); - this.label45.Name = "label45"; - this.label45.Size = new System.Drawing.Size(495, 13); - this.label45.TabIndex = 0; - this.label45.Text = "For the overlay to work, you need to set the window-mode \"Fullscreen-Windowed\" in" + - " the game settings."; - // - // pCustomOverlayLocation - // - this.pCustomOverlayLocation.Controls.Add(this.nudCustomOverlayLocX); - this.pCustomOverlayLocation.Controls.Add(this.label42); - this.pCustomOverlayLocation.Controls.Add(this.label43); - this.pCustomOverlayLocation.Controls.Add(this.nudCustomOverlayLocY); - this.pCustomOverlayLocation.Enabled = false; - this.pCustomOverlayLocation.Location = new System.Drawing.Point(195, 217); - this.pCustomOverlayLocation.Name = "pCustomOverlayLocation"; - this.pCustomOverlayLocation.Size = new System.Drawing.Size(201, 28); - this.pCustomOverlayLocation.TabIndex = 16; + 0, + 0, + 0}); + this.NudOverlayRelativeFontSize.Size = new System.Drawing.Size(57, 20); + this.NudOverlayRelativeFontSize.TabIndex = 4; + this.NudOverlayRelativeFontSize.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // // nudCustomOverlayLocX // @@ -3949,24 +4271,6 @@ private void InitializeComponent() this.nudCustomOverlayLocX.Size = new System.Drawing.Size(57, 20); this.nudCustomOverlayLocX.TabIndex = 1; // - // label42 - // - this.label42.AutoSize = true; - this.label42.Location = new System.Drawing.Point(105, 5); - this.label42.Name = "label42"; - this.label42.Size = new System.Drawing.Size(14, 13); - this.label42.TabIndex = 2; - this.label42.Text = "Y"; - // - // label43 - // - this.label43.AutoSize = true; - this.label43.Location = new System.Drawing.Point(4, 5); - this.label43.Name = "label43"; - this.label43.Size = new System.Drawing.Size(14, 13); - this.label43.TabIndex = 0; - this.label43.Text = "X"; - // // nudCustomOverlayLocY // this.nudCustomOverlayLocY.ForeColor = System.Drawing.SystemColors.GrayText; @@ -3991,26 +4295,6 @@ private void InitializeComponent() this.nudCustomOverlayLocY.TabIndex = 3; this.nudCustomOverlayLocY.ThousandsSeparator = true; // - // cbCustomOverlayLocation - // - this.cbCustomOverlayLocation.AutoSize = true; - this.cbCustomOverlayLocation.Location = new System.Drawing.Point(6, 221); - this.cbCustomOverlayLocation.Name = "cbCustomOverlayLocation"; - this.cbCustomOverlayLocation.Size = new System.Drawing.Size(138, 17); - this.cbCustomOverlayLocation.TabIndex = 15; - this.cbCustomOverlayLocation.Text = "Custom overlay location"; - this.cbCustomOverlayLocation.UseVisualStyleBackColor = true; - this.cbCustomOverlayLocation.CheckedChanged += new System.EventHandler(this.cbCustomOverlayLocation_CheckedChanged); - // - // label38 - // - this.label38.AutoSize = true; - this.label38.Location = new System.Drawing.Point(120, 187); - this.label38.Name = "label38"; - this.label38.Size = new System.Drawing.Size(93, 13); - this.label38.TabIndex = 11; - this.label38.Text = "distance from right"; - // // nudOverlayInfoPosY // this.nudOverlayInfoPosY.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4029,15 +4313,6 @@ private void InitializeComponent() this.nudOverlayInfoPosY.Size = new System.Drawing.Size(57, 20); this.nudOverlayInfoPosY.TabIndex = 14; // - // label39 - // - this.label39.AutoSize = true; - this.label39.Location = new System.Drawing.Point(300, 187); - this.label39.Name = "label39"; - this.label39.Size = new System.Drawing.Size(14, 13); - this.label39.TabIndex = 13; - this.label39.Text = "Y"; - // // nudOverlayInfoPosDFR // this.nudOverlayInfoPosDFR.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4056,24 +4331,6 @@ private void InitializeComponent() this.nudOverlayInfoPosDFR.Size = new System.Drawing.Size(57, 20); this.nudOverlayInfoPosDFR.TabIndex = 12; // - // label40 - // - this.label40.AutoSize = true; - this.label40.Location = new System.Drawing.Point(6, 187); - this.label40.Name = "label40"; - this.label40.Size = new System.Drawing.Size(94, 13); - this.label40.TabIndex = 10; - this.label40.Text = "Position of the info"; - // - // label37 - // - this.label37.AutoSize = true; - this.label37.Location = new System.Drawing.Point(300, 161); - this.label37.Name = "label37"; - this.label37.Size = new System.Drawing.Size(14, 13); - this.label37.TabIndex = 8; - this.label37.Text = "Y"; - // // nudOverlayTimerPosY // this.nudOverlayTimerPosY.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4088,205 +4345,50 @@ private void InitializeComponent() 0, 0, 0, - 0}); - this.nudOverlayTimerPosY.Size = new System.Drawing.Size(57, 20); - this.nudOverlayTimerPosY.TabIndex = 9; - // - // label36 - // - this.label36.AutoSize = true; - this.label36.Location = new System.Drawing.Point(199, 161); - this.label36.Name = "label36"; - this.label36.Size = new System.Drawing.Size(14, 13); - this.label36.TabIndex = 6; - this.label36.Text = "X"; - // - // nudOverlayTimerPosX - // - this.nudOverlayTimerPosX.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudOverlayTimerPosX.Location = new System.Drawing.Point(219, 159); - this.nudOverlayTimerPosX.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudOverlayTimerPosX.Name = "nudOverlayTimerPosX"; - this.nudOverlayTimerPosX.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudOverlayTimerPosX.Size = new System.Drawing.Size(57, 20); - this.nudOverlayTimerPosX.TabIndex = 7; - // - // label35 - // - this.label35.AutoSize = true; - this.label35.Location = new System.Drawing.Point(6, 161); - this.label35.Name = "label35"; - this.label35.Size = new System.Drawing.Size(104, 13); - this.label35.TabIndex = 5; - this.label35.Text = "Position of the timers"; - // - // cbInventoryCheck - // - this.cbInventoryCheck.Location = new System.Drawing.Point(6, 116); - this.cbInventoryCheck.Name = "cbInventoryCheck"; - this.cbInventoryCheck.Size = new System.Drawing.Size(305, 35); - this.cbInventoryCheck.TabIndex = 4; - this.cbInventoryCheck.Text = "Automatically extract inventory levels (needs working OCR and enabled overlay)"; - this.cbInventoryCheck.UseVisualStyleBackColor = true; - // - // label21 - // - this.label21.AutoSize = true; - this.label21.Location = new System.Drawing.Point(6, 84); - this.label21.Name = "label21"; - this.label21.Size = new System.Drawing.Size(138, 13); - this.label21.TabIndex = 2; - this.label21.Text = "Display info in overlay for [s]"; - // - // nudOverlayInfoDuration - // - this.nudOverlayInfoDuration.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudOverlayInfoDuration.Location = new System.Drawing.Point(150, 82); - this.nudOverlayInfoDuration.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.nudOverlayInfoDuration.Name = "nudOverlayInfoDuration"; - this.nudOverlayInfoDuration.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudOverlayInfoDuration.Size = new System.Drawing.Size(57, 20); - this.nudOverlayInfoDuration.TabIndex = 3; - this.nudOverlayInfoDuration.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // chkbSpeechRecognition - // - this.chkbSpeechRecognition.AutoSize = true; - this.chkbSpeechRecognition.Location = new System.Drawing.Point(6, 59); - this.chkbSpeechRecognition.Name = "chkbSpeechRecognition"; - this.chkbSpeechRecognition.Size = new System.Drawing.Size(338, 17); - this.chkbSpeechRecognition.TabIndex = 1; - this.chkbSpeechRecognition.Text = "Speech Recognition (displays taming info, e.g. say \"Rex level 30\")"; - this.chkbSpeechRecognition.UseVisualStyleBackColor = true; - // - // label66 - // - this.label66.AutoSize = true; - this.label66.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label66.Location = new System.Drawing.Point(6, 16); - this.label66.Name = "label66"; - this.label66.Size = new System.Drawing.Size(37, 26); - this.label66.TabIndex = 19; - this.label66.Text = "💡"; - // - // tabPageOCR - // - this.tabPageOCR.AutoScroll = true; - this.tabPageOCR.Controls.Add(this.groupBox1); - this.tabPageOCR.Location = new System.Drawing.Point(4, 22); - this.tabPageOCR.Name = "tabPageOCR"; - this.tabPageOCR.Padding = new System.Windows.Forms.Padding(3); - this.tabPageOCR.Size = new System.Drawing.Size(750, 744); - this.tabPageOCR.TabIndex = 4; - this.tabPageOCR.Text = "OCR"; - this.tabPageOCR.UseVisualStyleBackColor = true; - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.BtGameNameAsa); - this.groupBox1.Controls.Add(this.label62); - this.groupBox1.Controls.Add(this.label61); - this.groupBox1.Controls.Add(this.label60); - this.groupBox1.Controls.Add(this.label59); - this.groupBox1.Controls.Add(this.label58); - this.groupBox1.Controls.Add(this.NudOCRClipboardCropHeight); - this.groupBox1.Controls.Add(this.NudOCRClipboardCropWidth); - this.groupBox1.Controls.Add(this.NudOCRClipboardCropTop); - this.groupBox1.Controls.Add(this.NudOCRClipboardCropLeft); - this.groupBox1.Controls.Add(this.CbOCRFromClipboard); - this.groupBox1.Controls.Add(this.BtGameNameAse); - this.groupBox1.Controls.Add(this.cbOCRIgnoreImprintValue); - this.groupBox1.Controls.Add(this.cbShowOCRButton); - this.groupBox1.Controls.Add(this.label23); - this.groupBox1.Controls.Add(this.nudWaitBeforeScreenCapture); - this.groupBox1.Controls.Add(this.label19); - this.groupBox1.Controls.Add(this.nudWhiteThreshold); - this.groupBox1.Controls.Add(this.tbOCRCaptureApp); - this.groupBox1.Controls.Add(this.label4); - this.groupBox1.Controls.Add(this.cbbOCRApp); - this.groupBox1.Controls.Add(this.label1); - this.groupBox1.Location = new System.Drawing.Point(6, 6); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(734, 377); - this.groupBox1.TabIndex = 0; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "OCR"; - // - // BtGameNameAsa - // - this.BtGameNameAsa.Location = new System.Drawing.Point(6, 318); - this.BtGameNameAsa.Name = "BtGameNameAsa"; - this.BtGameNameAsa.Size = new System.Drawing.Size(171, 23); - this.BtGameNameAsa.TabIndex = 21; - this.BtGameNameAsa.Text = "ArkAscended (ASA default)"; - this.BtGameNameAsa.UseVisualStyleBackColor = true; - this.BtGameNameAsa.Click += new System.EventHandler(this.BtGameNameAsa_Click); - // - // label62 - // - this.label62.AutoSize = true; - this.label62.Location = new System.Drawing.Point(34, 211); - this.label62.Name = "label62"; - this.label62.Size = new System.Drawing.Size(616, 13); - this.label62.TabIndex = 20; - this.label62.Text = "Set an area of the clipboard screenshot to be used for the actual OCR. Set all fi" + - "elds to 0 to disable and use the whole screenshot."; - // - // label61 - // - this.label61.AutoSize = true; - this.label61.Location = new System.Drawing.Point(151, 229); - this.label61.Name = "label61"; - this.label61.Size = new System.Drawing.Size(26, 13); - this.label61.TabIndex = 19; - this.label61.Text = "Top"; - // - // label60 - // - this.label60.AutoSize = true; - this.label60.Location = new System.Drawing.Point(258, 229); - this.label60.Name = "label60"; - this.label60.Size = new System.Drawing.Size(35, 13); - this.label60.TabIndex = 18; - this.label60.Text = "Width"; + 0}); + this.nudOverlayTimerPosY.Size = new System.Drawing.Size(57, 20); + this.nudOverlayTimerPosY.TabIndex = 9; // - // label59 + // nudOverlayTimerPosX // - this.label59.AutoSize = true; - this.label59.Location = new System.Drawing.Point(374, 229); - this.label59.Name = "label59"; - this.label59.Size = new System.Drawing.Size(38, 13); - this.label59.TabIndex = 17; - this.label59.Text = "Height"; + this.nudOverlayTimerPosX.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudOverlayTimerPosX.Location = new System.Drawing.Point(219, 159); + this.nudOverlayTimerPosX.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudOverlayTimerPosX.Name = "nudOverlayTimerPosX"; + this.nudOverlayTimerPosX.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudOverlayTimerPosX.Size = new System.Drawing.Size(57, 20); + this.nudOverlayTimerPosX.TabIndex = 7; // - // label58 + // nudOverlayInfoDuration // - this.label58.AutoSize = true; - this.label58.Location = new System.Drawing.Point(45, 229); - this.label58.Name = "label58"; - this.label58.Size = new System.Drawing.Size(25, 13); - this.label58.TabIndex = 16; - this.label58.Text = "Left"; + this.nudOverlayInfoDuration.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudOverlayInfoDuration.Location = new System.Drawing.Point(150, 82); + this.nudOverlayInfoDuration.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.nudOverlayInfoDuration.Name = "nudOverlayInfoDuration"; + this.nudOverlayInfoDuration.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudOverlayInfoDuration.Size = new System.Drawing.Size(57, 20); + this.nudOverlayInfoDuration.TabIndex = 3; + this.nudOverlayInfoDuration.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // // NudOCRClipboardCropHeight // @@ -4380,55 +4482,6 @@ private void InitializeComponent() this.NudOCRClipboardCropLeft.Size = new System.Drawing.Size(69, 20); this.NudOCRClipboardCropLeft.TabIndex = 12; // - // CbOCRFromClipboard - // - this.CbOCRFromClipboard.AutoSize = true; - this.CbOCRFromClipboard.Location = new System.Drawing.Point(6, 191); - this.CbOCRFromClipboard.Name = "CbOCRFromClipboard"; - this.CbOCRFromClipboard.Size = new System.Drawing.Size(506, 17); - this.CbOCRFromClipboard.TabIndex = 11; - this.CbOCRFromClipboard.Text = "Use image in clipboard for the OCR. You can press the Print-key to copy a screens" + - "hot to the cliphoard"; - this.CbOCRFromClipboard.UseVisualStyleBackColor = true; - // - // BtGameNameAse - // - this.BtGameNameAse.Location = new System.Drawing.Point(183, 318); - this.BtGameNameAse.Name = "BtGameNameAse"; - this.BtGameNameAse.Size = new System.Drawing.Size(170, 23); - this.BtGameNameAse.TabIndex = 8; - this.BtGameNameAse.Text = "ShooterGame (ASE default)"; - this.BtGameNameAse.UseVisualStyleBackColor = true; - this.BtGameNameAse.Click += new System.EventHandler(this.BtGameNameAse_Click); - // - // cbOCRIgnoreImprintValue - // - this.cbOCRIgnoreImprintValue.AutoSize = true; - this.cbOCRIgnoreImprintValue.Location = new System.Drawing.Point(6, 168); - this.cbOCRIgnoreImprintValue.Name = "cbOCRIgnoreImprintValue"; - this.cbOCRIgnoreImprintValue.Size = new System.Drawing.Size(287, 17); - this.cbOCRIgnoreImprintValue.TabIndex = 6; - this.cbOCRIgnoreImprintValue.Text = "Don\'t read imprinting value (can be overlapped by chat)"; - this.cbOCRIgnoreImprintValue.UseVisualStyleBackColor = true; - // - // cbShowOCRButton - // - this.cbShowOCRButton.AutoSize = true; - this.cbShowOCRButton.Location = new System.Drawing.Point(6, 96); - this.cbShowOCRButton.Name = "cbShowOCRButton"; - this.cbShowOCRButton.Size = new System.Drawing.Size(228, 17); - this.cbShowOCRButton.TabIndex = 1; - this.cbShowOCRButton.Text = "Show OCR-Button instead of Import-Button"; - this.cbShowOCRButton.UseVisualStyleBackColor = true; - // - // label23 - // - this.label23.Location = new System.Drawing.Point(6, 145); - this.label23.Name = "label23"; - this.label23.Size = new System.Drawing.Size(296, 20); - this.label23.TabIndex = 4; - this.label23.Text = "Wait before screencapture (time to tab into game) in ms"; - // // nudWaitBeforeScreenCapture // this.nudWaitBeforeScreenCapture.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4447,14 +4500,6 @@ private void InitializeComponent() this.nudWaitBeforeScreenCapture.Size = new System.Drawing.Size(72, 20); this.nudWaitBeforeScreenCapture.TabIndex = 5; // - // label19 - // - this.label19.Location = new System.Drawing.Point(6, 119); - this.label19.Name = "label19"; - this.label19.Size = new System.Drawing.Size(296, 20); - this.label19.TabIndex = 2; - this.label19.Text = "White Threshold (increase if you increased gamma ingame)"; - // // nudWhiteThreshold // this.nudWhiteThreshold.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4473,59 +4518,6 @@ private void InitializeComponent() this.nudWhiteThreshold.Size = new System.Drawing.Size(72, 20); this.nudWhiteThreshold.TabIndex = 3; // - // tbOCRCaptureApp - // - this.tbOCRCaptureApp.Location = new System.Drawing.Point(6, 292); - this.tbOCRCaptureApp.Name = "tbOCRCaptureApp"; - this.tbOCRCaptureApp.Size = new System.Drawing.Size(722, 20); - this.tbOCRCaptureApp.TabIndex = 9; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(6, 276); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(111, 13); - this.label4.TabIndex = 7; - this.label4.Text = "Process name of ARK"; - // - // cbbOCRApp - // - this.cbbOCRApp.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cbbOCRApp.FormattingEnabled = true; - this.cbbOCRApp.Location = new System.Drawing.Point(6, 347); - this.cbbOCRApp.Name = "cbbOCRApp"; - this.cbbOCRApp.Size = new System.Drawing.Size(722, 21); - this.cbbOCRApp.TabIndex = 10; - this.cbbOCRApp.SelectedIndexChanged += new System.EventHandler(this.cbOCRApp_SelectedIndexChanged); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(6, 16); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(722, 77); - this.label1.TabIndex = 0; - this.label1.Text = resources.GetString("label1.Text"); - // - // panel1 - // - this.panel1.Controls.Add(this.buttonCancel); - this.panel1.Controls.Add(this.buttonOK); - this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel1.Location = new System.Drawing.Point(0, 770); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(758, 30); - this.panel1.TabIndex = 12; - // - // CbStreamerMode - // - this.CbStreamerMode.Location = new System.Drawing.Point(6, 19); - this.CbStreamerMode.Name = "CbStreamerMode"; - this.CbStreamerMode.Size = new System.Drawing.Size(407, 24); - this.CbStreamerMode.TabIndex = 1; - this.CbStreamerMode.Text = "Streamer mode (hide confidential info, e.g. ASB server tag)"; - this.CbStreamerMode.UseVisualStyleBackColor = true; - // // Settings // this.AcceptButton = this.buttonOK; @@ -4546,50 +4538,16 @@ private void InitializeComponent() this.groupBoxMultiplier.PerformLayout(); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrainEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmountEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmount)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingSpeed)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeedEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingIntervalEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleIntervalEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeedEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeedEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeed)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingInterval)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleInterval)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeed)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintingStatScale)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeed)).EndInit(); this.groupBox3.ResumeLayout(false); this.groupBox3.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxServerLevel)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxGraphLevel)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxWildLevels)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxDomLevels)).EndInit(); this.groupBox4.ResumeLayout(false); this.groupBox4.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbChartOddRange)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pbChartEvenRange)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMax)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMin)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMax)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMin)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxBreedingSug)).EndInit(); this.groupBox5.ResumeLayout(false); this.groupBox5.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoCharacterFoodDrainMultiplier)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoTorporDrainMultiplier)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrainEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeedEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrain)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeed)).EndInit(); this.groupBox6.ResumeLayout(false); this.groupBox6.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NudWaitBeforeAutoLoad)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudKeepBackupFilesCount)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudBackupEveryMinutes)).EndInit(); this.groupBox7.ResumeLayout(false); this.groupBox7.PerformLayout(); this.tabControlSettings.ResumeLayout(false); @@ -4602,7 +4560,6 @@ private void InitializeComponent() this.groupBox18.ResumeLayout(false); this.groupBox11.ResumeLayout(false); this.groupBox11.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudWildLevelStep)).EndInit(); this.tabPageGeneral.ResumeLayout(false); this.tabPageGeneral.PerformLayout(); this.groupBox31.ResumeLayout(false); @@ -4613,12 +4570,10 @@ private void InitializeComponent() this.groupBox16.ResumeLayout(false); this.GbSpecies.ResumeLayout(false); this.GbSpecies.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NudSpeciesSelectorCountLastUsed)).EndInit(); this.groupBox26.ResumeLayout(false); this.groupBox26.PerformLayout(); this.groupBox25.ResumeLayout(false); this.groupBox25.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudDefaultFontSize)).EndInit(); this.groupBox20.ResumeLayout(false); this.groupBox20.PerformLayout(); this.groupBox17.ResumeLayout(false); @@ -4630,16 +4585,13 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.PbInfoGraphicPreview)).EndInit(); this.groupBox32.ResumeLayout(false); this.groupBox32.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudInfoGraphicHeight)).EndInit(); this.groupBox28.ResumeLayout(false); this.groupBox28.PerformLayout(); this.tabPageImportSavegame.ResumeLayout(false); - this.groupBox12.ResumeLayout(false); - this.groupBox12.PerformLayout(); + this.tabPageImportSavegame.PerformLayout(); this.groupBox15.ResumeLayout(false); this.groupBox15.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView_FileLocations)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.aTImportFileLocationBindingSource)).EndInit(); this.groupBox14.ResumeLayout(false); this.tabPageImportExported.ResumeLayout(false); this.tabPageImportExported.PerformLayout(); @@ -4647,7 +4599,6 @@ private void InitializeComponent() this.groupBox27.PerformLayout(); this.groupBox23.ResumeLayout(false); this.groupBox23.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudImportLowerBoundTE)).EndInit(); this.groupBox22.ResumeLayout(false); this.groupBox22.PerformLayout(); this.panel2.ResumeLayout(false); @@ -4659,7 +4610,6 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.nudWarnImportMoreThan)).EndInit(); this.groupBox13.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dataGridViewExportFolders)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.aTExportFolderLocationsBindingSource)).EndInit(); this.tabPageTimers.ResumeLayout(false); this.groupBox24.ResumeLayout(false); this.groupBox24.PerformLayout(); @@ -4668,9 +4618,54 @@ private void InitializeComponent() this.tabPageOverlay.ResumeLayout(false); this.groupBox10.ResumeLayout(false); this.groupBox10.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NudOverlayRelativeFontSize)).EndInit(); this.pCustomOverlayLocation.ResumeLayout(false); this.pCustomOverlayLocation.PerformLayout(); + this.tabPageOCR.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.nudWildLevelStep)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrainEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmountEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingSpeed)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeedEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingIntervalEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleIntervalEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeedEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeedEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeed)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingInterval)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleInterval)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeed)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintingStatScale)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeed)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxServerLevel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxGraphLevel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxWildLevels)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxDomLevels)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoCharacterFoodDrainMultiplier)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoTorporDrainMultiplier)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrainEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeedEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrain)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeed)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudSpeciesSelectorCountLastUsed)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDefaultFontSize)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxBreedingSug)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudWaitBeforeAutoLoad)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudKeepBackupFilesCount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudBackupEveryMinutes)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudInfoGraphicHeight)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.aTImportFileLocationBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudImportLowerBoundTE)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.aTExportFolderLocationsBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudOverlayRelativeFontSize)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudCustomOverlayLocX)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudCustomOverlayLocY)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayInfoPosY)).EndInit(); @@ -4678,16 +4673,12 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.nudOverlayTimerPosY)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayTimerPosX)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayInfoDuration)).EndInit(); - this.tabPageOCR.ResumeLayout(false); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropHeight)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropWidth)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropTop)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropLeft)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudWaitBeforeScreenCapture)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudWhiteThreshold)).EndInit(); - this.panel1.ResumeLayout(false); this.ResumeLayout(false); } @@ -4768,7 +4759,6 @@ private void InitializeComponent() private System.Windows.Forms.GroupBox groupBox9; private System.Windows.Forms.CheckBox cbCreatureColorsLibrary; private System.Windows.Forms.TabPage tabPageImportSavegame; - private System.Windows.Forms.GroupBox groupBox12; private System.Windows.Forms.Label label24; private System.Windows.Forms.GroupBox groupBox15; private System.Windows.Forms.GroupBox groupBox14; From 86ce54088a88cc2e50cc1683a14abaaa1309d4e6 Mon Sep 17 00:00:00 2001 From: cadon Date: Wed, 31 Jan 2024 09:40:32 +0100 Subject: [PATCH 21/29] sound feedback for new mutation. WIP reworking importing algorithms. --- ARKBreedingStats/ARKBreedingStats.csproj | 2 + ARKBreedingStats/CreatureInfoInput.cs | 2 +- ARKBreedingStats/Extraction.cs | 1 + ARKBreedingStats/Form1.cs | 2 +- ARKBreedingStats/Form1.extractor.cs | 85 +++------ ARKBreedingStats/Form1.importExported.cs | 50 +++--- ARKBreedingStats/Form1.library.cs | 44 ++--- ARKBreedingStats/Form1.tester.cs | 1 + .../Properties/Resources.Designer.cs | 9 + ARKBreedingStats/Properties/Resources.resx | 3 + ARKBreedingStats/Resources/newMutation.wav | Bin 0 -> 66264 bytes ARKBreedingStats/library/LevelStatusFlags.cs | 161 ++++++++++++++++++ .../uiControls/CreatureAnalysis.cs | 61 +++---- .../uiControls/StatIO.Designer.cs | 2 +- ARKBreedingStats/uiControls/StatIO.cs | 51 ++---- ARKBreedingStats/uiControls/StatWeighting.cs | 2 +- ARKBreedingStats/utils/SoundFeedback.cs | 7 +- 17 files changed, 295 insertions(+), 188 deletions(-) create mode 100644 ARKBreedingStats/Resources/newMutation.wav create mode 100644 ARKBreedingStats/library/LevelStatusFlags.cs diff --git a/ARKBreedingStats/ARKBreedingStats.csproj b/ARKBreedingStats/ARKBreedingStats.csproj index 8c704bd3..e6fc1e5c 100644 --- a/ARKBreedingStats/ARKBreedingStats.csproj +++ b/ARKBreedingStats/ARKBreedingStats.csproj @@ -99,6 +99,7 @@ + @@ -681,6 +682,7 @@ PreserveNewest + TextTemplatingFileGenerator _manifest.json diff --git a/ARKBreedingStats/CreatureInfoInput.cs b/ARKBreedingStats/CreatureInfoInput.cs index 56f15bc0..4b226c54 100644 --- a/ARKBreedingStats/CreatureInfoInput.cs +++ b/ARKBreedingStats/CreatureInfoInput.cs @@ -720,7 +720,7 @@ private void SetAdd2LibColor(bool buttonEnabled) { btAdd2Library.BackColor = !buttonEnabled ? SystemColors.Control - : _alreadyExistingCreature != null ? Color.LightGreen + : _alreadyExistingCreature == null ? Color.LightGreen : Color.LightSkyBlue; } diff --git a/ARKBreedingStats/Extraction.cs b/ARKBreedingStats/Extraction.cs index 933ed9e0..745ae8cf 100644 --- a/ARKBreedingStats/Extraction.cs +++ b/ARKBreedingStats/Extraction.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Linq; +using ARKBreedingStats.uiControls; namespace ARKBreedingStats { diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs index e3b306e4..ddb136c1 100644 --- a/ARKBreedingStats/Form1.cs +++ b/ARKBreedingStats/Form1.cs @@ -3103,7 +3103,7 @@ private Creature CreateCreatureFromExtractorOrTester(CreatureInfoInput input) cr.tamingEff = _extractor.UniqueTamingEffectiveness(); cr.isBred = rbBredExtractor.Checked; for (int s = 0; s < Stats.StatsCount; s++) - cr.SetTopStat(s, _statIOs[s].TopLevel.HasFlag(LevelStatus.TopLevel) || _statIOs[s].TopLevel.HasFlag(LevelStatus.NewTopLevel)); + cr.SetTopStat(s, _statIOs[s].TopLevel.HasFlag(LevelStatusFlags.LevelStatus.TopLevel) || _statIOs[s].TopLevel.HasFlag(LevelStatusFlags.LevelStatus.NewTopLevel)); } else diff --git a/ARKBreedingStats/Form1.extractor.cs b/ARKBreedingStats/Form1.extractor.cs index a5b0777f..e489d133 100644 --- a/ARKBreedingStats/Form1.extractor.cs +++ b/ARKBreedingStats/Form1.extractor.cs @@ -9,8 +9,10 @@ using System.Linq; using System.Threading; using System.Windows.Forms; +using ARKBreedingStats.library; using ARKBreedingStats.utils; using ARKBreedingStats.ocr; +using ARKBreedingStats.uiControls; namespace ARKBreedingStats { @@ -65,7 +67,7 @@ private void ShowSumOfChosenLevels() valid = false; break; } - _statIOs[s].TopLevel = LevelStatus.Neutral; + _statIOs[s].TopLevel = LevelStatusFlags.LevelStatus.Neutral; } if (valid) { @@ -116,80 +118,33 @@ private void ShowSumOfChosenLevels() radarChartExtractor.SetLevels(_statIOs.Select(s => s.LevelWild).ToArray(), _statIOs.Select(s => s.LevelMut).ToArray(), speciesSelector1.SelectedSpecies); cbExactlyImprinting.BackColor = Color.Transparent; var species = speciesSelector1.SelectedSpecies; - var checkTopLevels = _highestSpeciesLevels.TryGetValue(species, out int[] topSpeciesLevels); - var checkLowLevels = _lowestSpeciesLevels.TryGetValue(species, out int[] lowSpeciesLevels); + _highestSpeciesLevels.TryGetValue(species, out int[] highSpeciesLevels); + _lowestSpeciesLevels.TryGetValue(species, out int[] lowSpeciesLevels); + _highestSpeciesMutationLevels.TryGetValue(species, out int[] highSpeciesMutationLevels); + //_lowestSpeciesMutationLevels.TryGetValue(species, out int[] lowSpeciesMutationLevels); - var customStatNames = species.statNames; var statWeights = breedingPlan1.StatWeighting.GetWeightingForSpecies(species); - if (statWeights.Item1 == null) checkLowLevels = false; - var analysisState = LevelStatus.Neutral; - var newTopStatsText = new List(); - var topStatsText = new List(); - for (int s = 0; s < Stats.StatsCount; s++) - { - if (s == Stats.Torpidity - || _statIOs[s].LevelWild <= 0) - continue; - - var levelStatus = LevelStatus.Neutral; - - if (checkTopLevels && (statWeights.Item1?[s] ?? 0) >= 0) - { - // higher stats are considered to be good. If no custom weightings are available, consider higher levels to be better. + LevelStatusFlags.DetermineLevelStatus(species, highSpeciesLevels, lowSpeciesLevels, highSpeciesMutationLevels, + statWeights, GetCurrentWildLevels(), GetCurrentMutLevels(),GetCurrentBreedingValues(), + out var topStatsText, out var newTopStatsText); - // check if higher level is only considered if even or odd - if ((statWeights.Item2?[s] ?? 0) == 0 // even/odd doesn't matter - || (statWeights.Item2[s] == 1 && _statIOs[s].LevelWild % 2 == 1) - || (statWeights.Item2[s] == 2 && _statIOs[s].LevelWild % 2 == 0) - ) - { - if (_statIOs[s].LevelWild == topSpeciesLevels[s]) - { - levelStatus = LevelStatus.TopLevel; - topStatsText.Add(Utils.StatName(s, false, customStatNames)); - if (analysisState != LevelStatus.NewTopLevel) - analysisState = LevelStatus.TopLevel; - } - else if (topSpeciesLevels[s] != -1 && _statIOs[s].LevelWild > topSpeciesLevels[s]) - { - levelStatus = LevelStatus.NewTopLevel; - newTopStatsText.Add(Utils.StatName(s, false, customStatNames)); - analysisState = LevelStatus.NewTopLevel; - } - } - } - else if (checkLowLevels && statWeights.Item1[s] < 0) - { - // lower stats are considered to be good - if (_statIOs[s].LevelWild == lowSpeciesLevels[s]) - { - levelStatus = LevelStatus.TopLevel; - topStatsText.Add(Utils.StatName(s, false, customStatNames)); - if (analysisState != LevelStatus.NewTopLevel) - analysisState = LevelStatus.TopLevel; - } - else if (_statIOs[s].LevelWild < lowSpeciesLevels[s]) - { - levelStatus = LevelStatus.NewTopLevel; - newTopStatsText.Add(Utils.StatName(s, false, customStatNames)); - analysisState = LevelStatus.NewTopLevel; - } - } + for (var s = 0; s < Stats.StatsCount; s++) + { + var levelStatusForStatIo = LevelStatusFlags.LevelStatusFlagsCurrentNewCreature[s]; // ASA can have up to 511 levels because 255 mutation levels also contribute to the wild value. TODO separate to mutation levels - if (_creatureCollection.Game != Ark.Asa) + if (_creatureCollection.Game != Ark.Asa && s != Stats.Torpidity) { if (_statIOs[s].LevelWild > 255) - levelStatus |= LevelStatus.UltraMaxLevel; + levelStatusForStatIo |= LevelStatusFlags.LevelStatus.UltraMaxLevel; else if (_statIOs[s].LevelWild == 255) - levelStatus |= LevelStatus.MaxLevel; + levelStatusForStatIo |= LevelStatusFlags.LevelStatus.MaxLevel; else if (_statIOs[s].LevelWild == 254) - levelStatus |= LevelStatus.MaxLevelForLevelUp; + levelStatusForStatIo |= LevelStatusFlags.LevelStatus.MaxLevelForLevelUp; } - if (levelStatus != LevelStatus.Neutral) - _statIOs[s].TopLevel = levelStatus; + _statIOs[s].TopLevel = levelStatusForStatIo; } string infoText = null; @@ -204,7 +159,7 @@ private void ShowSumOfChosenLevels() if (infoText == null) infoText = "No top stats"; - creatureAnalysis1.SetStatsAnalysis(analysisState, infoText); + creatureAnalysis1.SetStatsAnalysis(LevelStatusFlags.CombinedLevelStatusFlags, infoText); } creatureInfoInputExtractor.ButtonEnabled = allValid; groupBoxRadarChartExtractor.Visible = allValid; @@ -1220,7 +1175,7 @@ private void CreatureInfoInputColorsChanged(CreatureInfoInput input) input.ColorAlreadyExistingInformation = colorAlreadyExisting; if (input == creatureInfoInputExtractor) - creatureAnalysis1.SetColorAnalysis(newColorStatus.newInSpecies ? LevelStatus.NewTopLevel : newColorStatus.newInRegion ? LevelStatus.TopLevel : LevelStatus.Neutral, infoText); + creatureAnalysis1.SetColorAnalysis(newColorStatus.newInSpecies ? LevelStatusFlags.LevelStatus.NewTopLevel : newColorStatus.newInRegion ? LevelStatusFlags.LevelStatus.TopLevel : LevelStatusFlags.LevelStatus.Neutral, infoText); } private void copyLibrarydumpToClipboardToolStripMenuItem_Click(object sender, EventArgs e) diff --git a/ARKBreedingStats/Form1.importExported.cs b/ARKBreedingStats/Form1.importExported.cs index 86d03d2b..6539b485 100644 --- a/ARKBreedingStats/Form1.importExported.cs +++ b/ARKBreedingStats/Form1.importExported.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text; using System.Windows.Forms; +using ARKBreedingStats.library; using ARKBreedingStats.NamePatterns; using ARKBreedingStats.species; using ARKBreedingStats.utils; @@ -232,7 +233,8 @@ private Creature ImportExportedAddIfPossible(string filePath) creature = GetCreatureFromInput(true, species, levelStep); } - OverlayFeedbackForImport(creature, uniqueExtraction, alreadyExists, addedToLibrary, copiedNameToClipboard, out bool hasTopLevels, out bool hasNewTopLevels); + OverlayFeedbackForImport(creature, uniqueExtraction, alreadyExists, addedToLibrary, copiedNameToClipboard, + out bool hasTopLevels, out bool hasNewTopLevels, out var newMutationStatFlags); if (addedToLibrary) { @@ -297,6 +299,8 @@ private Creature ImportExportedAddIfPossible(string filePath) { if (alreadyExists) SoundFeedback.BeepSignal(SoundFeedback.FeedbackSounds.Updated); + else if (newMutationStatFlags != 0) + SoundFeedback.BeepSignal(SoundFeedback.FeedbackSounds.NewMutation); else if (hasNewTopLevels) SoundFeedback.BeepSignal(SoundFeedback.FeedbackSounds.Great); else if (hasTopLevels) @@ -377,10 +381,12 @@ private bool CopyCreatureNameToClipboardOnImportIfSetting(string creatureName) /// /// Give feedback in overlay for imported creature. /// - private void OverlayFeedbackForImport(Creature creature, bool uniqueExtraction, bool alreadyExists, bool addedToLibrary, bool copiedNameToClipboard, out bool topLevels, out bool newTopLevels) + private void OverlayFeedbackForImport(Creature creature, bool uniqueExtraction, bool alreadyExists, bool addedToLibrary, + bool copiedNameToClipboard, out bool topLevels, out bool newTopLevels, out int newMutationStatFlags) { topLevels = false; newTopLevels = false; + newMutationStatFlags = 0; string infoText; Color textColor; const int colorSaturation = 200; @@ -391,24 +397,27 @@ private void OverlayFeedbackForImport(Creature creature, bool uniqueExtraction, if (addedToLibrary && copiedNameToClipboard) sb.AppendLine("Name copied to clipboard."); - for (int s = 0; s < Stats.StatsCount; s++) - { - int statIndex = Stats.DisplayOrder[s]; - if (!creature.Species.UsesStat(statIndex)) continue; - - sb.Append($"{Utils.StatName(statIndex, true, creature.Species.statNames)}: {creature.levelsWild[statIndex]} ({creature.valuesBreeding[statIndex]})"); - if (_statIOs[statIndex].TopLevel.HasFlag(LevelStatus.NewTopLevel)) - { - sb.Append($" {Loc.S("newTopLevel")}"); - newTopLevels = true; - } - else if (creature.IsTopStat(statIndex)) - { - sb.Append($" {Loc.S("topLevel")}"); - topLevels = true; - } - sb.AppendLine(); - } + var checkMutations = _highestSpeciesMutationLevels.TryGetValue(creature.Species, out var highestMutations) && creature.levelsMutated != null; + var species = speciesSelector1.SelectedSpecies; + _highestSpeciesLevels.TryGetValue(species, out int[] highSpeciesLevels); + _lowestSpeciesLevels.TryGetValue(species, out int[] lowSpeciesLevels); + _highestSpeciesMutationLevels.TryGetValue(species, out int[] highSpeciesMutationLevels); + + var statWeights = breedingPlan1.StatWeighting.GetWeightingForSpecies(species); + + LevelStatusFlags.DetermineLevelStatus(species, highSpeciesLevels, lowSpeciesLevels, highSpeciesMutationLevels, + statWeights, creature.levelsWild, creature.levelsMutated, creature.valuesBreeding, + out _, out _, sb); + + topLevels = LevelStatusFlags.CombinedLevelStatusFlags.HasFlag(LevelStatusFlags.LevelStatus.TopLevel); + newTopLevels = LevelStatusFlags.CombinedLevelStatusFlags.HasFlag(LevelStatusFlags.LevelStatus.NewTopLevel); + newMutationStatFlags = Enumerable.Range(0, Stats.StatsCount) + .Aggregate(0, + (flags, statIndex) => + flags | (LevelStatusFlags.LevelStatusFlagsCurrentNewCreature[statIndex] + .HasFlag(LevelStatusFlags.LevelStatus.NewMutation) + ? (1 << statIndex) + : 0)); infoText = sb.ToString(); textColor = Color.FromArgb(colorSaturation, 255, colorSaturation); @@ -417,6 +426,7 @@ private void OverlayFeedbackForImport(Creature creature, bool uniqueExtraction, { infoText = $"Creature \"{creature.name}\" couldn't be extracted uniquely, manual level selection is necessary."; textColor = Color.FromArgb(255, colorSaturation, colorSaturation); + LevelStatusFlags.Clear(); } if (_overlay != null) diff --git a/ARKBreedingStats/Form1.library.cs b/ARKBreedingStats/Form1.library.cs index 2032731c..7ddd4d61 100644 --- a/ARKBreedingStats/Form1.library.cs +++ b/ARKBreedingStats/Form1.library.cs @@ -196,40 +196,25 @@ private bool IsArkIdUniqueOrOnlyPlaceHolder(Creature creature) /// Returns the wild levels from the extractor or tester in an array. /// private int[] GetCurrentWildLevels(bool fromExtractor = true) - { - int[] levelsWild = new int[Stats.StatsCount]; - for (int s = 0; s < Stats.StatsCount; s++) - { - levelsWild[s] = fromExtractor ? _statIOs[s].LevelWild : _testingIOs[s].LevelWild; - } - return levelsWild; - } + => (fromExtractor ? _statIOs : _testingIOs).Select(i => i.LevelWild).ToArray(); /// /// Returns the mutated levels from the extractor or tester in an array. /// private int[] GetCurrentMutLevels(bool fromExtractor = true) - { - int[] levelsMut = new int[Stats.StatsCount]; - for (int s = 0; s < Stats.StatsCount; s++) - { - levelsMut[s] = fromExtractor ? _statIOs[s].LevelMut : _testingIOs[s].LevelMut; - } - return levelsMut; - } + => (fromExtractor ? _statIOs : _testingIOs).Select(i => i.LevelMut).ToArray(); /// /// Returns the domesticated levels from the extractor or tester in an array. /// private int[] GetCurrentDomLevels(bool fromExtractor = true) - { - int[] levelsDom = new int[Stats.StatsCount]; - for (int s = 0; s < Stats.StatsCount; s++) - { - levelsDom[s] = fromExtractor ? _statIOs[s].LevelDom : _testingIOs[s].LevelDom; - } - return levelsDom; - } + => (fromExtractor ? _statIOs : _testingIOs).Select(i => i.LevelDom).ToArray(); + + /// + /// Returns the breeding values from the extractor or tester in an array. + /// + private double[] GetCurrentBreedingValues(bool fromExtractor = true) + => (fromExtractor ? _statIOs : _testingIOs).Select(i => i.BreedingValue).ToArray(); /// /// Call after the creatureCollection-object was created anew (e.g. after loading a file) @@ -322,8 +307,6 @@ private void CalculateTopStats(List creatures) { highestLevels[s] = -1; lowestLevels[s] = -1; - highestMutationLevels[s] = -1; - lowestMutationLevels[s] = -1; if (species.UsesStat(s)) { usedStatIndices.Add(s); @@ -406,17 +389,20 @@ private void CalculateTopStats(List creatures) { if (statPreference == StatWeighting.StatValuePreference.Low) { - if (lowestMutationLevels[si] == -1 || c.levelsMutated[si] < lowestMutationLevels[si]) + if (c.levelsMutated[si] < lowestMutationLevels[si]) { bestCreaturesMutatedLevels[si] = new List { c }; lowestMutationLevels[si] = c.levelsMutated[si]; } else if (c.levelsMutated[si] == lowestMutationLevels[si]) { - bestCreaturesMutatedLevels[si].Add(c); + if (bestCreaturesMutatedLevels[si] == null) + bestCreaturesMutatedLevels[si] = new List { c }; + else bestCreaturesMutatedLevels[si].Add(c); } } - else if (statPreference == StatWeighting.StatValuePreference.High) + else if (statPreference == StatWeighting.StatValuePreference.High + && c.levelsMutated[si] > 0) { if (c.levelsMutated[si] > 0 && c.levelsMutated[si] > highestMutationLevels[si]) { diff --git a/ARKBreedingStats/Form1.tester.cs b/ARKBreedingStats/Form1.tester.cs index e4cb127d..1a322eff 100644 --- a/ARKBreedingStats/Form1.tester.cs +++ b/ARKBreedingStats/Form1.tester.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Windows.Forms; using ARKBreedingStats.library; +using ARKBreedingStats.uiControls; using ARKBreedingStats.utils; namespace ARKBreedingStats diff --git a/ARKBreedingStats/Properties/Resources.Designer.cs b/ARKBreedingStats/Properties/Resources.Designer.cs index a6ae603a..db545830 100644 --- a/ARKBreedingStats/Properties/Resources.Designer.cs +++ b/ARKBreedingStats/Properties/Resources.Designer.cs @@ -98,6 +98,15 @@ internal static System.Drawing.Bitmap locked { } } + /// + /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream newMutation { + get { + return ResourceManager.GetStream("newMutation", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/ARKBreedingStats/Properties/Resources.resx b/ARKBreedingStats/Properties/Resources.resx index 42ec3b18..d3252ce0 100644 --- a/ARKBreedingStats/Properties/Resources.resx +++ b/ARKBreedingStats/Properties/Resources.resx @@ -160,4 +160,7 @@ ..\Resources\updated.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\newMutation.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/ARKBreedingStats/Resources/newMutation.wav b/ARKBreedingStats/Resources/newMutation.wav new file mode 100644 index 0000000000000000000000000000000000000000..82faae579c7a2537b1a7095af879b952435257ab GIT binary patch literal 66264 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
    8h#I51pq#0g(7aV%-!!i&6Tap( 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 + /// Level status flags of the current extracted or to be added creature. + /// E.g. if a level is a new top stat or has a new mutations. + ///
+ public static class LevelStatusFlags + { + /// + /// The level status of the currently to be added creature. + /// + public static readonly LevelStatus[] LevelStatusFlagsCurrentNewCreature = new LevelStatus[Stats.StatsCount]; + public static LevelStatus CombinedLevelStatusFlags; + + /// + /// Determines if the wild and mutated levels of a creature are equal or higher than the current top levels of that species. + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// Adds text for each stat + public static void DetermineLevelStatus(Species species, int[] highSpeciesLevels, int[] lowSpeciesLevels, int[] highSpeciesMutationLevels, + (double[], byte[]) statWeights, int[] levelsWild, int[] levelsMutated, double[] valuesBreeding, + out List topStatsText, out List newTopStatsText, StringBuilder sbStatInfoText = null) + { + // if there are no creatures of the species yet, assume 0 levels to be the current best and worst + if (highSpeciesLevels == null) highSpeciesLevels = new int[Stats.StatsCount]; + if (lowSpeciesLevels == null) lowSpeciesLevels = new int[Stats.StatsCount]; + if (highSpeciesMutationLevels == null) highSpeciesMutationLevels = new int[Stats.StatsCount]; + + newTopStatsText = new List(); + topStatsText = new List(); + + foreach (var s in Stats.DisplayOrder) + { + LevelStatusFlagsCurrentNewCreature[s] = LevelStatus.Neutral; + + if (s == Stats.Torpidity + || levelsWild[s] < 0 + || !species.UsesStat(s)) + continue; + + var statName = Utils.StatName(s, false, species.statNames); + var statNameAbb = Utils.StatName(s, true, species.statNames); + var weighting = statWeights.Item1 == null || statWeights.Item1[s] == 0 + ? StatWeighting.StatValuePreference.Indifferent + : statWeights.Item1[s] > 0 ? StatWeighting.StatValuePreference.High + : StatWeighting.StatValuePreference.Low; + + sbStatInfoText?.Append($"{statNameAbb}: {levelsWild[s]} | {levelsMutated[s]} ({valuesBreeding[s]})"); + + if (weighting == StatWeighting.StatValuePreference.High) + { + // higher stats are considered to be good. If no custom weightings are available, consider higher levels to be better. + + // check if higher level is only considered if even or odd + if ((statWeights.Item2?[s] ?? 0) == 0 // even/odd doesn't matter + || (statWeights.Item2[s] == 1 && levelsWild[s] % 2 == 1) + || (statWeights.Item2[s] == 2 && levelsWild[s] % 2 == 0) + ) + { + if (levelsWild[s] == highSpeciesLevels[s]) + { + LevelStatusFlagsCurrentNewCreature[s] = LevelStatus.TopLevel; + CombinedLevelStatusFlags |= LevelStatus.TopLevel; + topStatsText.Add(statName); + sbStatInfoText?.Append($" {Loc.S("topLevel")}"); + } + else if (highSpeciesLevels[s] != -1 && levelsWild[s] > highSpeciesLevels[s]) + { + LevelStatusFlagsCurrentNewCreature[s] = LevelStatus.NewTopLevel; + CombinedLevelStatusFlags |= LevelStatus.NewTopLevel; + newTopStatsText.Add(statName); + sbStatInfoText?.Append($" {Loc.S("newTopLevel")}"); + } + } + } + else if (weighting == StatWeighting.StatValuePreference.Low) + { + // lower stats are considered to be good + if (levelsWild[s] == lowSpeciesLevels[s]) + { + LevelStatusFlagsCurrentNewCreature[s] = LevelStatus.TopLevel; + CombinedLevelStatusFlags |= LevelStatus.TopLevel; + topStatsText.Add(statName); + sbStatInfoText?.Append($" {Loc.S("topLevel")}"); + } + else if (levelsWild[s] < lowSpeciesLevels[s]) + { + LevelStatusFlagsCurrentNewCreature[s] = LevelStatus.NewTopLevel; + CombinedLevelStatusFlags |= LevelStatus.NewTopLevel; + newTopStatsText.Add(statName); + sbStatInfoText?.Append($" {Loc.S("newTopLevel")}"); + } + } + + if (weighting == StatWeighting.StatValuePreference.High + && levelsMutated[s] > highSpeciesMutationLevels[s]) + { + LevelStatusFlagsCurrentNewCreature[s] |= LevelStatus.NewMutation; + CombinedLevelStatusFlags |= LevelStatus.NewMutation; + sbStatInfoText?.Append($" {Loc.S("new mutation")}"); + } + sbStatInfoText?.AppendLine(); + } + } + + public static void Clear() + { + for (var s = 0; s < Stats.StatsCount; s++) + LevelStatusFlagsCurrentNewCreature[s] = LevelStatus.Neutral; + CombinedLevelStatusFlags = LevelStatus.Neutral; + } + + /// + /// Status of wild levels, e.g. top level, max level. + /// + [Flags] + public enum LevelStatus + { + Neutral = 0, + /// + /// wild level is equal to the current top-level + /// + TopLevel = 1, + /// + /// wild level is higher than the current top-level + /// + NewTopLevel = 2, + /// + /// Max level to apply domesticated levels. + /// + MaxLevelForLevelUp = 4, + /// + /// Max level that can be saved. + /// + MaxLevel = 8, + /// + /// Level too high to be saved, rollover will happen. + /// + UltraMaxLevel = 16, + /// + /// Stat has new mutation. + /// + NewMutation = 32 + } + } +} diff --git a/ARKBreedingStats/uiControls/CreatureAnalysis.cs b/ARKBreedingStats/uiControls/CreatureAnalysis.cs index e6aeaa14..969c3abc 100644 --- a/ARKBreedingStats/uiControls/CreatureAnalysis.cs +++ b/ARKBreedingStats/uiControls/CreatureAnalysis.cs @@ -1,5 +1,6 @@ using System.Drawing; using System.Windows.Forms; +using ARKBreedingStats.library; namespace ARKBreedingStats.uiControls { @@ -10,10 +11,10 @@ public CreatureAnalysis() InitializeComponent(); } - private LevelStatus _statsStatus; - private LevelStatus _colorStatus; + private LevelStatusFlags.LevelStatus _statsStatus; + private LevelStatusFlags.LevelStatus _colorStatus; - public void SetStatsAnalysis(LevelStatus statsStatus, string statsAnalysis) + public void SetStatsAnalysis(LevelStatusFlags.LevelStatus statsStatus, string statsAnalysis) { _statsStatus = statsStatus; SetStatus(LbStatsStatus, statsStatus); @@ -21,7 +22,7 @@ public void SetStatsAnalysis(LevelStatus statsStatus, string statsAnalysis) LbStatAnalysis.Text = statsAnalysis; var generalStatus = statsStatus; - if (generalStatus != LevelStatus.NewTopLevel && _colorStatus != LevelStatus.Neutral) + if (!generalStatus.HasFlag(LevelStatusFlags.LevelStatus.NewTopLevel) && _colorStatus != LevelStatusFlags.LevelStatus.Neutral) { generalStatus = _colorStatus; } @@ -32,7 +33,7 @@ public void SetStatsAnalysis(LevelStatus statsStatus, string statsAnalysis) /// /// Set the color status and uses the earlier set statsStatus. /// - public void SetColorAnalysis(LevelStatus colorStatus, string colorAnalysis) + public void SetColorAnalysis(LevelStatusFlags.LevelStatus colorStatus, string colorAnalysis) { _colorStatus = colorStatus; SetStatus(LbColorStatus, colorStatus); @@ -40,7 +41,7 @@ public void SetColorAnalysis(LevelStatus colorStatus, string colorAnalysis) LbColorAnalysis.Text = colorAnalysis; var generalStatus = _statsStatus; - if (generalStatus != LevelStatus.NewTopLevel && colorStatus != LevelStatus.Neutral) + if (generalStatus != LevelStatusFlags.LevelStatus.NewTopLevel && colorStatus != LevelStatusFlags.LevelStatus.Neutral) { generalStatus = colorStatus; } @@ -48,36 +49,36 @@ public void SetColorAnalysis(LevelStatus colorStatus, string colorAnalysis) SetStatus(LbIcon, generalStatus, LbConclusion); } - private void SetStatus(Label labelIcon, LevelStatus status, Label labelText = null) + private void SetStatus(Label labelIcon, LevelStatusFlags.LevelStatus status, Label labelText = null) { - switch (status) + if (status.HasFlag(LevelStatusFlags.LevelStatus.NewTopLevel)) { - case LevelStatus.TopLevel: - labelIcon.BackColor = Color.LightGreen; - labelIcon.ForeColor = Color.DarkGreen; - labelIcon.Text = "✓"; - if (labelText != null) - labelText.Text = "Keep this creature!"; - break; - case LevelStatus.NewTopLevel: - labelIcon.BackColor = Color.LightYellow; - labelIcon.ForeColor = Color.Gold; - labelIcon.Text = "★"; - if (labelText != null) - labelText.Text = "Keep this creature, it adds new traits to your library!"; - break; - default: - labelIcon.BackColor = Color.LightGray; - labelIcon.ForeColor = Color.Gray; - labelIcon.Text = "-"; - if (labelText != null) - labelText.Text = "This creature adds nothing new to your library."; - break; + labelIcon.BackColor = Color.LightYellow; + labelIcon.ForeColor = Color.Gold; + labelIcon.Text = "★"; + if (labelText != null) + labelText.Text = "Keep this creature, it adds new traits to your library!"; + } + else if (status.HasFlag(LevelStatusFlags.LevelStatus.TopLevel)) + { + labelIcon.BackColor = Color.LightGreen; + labelIcon.ForeColor = Color.DarkGreen; + labelIcon.Text = "✓"; + if (labelText != null) + labelText.Text = "Keep this creature!"; + } + else + { + labelIcon.BackColor = Color.LightGray; + labelIcon.ForeColor = Color.Gray; + labelIcon.Text = "-"; + if (labelText != null) + labelText.Text = "This creature adds nothing new to your library."; } } /// - /// Colors are not cleared, they are set independently from the stats if the colors are changed. + /// Colors are not cleared, they are set independent of the stats if the colors are changed. /// public void Clear() { diff --git a/ARKBreedingStats/uiControls/StatIO.Designer.cs b/ARKBreedingStats/uiControls/StatIO.Designer.cs index 2de2bc5f..3cd39670 100644 --- a/ARKBreedingStats/uiControls/StatIO.Designer.cs +++ b/ARKBreedingStats/uiControls/StatIO.Designer.cs @@ -1,4 +1,4 @@ -namespace ARKBreedingStats +namespace ARKBreedingStats.uiControls { partial class StatIO { diff --git a/ARKBreedingStats/uiControls/StatIO.cs b/ARKBreedingStats/uiControls/StatIO.cs index 728364f6..7fb6ed63 100644 --- a/ARKBreedingStats/uiControls/StatIO.cs +++ b/ARKBreedingStats/uiControls/StatIO.cs @@ -3,10 +3,11 @@ using System.Windows.Forms; using System.Windows.Input; using System.Windows.Threading; +using ARKBreedingStats.library; using ARKBreedingStats.utils; using Cursors = System.Windows.Forms.Cursors; -namespace ARKBreedingStats +namespace ARKBreedingStats.uiControls { public partial class StatIO : UserControl { @@ -188,43 +189,44 @@ public StatIOStatus Status } } - private LevelStatus _topLevel; - public LevelStatus TopLevel + private LevelStatusFlags.LevelStatus _topLevel; + public LevelStatusFlags.LevelStatus TopLevel { get => _topLevel; set { + if (_topLevel == value) return; _topLevel = value; - if (_topLevel == LevelStatus.Neutral) + if (_topLevel == LevelStatusFlags.LevelStatus.Neutral) { labelWildLevel.BackColor = Color.Transparent; _tt.SetToolTip(labelWildLevel, null); return; } - if (_topLevel.HasFlag(LevelStatus.TopLevel)) + if (_topLevel.HasFlag(LevelStatusFlags.LevelStatus.TopLevel)) { labelWildLevel.BackColor = Color.LightGreen; _tt.SetToolTip(labelWildLevel, Loc.S("topLevel")); } - else if (_topLevel.HasFlag(LevelStatus.NewTopLevel)) + else if (_topLevel.HasFlag(LevelStatusFlags.LevelStatus.NewTopLevel)) { labelWildLevel.BackColor = Color.Gold; _tt.SetToolTip(labelWildLevel, Loc.S("newTopLevel")); } - if (_topLevel.HasFlag(LevelStatus.MaxLevelForLevelUp)) + if (_topLevel.HasFlag(LevelStatusFlags.LevelStatus.MaxLevelForLevelUp)) { labelWildLevel.BackColor = Color.DeepSkyBlue; _tt.SetToolTip(labelWildLevel, Loc.S("maxLevelForLevelUp")); } - else if (_topLevel.HasFlag(LevelStatus.MaxLevel)) + else if (_topLevel.HasFlag(LevelStatusFlags.LevelStatus.MaxLevel)) { labelWildLevel.BackColor = Color.Orange; _tt.SetToolTip(labelWildLevel, Loc.S("maxLevelSaved")); } - else if (_topLevel.HasFlag(LevelStatus.UltraMaxLevel)) + else if (_topLevel.HasFlag(LevelStatusFlags.LevelStatus.UltraMaxLevel)) { labelWildLevel.BackColor = Color.LightCoral; _tt.SetToolTip(labelWildLevel, Loc.S("ultraMaxLevel")); @@ -267,7 +269,7 @@ public bool IsActive public void Clear() { Status = StatIOStatus.Neutral; - TopLevel = LevelStatus.Neutral; + TopLevel = LevelStatusFlags.LevelStatus.Neutral; numLvW.Value = 0; nudLvM.Value = 0; numLvD.Value = 0; @@ -453,35 +455,6 @@ public enum StatIOStatus Error } - /// - /// Status of wild levels, e.g. top level, max level. - /// - [Flags] - public enum LevelStatus - { - Neutral = 0, - /// - /// wild level is equal to the current top-level - /// - TopLevel = 1, - /// - /// wild level is higher than the current top-level - /// - NewTopLevel = 2, - /// - /// Max level to apply domesticated levels. - /// - MaxLevelForLevelUp = 4, - /// - /// Max level that can be saved. - /// - MaxLevel = 8, - /// - /// Level too high to be saved, rollover will happen. - /// - UltraMaxLevel = 16 - } - public enum StatIOInputType { FinalValueInputType, diff --git a/ARKBreedingStats/uiControls/StatWeighting.cs b/ARKBreedingStats/uiControls/StatWeighting.cs index fa247c58..b48e9a3f 100644 --- a/ARKBreedingStats/uiControls/StatWeighting.cs +++ b/ARKBreedingStats/uiControls/StatWeighting.cs @@ -405,5 +405,5 @@ public enum StatValueEvenOdd Even, Odd } - } + } } diff --git a/ARKBreedingStats/utils/SoundFeedback.cs b/ARKBreedingStats/utils/SoundFeedback.cs index 8f3aa151..4a66f638 100644 --- a/ARKBreedingStats/utils/SoundFeedback.cs +++ b/ARKBreedingStats/utils/SoundFeedback.cs @@ -14,7 +14,8 @@ internal enum FeedbackSounds Good, Great, Indifferent, - Updated + Updated, + NewMutation } private static readonly SoundPlayer Sp = new SoundPlayer(); @@ -50,6 +51,10 @@ public static void BeepSignal(FeedbackSounds kind) Sp.Stream = Properties.Resources.newtopstat; Sp.Play(); return; + case FeedbackSounds.NewMutation: + Sp.Stream = Properties.Resources.newMutation; + Sp.Play(); + return; } } } From 9fa6f0911dba9c56ddeaad8e1f9e5e3f7d47d8c2 Mon Sep 17 00:00:00 2001 From: cadon Date: Wed, 31 Jan 2024 22:07:52 +0100 Subject: [PATCH 22/29] don't display mutated levels in ASE infographic --- ARKBreedingStats/Form1.tester.cs | 2 ++ ARKBreedingStats/library/CreatureInfoGraphic.cs | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ARKBreedingStats/Form1.tester.cs b/ARKBreedingStats/Form1.tester.cs index 1a322eff..8148ee3d 100644 --- a/ARKBreedingStats/Form1.tester.cs +++ b/ARKBreedingStats/Form1.tester.cs @@ -354,6 +354,7 @@ private void pictureBoxColorRegionsTester_Click(object sender, EventArgs e) { Species = speciesSelector1.SelectedSpecies, levelsWild = GetCurrentWildLevels(false), + levelsMutated = CreatureCollection.CurrentCreatureCollection.Game == Ark.Asa ? GetCurrentMutLevels(false) : null, levelsDom = GetCurrentDomLevels(false), tamingEff = TamingEffectivenessTester, isBred = rbBredTester.Checked, @@ -374,6 +375,7 @@ private void PbCreatureColorsExtractor_Click(object sender, EventArgs e) { Species = speciesSelector1.SelectedSpecies, levelsWild = GetCurrentWildLevels(true), + levelsMutated = CreatureCollection.CurrentCreatureCollection.Game == Ark.Asa ? GetCurrentMutLevels(true) : null, levelsDom = GetCurrentDomLevels(true), tamingEff = _extractor.UniqueTamingEffectiveness(), isBred = rbBredExtractor.Checked, diff --git a/ARKBreedingStats/library/CreatureInfoGraphic.cs b/ARKBreedingStats/library/CreatureInfoGraphic.cs index 8766a3b2..25aa16e7 100644 --- a/ARKBreedingStats/library/CreatureInfoGraphic.cs +++ b/ARKBreedingStats/library/CreatureInfoGraphic.cs @@ -126,7 +126,7 @@ public static Bitmap InfoGraphic(this Creature creature, CreatureCollection cc, // levels double meanLetterWidth = fontSize * 7d / 10; int xStatName = (int)meanLetterWidth; - var displayMutatedLevels = creature.levelsMutated != null; + var displayMutatedLevels = creature.levelsMutated != null && cc?.Game == Ark.Asa; // x position of level number. torpor is the largest level number. int xRightLevelValue = (int)(xStatName + ((displayWithDomLevels ? 6 : 5) + creature.levelsWild[Stats.Torpidity].ToString().Length) * meanLetterWidth); int xRightLevelMutValue = xRightLevelValue + (!displayMutatedLevels ? 0 : (int)((creature.levelsMutated.Max().ToString().Length + 3) * meanLetterWidth)); @@ -342,7 +342,7 @@ private static int MaxCharLength(double[] values) ///
/// /// CreatureCollection for server settings. - public static void ExportInfoGraphicToClipboard(this Creature creature, CreatureCollection cc = null) + public static void ExportInfoGraphicToClipboard(this Creature creature, CreatureCollection cc) { if (creature == null) return; From dcc55c44290e928ff1910cf3e5caabcb3311aea4 Mon Sep 17 00:00:00 2001 From: cadon Date: Wed, 31 Jan 2024 22:44:49 +0100 Subject: [PATCH 23/29] select species by alias when pressing enter --- ARKBreedingStats/Form1.cs | 2 +- ARKBreedingStats/SpeciesSelector.cs | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs index ddb136c1..3ea5b0eb 100644 --- a/ARKBreedingStats/Form1.cs +++ b/ARKBreedingStats/Form1.cs @@ -633,7 +633,7 @@ private void ToggleViewSpeciesSelector(bool showSpeciesSelector) private void TbSpeciesGlobal_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode != Keys.Enter && e.KeyCode != Keys.Tab) return; - if (speciesSelector1.SetSpeciesByName(tbSpeciesGlobal.Text)) + if (speciesSelector1.SetSpeciesByEntryName(tbSpeciesGlobal.Text)) ToggleViewSpeciesSelector(false); } diff --git a/ARKBreedingStats/SpeciesSelector.cs b/ARKBreedingStats/SpeciesSelector.cs index 4a21c20b..c526a81d 100644 --- a/ARKBreedingStats/SpeciesSelector.cs +++ b/ARKBreedingStats/SpeciesSelector.cs @@ -313,14 +313,26 @@ private void lvSpeciesInLibrary_SelectedIndexChanged(object sender, EventArgs e) SetSpecies((Species)lvSpeciesInLibrary.SelectedItems[0].Tag, true); } + /// + /// Return species by entry string. + /// + public bool SetSpeciesByEntryName(string entryString) + { + if (_entryList == null || string.IsNullOrEmpty(entryString)) return false; + var species = _entryList.FirstOrDefault(e => e.DisplayName.Equals(entryString, StringComparison.OrdinalIgnoreCase))?.Species; + if (species == null) return false; + SetSpeciesByName(null, species); + return true; + } + /// /// Sets the species with the speciesName. This may not be unique. /// - /// /// True if the species was recognized and was already or is set. - public bool SetSpeciesByName(string speciesName) + public bool SetSpeciesByName(string speciesName, Species species = null) { - if (Values.V.TryGetSpeciesByName(speciesName, out Species species)) + if (species != null + || (!string.IsNullOrEmpty(speciesName) && Values.V.TryGetSpeciesByName(speciesName, out species))) { var speciesWasSet = SetSpecies(species); if (speciesWasSet) From 46e27844b37df70d657047722ee544a632a6fa63 Mon Sep 17 00:00:00 2001 From: cadon Date: Wed, 31 Jan 2024 23:01:46 +0100 Subject: [PATCH 24/29] using dry --- ARKBreedingStats/uiControls/StatIO.cs | 50 ++++++++------------------- 1 file changed, 14 insertions(+), 36 deletions(-) diff --git a/ARKBreedingStats/uiControls/StatIO.cs b/ARKBreedingStats/uiControls/StatIO.cs index 7fb6ed63..f0110925 100644 --- a/ARKBreedingStats/uiControls/StatIO.cs +++ b/ARKBreedingStats/uiControls/StatIO.cs @@ -282,18 +282,7 @@ public void Clear() private void numLvW_ValueChanged(object sender, EventArgs e) { - int lengthPercentage = 100 * (int)numLvW.Value / barMaxLevel; // in percentage of the max bar width - - if (lengthPercentage > 100) - { - lengthPercentage = 100; - } - if (lengthPercentage < 0) - { - lengthPercentage = 0; - } - panelBarWildLevels.Width = lengthPercentage * MaxBarLength / 100; - panelBarWildLevels.BackColor = Utils.GetColorFromPercent(lengthPercentage); + SetLevelBar(panelBarWildLevels, numLvW.Value); _tt.SetToolTip(panelBarWildLevels, Utils.LevelPercentile((int)numLvW.Value)); if (_linkWildMutated && _wildMutatedSum != -1) @@ -307,18 +296,7 @@ private void numLvW_ValueChanged(object sender, EventArgs e) private void nudLvM_ValueChanged(object sender, EventArgs e) { - int lengthPercentage = 100 * (int)nudLvM.Value / barMaxLevel; // in percentage of the max bar width - - if (lengthPercentage > 100) - { - lengthPercentage = 100; - } - if (lengthPercentage < 0) - { - lengthPercentage = 0; - } - panelBarMutLevels.Width = lengthPercentage * MaxBarLength / 100; - panelBarMutLevels.BackColor = Utils.GetColorFromPercent(lengthPercentage); + SetLevelBar(panelBarMutLevels, nudLvM.Value); if (_linkWildMutated && _wildMutatedSum != -1) { @@ -331,23 +309,23 @@ private void nudLvM_ValueChanged(object sender, EventArgs e) private void numLvD_ValueChanged(object sender, EventArgs e) { - int lengthPercentage = 100 * (int)numLvD.Value / barMaxLevel; // in percentage of the max bar width - - if (lengthPercentage > 100) - { - lengthPercentage = 100; - } - if (lengthPercentage < 0) - { - lengthPercentage = 0; - } - panelBarDomLevels.Width = lengthPercentage * MaxBarLength / 100; - panelBarDomLevels.BackColor = Utils.GetColorFromPercent(lengthPercentage); + SetLevelBar(panelBarDomLevels, numLvD.Value); if (_inputType != StatIOInputType.FinalValueInputType) LevelChangedDebouncer(); } + private void SetLevelBar(Panel panel, decimal level) + { + var lengthPercentage = 100 * (int)level / barMaxLevel; // in percentage of the max bar width + + if (lengthPercentage > 100) lengthPercentage = 100; + else if (lengthPercentage < 0) lengthPercentage = 0; + + panel.Width = lengthPercentage * MaxBarLength / 100; + panel.BackColor = Utils.GetColorFromPercent(lengthPercentage); + } + private readonly Debouncer _levelChangedDebouncer = new Debouncer(); private void LevelChangedDebouncer() => _levelChangedDebouncer.Debounce(200, FireLevelChanged, Dispatcher.CurrentDispatcher); From acda4ca26cb4871ca7e83d9412d537dac7d63b2a Mon Sep 17 00:00:00 2001 From: cadon Date: Thu, 1 Feb 2024 11:20:51 +0100 Subject: [PATCH 25/29] menu entry to display current token --- ARKBreedingStats/AsbServer/Connection.cs | 2 ++ ARKBreedingStats/Form1.Designer.cs | 10 ++++++++++ ARKBreedingStats/Form1.cs | 25 +++++++++++++++++++++++- 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/ARKBreedingStats/AsbServer/Connection.cs b/ARKBreedingStats/AsbServer/Connection.cs index ee6ff413..c8bbda87 100644 --- a/ARKBreedingStats/AsbServer/Connection.cs +++ b/ARKBreedingStats/AsbServer/Connection.cs @@ -275,5 +275,7 @@ public static string CreateNewToken() /// Returns the passed token string, or wildcards if the streamer mode is enabled. ///
public static string TokenStringForDisplay(string token) => Properties.Settings.Default.StreamerMode ? "****" : token; + + public static bool IsCurrentlyListening => _lastCancellationTokenSource != null; } } diff --git a/ARKBreedingStats/Form1.Designer.cs b/ARKBreedingStats/Form1.Designer.cs index 68e2741b..e9711117 100644 --- a/ARKBreedingStats/Form1.Designer.cs +++ b/ARKBreedingStats/Form1.Designer.cs @@ -385,6 +385,7 @@ private void InitializeComponent() this.toolStripSeparator27 = new System.Windows.Forms.ToolStripSeparator(); this.resetColumnOrderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.speciesSelector1 = new ARKBreedingStats.SpeciesSelector(); + this.currentTokenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownImprintingBonusTester)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NumericUpDownTestingTE)).BeginInit(); @@ -1342,6 +1343,7 @@ private void InitializeComponent() // this.serverToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.listenToolStripMenuItem, + this.currentTokenToolStripMenuItem, this.listenWithNewTokenToolStripMenuItem, this.sendExampleCreatureToolStripMenuItem}); this.serverToolStripMenuItem.Name = "serverToolStripMenuItem"; @@ -3781,6 +3783,13 @@ private void InitializeComponent() this.speciesSelector1.SplitterDistance = 500; this.speciesSelector1.TabIndex = 0; // + // currentTokenToolStripMenuItem + // + this.currentTokenToolStripMenuItem.Name = "currentTokenToolStripMenuItem"; + this.currentTokenToolStripMenuItem.Size = new System.Drawing.Size(194, 22); + this.currentTokenToolStripMenuItem.Text = "Current token"; + this.currentTokenToolStripMenuItem.Click += new System.EventHandler(this.currentTokenToolStripMenuItem_Click); + // // Form1 // this.AcceptButton = this.btExtractLevels; @@ -4241,5 +4250,6 @@ private void InitializeComponent() private System.Windows.Forms.Label label5; private System.Windows.Forms.CheckBox CbLinkWildMutatedLevelsTester; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemMutationColumns; + private System.Windows.Forms.ToolStripMenuItem currentTokenToolStripMenuItem; } } diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs index 3ea5b0eb..caca52f1 100644 --- a/ARKBreedingStats/Form1.cs +++ b/ARKBreedingStats/Form1.cs @@ -3898,6 +3898,30 @@ private void AsbServerStopListening(bool displayMessage = true) SetMessageLabelText($"ASB Server listening stopped using token: {Connection.TokenStringForDisplay(Properties.Settings.Default.ExportServerToken)}", MessageBoxIcon.Error); } + private void currentTokenToolStripMenuItem_Click(object sender, EventArgs e) + { + var tokenIsSet = !string.IsNullOrEmpty(Properties.Settings.Default.ExportServerToken); + string message; + bool isError; + if (tokenIsSet) + { + message = $"Currently {(Connection.IsCurrentlyListening ? string.Empty : "not ")}listening to the server." + + " The current token is " + Environment.NewLine + Connection.TokenStringForDisplay(Properties.Settings.Default.ExportServerToken) + + Environment.NewLine + "(token copied to clipboard)"; + + Clipboard.SetText(Properties.Settings.Default.ExportServerToken); + isError = false; + } + else + { + message = "Currently no token set. A token is created once you start listening to the server."; + isError = true; + } + + SetMessageLabelText(message, isError ? MessageBoxIcon.Error : MessageBoxIcon.Information, + clipboardText: Properties.Settings.Default.ExportServerToken, displayPopup: !Properties.Settings.Default.StreamerMode); + } + private void sendExampleCreatureToolStripMenuItem_Click(object sender, EventArgs e) { // debug function, sends a test creature to the server @@ -3905,6 +3929,5 @@ private void sendExampleCreatureToolStripMenuItem_Click(object sender, EventArgs } #endregion - } } From 9565d1a7309a6a86ea29e5309eb870a9dd2d90ab Mon Sep 17 00:00:00 2001 From: cadon Date: Thu, 1 Feb 2024 22:10:00 +0100 Subject: [PATCH 26/29] option to display zero mutation levels in library --- ARKBreedingStats/App.config | 3 + ARKBreedingStats/Form1.library.cs | 7 +- .../Properties/Settings.Designer.cs | 12 + ARKBreedingStats/Properties/Settings.settings | 3 + .../settings/Settings.Designer.cs | 6525 +++++++++-------- ARKBreedingStats/settings/Settings.cs | 2 + ARKBreedingStats/settings/Settings.resx | 8 +- 7 files changed, 3297 insertions(+), 3263 deletions(-) diff --git a/ARKBreedingStats/App.config b/ARKBreedingStats/App.config index d4980d5d..aa232dee 100644 --- a/ARKBreedingStats/App.config +++ b/ARKBreedingStats/App.config @@ -514,6 +514,9 @@ False + + False + diff --git a/ARKBreedingStats/Form1.library.cs b/ARKBreedingStats/Form1.library.cs index 7ddd4d61..dc54e4a7 100644 --- a/ARKBreedingStats/Form1.library.cs +++ b/ARKBreedingStats/Form1.library.cs @@ -1072,6 +1072,7 @@ private ListViewItem CreateCreatureLvItem(Creature cr, bool displayIndex = false ListViewItem lvi = new ListViewItem(subItems) { Tag = cr }; // apply colors to the subItems + var displayZeroMutationLevels = Properties.Settings.Default.LibraryDisplayZeroMutationLevels; for (int s = 0; s < Stats.StatsCount; s++) { @@ -1092,14 +1093,14 @@ private ListViewItem CreateCreatureLvItem(Creature cr, bool displayIndex = false _considerStatHighlight[s] ? cr.IsTopStat(s) ? 0.2 : 0.75 : 0.93); // mutated levels - if (cr.levelsMutated == null || cr.levelsMutated[s] == 0) + if (cr.levelsMutated == null || (!displayZeroMutationLevels && cr.levelsMutated[s] == 0)) { lvi.SubItems[ColumnIndexFirstStat + Stats.StatsCount + s].ForeColor = Color.White; lvi.SubItems[ColumnIndexFirstStat + Stats.StatsCount + s].BackColor = Color.White; } else lvi.SubItems[ColumnIndexFirstStat + Stats.StatsCount + s].BackColor = Utils.GetColorFromPercent((int)(cr.levelsMutated[s] * colorFactor), - _considerStatHighlight[s] ? cr.IsTopMutationStat(s) ? 0.4 : 0.8 : 0.93, true); + _considerStatHighlight[s] ? cr.IsTopMutationStat(s) ? 0.5 : 0.8 : 0.93, true); } lvi.SubItems[ColumnIndexSex].BackColor = cr.flags.HasFlag(CreatureFlags.Neutered) ? Color.FromArgb(220, 220, 220) : cr.sex == Sex.Female ? Color.FromArgb(255, 230, 255) : @@ -1165,7 +1166,7 @@ private ListViewItem CreateCreatureLvItem(Creature cr, bool displayIndex = false if (cr.levelFound == 0) lvi.SubItems[ColumnIndexWildLevel].ForeColor = Color.LightGray; - // color for mutation + // color for mutations counter if (cr.Mutations > 0) { if (cr.Mutations < Ark.MutationPossibleWithLessThan) diff --git a/ARKBreedingStats/Properties/Settings.Designer.cs b/ARKBreedingStats/Properties/Settings.Designer.cs index edf82fcc..06aaf611 100644 --- a/ARKBreedingStats/Properties/Settings.Designer.cs +++ b/ARKBreedingStats/Properties/Settings.Designer.cs @@ -2290,5 +2290,17 @@ public bool StreamerMode { this["StreamerMode"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool LibraryDisplayZeroMutationLevels { + get { + return ((bool)(this["LibraryDisplayZeroMutationLevels"])); + } + set { + this["LibraryDisplayZeroMutationLevels"] = value; + } + } } } diff --git a/ARKBreedingStats/Properties/Settings.settings b/ARKBreedingStats/Properties/Settings.settings index ddf33e81..92abc3e1 100644 --- a/ARKBreedingStats/Properties/Settings.settings +++ b/ARKBreedingStats/Properties/Settings.settings @@ -575,5 +575,8 @@ False + + False + \ No newline at end of file diff --git a/ARKBreedingStats/settings/Settings.Designer.cs b/ARKBreedingStats/settings/Settings.Designer.cs index be7f4432..497fdd26 100644 --- a/ARKBreedingStats/settings/Settings.Designer.cs +++ b/ARKBreedingStats/settings/Settings.Designer.cs @@ -45,26 +45,50 @@ private void InitializeComponent() this.label6 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.nudTamedDinoCharacterFoodDrain = new ARKBreedingStats.uiControls.Nud(); + this.nudTamedDinoCharacterFoodDrainEvent = new ARKBreedingStats.uiControls.Nud(); this.label64 = new System.Windows.Forms.Label(); + this.nudBabyImprintAmountEvent = new ARKBreedingStats.uiControls.Nud(); this.label49 = new System.Windows.Forms.Label(); + this.nudBabyImprintAmount = new ARKBreedingStats.uiControls.Nud(); this.label44 = new System.Windows.Forms.Label(); + this.nudMatingSpeed = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyFoodConsumptionSpeedEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudMatingIntervalEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyCuddleIntervalEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyMatureSpeedEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudEggHatchSpeedEvent = new ARKBreedingStats.uiControls.Nud(); this.labelBabyFoodConsumptionSpeed = new System.Windows.Forms.Label(); + this.nudBabyFoodConsumptionSpeed = new ARKBreedingStats.uiControls.Nud(); this.label3 = new System.Windows.Forms.Label(); + this.nudMatingInterval = new ARKBreedingStats.uiControls.Nud(); this.label17 = new System.Windows.Forms.Label(); + this.nudBabyCuddleInterval = new ARKBreedingStats.uiControls.Nud(); this.label13 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label(); + this.nudBabyMatureSpeed = new ARKBreedingStats.uiControls.Nud(); + this.nudBabyImprintingStatScale = new ARKBreedingStats.uiControls.Nud(); this.label8 = new System.Windows.Forms.Label(); + this.nudEggHatchSpeed = new ARKBreedingStats.uiControls.Nud(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.LbDefaultLevelups = new System.Windows.Forms.Label(); + this.nudMaxServerLevel = new ARKBreedingStats.uiControls.Nud(); this.lbMaxTotalLevel = new System.Windows.Forms.Label(); + this.nudMaxGraphLevel = new ARKBreedingStats.uiControls.Nud(); this.label18 = new System.Windows.Forms.Label(); this.label11 = new System.Windows.Forms.Label(); + this.nudMaxWildLevels = new ARKBreedingStats.uiControls.Nud(); this.label10 = new System.Windows.Forms.Label(); + this.nudMaxDomLevels = new ARKBreedingStats.uiControls.Nud(); this.groupBox4 = new System.Windows.Forms.GroupBox(); this.label57 = new System.Windows.Forms.Label(); this.label56 = new System.Windows.Forms.Label(); this.pbChartOddRange = new System.Windows.Forms.PictureBox(); this.pbChartEvenRange = new System.Windows.Forms.PictureBox(); + this.nudChartLevelOddMax = new ARKBreedingStats.uiControls.Nud(); + this.nudChartLevelOddMin = new ARKBreedingStats.uiControls.Nud(); + this.nudChartLevelEvenMax = new ARKBreedingStats.uiControls.Nud(); + this.nudChartLevelEvenMin = new ARKBreedingStats.uiControls.Nud(); this.CbHighlightLevelEvenOdd = new System.Windows.Forms.CheckBox(); this.CbHighlightLevel255 = new System.Windows.Forms.CheckBox(); this.cbIgnoreSexInBreedingPlan = new System.Windows.Forms.CheckBox(); @@ -72,20 +96,30 @@ private void InitializeComponent() this.radioButtonFahrenheit = new System.Windows.Forms.RadioButton(); this.radioButtonCelsius = new System.Windows.Forms.RadioButton(); this.label12 = new System.Windows.Forms.Label(); + this.numericUpDownMaxBreedingSug = new ARKBreedingStats.uiControls.Nud(); this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.NudWildDinoCharacterFoodDrainMultiplier = new ARKBreedingStats.uiControls.Nud(); this.label69 = new System.Windows.Forms.Label(); this.label67 = new System.Windows.Forms.Label(); + this.NudWildDinoTorporDrainMultiplier = new ARKBreedingStats.uiControls.Nud(); + this.nudDinoCharacterFoodDrainEvent = new ARKBreedingStats.uiControls.Nud(); + this.nudTamingSpeedEvent = new ARKBreedingStats.uiControls.Nud(); this.label7 = new System.Windows.Forms.Label(); this.label14 = new System.Windows.Forms.Label(); + this.nudDinoCharacterFoodDrain = new ARKBreedingStats.uiControls.Nud(); + this.nudTamingSpeed = new ARKBreedingStats.uiControls.Nud(); this.label15 = new System.Windows.Forms.Label(); this.groupBox6 = new System.Windows.Forms.GroupBox(); this.label55 = new System.Windows.Forms.Label(); + this.NudWaitBeforeAutoLoad = new ARKBreedingStats.uiControls.Nud(); this.label54 = new System.Windows.Forms.Label(); + this.NudKeepBackupFilesCount = new ARKBreedingStats.uiControls.Nud(); this.label53 = new System.Windows.Forms.Label(); this.BtClearBackupFolder = new System.Windows.Forms.Button(); this.label52 = new System.Windows.Forms.Label(); this.BtBackupFolder = new System.Windows.Forms.Button(); this.label2 = new System.Windows.Forms.Label(); + this.NudBackupEveryMinutes = new ARKBreedingStats.uiControls.Nud(); this.groupBox7 = new System.Windows.Forms.GroupBox(); this.checkBoxDisplayHiddenStats = new System.Windows.Forms.CheckBox(); this.tabControlSettings = new System.Windows.Forms.TabControl(); @@ -112,6 +146,7 @@ private void InitializeComponent() this.cbSingleplayerSettings = new System.Windows.Forms.CheckBox(); this.groupBox11 = new System.Windows.Forms.GroupBox(); this.cbAllowMoreThanHundredImprinting = new System.Windows.Forms.CheckBox(); + this.nudWildLevelStep = new ARKBreedingStats.uiControls.Nud(); this.cbConsiderWildLevelSteps = new System.Windows.Forms.CheckBox(); this.buttonEventToDefault = new System.Windows.Forms.Button(); this.labelEvent = new System.Windows.Forms.Label(); @@ -133,12 +168,14 @@ private void InitializeComponent() this.cbDevTools = new System.Windows.Forms.CheckBox(); this.GbSpecies = new System.Windows.Forms.GroupBox(); this.LbSpeciesSelectorCountLastUsed = new System.Windows.Forms.Label(); + this.NudSpeciesSelectorCountLastUsed = new ARKBreedingStats.uiControls.Nud(); this.groupBox26 = new System.Windows.Forms.GroupBox(); this.cbAdminConsoleCommandWithCheat = new System.Windows.Forms.CheckBox(); this.groupBox25 = new System.Windows.Forms.GroupBox(); this.CbbAppDefaultFontName = new System.Windows.Forms.ComboBox(); this.label48 = new System.Windows.Forms.Label(); this.CbbColorMode = new System.Windows.Forms.ComboBox(); + this.nudDefaultFontSize = new ARKBreedingStats.uiControls.Nud(); this.label33 = new System.Windows.Forms.Label(); this.label32 = new System.Windows.Forms.Label(); this.groupBox20 = new System.Windows.Forms.GroupBox(); @@ -164,6 +201,7 @@ private void InitializeComponent() this.groupBox32 = new System.Windows.Forms.GroupBox(); this.LbInfoGraphicSize = new System.Windows.Forms.Label(); this.CbbInfoGraphicFontName = new System.Windows.Forms.ComboBox(); + this.nudInfoGraphicHeight = new ARKBreedingStats.uiControls.Nud(); this.BtInfoGraphicForeColor = new System.Windows.Forms.Button(); this.BtInfoGraphicBackColor = new System.Windows.Forms.Button(); this.BtInfoGraphicBorderColor = new System.Windows.Forms.Button(); @@ -182,19 +220,24 @@ private void InitializeComponent() this.label68 = new System.Windows.Forms.Label(); this.CbImportUnclaimedBabies = new System.Windows.Forms.CheckBox(); this.cbSaveImportCryo = new System.Windows.Forms.CheckBox(); + this.label24 = new System.Windows.Forms.Label(); this.cbIgnoreUnknownBPOnSaveImport = new System.Windows.Forms.CheckBox(); + this.groupBox14 = new System.Windows.Forms.GroupBox(); + this.fileSelectorExtractedSaveFolder = new ARKBreedingStats.uiControls.FileSelector(); this.textBoxImportTribeNameFilter = new System.Windows.Forms.TextBox(); - this.label_Filter = new System.Windows.Forms.Label(); - this.cbImportUpdateCreatureStatus = new System.Windows.Forms.CheckBox(); this.groupBox15 = new System.Windows.Forms.GroupBox(); this.dataGridView_FileLocations = new System.Windows.Forms.DataGridView(); + this.convenientNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.serverNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.fileLocationDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dgvFileLocation_Change = new System.Windows.Forms.DataGridViewButtonColumn(); this.ImportWithQuickImport = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.dgvFileLocation_Delete = new System.Windows.Forms.DataGridViewButtonColumn(); + this.aTImportFileLocationBindingSource = new System.Windows.Forms.BindingSource(this.components); this.btAddSavegameFileLocation = new System.Windows.Forms.Button(); this.labelSavegameFileLocationHint = new System.Windows.Forms.Label(); - this.groupBox14 = new System.Windows.Forms.GroupBox(); - this.label24 = new System.Windows.Forms.Label(); + this.label_Filter = new System.Windows.Forms.Label(); + this.cbImportUpdateCreatureStatus = new System.Windows.Forms.CheckBox(); this.tabPageImportExported = new System.Windows.Forms.TabPage(); this.BtGetExportFolderAutomatically = new System.Windows.Forms.Button(); this.groupBox27 = new System.Windows.Forms.GroupBox(); @@ -204,6 +247,7 @@ private void InitializeComponent() this.groupBox23 = new System.Windows.Forms.GroupBox(); this.label31 = new System.Windows.Forms.Label(); this.label30 = new System.Windows.Forms.Label(); + this.nudImportLowerBoundTE = new ARKBreedingStats.uiControls.Nud(); this.groupBox22 = new System.Windows.Forms.GroupBox(); this.CbBringToFrontOnImportExportIssue = new System.Windows.Forms.CheckBox(); this.CbAutoExtractAddToLibrary = new System.Windows.Forms.CheckBox(); @@ -235,9 +279,13 @@ private void InitializeComponent() this.nudWarnImportMoreThan = new System.Windows.Forms.NumericUpDown(); this.groupBox13 = new System.Windows.Forms.GroupBox(); this.dataGridViewExportFolders = new System.Windows.Forms.DataGridView(); + this.convenientNameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ownerSuffixDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.folderPathDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dgvExportFolderChange = new System.Windows.Forms.DataGridViewButtonColumn(); this.dgvExportFolderDelete = new System.Windows.Forms.DataGridViewButtonColumn(); this.dgvExportMakeDefault = new System.Windows.Forms.DataGridViewButtonColumn(); + this.aTExportFolderLocationsBindingSource = new System.Windows.Forms.BindingSource(this.components); this.btAddExportFolder = new System.Windows.Forms.Button(); this.label25 = new System.Windows.Forms.Label(); this.tabPageTimers = new System.Windows.Forms.TabPage(); @@ -248,24 +296,36 @@ private void InitializeComponent() this.groupBox8 = new System.Windows.Forms.GroupBox(); this.label22 = new System.Windows.Forms.Label(); this.tbPlayAlarmsSeconds = new System.Windows.Forms.TextBox(); + this.customSCCustom = new ARKBreedingStats.settings.customSoundChooser(); + this.customSCWakeup = new ARKBreedingStats.settings.customSoundChooser(); + this.customSCBirth = new ARKBreedingStats.settings.customSoundChooser(); + this.customSCStarving = new ARKBreedingStats.settings.customSoundChooser(); this.label20 = new System.Windows.Forms.Label(); this.tabPageOverlay = new System.Windows.Forms.TabPage(); this.groupBox10 = new System.Windows.Forms.GroupBox(); + this.NudOverlayRelativeFontSize = new ARKBreedingStats.uiControls.Nud(); this.label65 = new System.Windows.Forms.Label(); this.CbOverlayDisplayInheritance = new System.Windows.Forms.CheckBox(); this.label45 = new System.Windows.Forms.Label(); this.pCustomOverlayLocation = new System.Windows.Forms.Panel(); + this.nudCustomOverlayLocX = new ARKBreedingStats.uiControls.Nud(); this.label42 = new System.Windows.Forms.Label(); this.label43 = new System.Windows.Forms.Label(); + this.nudCustomOverlayLocY = new ARKBreedingStats.uiControls.Nud(); this.cbCustomOverlayLocation = new System.Windows.Forms.CheckBox(); this.label38 = new System.Windows.Forms.Label(); + this.nudOverlayInfoPosY = new ARKBreedingStats.uiControls.Nud(); this.label39 = new System.Windows.Forms.Label(); + this.nudOverlayInfoPosDFR = new ARKBreedingStats.uiControls.Nud(); this.label40 = new System.Windows.Forms.Label(); this.label37 = new System.Windows.Forms.Label(); + this.nudOverlayTimerPosY = new ARKBreedingStats.uiControls.Nud(); this.label36 = new System.Windows.Forms.Label(); + this.nudOverlayTimerPosX = new ARKBreedingStats.uiControls.Nud(); this.label35 = new System.Windows.Forms.Label(); this.cbInventoryCheck = new System.Windows.Forms.CheckBox(); this.label21 = new System.Windows.Forms.Label(); + this.nudOverlayInfoDuration = new ARKBreedingStats.uiControls.Nud(); this.chkbSpeechRecognition = new System.Windows.Forms.CheckBox(); this.label66 = new System.Windows.Forms.Label(); this.tabPageOCR = new System.Windows.Forms.TabPage(); @@ -276,92 +336,67 @@ private void InitializeComponent() this.label60 = new System.Windows.Forms.Label(); this.label59 = new System.Windows.Forms.Label(); this.label58 = new System.Windows.Forms.Label(); + this.NudOCRClipboardCropHeight = new ARKBreedingStats.uiControls.Nud(); + this.NudOCRClipboardCropWidth = new ARKBreedingStats.uiControls.Nud(); + this.NudOCRClipboardCropTop = new ARKBreedingStats.uiControls.Nud(); + this.NudOCRClipboardCropLeft = new ARKBreedingStats.uiControls.Nud(); this.CbOCRFromClipboard = new System.Windows.Forms.CheckBox(); this.BtGameNameAse = new System.Windows.Forms.Button(); this.cbOCRIgnoreImprintValue = new System.Windows.Forms.CheckBox(); this.cbShowOCRButton = new System.Windows.Forms.CheckBox(); this.label23 = new System.Windows.Forms.Label(); + this.nudWaitBeforeScreenCapture = new ARKBreedingStats.uiControls.Nud(); this.label19 = new System.Windows.Forms.Label(); + this.nudWhiteThreshold = new ARKBreedingStats.uiControls.Nud(); this.tbOCRCaptureApp = new System.Windows.Forms.TextBox(); this.label4 = new System.Windows.Forms.Label(); this.cbbOCRApp = new System.Windows.Forms.ComboBox(); this.label1 = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); this.colorDialog1 = new System.Windows.Forms.ColorDialog(); - this.nudWildLevelStep = new ARKBreedingStats.uiControls.Nud(); - this.nudTamedDinoCharacterFoodDrain = new ARKBreedingStats.uiControls.Nud(); - this.nudTamedDinoCharacterFoodDrainEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyImprintAmountEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyImprintAmount = new ARKBreedingStats.uiControls.Nud(); - this.nudMatingSpeed = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyFoodConsumptionSpeedEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudMatingIntervalEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyCuddleIntervalEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyMatureSpeedEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudEggHatchSpeedEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyFoodConsumptionSpeed = new ARKBreedingStats.uiControls.Nud(); - this.nudMatingInterval = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyCuddleInterval = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyMatureSpeed = new ARKBreedingStats.uiControls.Nud(); - this.nudBabyImprintingStatScale = new ARKBreedingStats.uiControls.Nud(); - this.nudEggHatchSpeed = new ARKBreedingStats.uiControls.Nud(); - this.nudMaxServerLevel = new ARKBreedingStats.uiControls.Nud(); - this.nudMaxGraphLevel = new ARKBreedingStats.uiControls.Nud(); - this.nudMaxWildLevels = new ARKBreedingStats.uiControls.Nud(); - this.nudMaxDomLevels = new ARKBreedingStats.uiControls.Nud(); - this.NudWildDinoCharacterFoodDrainMultiplier = new ARKBreedingStats.uiControls.Nud(); - this.NudWildDinoTorporDrainMultiplier = new ARKBreedingStats.uiControls.Nud(); - this.nudDinoCharacterFoodDrainEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudTamingSpeedEvent = new ARKBreedingStats.uiControls.Nud(); - this.nudDinoCharacterFoodDrain = new ARKBreedingStats.uiControls.Nud(); - this.nudTamingSpeed = new ARKBreedingStats.uiControls.Nud(); - this.NudSpeciesSelectorCountLastUsed = new ARKBreedingStats.uiControls.Nud(); - this.nudDefaultFontSize = new ARKBreedingStats.uiControls.Nud(); - this.nudChartLevelOddMax = new ARKBreedingStats.uiControls.Nud(); - this.nudChartLevelOddMin = new ARKBreedingStats.uiControls.Nud(); - this.nudChartLevelEvenMax = new ARKBreedingStats.uiControls.Nud(); - this.nudChartLevelEvenMin = new ARKBreedingStats.uiControls.Nud(); - this.numericUpDownMaxBreedingSug = new ARKBreedingStats.uiControls.Nud(); - this.NudWaitBeforeAutoLoad = new ARKBreedingStats.uiControls.Nud(); - this.NudKeepBackupFilesCount = new ARKBreedingStats.uiControls.Nud(); - this.NudBackupEveryMinutes = new ARKBreedingStats.uiControls.Nud(); - this.nudInfoGraphicHeight = new ARKBreedingStats.uiControls.Nud(); - this.convenientNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.serverNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.fileLocationDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.aTImportFileLocationBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.fileSelectorExtractedSaveFolder = new ARKBreedingStats.uiControls.FileSelector(); - this.nudImportLowerBoundTE = new ARKBreedingStats.uiControls.Nud(); - this.convenientNameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ownerSuffixDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.folderPathDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.aTExportFolderLocationsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.customSCCustom = new ARKBreedingStats.settings.customSoundChooser(); - this.customSCWakeup = new ARKBreedingStats.settings.customSoundChooser(); - this.customSCBirth = new ARKBreedingStats.settings.customSoundChooser(); - this.customSCStarving = new ARKBreedingStats.settings.customSoundChooser(); - this.NudOverlayRelativeFontSize = new ARKBreedingStats.uiControls.Nud(); - this.nudCustomOverlayLocX = new ARKBreedingStats.uiControls.Nud(); - this.nudCustomOverlayLocY = new ARKBreedingStats.uiControls.Nud(); - this.nudOverlayInfoPosY = new ARKBreedingStats.uiControls.Nud(); - this.nudOverlayInfoPosDFR = new ARKBreedingStats.uiControls.Nud(); - this.nudOverlayTimerPosY = new ARKBreedingStats.uiControls.Nud(); - this.nudOverlayTimerPosX = new ARKBreedingStats.uiControls.Nud(); - this.nudOverlayInfoDuration = new ARKBreedingStats.uiControls.Nud(); - this.NudOCRClipboardCropHeight = new ARKBreedingStats.uiControls.Nud(); - this.NudOCRClipboardCropWidth = new ARKBreedingStats.uiControls.Nud(); - this.NudOCRClipboardCropTop = new ARKBreedingStats.uiControls.Nud(); - this.NudOCRClipboardCropLeft = new ARKBreedingStats.uiControls.Nud(); - this.nudWaitBeforeScreenCapture = new ARKBreedingStats.uiControls.Nud(); - this.nudWhiteThreshold = new ARKBreedingStats.uiControls.Nud(); + this.CbLibraryDisplayZeroMutationLevels = new System.Windows.Forms.CheckBox(); this.groupBoxMultiplier.SuspendLayout(); this.groupBox2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrainEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmountEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingSpeed)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeedEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingIntervalEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleIntervalEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeedEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeedEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeed)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingInterval)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleInterval)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeed)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintingStatScale)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeed)).BeginInit(); this.groupBox3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxServerLevel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxGraphLevel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxWildLevels)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxDomLevels)).BeginInit(); this.groupBox4.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbChartOddRange)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pbChartEvenRange)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxBreedingSug)).BeginInit(); this.groupBox5.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoCharacterFoodDrainMultiplier)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoTorporDrainMultiplier)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrainEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeedEvent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrain)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeed)).BeginInit(); this.groupBox6.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NudWaitBeforeAutoLoad)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudKeepBackupFilesCount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudBackupEveryMinutes)).BeginInit(); this.groupBox7.SuspendLayout(); this.tabControlSettings.SuspendLayout(); this.tabPageMultipliers.SuspendLayout(); @@ -369,28 +404,34 @@ private void InitializeComponent() this.groupBox29.SuspendLayout(); this.groupBox18.SuspendLayout(); this.groupBox11.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudWildLevelStep)).BeginInit(); this.tabPageGeneral.SuspendLayout(); this.groupBox31.SuspendLayout(); this.groupBox30.SuspendLayout(); this.GbImgCacheLocalAppData.SuspendLayout(); this.groupBox16.SuspendLayout(); this.GbSpecies.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NudSpeciesSelectorCountLastUsed)).BeginInit(); this.groupBox26.SuspendLayout(); this.groupBox25.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudDefaultFontSize)).BeginInit(); this.groupBox20.SuspendLayout(); this.groupBox17.SuspendLayout(); this.groupBox9.SuspendLayout(); this.tabPageInfoGraphic.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.PbInfoGraphicPreview)).BeginInit(); this.groupBox32.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudInfoGraphicHeight)).BeginInit(); this.groupBox28.SuspendLayout(); this.tabPageImportSavegame.SuspendLayout(); + this.groupBox14.SuspendLayout(); this.groupBox15.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView_FileLocations)).BeginInit(); - this.groupBox14.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.aTImportFileLocationBindingSource)).BeginInit(); this.tabPageImportExported.SuspendLayout(); this.groupBox27.SuspendLayout(); this.groupBox23.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudImportLowerBoundTE)).BeginInit(); this.groupBox22.SuspendLayout(); this.panel2.SuspendLayout(); this.groupBox21.SuspendLayout(); @@ -398,57 +439,14 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.nudWarnImportMoreThan)).BeginInit(); this.groupBox13.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridViewExportFolders)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.aTExportFolderLocationsBindingSource)).BeginInit(); this.tabPageTimers.SuspendLayout(); this.groupBox24.SuspendLayout(); this.groupBox8.SuspendLayout(); this.tabPageOverlay.SuspendLayout(); this.groupBox10.SuspendLayout(); - this.pCustomOverlayLocation.SuspendLayout(); - this.tabPageOCR.SuspendLayout(); - this.groupBox1.SuspendLayout(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudWildLevelStep)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrainEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmountEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmount)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingSpeed)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeedEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingIntervalEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleIntervalEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeedEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeedEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeed)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingInterval)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleInterval)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeed)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintingStatScale)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeed)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxServerLevel)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxGraphLevel)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxWildLevels)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxDomLevels)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoCharacterFoodDrainMultiplier)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoTorporDrainMultiplier)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrainEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeedEvent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrain)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeed)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudSpeciesSelectorCountLastUsed)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDefaultFontSize)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMax)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMin)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMax)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMin)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxBreedingSug)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudWaitBeforeAutoLoad)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudKeepBackupFilesCount)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudBackupEveryMinutes)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudInfoGraphicHeight)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.aTImportFileLocationBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudImportLowerBoundTE)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.aTExportFolderLocationsBindingSource)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOverlayRelativeFontSize)).BeginInit(); + this.pCustomOverlayLocation.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.nudCustomOverlayLocX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudCustomOverlayLocY)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayInfoPosY)).BeginInit(); @@ -456,12 +454,15 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.nudOverlayTimerPosY)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayTimerPosX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayInfoDuration)).BeginInit(); + this.tabPageOCR.SuspendLayout(); + this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropHeight)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropWidth)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropTop)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropLeft)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudWaitBeforeScreenCapture)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudWhiteThreshold)).BeginInit(); + this.panel1.SuspendLayout(); this.SuspendLayout(); // // groupBoxMultiplier @@ -639,3523 +640,2976 @@ private void InitializeComponent() this.groupBox2.TabStop = false; this.groupBox2.Text = "Breeding-Multiplier"; // - // label64 - // - this.label64.AutoSize = true; - this.label64.Location = new System.Drawing.Point(10, 229); - this.label64.Name = "label64"; - this.label64.Size = new System.Drawing.Size(177, 13); - this.label64.TabIndex = 22; - this.label64.Text = "TamedDinoCharacterFoodDrainMult"; - // - // label49 - // - this.label49.AutoSize = true; - this.label49.Location = new System.Drawing.Point(10, 151); - this.label49.Name = "label49"; - this.label49.Size = new System.Drawing.Size(139, 13); - this.label49.TabIndex = 20; - this.label49.Text = "BabyImprintAmountMultiplier"; - // - // label44 + // nudTamedDinoCharacterFoodDrain // - this.label44.AutoSize = true; - this.label44.Location = new System.Drawing.Point(10, 21); - this.label44.Name = "label44"; - this.label44.Size = new System.Drawing.Size(111, 13); - this.label44.TabIndex = 18; - this.label44.Text = "MatingSpeedMultiplier"; - // - // labelBabyFoodConsumptionSpeed + this.nudTamedDinoCharacterFoodDrain.DecimalPlaces = 6; + this.nudTamedDinoCharacterFoodDrain.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudTamedDinoCharacterFoodDrain.Location = new System.Drawing.Point(183, 227); + this.nudTamedDinoCharacterFoodDrain.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudTamedDinoCharacterFoodDrain.Name = "nudTamedDinoCharacterFoodDrain"; + this.nudTamedDinoCharacterFoodDrain.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudTamedDinoCharacterFoodDrain.Size = new System.Drawing.Size(72, 20); + this.nudTamedDinoCharacterFoodDrain.TabIndex = 21; + this.nudTamedDinoCharacterFoodDrain.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.labelBabyFoodConsumptionSpeed.AutoSize = true; - this.labelBabyFoodConsumptionSpeed.Location = new System.Drawing.Point(10, 203); - this.labelBabyFoodConsumptionSpeed.Name = "labelBabyFoodConsumptionSpeed"; - this.labelBabyFoodConsumptionSpeed.Size = new System.Drawing.Size(167, 13); - this.labelBabyFoodConsumptionSpeed.TabIndex = 10; - this.labelBabyFoodConsumptionSpeed.Text = "BabyFoodConsumptionSpeedMult"; + // nudTamedDinoCharacterFoodDrainEvent // - // label3 + this.nudTamedDinoCharacterFoodDrainEvent.DecimalPlaces = 6; + this.nudTamedDinoCharacterFoodDrainEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudTamedDinoCharacterFoodDrainEvent.Location = new System.Drawing.Point(263, 227); + this.nudTamedDinoCharacterFoodDrainEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudTamedDinoCharacterFoodDrainEvent.Name = "nudTamedDinoCharacterFoodDrainEvent"; + this.nudTamedDinoCharacterFoodDrainEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudTamedDinoCharacterFoodDrainEvent.Size = new System.Drawing.Size(72, 20); + this.nudTamedDinoCharacterFoodDrainEvent.TabIndex = 23; + this.nudTamedDinoCharacterFoodDrainEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(10, 47); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(115, 13); - this.label3.TabIndex = 8; - this.label3.Text = "MatingIntervalMultiplier"; + // label64 // - // label17 + this.label64.AutoSize = true; + this.label64.Location = new System.Drawing.Point(10, 229); + this.label64.Name = "label64"; + this.label64.Size = new System.Drawing.Size(177, 13); + this.label64.TabIndex = 22; + this.label64.Text = "TamedDinoCharacterFoodDrainMult"; // - this.label17.AutoSize = true; - this.label17.Location = new System.Drawing.Point(10, 125); - this.label17.Name = "label17"; - this.label17.Size = new System.Drawing.Size(140, 13); - this.label17.TabIndex = 6; - this.label17.Text = "BabyCuddleIntervalMultiplier"; + // nudBabyImprintAmountEvent // - // label13 + this.nudBabyImprintAmountEvent.DecimalPlaces = 6; + this.nudBabyImprintAmountEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyImprintAmountEvent.Location = new System.Drawing.Point(263, 149); + this.nudBabyImprintAmountEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyImprintAmountEvent.Name = "nudBabyImprintAmountEvent"; + this.nudBabyImprintAmountEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyImprintAmountEvent.Size = new System.Drawing.Size(72, 20); + this.nudBabyImprintAmountEvent.TabIndex = 12; + this.nudBabyImprintAmountEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(10, 177); - this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(163, 13); - this.label13.TabIndex = 4; - this.label13.Text = "BabyImprintingStatScaleMultiplier"; + // label49 // - // label9 + this.label49.AutoSize = true; + this.label49.Location = new System.Drawing.Point(10, 151); + this.label49.Name = "label49"; + this.label49.Size = new System.Drawing.Size(139, 13); + this.label49.TabIndex = 20; + this.label49.Text = "BabyImprintAmountMultiplier"; // - this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(10, 99); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(136, 13); - this.label9.TabIndex = 2; - this.label9.Text = "BabyMatureSpeedMultiplier"; + // nudBabyImprintAmount // - // label8 + this.nudBabyImprintAmount.DecimalPlaces = 6; + this.nudBabyImprintAmount.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyImprintAmount.Location = new System.Drawing.Point(183, 149); + this.nudBabyImprintAmount.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyImprintAmount.Name = "nudBabyImprintAmount"; + this.nudBabyImprintAmount.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyImprintAmount.Size = new System.Drawing.Size(72, 20); + this.nudBabyImprintAmount.TabIndex = 5; + this.nudBabyImprintAmount.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(10, 73); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(127, 13); - this.label8.TabIndex = 0; - this.label8.Text = "EggHatchSpeedMultiplier"; + // label44 // - // groupBox3 + this.label44.AutoSize = true; + this.label44.Location = new System.Drawing.Point(10, 21); + this.label44.Name = "label44"; + this.label44.Size = new System.Drawing.Size(111, 13); + this.label44.TabIndex = 18; + this.label44.Text = "MatingSpeedMultiplier"; // - this.groupBox3.Controls.Add(this.LbDefaultLevelups); - this.groupBox3.Controls.Add(this.nudMaxServerLevel); - this.groupBox3.Controls.Add(this.lbMaxTotalLevel); - this.groupBox3.Controls.Add(this.nudMaxGraphLevel); - this.groupBox3.Controls.Add(this.label18); - this.groupBox3.Controls.Add(this.label11); - this.groupBox3.Controls.Add(this.nudMaxWildLevels); - this.groupBox3.Controls.Add(this.label10); - this.groupBox3.Controls.Add(this.nudMaxDomLevels); - this.groupBox3.Location = new System.Drawing.Point(394, 6); - this.groupBox3.Name = "groupBox3"; - this.groupBox3.Size = new System.Drawing.Size(345, 127); - this.groupBox3.TabIndex = 5; - this.groupBox3.TabStop = false; - this.groupBox3.Text = "Maximum Levels on Server"; + // nudMatingSpeed // - // LbDefaultLevelups + this.nudMatingSpeed.DecimalPlaces = 6; + this.nudMatingSpeed.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudMatingSpeed.Location = new System.Drawing.Point(183, 19); + this.nudMatingSpeed.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudMatingSpeed.Name = "nudMatingSpeed"; + this.nudMatingSpeed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMatingSpeed.Size = new System.Drawing.Size(72, 20); + this.nudMatingSpeed.TabIndex = 0; + this.nudMatingSpeed.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.LbDefaultLevelups.AutoSize = true; - this.LbDefaultLevelups.Location = new System.Drawing.Point(246, 47); - this.LbDefaultLevelups.Name = "LbDefaultLevelups"; - this.LbDefaultLevelups.Size = new System.Drawing.Size(0, 13); - this.LbDefaultLevelups.TabIndex = 13; + // nudBabyFoodConsumptionSpeedEvent // - // lbMaxTotalLevel + this.nudBabyFoodConsumptionSpeedEvent.DecimalPlaces = 6; + this.nudBabyFoodConsumptionSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyFoodConsumptionSpeedEvent.Location = new System.Drawing.Point(263, 201); + this.nudBabyFoodConsumptionSpeedEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyFoodConsumptionSpeedEvent.Name = "nudBabyFoodConsumptionSpeedEvent"; + this.nudBabyFoodConsumptionSpeedEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyFoodConsumptionSpeedEvent.Size = new System.Drawing.Size(72, 20); + this.nudBabyFoodConsumptionSpeedEvent.TabIndex = 13; + this.nudBabyFoodConsumptionSpeedEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.lbMaxTotalLevel.AutoSize = true; - this.lbMaxTotalLevel.Location = new System.Drawing.Point(10, 99); - this.lbMaxTotalLevel.Name = "lbMaxTotalLevel"; - this.lbMaxTotalLevel.Size = new System.Drawing.Size(143, 13); - this.lbMaxTotalLevel.TabIndex = 12; - this.lbMaxTotalLevel.Text = "Max Total Level (0: disabled)"; + // nudMatingIntervalEvent // - // label18 + this.nudMatingIntervalEvent.DecimalPlaces = 6; + this.nudMatingIntervalEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudMatingIntervalEvent.Location = new System.Drawing.Point(263, 45); + this.nudMatingIntervalEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudMatingIntervalEvent.Name = "nudMatingIntervalEvent"; + this.nudMatingIntervalEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMatingIntervalEvent.Size = new System.Drawing.Size(72, 20); + this.nudMatingIntervalEvent.TabIndex = 8; + this.nudMatingIntervalEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.label18.AutoSize = true; - this.label18.Location = new System.Drawing.Point(10, 73); - this.label18.Name = "label18"; - this.label18.Size = new System.Drawing.Size(88, 13); - this.label18.TabIndex = 10; - this.label18.Text = "Max Graph Level"; + // nudBabyCuddleIntervalEvent // - // label11 + this.nudBabyCuddleIntervalEvent.DecimalPlaces = 6; + this.nudBabyCuddleIntervalEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyCuddleIntervalEvent.Location = new System.Drawing.Point(263, 123); + this.nudBabyCuddleIntervalEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyCuddleIntervalEvent.Name = "nudBabyCuddleIntervalEvent"; + this.nudBabyCuddleIntervalEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyCuddleIntervalEvent.Size = new System.Drawing.Size(72, 20); + this.nudBabyCuddleIntervalEvent.TabIndex = 11; + this.nudBabyCuddleIntervalEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(10, 21); - this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(80, 13); - this.label11.TabIndex = 0; - this.label11.Text = "Max Wild Level"; + // nudBabyMatureSpeedEvent // - // label10 + this.nudBabyMatureSpeedEvent.DecimalPlaces = 6; + this.nudBabyMatureSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyMatureSpeedEvent.Location = new System.Drawing.Point(263, 97); + this.nudBabyMatureSpeedEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyMatureSpeedEvent.Name = "nudBabyMatureSpeedEvent"; + this.nudBabyMatureSpeedEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyMatureSpeedEvent.Size = new System.Drawing.Size(72, 20); + this.nudBabyMatureSpeedEvent.TabIndex = 10; + this.nudBabyMatureSpeedEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(10, 47); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(109, 13); - this.label10.TabIndex = 2; - this.label10.Text = "Max Tamed Levelups"; + // nudEggHatchSpeedEvent // - // groupBox4 + this.nudEggHatchSpeedEvent.DecimalPlaces = 6; + this.nudEggHatchSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudEggHatchSpeedEvent.Location = new System.Drawing.Point(263, 71); + this.nudEggHatchSpeedEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudEggHatchSpeedEvent.Name = "nudEggHatchSpeedEvent"; + this.nudEggHatchSpeedEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudEggHatchSpeedEvent.Size = new System.Drawing.Size(72, 20); + this.nudEggHatchSpeedEvent.TabIndex = 9; + this.nudEggHatchSpeedEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.groupBox4.Controls.Add(this.label57); - this.groupBox4.Controls.Add(this.label56); - this.groupBox4.Controls.Add(this.pbChartOddRange); - this.groupBox4.Controls.Add(this.pbChartEvenRange); - this.groupBox4.Controls.Add(this.nudChartLevelOddMax); - this.groupBox4.Controls.Add(this.nudChartLevelOddMin); - this.groupBox4.Controls.Add(this.nudChartLevelEvenMax); - this.groupBox4.Controls.Add(this.nudChartLevelEvenMin); - this.groupBox4.Controls.Add(this.CbHighlightLevelEvenOdd); - this.groupBox4.Controls.Add(this.CbHighlightLevel255); - this.groupBox4.Controls.Add(this.cbIgnoreSexInBreedingPlan); - this.groupBox4.Controls.Add(this.label16); - this.groupBox4.Controls.Add(this.radioButtonFahrenheit); - this.groupBox4.Controls.Add(this.radioButtonCelsius); - this.groupBox4.Controls.Add(this.label12); - this.groupBox4.Controls.Add(this.numericUpDownMaxBreedingSug); - this.groupBox4.Location = new System.Drawing.Point(6, 233); - this.groupBox4.Name = "groupBox4"; - this.groupBox4.Size = new System.Drawing.Size(317, 172); - this.groupBox4.TabIndex = 1; - this.groupBox4.TabStop = false; - this.groupBox4.Text = "Breeding Planner"; + // labelBabyFoodConsumptionSpeed // - // label57 + this.labelBabyFoodConsumptionSpeed.AutoSize = true; + this.labelBabyFoodConsumptionSpeed.Location = new System.Drawing.Point(10, 203); + this.labelBabyFoodConsumptionSpeed.Name = "labelBabyFoodConsumptionSpeed"; + this.labelBabyFoodConsumptionSpeed.Size = new System.Drawing.Size(167, 13); + this.labelBabyFoodConsumptionSpeed.TabIndex = 10; + this.labelBabyFoodConsumptionSpeed.Text = "BabyFoodConsumptionSpeedMult"; // - this.label57.AutoSize = true; - this.label57.Location = new System.Drawing.Point(6, 139); - this.label57.Name = "label57"; - this.label57.Size = new System.Drawing.Size(31, 26); - this.label57.TabIndex = 15; - this.label57.Text = "hue\r\neven"; + // nudBabyFoodConsumptionSpeed // - // label56 + this.nudBabyFoodConsumptionSpeed.DecimalPlaces = 6; + this.nudBabyFoodConsumptionSpeed.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyFoodConsumptionSpeed.Location = new System.Drawing.Point(183, 201); + this.nudBabyFoodConsumptionSpeed.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyFoodConsumptionSpeed.Name = "nudBabyFoodConsumptionSpeed"; + this.nudBabyFoodConsumptionSpeed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyFoodConsumptionSpeed.Size = new System.Drawing.Size(72, 20); + this.nudBabyFoodConsumptionSpeed.TabIndex = 7; + this.nudBabyFoodConsumptionSpeed.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.label56.AutoSize = true; - this.label56.Location = new System.Drawing.Point(178, 139); - this.label56.Name = "label56"; - this.label56.Size = new System.Drawing.Size(25, 26); - this.label56.TabIndex = 14; - this.label56.Text = "hue\r\nodd"; + // label3 // - // pbChartOddRange + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(10, 47); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(115, 13); + this.label3.TabIndex = 8; + this.label3.Text = "MatingIntervalMultiplier"; // - this.pbChartOddRange.Location = new System.Drawing.Point(209, 158); - this.pbChartOddRange.Name = "pbChartOddRange"; - this.pbChartOddRange.Size = new System.Drawing.Size(100, 10); - this.pbChartOddRange.TabIndex = 13; - this.pbChartOddRange.TabStop = false; + // nudMatingInterval // - // pbChartEvenRange + this.nudMatingInterval.DecimalPlaces = 6; + this.nudMatingInterval.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudMatingInterval.Location = new System.Drawing.Point(183, 45); + this.nudMatingInterval.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudMatingInterval.Name = "nudMatingInterval"; + this.nudMatingInterval.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMatingInterval.Size = new System.Drawing.Size(72, 20); + this.nudMatingInterval.TabIndex = 1; + this.nudMatingInterval.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.pbChartEvenRange.Location = new System.Drawing.Point(43, 158); - this.pbChartEvenRange.Name = "pbChartEvenRange"; - this.pbChartEvenRange.Size = new System.Drawing.Size(100, 10); - this.pbChartEvenRange.TabIndex = 12; - this.pbChartEvenRange.TabStop = false; + // label17 // - // CbHighlightLevelEvenOdd + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(10, 125); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(140, 13); + this.label17.TabIndex = 6; + this.label17.Text = "BabyCuddleIntervalMultiplier"; // - this.CbHighlightLevelEvenOdd.AutoSize = true; - this.CbHighlightLevelEvenOdd.Location = new System.Drawing.Point(6, 114); - this.CbHighlightLevelEvenOdd.Name = "CbHighlightLevelEvenOdd"; - this.CbHighlightLevelEvenOdd.Size = new System.Drawing.Size(156, 17); - this.CbHighlightLevelEvenOdd.TabIndex = 7; - this.CbHighlightLevelEvenOdd.Text = "Highlight even / odd levels"; - this.CbHighlightLevelEvenOdd.UseVisualStyleBackColor = true; + // nudBabyCuddleInterval // - // CbHighlightLevel255 + this.nudBabyCuddleInterval.DecimalPlaces = 6; + this.nudBabyCuddleInterval.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyCuddleInterval.Location = new System.Drawing.Point(183, 123); + this.nudBabyCuddleInterval.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyCuddleInterval.Name = "nudBabyCuddleInterval"; + this.nudBabyCuddleInterval.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyCuddleInterval.Size = new System.Drawing.Size(72, 20); + this.nudBabyCuddleInterval.TabIndex = 4; + this.nudBabyCuddleInterval.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.CbHighlightLevel255.AutoSize = true; - this.CbHighlightLevel255.Location = new System.Drawing.Point(6, 91); - this.CbHighlightLevel255.Name = "CbHighlightLevel255"; - this.CbHighlightLevel255.Size = new System.Drawing.Size(159, 17); - this.CbHighlightLevel255.TabIndex = 6; - this.CbHighlightLevel255.Text = "Highlight Level 254 and 255"; - this.CbHighlightLevel255.UseVisualStyleBackColor = true; + // label13 // - // cbIgnoreSexInBreedingPlan + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(10, 177); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(163, 13); + this.label13.TabIndex = 4; + this.label13.Text = "BabyImprintingStatScaleMultiplier"; // - this.cbIgnoreSexInBreedingPlan.AutoSize = true; - this.cbIgnoreSexInBreedingPlan.Location = new System.Drawing.Point(6, 68); - this.cbIgnoreSexInBreedingPlan.Name = "cbIgnoreSexInBreedingPlan"; - this.cbIgnoreSexInBreedingPlan.Size = new System.Drawing.Size(157, 17); - this.cbIgnoreSexInBreedingPlan.TabIndex = 5; - this.cbIgnoreSexInBreedingPlan.Text = "Ignore Sex in Breeding-Plan"; - this.cbIgnoreSexInBreedingPlan.UseVisualStyleBackColor = true; + // label9 // - // label16 + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(10, 99); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(136, 13); + this.label9.TabIndex = 2; + this.label9.Text = "BabyMatureSpeedMultiplier"; // - this.label16.AutoSize = true; - this.label16.Location = new System.Drawing.Point(10, 47); - this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(67, 13); - this.label16.TabIndex = 2; - this.label16.Text = "Temperature"; + // nudBabyMatureSpeed // - // radioButtonFahrenheit + this.nudBabyMatureSpeed.DecimalPlaces = 6; + this.nudBabyMatureSpeed.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyMatureSpeed.Location = new System.Drawing.Point(183, 97); + this.nudBabyMatureSpeed.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyMatureSpeed.Name = "nudBabyMatureSpeed"; + this.nudBabyMatureSpeed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyMatureSpeed.Size = new System.Drawing.Size(72, 20); + this.nudBabyMatureSpeed.TabIndex = 3; + this.nudBabyMatureSpeed.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.radioButtonFahrenheit.AutoSize = true; - this.radioButtonFahrenheit.Location = new System.Drawing.Point(276, 45); - this.radioButtonFahrenheit.Name = "radioButtonFahrenheit"; - this.radioButtonFahrenheit.Size = new System.Drawing.Size(35, 17); - this.radioButtonFahrenheit.TabIndex = 4; - this.radioButtonFahrenheit.Text = "°F"; - this.radioButtonFahrenheit.UseVisualStyleBackColor = true; + // nudBabyImprintingStatScale // - // radioButtonCelsius + this.nudBabyImprintingStatScale.DecimalPlaces = 6; + this.nudBabyImprintingStatScale.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudBabyImprintingStatScale.Location = new System.Drawing.Point(183, 175); + this.nudBabyImprintingStatScale.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudBabyImprintingStatScale.Name = "nudBabyImprintingStatScale"; + this.nudBabyImprintingStatScale.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudBabyImprintingStatScale.Size = new System.Drawing.Size(72, 20); + this.nudBabyImprintingStatScale.TabIndex = 6; + this.nudBabyImprintingStatScale.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.radioButtonCelsius.AutoSize = true; - this.radioButtonCelsius.Checked = true; - this.radioButtonCelsius.Location = new System.Drawing.Point(234, 45); - this.radioButtonCelsius.Name = "radioButtonCelsius"; - this.radioButtonCelsius.Size = new System.Drawing.Size(36, 17); - this.radioButtonCelsius.TabIndex = 3; - this.radioButtonCelsius.TabStop = true; - this.radioButtonCelsius.Text = "°C"; - this.radioButtonCelsius.UseVisualStyleBackColor = true; + // label8 // - // label12 + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(10, 73); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(127, 13); + this.label8.TabIndex = 0; + this.label8.Text = "EggHatchSpeedMultiplier"; // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(10, 21); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(154, 13); - this.label12.TabIndex = 0; - this.label12.Text = "Max Breeding Pair Suggestions"; + // nudEggHatchSpeed // - // groupBox5 + this.nudEggHatchSpeed.DecimalPlaces = 6; + this.nudEggHatchSpeed.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudEggHatchSpeed.Location = new System.Drawing.Point(183, 71); + this.nudEggHatchSpeed.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudEggHatchSpeed.Name = "nudEggHatchSpeed"; + this.nudEggHatchSpeed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudEggHatchSpeed.Size = new System.Drawing.Size(72, 20); + this.nudEggHatchSpeed.TabIndex = 2; + this.nudEggHatchSpeed.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.groupBox5.Controls.Add(this.NudWildDinoCharacterFoodDrainMultiplier); - this.groupBox5.Controls.Add(this.label69); - this.groupBox5.Controls.Add(this.label67); - this.groupBox5.Controls.Add(this.NudWildDinoTorporDrainMultiplier); - this.groupBox5.Controls.Add(this.nudDinoCharacterFoodDrainEvent); - this.groupBox5.Controls.Add(this.nudTamingSpeedEvent); - this.groupBox5.Controls.Add(this.label7); - this.groupBox5.Controls.Add(this.label14); - this.groupBox5.Controls.Add(this.nudDinoCharacterFoodDrain); - this.groupBox5.Controls.Add(this.nudTamingSpeed); - this.groupBox5.Location = new System.Drawing.Point(394, 158); - this.groupBox5.Name = "groupBox5"; - this.groupBox5.Size = new System.Drawing.Size(345, 126); - this.groupBox5.TabIndex = 6; - this.groupBox5.TabStop = false; - this.groupBox5.Text = "Taming-Multiplier"; + // groupBox3 // - // label69 + this.groupBox3.Controls.Add(this.LbDefaultLevelups); + this.groupBox3.Controls.Add(this.nudMaxServerLevel); + this.groupBox3.Controls.Add(this.lbMaxTotalLevel); + this.groupBox3.Controls.Add(this.nudMaxGraphLevel); + this.groupBox3.Controls.Add(this.label18); + this.groupBox3.Controls.Add(this.label11); + this.groupBox3.Controls.Add(this.nudMaxWildLevels); + this.groupBox3.Controls.Add(this.label10); + this.groupBox3.Controls.Add(this.nudMaxDomLevels); + this.groupBox3.Location = new System.Drawing.Point(394, 6); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(345, 127); + this.groupBox3.TabIndex = 5; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Maximum Levels on Server"; // - this.label69.AutoSize = true; - this.label69.Location = new System.Drawing.Point(10, 73); - this.label69.Name = "label69"; - this.label69.Size = new System.Drawing.Size(186, 13); - this.label69.TabIndex = 7; - this.label69.Text = "WildDinoCharacterFoodDrainMultiplier"; + // LbDefaultLevelups // - // label67 + this.LbDefaultLevelups.AutoSize = true; + this.LbDefaultLevelups.Location = new System.Drawing.Point(246, 47); + this.LbDefaultLevelups.Name = "LbDefaultLevelups"; + this.LbDefaultLevelups.Size = new System.Drawing.Size(0, 13); + this.LbDefaultLevelups.TabIndex = 13; // - this.label67.AutoSize = true; - this.label67.Location = new System.Drawing.Point(10, 99); - this.label67.Name = "label67"; - this.label67.Size = new System.Drawing.Size(147, 13); - this.label67.TabIndex = 5; - this.label67.Text = "WildDinoTorporDrainMultiplier"; + // nudMaxServerLevel // - // label7 + this.nudMaxServerLevel.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudMaxServerLevel.Location = new System.Drawing.Point(183, 97); + this.nudMaxServerLevel.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudMaxServerLevel.Name = "nudMaxServerLevel"; + this.nudMaxServerLevel.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMaxServerLevel.Size = new System.Drawing.Size(57, 20); + this.nudMaxServerLevel.TabIndex = 3; // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(10, 47); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(165, 13); - this.label7.TabIndex = 2; - this.label7.Text = "DinoCharacterFoodDrainMultiplier"; + // lbMaxTotalLevel // - // label14 + this.lbMaxTotalLevel.AutoSize = true; + this.lbMaxTotalLevel.Location = new System.Drawing.Point(10, 99); + this.lbMaxTotalLevel.Name = "lbMaxTotalLevel"; + this.lbMaxTotalLevel.Size = new System.Drawing.Size(143, 13); + this.lbMaxTotalLevel.TabIndex = 12; + this.lbMaxTotalLevel.Text = "Max Total Level (0: disabled)"; // - this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(10, 21); - this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(114, 13); - this.label14.TabIndex = 0; - this.label14.Text = "TamingSpeedMultiplier"; + // nudMaxGraphLevel // - // label15 + this.nudMaxGraphLevel.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudMaxGraphLevel.Location = new System.Drawing.Point(183, 71); + this.nudMaxGraphLevel.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudMaxGraphLevel.Name = "nudMaxGraphLevel"; + this.nudMaxGraphLevel.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMaxGraphLevel.Size = new System.Drawing.Size(57, 20); + this.nudMaxGraphLevel.TabIndex = 2; // - this.label15.Location = new System.Drawing.Point(450, 548); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(289, 77); - this.label15.TabIndex = 9; - this.label15.Text = resources.GetString("label15.Text"); + // label18 // - // groupBox6 + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(10, 73); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(88, 13); + this.label18.TabIndex = 10; + this.label18.Text = "Max Graph Level"; // - this.groupBox6.Controls.Add(this.label55); - this.groupBox6.Controls.Add(this.NudWaitBeforeAutoLoad); - this.groupBox6.Controls.Add(this.label54); - this.groupBox6.Controls.Add(this.NudKeepBackupFilesCount); - this.groupBox6.Controls.Add(this.label53); - this.groupBox6.Controls.Add(this.BtClearBackupFolder); - this.groupBox6.Controls.Add(this.label52); - this.groupBox6.Controls.Add(this.BtBackupFolder); - this.groupBox6.Controls.Add(this.label2); - this.groupBox6.Controls.Add(this.label5); - this.groupBox6.Controls.Add(this.checkBoxAutoSave); - this.groupBox6.Controls.Add(this.chkCollectionSync); - this.groupBox6.Controls.Add(this.label6); - this.groupBox6.Controls.Add(this.NudBackupEveryMinutes); - this.groupBox6.Location = new System.Drawing.Point(6, 6); - this.groupBox6.Name = "groupBox6"; - this.groupBox6.Size = new System.Drawing.Size(317, 221); - this.groupBox6.TabIndex = 0; - this.groupBox6.TabStop = false; - this.groupBox6.Text = "Save / Load"; + // label11 // - // label55 + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(10, 21); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(80, 13); + this.label11.TabIndex = 0; + this.label11.Text = "Max Wild Level"; // - this.label55.AutoSize = true; - this.label55.Location = new System.Drawing.Point(193, 20); - this.label55.Name = "label55"; - this.label55.Size = new System.Drawing.Size(118, 13); - this.label55.TabIndex = 13; - this.label55.Text = "wait before loading [ms]"; - // - // label54 - // - this.label54.AutoSize = true; - this.label54.Location = new System.Drawing.Point(110, 120); - this.label54.Name = "label54"; - this.label54.Size = new System.Drawing.Size(171, 13); - this.label54.TabIndex = 5; - this.label54.Text = "backup files (0 to disable backups)"; + // nudMaxWildLevels // - // label53 + this.nudMaxWildLevels.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudMaxWildLevels.Location = new System.Drawing.Point(183, 19); + this.nudMaxWildLevels.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudMaxWildLevels.Name = "nudMaxWildLevels"; + this.nudMaxWildLevels.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMaxWildLevels.Size = new System.Drawing.Size(57, 20); + this.nudMaxWildLevels.TabIndex = 0; // - this.label53.AutoSize = true; - this.label53.Location = new System.Drawing.Point(6, 120); - this.label53.Name = "label53"; - this.label53.Size = new System.Drawing.Size(32, 13); - this.label53.TabIndex = 3; - this.label53.Text = "Keep"; + // label10 // - // BtClearBackupFolder + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(10, 47); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(109, 13); + this.label10.TabIndex = 2; + this.label10.Text = "Max Tamed Levelups"; // - this.BtClearBackupFolder.Location = new System.Drawing.Point(288, 191); - this.BtClearBackupFolder.Name = "BtClearBackupFolder"; - this.BtClearBackupFolder.Size = new System.Drawing.Size(23, 23); - this.BtClearBackupFolder.TabIndex = 11; - this.BtClearBackupFolder.Text = "×"; - this.BtClearBackupFolder.UseVisualStyleBackColor = true; - this.BtClearBackupFolder.Click += new System.EventHandler(this.BtClearBackupFolder_Click); + // nudMaxDomLevels // - // label52 + this.nudMaxDomLevels.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudMaxDomLevels.Location = new System.Drawing.Point(183, 45); + this.nudMaxDomLevels.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudMaxDomLevels.Name = "nudMaxDomLevels"; + this.nudMaxDomLevels.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudMaxDomLevels.Size = new System.Drawing.Size(57, 20); + this.nudMaxDomLevels.TabIndex = 1; // - this.label52.AutoSize = true; - this.label52.Location = new System.Drawing.Point(6, 175); - this.label52.Name = "label52"; - this.label52.Size = new System.Drawing.Size(308, 13); - this.label52.TabIndex = 9; - this.label52.Text = "Global backup folder (if emtpy, the folder of the save file is used)"; + // groupBox4 // - // BtBackupFolder + this.groupBox4.Controls.Add(this.label57); + this.groupBox4.Controls.Add(this.label56); + this.groupBox4.Controls.Add(this.pbChartOddRange); + this.groupBox4.Controls.Add(this.pbChartEvenRange); + this.groupBox4.Controls.Add(this.nudChartLevelOddMax); + this.groupBox4.Controls.Add(this.nudChartLevelOddMin); + this.groupBox4.Controls.Add(this.nudChartLevelEvenMax); + this.groupBox4.Controls.Add(this.nudChartLevelEvenMin); + this.groupBox4.Controls.Add(this.CbHighlightLevelEvenOdd); + this.groupBox4.Controls.Add(this.CbHighlightLevel255); + this.groupBox4.Controls.Add(this.cbIgnoreSexInBreedingPlan); + this.groupBox4.Controls.Add(this.label16); + this.groupBox4.Controls.Add(this.radioButtonFahrenheit); + this.groupBox4.Controls.Add(this.radioButtonCelsius); + this.groupBox4.Controls.Add(this.label12); + this.groupBox4.Controls.Add(this.numericUpDownMaxBreedingSug); + this.groupBox4.Location = new System.Drawing.Point(6, 233); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(317, 172); + this.groupBox4.TabIndex = 1; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Breeding Planner"; // - this.BtBackupFolder.AutoEllipsis = true; - this.BtBackupFolder.Location = new System.Drawing.Point(6, 191); - this.BtBackupFolder.Name = "BtBackupFolder"; - this.BtBackupFolder.Size = new System.Drawing.Size(276, 23); - this.BtBackupFolder.TabIndex = 10; - this.BtBackupFolder.Text = "n/a"; - this.BtBackupFolder.UseVisualStyleBackColor = true; - this.BtBackupFolder.Click += new System.EventHandler(this.BtBackupFolder_Click); + // label57 // - // label2 + this.label57.AutoSize = true; + this.label57.Location = new System.Drawing.Point(6, 139); + this.label57.Name = "label57"; + this.label57.Size = new System.Drawing.Size(31, 26); + this.label57.TabIndex = 15; + this.label57.Text = "hue\r\neven"; // - this.label2.Location = new System.Drawing.Point(6, 62); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(305, 48); - this.label2.TabIndex = 2; - this.label2.Text = "Enable both checkboxes if you want to edit the library file with multiple persons" + - ". Place the .asb collection-file in a shared-folder that the others have access " + - "to."; + // label56 // - // groupBox7 + this.label56.AutoSize = true; + this.label56.Location = new System.Drawing.Point(178, 139); + this.label56.Name = "label56"; + this.label56.Size = new System.Drawing.Size(25, 26); + this.label56.TabIndex = 14; + this.label56.Text = "hue\r\nodd"; // - this.groupBox7.Controls.Add(this.checkBoxDisplayHiddenStats); - this.groupBox7.Location = new System.Drawing.Point(6, 411); - this.groupBox7.Name = "groupBox7"; - this.groupBox7.Size = new System.Drawing.Size(317, 43); - this.groupBox7.TabIndex = 2; - this.groupBox7.TabStop = false; - this.groupBox7.Text = "Extractor"; + // pbChartOddRange // - // checkBoxDisplayHiddenStats + this.pbChartOddRange.Location = new System.Drawing.Point(209, 158); + this.pbChartOddRange.Name = "pbChartOddRange"; + this.pbChartOddRange.Size = new System.Drawing.Size(100, 10); + this.pbChartOddRange.TabIndex = 13; + this.pbChartOddRange.TabStop = false; // - this.checkBoxDisplayHiddenStats.AutoSize = true; - this.checkBoxDisplayHiddenStats.Location = new System.Drawing.Point(13, 19); - this.checkBoxDisplayHiddenStats.Name = "checkBoxDisplayHiddenStats"; - this.checkBoxDisplayHiddenStats.Size = new System.Drawing.Size(246, 17); - this.checkBoxDisplayHiddenStats.TabIndex = 0; - this.checkBoxDisplayHiddenStats.Text = "Display all used stats (e.g. oxygen for aquatics)"; - this.checkBoxDisplayHiddenStats.UseVisualStyleBackColor = true; + // pbChartEvenRange // - // tabControlSettings + this.pbChartEvenRange.Location = new System.Drawing.Point(43, 158); + this.pbChartEvenRange.Name = "pbChartEvenRange"; + this.pbChartEvenRange.Size = new System.Drawing.Size(100, 10); + this.pbChartEvenRange.TabIndex = 12; + this.pbChartEvenRange.TabStop = false; // - this.tabControlSettings.Controls.Add(this.tabPageMultipliers); - this.tabControlSettings.Controls.Add(this.tabPageGeneral); - this.tabControlSettings.Controls.Add(this.tabPageInfoGraphic); - this.tabControlSettings.Controls.Add(this.tabPageImportSavegame); - this.tabControlSettings.Controls.Add(this.tabPageImportExported); - this.tabControlSettings.Controls.Add(this.tabPageTimers); - this.tabControlSettings.Controls.Add(this.tabPageOverlay); - this.tabControlSettings.Controls.Add(this.tabPageOCR); - this.tabControlSettings.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControlSettings.Location = new System.Drawing.Point(0, 0); - this.tabControlSettings.Name = "tabControlSettings"; - this.tabControlSettings.SelectedIndex = 0; - this.tabControlSettings.Size = new System.Drawing.Size(758, 770); - this.tabControlSettings.TabIndex = 11; + // nudChartLevelOddMax // - // tabPageMultipliers + this.nudChartLevelOddMax.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudChartLevelOddMax.Location = new System.Drawing.Point(268, 137); + this.nudChartLevelOddMax.Maximum = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.nudChartLevelOddMax.Minimum = new decimal(new int[] { + 360, + 0, + 0, + -2147483648}); + this.nudChartLevelOddMax.Name = "nudChartLevelOddMax"; + this.nudChartLevelOddMax.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudChartLevelOddMax.Size = new System.Drawing.Size(41, 20); + this.nudChartLevelOddMax.TabIndex = 11; + this.nudChartLevelOddMax.Value = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.nudChartLevelOddMax.ValueChanged += new System.EventHandler(this.nudChartLevelOddMax_ValueChanged); // - this.tabPageMultipliers.AllowDrop = true; - this.tabPageMultipliers.AutoScroll = true; - this.tabPageMultipliers.Controls.Add(this.TbRemoteServerSettingsUri); - this.tabPageMultipliers.Controls.Add(this.BtSettingsToClipboard); - this.tabPageMultipliers.Controls.Add(this.btExportMultipliers); - this.tabPageMultipliers.Controls.Add(this.BtRemoteServerSettingsUri); - this.tabPageMultipliers.Controls.Add(this.CbKeepMultipliersForNewLibrary); - this.tabPageMultipliers.Controls.Add(this.BtAutoImportLocalSettings); - this.tabPageMultipliers.Controls.Add(this.panel3); - this.tabPageMultipliers.Controls.Add(this.BtImportSettingsSelectFile); - this.tabPageMultipliers.Controls.Add(this.CbAtlasSettings); - this.tabPageMultipliers.Controls.Add(this.groupBox29); - this.tabPageMultipliers.Controls.Add(this.label34); - this.tabPageMultipliers.Controls.Add(this.groupBox18); - this.tabPageMultipliers.Controls.Add(this.label27); - this.tabPageMultipliers.Controls.Add(this.cbSingleplayerSettings); - this.tabPageMultipliers.Controls.Add(this.groupBox11); - this.tabPageMultipliers.Controls.Add(this.buttonEventToDefault); - this.tabPageMultipliers.Controls.Add(this.labelEvent); - this.tabPageMultipliers.Controls.Add(this.groupBoxMultiplier); - this.tabPageMultipliers.Controls.Add(this.groupBox2); - this.tabPageMultipliers.Controls.Add(this.groupBox3); - this.tabPageMultipliers.Controls.Add(this.label15); - this.tabPageMultipliers.Controls.Add(this.groupBox5); - this.tabPageMultipliers.Location = new System.Drawing.Point(4, 22); - this.tabPageMultipliers.Name = "tabPageMultipliers"; - this.tabPageMultipliers.Padding = new System.Windows.Forms.Padding(3); - this.tabPageMultipliers.Size = new System.Drawing.Size(750, 744); - this.tabPageMultipliers.TabIndex = 1; - this.tabPageMultipliers.Text = "Multipliers"; - this.tabPageMultipliers.UseVisualStyleBackColor = true; - this.tabPageMultipliers.DragDrop += new System.Windows.Forms.DragEventHandler(this.tabPage2_DragDrop); - this.tabPageMultipliers.DragEnter += new System.Windows.Forms.DragEventHandler(this.tabPage2_DragEnter); + // nudChartLevelOddMin // - // TbRemoteServerSettingsUri + this.nudChartLevelOddMin.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudChartLevelOddMin.Location = new System.Drawing.Point(209, 137); + this.nudChartLevelOddMin.Maximum = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.nudChartLevelOddMin.Minimum = new decimal(new int[] { + 360, + 0, + 0, + -2147483648}); + this.nudChartLevelOddMin.Name = "nudChartLevelOddMin"; + this.nudChartLevelOddMin.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudChartLevelOddMin.Size = new System.Drawing.Size(41, 20); + this.nudChartLevelOddMin.TabIndex = 10; + this.nudChartLevelOddMin.ValueChanged += new System.EventHandler(this.nudChartLevelOddMin_ValueChanged); // - this.TbRemoteServerSettingsUri.Location = new System.Drawing.Point(407, 659); - this.TbRemoteServerSettingsUri.Name = "TbRemoteServerSettingsUri"; - this.TbRemoteServerSettingsUri.Size = new System.Drawing.Size(152, 20); - this.TbRemoteServerSettingsUri.TabIndex = 20; + // nudChartLevelEvenMax // - // BtSettingsToClipboard + this.nudChartLevelEvenMax.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudChartLevelEvenMax.Location = new System.Drawing.Point(102, 137); + this.nudChartLevelEvenMax.Maximum = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.nudChartLevelEvenMax.Minimum = new decimal(new int[] { + 360, + 0, + 0, + -2147483648}); + this.nudChartLevelEvenMax.Name = "nudChartLevelEvenMax"; + this.nudChartLevelEvenMax.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudChartLevelEvenMax.Size = new System.Drawing.Size(41, 20); + this.nudChartLevelEvenMax.TabIndex = 9; + this.nudChartLevelEvenMax.ValueChanged += new System.EventHandler(this.nudChartLevelEvenMax_ValueChanged); // - this.BtSettingsToClipboard.Location = new System.Drawing.Point(600, 713); - this.BtSettingsToClipboard.Name = "BtSettingsToClipboard"; - this.BtSettingsToClipboard.Size = new System.Drawing.Size(142, 23); - this.BtSettingsToClipboard.TabIndex = 13; - this.BtSettingsToClipboard.Text = "Copy settings to clipboard"; - this.BtSettingsToClipboard.UseVisualStyleBackColor = true; - this.BtSettingsToClipboard.Click += new System.EventHandler(this.BtSettingsToClipboard_Click); + // nudChartLevelEvenMin // - // btExportMultipliers + this.nudChartLevelEvenMin.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudChartLevelEvenMin.Location = new System.Drawing.Point(43, 137); + this.nudChartLevelEvenMin.Maximum = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.nudChartLevelEvenMin.Minimum = new decimal(new int[] { + 360, + 0, + 0, + -2147483648}); + this.nudChartLevelEvenMin.Name = "nudChartLevelEvenMin"; + this.nudChartLevelEvenMin.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudChartLevelEvenMin.Size = new System.Drawing.Size(41, 20); + this.nudChartLevelEvenMin.TabIndex = 8; + this.nudChartLevelEvenMin.ValueChanged += new System.EventHandler(this.nudChartLevelEvenMin_ValueChanged); // - this.btExportMultipliers.Location = new System.Drawing.Point(407, 713); - this.btExportMultipliers.Name = "btExportMultipliers"; - this.btExportMultipliers.Size = new System.Drawing.Size(187, 23); - this.btExportMultipliers.TabIndex = 11; - this.btExportMultipliers.Text = "Export multiplier settings to file…"; - this.btExportMultipliers.UseVisualStyleBackColor = true; - this.btExportMultipliers.Click += new System.EventHandler(this.btExportMultipliers_Click); + // CbHighlightLevelEvenOdd // - // BtRemoteServerSettingsUri + this.CbHighlightLevelEvenOdd.AutoSize = true; + this.CbHighlightLevelEvenOdd.Location = new System.Drawing.Point(6, 114); + this.CbHighlightLevelEvenOdd.Name = "CbHighlightLevelEvenOdd"; + this.CbHighlightLevelEvenOdd.Size = new System.Drawing.Size(156, 17); + this.CbHighlightLevelEvenOdd.TabIndex = 7; + this.CbHighlightLevelEvenOdd.Text = "Highlight even / odd levels"; + this.CbHighlightLevelEvenOdd.UseVisualStyleBackColor = true; // - this.BtRemoteServerSettingsUri.Location = new System.Drawing.Point(565, 657); - this.BtRemoteServerSettingsUri.Name = "BtRemoteServerSettingsUri"; - this.BtRemoteServerSettingsUri.Size = new System.Drawing.Size(167, 23); - this.BtRemoteServerSettingsUri.TabIndex = 19; - this.BtRemoteServerSettingsUri.Text = "Import remote settings"; - this.BtRemoteServerSettingsUri.UseVisualStyleBackColor = true; - this.BtRemoteServerSettingsUri.Click += new System.EventHandler(this.BtRemoteServerSettingsUri_Click); + // CbHighlightLevel255 // - // CbKeepMultipliersForNewLibrary + this.CbHighlightLevel255.AutoSize = true; + this.CbHighlightLevel255.Location = new System.Drawing.Point(6, 91); + this.CbHighlightLevel255.Name = "CbHighlightLevel255"; + this.CbHighlightLevel255.Size = new System.Drawing.Size(159, 17); + this.CbHighlightLevel255.TabIndex = 6; + this.CbHighlightLevel255.Text = "Highlight Level 254 and 255"; + this.CbHighlightLevel255.UseVisualStyleBackColor = true; // - this.CbKeepMultipliersForNewLibrary.AutoSize = true; - this.CbKeepMultipliersForNewLibrary.Location = new System.Drawing.Point(6, 699); - this.CbKeepMultipliersForNewLibrary.Name = "CbKeepMultipliersForNewLibrary"; - this.CbKeepMultipliersForNewLibrary.Size = new System.Drawing.Size(231, 17); - this.CbKeepMultipliersForNewLibrary.TabIndex = 18; - this.CbKeepMultipliersForNewLibrary.Text = "Keep multipliers when creating a new library"; - this.CbKeepMultipliersForNewLibrary.UseVisualStyleBackColor = true; + // cbIgnoreSexInBreedingPlan // - // BtAutoImportLocalSettings + this.cbIgnoreSexInBreedingPlan.AutoSize = true; + this.cbIgnoreSexInBreedingPlan.Location = new System.Drawing.Point(6, 68); + this.cbIgnoreSexInBreedingPlan.Name = "cbIgnoreSexInBreedingPlan"; + this.cbIgnoreSexInBreedingPlan.Size = new System.Drawing.Size(157, 17); + this.cbIgnoreSexInBreedingPlan.TabIndex = 5; + this.cbIgnoreSexInBreedingPlan.Text = "Ignore Sex in Breeding-Plan"; + this.cbIgnoreSexInBreedingPlan.UseVisualStyleBackColor = true; // - this.BtAutoImportLocalSettings.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); - this.BtAutoImportLocalSettings.Location = new System.Drawing.Point(407, 628); - this.BtAutoImportLocalSettings.Name = "BtAutoImportLocalSettings"; - this.BtAutoImportLocalSettings.Size = new System.Drawing.Size(152, 23); - this.BtAutoImportLocalSettings.TabIndex = 17; - this.BtAutoImportLocalSettings.Text = "Import local settings"; - this.BtAutoImportLocalSettings.UseVisualStyleBackColor = false; - this.BtAutoImportLocalSettings.Click += new System.EventHandler(this.BtAutoImportLocalSettings_Click); + // label16 // - // panel3 + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(10, 47); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(67, 13); + this.label16.TabIndex = 2; + this.label16.Text = "Temperature"; // - this.panel3.Controls.Add(this.RbGameAsa); - this.panel3.Controls.Add(this.RbGameAse); - this.panel3.Location = new System.Drawing.Point(154, 19); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(117, 26); - this.panel3.TabIndex = 16; + // radioButtonFahrenheit // - // RbGameAsa + this.radioButtonFahrenheit.AutoSize = true; + this.radioButtonFahrenheit.Location = new System.Drawing.Point(276, 45); + this.radioButtonFahrenheit.Name = "radioButtonFahrenheit"; + this.radioButtonFahrenheit.Size = new System.Drawing.Size(35, 17); + this.radioButtonFahrenheit.TabIndex = 4; + this.radioButtonFahrenheit.Text = "°F"; + this.radioButtonFahrenheit.UseVisualStyleBackColor = true; // - this.RbGameAsa.AutoSize = true; - this.RbGameAsa.Location = new System.Drawing.Point(55, 3); - this.RbGameAsa.Name = "RbGameAsa"; - this.RbGameAsa.Size = new System.Drawing.Size(46, 17); - this.RbGameAsa.TabIndex = 1; - this.RbGameAsa.TabStop = true; - this.RbGameAsa.Text = "ASA"; - this.RbGameAsa.UseVisualStyleBackColor = true; - this.RbGameAsa.CheckedChanged += new System.EventHandler(this.RbGameAsa_CheckedChanged); + // radioButtonCelsius // - // RbGameAse + this.radioButtonCelsius.AutoSize = true; + this.radioButtonCelsius.Checked = true; + this.radioButtonCelsius.Location = new System.Drawing.Point(234, 45); + this.radioButtonCelsius.Name = "radioButtonCelsius"; + this.radioButtonCelsius.Size = new System.Drawing.Size(36, 17); + this.radioButtonCelsius.TabIndex = 3; + this.radioButtonCelsius.TabStop = true; + this.radioButtonCelsius.Text = "°C"; + this.radioButtonCelsius.UseVisualStyleBackColor = true; // - this.RbGameAse.AutoSize = true; - this.RbGameAse.Checked = true; - this.RbGameAse.Location = new System.Drawing.Point(3, 3); - this.RbGameAse.Name = "RbGameAse"; - this.RbGameAse.Size = new System.Drawing.Size(46, 17); - this.RbGameAse.TabIndex = 0; - this.RbGameAse.TabStop = true; - this.RbGameAse.Text = "ASE"; - this.RbGameAse.UseVisualStyleBackColor = true; + // label12 // - // BtImportSettingsSelectFile + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(10, 21); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(154, 13); + this.label12.TabIndex = 0; + this.label12.Text = "Max Breeding Pair Suggestions"; // - this.BtImportSettingsSelectFile.Location = new System.Drawing.Point(565, 628); - this.BtImportSettingsSelectFile.Name = "BtImportSettingsSelectFile"; - this.BtImportSettingsSelectFile.Size = new System.Drawing.Size(167, 23); - this.BtImportSettingsSelectFile.TabIndex = 15; - this.BtImportSettingsSelectFile.Text = "Manually load settings from file"; - this.BtImportSettingsSelectFile.UseVisualStyleBackColor = true; - this.BtImportSettingsSelectFile.Click += new System.EventHandler(this.BtImportSettingsSelectFile_Click); + // numericUpDownMaxBreedingSug // - // CbAtlasSettings + this.numericUpDownMaxBreedingSug.ForeColor = System.Drawing.SystemColors.GrayText; + this.numericUpDownMaxBreedingSug.Location = new System.Drawing.Point(252, 19); + this.numericUpDownMaxBreedingSug.Maximum = new decimal(new int[] { + 200, + 0, + 0, + 0}); + this.numericUpDownMaxBreedingSug.Name = "numericUpDownMaxBreedingSug"; + this.numericUpDownMaxBreedingSug.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.numericUpDownMaxBreedingSug.Size = new System.Drawing.Size(57, 20); + this.numericUpDownMaxBreedingSug.TabIndex = 1; // - this.CbAtlasSettings.AutoSize = true; - this.CbAtlasSettings.Location = new System.Drawing.Point(289, 23); - this.CbAtlasSettings.Name = "CbAtlasSettings"; - this.CbAtlasSettings.Size = new System.Drawing.Size(99, 17); - this.CbAtlasSettings.TabIndex = 14; - this.CbAtlasSettings.Text = "ATLAS settings"; - this.CbAtlasSettings.UseVisualStyleBackColor = true; + // groupBox5 // - // groupBox29 + this.groupBox5.Controls.Add(this.NudWildDinoCharacterFoodDrainMultiplier); + this.groupBox5.Controls.Add(this.label69); + this.groupBox5.Controls.Add(this.label67); + this.groupBox5.Controls.Add(this.NudWildDinoTorporDrainMultiplier); + this.groupBox5.Controls.Add(this.nudDinoCharacterFoodDrainEvent); + this.groupBox5.Controls.Add(this.nudTamingSpeedEvent); + this.groupBox5.Controls.Add(this.label7); + this.groupBox5.Controls.Add(this.label14); + this.groupBox5.Controls.Add(this.nudDinoCharacterFoodDrain); + this.groupBox5.Controls.Add(this.nudTamingSpeed); + this.groupBox5.Location = new System.Drawing.Point(394, 158); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size(345, 126); + this.groupBox5.TabIndex = 6; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Taming-Multiplier"; // - this.groupBox29.Controls.Add(this.CbAllowSpeedLeveling); - this.groupBox29.Controls.Add(this.CbAllowFlyerSpeedLeveling); - this.groupBox29.Location = new System.Drawing.Point(6, 488); - this.groupBox29.Name = "groupBox29"; - this.groupBox29.Size = new System.Drawing.Size(382, 50); - this.groupBox29.TabIndex = 2; - this.groupBox29.TabStop = false; - this.groupBox29.Text = "Leveling of the speed stat"; + // NudWildDinoCharacterFoodDrainMultiplier // - // CbAllowSpeedLeveling + this.NudWildDinoCharacterFoodDrainMultiplier.DecimalPlaces = 6; + this.NudWildDinoCharacterFoodDrainMultiplier.ForeColor = System.Drawing.SystemColors.WindowText; + this.NudWildDinoCharacterFoodDrainMultiplier.Location = new System.Drawing.Point(183, 71); + this.NudWildDinoCharacterFoodDrainMultiplier.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.NudWildDinoCharacterFoodDrainMultiplier.Name = "NudWildDinoCharacterFoodDrainMultiplier"; + this.NudWildDinoCharacterFoodDrainMultiplier.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudWildDinoCharacterFoodDrainMultiplier.Size = new System.Drawing.Size(72, 20); + this.NudWildDinoCharacterFoodDrainMultiplier.TabIndex = 4; + this.NudWildDinoCharacterFoodDrainMultiplier.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.CbAllowSpeedLeveling.AutoSize = true; - this.CbAllowSpeedLeveling.Location = new System.Drawing.Point(6, 19); - this.CbAllowSpeedLeveling.Name = "CbAllowSpeedLeveling"; - this.CbAllowSpeedLeveling.Size = new System.Drawing.Size(174, 17); - this.CbAllowSpeedLeveling.TabIndex = 1; - this.CbAllowSpeedLeveling.Text = "Allow speed leveling (only ASA)"; - this.CbAllowSpeedLeveling.UseVisualStyleBackColor = true; + // label69 // - // CbAllowFlyerSpeedLeveling + this.label69.AutoSize = true; + this.label69.Location = new System.Drawing.Point(10, 73); + this.label69.Name = "label69"; + this.label69.Size = new System.Drawing.Size(186, 13); + this.label69.TabIndex = 7; + this.label69.Text = "WildDinoCharacterFoodDrainMultiplier"; // - this.CbAllowFlyerSpeedLeveling.AutoSize = true; - this.CbAllowFlyerSpeedLeveling.Location = new System.Drawing.Point(195, 19); - this.CbAllowFlyerSpeedLeveling.Name = "CbAllowFlyerSpeedLeveling"; - this.CbAllowFlyerSpeedLeveling.Size = new System.Drawing.Size(144, 17); - this.CbAllowFlyerSpeedLeveling.TabIndex = 0; - this.CbAllowFlyerSpeedLeveling.Text = "Allow flyer speed leveling"; - this.CbAllowFlyerSpeedLeveling.UseVisualStyleBackColor = true; - this.CbAllowFlyerSpeedLeveling.CheckedChanged += new System.EventHandler(this.CbAllowFlyerSpeedLeveling_CheckedChanged); + // label67 // - // label34 + this.label67.AutoSize = true; + this.label67.Location = new System.Drawing.Point(10, 99); + this.label67.Name = "label67"; + this.label67.Size = new System.Drawing.Size(147, 13); + this.label67.TabIndex = 5; + this.label67.Text = "WildDinoTorporDrainMultiplier"; // - this.label34.Location = new System.Drawing.Point(404, 682); - this.label34.Name = "label34"; - this.label34.Size = new System.Drawing.Size(338, 34); - this.label34.TabIndex = 10; - this.label34.Text = "You can export the settings on this page to a file or the clipboard to share it w" + - "ith tribe members or for bug reports."; + // NudWildDinoTorporDrainMultiplier // - // groupBox18 + this.NudWildDinoTorporDrainMultiplier.DecimalPlaces = 6; + this.NudWildDinoTorporDrainMultiplier.ForeColor = System.Drawing.SystemColors.WindowText; + this.NudWildDinoTorporDrainMultiplier.Location = new System.Drawing.Point(183, 97); + this.NudWildDinoTorporDrainMultiplier.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.NudWildDinoTorporDrainMultiplier.Name = "NudWildDinoTorporDrainMultiplier"; + this.NudWildDinoTorporDrainMultiplier.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudWildDinoTorporDrainMultiplier.Size = new System.Drawing.Size(72, 20); + this.NudWildDinoTorporDrainMultiplier.TabIndex = 5; + this.NudWildDinoTorporDrainMultiplier.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.groupBox18.Controls.Add(this.btApplyPreset); - this.groupBox18.Controls.Add(this.cbbStatMultiplierPresets); - this.groupBox18.Location = new System.Drawing.Point(6, 619); - this.groupBox18.Name = "groupBox18"; - this.groupBox18.Size = new System.Drawing.Size(382, 51); - this.groupBox18.TabIndex = 4; - this.groupBox18.TabStop = false; - this.groupBox18.Text = "Multiplier Presets"; + // nudDinoCharacterFoodDrainEvent // - // btApplyPreset + this.nudDinoCharacterFoodDrainEvent.DecimalPlaces = 6; + this.nudDinoCharacterFoodDrainEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudDinoCharacterFoodDrainEvent.Location = new System.Drawing.Point(263, 45); + this.nudDinoCharacterFoodDrainEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudDinoCharacterFoodDrainEvent.Name = "nudDinoCharacterFoodDrainEvent"; + this.nudDinoCharacterFoodDrainEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudDinoCharacterFoodDrainEvent.Size = new System.Drawing.Size(72, 20); + this.nudDinoCharacterFoodDrainEvent.TabIndex = 3; + this.nudDinoCharacterFoodDrainEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.btApplyPreset.Location = new System.Drawing.Point(229, 17); - this.btApplyPreset.Name = "btApplyPreset"; - this.btApplyPreset.Size = new System.Drawing.Size(146, 23); - this.btApplyPreset.TabIndex = 1; - this.btApplyPreset.Text = "Apply Preset Multipliers"; - this.btApplyPreset.UseVisualStyleBackColor = true; - this.btApplyPreset.Click += new System.EventHandler(this.BtApplyPreset_Click); + // nudTamingSpeedEvent // - // cbbStatMultiplierPresets + this.nudTamingSpeedEvent.DecimalPlaces = 6; + this.nudTamingSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudTamingSpeedEvent.Location = new System.Drawing.Point(263, 19); + this.nudTamingSpeedEvent.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudTamingSpeedEvent.Name = "nudTamingSpeedEvent"; + this.nudTamingSpeedEvent.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudTamingSpeedEvent.Size = new System.Drawing.Size(72, 20); + this.nudTamingSpeedEvent.TabIndex = 1; + this.nudTamingSpeedEvent.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.cbbStatMultiplierPresets.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cbbStatMultiplierPresets.FormattingEnabled = true; - this.cbbStatMultiplierPresets.Location = new System.Drawing.Point(6, 19); - this.cbbStatMultiplierPresets.Name = "cbbStatMultiplierPresets"; - this.cbbStatMultiplierPresets.Size = new System.Drawing.Size(217, 21); - this.cbbStatMultiplierPresets.TabIndex = 0; + // label7 // - // label27 + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(10, 47); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(165, 13); + this.label7.TabIndex = 2; + this.label7.Text = "DinoCharacterFoodDrainMultiplier"; // - this.label27.AutoSize = true; - this.label27.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label27.Location = new System.Drawing.Point(407, 562); - this.label27.Name = "label27"; - this.label27.Size = new System.Drawing.Size(37, 26); - this.label27.TabIndex = 12; - this.label27.Text = "💡"; + // label14 // - // cbSingleplayerSettings + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(10, 21); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(114, 13); + this.label14.TabIndex = 0; + this.label14.Text = "TamingSpeedMultiplier"; // - this.cbSingleplayerSettings.AutoSize = true; - this.cbSingleplayerSettings.Location = new System.Drawing.Point(15, 23); - this.cbSingleplayerSettings.Name = "cbSingleplayerSettings"; - this.cbSingleplayerSettings.Size = new System.Drawing.Size(122, 17); - this.cbSingleplayerSettings.TabIndex = 0; - this.cbSingleplayerSettings.Text = "Singleplayer settings"; - this.cbSingleplayerSettings.UseVisualStyleBackColor = true; - this.cbSingleplayerSettings.CheckedChanged += new System.EventHandler(this.cbSingleplayerSettings_CheckedChanged); + // nudDinoCharacterFoodDrain // - // groupBox11 + this.nudDinoCharacterFoodDrain.DecimalPlaces = 6; + this.nudDinoCharacterFoodDrain.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudDinoCharacterFoodDrain.Location = new System.Drawing.Point(183, 45); + this.nudDinoCharacterFoodDrain.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudDinoCharacterFoodDrain.Name = "nudDinoCharacterFoodDrain"; + this.nudDinoCharacterFoodDrain.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudDinoCharacterFoodDrain.Size = new System.Drawing.Size(72, 20); + this.nudDinoCharacterFoodDrain.TabIndex = 2; + this.nudDinoCharacterFoodDrain.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.groupBox11.Controls.Add(this.cbAllowMoreThanHundredImprinting); - this.groupBox11.Controls.Add(this.nudWildLevelStep); - this.groupBox11.Controls.Add(this.cbConsiderWildLevelSteps); - this.groupBox11.Location = new System.Drawing.Point(6, 544); - this.groupBox11.Name = "groupBox11"; - this.groupBox11.Size = new System.Drawing.Size(382, 69); - this.groupBox11.TabIndex = 3; - this.groupBox11.TabStop = false; - this.groupBox11.Text = "Extractor"; + // nudTamingSpeed // - // cbAllowMoreThanHundredImprinting + this.nudTamingSpeed.DecimalPlaces = 6; + this.nudTamingSpeed.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudTamingSpeed.Location = new System.Drawing.Point(183, 19); + this.nudTamingSpeed.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudTamingSpeed.Name = "nudTamingSpeed"; + this.nudTamingSpeed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudTamingSpeed.Size = new System.Drawing.Size(72, 20); + this.nudTamingSpeed.TabIndex = 0; + this.nudTamingSpeed.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - this.cbAllowMoreThanHundredImprinting.AutoSize = true; - this.cbAllowMoreThanHundredImprinting.Location = new System.Drawing.Point(6, 43); - this.cbAllowMoreThanHundredImprinting.Name = "cbAllowMoreThanHundredImprinting"; - this.cbAllowMoreThanHundredImprinting.Size = new System.Drawing.Size(177, 17); - this.cbAllowMoreThanHundredImprinting.TabIndex = 2; - this.cbAllowMoreThanHundredImprinting.Text = "Allow more than 100% imprinting"; - this.cbAllowMoreThanHundredImprinting.UseVisualStyleBackColor = true; + // label15 // - // cbConsiderWildLevelSteps + this.label15.Location = new System.Drawing.Point(450, 548); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(289, 77); + this.label15.TabIndex = 9; + this.label15.Text = resources.GetString("label15.Text"); // - this.cbConsiderWildLevelSteps.AutoSize = true; - this.cbConsiderWildLevelSteps.Location = new System.Drawing.Point(6, 18); - this.cbConsiderWildLevelSteps.Name = "cbConsiderWildLevelSteps"; - this.cbConsiderWildLevelSteps.Size = new System.Drawing.Size(144, 17); - this.cbConsiderWildLevelSteps.TabIndex = 0; - this.cbConsiderWildLevelSteps.Text = "Consider Wild-level steps"; - this.cbConsiderWildLevelSteps.UseVisualStyleBackColor = true; + // groupBox6 // - // buttonEventToDefault + this.groupBox6.Controls.Add(this.label55); + this.groupBox6.Controls.Add(this.NudWaitBeforeAutoLoad); + this.groupBox6.Controls.Add(this.label54); + this.groupBox6.Controls.Add(this.NudKeepBackupFilesCount); + this.groupBox6.Controls.Add(this.label53); + this.groupBox6.Controls.Add(this.BtClearBackupFolder); + this.groupBox6.Controls.Add(this.label52); + this.groupBox6.Controls.Add(this.BtBackupFolder); + this.groupBox6.Controls.Add(this.label2); + this.groupBox6.Controls.Add(this.label5); + this.groupBox6.Controls.Add(this.checkBoxAutoSave); + this.groupBox6.Controls.Add(this.chkCollectionSync); + this.groupBox6.Controls.Add(this.label6); + this.groupBox6.Controls.Add(this.NudBackupEveryMinutes); + this.groupBox6.Location = new System.Drawing.Point(6, 6); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size(317, 221); + this.groupBox6.TabIndex = 0; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "Save / Load"; // - this.buttonEventToDefault.Location = new System.Drawing.Point(512, 137); - this.buttonEventToDefault.Name = "buttonEventToDefault"; - this.buttonEventToDefault.Size = new System.Drawing.Size(136, 23); - this.buttonEventToDefault.TabIndex = 8; - this.buttonEventToDefault.Text = "Copy non-Event to Event"; - this.buttonEventToDefault.UseVisualStyleBackColor = true; - this.buttonEventToDefault.Click += new System.EventHandler(this.buttonEventToDefault_Click); + // label55 // - // labelEvent - // - this.labelEvent.AutoSize = true; - this.labelEvent.Location = new System.Drawing.Point(654, 142); - this.labelEvent.Name = "labelEvent"; - this.labelEvent.Size = new System.Drawing.Size(78, 13); - this.labelEvent.TabIndex = 9; - this.labelEvent.Text = "↓ Event-values"; - // - // tabPageGeneral - // - this.tabPageGeneral.AutoScroll = true; - this.tabPageGeneral.Controls.Add(this.CbAskSaveSettingsOnClose); - this.tabPageGeneral.Controls.Add(this.groupBox31); - this.tabPageGeneral.Controls.Add(this.groupBox30); - this.tabPageGeneral.Controls.Add(this.GbImgCacheLocalAppData); - this.tabPageGeneral.Controls.Add(this.groupBox16); - this.tabPageGeneral.Controls.Add(this.GbSpecies); - this.tabPageGeneral.Controls.Add(this.groupBox26); - this.tabPageGeneral.Controls.Add(this.groupBox25); - this.tabPageGeneral.Controls.Add(this.groupBox20); - this.tabPageGeneral.Controls.Add(this.groupBox17); - this.tabPageGeneral.Controls.Add(this.groupBox9); - this.tabPageGeneral.Controls.Add(this.groupBox7); - this.tabPageGeneral.Controls.Add(this.groupBox4); - this.tabPageGeneral.Controls.Add(this.groupBox6); - this.tabPageGeneral.Location = new System.Drawing.Point(4, 22); - this.tabPageGeneral.Name = "tabPageGeneral"; - this.tabPageGeneral.Padding = new System.Windows.Forms.Padding(3); - this.tabPageGeneral.Size = new System.Drawing.Size(750, 744); - this.tabPageGeneral.TabIndex = 0; - this.tabPageGeneral.Text = "General"; - this.tabPageGeneral.UseVisualStyleBackColor = true; + this.label55.AutoSize = true; + this.label55.Location = new System.Drawing.Point(193, 20); + this.label55.Name = "label55"; + this.label55.Size = new System.Drawing.Size(118, 13); + this.label55.TabIndex = 13; + this.label55.Text = "wait before loading [ms]"; // - // CbAskSaveSettingsOnClose + // NudWaitBeforeAutoLoad // - this.CbAskSaveSettingsOnClose.AutoSize = true; - this.CbAskSaveSettingsOnClose.Location = new System.Drawing.Point(435, 721); - this.CbAskSaveSettingsOnClose.Name = "CbAskSaveSettingsOnClose"; - this.CbAskSaveSettingsOnClose.Size = new System.Drawing.Size(309, 17); - this.CbAskSaveSettingsOnClose.TabIndex = 15; - this.CbAskSaveSettingsOnClose.Text = "Ask to save settings if this window is closed via the X button"; - this.CbAskSaveSettingsOnClose.UseVisualStyleBackColor = true; + this.NudWaitBeforeAutoLoad.ForeColor = System.Drawing.SystemColors.GrayText; + this.NudWaitBeforeAutoLoad.Location = new System.Drawing.Point(255, 41); + this.NudWaitBeforeAutoLoad.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.NudWaitBeforeAutoLoad.Name = "NudWaitBeforeAutoLoad"; + this.NudWaitBeforeAutoLoad.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudWaitBeforeAutoLoad.Size = new System.Drawing.Size(56, 20); + this.NudWaitBeforeAutoLoad.TabIndex = 12; // - // groupBox31 + // label54 // - this.groupBox31.Controls.Add(this.CbColorIdOnColorRegionButton); - this.groupBox31.Controls.Add(this.CbAlwaysShowAllColorRegions); - this.groupBox31.Controls.Add(this.CbHideInvisibleColorRegions); - this.groupBox31.Location = new System.Drawing.Point(329, 319); - this.groupBox31.Name = "groupBox31"; - this.groupBox31.Size = new System.Drawing.Size(413, 66); - this.groupBox31.TabIndex = 14; - this.groupBox31.TabStop = false; - this.groupBox31.Text = "Color Regions"; + this.label54.AutoSize = true; + this.label54.Location = new System.Drawing.Point(110, 120); + this.label54.Name = "label54"; + this.label54.Size = new System.Drawing.Size(171, 13); + this.label54.TabIndex = 5; + this.label54.Text = "backup files (0 to disable backups)"; // - // CbColorIdOnColorRegionButton + // NudKeepBackupFilesCount // - this.CbColorIdOnColorRegionButton.AutoSize = true; - this.CbColorIdOnColorRegionButton.Location = new System.Drawing.Point(6, 42); - this.CbColorIdOnColorRegionButton.Name = "CbColorIdOnColorRegionButton"; - this.CbColorIdOnColorRegionButton.Size = new System.Drawing.Size(201, 17); - this.CbColorIdOnColorRegionButton.TabIndex = 2; - this.CbColorIdOnColorRegionButton.Text = "Show color id on color region buttons"; - this.CbColorIdOnColorRegionButton.UseVisualStyleBackColor = true; + this.NudKeepBackupFilesCount.ForeColor = System.Drawing.SystemColors.GrayText; + this.NudKeepBackupFilesCount.Location = new System.Drawing.Point(44, 118); + this.NudKeepBackupFilesCount.Name = "NudKeepBackupFilesCount"; + this.NudKeepBackupFilesCount.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudKeepBackupFilesCount.Size = new System.Drawing.Size(59, 20); + this.NudKeepBackupFilesCount.TabIndex = 4; // - // CbAlwaysShowAllColorRegions + // label53 // - this.CbAlwaysShowAllColorRegions.AutoSize = true; - this.CbAlwaysShowAllColorRegions.Location = new System.Drawing.Point(6, 19); - this.CbAlwaysShowAllColorRegions.Name = "CbAlwaysShowAllColorRegions"; - this.CbAlwaysShowAllColorRegions.Size = new System.Drawing.Size(163, 17); - this.CbAlwaysShowAllColorRegions.TabIndex = 1; - this.CbAlwaysShowAllColorRegions.Text = "Always show all color regions"; - this.CbAlwaysShowAllColorRegions.UseVisualStyleBackColor = true; + this.label53.AutoSize = true; + this.label53.Location = new System.Drawing.Point(6, 120); + this.label53.Name = "label53"; + this.label53.Size = new System.Drawing.Size(32, 13); + this.label53.TabIndex = 3; + this.label53.Text = "Keep"; // - // CbHideInvisibleColorRegions + // BtClearBackupFolder // - this.CbHideInvisibleColorRegions.AutoSize = true; - this.CbHideInvisibleColorRegions.Location = new System.Drawing.Point(222, 19); - this.CbHideInvisibleColorRegions.Name = "CbHideInvisibleColorRegions"; - this.CbHideInvisibleColorRegions.Size = new System.Drawing.Size(149, 17); - this.CbHideInvisibleColorRegions.TabIndex = 0; - this.CbHideInvisibleColorRegions.Text = "Hide invisble color regions"; - this.CbHideInvisibleColorRegions.UseVisualStyleBackColor = true; + this.BtClearBackupFolder.Location = new System.Drawing.Point(288, 191); + this.BtClearBackupFolder.Name = "BtClearBackupFolder"; + this.BtClearBackupFolder.Size = new System.Drawing.Size(23, 23); + this.BtClearBackupFolder.TabIndex = 11; + this.BtClearBackupFolder.Text = "×"; + this.BtClearBackupFolder.UseVisualStyleBackColor = true; + this.BtClearBackupFolder.Click += new System.EventHandler(this.BtClearBackupFolder_Click); // - // groupBox30 + // label52 // - this.groupBox30.Controls.Add(this.CbExportTableFieldsAll); - this.groupBox30.Controls.Add(this.BExportSpreadsheetMoveDown); - this.groupBox30.Controls.Add(this.BExportSpreadsheetMoveUp); - this.groupBox30.Controls.Add(this.ClbExportSpreadsheetFields); - this.groupBox30.Location = new System.Drawing.Point(329, 391); - this.groupBox30.Name = "groupBox30"; - this.groupBox30.Size = new System.Drawing.Size(413, 268); - this.groupBox30.TabIndex = 13; - this.groupBox30.TabStop = false; - this.groupBox30.Text = "Info to export for spreadsheet"; + this.label52.AutoSize = true; + this.label52.Location = new System.Drawing.Point(6, 175); + this.label52.Name = "label52"; + this.label52.Size = new System.Drawing.Size(308, 13); + this.label52.TabIndex = 9; + this.label52.Text = "Global backup folder (if emtpy, the folder of the save file is used)"; // - // CbExportTableFieldsAll + // BtBackupFolder // - this.CbExportTableFieldsAll.AutoSize = true; - this.CbExportTableFieldsAll.Location = new System.Drawing.Point(36, 19); - this.CbExportTableFieldsAll.Name = "CbExportTableFieldsAll"; - this.CbExportTableFieldsAll.Size = new System.Drawing.Size(37, 17); - this.CbExportTableFieldsAll.TabIndex = 15; - this.CbExportTableFieldsAll.Text = "All"; - this.CbExportTableFieldsAll.UseVisualStyleBackColor = true; - this.CbExportTableFieldsAll.CheckedChanged += new System.EventHandler(this.CbExportTableFieldsAll_CheckedChanged); + this.BtBackupFolder.AutoEllipsis = true; + this.BtBackupFolder.Location = new System.Drawing.Point(6, 191); + this.BtBackupFolder.Name = "BtBackupFolder"; + this.BtBackupFolder.Size = new System.Drawing.Size(276, 23); + this.BtBackupFolder.TabIndex = 10; + this.BtBackupFolder.Text = "n/a"; + this.BtBackupFolder.UseVisualStyleBackColor = true; + this.BtBackupFolder.Click += new System.EventHandler(this.BtBackupFolder_Click); // - // BExportSpreadsheetMoveDown + // label2 // - this.BExportSpreadsheetMoveDown.Location = new System.Drawing.Point(6, 48); - this.BExportSpreadsheetMoveDown.Name = "BExportSpreadsheetMoveDown"; - this.BExportSpreadsheetMoveDown.Size = new System.Drawing.Size(24, 23); - this.BExportSpreadsheetMoveDown.TabIndex = 14; - this.BExportSpreadsheetMoveDown.Text = "▼"; - this.BExportSpreadsheetMoveDown.UseVisualStyleBackColor = true; - this.BExportSpreadsheetMoveDown.Click += new System.EventHandler(this.BExportSpreadsheetMoveDown_Click); + this.label2.Location = new System.Drawing.Point(6, 62); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(305, 48); + this.label2.TabIndex = 2; + this.label2.Text = "Enable both checkboxes if you want to edit the library file with multiple persons" + + ". Place the .asb collection-file in a shared-folder that the others have access " + + "to."; // - // BExportSpreadsheetMoveUp + // NudBackupEveryMinutes // - this.BExportSpreadsheetMoveUp.Location = new System.Drawing.Point(6, 19); - this.BExportSpreadsheetMoveUp.Name = "BExportSpreadsheetMoveUp"; - this.BExportSpreadsheetMoveUp.Size = new System.Drawing.Size(24, 23); - this.BExportSpreadsheetMoveUp.TabIndex = 13; - this.BExportSpreadsheetMoveUp.Text = "▲"; - this.BExportSpreadsheetMoveUp.UseVisualStyleBackColor = true; - this.BExportSpreadsheetMoveUp.Click += new System.EventHandler(this.BExportSpreadsheetMoveUp_Click); + this.NudBackupEveryMinutes.ForeColor = System.Drawing.SystemColors.GrayText; + this.NudBackupEveryMinutes.Location = new System.Drawing.Point(132, 144); + this.NudBackupEveryMinutes.Name = "NudBackupEveryMinutes"; + this.NudBackupEveryMinutes.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudBackupEveryMinutes.Size = new System.Drawing.Size(47, 20); + this.NudBackupEveryMinutes.TabIndex = 7; // - // ClbExportSpreadsheetFields + // groupBox7 // - this.ClbExportSpreadsheetFields.FormattingEnabled = true; - this.ClbExportSpreadsheetFields.Location = new System.Drawing.Point(36, 42); - this.ClbExportSpreadsheetFields.Name = "ClbExportSpreadsheetFields"; - this.ClbExportSpreadsheetFields.Size = new System.Drawing.Size(371, 214); - this.ClbExportSpreadsheetFields.TabIndex = 12; + this.groupBox7.Controls.Add(this.checkBoxDisplayHiddenStats); + this.groupBox7.Location = new System.Drawing.Point(6, 411); + this.groupBox7.Name = "groupBox7"; + this.groupBox7.Size = new System.Drawing.Size(317, 43); + this.groupBox7.TabIndex = 2; + this.groupBox7.TabStop = false; + this.groupBox7.Text = "Extractor"; // - // GbImgCacheLocalAppData + // checkBoxDisplayHiddenStats // - this.GbImgCacheLocalAppData.Controls.Add(this.CbImgCacheUseLocalAppData); - this.GbImgCacheLocalAppData.Location = new System.Drawing.Point(329, 185); - this.GbImgCacheLocalAppData.Name = "GbImgCacheLocalAppData"; - this.GbImgCacheLocalAppData.Size = new System.Drawing.Size(413, 43); - this.GbImgCacheLocalAppData.TabIndex = 11; - this.GbImgCacheLocalAppData.TabStop = false; - this.GbImgCacheLocalAppData.Text = "Image Cache Location"; + this.checkBoxDisplayHiddenStats.AutoSize = true; + this.checkBoxDisplayHiddenStats.Location = new System.Drawing.Point(13, 19); + this.checkBoxDisplayHiddenStats.Name = "checkBoxDisplayHiddenStats"; + this.checkBoxDisplayHiddenStats.Size = new System.Drawing.Size(246, 17); + this.checkBoxDisplayHiddenStats.TabIndex = 0; + this.checkBoxDisplayHiddenStats.Text = "Display all used stats (e.g. oxygen for aquatics)"; + this.checkBoxDisplayHiddenStats.UseVisualStyleBackColor = true; // - // CbImgCacheUseLocalAppData + // tabControlSettings // - this.CbImgCacheUseLocalAppData.Dock = System.Windows.Forms.DockStyle.Fill; - this.CbImgCacheUseLocalAppData.Location = new System.Drawing.Point(3, 16); - this.CbImgCacheUseLocalAppData.Name = "CbImgCacheUseLocalAppData"; - this.CbImgCacheUseLocalAppData.Size = new System.Drawing.Size(407, 24); - this.CbImgCacheUseLocalAppData.TabIndex = 0; - this.CbImgCacheUseLocalAppData.Text = "Use LocalAppData for Image cache"; - this.CbImgCacheUseLocalAppData.UseVisualStyleBackColor = true; + this.tabControlSettings.Controls.Add(this.tabPageMultipliers); + this.tabControlSettings.Controls.Add(this.tabPageGeneral); + this.tabControlSettings.Controls.Add(this.tabPageInfoGraphic); + this.tabControlSettings.Controls.Add(this.tabPageImportSavegame); + this.tabControlSettings.Controls.Add(this.tabPageImportExported); + this.tabControlSettings.Controls.Add(this.tabPageTimers); + this.tabControlSettings.Controls.Add(this.tabPageOverlay); + this.tabControlSettings.Controls.Add(this.tabPageOCR); + this.tabControlSettings.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControlSettings.Location = new System.Drawing.Point(0, 0); + this.tabControlSettings.Name = "tabControlSettings"; + this.tabControlSettings.SelectedIndex = 0; + this.tabControlSettings.Size = new System.Drawing.Size(758, 770); + this.tabControlSettings.TabIndex = 11; // - // groupBox16 + // tabPageMultipliers // - this.groupBox16.Controls.Add(this.CbStreamerMode); - this.groupBox16.Controls.Add(this.cbDevTools); - this.groupBox16.Location = new System.Drawing.Point(329, 234); - this.groupBox16.Name = "groupBox16"; - this.groupBox16.Size = new System.Drawing.Size(413, 79); - this.groupBox16.TabIndex = 10; - this.groupBox16.TabStop = false; - this.groupBox16.Text = "Application"; + this.tabPageMultipliers.AllowDrop = true; + this.tabPageMultipliers.AutoScroll = true; + this.tabPageMultipliers.Controls.Add(this.TbRemoteServerSettingsUri); + this.tabPageMultipliers.Controls.Add(this.BtSettingsToClipboard); + this.tabPageMultipliers.Controls.Add(this.btExportMultipliers); + this.tabPageMultipliers.Controls.Add(this.BtRemoteServerSettingsUri); + this.tabPageMultipliers.Controls.Add(this.CbKeepMultipliersForNewLibrary); + this.tabPageMultipliers.Controls.Add(this.BtAutoImportLocalSettings); + this.tabPageMultipliers.Controls.Add(this.panel3); + this.tabPageMultipliers.Controls.Add(this.BtImportSettingsSelectFile); + this.tabPageMultipliers.Controls.Add(this.CbAtlasSettings); + this.tabPageMultipliers.Controls.Add(this.groupBox29); + this.tabPageMultipliers.Controls.Add(this.label34); + this.tabPageMultipliers.Controls.Add(this.groupBox18); + this.tabPageMultipliers.Controls.Add(this.label27); + this.tabPageMultipliers.Controls.Add(this.cbSingleplayerSettings); + this.tabPageMultipliers.Controls.Add(this.groupBox11); + this.tabPageMultipliers.Controls.Add(this.buttonEventToDefault); + this.tabPageMultipliers.Controls.Add(this.labelEvent); + this.tabPageMultipliers.Controls.Add(this.groupBoxMultiplier); + this.tabPageMultipliers.Controls.Add(this.groupBox2); + this.tabPageMultipliers.Controls.Add(this.groupBox3); + this.tabPageMultipliers.Controls.Add(this.label15); + this.tabPageMultipliers.Controls.Add(this.groupBox5); + this.tabPageMultipliers.Location = new System.Drawing.Point(4, 22); + this.tabPageMultipliers.Name = "tabPageMultipliers"; + this.tabPageMultipliers.Padding = new System.Windows.Forms.Padding(3); + this.tabPageMultipliers.Size = new System.Drawing.Size(750, 744); + this.tabPageMultipliers.TabIndex = 1; + this.tabPageMultipliers.Text = "Multipliers"; + this.tabPageMultipliers.UseVisualStyleBackColor = true; + this.tabPageMultipliers.DragDrop += new System.Windows.Forms.DragEventHandler(this.tabPage2_DragDrop); + this.tabPageMultipliers.DragEnter += new System.Windows.Forms.DragEventHandler(this.tabPage2_DragEnter); // - // CbStreamerMode + // TbRemoteServerSettingsUri // - this.CbStreamerMode.Location = new System.Drawing.Point(6, 19); - this.CbStreamerMode.Name = "CbStreamerMode"; - this.CbStreamerMode.Size = new System.Drawing.Size(407, 24); - this.CbStreamerMode.TabIndex = 1; - this.CbStreamerMode.Text = "Streamer mode (hide confidential info, e.g. ASB server tag)"; - this.CbStreamerMode.UseVisualStyleBackColor = true; + this.TbRemoteServerSettingsUri.Location = new System.Drawing.Point(407, 659); + this.TbRemoteServerSettingsUri.Name = "TbRemoteServerSettingsUri"; + this.TbRemoteServerSettingsUri.Size = new System.Drawing.Size(152, 20); + this.TbRemoteServerSettingsUri.TabIndex = 20; // - // cbDevTools + // BtSettingsToClipboard // - this.cbDevTools.Location = new System.Drawing.Point(6, 44); - this.cbDevTools.Name = "cbDevTools"; - this.cbDevTools.Size = new System.Drawing.Size(407, 24); - this.cbDevTools.TabIndex = 0; - this.cbDevTools.Text = "Show Dev Tools (needs restart). Adds a statmultiplier-tester and extractor tests"; - this.cbDevTools.UseVisualStyleBackColor = true; + this.BtSettingsToClipboard.Location = new System.Drawing.Point(600, 713); + this.BtSettingsToClipboard.Name = "BtSettingsToClipboard"; + this.BtSettingsToClipboard.Size = new System.Drawing.Size(142, 23); + this.BtSettingsToClipboard.TabIndex = 13; + this.BtSettingsToClipboard.Text = "Copy settings to clipboard"; + this.BtSettingsToClipboard.UseVisualStyleBackColor = true; + this.BtSettingsToClipboard.Click += new System.EventHandler(this.BtSettingsToClipboard_Click); // - // GbSpecies + // btExportMultipliers // - this.GbSpecies.Controls.Add(this.LbSpeciesSelectorCountLastUsed); - this.GbSpecies.Controls.Add(this.NudSpeciesSelectorCountLastUsed); - this.GbSpecies.Location = new System.Drawing.Point(6, 460); - this.GbSpecies.Name = "GbSpecies"; - this.GbSpecies.Size = new System.Drawing.Size(317, 43); - this.GbSpecies.TabIndex = 3; - this.GbSpecies.TabStop = false; - this.GbSpecies.Text = "Species Selection"; + this.btExportMultipliers.Location = new System.Drawing.Point(407, 713); + this.btExportMultipliers.Name = "btExportMultipliers"; + this.btExportMultipliers.Size = new System.Drawing.Size(187, 23); + this.btExportMultipliers.TabIndex = 11; + this.btExportMultipliers.Text = "Export multiplier settings to file…"; + this.btExportMultipliers.UseVisualStyleBackColor = true; + this.btExportMultipliers.Click += new System.EventHandler(this.btExportMultipliers_Click); // - // LbSpeciesSelectorCountLastUsed + // BtRemoteServerSettingsUri // - this.LbSpeciesSelectorCountLastUsed.AutoSize = true; - this.LbSpeciesSelectorCountLastUsed.Location = new System.Drawing.Point(6, 21); - this.LbSpeciesSelectorCountLastUsed.Name = "LbSpeciesSelectorCountLastUsed"; - this.LbSpeciesSelectorCountLastUsed.Size = new System.Drawing.Size(187, 13); - this.LbSpeciesSelectorCountLastUsed.TabIndex = 0; - this.LbSpeciesSelectorCountLastUsed.Text = "Number of displayed last used species"; + this.BtRemoteServerSettingsUri.Location = new System.Drawing.Point(565, 657); + this.BtRemoteServerSettingsUri.Name = "BtRemoteServerSettingsUri"; + this.BtRemoteServerSettingsUri.Size = new System.Drawing.Size(167, 23); + this.BtRemoteServerSettingsUri.TabIndex = 19; + this.BtRemoteServerSettingsUri.Text = "Import remote settings"; + this.BtRemoteServerSettingsUri.UseVisualStyleBackColor = true; + this.BtRemoteServerSettingsUri.Click += new System.EventHandler(this.BtRemoteServerSettingsUri_Click); // - // groupBox26 + // CbKeepMultipliersForNewLibrary // - this.groupBox26.Controls.Add(this.cbAdminConsoleCommandWithCheat); - this.groupBox26.Location = new System.Drawing.Point(329, 90); - this.groupBox26.Name = "groupBox26"; - this.groupBox26.Size = new System.Drawing.Size(413, 43); - this.groupBox26.TabIndex = 8; - this.groupBox26.TabStop = false; - this.groupBox26.Text = "Console Commands"; + this.CbKeepMultipliersForNewLibrary.AutoSize = true; + this.CbKeepMultipliersForNewLibrary.Location = new System.Drawing.Point(6, 699); + this.CbKeepMultipliersForNewLibrary.Name = "CbKeepMultipliersForNewLibrary"; + this.CbKeepMultipliersForNewLibrary.Size = new System.Drawing.Size(231, 17); + this.CbKeepMultipliersForNewLibrary.TabIndex = 18; + this.CbKeepMultipliersForNewLibrary.Text = "Keep multipliers when creating a new library"; + this.CbKeepMultipliersForNewLibrary.UseVisualStyleBackColor = true; // - // cbAdminConsoleCommandWithCheat + // BtAutoImportLocalSettings // - this.cbAdminConsoleCommandWithCheat.AutoSize = true; - this.cbAdminConsoleCommandWithCheat.Location = new System.Drawing.Point(6, 19); - this.cbAdminConsoleCommandWithCheat.Name = "cbAdminConsoleCommandWithCheat"; - this.cbAdminConsoleCommandWithCheat.Size = new System.Drawing.Size(239, 17); - this.cbAdminConsoleCommandWithCheat.TabIndex = 0; - this.cbAdminConsoleCommandWithCheat.Text = "Admin console commands with prefix \"cheat\""; - this.cbAdminConsoleCommandWithCheat.UseVisualStyleBackColor = true; + this.BtAutoImportLocalSettings.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.BtAutoImportLocalSettings.Location = new System.Drawing.Point(407, 628); + this.BtAutoImportLocalSettings.Name = "BtAutoImportLocalSettings"; + this.BtAutoImportLocalSettings.Size = new System.Drawing.Size(152, 23); + this.BtAutoImportLocalSettings.TabIndex = 17; + this.BtAutoImportLocalSettings.Text = "Import local settings"; + this.BtAutoImportLocalSettings.UseVisualStyleBackColor = false; + this.BtAutoImportLocalSettings.Click += new System.EventHandler(this.BtAutoImportLocalSettings_Click); // - // groupBox25 + // panel3 // - this.groupBox25.Controls.Add(this.CbbAppDefaultFontName); - this.groupBox25.Controls.Add(this.label48); - this.groupBox25.Controls.Add(this.CbbColorMode); - this.groupBox25.Controls.Add(this.nudDefaultFontSize); - this.groupBox25.Controls.Add(this.label33); - this.groupBox25.Controls.Add(this.label32); - this.groupBox25.Location = new System.Drawing.Point(329, 6); - this.groupBox25.Name = "groupBox25"; - this.groupBox25.Size = new System.Drawing.Size(413, 78); - this.groupBox25.TabIndex = 6; - this.groupBox25.TabStop = false; - this.groupBox25.Text = "Visuals (needs application restart)"; + this.panel3.Controls.Add(this.RbGameAsa); + this.panel3.Controls.Add(this.RbGameAse); + this.panel3.Location = new System.Drawing.Point(154, 19); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(117, 26); + this.panel3.TabIndex = 16; // - // CbbAppDefaultFontName + // RbGameAsa // - this.CbbAppDefaultFontName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CbbAppDefaultFontName.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CbbAppDefaultFontName.FormattingEnabled = true; - this.CbbAppDefaultFontName.Location = new System.Drawing.Point(74, 17); - this.CbbAppDefaultFontName.Name = "CbbAppDefaultFontName"; - this.CbbAppDefaultFontName.Size = new System.Drawing.Size(222, 21); - this.CbbAppDefaultFontName.TabIndex = 17; + this.RbGameAsa.AutoSize = true; + this.RbGameAsa.Location = new System.Drawing.Point(55, 3); + this.RbGameAsa.Name = "RbGameAsa"; + this.RbGameAsa.Size = new System.Drawing.Size(46, 17); + this.RbGameAsa.TabIndex = 1; + this.RbGameAsa.TabStop = true; + this.RbGameAsa.Text = "ASA"; + this.RbGameAsa.UseVisualStyleBackColor = true; + this.RbGameAsa.CheckedChanged += new System.EventHandler(this.RbGameAsa_CheckedChanged); // - // label48 + // RbGameAse // - this.label48.AutoSize = true; - this.label48.Location = new System.Drawing.Point(6, 48); - this.label48.Name = "label48"; - this.label48.Size = new System.Drawing.Size(60, 13); - this.label48.TabIndex = 4; - this.label48.Text = "Color mode"; + this.RbGameAse.AutoSize = true; + this.RbGameAse.Checked = true; + this.RbGameAse.Location = new System.Drawing.Point(3, 3); + this.RbGameAse.Name = "RbGameAse"; + this.RbGameAse.Size = new System.Drawing.Size(46, 17); + this.RbGameAse.TabIndex = 0; + this.RbGameAse.TabStop = true; + this.RbGameAse.Text = "ASE"; + this.RbGameAse.UseVisualStyleBackColor = true; // - // CbbColorMode + // BtImportSettingsSelectFile // - this.CbbColorMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CbbColorMode.FormattingEnabled = true; - this.CbbColorMode.Location = new System.Drawing.Point(74, 45); - this.CbbColorMode.Name = "CbbColorMode"; - this.CbbColorMode.Size = new System.Drawing.Size(222, 21); - this.CbbColorMode.TabIndex = 5; + this.BtImportSettingsSelectFile.Location = new System.Drawing.Point(565, 628); + this.BtImportSettingsSelectFile.Name = "BtImportSettingsSelectFile"; + this.BtImportSettingsSelectFile.Size = new System.Drawing.Size(167, 23); + this.BtImportSettingsSelectFile.TabIndex = 15; + this.BtImportSettingsSelectFile.Text = "Manually load settings from file"; + this.BtImportSettingsSelectFile.UseVisualStyleBackColor = true; + this.BtImportSettingsSelectFile.Click += new System.EventHandler(this.BtImportSettingsSelectFile_Click); // - // label33 + // CbAtlasSettings // - this.label33.AutoSize = true; - this.label33.Location = new System.Drawing.Point(302, 20); - this.label33.Name = "label33"; - this.label33.Size = new System.Drawing.Size(27, 13); - this.label33.TabIndex = 2; - this.label33.Text = "Size"; + this.CbAtlasSettings.AutoSize = true; + this.CbAtlasSettings.Location = new System.Drawing.Point(289, 23); + this.CbAtlasSettings.Name = "CbAtlasSettings"; + this.CbAtlasSettings.Size = new System.Drawing.Size(99, 17); + this.CbAtlasSettings.TabIndex = 14; + this.CbAtlasSettings.Text = "ATLAS settings"; + this.CbAtlasSettings.UseVisualStyleBackColor = true; // - // label32 + // groupBox29 // - this.label32.AutoSize = true; - this.label32.Location = new System.Drawing.Point(6, 22); - this.label32.Name = "label32"; - this.label32.Size = new System.Drawing.Size(62, 13); - this.label32.TabIndex = 0; - this.label32.Text = "Default font"; + this.groupBox29.Controls.Add(this.CbAllowSpeedLeveling); + this.groupBox29.Controls.Add(this.CbAllowFlyerSpeedLeveling); + this.groupBox29.Location = new System.Drawing.Point(6, 488); + this.groupBox29.Name = "groupBox29"; + this.groupBox29.Size = new System.Drawing.Size(382, 50); + this.groupBox29.TabIndex = 2; + this.groupBox29.TabStop = false; + this.groupBox29.Text = "Leveling of the speed stat"; // - // groupBox20 + // CbAllowSpeedLeveling // - this.groupBox20.Controls.Add(this.cbPrettifyJSON); - this.groupBox20.Location = new System.Drawing.Point(329, 139); - this.groupBox20.Name = "groupBox20"; - this.groupBox20.Size = new System.Drawing.Size(413, 40); - this.groupBox20.TabIndex = 9; - this.groupBox20.TabStop = false; - this.groupBox20.Text = "Prettify Library JSON-file"; + this.CbAllowSpeedLeveling.AutoSize = true; + this.CbAllowSpeedLeveling.Location = new System.Drawing.Point(6, 19); + this.CbAllowSpeedLeveling.Name = "CbAllowSpeedLeveling"; + this.CbAllowSpeedLeveling.Size = new System.Drawing.Size(174, 17); + this.CbAllowSpeedLeveling.TabIndex = 1; + this.CbAllowSpeedLeveling.Text = "Allow speed leveling (only ASA)"; + this.CbAllowSpeedLeveling.UseVisualStyleBackColor = true; // - // cbPrettifyJSON + // CbAllowFlyerSpeedLeveling // - this.cbPrettifyJSON.AutoSize = true; - this.cbPrettifyJSON.Location = new System.Drawing.Point(6, 19); - this.cbPrettifyJSON.Name = "cbPrettifyJSON"; - this.cbPrettifyJSON.Size = new System.Drawing.Size(365, 17); - this.cbPrettifyJSON.TabIndex = 0; - this.cbPrettifyJSON.Text = "Prettify JSON. Easier diff, but larger save-files. Usually disabling is better."; - this.cbPrettifyJSON.UseVisualStyleBackColor = true; - // - // groupBox17 - // - this.groupBox17.Controls.Add(this.LbLanguage2); - this.groupBox17.Controls.Add(this.CbbLanguage2); - this.groupBox17.Controls.Add(this.CbbLanguage); - this.groupBox17.Location = new System.Drawing.Point(329, 665); - this.groupBox17.Name = "groupBox17"; - this.groupBox17.Size = new System.Drawing.Size(413, 51); - this.groupBox17.TabIndex = 5; - this.groupBox17.TabStop = false; - this.groupBox17.Text = "Language (WIP)"; - // - // LbLanguage2 - // - this.LbLanguage2.AutoSize = true; - this.LbLanguage2.Location = new System.Drawing.Point(198, 19); - this.LbLanguage2.Name = "LbLanguage2"; - this.LbLanguage2.Size = new System.Drawing.Size(37, 13); - this.LbLanguage2.TabIndex = 2; - this.LbLanguage2.Text = "Export"; + this.CbAllowFlyerSpeedLeveling.AutoSize = true; + this.CbAllowFlyerSpeedLeveling.Location = new System.Drawing.Point(195, 19); + this.CbAllowFlyerSpeedLeveling.Name = "CbAllowFlyerSpeedLeveling"; + this.CbAllowFlyerSpeedLeveling.Size = new System.Drawing.Size(144, 17); + this.CbAllowFlyerSpeedLeveling.TabIndex = 0; + this.CbAllowFlyerSpeedLeveling.Text = "Allow flyer speed leveling"; + this.CbAllowFlyerSpeedLeveling.UseVisualStyleBackColor = true; + this.CbAllowFlyerSpeedLeveling.CheckedChanged += new System.EventHandler(this.CbAllowFlyerSpeedLeveling_CheckedChanged); // - // CbbLanguage2 + // label34 // - this.CbbLanguage2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CbbLanguage2.FormattingEnabled = true; - this.CbbLanguage2.Location = new System.Drawing.Point(241, 16); - this.CbbLanguage2.Name = "CbbLanguage2"; - this.CbbLanguage2.Size = new System.Drawing.Size(166, 21); - this.CbbLanguage2.TabIndex = 1; + this.label34.Location = new System.Drawing.Point(404, 682); + this.label34.Name = "label34"; + this.label34.Size = new System.Drawing.Size(338, 34); + this.label34.TabIndex = 10; + this.label34.Text = "You can export the settings on this page to a file or the clipboard to share it w" + + "ith tribe members or for bug reports."; // - // CbbLanguage + // groupBox18 // - this.CbbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CbbLanguage.FormattingEnabled = true; - this.CbbLanguage.Location = new System.Drawing.Point(3, 16); - this.CbbLanguage.Name = "CbbLanguage"; - this.CbbLanguage.Size = new System.Drawing.Size(176, 21); - this.CbbLanguage.TabIndex = 0; + this.groupBox18.Controls.Add(this.btApplyPreset); + this.groupBox18.Controls.Add(this.cbbStatMultiplierPresets); + this.groupBox18.Location = new System.Drawing.Point(6, 619); + this.groupBox18.Name = "groupBox18"; + this.groupBox18.Size = new System.Drawing.Size(382, 51); + this.groupBox18.TabIndex = 4; + this.groupBox18.TabStop = false; + this.groupBox18.Text = "Multiplier Presets"; // - // groupBox9 + // btApplyPreset // - this.groupBox9.Controls.Add(this.CbDisplayLibraryCreatureIndex); - this.groupBox9.Controls.Add(this.CbNaturalSortIgnoreSpaces); - this.groupBox9.Controls.Add(this.CbNaturalSorting); - this.groupBox9.Controls.Add(this.CbConsiderWastedStatsForTopCreatures); - this.groupBox9.Controls.Add(this.CbPauseGrowingTimerAfterAdding); - this.groupBox9.Controls.Add(this.CbLibrarySelectSelectedSpeciesOnLoad); - this.groupBox9.Controls.Add(this.cbLibraryHighlightTopCreatures); - this.groupBox9.Controls.Add(this.cbApplyGlobalSpeciesToLibrary); - this.groupBox9.Controls.Add(this.cbCreatureColorsLibrary); - this.groupBox9.Location = new System.Drawing.Point(6, 509); - this.groupBox9.Name = "groupBox9"; - this.groupBox9.Size = new System.Drawing.Size(317, 207); - this.groupBox9.TabIndex = 4; - this.groupBox9.TabStop = false; - this.groupBox9.Text = "Library"; + this.btApplyPreset.Location = new System.Drawing.Point(229, 17); + this.btApplyPreset.Name = "btApplyPreset"; + this.btApplyPreset.Size = new System.Drawing.Size(146, 23); + this.btApplyPreset.TabIndex = 1; + this.btApplyPreset.Text = "Apply Preset Multipliers"; + this.btApplyPreset.UseVisualStyleBackColor = true; + this.btApplyPreset.Click += new System.EventHandler(this.BtApplyPreset_Click); // - // CbDisplayLibraryCreatureIndex + // cbbStatMultiplierPresets // - this.CbDisplayLibraryCreatureIndex.AutoSize = true; - this.CbDisplayLibraryCreatureIndex.Location = new System.Drawing.Point(6, 180); - this.CbDisplayLibraryCreatureIndex.Name = "CbDisplayLibraryCreatureIndex"; - this.CbDisplayLibraryCreatureIndex.Size = new System.Drawing.Size(150, 17); - this.CbDisplayLibraryCreatureIndex.TabIndex = 8; - this.CbDisplayLibraryCreatureIndex.Text = "Display index before name"; - this.CbDisplayLibraryCreatureIndex.UseVisualStyleBackColor = true; + this.cbbStatMultiplierPresets.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbbStatMultiplierPresets.FormattingEnabled = true; + this.cbbStatMultiplierPresets.Location = new System.Drawing.Point(6, 19); + this.cbbStatMultiplierPresets.Name = "cbbStatMultiplierPresets"; + this.cbbStatMultiplierPresets.Size = new System.Drawing.Size(217, 21); + this.cbbStatMultiplierPresets.TabIndex = 0; // - // CbNaturalSortIgnoreSpaces + // label27 // - this.CbNaturalSortIgnoreSpaces.AutoSize = true; - this.CbNaturalSortIgnoreSpaces.Location = new System.Drawing.Point(181, 157); - this.CbNaturalSortIgnoreSpaces.Name = "CbNaturalSortIgnoreSpaces"; - this.CbNaturalSortIgnoreSpaces.Size = new System.Drawing.Size(93, 17); - this.CbNaturalSortIgnoreSpaces.TabIndex = 7; - this.CbNaturalSortIgnoreSpaces.Text = "Ignore spaces"; - this.CbNaturalSortIgnoreSpaces.UseVisualStyleBackColor = true; + this.label27.AutoSize = true; + this.label27.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label27.Location = new System.Drawing.Point(407, 562); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(37, 26); + this.label27.TabIndex = 12; + this.label27.Text = "💡"; // - // CbNaturalSorting + // cbSingleplayerSettings // - this.CbNaturalSorting.AutoSize = true; - this.CbNaturalSorting.Location = new System.Drawing.Point(6, 157); - this.CbNaturalSorting.Name = "CbNaturalSorting"; - this.CbNaturalSorting.Size = new System.Drawing.Size(155, 17); - this.CbNaturalSorting.TabIndex = 6; - this.CbNaturalSorting.Text = "Natural sort (e.g. 10 after 2)"; - this.CbNaturalSorting.UseVisualStyleBackColor = true; - this.CbNaturalSorting.CheckedChanged += new System.EventHandler(this.CbNaturalSorting_CheckedChanged); + this.cbSingleplayerSettings.AutoSize = true; + this.cbSingleplayerSettings.Location = new System.Drawing.Point(15, 23); + this.cbSingleplayerSettings.Name = "cbSingleplayerSettings"; + this.cbSingleplayerSettings.Size = new System.Drawing.Size(122, 17); + this.cbSingleplayerSettings.TabIndex = 0; + this.cbSingleplayerSettings.Text = "Singleplayer settings"; + this.cbSingleplayerSettings.UseVisualStyleBackColor = true; + this.cbSingleplayerSettings.CheckedChanged += new System.EventHandler(this.cbSingleplayerSettings_CheckedChanged); // - // CbConsiderWastedStatsForTopCreatures + // groupBox11 // - this.CbConsiderWastedStatsForTopCreatures.AutoSize = true; - this.CbConsiderWastedStatsForTopCreatures.Location = new System.Drawing.Point(6, 134); - this.CbConsiderWastedStatsForTopCreatures.Name = "CbConsiderWastedStatsForTopCreatures"; - this.CbConsiderWastedStatsForTopCreatures.Size = new System.Drawing.Size(280, 17); - this.CbConsiderWastedStatsForTopCreatures.TabIndex = 5; - this.CbConsiderWastedStatsForTopCreatures.Text = "Consider \"wasted\" stats for top creature determination"; - this.CbConsiderWastedStatsForTopCreatures.UseVisualStyleBackColor = true; + this.groupBox11.Controls.Add(this.cbAllowMoreThanHundredImprinting); + this.groupBox11.Controls.Add(this.nudWildLevelStep); + this.groupBox11.Controls.Add(this.cbConsiderWildLevelSteps); + this.groupBox11.Location = new System.Drawing.Point(6, 544); + this.groupBox11.Name = "groupBox11"; + this.groupBox11.Size = new System.Drawing.Size(382, 69); + this.groupBox11.TabIndex = 3; + this.groupBox11.TabStop = false; + this.groupBox11.Text = "Extractor"; // - // CbPauseGrowingTimerAfterAdding + // cbAllowMoreThanHundredImprinting // - this.CbPauseGrowingTimerAfterAdding.AutoSize = true; - this.CbPauseGrowingTimerAfterAdding.Location = new System.Drawing.Point(6, 19); - this.CbPauseGrowingTimerAfterAdding.Name = "CbPauseGrowingTimerAfterAdding"; - this.CbPauseGrowingTimerAfterAdding.Size = new System.Drawing.Size(236, 17); - this.CbPauseGrowingTimerAfterAdding.TabIndex = 4; - this.CbPauseGrowingTimerAfterAdding.Text = "Pause growing timer when adding a creature"; - this.CbPauseGrowingTimerAfterAdding.UseVisualStyleBackColor = true; + this.cbAllowMoreThanHundredImprinting.AutoSize = true; + this.cbAllowMoreThanHundredImprinting.Location = new System.Drawing.Point(6, 43); + this.cbAllowMoreThanHundredImprinting.Name = "cbAllowMoreThanHundredImprinting"; + this.cbAllowMoreThanHundredImprinting.Size = new System.Drawing.Size(177, 17); + this.cbAllowMoreThanHundredImprinting.TabIndex = 2; + this.cbAllowMoreThanHundredImprinting.Text = "Allow more than 100% imprinting"; + this.cbAllowMoreThanHundredImprinting.UseVisualStyleBackColor = true; // - // CbLibrarySelectSelectedSpeciesOnLoad + // nudWildLevelStep // - this.CbLibrarySelectSelectedSpeciesOnLoad.AutoSize = true; - this.CbLibrarySelectSelectedSpeciesOnLoad.Location = new System.Drawing.Point(6, 88); - this.CbLibrarySelectSelectedSpeciesOnLoad.Name = "CbLibrarySelectSelectedSpeciesOnLoad"; - this.CbLibrarySelectSelectedSpeciesOnLoad.Size = new System.Drawing.Size(202, 17); - this.CbLibrarySelectSelectedSpeciesOnLoad.TabIndex = 2; - this.CbLibrarySelectSelectedSpeciesOnLoad.Text = "Select currently used species on load"; - this.CbLibrarySelectSelectedSpeciesOnLoad.UseVisualStyleBackColor = true; + this.nudWildLevelStep.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudWildLevelStep.Location = new System.Drawing.Point(319, 17); + this.nudWildLevelStep.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudWildLevelStep.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.nudWildLevelStep.Name = "nudWildLevelStep"; + this.nudWildLevelStep.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudWildLevelStep.Size = new System.Drawing.Size(57, 20); + this.nudWildLevelStep.TabIndex = 1; + this.nudWildLevelStep.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); // - // cbLibraryHighlightTopCreatures + // cbConsiderWildLevelSteps // - this.cbLibraryHighlightTopCreatures.AutoSize = true; - this.cbLibraryHighlightTopCreatures.Location = new System.Drawing.Point(6, 111); - this.cbLibraryHighlightTopCreatures.Name = "cbLibraryHighlightTopCreatures"; - this.cbLibraryHighlightTopCreatures.Size = new System.Drawing.Size(136, 17); - this.cbLibraryHighlightTopCreatures.TabIndex = 3; - this.cbLibraryHighlightTopCreatures.Text = "Highlight Top creatures"; - this.cbLibraryHighlightTopCreatures.UseVisualStyleBackColor = true; + this.cbConsiderWildLevelSteps.AutoSize = true; + this.cbConsiderWildLevelSteps.Location = new System.Drawing.Point(6, 18); + this.cbConsiderWildLevelSteps.Name = "cbConsiderWildLevelSteps"; + this.cbConsiderWildLevelSteps.Size = new System.Drawing.Size(144, 17); + this.cbConsiderWildLevelSteps.TabIndex = 0; + this.cbConsiderWildLevelSteps.Text = "Consider Wild-level steps"; + this.cbConsiderWildLevelSteps.UseVisualStyleBackColor = true; // - // cbApplyGlobalSpeciesToLibrary + // buttonEventToDefault // - this.cbApplyGlobalSpeciesToLibrary.AutoSize = true; - this.cbApplyGlobalSpeciesToLibrary.Location = new System.Drawing.Point(6, 65); - this.cbApplyGlobalSpeciesToLibrary.Name = "cbApplyGlobalSpeciesToLibrary"; - this.cbApplyGlobalSpeciesToLibrary.Size = new System.Drawing.Size(201, 17); - this.cbApplyGlobalSpeciesToLibrary.TabIndex = 1; - this.cbApplyGlobalSpeciesToLibrary.Text = "Use global species selection in library"; - this.cbApplyGlobalSpeciesToLibrary.UseVisualStyleBackColor = true; + this.buttonEventToDefault.Location = new System.Drawing.Point(512, 137); + this.buttonEventToDefault.Name = "buttonEventToDefault"; + this.buttonEventToDefault.Size = new System.Drawing.Size(136, 23); + this.buttonEventToDefault.TabIndex = 8; + this.buttonEventToDefault.Text = "Copy non-Event to Event"; + this.buttonEventToDefault.UseVisualStyleBackColor = true; + this.buttonEventToDefault.Click += new System.EventHandler(this.buttonEventToDefault_Click); // - // cbCreatureColorsLibrary + // labelEvent // - this.cbCreatureColorsLibrary.AutoSize = true; - this.cbCreatureColorsLibrary.Location = new System.Drawing.Point(6, 42); - this.cbCreatureColorsLibrary.Name = "cbCreatureColorsLibrary"; - this.cbCreatureColorsLibrary.Size = new System.Drawing.Size(211, 17); - this.cbCreatureColorsLibrary.TabIndex = 0; - this.cbCreatureColorsLibrary.Text = "Show Creature-Colors columns in library"; - this.cbCreatureColorsLibrary.UseVisualStyleBackColor = true; + this.labelEvent.AutoSize = true; + this.labelEvent.Location = new System.Drawing.Point(654, 142); + this.labelEvent.Name = "labelEvent"; + this.labelEvent.Size = new System.Drawing.Size(78, 13); + this.labelEvent.TabIndex = 9; + this.labelEvent.Text = "↓ Event-values"; // - // tabPageInfoGraphic + // tabPageGeneral // - this.tabPageInfoGraphic.Controls.Add(this.BtNewRandomInfoGraphicCreature); - this.tabPageInfoGraphic.Controls.Add(this.label63); - this.tabPageInfoGraphic.Controls.Add(this.PbInfoGraphicPreview); - this.tabPageInfoGraphic.Controls.Add(this.groupBox32); - this.tabPageInfoGraphic.Controls.Add(this.groupBox28); - this.tabPageInfoGraphic.Controls.Add(this.label50); - this.tabPageInfoGraphic.Location = new System.Drawing.Point(4, 22); - this.tabPageInfoGraphic.Name = "tabPageInfoGraphic"; - this.tabPageInfoGraphic.Size = new System.Drawing.Size(750, 744); - this.tabPageInfoGraphic.TabIndex = 7; - this.tabPageInfoGraphic.Text = "Info Graphic"; - this.tabPageInfoGraphic.UseVisualStyleBackColor = true; + this.tabPageGeneral.AutoScroll = true; + this.tabPageGeneral.Controls.Add(this.CbAskSaveSettingsOnClose); + this.tabPageGeneral.Controls.Add(this.groupBox31); + this.tabPageGeneral.Controls.Add(this.groupBox30); + this.tabPageGeneral.Controls.Add(this.GbImgCacheLocalAppData); + this.tabPageGeneral.Controls.Add(this.groupBox16); + this.tabPageGeneral.Controls.Add(this.GbSpecies); + this.tabPageGeneral.Controls.Add(this.groupBox26); + this.tabPageGeneral.Controls.Add(this.groupBox25); + this.tabPageGeneral.Controls.Add(this.groupBox20); + this.tabPageGeneral.Controls.Add(this.groupBox17); + this.tabPageGeneral.Controls.Add(this.groupBox9); + this.tabPageGeneral.Controls.Add(this.groupBox7); + this.tabPageGeneral.Controls.Add(this.groupBox4); + this.tabPageGeneral.Controls.Add(this.groupBox6); + this.tabPageGeneral.Location = new System.Drawing.Point(4, 22); + this.tabPageGeneral.Name = "tabPageGeneral"; + this.tabPageGeneral.Padding = new System.Windows.Forms.Padding(3); + this.tabPageGeneral.Size = new System.Drawing.Size(750, 744); + this.tabPageGeneral.TabIndex = 0; + this.tabPageGeneral.Text = "General"; + this.tabPageGeneral.UseVisualStyleBackColor = true; // - // BtNewRandomInfoGraphicCreature + // CbAskSaveSettingsOnClose // - this.BtNewRandomInfoGraphicCreature.Location = new System.Drawing.Point(62, 293); - this.BtNewRandomInfoGraphicCreature.Name = "BtNewRandomInfoGraphicCreature"; - this.BtNewRandomInfoGraphicCreature.Size = new System.Drawing.Size(200, 20); - this.BtNewRandomInfoGraphicCreature.TabIndex = 19; - this.BtNewRandomInfoGraphicCreature.Text = "new random creature for preview"; - this.BtNewRandomInfoGraphicCreature.UseVisualStyleBackColor = true; - this.BtNewRandomInfoGraphicCreature.Click += new System.EventHandler(this.BtNewRandomInfoGraphicCreature_Click); + this.CbAskSaveSettingsOnClose.AutoSize = true; + this.CbAskSaveSettingsOnClose.Location = new System.Drawing.Point(435, 721); + this.CbAskSaveSettingsOnClose.Name = "CbAskSaveSettingsOnClose"; + this.CbAskSaveSettingsOnClose.Size = new System.Drawing.Size(309, 17); + this.CbAskSaveSettingsOnClose.TabIndex = 15; + this.CbAskSaveSettingsOnClose.Text = "Ask to save settings if this window is closed via the X button"; + this.CbAskSaveSettingsOnClose.UseVisualStyleBackColor = true; // - // label63 + // groupBox31 // - this.label63.AutoSize = true; - this.label63.Location = new System.Drawing.Point(11, 300); - this.label63.Name = "label63"; - this.label63.Size = new System.Drawing.Size(45, 13); - this.label63.TabIndex = 18; - this.label63.Text = "Preview"; + this.groupBox31.Controls.Add(this.CbColorIdOnColorRegionButton); + this.groupBox31.Controls.Add(this.CbAlwaysShowAllColorRegions); + this.groupBox31.Controls.Add(this.CbHideInvisibleColorRegions); + this.groupBox31.Location = new System.Drawing.Point(329, 319); + this.groupBox31.Name = "groupBox31"; + this.groupBox31.Size = new System.Drawing.Size(413, 66); + this.groupBox31.TabIndex = 14; + this.groupBox31.TabStop = false; + this.groupBox31.Text = "Color Regions"; // - // PbInfoGraphicPreview + // CbColorIdOnColorRegionButton // - this.PbInfoGraphicPreview.Location = new System.Drawing.Point(8, 325); - this.PbInfoGraphicPreview.Name = "PbInfoGraphicPreview"; - this.PbInfoGraphicPreview.Size = new System.Drawing.Size(333, 143); - this.PbInfoGraphicPreview.TabIndex = 9; - this.PbInfoGraphicPreview.TabStop = false; + this.CbColorIdOnColorRegionButton.AutoSize = true; + this.CbColorIdOnColorRegionButton.Location = new System.Drawing.Point(6, 42); + this.CbColorIdOnColorRegionButton.Name = "CbColorIdOnColorRegionButton"; + this.CbColorIdOnColorRegionButton.Size = new System.Drawing.Size(201, 17); + this.CbColorIdOnColorRegionButton.TabIndex = 2; + this.CbColorIdOnColorRegionButton.Text = "Show color id on color region buttons"; + this.CbColorIdOnColorRegionButton.UseVisualStyleBackColor = true; // - // groupBox32 + // CbAlwaysShowAllColorRegions // - this.groupBox32.Controls.Add(this.LbInfoGraphicSize); - this.groupBox32.Controls.Add(this.CbbInfoGraphicFontName); - this.groupBox32.Controls.Add(this.nudInfoGraphicHeight); - this.groupBox32.Controls.Add(this.BtInfoGraphicForeColor); - this.groupBox32.Controls.Add(this.BtInfoGraphicBackColor); - this.groupBox32.Controls.Add(this.BtInfoGraphicBorderColor); - this.groupBox32.Controls.Add(this.label51); - this.groupBox32.Location = new System.Drawing.Point(488, 47); - this.groupBox32.Name = "groupBox32"; - this.groupBox32.Size = new System.Drawing.Size(254, 197); - this.groupBox32.TabIndex = 17; - this.groupBox32.TabStop = false; - this.groupBox32.Text = "Visuals"; + this.CbAlwaysShowAllColorRegions.AutoSize = true; + this.CbAlwaysShowAllColorRegions.Location = new System.Drawing.Point(6, 19); + this.CbAlwaysShowAllColorRegions.Name = "CbAlwaysShowAllColorRegions"; + this.CbAlwaysShowAllColorRegions.Size = new System.Drawing.Size(163, 17); + this.CbAlwaysShowAllColorRegions.TabIndex = 1; + this.CbAlwaysShowAllColorRegions.Text = "Always show all color regions"; + this.CbAlwaysShowAllColorRegions.UseVisualStyleBackColor = true; // - // LbInfoGraphicSize + // CbHideInvisibleColorRegions // - this.LbInfoGraphicSize.AutoSize = true; - this.LbInfoGraphicSize.Location = new System.Drawing.Point(6, 20); - this.LbInfoGraphicSize.Name = "LbInfoGraphicSize"; - this.LbInfoGraphicSize.Size = new System.Drawing.Size(114, 13); - this.LbInfoGraphicSize.TabIndex = 1; - this.LbInfoGraphicSize.Text = "InfoGraphic height [px]"; + this.CbHideInvisibleColorRegions.AutoSize = true; + this.CbHideInvisibleColorRegions.Location = new System.Drawing.Point(222, 19); + this.CbHideInvisibleColorRegions.Name = "CbHideInvisibleColorRegions"; + this.CbHideInvisibleColorRegions.Size = new System.Drawing.Size(149, 17); + this.CbHideInvisibleColorRegions.TabIndex = 0; + this.CbHideInvisibleColorRegions.Text = "Hide invisble color regions"; + this.CbHideInvisibleColorRegions.UseVisualStyleBackColor = true; // - // CbbInfoGraphicFontName + // groupBox30 // - this.CbbInfoGraphicFontName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CbbInfoGraphicFontName.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CbbInfoGraphicFontName.FormattingEnabled = true; - this.CbbInfoGraphicFontName.Location = new System.Drawing.Point(6, 154); - this.CbbInfoGraphicFontName.Name = "CbbInfoGraphicFontName"; - this.CbbInfoGraphicFontName.Size = new System.Drawing.Size(242, 21); - this.CbbInfoGraphicFontName.TabIndex = 16; - this.CbbInfoGraphicFontName.SelectedIndexChanged += new System.EventHandler(this.CbbInfoGraphicFontName_SelectedIndexChanged); + this.groupBox30.Controls.Add(this.CbExportTableFieldsAll); + this.groupBox30.Controls.Add(this.BExportSpreadsheetMoveDown); + this.groupBox30.Controls.Add(this.BExportSpreadsheetMoveUp); + this.groupBox30.Controls.Add(this.ClbExportSpreadsheetFields); + this.groupBox30.Location = new System.Drawing.Point(329, 391); + this.groupBox30.Name = "groupBox30"; + this.groupBox30.Size = new System.Drawing.Size(413, 268); + this.groupBox30.TabIndex = 13; + this.groupBox30.TabStop = false; + this.groupBox30.Text = "Info to export for spreadsheet"; // - // BtInfoGraphicForeColor + // CbExportTableFieldsAll // - this.BtInfoGraphicForeColor.Location = new System.Drawing.Point(9, 44); - this.BtInfoGraphicForeColor.Name = "BtInfoGraphicForeColor"; - this.BtInfoGraphicForeColor.Size = new System.Drawing.Size(75, 23); - this.BtInfoGraphicForeColor.TabIndex = 9; - this.BtInfoGraphicForeColor.Text = "ForeColor"; - this.BtInfoGraphicForeColor.UseVisualStyleBackColor = true; - this.BtInfoGraphicForeColor.Click += new System.EventHandler(this.ColorButtonClick); + this.CbExportTableFieldsAll.AutoSize = true; + this.CbExportTableFieldsAll.Location = new System.Drawing.Point(36, 19); + this.CbExportTableFieldsAll.Name = "CbExportTableFieldsAll"; + this.CbExportTableFieldsAll.Size = new System.Drawing.Size(37, 17); + this.CbExportTableFieldsAll.TabIndex = 15; + this.CbExportTableFieldsAll.Text = "All"; + this.CbExportTableFieldsAll.UseVisualStyleBackColor = true; + this.CbExportTableFieldsAll.CheckedChanged += new System.EventHandler(this.CbExportTableFieldsAll_CheckedChanged); // - // BtInfoGraphicBackColor + // BExportSpreadsheetMoveDown // - this.BtInfoGraphicBackColor.Location = new System.Drawing.Point(9, 73); - this.BtInfoGraphicBackColor.Name = "BtInfoGraphicBackColor"; - this.BtInfoGraphicBackColor.Size = new System.Drawing.Size(75, 23); - this.BtInfoGraphicBackColor.TabIndex = 10; - this.BtInfoGraphicBackColor.Text = "BackColor"; - this.BtInfoGraphicBackColor.UseVisualStyleBackColor = true; - this.BtInfoGraphicBackColor.Click += new System.EventHandler(this.ColorButtonClick); + this.BExportSpreadsheetMoveDown.Location = new System.Drawing.Point(6, 48); + this.BExportSpreadsheetMoveDown.Name = "BExportSpreadsheetMoveDown"; + this.BExportSpreadsheetMoveDown.Size = new System.Drawing.Size(24, 23); + this.BExportSpreadsheetMoveDown.TabIndex = 14; + this.BExportSpreadsheetMoveDown.Text = "▼"; + this.BExportSpreadsheetMoveDown.UseVisualStyleBackColor = true; + this.BExportSpreadsheetMoveDown.Click += new System.EventHandler(this.BExportSpreadsheetMoveDown_Click); // - // BtInfoGraphicBorderColor + // BExportSpreadsheetMoveUp // - this.BtInfoGraphicBorderColor.Location = new System.Drawing.Point(9, 102); - this.BtInfoGraphicBorderColor.Name = "BtInfoGraphicBorderColor"; - this.BtInfoGraphicBorderColor.Size = new System.Drawing.Size(75, 23); - this.BtInfoGraphicBorderColor.TabIndex = 11; - this.BtInfoGraphicBorderColor.Text = "BorderColor"; - this.BtInfoGraphicBorderColor.UseVisualStyleBackColor = true; - this.BtInfoGraphicBorderColor.Click += new System.EventHandler(this.ColorButtonClick); + this.BExportSpreadsheetMoveUp.Location = new System.Drawing.Point(6, 19); + this.BExportSpreadsheetMoveUp.Name = "BExportSpreadsheetMoveUp"; + this.BExportSpreadsheetMoveUp.Size = new System.Drawing.Size(24, 23); + this.BExportSpreadsheetMoveUp.TabIndex = 13; + this.BExportSpreadsheetMoveUp.Text = "▲"; + this.BExportSpreadsheetMoveUp.UseVisualStyleBackColor = true; + this.BExportSpreadsheetMoveUp.Click += new System.EventHandler(this.BExportSpreadsheetMoveUp_Click); // - // label51 + // ClbExportSpreadsheetFields // - this.label51.AutoSize = true; - this.label51.Location = new System.Drawing.Point(6, 138); - this.label51.Name = "label51"; - this.label51.Size = new System.Drawing.Size(57, 13); - this.label51.TabIndex = 7; - this.label51.Text = "Font name"; + this.ClbExportSpreadsheetFields.FormattingEnabled = true; + this.ClbExportSpreadsheetFields.Location = new System.Drawing.Point(36, 42); + this.ClbExportSpreadsheetFields.Name = "ClbExportSpreadsheetFields"; + this.ClbExportSpreadsheetFields.Size = new System.Drawing.Size(371, 214); + this.ClbExportSpreadsheetFields.TabIndex = 12; // - // groupBox28 + // GbImgCacheLocalAppData // - this.groupBox28.Controls.Add(this.CbInfoGraphicColorRegionNamesIfNoImage); - this.groupBox28.Controls.Add(this.CbInfoGraphicStatValues); - this.groupBox28.Controls.Add(this.CbInfoGraphicAddRegionNames); - this.groupBox28.Controls.Add(this.CbInfoGraphicCreatureName); - this.groupBox28.Controls.Add(this.CbInfoGraphicMutations); - this.groupBox28.Controls.Add(this.CbInfoGraphicGenerations); - this.groupBox28.Controls.Add(this.CbInfoGraphicDomLevels); - this.groupBox28.Controls.Add(this.CbInfoGraphicDisplayMaxWildLevel); - this.groupBox28.Location = new System.Drawing.Point(8, 47); - this.groupBox28.Name = "groupBox28"; - this.groupBox28.Size = new System.Drawing.Size(474, 224); - this.groupBox28.TabIndex = 8; - this.groupBox28.TabStop = false; - this.groupBox28.Text = "Include Info"; + this.GbImgCacheLocalAppData.Controls.Add(this.CbImgCacheUseLocalAppData); + this.GbImgCacheLocalAppData.Location = new System.Drawing.Point(329, 185); + this.GbImgCacheLocalAppData.Name = "GbImgCacheLocalAppData"; + this.GbImgCacheLocalAppData.Size = new System.Drawing.Size(413, 43); + this.GbImgCacheLocalAppData.TabIndex = 11; + this.GbImgCacheLocalAppData.TabStop = false; + this.GbImgCacheLocalAppData.Text = "Image Cache Location"; // - // CbInfoGraphicColorRegionNamesIfNoImage + // CbImgCacheUseLocalAppData // - this.CbInfoGraphicColorRegionNamesIfNoImage.AutoSize = true; - this.CbInfoGraphicColorRegionNamesIfNoImage.Location = new System.Drawing.Point(6, 157); - this.CbInfoGraphicColorRegionNamesIfNoImage.Name = "CbInfoGraphicColorRegionNamesIfNoImage"; - this.CbInfoGraphicColorRegionNamesIfNoImage.Size = new System.Drawing.Size(224, 17); - this.CbInfoGraphicColorRegionNamesIfNoImage.TabIndex = 15; - this.CbInfoGraphicColorRegionNamesIfNoImage.Text = "color region names if no image is available"; - this.CbInfoGraphicColorRegionNamesIfNoImage.UseVisualStyleBackColor = true; - this.CbInfoGraphicColorRegionNamesIfNoImage.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); + this.CbImgCacheUseLocalAppData.Dock = System.Windows.Forms.DockStyle.Fill; + this.CbImgCacheUseLocalAppData.Location = new System.Drawing.Point(3, 16); + this.CbImgCacheUseLocalAppData.Name = "CbImgCacheUseLocalAppData"; + this.CbImgCacheUseLocalAppData.Size = new System.Drawing.Size(407, 24); + this.CbImgCacheUseLocalAppData.TabIndex = 0; + this.CbImgCacheUseLocalAppData.Text = "Use LocalAppData for Image cache"; + this.CbImgCacheUseLocalAppData.UseVisualStyleBackColor = true; // - // CbInfoGraphicStatValues + // groupBox16 // - this.CbInfoGraphicStatValues.AutoSize = true; - this.CbInfoGraphicStatValues.Location = new System.Drawing.Point(6, 65); - this.CbInfoGraphicStatValues.Name = "CbInfoGraphicStatValues"; - this.CbInfoGraphicStatValues.Size = new System.Drawing.Size(192, 17); - this.CbInfoGraphicStatValues.TabIndex = 14; - this.CbInfoGraphicStatValues.Text = "stat values additionally to the levels"; - this.CbInfoGraphicStatValues.UseVisualStyleBackColor = true; - this.CbInfoGraphicStatValues.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); + this.groupBox16.Controls.Add(this.CbStreamerMode); + this.groupBox16.Controls.Add(this.cbDevTools); + this.groupBox16.Location = new System.Drawing.Point(329, 234); + this.groupBox16.Name = "groupBox16"; + this.groupBox16.Size = new System.Drawing.Size(413, 79); + this.groupBox16.TabIndex = 10; + this.groupBox16.TabStop = false; + this.groupBox16.Text = "Application"; // - // CbInfoGraphicAddRegionNames + // CbStreamerMode // - this.CbInfoGraphicAddRegionNames.AutoSize = true; - this.CbInfoGraphicAddRegionNames.Location = new System.Drawing.Point(6, 134); - this.CbInfoGraphicAddRegionNames.Name = "CbInfoGraphicAddRegionNames"; - this.CbInfoGraphicAddRegionNames.Size = new System.Drawing.Size(115, 17); - this.CbInfoGraphicAddRegionNames.TabIndex = 13; - this.CbInfoGraphicAddRegionNames.Text = "color region names"; - this.CbInfoGraphicAddRegionNames.UseVisualStyleBackColor = true; - this.CbInfoGraphicAddRegionNames.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); - // - // CbInfoGraphicCreatureName - // - this.CbInfoGraphicCreatureName.AutoSize = true; - this.CbInfoGraphicCreatureName.Location = new System.Drawing.Point(6, 19); - this.CbInfoGraphicCreatureName.Name = "CbInfoGraphicCreatureName"; - this.CbInfoGraphicCreatureName.Size = new System.Drawing.Size(94, 17); - this.CbInfoGraphicCreatureName.TabIndex = 12; - this.CbInfoGraphicCreatureName.Text = "creature name"; - this.CbInfoGraphicCreatureName.UseVisualStyleBackColor = true; - this.CbInfoGraphicCreatureName.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); + this.CbStreamerMode.Location = new System.Drawing.Point(6, 19); + this.CbStreamerMode.Name = "CbStreamerMode"; + this.CbStreamerMode.Size = new System.Drawing.Size(407, 24); + this.CbStreamerMode.TabIndex = 1; + this.CbStreamerMode.Text = "Streamer mode (hide confidential info, e.g. ASB server tag)"; + this.CbStreamerMode.UseVisualStyleBackColor = true; // - // CbInfoGraphicMutations + // cbDevTools // - this.CbInfoGraphicMutations.AutoSize = true; - this.CbInfoGraphicMutations.Location = new System.Drawing.Point(6, 88); - this.CbInfoGraphicMutations.Name = "CbInfoGraphicMutations"; - this.CbInfoGraphicMutations.Size = new System.Drawing.Size(71, 17); - this.CbInfoGraphicMutations.TabIndex = 5; - this.CbInfoGraphicMutations.Text = "mutations"; - this.CbInfoGraphicMutations.UseVisualStyleBackColor = true; - this.CbInfoGraphicMutations.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); + this.cbDevTools.Location = new System.Drawing.Point(6, 44); + this.cbDevTools.Name = "cbDevTools"; + this.cbDevTools.Size = new System.Drawing.Size(407, 24); + this.cbDevTools.TabIndex = 0; + this.cbDevTools.Text = "Show Dev Tools (needs restart). Adds a statmultiplier-tester and extractor tests"; + this.cbDevTools.UseVisualStyleBackColor = true; // - // CbInfoGraphicGenerations + // GbSpecies // - this.CbInfoGraphicGenerations.AutoSize = true; - this.CbInfoGraphicGenerations.Location = new System.Drawing.Point(6, 111); - this.CbInfoGraphicGenerations.Name = "CbInfoGraphicGenerations"; - this.CbInfoGraphicGenerations.Size = new System.Drawing.Size(148, 17); - this.CbInfoGraphicGenerations.TabIndex = 6; - this.CbInfoGraphicGenerations.Text = "generation of the creature"; - this.CbInfoGraphicGenerations.UseVisualStyleBackColor = true; - this.CbInfoGraphicGenerations.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); + this.GbSpecies.Controls.Add(this.LbSpeciesSelectorCountLastUsed); + this.GbSpecies.Controls.Add(this.NudSpeciesSelectorCountLastUsed); + this.GbSpecies.Location = new System.Drawing.Point(6, 460); + this.GbSpecies.Name = "GbSpecies"; + this.GbSpecies.Size = new System.Drawing.Size(317, 43); + this.GbSpecies.TabIndex = 3; + this.GbSpecies.TabStop = false; + this.GbSpecies.Text = "Species Selection"; // - // CbInfoGraphicDomLevels + // LbSpeciesSelectorCountLastUsed // - this.CbInfoGraphicDomLevels.AutoSize = true; - this.CbInfoGraphicDomLevels.Location = new System.Drawing.Point(6, 42); - this.CbInfoGraphicDomLevels.Name = "CbInfoGraphicDomLevels"; - this.CbInfoGraphicDomLevels.Size = new System.Drawing.Size(460, 17); - this.CbInfoGraphicDomLevels.TabIndex = 4; - this.CbInfoGraphicDomLevels.Text = "levels and values of the current state (if disabled the values relevant for breed" + - "ing are shown)"; - this.CbInfoGraphicDomLevels.UseVisualStyleBackColor = true; - this.CbInfoGraphicDomLevels.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); + this.LbSpeciesSelectorCountLastUsed.AutoSize = true; + this.LbSpeciesSelectorCountLastUsed.Location = new System.Drawing.Point(6, 21); + this.LbSpeciesSelectorCountLastUsed.Name = "LbSpeciesSelectorCountLastUsed"; + this.LbSpeciesSelectorCountLastUsed.Size = new System.Drawing.Size(187, 13); + this.LbSpeciesSelectorCountLastUsed.TabIndex = 0; + this.LbSpeciesSelectorCountLastUsed.Text = "Number of displayed last used species"; // - // CbInfoGraphicDisplayMaxWildLevel + // NudSpeciesSelectorCountLastUsed // - this.CbInfoGraphicDisplayMaxWildLevel.AutoSize = true; - this.CbInfoGraphicDisplayMaxWildLevel.Location = new System.Drawing.Point(6, 180); - this.CbInfoGraphicDisplayMaxWildLevel.Name = "CbInfoGraphicDisplayMaxWildLevel"; - this.CbInfoGraphicDisplayMaxWildLevel.Size = new System.Drawing.Size(123, 17); - this.CbInfoGraphicDisplayMaxWildLevel.TabIndex = 3; - this.CbInfoGraphicDisplayMaxWildLevel.Text = "max wild server level"; - this.CbInfoGraphicDisplayMaxWildLevel.UseVisualStyleBackColor = true; - this.CbInfoGraphicDisplayMaxWildLevel.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); + this.NudSpeciesSelectorCountLastUsed.ForeColor = System.Drawing.SystemColors.GrayText; + this.NudSpeciesSelectorCountLastUsed.Location = new System.Drawing.Point(252, 19); + this.NudSpeciesSelectorCountLastUsed.Name = "NudSpeciesSelectorCountLastUsed"; + this.NudSpeciesSelectorCountLastUsed.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NudSpeciesSelectorCountLastUsed.Size = new System.Drawing.Size(57, 20); + this.NudSpeciesSelectorCountLastUsed.TabIndex = 1; // - // label50 + // groupBox26 // - this.label50.AutoSize = true; - this.label50.Location = new System.Drawing.Point(11, 18); - this.label50.Name = "label50"; - this.label50.Size = new System.Drawing.Size(298, 13); - this.label50.TabIndex = 0; - this.label50.Text = "Styling of the infographic that can be exported from the library."; + this.groupBox26.Controls.Add(this.cbAdminConsoleCommandWithCheat); + this.groupBox26.Location = new System.Drawing.Point(329, 90); + this.groupBox26.Name = "groupBox26"; + this.groupBox26.Size = new System.Drawing.Size(413, 43); + this.groupBox26.TabIndex = 8; + this.groupBox26.TabStop = false; + this.groupBox26.Text = "Console Commands"; // - // tabPageImportSavegame + // cbAdminConsoleCommandWithCheat // - this.tabPageImportSavegame.AutoScroll = true; - this.tabPageImportSavegame.Controls.Add(this.label68); - this.tabPageImportSavegame.Controls.Add(this.CbImportUnclaimedBabies); - this.tabPageImportSavegame.Controls.Add(this.cbSaveImportCryo); - this.tabPageImportSavegame.Controls.Add(this.label24); - this.tabPageImportSavegame.Controls.Add(this.cbIgnoreUnknownBPOnSaveImport); - this.tabPageImportSavegame.Controls.Add(this.groupBox14); - this.tabPageImportSavegame.Controls.Add(this.textBoxImportTribeNameFilter); - this.tabPageImportSavegame.Controls.Add(this.groupBox15); - this.tabPageImportSavegame.Controls.Add(this.label_Filter); - this.tabPageImportSavegame.Controls.Add(this.cbImportUpdateCreatureStatus); - this.tabPageImportSavegame.Location = new System.Drawing.Point(4, 22); - this.tabPageImportSavegame.Name = "tabPageImportSavegame"; - this.tabPageImportSavegame.Padding = new System.Windows.Forms.Padding(3); - this.tabPageImportSavegame.Size = new System.Drawing.Size(750, 744); - this.tabPageImportSavegame.TabIndex = 2; - this.tabPageImportSavegame.Text = "Import Savegame"; - this.tabPageImportSavegame.UseVisualStyleBackColor = true; + this.cbAdminConsoleCommandWithCheat.AutoSize = true; + this.cbAdminConsoleCommandWithCheat.Location = new System.Drawing.Point(6, 19); + this.cbAdminConsoleCommandWithCheat.Name = "cbAdminConsoleCommandWithCheat"; + this.cbAdminConsoleCommandWithCheat.Size = new System.Drawing.Size(239, 17); + this.cbAdminConsoleCommandWithCheat.TabIndex = 0; + this.cbAdminConsoleCommandWithCheat.Text = "Admin console commands with prefix \"cheat\""; + this.cbAdminConsoleCommandWithCheat.UseVisualStyleBackColor = true; // - // label68 + // groupBox25 // - this.label68.AutoSize = true; - this.label68.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label68.Location = new System.Drawing.Point(8, 3); - this.label68.Name = "label68"; - this.label68.Size = new System.Drawing.Size(506, 20); - this.label68.TabIndex = 1; - this.label68.Text = "Only ARK: Survival Evolved is support, no support for ASA yet."; + this.groupBox25.Controls.Add(this.CbbAppDefaultFontName); + this.groupBox25.Controls.Add(this.label48); + this.groupBox25.Controls.Add(this.CbbColorMode); + this.groupBox25.Controls.Add(this.nudDefaultFontSize); + this.groupBox25.Controls.Add(this.label33); + this.groupBox25.Controls.Add(this.label32); + this.groupBox25.Location = new System.Drawing.Point(329, 6); + this.groupBox25.Name = "groupBox25"; + this.groupBox25.Size = new System.Drawing.Size(413, 78); + this.groupBox25.TabIndex = 6; + this.groupBox25.TabStop = false; + this.groupBox25.Text = "Visuals (needs application restart)"; // - // CbImportUnclaimedBabies + // CbbAppDefaultFontName // - this.CbImportUnclaimedBabies.AutoSize = true; - this.CbImportUnclaimedBabies.Location = new System.Drawing.Point(11, 163); - this.CbImportUnclaimedBabies.Name = "CbImportUnclaimedBabies"; - this.CbImportUnclaimedBabies.Size = new System.Drawing.Size(140, 17); - this.CbImportUnclaimedBabies.TabIndex = 8; - this.CbImportUnclaimedBabies.Text = "Import unclaimed babies"; - this.CbImportUnclaimedBabies.UseVisualStyleBackColor = true; + this.CbbAppDefaultFontName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CbbAppDefaultFontName.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CbbAppDefaultFontName.FormattingEnabled = true; + this.CbbAppDefaultFontName.Location = new System.Drawing.Point(74, 17); + this.CbbAppDefaultFontName.Name = "CbbAppDefaultFontName"; + this.CbbAppDefaultFontName.Size = new System.Drawing.Size(222, 21); + this.CbbAppDefaultFontName.TabIndex = 17; // - // cbSaveImportCryo + // label48 // - this.cbSaveImportCryo.AutoSize = true; - this.cbSaveImportCryo.Location = new System.Drawing.Point(11, 140); - this.cbSaveImportCryo.Name = "cbSaveImportCryo"; - this.cbSaveImportCryo.Size = new System.Drawing.Size(216, 17); - this.cbSaveImportCryo.TabIndex = 3; - this.cbSaveImportCryo.Text = "Import creatures in cryopods or soultraps"; - this.cbSaveImportCryo.UseVisualStyleBackColor = true; + this.label48.AutoSize = true; + this.label48.Location = new System.Drawing.Point(6, 48); + this.label48.Name = "label48"; + this.label48.Size = new System.Drawing.Size(60, 13); + this.label48.TabIndex = 4; + this.label48.Text = "Color mode"; // - // cbIgnoreUnknownBPOnSaveImport + // CbbColorMode // - this.cbIgnoreUnknownBPOnSaveImport.AutoSize = true; - this.cbIgnoreUnknownBPOnSaveImport.Location = new System.Drawing.Point(11, 117); - this.cbIgnoreUnknownBPOnSaveImport.Name = "cbIgnoreUnknownBPOnSaveImport"; - this.cbIgnoreUnknownBPOnSaveImport.Size = new System.Drawing.Size(334, 17); - this.cbIgnoreUnknownBPOnSaveImport.TabIndex = 2; - this.cbIgnoreUnknownBPOnSaveImport.Text = "Ignore unknown species on import and don\'t show a messagebox"; - this.cbIgnoreUnknownBPOnSaveImport.UseVisualStyleBackColor = true; + this.CbbColorMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CbbColorMode.FormattingEnabled = true; + this.CbbColorMode.Location = new System.Drawing.Point(74, 45); + this.CbbColorMode.Name = "CbbColorMode"; + this.CbbColorMode.Size = new System.Drawing.Size(222, 21); + this.CbbColorMode.TabIndex = 5; // - // textBoxImportTribeNameFilter + // nudDefaultFontSize // - this.textBoxImportTribeNameFilter.Location = new System.Drawing.Point(5, 202); - this.textBoxImportTribeNameFilter.Name = "textBoxImportTribeNameFilter"; - this.textBoxImportTribeNameFilter.Size = new System.Drawing.Size(730, 20); - this.textBoxImportTribeNameFilter.TabIndex = 5; + this.nudDefaultFontSize.DecimalPlaces = 2; + this.nudDefaultFontSize.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudDefaultFontSize.Location = new System.Drawing.Point(335, 18); + this.nudDefaultFontSize.Name = "nudDefaultFontSize"; + this.nudDefaultFontSize.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudDefaultFontSize.Size = new System.Drawing.Size(72, 20); + this.nudDefaultFontSize.TabIndex = 3; // - // label_Filter + // label33 // - this.label_Filter.AutoSize = true; - this.label_Filter.Location = new System.Drawing.Point(5, 186); - this.label_Filter.Name = "label_Filter"; - this.label_Filter.Size = new System.Drawing.Size(487, 13); - this.label_Filter.TabIndex = 4; - this.label_Filter.Text = "Import only tribes with names containing at least one of these comma separated va" + - "lues, case sensitive"; + this.label33.AutoSize = true; + this.label33.Location = new System.Drawing.Point(302, 20); + this.label33.Name = "label33"; + this.label33.Size = new System.Drawing.Size(27, 13); + this.label33.TabIndex = 2; + this.label33.Text = "Size"; // - // cbImportUpdateCreatureStatus + // label32 // - this.cbImportUpdateCreatureStatus.Location = new System.Drawing.Point(11, 74); - this.cbImportUpdateCreatureStatus.Name = "cbImportUpdateCreatureStatus"; - this.cbImportUpdateCreatureStatus.Size = new System.Drawing.Size(727, 37); - this.cbImportUpdateCreatureStatus.TabIndex = 1; - this.cbImportUpdateCreatureStatus.Text = "Update Available/Unavailable Status on Import for disappeared or reappeared creat" + - "ures (disable this if you will import savegames from multiple servers). This set" + - "ting is saved per library."; - this.cbImportUpdateCreatureStatus.UseVisualStyleBackColor = true; + this.label32.AutoSize = true; + this.label32.Location = new System.Drawing.Point(6, 22); + this.label32.Name = "label32"; + this.label32.Size = new System.Drawing.Size(62, 13); + this.label32.TabIndex = 0; + this.label32.Text = "Default font"; // - // groupBox15 + // groupBox20 // - this.groupBox15.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupBox15.Controls.Add(this.dataGridView_FileLocations); - this.groupBox15.Controls.Add(this.btAddSavegameFileLocation); - this.groupBox15.Controls.Add(this.labelSavegameFileLocationHint); - this.groupBox15.Location = new System.Drawing.Point(8, 289); - this.groupBox15.Name = "groupBox15"; - this.groupBox15.Size = new System.Drawing.Size(730, 386); - this.groupBox15.TabIndex = 7; - this.groupBox15.TabStop = false; - this.groupBox15.Text = "ARK save-game files"; - // - // dataGridView_FileLocations + this.groupBox20.Controls.Add(this.cbPrettifyJSON); + this.groupBox20.Location = new System.Drawing.Point(329, 139); + this.groupBox20.Name = "groupBox20"; + this.groupBox20.Size = new System.Drawing.Size(413, 40); + this.groupBox20.TabIndex = 9; + this.groupBox20.TabStop = false; + this.groupBox20.Text = "Prettify Library JSON-file"; // - this.dataGridView_FileLocations.AllowUserToAddRows = false; - this.dataGridView_FileLocations.AllowUserToDeleteRows = false; - this.dataGridView_FileLocations.AutoGenerateColumns = false; - this.dataGridView_FileLocations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dataGridView_FileLocations.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.convenientNameDataGridViewTextBoxColumn, - this.serverNameDataGridViewTextBoxColumn, - this.fileLocationDataGridViewTextBoxColumn, - this.dgvFileLocation_Change, - this.ImportWithQuickImport, - this.dgvFileLocation_Delete}); - this.dataGridView_FileLocations.DataSource = this.aTImportFileLocationBindingSource; - this.dataGridView_FileLocations.Dock = System.Windows.Forms.DockStyle.Fill; - this.dataGridView_FileLocations.Location = new System.Drawing.Point(3, 62); - this.dataGridView_FileLocations.MultiSelect = false; - this.dataGridView_FileLocations.Name = "dataGridView_FileLocations"; - this.dataGridView_FileLocations.RowHeadersVisible = false; - this.dataGridView_FileLocations.Size = new System.Drawing.Size(724, 321); - this.dataGridView_FileLocations.TabIndex = 2; - this.dataGridView_FileLocations.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView_FileLocations_CellClick); + // cbPrettifyJSON // - // dgvFileLocation_Change + this.cbPrettifyJSON.AutoSize = true; + this.cbPrettifyJSON.Location = new System.Drawing.Point(6, 19); + this.cbPrettifyJSON.Name = "cbPrettifyJSON"; + this.cbPrettifyJSON.Size = new System.Drawing.Size(365, 17); + this.cbPrettifyJSON.TabIndex = 0; + this.cbPrettifyJSON.Text = "Prettify JSON. Easier diff, but larger save-files. Usually disabling is better."; + this.cbPrettifyJSON.UseVisualStyleBackColor = true; // - this.dgvFileLocation_Change.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - this.dgvFileLocation_Change.HeaderText = "Change"; - this.dgvFileLocation_Change.MinimumWidth = 50; - this.dgvFileLocation_Change.Name = "dgvFileLocation_Change"; - this.dgvFileLocation_Change.ReadOnly = true; - this.dgvFileLocation_Change.Resizable = System.Windows.Forms.DataGridViewTriState.False; - this.dgvFileLocation_Change.Text = "Change"; - this.dgvFileLocation_Change.UseColumnTextForButtonValue = true; - this.dgvFileLocation_Change.Width = 50; + // groupBox17 // - // ImportWithQuickImport + this.groupBox17.Controls.Add(this.LbLanguage2); + this.groupBox17.Controls.Add(this.CbbLanguage2); + this.groupBox17.Controls.Add(this.CbbLanguage); + this.groupBox17.Location = new System.Drawing.Point(329, 665); + this.groupBox17.Name = "groupBox17"; + this.groupBox17.Size = new System.Drawing.Size(413, 51); + this.groupBox17.TabIndex = 5; + this.groupBox17.TabStop = false; + this.groupBox17.Text = "Language (WIP)"; // - this.ImportWithQuickImport.DataPropertyName = "ImportWithQuickImport"; - this.ImportWithQuickImport.HeaderText = "QuickImport"; - this.ImportWithQuickImport.Name = "ImportWithQuickImport"; - this.ImportWithQuickImport.ReadOnly = true; - this.ImportWithQuickImport.ToolTipText = "If checked the savegame will be imported with the quick import button in the menu" + - " bar."; - this.ImportWithQuickImport.Width = 70; + // LbLanguage2 // - // dgvFileLocation_Delete + this.LbLanguage2.AutoSize = true; + this.LbLanguage2.Location = new System.Drawing.Point(198, 19); + this.LbLanguage2.Name = "LbLanguage2"; + this.LbLanguage2.Size = new System.Drawing.Size(37, 13); + this.LbLanguage2.TabIndex = 2; + this.LbLanguage2.Text = "Export"; // - this.dgvFileLocation_Delete.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - this.dgvFileLocation_Delete.HeaderText = "Delete"; - this.dgvFileLocation_Delete.MinimumWidth = 50; - this.dgvFileLocation_Delete.Name = "dgvFileLocation_Delete"; - this.dgvFileLocation_Delete.ReadOnly = true; - this.dgvFileLocation_Delete.Resizable = System.Windows.Forms.DataGridViewTriState.False; - this.dgvFileLocation_Delete.Text = "Delete"; - this.dgvFileLocation_Delete.UseColumnTextForButtonValue = true; - this.dgvFileLocation_Delete.Width = 50; + // CbbLanguage2 // - // btAddSavegameFileLocation + this.CbbLanguage2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CbbLanguage2.FormattingEnabled = true; + this.CbbLanguage2.Location = new System.Drawing.Point(241, 16); + this.CbbLanguage2.Name = "CbbLanguage2"; + this.CbbLanguage2.Size = new System.Drawing.Size(166, 21); + this.CbbLanguage2.TabIndex = 1; // - this.btAddSavegameFileLocation.Dock = System.Windows.Forms.DockStyle.Top; - this.btAddSavegameFileLocation.Location = new System.Drawing.Point(3, 39); - this.btAddSavegameFileLocation.Name = "btAddSavegameFileLocation"; - this.btAddSavegameFileLocation.Size = new System.Drawing.Size(724, 23); - this.btAddSavegameFileLocation.TabIndex = 1; - this.btAddSavegameFileLocation.Text = "Add Savegame File Location"; - this.btAddSavegameFileLocation.UseVisualStyleBackColor = true; - this.btAddSavegameFileLocation.Click += new System.EventHandler(this.btAddSavegameFileLocation_Click); + // CbbLanguage // - // labelSavegameFileLocationHint + this.CbbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CbbLanguage.FormattingEnabled = true; + this.CbbLanguage.Location = new System.Drawing.Point(3, 16); + this.CbbLanguage.Name = "CbbLanguage"; + this.CbbLanguage.Size = new System.Drawing.Size(176, 21); + this.CbbLanguage.TabIndex = 0; // - this.labelSavegameFileLocationHint.AutoSize = true; - this.labelSavegameFileLocationHint.Dock = System.Windows.Forms.DockStyle.Top; - this.labelSavegameFileLocationHint.Location = new System.Drawing.Point(3, 16); - this.labelSavegameFileLocationHint.Name = "labelSavegameFileLocationHint"; - this.labelSavegameFileLocationHint.Padding = new System.Windows.Forms.Padding(5); - this.labelSavegameFileLocationHint.Size = new System.Drawing.Size(605, 23); - this.labelSavegameFileLocationHint.TabIndex = 0; - this.labelSavegameFileLocationHint.Text = "Location example for The Island: ...\\Steam\\steamapps\\common\\ARK\\ShooterGame\\Saved" + - "\\SavedArksLocal\\TheIsland.ark"; + // groupBox9 // - // groupBox14 + this.groupBox9.Controls.Add(this.CbLibraryDisplayZeroMutationLevels); + this.groupBox9.Controls.Add(this.CbDisplayLibraryCreatureIndex); + this.groupBox9.Controls.Add(this.CbNaturalSortIgnoreSpaces); + this.groupBox9.Controls.Add(this.CbNaturalSorting); + this.groupBox9.Controls.Add(this.CbConsiderWastedStatsForTopCreatures); + this.groupBox9.Controls.Add(this.CbPauseGrowingTimerAfterAdding); + this.groupBox9.Controls.Add(this.CbLibrarySelectSelectedSpeciesOnLoad); + this.groupBox9.Controls.Add(this.cbLibraryHighlightTopCreatures); + this.groupBox9.Controls.Add(this.cbApplyGlobalSpeciesToLibrary); + this.groupBox9.Controls.Add(this.cbCreatureColorsLibrary); + this.groupBox9.Location = new System.Drawing.Point(6, 509); + this.groupBox9.Name = "groupBox9"; + this.groupBox9.Size = new System.Drawing.Size(317, 229); + this.groupBox9.TabIndex = 4; + this.groupBox9.TabStop = false; + this.groupBox9.Text = "Library"; // - this.groupBox14.Controls.Add(this.fileSelectorExtractedSaveFolder); - this.groupBox14.Location = new System.Drawing.Point(8, 236); - this.groupBox14.Name = "groupBox14"; - this.groupBox14.Size = new System.Drawing.Size(730, 47); - this.groupBox14.TabIndex = 6; - this.groupBox14.TabStop = false; - this.groupBox14.Text = "Target folder for save-game working copy (user\'s temp dir if empty). It\'s recomme" + - "nded to leave this setting empty."; + // CbDisplayLibraryCreatureIndex // - // label24 + this.CbDisplayLibraryCreatureIndex.AutoSize = true; + this.CbDisplayLibraryCreatureIndex.Location = new System.Drawing.Point(6, 180); + this.CbDisplayLibraryCreatureIndex.Name = "CbDisplayLibraryCreatureIndex"; + this.CbDisplayLibraryCreatureIndex.Size = new System.Drawing.Size(150, 17); + this.CbDisplayLibraryCreatureIndex.TabIndex = 8; + this.CbDisplayLibraryCreatureIndex.Text = "Display index before name"; + this.CbDisplayLibraryCreatureIndex.UseVisualStyleBackColor = true; // - this.label24.Location = new System.Drawing.Point(8, 39); - this.label24.Name = "label24"; - this.label24.Size = new System.Drawing.Size(730, 38); - this.label24.TabIndex = 0; - this.label24.Text = resources.GetString("label24.Text"); + // CbNaturalSortIgnoreSpaces // - // tabPageImportExported + this.CbNaturalSortIgnoreSpaces.AutoSize = true; + this.CbNaturalSortIgnoreSpaces.Location = new System.Drawing.Point(181, 157); + this.CbNaturalSortIgnoreSpaces.Name = "CbNaturalSortIgnoreSpaces"; + this.CbNaturalSortIgnoreSpaces.Size = new System.Drawing.Size(93, 17); + this.CbNaturalSortIgnoreSpaces.TabIndex = 7; + this.CbNaturalSortIgnoreSpaces.Text = "Ignore spaces"; + this.CbNaturalSortIgnoreSpaces.UseVisualStyleBackColor = true; // - this.tabPageImportExported.AutoScroll = true; - this.tabPageImportExported.Controls.Add(this.BtGetExportFolderAutomatically); - this.tabPageImportExported.Controls.Add(this.groupBox27); - this.tabPageImportExported.Controls.Add(this.groupBox23); - this.tabPageImportExported.Controls.Add(this.groupBox22); - this.tabPageImportExported.Controls.Add(this.groupBox21); - this.tabPageImportExported.Controls.Add(this.groupBox19); - this.tabPageImportExported.Controls.Add(this.groupBox13); - this.tabPageImportExported.Controls.Add(this.label25); - this.tabPageImportExported.Location = new System.Drawing.Point(4, 22); - this.tabPageImportExported.Name = "tabPageImportExported"; - this.tabPageImportExported.Padding = new System.Windows.Forms.Padding(3); - this.tabPageImportExported.Size = new System.Drawing.Size(750, 744); - this.tabPageImportExported.TabIndex = 3; - this.tabPageImportExported.Text = "Import Exported"; - this.tabPageImportExported.UseVisualStyleBackColor = true; + // CbNaturalSorting // - // BtGetExportFolderAutomatically + this.CbNaturalSorting.AutoSize = true; + this.CbNaturalSorting.Location = new System.Drawing.Point(6, 157); + this.CbNaturalSorting.Name = "CbNaturalSorting"; + this.CbNaturalSorting.Size = new System.Drawing.Size(155, 17); + this.CbNaturalSorting.TabIndex = 6; + this.CbNaturalSorting.Text = "Natural sort (e.g. 10 after 2)"; + this.CbNaturalSorting.UseVisualStyleBackColor = true; + this.CbNaturalSorting.CheckedChanged += new System.EventHandler(this.CbNaturalSorting_CheckedChanged); // - this.BtGetExportFolderAutomatically.Location = new System.Drawing.Point(597, 41); - this.BtGetExportFolderAutomatically.Name = "BtGetExportFolderAutomatically"; - this.BtGetExportFolderAutomatically.Size = new System.Drawing.Size(145, 53); - this.BtGetExportFolderAutomatically.TabIndex = 1; - this.BtGetExportFolderAutomatically.Text = "Set export folder automatically (only Steam)"; - this.BtGetExportFolderAutomatically.UseVisualStyleBackColor = true; - this.BtGetExportFolderAutomatically.Click += new System.EventHandler(this.BtGetExportFolderAutomatically_Click); + // CbConsiderWastedStatsForTopCreatures // - // groupBox27 + this.CbConsiderWastedStatsForTopCreatures.AutoSize = true; + this.CbConsiderWastedStatsForTopCreatures.Location = new System.Drawing.Point(6, 134); + this.CbConsiderWastedStatsForTopCreatures.Name = "CbConsiderWastedStatsForTopCreatures"; + this.CbConsiderWastedStatsForTopCreatures.Size = new System.Drawing.Size(280, 17); + this.CbConsiderWastedStatsForTopCreatures.TabIndex = 5; + this.CbConsiderWastedStatsForTopCreatures.Text = "Consider \"wasted\" stats for top creature determination"; + this.CbConsiderWastedStatsForTopCreatures.UseVisualStyleBackColor = true; // - this.groupBox27.Controls.Add(this.label46); - this.groupBox27.Controls.Add(this.RbTamerStringForTribe); - this.groupBox27.Controls.Add(this.RbTamerStringForOwner); - this.groupBox27.Location = new System.Drawing.Point(330, 575); - this.groupBox27.Name = "groupBox27"; - this.groupBox27.Size = new System.Drawing.Size(412, 95); - this.groupBox27.TabIndex = 7; - this.groupBox27.TabStop = false; - this.groupBox27.Text = "Tribe / Owner"; + // CbPauseGrowingTimerAfterAdding // - // label46 + this.CbPauseGrowingTimerAfterAdding.AutoSize = true; + this.CbPauseGrowingTimerAfterAdding.Location = new System.Drawing.Point(6, 19); + this.CbPauseGrowingTimerAfterAdding.Name = "CbPauseGrowingTimerAfterAdding"; + this.CbPauseGrowingTimerAfterAdding.Size = new System.Drawing.Size(236, 17); + this.CbPauseGrowingTimerAfterAdding.TabIndex = 4; + this.CbPauseGrowingTimerAfterAdding.Text = "Pause growing timer when adding a creature"; + this.CbPauseGrowingTimerAfterAdding.UseVisualStyleBackColor = true; // - this.label46.Location = new System.Drawing.Point(6, 17); - this.label46.Name = "label46"; - this.label46.Size = new System.Drawing.Size(306, 29); - this.label46.TabIndex = 0; - this.label46.Text = "The TamerString in the export file contains either the creature owner or the trib" + - "e, depending on the tribe permissions."; + // CbLibrarySelectSelectedSpeciesOnLoad // - // RbTamerStringForTribe + this.CbLibrarySelectSelectedSpeciesOnLoad.AutoSize = true; + this.CbLibrarySelectSelectedSpeciesOnLoad.Location = new System.Drawing.Point(6, 88); + this.CbLibrarySelectSelectedSpeciesOnLoad.Name = "CbLibrarySelectSelectedSpeciesOnLoad"; + this.CbLibrarySelectSelectedSpeciesOnLoad.Size = new System.Drawing.Size(202, 17); + this.CbLibrarySelectSelectedSpeciesOnLoad.TabIndex = 2; + this.CbLibrarySelectSelectedSpeciesOnLoad.Text = "Select currently used species on load"; + this.CbLibrarySelectSelectedSpeciesOnLoad.UseVisualStyleBackColor = true; // - this.RbTamerStringForTribe.AutoSize = true; - this.RbTamerStringForTribe.Location = new System.Drawing.Point(6, 72); - this.RbTamerStringForTribe.Name = "RbTamerStringForTribe"; - this.RbTamerStringForTribe.Size = new System.Drawing.Size(184, 17); - this.RbTamerStringForTribe.TabIndex = 2; - this.RbTamerStringForTribe.TabStop = true; - this.RbTamerStringForTribe.Text = "Use TamerString for creature tribe"; - this.RbTamerStringForTribe.UseVisualStyleBackColor = true; + // cbLibraryHighlightTopCreatures // - // RbTamerStringForOwner + this.cbLibraryHighlightTopCreatures.AutoSize = true; + this.cbLibraryHighlightTopCreatures.Location = new System.Drawing.Point(6, 111); + this.cbLibraryHighlightTopCreatures.Name = "cbLibraryHighlightTopCreatures"; + this.cbLibraryHighlightTopCreatures.Size = new System.Drawing.Size(136, 17); + this.cbLibraryHighlightTopCreatures.TabIndex = 3; + this.cbLibraryHighlightTopCreatures.Text = "Highlight Top creatures"; + this.cbLibraryHighlightTopCreatures.UseVisualStyleBackColor = true; // - this.RbTamerStringForOwner.AutoSize = true; - this.RbTamerStringForOwner.Location = new System.Drawing.Point(6, 49); - this.RbTamerStringForOwner.Name = "RbTamerStringForOwner"; - this.RbTamerStringForOwner.Size = new System.Drawing.Size(193, 17); - this.RbTamerStringForOwner.TabIndex = 1; - this.RbTamerStringForOwner.TabStop = true; - this.RbTamerStringForOwner.Text = "Use TamerString for creature owner"; - this.RbTamerStringForOwner.UseVisualStyleBackColor = true; + // cbApplyGlobalSpeciesToLibrary // - // groupBox23 + this.cbApplyGlobalSpeciesToLibrary.AutoSize = true; + this.cbApplyGlobalSpeciesToLibrary.Location = new System.Drawing.Point(6, 65); + this.cbApplyGlobalSpeciesToLibrary.Name = "cbApplyGlobalSpeciesToLibrary"; + this.cbApplyGlobalSpeciesToLibrary.Size = new System.Drawing.Size(201, 17); + this.cbApplyGlobalSpeciesToLibrary.TabIndex = 1; + this.cbApplyGlobalSpeciesToLibrary.Text = "Use global species selection in library"; + this.cbApplyGlobalSpeciesToLibrary.UseVisualStyleBackColor = true; // - this.groupBox23.Controls.Add(this.label31); - this.groupBox23.Controls.Add(this.label30); - this.groupBox23.Controls.Add(this.nudImportLowerBoundTE); - this.groupBox23.Location = new System.Drawing.Point(6, 457); - this.groupBox23.Name = "groupBox23"; - this.groupBox23.Size = new System.Drawing.Size(318, 45); - this.groupBox23.TabIndex = 4; - this.groupBox23.TabStop = false; - this.groupBox23.Text = "Taming Effectiveness Bounds"; + // cbCreatureColorsLibrary // - // label31 + this.cbCreatureColorsLibrary.AutoSize = true; + this.cbCreatureColorsLibrary.Location = new System.Drawing.Point(6, 42); + this.cbCreatureColorsLibrary.Name = "cbCreatureColorsLibrary"; + this.cbCreatureColorsLibrary.Size = new System.Drawing.Size(211, 17); + this.cbCreatureColorsLibrary.TabIndex = 0; + this.cbCreatureColorsLibrary.Text = "Show Creature-Colors columns in library"; + this.cbCreatureColorsLibrary.UseVisualStyleBackColor = true; // - this.label31.AutoSize = true; - this.label31.Location = new System.Drawing.Point(6, 21); - this.label31.Name = "label31"; - this.label31.Size = new System.Drawing.Size(70, 13); - this.label31.TabIndex = 0; - this.label31.Text = "Lower Bound"; + // tabPageInfoGraphic // - // label30 + this.tabPageInfoGraphic.Controls.Add(this.BtNewRandomInfoGraphicCreature); + this.tabPageInfoGraphic.Controls.Add(this.label63); + this.tabPageInfoGraphic.Controls.Add(this.PbInfoGraphicPreview); + this.tabPageInfoGraphic.Controls.Add(this.groupBox32); + this.tabPageInfoGraphic.Controls.Add(this.groupBox28); + this.tabPageInfoGraphic.Controls.Add(this.label50); + this.tabPageInfoGraphic.Location = new System.Drawing.Point(4, 22); + this.tabPageInfoGraphic.Name = "tabPageInfoGraphic"; + this.tabPageInfoGraphic.Size = new System.Drawing.Size(750, 744); + this.tabPageInfoGraphic.TabIndex = 7; + this.tabPageInfoGraphic.Text = "Info Graphic"; + this.tabPageInfoGraphic.UseVisualStyleBackColor = true; // - this.label30.AutoSize = true; - this.label30.Location = new System.Drawing.Point(297, 21); - this.label30.Name = "label30"; - this.label30.Size = new System.Drawing.Size(15, 13); - this.label30.TabIndex = 11; - this.label30.Text = "%"; + // BtNewRandomInfoGraphicCreature // - // groupBox22 + this.BtNewRandomInfoGraphicCreature.Location = new System.Drawing.Point(62, 293); + this.BtNewRandomInfoGraphicCreature.Name = "BtNewRandomInfoGraphicCreature"; + this.BtNewRandomInfoGraphicCreature.Size = new System.Drawing.Size(200, 20); + this.BtNewRandomInfoGraphicCreature.TabIndex = 19; + this.BtNewRandomInfoGraphicCreature.Text = "new random creature for preview"; + this.BtNewRandomInfoGraphicCreature.UseVisualStyleBackColor = true; + this.BtNewRandomInfoGraphicCreature.Click += new System.EventHandler(this.BtNewRandomInfoGraphicCreature_Click); // - this.groupBox22.Controls.Add(this.CbBringToFrontOnImportExportIssue); - this.groupBox22.Controls.Add(this.CbAutoExtractAddToLibrary); - this.groupBox22.Controls.Add(this.CbAutoImportSuccessGotoLibrary); - this.groupBox22.Controls.Add(this.TbExportFileRename); - this.groupBox22.Controls.Add(this.CbExportFileRenameAfterImport); - this.groupBox22.Controls.Add(this.BtImportArchiveFolder); - this.groupBox22.Controls.Add(this.panel2); - this.groupBox22.Controls.Add(this.cbPlaySoundOnAutomaticImport); - this.groupBox22.Controls.Add(this.label29); - this.groupBox22.Controls.Add(this.cbDeleteAutoImportedFile); - this.groupBox22.Controls.Add(this.cbMoveImportedFileToSubFolder); - this.groupBox22.Controls.Add(this.label28); - this.groupBox22.Controls.Add(this.cbAutoImportExported); - this.groupBox22.Location = new System.Drawing.Point(330, 379); - this.groupBox22.Name = "groupBox22"; - this.groupBox22.Size = new System.Drawing.Size(412, 190); - this.groupBox22.TabIndex = 6; - this.groupBox22.TabStop = false; - this.groupBox22.Text = "Auto import"; + // label63 // - // CbBringToFrontOnImportExportIssue + this.label63.AutoSize = true; + this.label63.Location = new System.Drawing.Point(11, 300); + this.label63.Name = "label63"; + this.label63.Size = new System.Drawing.Size(45, 13); + this.label63.TabIndex = 18; + this.label63.Text = "Preview"; // - this.CbBringToFrontOnImportExportIssue.AutoSize = true; - this.CbBringToFrontOnImportExportIssue.Location = new System.Drawing.Point(155, 165); - this.CbBringToFrontOnImportExportIssue.Name = "CbBringToFrontOnImportExportIssue"; - this.CbBringToFrontOnImportExportIssue.Size = new System.Drawing.Size(198, 17); - this.CbBringToFrontOnImportExportIssue.TabIndex = 11; - this.CbBringToFrontOnImportExportIssue.Text = "Bring window to front on import issue"; - this.CbBringToFrontOnImportExportIssue.UseVisualStyleBackColor = true; + // PbInfoGraphicPreview // - // CbAutoExtractAddToLibrary + this.PbInfoGraphicPreview.Location = new System.Drawing.Point(8, 325); + this.PbInfoGraphicPreview.Name = "PbInfoGraphicPreview"; + this.PbInfoGraphicPreview.Size = new System.Drawing.Size(333, 143); + this.PbInfoGraphicPreview.TabIndex = 9; + this.PbInfoGraphicPreview.TabStop = false; // - this.CbAutoExtractAddToLibrary.AutoSize = true; - this.CbAutoExtractAddToLibrary.Location = new System.Drawing.Point(189, 19); - this.CbAutoExtractAddToLibrary.Name = "CbAutoExtractAddToLibrary"; - this.CbAutoExtractAddToLibrary.Size = new System.Drawing.Size(87, 17); - this.CbAutoExtractAddToLibrary.TabIndex = 10; - this.CbAutoExtractAddToLibrary.Text = "Add to library"; - this.CbAutoExtractAddToLibrary.UseVisualStyleBackColor = true; + // groupBox32 // - // CbAutoImportSuccessGotoLibrary + this.groupBox32.Controls.Add(this.LbInfoGraphicSize); + this.groupBox32.Controls.Add(this.CbbInfoGraphicFontName); + this.groupBox32.Controls.Add(this.nudInfoGraphicHeight); + this.groupBox32.Controls.Add(this.BtInfoGraphicForeColor); + this.groupBox32.Controls.Add(this.BtInfoGraphicBackColor); + this.groupBox32.Controls.Add(this.BtInfoGraphicBorderColor); + this.groupBox32.Controls.Add(this.label51); + this.groupBox32.Location = new System.Drawing.Point(488, 47); + this.groupBox32.Name = "groupBox32"; + this.groupBox32.Size = new System.Drawing.Size(254, 197); + this.groupBox32.TabIndex = 17; + this.groupBox32.TabStop = false; + this.groupBox32.Text = "Visuals"; // - this.CbAutoImportSuccessGotoLibrary.AutoSize = true; - this.CbAutoImportSuccessGotoLibrary.Location = new System.Drawing.Point(26, 165); - this.CbAutoImportSuccessGotoLibrary.Name = "CbAutoImportSuccessGotoLibrary"; - this.CbAutoImportSuccessGotoLibrary.Size = new System.Drawing.Size(98, 17); - this.CbAutoImportSuccessGotoLibrary.TabIndex = 9; - this.CbAutoImportSuccessGotoLibrary.Text = "go to library tab"; - this.CbAutoImportSuccessGotoLibrary.UseVisualStyleBackColor = true; + // LbInfoGraphicSize // - // TbExportFileRename + this.LbInfoGraphicSize.AutoSize = true; + this.LbInfoGraphicSize.Location = new System.Drawing.Point(6, 20); + this.LbInfoGraphicSize.Name = "LbInfoGraphicSize"; + this.LbInfoGraphicSize.Size = new System.Drawing.Size(114, 13); + this.LbInfoGraphicSize.TabIndex = 1; + this.LbInfoGraphicSize.Text = "InfoGraphic height [px]"; // - this.TbExportFileRename.Location = new System.Drawing.Point(155, 113); - this.TbExportFileRename.Name = "TbExportFileRename"; - this.TbExportFileRename.Size = new System.Drawing.Size(124, 20); - this.TbExportFileRename.TabIndex = 6; + // CbbInfoGraphicFontName // - // CbExportFileRenameAfterImport + this.CbbInfoGraphicFontName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CbbInfoGraphicFontName.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CbbInfoGraphicFontName.FormattingEnabled = true; + this.CbbInfoGraphicFontName.Location = new System.Drawing.Point(6, 154); + this.CbbInfoGraphicFontName.Name = "CbbInfoGraphicFontName"; + this.CbbInfoGraphicFontName.Size = new System.Drawing.Size(242, 21); + this.CbbInfoGraphicFontName.TabIndex = 16; + this.CbbInfoGraphicFontName.SelectedIndexChanged += new System.EventHandler(this.CbbInfoGraphicFontName_SelectedIndexChanged); // - this.CbExportFileRenameAfterImport.AutoSize = true; - this.CbExportFileRenameAfterImport.Location = new System.Drawing.Point(26, 119); - this.CbExportFileRenameAfterImport.Name = "CbExportFileRenameAfterImport"; - this.CbExportFileRenameAfterImport.Size = new System.Drawing.Size(119, 17); - this.CbExportFileRenameAfterImport.TabIndex = 5; - this.CbExportFileRenameAfterImport.Text = "rename file (pattern)"; - this.CbExportFileRenameAfterImport.UseVisualStyleBackColor = true; + // nudInfoGraphicHeight // - // BtImportArchiveFolder + this.nudInfoGraphicHeight.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudInfoGraphicHeight.Location = new System.Drawing.Point(126, 18); + this.nudInfoGraphicHeight.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.nudInfoGraphicHeight.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.nudInfoGraphicHeight.Name = "nudInfoGraphicHeight"; + this.nudInfoGraphicHeight.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudInfoGraphicHeight.Size = new System.Drawing.Size(57, 20); + this.nudInfoGraphicHeight.TabIndex = 2; + this.nudInfoGraphicHeight.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.nudInfoGraphicHeight.ValueChanged += new System.EventHandler(this.nudInfoGraphicHeight_ValueChanged); // - this.BtImportArchiveFolder.Location = new System.Drawing.Point(155, 139); - this.BtImportArchiveFolder.Name = "BtImportArchiveFolder"; - this.BtImportArchiveFolder.Size = new System.Drawing.Size(124, 21); - this.BtImportArchiveFolder.TabIndex = 8; - this.BtImportArchiveFolder.Text = "…"; - this.BtImportArchiveFolder.UseVisualStyleBackColor = true; - this.BtImportArchiveFolder.Click += new System.EventHandler(this.BtImportArchiveFolder_Click); + // BtInfoGraphicForeColor // - // panel2 + this.BtInfoGraphicForeColor.Location = new System.Drawing.Point(9, 44); + this.BtInfoGraphicForeColor.Name = "BtInfoGraphicForeColor"; + this.BtInfoGraphicForeColor.Size = new System.Drawing.Size(75, 23); + this.BtInfoGraphicForeColor.TabIndex = 9; + this.BtInfoGraphicForeColor.Text = "ForeColor"; + this.BtInfoGraphicForeColor.UseVisualStyleBackColor = true; + this.BtInfoGraphicForeColor.Click += new System.EventHandler(this.ColorButtonClick); // - this.panel2.Controls.Add(this.BtBeepUpdated); - this.panel2.Controls.Add(this.BtBeepNewTop); - this.panel2.Controls.Add(this.BtBeepTop); - this.panel2.Controls.Add(this.BtBeepSuccess); - this.panel2.Controls.Add(this.label47); - this.panel2.Controls.Add(this.BtBeepFailure); - this.panel2.Location = new System.Drawing.Point(285, 11); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(121, 148); - this.panel2.TabIndex = 7; + // BtInfoGraphicBackColor // - // BtBeepUpdated + this.BtInfoGraphicBackColor.Location = new System.Drawing.Point(9, 73); + this.BtInfoGraphicBackColor.Name = "BtInfoGraphicBackColor"; + this.BtInfoGraphicBackColor.Size = new System.Drawing.Size(75, 23); + this.BtInfoGraphicBackColor.TabIndex = 10; + this.BtInfoGraphicBackColor.Text = "BackColor"; + this.BtInfoGraphicBackColor.UseVisualStyleBackColor = true; + this.BtInfoGraphicBackColor.Click += new System.EventHandler(this.ColorButtonClick); // - this.BtBeepUpdated.Location = new System.Drawing.Point(3, 122); - this.BtBeepUpdated.Name = "BtBeepUpdated"; - this.BtBeepUpdated.Size = new System.Drawing.Size(115, 23); - this.BtBeepUpdated.TabIndex = 5; - this.BtBeepUpdated.Text = "updated"; - this.BtBeepUpdated.UseVisualStyleBackColor = true; - this.BtBeepUpdated.Click += new System.EventHandler(this.BtBeepUpdated_Click); + // BtInfoGraphicBorderColor // - // BtBeepNewTop + this.BtInfoGraphicBorderColor.Location = new System.Drawing.Point(9, 102); + this.BtInfoGraphicBorderColor.Name = "BtInfoGraphicBorderColor"; + this.BtInfoGraphicBorderColor.Size = new System.Drawing.Size(75, 23); + this.BtInfoGraphicBorderColor.TabIndex = 11; + this.BtInfoGraphicBorderColor.Text = "BorderColor"; + this.BtInfoGraphicBorderColor.UseVisualStyleBackColor = true; + this.BtInfoGraphicBorderColor.Click += new System.EventHandler(this.ColorButtonClick); // - this.BtBeepNewTop.Location = new System.Drawing.Point(3, 96); - this.BtBeepNewTop.Name = "BtBeepNewTop"; - this.BtBeepNewTop.Size = new System.Drawing.Size(115, 23); - this.BtBeepNewTop.TabIndex = 4; - this.BtBeepNewTop.Text = "new top stat"; - this.BtBeepNewTop.UseVisualStyleBackColor = true; - this.BtBeepNewTop.Click += new System.EventHandler(this.BtBeepNewTop_Click); + // label51 // - // BtBeepTop + this.label51.AutoSize = true; + this.label51.Location = new System.Drawing.Point(6, 138); + this.label51.Name = "label51"; + this.label51.Size = new System.Drawing.Size(57, 13); + this.label51.TabIndex = 7; + this.label51.Text = "Font name"; // - this.BtBeepTop.Location = new System.Drawing.Point(3, 70); - this.BtBeepTop.Name = "BtBeepTop"; - this.BtBeepTop.Size = new System.Drawing.Size(115, 23); - this.BtBeepTop.TabIndex = 3; - this.BtBeepTop.Text = "top stat"; - this.BtBeepTop.UseVisualStyleBackColor = true; - this.BtBeepTop.Click += new System.EventHandler(this.BtBeepTop_Click); + // groupBox28 // - // BtBeepSuccess + this.groupBox28.Controls.Add(this.CbInfoGraphicColorRegionNamesIfNoImage); + this.groupBox28.Controls.Add(this.CbInfoGraphicStatValues); + this.groupBox28.Controls.Add(this.CbInfoGraphicAddRegionNames); + this.groupBox28.Controls.Add(this.CbInfoGraphicCreatureName); + this.groupBox28.Controls.Add(this.CbInfoGraphicMutations); + this.groupBox28.Controls.Add(this.CbInfoGraphicGenerations); + this.groupBox28.Controls.Add(this.CbInfoGraphicDomLevels); + this.groupBox28.Controls.Add(this.CbInfoGraphicDisplayMaxWildLevel); + this.groupBox28.Location = new System.Drawing.Point(8, 47); + this.groupBox28.Name = "groupBox28"; + this.groupBox28.Size = new System.Drawing.Size(474, 224); + this.groupBox28.TabIndex = 8; + this.groupBox28.TabStop = false; + this.groupBox28.Text = "Include Info"; // - this.BtBeepSuccess.Location = new System.Drawing.Point(3, 44); - this.BtBeepSuccess.Name = "BtBeepSuccess"; - this.BtBeepSuccess.Size = new System.Drawing.Size(115, 23); - this.BtBeepSuccess.TabIndex = 2; - this.BtBeepSuccess.Text = "import success"; - this.BtBeepSuccess.UseVisualStyleBackColor = true; - this.BtBeepSuccess.Click += new System.EventHandler(this.BtBeepSuccess_Click); + // CbInfoGraphicColorRegionNamesIfNoImage // - // label47 + this.CbInfoGraphicColorRegionNamesIfNoImage.AutoSize = true; + this.CbInfoGraphicColorRegionNamesIfNoImage.Location = new System.Drawing.Point(6, 157); + this.CbInfoGraphicColorRegionNamesIfNoImage.Name = "CbInfoGraphicColorRegionNamesIfNoImage"; + this.CbInfoGraphicColorRegionNamesIfNoImage.Size = new System.Drawing.Size(224, 17); + this.CbInfoGraphicColorRegionNamesIfNoImage.TabIndex = 15; + this.CbInfoGraphicColorRegionNamesIfNoImage.Text = "color region names if no image is available"; + this.CbInfoGraphicColorRegionNamesIfNoImage.UseVisualStyleBackColor = true; + this.CbInfoGraphicColorRegionNamesIfNoImage.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); // - this.label47.AutoSize = true; - this.label47.Location = new System.Drawing.Point(3, 2); - this.label47.Name = "label47"; - this.label47.Size = new System.Drawing.Size(108, 13); - this.label47.TabIndex = 0; - this.label47.Text = "Import sound preview"; + // CbInfoGraphicStatValues // - // BtBeepFailure + this.CbInfoGraphicStatValues.AutoSize = true; + this.CbInfoGraphicStatValues.Location = new System.Drawing.Point(6, 65); + this.CbInfoGraphicStatValues.Name = "CbInfoGraphicStatValues"; + this.CbInfoGraphicStatValues.Size = new System.Drawing.Size(192, 17); + this.CbInfoGraphicStatValues.TabIndex = 14; + this.CbInfoGraphicStatValues.Text = "stat values additionally to the levels"; + this.CbInfoGraphicStatValues.UseVisualStyleBackColor = true; + this.CbInfoGraphicStatValues.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); // - this.BtBeepFailure.Location = new System.Drawing.Point(3, 18); - this.BtBeepFailure.Name = "BtBeepFailure"; - this.BtBeepFailure.Size = new System.Drawing.Size(115, 23); - this.BtBeepFailure.TabIndex = 1; - this.BtBeepFailure.Text = "import failed"; - this.BtBeepFailure.UseVisualStyleBackColor = true; - this.BtBeepFailure.Click += new System.EventHandler(this.BtBeepFailure_Click); + // CbInfoGraphicAddRegionNames // - // cbPlaySoundOnAutomaticImport + this.CbInfoGraphicAddRegionNames.AutoSize = true; + this.CbInfoGraphicAddRegionNames.Location = new System.Drawing.Point(6, 134); + this.CbInfoGraphicAddRegionNames.Name = "CbInfoGraphicAddRegionNames"; + this.CbInfoGraphicAddRegionNames.Size = new System.Drawing.Size(115, 17); + this.CbInfoGraphicAddRegionNames.TabIndex = 13; + this.CbInfoGraphicAddRegionNames.Text = "color region names"; + this.CbInfoGraphicAddRegionNames.UseVisualStyleBackColor = true; + this.CbInfoGraphicAddRegionNames.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); // - this.cbPlaySoundOnAutomaticImport.AutoSize = true; - this.cbPlaySoundOnAutomaticImport.Location = new System.Drawing.Point(9, 55); - this.cbPlaySoundOnAutomaticImport.Name = "cbPlaySoundOnAutomaticImport"; - this.cbPlaySoundOnAutomaticImport.Size = new System.Drawing.Size(215, 17); - this.cbPlaySoundOnAutomaticImport.TabIndex = 2; - this.cbPlaySoundOnAutomaticImport.Text = "Play sound to indicate success or failure"; - this.cbPlaySoundOnAutomaticImport.UseVisualStyleBackColor = true; + // CbInfoGraphicCreatureName // - // label29 + this.CbInfoGraphicCreatureName.AutoSize = true; + this.CbInfoGraphicCreatureName.Location = new System.Drawing.Point(6, 19); + this.CbInfoGraphicCreatureName.Name = "CbInfoGraphicCreatureName"; + this.CbInfoGraphicCreatureName.Size = new System.Drawing.Size(94, 17); + this.CbInfoGraphicCreatureName.TabIndex = 12; + this.CbInfoGraphicCreatureName.Text = "creature name"; + this.CbInfoGraphicCreatureName.UseVisualStyleBackColor = true; + this.CbInfoGraphicCreatureName.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); // - this.label29.AutoSize = true; - this.label29.Location = new System.Drawing.Point(6, 75); - this.label29.Name = "label29"; - this.label29.Size = new System.Drawing.Size(137, 13); - this.label29.TabIndex = 3; - this.label29.Text = "After a successful import do"; + // CbInfoGraphicMutations // - // cbDeleteAutoImportedFile + this.CbInfoGraphicMutations.AutoSize = true; + this.CbInfoGraphicMutations.Location = new System.Drawing.Point(6, 88); + this.CbInfoGraphicMutations.Name = "CbInfoGraphicMutations"; + this.CbInfoGraphicMutations.Size = new System.Drawing.Size(71, 17); + this.CbInfoGraphicMutations.TabIndex = 5; + this.CbInfoGraphicMutations.Text = "mutations"; + this.CbInfoGraphicMutations.UseVisualStyleBackColor = true; + this.CbInfoGraphicMutations.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); // - this.cbDeleteAutoImportedFile.AutoSize = true; - this.cbDeleteAutoImportedFile.Location = new System.Drawing.Point(26, 96); - this.cbDeleteAutoImportedFile.Name = "cbDeleteAutoImportedFile"; - this.cbDeleteAutoImportedFile.Size = new System.Drawing.Size(114, 17); - this.cbDeleteAutoImportedFile.TabIndex = 4; - this.cbDeleteAutoImportedFile.Text = "delete imported file"; - this.cbDeleteAutoImportedFile.UseVisualStyleBackColor = true; - this.cbDeleteAutoImportedFile.CheckedChanged += new System.EventHandler(this.cbDeleteAutoImportedFile_CheckedChanged); + // CbInfoGraphicGenerations // - // cbMoveImportedFileToSubFolder + this.CbInfoGraphicGenerations.AutoSize = true; + this.CbInfoGraphicGenerations.Location = new System.Drawing.Point(6, 111); + this.CbInfoGraphicGenerations.Name = "CbInfoGraphicGenerations"; + this.CbInfoGraphicGenerations.Size = new System.Drawing.Size(148, 17); + this.CbInfoGraphicGenerations.TabIndex = 6; + this.CbInfoGraphicGenerations.Text = "generation of the creature"; + this.CbInfoGraphicGenerations.UseVisualStyleBackColor = true; + this.CbInfoGraphicGenerations.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); // - this.cbMoveImportedFileToSubFolder.AutoSize = true; - this.cbMoveImportedFileToSubFolder.Location = new System.Drawing.Point(26, 142); - this.cbMoveImportedFileToSubFolder.Name = "cbMoveImportedFileToSubFolder"; - this.cbMoveImportedFileToSubFolder.Size = new System.Drawing.Size(123, 17); - this.cbMoveImportedFileToSubFolder.TabIndex = 7; - this.cbMoveImportedFileToSubFolder.Text = "move imported file to"; - this.cbMoveImportedFileToSubFolder.UseVisualStyleBackColor = true; - this.cbMoveImportedFileToSubFolder.CheckedChanged += new System.EventHandler(this.cbMoveImportedFileToSubFolder_CheckedChanged); + // CbInfoGraphicDomLevels // - // label28 + this.CbInfoGraphicDomLevels.AutoSize = true; + this.CbInfoGraphicDomLevels.Location = new System.Drawing.Point(6, 42); + this.CbInfoGraphicDomLevels.Name = "CbInfoGraphicDomLevels"; + this.CbInfoGraphicDomLevels.Size = new System.Drawing.Size(460, 17); + this.CbInfoGraphicDomLevels.TabIndex = 4; + this.CbInfoGraphicDomLevels.Text = "levels and values of the current state (if disabled the values relevant for breed" + + "ing are shown)"; + this.CbInfoGraphicDomLevels.UseVisualStyleBackColor = true; + this.CbInfoGraphicDomLevels.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); // - this.label28.AutoSize = true; - this.label28.Location = new System.Drawing.Point(6, 39); - this.label28.Name = "label28"; - this.label28.Size = new System.Drawing.Size(256, 13); - this.label28.TabIndex = 1; - this.label28.Text = "Enable overlay for feedback about the import ingame"; + // CbInfoGraphicDisplayMaxWildLevel // - // cbAutoImportExported + this.CbInfoGraphicDisplayMaxWildLevel.AutoSize = true; + this.CbInfoGraphicDisplayMaxWildLevel.Location = new System.Drawing.Point(6, 180); + this.CbInfoGraphicDisplayMaxWildLevel.Name = "CbInfoGraphicDisplayMaxWildLevel"; + this.CbInfoGraphicDisplayMaxWildLevel.Size = new System.Drawing.Size(123, 17); + this.CbInfoGraphicDisplayMaxWildLevel.TabIndex = 3; + this.CbInfoGraphicDisplayMaxWildLevel.Text = "max wild server level"; + this.CbInfoGraphicDisplayMaxWildLevel.UseVisualStyleBackColor = true; + this.CbInfoGraphicDisplayMaxWildLevel.CheckedChanged += new System.EventHandler(this.CbInfoGraphicCheckBoxChanged); // - this.cbAutoImportExported.AutoSize = true; - this.cbAutoImportExported.Location = new System.Drawing.Point(9, 19); - this.cbAutoImportExported.Name = "cbAutoImportExported"; - this.cbAutoImportExported.Size = new System.Drawing.Size(174, 17); - this.cbAutoImportExported.TabIndex = 0; - this.cbAutoImportExported.Text = "Auto extract exported creatures"; - this.cbAutoImportExported.UseVisualStyleBackColor = true; + // label50 // - // groupBox21 + this.label50.AutoSize = true; + this.label50.Location = new System.Drawing.Point(11, 18); + this.label50.Name = "label50"; + this.label50.Size = new System.Drawing.Size(298, 13); + this.label50.TabIndex = 0; + this.label50.Text = "Styling of the infographic that can be exported from the library."; // - this.groupBox21.Controls.Add(this.CbApplyNamingPatternOnImportAlways); - this.groupBox21.Controls.Add(this.cbApplyNamePatternOnImportOnNewCreatures); - this.groupBox21.Controls.Add(this.label41); - this.groupBox21.Controls.Add(this.cbCopyPatternNameToClipboard); - this.groupBox21.Controls.Add(this.cbApplyNamePatternOnImportOnEmptyNames); - this.groupBox21.Location = new System.Drawing.Point(6, 508); - this.groupBox21.Name = "groupBox21"; - this.groupBox21.Size = new System.Drawing.Size(318, 162); - this.groupBox21.TabIndex = 5; - this.groupBox21.TabStop = false; - this.groupBox21.Text = "Auto naming on import"; + // tabPageImportSavegame // - // CbApplyNamingPatternOnImportAlways + this.tabPageImportSavegame.AutoScroll = true; + this.tabPageImportSavegame.Controls.Add(this.label68); + this.tabPageImportSavegame.Controls.Add(this.CbImportUnclaimedBabies); + this.tabPageImportSavegame.Controls.Add(this.cbSaveImportCryo); + this.tabPageImportSavegame.Controls.Add(this.label24); + this.tabPageImportSavegame.Controls.Add(this.cbIgnoreUnknownBPOnSaveImport); + this.tabPageImportSavegame.Controls.Add(this.groupBox14); + this.tabPageImportSavegame.Controls.Add(this.textBoxImportTribeNameFilter); + this.tabPageImportSavegame.Controls.Add(this.groupBox15); + this.tabPageImportSavegame.Controls.Add(this.label_Filter); + this.tabPageImportSavegame.Controls.Add(this.cbImportUpdateCreatureStatus); + this.tabPageImportSavegame.Location = new System.Drawing.Point(4, 22); + this.tabPageImportSavegame.Name = "tabPageImportSavegame"; + this.tabPageImportSavegame.Padding = new System.Windows.Forms.Padding(3); + this.tabPageImportSavegame.Size = new System.Drawing.Size(750, 744); + this.tabPageImportSavegame.TabIndex = 2; + this.tabPageImportSavegame.Text = "Import Savegame"; + this.tabPageImportSavegame.UseVisualStyleBackColor = true; // - this.CbApplyNamingPatternOnImportAlways.AutoSize = true; - this.CbApplyNamingPatternOnImportAlways.Location = new System.Drawing.Point(6, 39); - this.CbApplyNamingPatternOnImportAlways.Name = "CbApplyNamingPatternOnImportAlways"; - this.CbApplyNamingPatternOnImportAlways.Size = new System.Drawing.Size(177, 17); - this.CbApplyNamingPatternOnImportAlways.TabIndex = 1; - this.CbApplyNamingPatternOnImportAlways.Text = "always (overwrite existing name)"; - this.CbApplyNamingPatternOnImportAlways.UseVisualStyleBackColor = true; + // label68 // - // cbApplyNamePatternOnImportOnNewCreatures + this.label68.AutoSize = true; + this.label68.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label68.Location = new System.Drawing.Point(8, 3); + this.label68.Name = "label68"; + this.label68.Size = new System.Drawing.Size(506, 20); + this.label68.TabIndex = 1; + this.label68.Text = "Only ARK: Survival Evolved is support, no support for ASA yet."; // - this.cbApplyNamePatternOnImportOnNewCreatures.AutoSize = true; - this.cbApplyNamePatternOnImportOnNewCreatures.Location = new System.Drawing.Point(6, 85); - this.cbApplyNamePatternOnImportOnNewCreatures.Name = "cbApplyNamePatternOnImportOnNewCreatures"; - this.cbApplyNamePatternOnImportOnNewCreatures.Size = new System.Drawing.Size(203, 17); - this.cbApplyNamePatternOnImportOnNewCreatures.TabIndex = 3; - this.cbApplyNamePatternOnImportOnNewCreatures.Text = "if the creature is imported the first time"; - this.cbApplyNamePatternOnImportOnNewCreatures.UseVisualStyleBackColor = true; + // CbImportUnclaimedBabies // - // label41 + this.CbImportUnclaimedBabies.AutoSize = true; + this.CbImportUnclaimedBabies.Location = new System.Drawing.Point(11, 163); + this.CbImportUnclaimedBabies.Name = "CbImportUnclaimedBabies"; + this.CbImportUnclaimedBabies.Size = new System.Drawing.Size(140, 17); + this.CbImportUnclaimedBabies.TabIndex = 8; + this.CbImportUnclaimedBabies.Text = "Import unclaimed babies"; + this.CbImportUnclaimedBabies.UseVisualStyleBackColor = true; // - this.label41.AutoSize = true; - this.label41.Location = new System.Drawing.Point(6, 19); - this.label41.Name = "label41"; - this.label41.Size = new System.Drawing.Size(235, 13); - this.label41.TabIndex = 0; - this.label41.Text = "Apply first naming pattern automatically on import"; + // cbSaveImportCryo // - // cbCopyPatternNameToClipboard + this.cbSaveImportCryo.AutoSize = true; + this.cbSaveImportCryo.Location = new System.Drawing.Point(11, 140); + this.cbSaveImportCryo.Name = "cbSaveImportCryo"; + this.cbSaveImportCryo.Size = new System.Drawing.Size(216, 17); + this.cbSaveImportCryo.TabIndex = 3; + this.cbSaveImportCryo.Text = "Import creatures in cryopods or soultraps"; + this.cbSaveImportCryo.UseVisualStyleBackColor = true; // - this.cbCopyPatternNameToClipboard.AutoSize = true; - this.cbCopyPatternNameToClipboard.Location = new System.Drawing.Point(6, 124); - this.cbCopyPatternNameToClipboard.Name = "cbCopyPatternNameToClipboard"; - this.cbCopyPatternNameToClipboard.Size = new System.Drawing.Size(208, 17); - this.cbCopyPatternNameToClipboard.TabIndex = 4; - this.cbCopyPatternNameToClipboard.Text = "When applied, copy name to clipboard"; - this.cbCopyPatternNameToClipboard.UseVisualStyleBackColor = true; + // label24 // - // cbApplyNamePatternOnImportOnEmptyNames + this.label24.Location = new System.Drawing.Point(8, 39); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(730, 38); + this.label24.TabIndex = 0; + this.label24.Text = resources.GetString("label24.Text"); // - this.cbApplyNamePatternOnImportOnEmptyNames.AutoSize = true; - this.cbApplyNamePatternOnImportOnEmptyNames.Location = new System.Drawing.Point(6, 62); - this.cbApplyNamePatternOnImportOnEmptyNames.Name = "cbApplyNamePatternOnImportOnEmptyNames"; - this.cbApplyNamePatternOnImportOnEmptyNames.Size = new System.Drawing.Size(119, 17); - this.cbApplyNamePatternOnImportOnEmptyNames.TabIndex = 2; - this.cbApplyNamePatternOnImportOnEmptyNames.Text = "if the name is empty"; - this.cbApplyNamePatternOnImportOnEmptyNames.UseVisualStyleBackColor = true; + // cbIgnoreUnknownBPOnSaveImport // - // groupBox19 + this.cbIgnoreUnknownBPOnSaveImport.AutoSize = true; + this.cbIgnoreUnknownBPOnSaveImport.Location = new System.Drawing.Point(11, 117); + this.cbIgnoreUnknownBPOnSaveImport.Name = "cbIgnoreUnknownBPOnSaveImport"; + this.cbIgnoreUnknownBPOnSaveImport.Size = new System.Drawing.Size(334, 17); + this.cbIgnoreUnknownBPOnSaveImport.TabIndex = 2; + this.cbIgnoreUnknownBPOnSaveImport.Text = "Ignore unknown species on import and don\'t show a messagebox"; + this.cbIgnoreUnknownBPOnSaveImport.UseVisualStyleBackColor = true; // - this.groupBox19.Controls.Add(this.label26); - this.groupBox19.Controls.Add(this.nudWarnImportMoreThan); - this.groupBox19.Location = new System.Drawing.Point(6, 380); - this.groupBox19.Name = "groupBox19"; - this.groupBox19.Size = new System.Drawing.Size(318, 71); - this.groupBox19.TabIndex = 3; - this.groupBox19.TabStop = false; - this.groupBox19.Text = "Warn when importing many creatures"; + // groupBox14 // - // label26 + this.groupBox14.Controls.Add(this.fileSelectorExtractedSaveFolder); + this.groupBox14.Location = new System.Drawing.Point(8, 236); + this.groupBox14.Name = "groupBox14"; + this.groupBox14.Size = new System.Drawing.Size(730, 47); + this.groupBox14.TabIndex = 6; + this.groupBox14.TabStop = false; + this.groupBox14.Text = "Target folder for save-game working copy (user\'s temp dir if empty). It\'s recomme" + + "nded to leave this setting empty."; // - this.label26.AutoSize = true; - this.label26.Location = new System.Drawing.Point(6, 21); - this.label26.Name = "label26"; - this.label26.Size = new System.Drawing.Size(138, 39); - this.label26.TabIndex = 0; - this.label26.Text = "Warn if importing more than\r\ncreatures at once.\r\n(Set to 0 to disable warning)"; + // fileSelectorExtractedSaveFolder // - // nudWarnImportMoreThan + this.fileSelectorExtractedSaveFolder.Dock = System.Windows.Forms.DockStyle.Fill; + this.fileSelectorExtractedSaveFolder.Link = "filename"; + this.fileSelectorExtractedSaveFolder.Location = new System.Drawing.Point(3, 16); + this.fileSelectorExtractedSaveFolder.Name = "fileSelectorExtractedSaveFolder"; + this.fileSelectorExtractedSaveFolder.Size = new System.Drawing.Size(724, 28); + this.fileSelectorExtractedSaveFolder.TabIndex = 0; // - this.nudWarnImportMoreThan.Location = new System.Drawing.Point(184, 19); - this.nudWarnImportMoreThan.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudWarnImportMoreThan.Name = "nudWarnImportMoreThan"; - this.nudWarnImportMoreThan.Size = new System.Drawing.Size(128, 20); - this.nudWarnImportMoreThan.TabIndex = 1; + // textBoxImportTribeNameFilter // - // groupBox13 + this.textBoxImportTribeNameFilter.Location = new System.Drawing.Point(5, 202); + this.textBoxImportTribeNameFilter.Name = "textBoxImportTribeNameFilter"; + this.textBoxImportTribeNameFilter.Size = new System.Drawing.Size(730, 20); + this.textBoxImportTribeNameFilter.TabIndex = 5; // - this.groupBox13.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + // groupBox15 + // + this.groupBox15.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.groupBox13.Controls.Add(this.dataGridViewExportFolders); - this.groupBox13.Controls.Add(this.btAddExportFolder); - this.groupBox13.Location = new System.Drawing.Point(6, 112); - this.groupBox13.Name = "groupBox13"; - this.groupBox13.Size = new System.Drawing.Size(736, 261); - this.groupBox13.TabIndex = 2; - this.groupBox13.TabStop = false; - this.groupBox13.Text = "ARK export folders"; + this.groupBox15.Controls.Add(this.dataGridView_FileLocations); + this.groupBox15.Controls.Add(this.btAddSavegameFileLocation); + this.groupBox15.Controls.Add(this.labelSavegameFileLocationHint); + this.groupBox15.Location = new System.Drawing.Point(8, 289); + this.groupBox15.Name = "groupBox15"; + this.groupBox15.Size = new System.Drawing.Size(730, 386); + this.groupBox15.TabIndex = 7; + this.groupBox15.TabStop = false; + this.groupBox15.Text = "ARK save-game files"; // - // dataGridViewExportFolders + // dataGridView_FileLocations // - this.dataGridViewExportFolders.AutoGenerateColumns = false; - this.dataGridViewExportFolders.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.convenientNameDataGridViewTextBoxColumn1, - this.ownerSuffixDataGridViewTextBoxColumn, - this.folderPathDataGridViewTextBoxColumn, - this.dgvExportFolderChange, - this.dgvExportFolderDelete, - this.dgvExportMakeDefault}); - this.dataGridViewExportFolders.DataSource = this.aTExportFolderLocationsBindingSource; - this.dataGridViewExportFolders.Dock = System.Windows.Forms.DockStyle.Fill; - this.dataGridViewExportFolders.Location = new System.Drawing.Point(3, 39); - this.dataGridViewExportFolders.Name = "dataGridViewExportFolders"; - this.dataGridViewExportFolders.RowHeadersVisible = false; - this.dataGridViewExportFolders.Size = new System.Drawing.Size(730, 219); - this.dataGridViewExportFolders.TabIndex = 1; - this.dataGridViewExportFolders.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewExportFolders_CellClick); + this.dataGridView_FileLocations.AllowUserToAddRows = false; + this.dataGridView_FileLocations.AllowUserToDeleteRows = false; + this.dataGridView_FileLocations.AutoGenerateColumns = false; + this.dataGridView_FileLocations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView_FileLocations.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.convenientNameDataGridViewTextBoxColumn, + this.serverNameDataGridViewTextBoxColumn, + this.fileLocationDataGridViewTextBoxColumn, + this.dgvFileLocation_Change, + this.ImportWithQuickImport, + this.dgvFileLocation_Delete}); + this.dataGridView_FileLocations.DataSource = this.aTImportFileLocationBindingSource; + this.dataGridView_FileLocations.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView_FileLocations.Location = new System.Drawing.Point(3, 62); + this.dataGridView_FileLocations.MultiSelect = false; + this.dataGridView_FileLocations.Name = "dataGridView_FileLocations"; + this.dataGridView_FileLocations.RowHeadersVisible = false; + this.dataGridView_FileLocations.Size = new System.Drawing.Size(724, 321); + this.dataGridView_FileLocations.TabIndex = 2; + this.dataGridView_FileLocations.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView_FileLocations_CellClick); // - // dgvExportFolderChange + // convenientNameDataGridViewTextBoxColumn // - this.dgvExportFolderChange.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - this.dgvExportFolderChange.HeaderText = "Change"; - this.dgvExportFolderChange.MinimumWidth = 50; - this.dgvExportFolderChange.Name = "dgvExportFolderChange"; - this.dgvExportFolderChange.ReadOnly = true; - this.dgvExportFolderChange.Text = "Change"; - this.dgvExportFolderChange.UseColumnTextForButtonValue = true; - this.dgvExportFolderChange.Width = 50; + this.convenientNameDataGridViewTextBoxColumn.DataPropertyName = "ConvenientName"; + this.convenientNameDataGridViewTextBoxColumn.HeaderText = "Name"; + this.convenientNameDataGridViewTextBoxColumn.Name = "convenientNameDataGridViewTextBoxColumn"; + this.convenientNameDataGridViewTextBoxColumn.ReadOnly = true; // - // dgvExportFolderDelete + // serverNameDataGridViewTextBoxColumn // - this.dgvExportFolderDelete.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - this.dgvExportFolderDelete.HeaderText = "Delete"; - this.dgvExportFolderDelete.MinimumWidth = 50; - this.dgvExportFolderDelete.Name = "dgvExportFolderDelete"; - this.dgvExportFolderDelete.ReadOnly = true; - this.dgvExportFolderDelete.Text = "Delete"; - this.dgvExportFolderDelete.UseColumnTextForButtonValue = true; - this.dgvExportFolderDelete.Width = 50; + this.serverNameDataGridViewTextBoxColumn.DataPropertyName = "ServerName"; + this.serverNameDataGridViewTextBoxColumn.HeaderText = "Server name"; + this.serverNameDataGridViewTextBoxColumn.Name = "serverNameDataGridViewTextBoxColumn"; + this.serverNameDataGridViewTextBoxColumn.ReadOnly = true; // - // dgvExportMakeDefault + // fileLocationDataGridViewTextBoxColumn // - this.dgvExportMakeDefault.HeaderText = "Default"; - this.dgvExportMakeDefault.Name = "dgvExportMakeDefault"; - this.dgvExportMakeDefault.ReadOnly = true; - this.dgvExportMakeDefault.Text = "Make default"; - this.dgvExportMakeDefault.UseColumnTextForButtonValue = true; + this.fileLocationDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.fileLocationDataGridViewTextBoxColumn.DataPropertyName = "FileLocation"; + this.fileLocationDataGridViewTextBoxColumn.HeaderText = "File location"; + this.fileLocationDataGridViewTextBoxColumn.Name = "fileLocationDataGridViewTextBoxColumn"; + this.fileLocationDataGridViewTextBoxColumn.ReadOnly = true; // - // btAddExportFolder + // dgvFileLocation_Change // - this.btAddExportFolder.Dock = System.Windows.Forms.DockStyle.Top; - this.btAddExportFolder.Location = new System.Drawing.Point(3, 16); - this.btAddExportFolder.Name = "btAddExportFolder"; - this.btAddExportFolder.Size = new System.Drawing.Size(730, 23); - this.btAddExportFolder.TabIndex = 0; - this.btAddExportFolder.Text = "Add Export Folder…"; - this.btAddExportFolder.UseVisualStyleBackColor = true; - this.btAddExportFolder.Click += new System.EventHandler(this.btAddExportFolder_Click); + this.dgvFileLocation_Change.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.dgvFileLocation_Change.HeaderText = "Change"; + this.dgvFileLocation_Change.MinimumWidth = 50; + this.dgvFileLocation_Change.Name = "dgvFileLocation_Change"; + this.dgvFileLocation_Change.ReadOnly = true; + this.dgvFileLocation_Change.Resizable = System.Windows.Forms.DataGridViewTriState.False; + this.dgvFileLocation_Change.Text = "Change"; + this.dgvFileLocation_Change.UseColumnTextForButtonValue = true; + this.dgvFileLocation_Change.Width = 50; // - // label25 + // ImportWithQuickImport // - this.label25.AutoSize = true; - this.label25.Location = new System.Drawing.Point(3, 3); - this.label25.Name = "label25"; - this.label25.Size = new System.Drawing.Size(669, 91); - this.label25.TabIndex = 0; - this.label25.Text = resources.GetString("label25.Text"); + this.ImportWithQuickImport.DataPropertyName = "ImportWithQuickImport"; + this.ImportWithQuickImport.HeaderText = "QuickImport"; + this.ImportWithQuickImport.Name = "ImportWithQuickImport"; + this.ImportWithQuickImport.ReadOnly = true; + this.ImportWithQuickImport.ToolTipText = "If checked the savegame will be imported with the quick import button in the menu" + + " bar."; + this.ImportWithQuickImport.Width = 70; // - // tabPageTimers + // dgvFileLocation_Delete // - this.tabPageTimers.Controls.Add(this.groupBox24); - this.tabPageTimers.Controls.Add(this.groupBox8); - this.tabPageTimers.Location = new System.Drawing.Point(4, 22); - this.tabPageTimers.Name = "tabPageTimers"; - this.tabPageTimers.Padding = new System.Windows.Forms.Padding(3); - this.tabPageTimers.Size = new System.Drawing.Size(750, 744); - this.tabPageTimers.TabIndex = 6; - this.tabPageTimers.Text = "Timers"; - this.tabPageTimers.UseVisualStyleBackColor = true; + this.dgvFileLocation_Delete.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.dgvFileLocation_Delete.HeaderText = "Delete"; + this.dgvFileLocation_Delete.MinimumWidth = 50; + this.dgvFileLocation_Delete.Name = "dgvFileLocation_Delete"; + this.dgvFileLocation_Delete.ReadOnly = true; + this.dgvFileLocation_Delete.Resizable = System.Windows.Forms.DataGridViewTriState.False; + this.dgvFileLocation_Delete.Text = "Delete"; + this.dgvFileLocation_Delete.UseColumnTextForButtonValue = true; + this.dgvFileLocation_Delete.Width = 50; // - // groupBox24 + // aTImportFileLocationBindingSource // - this.groupBox24.Controls.Add(this.cbKeepExpiredTimersInOverlay); - this.groupBox24.Controls.Add(this.cbDeleteExpiredTimersOnSaving); - this.groupBox24.Controls.Add(this.cbTimersInOverlayAutomatically); - this.groupBox24.Location = new System.Drawing.Point(8, 233); - this.groupBox24.Name = "groupBox24"; - this.groupBox24.Size = new System.Drawing.Size(413, 90); - this.groupBox24.TabIndex = 1; - this.groupBox24.TabStop = false; - this.groupBox24.Text = "Timers"; + this.aTImportFileLocationBindingSource.AllowNew = false; + this.aTImportFileLocationBindingSource.DataSource = typeof(ARKBreedingStats.settings.ATImportFileLocation); // - // cbKeepExpiredTimersInOverlay + // btAddSavegameFileLocation // - this.cbKeepExpiredTimersInOverlay.AutoSize = true; - this.cbKeepExpiredTimersInOverlay.Location = new System.Drawing.Point(6, 42); - this.cbKeepExpiredTimersInOverlay.Name = "cbKeepExpiredTimersInOverlay"; - this.cbKeepExpiredTimersInOverlay.Size = new System.Drawing.Size(166, 17); - this.cbKeepExpiredTimersInOverlay.TabIndex = 1; - this.cbKeepExpiredTimersInOverlay.Text = "Keep expired timers in overlay"; - this.cbKeepExpiredTimersInOverlay.UseVisualStyleBackColor = true; - // - // cbDeleteExpiredTimersOnSaving - // - this.cbDeleteExpiredTimersOnSaving.AutoSize = true; - this.cbDeleteExpiredTimersOnSaving.Location = new System.Drawing.Point(6, 65); - this.cbDeleteExpiredTimersOnSaving.Name = "cbDeleteExpiredTimersOnSaving"; - this.cbDeleteExpiredTimersOnSaving.Size = new System.Drawing.Size(217, 17); - this.cbDeleteExpiredTimersOnSaving.TabIndex = 2; - this.cbDeleteExpiredTimersOnSaving.Text = "Delete expired timers when saving library"; - this.cbDeleteExpiredTimersOnSaving.UseVisualStyleBackColor = true; + this.btAddSavegameFileLocation.Dock = System.Windows.Forms.DockStyle.Top; + this.btAddSavegameFileLocation.Location = new System.Drawing.Point(3, 39); + this.btAddSavegameFileLocation.Name = "btAddSavegameFileLocation"; + this.btAddSavegameFileLocation.Size = new System.Drawing.Size(724, 23); + this.btAddSavegameFileLocation.TabIndex = 1; + this.btAddSavegameFileLocation.Text = "Add Savegame File Location"; + this.btAddSavegameFileLocation.UseVisualStyleBackColor = true; + this.btAddSavegameFileLocation.Click += new System.EventHandler(this.btAddSavegameFileLocation_Click); // - // cbTimersInOverlayAutomatically + // labelSavegameFileLocationHint // - this.cbTimersInOverlayAutomatically.AutoSize = true; - this.cbTimersInOverlayAutomatically.Location = new System.Drawing.Point(6, 19); - this.cbTimersInOverlayAutomatically.Name = "cbTimersInOverlayAutomatically"; - this.cbTimersInOverlayAutomatically.Size = new System.Drawing.Size(202, 17); - this.cbTimersInOverlayAutomatically.TabIndex = 0; - this.cbTimersInOverlayAutomatically.Text = "Display timers in overlay automatically"; - this.cbTimersInOverlayAutomatically.UseVisualStyleBackColor = true; + this.labelSavegameFileLocationHint.AutoSize = true; + this.labelSavegameFileLocationHint.Dock = System.Windows.Forms.DockStyle.Top; + this.labelSavegameFileLocationHint.Location = new System.Drawing.Point(3, 16); + this.labelSavegameFileLocationHint.Name = "labelSavegameFileLocationHint"; + this.labelSavegameFileLocationHint.Padding = new System.Windows.Forms.Padding(5); + this.labelSavegameFileLocationHint.Size = new System.Drawing.Size(605, 23); + this.labelSavegameFileLocationHint.TabIndex = 0; + this.labelSavegameFileLocationHint.Text = "Location example for The Island: ...\\Steam\\steamapps\\common\\ARK\\ShooterGame\\Saved" + + "\\SavedArksLocal\\TheIsland.ark"; // - // groupBox8 + // label_Filter // - this.groupBox8.Controls.Add(this.label22); - this.groupBox8.Controls.Add(this.tbPlayAlarmsSeconds); - this.groupBox8.Controls.Add(this.customSCCustom); - this.groupBox8.Controls.Add(this.customSCWakeup); - this.groupBox8.Controls.Add(this.customSCBirth); - this.groupBox8.Controls.Add(this.customSCStarving); - this.groupBox8.Controls.Add(this.label20); - this.groupBox8.Location = new System.Drawing.Point(8, 6); - this.groupBox8.Name = "groupBox8"; - this.groupBox8.Size = new System.Drawing.Size(413, 221); - this.groupBox8.TabIndex = 0; - this.groupBox8.TabStop = false; - this.groupBox8.Text = "Timer Sounds"; + this.label_Filter.AutoSize = true; + this.label_Filter.Location = new System.Drawing.Point(5, 186); + this.label_Filter.Name = "label_Filter"; + this.label_Filter.Size = new System.Drawing.Size(487, 13); + this.label_Filter.TabIndex = 4; + this.label_Filter.Text = "Import only tribes with names containing at least one of these comma separated va" + + "lues, case sensitive"; // - // label22 + // cbImportUpdateCreatureStatus // - this.label22.Location = new System.Drawing.Point(6, 171); - this.label22.Name = "label22"; - this.label22.Size = new System.Drawing.Size(255, 66); - this.label22.TabIndex = 5; - this.label22.Text = "List of seconds the alarms play before they reach 0.\r\nE.g. \"60,0\" to play the ala" + - "rm at 60 s and at 0 s. Use commas to separate the values."; + this.cbImportUpdateCreatureStatus.Location = new System.Drawing.Point(11, 74); + this.cbImportUpdateCreatureStatus.Name = "cbImportUpdateCreatureStatus"; + this.cbImportUpdateCreatureStatus.Size = new System.Drawing.Size(727, 37); + this.cbImportUpdateCreatureStatus.TabIndex = 1; + this.cbImportUpdateCreatureStatus.Text = "Update Available/Unavailable Status on Import for disappeared or reappeared creat" + + "ures (disable this if you will import savegames from multiple servers). This set" + + "ting is saved per library."; + this.cbImportUpdateCreatureStatus.UseVisualStyleBackColor = true; // - // tbPlayAlarmsSeconds + // tabPageImportExported // - this.tbPlayAlarmsSeconds.Location = new System.Drawing.Point(267, 168); - this.tbPlayAlarmsSeconds.Name = "tbPlayAlarmsSeconds"; - this.tbPlayAlarmsSeconds.Size = new System.Drawing.Size(140, 20); - this.tbPlayAlarmsSeconds.TabIndex = 6; + this.tabPageImportExported.AutoScroll = true; + this.tabPageImportExported.Controls.Add(this.BtGetExportFolderAutomatically); + this.tabPageImportExported.Controls.Add(this.groupBox27); + this.tabPageImportExported.Controls.Add(this.groupBox23); + this.tabPageImportExported.Controls.Add(this.groupBox22); + this.tabPageImportExported.Controls.Add(this.groupBox21); + this.tabPageImportExported.Controls.Add(this.groupBox19); + this.tabPageImportExported.Controls.Add(this.groupBox13); + this.tabPageImportExported.Controls.Add(this.label25); + this.tabPageImportExported.Location = new System.Drawing.Point(4, 22); + this.tabPageImportExported.Name = "tabPageImportExported"; + this.tabPageImportExported.Padding = new System.Windows.Forms.Padding(3); + this.tabPageImportExported.Size = new System.Drawing.Size(750, 744); + this.tabPageImportExported.TabIndex = 3; + this.tabPageImportExported.Text = "Import Exported"; + this.tabPageImportExported.UseVisualStyleBackColor = true; // - // label20 + // BtGetExportFolderAutomatically // - this.label20.Location = new System.Drawing.Point(6, 16); - this.label20.Name = "label20"; - this.label20.Size = new System.Drawing.Size(316, 33); - this.label20.TabIndex = 0; - this.label20.Text = "Only PCM-WAV-files are supported. The sound will play 1 min before the timer runs" + - " out."; + this.BtGetExportFolderAutomatically.Location = new System.Drawing.Point(597, 41); + this.BtGetExportFolderAutomatically.Name = "BtGetExportFolderAutomatically"; + this.BtGetExportFolderAutomatically.Size = new System.Drawing.Size(145, 53); + this.BtGetExportFolderAutomatically.TabIndex = 1; + this.BtGetExportFolderAutomatically.Text = "Set export folder automatically (only Steam)"; + this.BtGetExportFolderAutomatically.UseVisualStyleBackColor = true; + this.BtGetExportFolderAutomatically.Click += new System.EventHandler(this.BtGetExportFolderAutomatically_Click); // - // tabPageOverlay + // groupBox27 // - this.tabPageOverlay.Controls.Add(this.groupBox10); - this.tabPageOverlay.Location = new System.Drawing.Point(4, 22); - this.tabPageOverlay.Name = "tabPageOverlay"; - this.tabPageOverlay.Padding = new System.Windows.Forms.Padding(3); - this.tabPageOverlay.Size = new System.Drawing.Size(750, 744); - this.tabPageOverlay.TabIndex = 5; - this.tabPageOverlay.Text = "Overlay"; - this.tabPageOverlay.UseVisualStyleBackColor = true; + this.groupBox27.Controls.Add(this.label46); + this.groupBox27.Controls.Add(this.RbTamerStringForTribe); + this.groupBox27.Controls.Add(this.RbTamerStringForOwner); + this.groupBox27.Location = new System.Drawing.Point(330, 575); + this.groupBox27.Name = "groupBox27"; + this.groupBox27.Size = new System.Drawing.Size(412, 95); + this.groupBox27.TabIndex = 7; + this.groupBox27.TabStop = false; + this.groupBox27.Text = "Tribe / Owner"; // - // groupBox10 + // label46 // - this.groupBox10.Controls.Add(this.NudOverlayRelativeFontSize); - this.groupBox10.Controls.Add(this.label65); - this.groupBox10.Controls.Add(this.CbOverlayDisplayInheritance); - this.groupBox10.Controls.Add(this.label45); - this.groupBox10.Controls.Add(this.pCustomOverlayLocation); - this.groupBox10.Controls.Add(this.cbCustomOverlayLocation); - this.groupBox10.Controls.Add(this.label38); - this.groupBox10.Controls.Add(this.nudOverlayInfoPosY); - this.groupBox10.Controls.Add(this.label39); - this.groupBox10.Controls.Add(this.nudOverlayInfoPosDFR); - this.groupBox10.Controls.Add(this.label40); - this.groupBox10.Controls.Add(this.label37); - this.groupBox10.Controls.Add(this.nudOverlayTimerPosY); - this.groupBox10.Controls.Add(this.label36); - this.groupBox10.Controls.Add(this.nudOverlayTimerPosX); - this.groupBox10.Controls.Add(this.label35); - this.groupBox10.Controls.Add(this.cbInventoryCheck); - this.groupBox10.Controls.Add(this.label21); - this.groupBox10.Controls.Add(this.nudOverlayInfoDuration); - this.groupBox10.Controls.Add(this.chkbSpeechRecognition); - this.groupBox10.Controls.Add(this.label66); - this.groupBox10.Location = new System.Drawing.Point(8, 6); - this.groupBox10.Name = "groupBox10"; - this.groupBox10.Size = new System.Drawing.Size(734, 307); - this.groupBox10.TabIndex = 0; - this.groupBox10.TabStop = false; - this.groupBox10.Text = "Overlay"; + this.label46.Location = new System.Drawing.Point(6, 17); + this.label46.Name = "label46"; + this.label46.Size = new System.Drawing.Size(306, 29); + this.label46.TabIndex = 0; + this.label46.Text = "The TamerString in the export file contains either the creature owner or the trib" + + "e, depending on the tribe permissions."; // - // label65 + // RbTamerStringForTribe // - this.label65.AutoSize = true; - this.label65.Location = new System.Drawing.Point(6, 252); - this.label65.Name = "label65"; - this.label65.Size = new System.Drawing.Size(141, 13); - this.label65.TabIndex = 18; - this.label65.Text = "Relative font size (default: 1)"; + this.RbTamerStringForTribe.AutoSize = true; + this.RbTamerStringForTribe.Location = new System.Drawing.Point(6, 72); + this.RbTamerStringForTribe.Name = "RbTamerStringForTribe"; + this.RbTamerStringForTribe.Size = new System.Drawing.Size(184, 17); + this.RbTamerStringForTribe.TabIndex = 2; + this.RbTamerStringForTribe.TabStop = true; + this.RbTamerStringForTribe.Text = "Use TamerString for creature tribe"; + this.RbTamerStringForTribe.UseVisualStyleBackColor = true; // - // CbOverlayDisplayInheritance + // RbTamerStringForOwner // - this.CbOverlayDisplayInheritance.AutoSize = true; - this.CbOverlayDisplayInheritance.Location = new System.Drawing.Point(6, 284); - this.CbOverlayDisplayInheritance.Name = "CbOverlayDisplayInheritance"; - this.CbOverlayDisplayInheritance.Size = new System.Drawing.Size(203, 17); - this.CbOverlayDisplayInheritance.TabIndex = 17; - this.CbOverlayDisplayInheritance.Text = "Display creature inheritance on import"; - this.CbOverlayDisplayInheritance.UseVisualStyleBackColor = true; + this.RbTamerStringForOwner.AutoSize = true; + this.RbTamerStringForOwner.Location = new System.Drawing.Point(6, 49); + this.RbTamerStringForOwner.Name = "RbTamerStringForOwner"; + this.RbTamerStringForOwner.Size = new System.Drawing.Size(193, 17); + this.RbTamerStringForOwner.TabIndex = 1; + this.RbTamerStringForOwner.TabStop = true; + this.RbTamerStringForOwner.Text = "Use TamerString for creature owner"; + this.RbTamerStringForOwner.UseVisualStyleBackColor = true; // - // label45 + // groupBox23 // - this.label45.AutoSize = true; - this.label45.Location = new System.Drawing.Point(38, 25); - this.label45.Name = "label45"; - this.label45.Size = new System.Drawing.Size(495, 13); - this.label45.TabIndex = 0; - this.label45.Text = "For the overlay to work, you need to set the window-mode \"Fullscreen-Windowed\" in" + - " the game settings."; + this.groupBox23.Controls.Add(this.label31); + this.groupBox23.Controls.Add(this.label30); + this.groupBox23.Controls.Add(this.nudImportLowerBoundTE); + this.groupBox23.Location = new System.Drawing.Point(6, 457); + this.groupBox23.Name = "groupBox23"; + this.groupBox23.Size = new System.Drawing.Size(318, 45); + this.groupBox23.TabIndex = 4; + this.groupBox23.TabStop = false; + this.groupBox23.Text = "Taming Effectiveness Bounds"; // - // pCustomOverlayLocation + // label31 // - this.pCustomOverlayLocation.Controls.Add(this.nudCustomOverlayLocX); - this.pCustomOverlayLocation.Controls.Add(this.label42); - this.pCustomOverlayLocation.Controls.Add(this.label43); - this.pCustomOverlayLocation.Controls.Add(this.nudCustomOverlayLocY); - this.pCustomOverlayLocation.Enabled = false; - this.pCustomOverlayLocation.Location = new System.Drawing.Point(195, 217); - this.pCustomOverlayLocation.Name = "pCustomOverlayLocation"; - this.pCustomOverlayLocation.Size = new System.Drawing.Size(201, 28); - this.pCustomOverlayLocation.TabIndex = 16; + this.label31.AutoSize = true; + this.label31.Location = new System.Drawing.Point(6, 21); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(70, 13); + this.label31.TabIndex = 0; + this.label31.Text = "Lower Bound"; // - // label42 + // label30 // - this.label42.AutoSize = true; - this.label42.Location = new System.Drawing.Point(105, 5); - this.label42.Name = "label42"; - this.label42.Size = new System.Drawing.Size(14, 13); - this.label42.TabIndex = 2; - this.label42.Text = "Y"; + this.label30.AutoSize = true; + this.label30.Location = new System.Drawing.Point(297, 21); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(15, 13); + this.label30.TabIndex = 11; + this.label30.Text = "%"; // - // label43 + // nudImportLowerBoundTE // - this.label43.AutoSize = true; - this.label43.Location = new System.Drawing.Point(4, 5); - this.label43.Name = "label43"; - this.label43.Size = new System.Drawing.Size(14, 13); - this.label43.TabIndex = 0; - this.label43.Text = "X"; + this.nudImportLowerBoundTE.DecimalPlaces = 2; + this.nudImportLowerBoundTE.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudImportLowerBoundTE.Location = new System.Drawing.Point(227, 19); + this.nudImportLowerBoundTE.Name = "nudImportLowerBoundTE"; + this.nudImportLowerBoundTE.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudImportLowerBoundTE.Size = new System.Drawing.Size(64, 20); + this.nudImportLowerBoundTE.TabIndex = 1; // - // cbCustomOverlayLocation + // groupBox22 // - this.cbCustomOverlayLocation.AutoSize = true; - this.cbCustomOverlayLocation.Location = new System.Drawing.Point(6, 221); - this.cbCustomOverlayLocation.Name = "cbCustomOverlayLocation"; - this.cbCustomOverlayLocation.Size = new System.Drawing.Size(138, 17); - this.cbCustomOverlayLocation.TabIndex = 15; - this.cbCustomOverlayLocation.Text = "Custom overlay location"; - this.cbCustomOverlayLocation.UseVisualStyleBackColor = true; - this.cbCustomOverlayLocation.CheckedChanged += new System.EventHandler(this.cbCustomOverlayLocation_CheckedChanged); + this.groupBox22.Controls.Add(this.CbBringToFrontOnImportExportIssue); + this.groupBox22.Controls.Add(this.CbAutoExtractAddToLibrary); + this.groupBox22.Controls.Add(this.CbAutoImportSuccessGotoLibrary); + this.groupBox22.Controls.Add(this.TbExportFileRename); + this.groupBox22.Controls.Add(this.CbExportFileRenameAfterImport); + this.groupBox22.Controls.Add(this.BtImportArchiveFolder); + this.groupBox22.Controls.Add(this.panel2); + this.groupBox22.Controls.Add(this.cbPlaySoundOnAutomaticImport); + this.groupBox22.Controls.Add(this.label29); + this.groupBox22.Controls.Add(this.cbDeleteAutoImportedFile); + this.groupBox22.Controls.Add(this.cbMoveImportedFileToSubFolder); + this.groupBox22.Controls.Add(this.label28); + this.groupBox22.Controls.Add(this.cbAutoImportExported); + this.groupBox22.Location = new System.Drawing.Point(330, 379); + this.groupBox22.Name = "groupBox22"; + this.groupBox22.Size = new System.Drawing.Size(412, 190); + this.groupBox22.TabIndex = 6; + this.groupBox22.TabStop = false; + this.groupBox22.Text = "Auto import"; // - // label38 + // CbBringToFrontOnImportExportIssue // - this.label38.AutoSize = true; - this.label38.Location = new System.Drawing.Point(120, 187); - this.label38.Name = "label38"; - this.label38.Size = new System.Drawing.Size(93, 13); - this.label38.TabIndex = 11; - this.label38.Text = "distance from right"; + this.CbBringToFrontOnImportExportIssue.AutoSize = true; + this.CbBringToFrontOnImportExportIssue.Location = new System.Drawing.Point(155, 165); + this.CbBringToFrontOnImportExportIssue.Name = "CbBringToFrontOnImportExportIssue"; + this.CbBringToFrontOnImportExportIssue.Size = new System.Drawing.Size(198, 17); + this.CbBringToFrontOnImportExportIssue.TabIndex = 11; + this.CbBringToFrontOnImportExportIssue.Text = "Bring window to front on import issue"; + this.CbBringToFrontOnImportExportIssue.UseVisualStyleBackColor = true; // - // label39 + // CbAutoExtractAddToLibrary // - this.label39.AutoSize = true; - this.label39.Location = new System.Drawing.Point(300, 187); - this.label39.Name = "label39"; - this.label39.Size = new System.Drawing.Size(14, 13); - this.label39.TabIndex = 13; - this.label39.Text = "Y"; + this.CbAutoExtractAddToLibrary.AutoSize = true; + this.CbAutoExtractAddToLibrary.Location = new System.Drawing.Point(189, 19); + this.CbAutoExtractAddToLibrary.Name = "CbAutoExtractAddToLibrary"; + this.CbAutoExtractAddToLibrary.Size = new System.Drawing.Size(87, 17); + this.CbAutoExtractAddToLibrary.TabIndex = 10; + this.CbAutoExtractAddToLibrary.Text = "Add to library"; + this.CbAutoExtractAddToLibrary.UseVisualStyleBackColor = true; // - // label40 + // CbAutoImportSuccessGotoLibrary // - this.label40.AutoSize = true; - this.label40.Location = new System.Drawing.Point(6, 187); - this.label40.Name = "label40"; - this.label40.Size = new System.Drawing.Size(94, 13); - this.label40.TabIndex = 10; - this.label40.Text = "Position of the info"; + this.CbAutoImportSuccessGotoLibrary.AutoSize = true; + this.CbAutoImportSuccessGotoLibrary.Location = new System.Drawing.Point(26, 165); + this.CbAutoImportSuccessGotoLibrary.Name = "CbAutoImportSuccessGotoLibrary"; + this.CbAutoImportSuccessGotoLibrary.Size = new System.Drawing.Size(98, 17); + this.CbAutoImportSuccessGotoLibrary.TabIndex = 9; + this.CbAutoImportSuccessGotoLibrary.Text = "go to library tab"; + this.CbAutoImportSuccessGotoLibrary.UseVisualStyleBackColor = true; // - // label37 + // TbExportFileRename // - this.label37.AutoSize = true; - this.label37.Location = new System.Drawing.Point(300, 161); - this.label37.Name = "label37"; - this.label37.Size = new System.Drawing.Size(14, 13); - this.label37.TabIndex = 8; - this.label37.Text = "Y"; + this.TbExportFileRename.Location = new System.Drawing.Point(155, 113); + this.TbExportFileRename.Name = "TbExportFileRename"; + this.TbExportFileRename.Size = new System.Drawing.Size(124, 20); + this.TbExportFileRename.TabIndex = 6; // - // label36 + // CbExportFileRenameAfterImport // - this.label36.AutoSize = true; - this.label36.Location = new System.Drawing.Point(199, 161); - this.label36.Name = "label36"; - this.label36.Size = new System.Drawing.Size(14, 13); - this.label36.TabIndex = 6; - this.label36.Text = "X"; + this.CbExportFileRenameAfterImport.AutoSize = true; + this.CbExportFileRenameAfterImport.Location = new System.Drawing.Point(26, 119); + this.CbExportFileRenameAfterImport.Name = "CbExportFileRenameAfterImport"; + this.CbExportFileRenameAfterImport.Size = new System.Drawing.Size(119, 17); + this.CbExportFileRenameAfterImport.TabIndex = 5; + this.CbExportFileRenameAfterImport.Text = "rename file (pattern)"; + this.CbExportFileRenameAfterImport.UseVisualStyleBackColor = true; // - // label35 + // BtImportArchiveFolder // - this.label35.AutoSize = true; - this.label35.Location = new System.Drawing.Point(6, 161); - this.label35.Name = "label35"; - this.label35.Size = new System.Drawing.Size(104, 13); - this.label35.TabIndex = 5; - this.label35.Text = "Position of the timers"; + this.BtImportArchiveFolder.Location = new System.Drawing.Point(155, 139); + this.BtImportArchiveFolder.Name = "BtImportArchiveFolder"; + this.BtImportArchiveFolder.Size = new System.Drawing.Size(124, 21); + this.BtImportArchiveFolder.TabIndex = 8; + this.BtImportArchiveFolder.Text = "…"; + this.BtImportArchiveFolder.UseVisualStyleBackColor = true; + this.BtImportArchiveFolder.Click += new System.EventHandler(this.BtImportArchiveFolder_Click); // - // cbInventoryCheck + // panel2 // - this.cbInventoryCheck.Location = new System.Drawing.Point(6, 116); - this.cbInventoryCheck.Name = "cbInventoryCheck"; - this.cbInventoryCheck.Size = new System.Drawing.Size(305, 35); - this.cbInventoryCheck.TabIndex = 4; - this.cbInventoryCheck.Text = "Automatically extract inventory levels (needs working OCR and enabled overlay)"; - this.cbInventoryCheck.UseVisualStyleBackColor = true; + this.panel2.Controls.Add(this.BtBeepUpdated); + this.panel2.Controls.Add(this.BtBeepNewTop); + this.panel2.Controls.Add(this.BtBeepTop); + this.panel2.Controls.Add(this.BtBeepSuccess); + this.panel2.Controls.Add(this.label47); + this.panel2.Controls.Add(this.BtBeepFailure); + this.panel2.Location = new System.Drawing.Point(285, 11); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(121, 148); + this.panel2.TabIndex = 7; // - // label21 + // BtBeepUpdated // - this.label21.AutoSize = true; - this.label21.Location = new System.Drawing.Point(6, 84); - this.label21.Name = "label21"; - this.label21.Size = new System.Drawing.Size(138, 13); - this.label21.TabIndex = 2; - this.label21.Text = "Display info in overlay for [s]"; + this.BtBeepUpdated.Location = new System.Drawing.Point(3, 122); + this.BtBeepUpdated.Name = "BtBeepUpdated"; + this.BtBeepUpdated.Size = new System.Drawing.Size(115, 23); + this.BtBeepUpdated.TabIndex = 5; + this.BtBeepUpdated.Text = "updated"; + this.BtBeepUpdated.UseVisualStyleBackColor = true; + this.BtBeepUpdated.Click += new System.EventHandler(this.BtBeepUpdated_Click); // - // chkbSpeechRecognition + // BtBeepNewTop // - this.chkbSpeechRecognition.AutoSize = true; - this.chkbSpeechRecognition.Location = new System.Drawing.Point(6, 59); - this.chkbSpeechRecognition.Name = "chkbSpeechRecognition"; - this.chkbSpeechRecognition.Size = new System.Drawing.Size(338, 17); - this.chkbSpeechRecognition.TabIndex = 1; - this.chkbSpeechRecognition.Text = "Speech Recognition (displays taming info, e.g. say \"Rex level 30\")"; - this.chkbSpeechRecognition.UseVisualStyleBackColor = true; + this.BtBeepNewTop.Location = new System.Drawing.Point(3, 96); + this.BtBeepNewTop.Name = "BtBeepNewTop"; + this.BtBeepNewTop.Size = new System.Drawing.Size(115, 23); + this.BtBeepNewTop.TabIndex = 4; + this.BtBeepNewTop.Text = "new top stat"; + this.BtBeepNewTop.UseVisualStyleBackColor = true; + this.BtBeepNewTop.Click += new System.EventHandler(this.BtBeepNewTop_Click); // - // label66 + // BtBeepTop // - this.label66.AutoSize = true; - this.label66.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label66.Location = new System.Drawing.Point(6, 16); - this.label66.Name = "label66"; - this.label66.Size = new System.Drawing.Size(37, 26); - this.label66.TabIndex = 19; - this.label66.Text = "💡"; + this.BtBeepTop.Location = new System.Drawing.Point(3, 70); + this.BtBeepTop.Name = "BtBeepTop"; + this.BtBeepTop.Size = new System.Drawing.Size(115, 23); + this.BtBeepTop.TabIndex = 3; + this.BtBeepTop.Text = "top stat"; + this.BtBeepTop.UseVisualStyleBackColor = true; + this.BtBeepTop.Click += new System.EventHandler(this.BtBeepTop_Click); // - // tabPageOCR + // BtBeepSuccess // - this.tabPageOCR.AutoScroll = true; - this.tabPageOCR.Controls.Add(this.groupBox1); - this.tabPageOCR.Location = new System.Drawing.Point(4, 22); - this.tabPageOCR.Name = "tabPageOCR"; - this.tabPageOCR.Padding = new System.Windows.Forms.Padding(3); - this.tabPageOCR.Size = new System.Drawing.Size(750, 744); - this.tabPageOCR.TabIndex = 4; - this.tabPageOCR.Text = "OCR"; - this.tabPageOCR.UseVisualStyleBackColor = true; + this.BtBeepSuccess.Location = new System.Drawing.Point(3, 44); + this.BtBeepSuccess.Name = "BtBeepSuccess"; + this.BtBeepSuccess.Size = new System.Drawing.Size(115, 23); + this.BtBeepSuccess.TabIndex = 2; + this.BtBeepSuccess.Text = "import success"; + this.BtBeepSuccess.UseVisualStyleBackColor = true; + this.BtBeepSuccess.Click += new System.EventHandler(this.BtBeepSuccess_Click); // - // groupBox1 + // label47 // - this.groupBox1.Controls.Add(this.BtGameNameAsa); - this.groupBox1.Controls.Add(this.label62); - this.groupBox1.Controls.Add(this.label61); - this.groupBox1.Controls.Add(this.label60); - this.groupBox1.Controls.Add(this.label59); - this.groupBox1.Controls.Add(this.label58); - this.groupBox1.Controls.Add(this.NudOCRClipboardCropHeight); - this.groupBox1.Controls.Add(this.NudOCRClipboardCropWidth); - this.groupBox1.Controls.Add(this.NudOCRClipboardCropTop); - this.groupBox1.Controls.Add(this.NudOCRClipboardCropLeft); - this.groupBox1.Controls.Add(this.CbOCRFromClipboard); - this.groupBox1.Controls.Add(this.BtGameNameAse); - this.groupBox1.Controls.Add(this.cbOCRIgnoreImprintValue); - this.groupBox1.Controls.Add(this.cbShowOCRButton); - this.groupBox1.Controls.Add(this.label23); - this.groupBox1.Controls.Add(this.nudWaitBeforeScreenCapture); - this.groupBox1.Controls.Add(this.label19); - this.groupBox1.Controls.Add(this.nudWhiteThreshold); - this.groupBox1.Controls.Add(this.tbOCRCaptureApp); - this.groupBox1.Controls.Add(this.label4); - this.groupBox1.Controls.Add(this.cbbOCRApp); - this.groupBox1.Controls.Add(this.label1); - this.groupBox1.Location = new System.Drawing.Point(6, 6); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(734, 377); - this.groupBox1.TabIndex = 0; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "OCR"; + this.label47.AutoSize = true; + this.label47.Location = new System.Drawing.Point(3, 2); + this.label47.Name = "label47"; + this.label47.Size = new System.Drawing.Size(108, 13); + this.label47.TabIndex = 0; + this.label47.Text = "Import sound preview"; // - // BtGameNameAsa + // BtBeepFailure // - this.BtGameNameAsa.Location = new System.Drawing.Point(6, 318); - this.BtGameNameAsa.Name = "BtGameNameAsa"; - this.BtGameNameAsa.Size = new System.Drawing.Size(171, 23); - this.BtGameNameAsa.TabIndex = 21; - this.BtGameNameAsa.Text = "ArkAscended (ASA default)"; - this.BtGameNameAsa.UseVisualStyleBackColor = true; - this.BtGameNameAsa.Click += new System.EventHandler(this.BtGameNameAsa_Click); - // - // label62 - // - this.label62.AutoSize = true; - this.label62.Location = new System.Drawing.Point(34, 211); - this.label62.Name = "label62"; - this.label62.Size = new System.Drawing.Size(616, 13); - this.label62.TabIndex = 20; - this.label62.Text = "Set an area of the clipboard screenshot to be used for the actual OCR. Set all fi" + - "elds to 0 to disable and use the whole screenshot."; - // - // label61 - // - this.label61.AutoSize = true; - this.label61.Location = new System.Drawing.Point(151, 229); - this.label61.Name = "label61"; - this.label61.Size = new System.Drawing.Size(26, 13); - this.label61.TabIndex = 19; - this.label61.Text = "Top"; - // - // label60 - // - this.label60.AutoSize = true; - this.label60.Location = new System.Drawing.Point(258, 229); - this.label60.Name = "label60"; - this.label60.Size = new System.Drawing.Size(35, 13); - this.label60.TabIndex = 18; - this.label60.Text = "Width"; - // - // label59 - // - this.label59.AutoSize = true; - this.label59.Location = new System.Drawing.Point(374, 229); - this.label59.Name = "label59"; - this.label59.Size = new System.Drawing.Size(38, 13); - this.label59.TabIndex = 17; - this.label59.Text = "Height"; - // - // label58 - // - this.label58.AutoSize = true; - this.label58.Location = new System.Drawing.Point(45, 229); - this.label58.Name = "label58"; - this.label58.Size = new System.Drawing.Size(25, 13); - this.label58.TabIndex = 16; - this.label58.Text = "Left"; - // - // CbOCRFromClipboard - // - this.CbOCRFromClipboard.AutoSize = true; - this.CbOCRFromClipboard.Location = new System.Drawing.Point(6, 191); - this.CbOCRFromClipboard.Name = "CbOCRFromClipboard"; - this.CbOCRFromClipboard.Size = new System.Drawing.Size(506, 17); - this.CbOCRFromClipboard.TabIndex = 11; - this.CbOCRFromClipboard.Text = "Use image in clipboard for the OCR. You can press the Print-key to copy a screens" + - "hot to the cliphoard"; - this.CbOCRFromClipboard.UseVisualStyleBackColor = true; - // - // BtGameNameAse - // - this.BtGameNameAse.Location = new System.Drawing.Point(183, 318); - this.BtGameNameAse.Name = "BtGameNameAse"; - this.BtGameNameAse.Size = new System.Drawing.Size(170, 23); - this.BtGameNameAse.TabIndex = 8; - this.BtGameNameAse.Text = "ShooterGame (ASE default)"; - this.BtGameNameAse.UseVisualStyleBackColor = true; - this.BtGameNameAse.Click += new System.EventHandler(this.BtGameNameAse_Click); - // - // cbOCRIgnoreImprintValue - // - this.cbOCRIgnoreImprintValue.AutoSize = true; - this.cbOCRIgnoreImprintValue.Location = new System.Drawing.Point(6, 168); - this.cbOCRIgnoreImprintValue.Name = "cbOCRIgnoreImprintValue"; - this.cbOCRIgnoreImprintValue.Size = new System.Drawing.Size(287, 17); - this.cbOCRIgnoreImprintValue.TabIndex = 6; - this.cbOCRIgnoreImprintValue.Text = "Don\'t read imprinting value (can be overlapped by chat)"; - this.cbOCRIgnoreImprintValue.UseVisualStyleBackColor = true; - // - // cbShowOCRButton - // - this.cbShowOCRButton.AutoSize = true; - this.cbShowOCRButton.Location = new System.Drawing.Point(6, 96); - this.cbShowOCRButton.Name = "cbShowOCRButton"; - this.cbShowOCRButton.Size = new System.Drawing.Size(228, 17); - this.cbShowOCRButton.TabIndex = 1; - this.cbShowOCRButton.Text = "Show OCR-Button instead of Import-Button"; - this.cbShowOCRButton.UseVisualStyleBackColor = true; - // - // label23 - // - this.label23.Location = new System.Drawing.Point(6, 145); - this.label23.Name = "label23"; - this.label23.Size = new System.Drawing.Size(296, 20); - this.label23.TabIndex = 4; - this.label23.Text = "Wait before screencapture (time to tab into game) in ms"; - // - // label19 - // - this.label19.Location = new System.Drawing.Point(6, 119); - this.label19.Name = "label19"; - this.label19.Size = new System.Drawing.Size(296, 20); - this.label19.TabIndex = 2; - this.label19.Text = "White Threshold (increase if you increased gamma ingame)"; - // - // tbOCRCaptureApp - // - this.tbOCRCaptureApp.Location = new System.Drawing.Point(6, 292); - this.tbOCRCaptureApp.Name = "tbOCRCaptureApp"; - this.tbOCRCaptureApp.Size = new System.Drawing.Size(722, 20); - this.tbOCRCaptureApp.TabIndex = 9; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(6, 276); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(111, 13); - this.label4.TabIndex = 7; - this.label4.Text = "Process name of ARK"; - // - // cbbOCRApp - // - this.cbbOCRApp.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cbbOCRApp.FormattingEnabled = true; - this.cbbOCRApp.Location = new System.Drawing.Point(6, 347); - this.cbbOCRApp.Name = "cbbOCRApp"; - this.cbbOCRApp.Size = new System.Drawing.Size(722, 21); - this.cbbOCRApp.TabIndex = 10; - this.cbbOCRApp.SelectedIndexChanged += new System.EventHandler(this.cbOCRApp_SelectedIndexChanged); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(6, 16); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(722, 77); - this.label1.TabIndex = 0; - this.label1.Text = resources.GetString("label1.Text"); - // - // panel1 - // - this.panel1.Controls.Add(this.buttonCancel); - this.panel1.Controls.Add(this.buttonOK); - this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel1.Location = new System.Drawing.Point(0, 770); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(758, 30); - this.panel1.TabIndex = 12; - // - // nudWildLevelStep - // - this.nudWildLevelStep.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudWildLevelStep.Location = new System.Drawing.Point(319, 17); - this.nudWildLevelStep.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudWildLevelStep.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.nudWildLevelStep.Name = "nudWildLevelStep"; - this.nudWildLevelStep.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudWildLevelStep.Size = new System.Drawing.Size(57, 20); - this.nudWildLevelStep.TabIndex = 1; - this.nudWildLevelStep.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudTamedDinoCharacterFoodDrain - // - this.nudTamedDinoCharacterFoodDrain.DecimalPlaces = 6; - this.nudTamedDinoCharacterFoodDrain.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudTamedDinoCharacterFoodDrain.Location = new System.Drawing.Point(183, 227); - this.nudTamedDinoCharacterFoodDrain.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudTamedDinoCharacterFoodDrain.Name = "nudTamedDinoCharacterFoodDrain"; - this.nudTamedDinoCharacterFoodDrain.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudTamedDinoCharacterFoodDrain.Size = new System.Drawing.Size(72, 20); - this.nudTamedDinoCharacterFoodDrain.TabIndex = 21; - this.nudTamedDinoCharacterFoodDrain.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudTamedDinoCharacterFoodDrainEvent - // - this.nudTamedDinoCharacterFoodDrainEvent.DecimalPlaces = 6; - this.nudTamedDinoCharacterFoodDrainEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudTamedDinoCharacterFoodDrainEvent.Location = new System.Drawing.Point(263, 227); - this.nudTamedDinoCharacterFoodDrainEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudTamedDinoCharacterFoodDrainEvent.Name = "nudTamedDinoCharacterFoodDrainEvent"; - this.nudTamedDinoCharacterFoodDrainEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudTamedDinoCharacterFoodDrainEvent.Size = new System.Drawing.Size(72, 20); - this.nudTamedDinoCharacterFoodDrainEvent.TabIndex = 23; - this.nudTamedDinoCharacterFoodDrainEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyImprintAmountEvent - // - this.nudBabyImprintAmountEvent.DecimalPlaces = 6; - this.nudBabyImprintAmountEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyImprintAmountEvent.Location = new System.Drawing.Point(263, 149); - this.nudBabyImprintAmountEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyImprintAmountEvent.Name = "nudBabyImprintAmountEvent"; - this.nudBabyImprintAmountEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyImprintAmountEvent.Size = new System.Drawing.Size(72, 20); - this.nudBabyImprintAmountEvent.TabIndex = 12; - this.nudBabyImprintAmountEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyImprintAmount - // - this.nudBabyImprintAmount.DecimalPlaces = 6; - this.nudBabyImprintAmount.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyImprintAmount.Location = new System.Drawing.Point(183, 149); - this.nudBabyImprintAmount.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyImprintAmount.Name = "nudBabyImprintAmount"; - this.nudBabyImprintAmount.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyImprintAmount.Size = new System.Drawing.Size(72, 20); - this.nudBabyImprintAmount.TabIndex = 5; - this.nudBabyImprintAmount.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudMatingSpeed - // - this.nudMatingSpeed.DecimalPlaces = 6; - this.nudMatingSpeed.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudMatingSpeed.Location = new System.Drawing.Point(183, 19); - this.nudMatingSpeed.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudMatingSpeed.Name = "nudMatingSpeed"; - this.nudMatingSpeed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMatingSpeed.Size = new System.Drawing.Size(72, 20); - this.nudMatingSpeed.TabIndex = 0; - this.nudMatingSpeed.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyFoodConsumptionSpeedEvent - // - this.nudBabyFoodConsumptionSpeedEvent.DecimalPlaces = 6; - this.nudBabyFoodConsumptionSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyFoodConsumptionSpeedEvent.Location = new System.Drawing.Point(263, 201); - this.nudBabyFoodConsumptionSpeedEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyFoodConsumptionSpeedEvent.Name = "nudBabyFoodConsumptionSpeedEvent"; - this.nudBabyFoodConsumptionSpeedEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyFoodConsumptionSpeedEvent.Size = new System.Drawing.Size(72, 20); - this.nudBabyFoodConsumptionSpeedEvent.TabIndex = 13; - this.nudBabyFoodConsumptionSpeedEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudMatingIntervalEvent - // - this.nudMatingIntervalEvent.DecimalPlaces = 6; - this.nudMatingIntervalEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudMatingIntervalEvent.Location = new System.Drawing.Point(263, 45); - this.nudMatingIntervalEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudMatingIntervalEvent.Name = "nudMatingIntervalEvent"; - this.nudMatingIntervalEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMatingIntervalEvent.Size = new System.Drawing.Size(72, 20); - this.nudMatingIntervalEvent.TabIndex = 8; - this.nudMatingIntervalEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyCuddleIntervalEvent - // - this.nudBabyCuddleIntervalEvent.DecimalPlaces = 6; - this.nudBabyCuddleIntervalEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyCuddleIntervalEvent.Location = new System.Drawing.Point(263, 123); - this.nudBabyCuddleIntervalEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyCuddleIntervalEvent.Name = "nudBabyCuddleIntervalEvent"; - this.nudBabyCuddleIntervalEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyCuddleIntervalEvent.Size = new System.Drawing.Size(72, 20); - this.nudBabyCuddleIntervalEvent.TabIndex = 11; - this.nudBabyCuddleIntervalEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyMatureSpeedEvent - // - this.nudBabyMatureSpeedEvent.DecimalPlaces = 6; - this.nudBabyMatureSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyMatureSpeedEvent.Location = new System.Drawing.Point(263, 97); - this.nudBabyMatureSpeedEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyMatureSpeedEvent.Name = "nudBabyMatureSpeedEvent"; - this.nudBabyMatureSpeedEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyMatureSpeedEvent.Size = new System.Drawing.Size(72, 20); - this.nudBabyMatureSpeedEvent.TabIndex = 10; - this.nudBabyMatureSpeedEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudEggHatchSpeedEvent - // - this.nudEggHatchSpeedEvent.DecimalPlaces = 6; - this.nudEggHatchSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudEggHatchSpeedEvent.Location = new System.Drawing.Point(263, 71); - this.nudEggHatchSpeedEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudEggHatchSpeedEvent.Name = "nudEggHatchSpeedEvent"; - this.nudEggHatchSpeedEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudEggHatchSpeedEvent.Size = new System.Drawing.Size(72, 20); - this.nudEggHatchSpeedEvent.TabIndex = 9; - this.nudEggHatchSpeedEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyFoodConsumptionSpeed - // - this.nudBabyFoodConsumptionSpeed.DecimalPlaces = 6; - this.nudBabyFoodConsumptionSpeed.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyFoodConsumptionSpeed.Location = new System.Drawing.Point(183, 201); - this.nudBabyFoodConsumptionSpeed.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyFoodConsumptionSpeed.Name = "nudBabyFoodConsumptionSpeed"; - this.nudBabyFoodConsumptionSpeed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyFoodConsumptionSpeed.Size = new System.Drawing.Size(72, 20); - this.nudBabyFoodConsumptionSpeed.TabIndex = 7; - this.nudBabyFoodConsumptionSpeed.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudMatingInterval - // - this.nudMatingInterval.DecimalPlaces = 6; - this.nudMatingInterval.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudMatingInterval.Location = new System.Drawing.Point(183, 45); - this.nudMatingInterval.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudMatingInterval.Name = "nudMatingInterval"; - this.nudMatingInterval.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMatingInterval.Size = new System.Drawing.Size(72, 20); - this.nudMatingInterval.TabIndex = 1; - this.nudMatingInterval.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyCuddleInterval - // - this.nudBabyCuddleInterval.DecimalPlaces = 6; - this.nudBabyCuddleInterval.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyCuddleInterval.Location = new System.Drawing.Point(183, 123); - this.nudBabyCuddleInterval.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyCuddleInterval.Name = "nudBabyCuddleInterval"; - this.nudBabyCuddleInterval.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyCuddleInterval.Size = new System.Drawing.Size(72, 20); - this.nudBabyCuddleInterval.TabIndex = 4; - this.nudBabyCuddleInterval.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyMatureSpeed - // - this.nudBabyMatureSpeed.DecimalPlaces = 6; - this.nudBabyMatureSpeed.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyMatureSpeed.Location = new System.Drawing.Point(183, 97); - this.nudBabyMatureSpeed.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyMatureSpeed.Name = "nudBabyMatureSpeed"; - this.nudBabyMatureSpeed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyMatureSpeed.Size = new System.Drawing.Size(72, 20); - this.nudBabyMatureSpeed.TabIndex = 3; - this.nudBabyMatureSpeed.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudBabyImprintingStatScale - // - this.nudBabyImprintingStatScale.DecimalPlaces = 6; - this.nudBabyImprintingStatScale.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudBabyImprintingStatScale.Location = new System.Drawing.Point(183, 175); - this.nudBabyImprintingStatScale.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudBabyImprintingStatScale.Name = "nudBabyImprintingStatScale"; - this.nudBabyImprintingStatScale.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudBabyImprintingStatScale.Size = new System.Drawing.Size(72, 20); - this.nudBabyImprintingStatScale.TabIndex = 6; - this.nudBabyImprintingStatScale.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudEggHatchSpeed - // - this.nudEggHatchSpeed.DecimalPlaces = 6; - this.nudEggHatchSpeed.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudEggHatchSpeed.Location = new System.Drawing.Point(183, 71); - this.nudEggHatchSpeed.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudEggHatchSpeed.Name = "nudEggHatchSpeed"; - this.nudEggHatchSpeed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudEggHatchSpeed.Size = new System.Drawing.Size(72, 20); - this.nudEggHatchSpeed.TabIndex = 2; - this.nudEggHatchSpeed.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudMaxServerLevel - // - this.nudMaxServerLevel.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudMaxServerLevel.Location = new System.Drawing.Point(183, 97); - this.nudMaxServerLevel.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudMaxServerLevel.Name = "nudMaxServerLevel"; - this.nudMaxServerLevel.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMaxServerLevel.Size = new System.Drawing.Size(57, 20); - this.nudMaxServerLevel.TabIndex = 3; - // - // nudMaxGraphLevel - // - this.nudMaxGraphLevel.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudMaxGraphLevel.Location = new System.Drawing.Point(183, 71); - this.nudMaxGraphLevel.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudMaxGraphLevel.Name = "nudMaxGraphLevel"; - this.nudMaxGraphLevel.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMaxGraphLevel.Size = new System.Drawing.Size(57, 20); - this.nudMaxGraphLevel.TabIndex = 2; - // - // nudMaxWildLevels - // - this.nudMaxWildLevels.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudMaxWildLevels.Location = new System.Drawing.Point(183, 19); - this.nudMaxWildLevels.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudMaxWildLevels.Name = "nudMaxWildLevels"; - this.nudMaxWildLevels.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMaxWildLevels.Size = new System.Drawing.Size(57, 20); - this.nudMaxWildLevels.TabIndex = 0; - // - // nudMaxDomLevels - // - this.nudMaxDomLevels.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudMaxDomLevels.Location = new System.Drawing.Point(183, 45); - this.nudMaxDomLevels.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.nudMaxDomLevels.Name = "nudMaxDomLevels"; - this.nudMaxDomLevels.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudMaxDomLevels.Size = new System.Drawing.Size(57, 20); - this.nudMaxDomLevels.TabIndex = 1; - // - // NudWildDinoCharacterFoodDrainMultiplier - // - this.NudWildDinoCharacterFoodDrainMultiplier.DecimalPlaces = 6; - this.NudWildDinoCharacterFoodDrainMultiplier.ForeColor = System.Drawing.SystemColors.WindowText; - this.NudWildDinoCharacterFoodDrainMultiplier.Location = new System.Drawing.Point(183, 71); - this.NudWildDinoCharacterFoodDrainMultiplier.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.NudWildDinoCharacterFoodDrainMultiplier.Name = "NudWildDinoCharacterFoodDrainMultiplier"; - this.NudWildDinoCharacterFoodDrainMultiplier.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudWildDinoCharacterFoodDrainMultiplier.Size = new System.Drawing.Size(72, 20); - this.NudWildDinoCharacterFoodDrainMultiplier.TabIndex = 4; - this.NudWildDinoCharacterFoodDrainMultiplier.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // NudWildDinoTorporDrainMultiplier - // - this.NudWildDinoTorporDrainMultiplier.DecimalPlaces = 6; - this.NudWildDinoTorporDrainMultiplier.ForeColor = System.Drawing.SystemColors.WindowText; - this.NudWildDinoTorporDrainMultiplier.Location = new System.Drawing.Point(183, 97); - this.NudWildDinoTorporDrainMultiplier.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.NudWildDinoTorporDrainMultiplier.Name = "NudWildDinoTorporDrainMultiplier"; - this.NudWildDinoTorporDrainMultiplier.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudWildDinoTorporDrainMultiplier.Size = new System.Drawing.Size(72, 20); - this.NudWildDinoTorporDrainMultiplier.TabIndex = 5; - this.NudWildDinoTorporDrainMultiplier.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudDinoCharacterFoodDrainEvent - // - this.nudDinoCharacterFoodDrainEvent.DecimalPlaces = 6; - this.nudDinoCharacterFoodDrainEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudDinoCharacterFoodDrainEvent.Location = new System.Drawing.Point(263, 45); - this.nudDinoCharacterFoodDrainEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudDinoCharacterFoodDrainEvent.Name = "nudDinoCharacterFoodDrainEvent"; - this.nudDinoCharacterFoodDrainEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudDinoCharacterFoodDrainEvent.Size = new System.Drawing.Size(72, 20); - this.nudDinoCharacterFoodDrainEvent.TabIndex = 3; - this.nudDinoCharacterFoodDrainEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudTamingSpeedEvent - // - this.nudTamingSpeedEvent.DecimalPlaces = 6; - this.nudTamingSpeedEvent.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudTamingSpeedEvent.Location = new System.Drawing.Point(263, 19); - this.nudTamingSpeedEvent.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudTamingSpeedEvent.Name = "nudTamingSpeedEvent"; - this.nudTamingSpeedEvent.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudTamingSpeedEvent.Size = new System.Drawing.Size(72, 20); - this.nudTamingSpeedEvent.TabIndex = 1; - this.nudTamingSpeedEvent.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudDinoCharacterFoodDrain - // - this.nudDinoCharacterFoodDrain.DecimalPlaces = 6; - this.nudDinoCharacterFoodDrain.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudDinoCharacterFoodDrain.Location = new System.Drawing.Point(183, 45); - this.nudDinoCharacterFoodDrain.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudDinoCharacterFoodDrain.Name = "nudDinoCharacterFoodDrain"; - this.nudDinoCharacterFoodDrain.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudDinoCharacterFoodDrain.Size = new System.Drawing.Size(72, 20); - this.nudDinoCharacterFoodDrain.TabIndex = 2; - this.nudDinoCharacterFoodDrain.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // nudTamingSpeed - // - this.nudTamingSpeed.DecimalPlaces = 6; - this.nudTamingSpeed.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudTamingSpeed.Location = new System.Drawing.Point(183, 19); - this.nudTamingSpeed.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudTamingSpeed.Name = "nudTamingSpeed"; - this.nudTamingSpeed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudTamingSpeed.Size = new System.Drawing.Size(72, 20); - this.nudTamingSpeed.TabIndex = 0; - this.nudTamingSpeed.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // NudSpeciesSelectorCountLastUsed - // - this.NudSpeciesSelectorCountLastUsed.ForeColor = System.Drawing.SystemColors.GrayText; - this.NudSpeciesSelectorCountLastUsed.Location = new System.Drawing.Point(252, 19); - this.NudSpeciesSelectorCountLastUsed.Name = "NudSpeciesSelectorCountLastUsed"; - this.NudSpeciesSelectorCountLastUsed.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudSpeciesSelectorCountLastUsed.Size = new System.Drawing.Size(57, 20); - this.NudSpeciesSelectorCountLastUsed.TabIndex = 1; - // - // nudDefaultFontSize - // - this.nudDefaultFontSize.DecimalPlaces = 2; - this.nudDefaultFontSize.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudDefaultFontSize.Location = new System.Drawing.Point(335, 18); - this.nudDefaultFontSize.Name = "nudDefaultFontSize"; - this.nudDefaultFontSize.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudDefaultFontSize.Size = new System.Drawing.Size(72, 20); - this.nudDefaultFontSize.TabIndex = 3; - // - // nudChartLevelOddMax + this.BtBeepFailure.Location = new System.Drawing.Point(3, 18); + this.BtBeepFailure.Name = "BtBeepFailure"; + this.BtBeepFailure.Size = new System.Drawing.Size(115, 23); + this.BtBeepFailure.TabIndex = 1; + this.BtBeepFailure.Text = "import failed"; + this.BtBeepFailure.UseVisualStyleBackColor = true; + this.BtBeepFailure.Click += new System.EventHandler(this.BtBeepFailure_Click); // - this.nudChartLevelOddMax.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudChartLevelOddMax.Location = new System.Drawing.Point(268, 137); - this.nudChartLevelOddMax.Maximum = new decimal(new int[] { - 360, - 0, - 0, - 0}); - this.nudChartLevelOddMax.Minimum = new decimal(new int[] { - 360, - 0, - 0, - -2147483648}); - this.nudChartLevelOddMax.Name = "nudChartLevelOddMax"; - this.nudChartLevelOddMax.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudChartLevelOddMax.Size = new System.Drawing.Size(41, 20); - this.nudChartLevelOddMax.TabIndex = 11; - this.nudChartLevelOddMax.Value = new decimal(new int[] { - 360, - 0, - 0, - 0}); - this.nudChartLevelOddMax.ValueChanged += new System.EventHandler(this.nudChartLevelOddMax_ValueChanged); + // cbPlaySoundOnAutomaticImport // - // nudChartLevelOddMin + this.cbPlaySoundOnAutomaticImport.AutoSize = true; + this.cbPlaySoundOnAutomaticImport.Location = new System.Drawing.Point(9, 55); + this.cbPlaySoundOnAutomaticImport.Name = "cbPlaySoundOnAutomaticImport"; + this.cbPlaySoundOnAutomaticImport.Size = new System.Drawing.Size(215, 17); + this.cbPlaySoundOnAutomaticImport.TabIndex = 2; + this.cbPlaySoundOnAutomaticImport.Text = "Play sound to indicate success or failure"; + this.cbPlaySoundOnAutomaticImport.UseVisualStyleBackColor = true; // - this.nudChartLevelOddMin.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudChartLevelOddMin.Location = new System.Drawing.Point(209, 137); - this.nudChartLevelOddMin.Maximum = new decimal(new int[] { - 360, - 0, - 0, - 0}); - this.nudChartLevelOddMin.Minimum = new decimal(new int[] { - 360, - 0, - 0, - -2147483648}); - this.nudChartLevelOddMin.Name = "nudChartLevelOddMin"; - this.nudChartLevelOddMin.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudChartLevelOddMin.Size = new System.Drawing.Size(41, 20); - this.nudChartLevelOddMin.TabIndex = 10; - this.nudChartLevelOddMin.ValueChanged += new System.EventHandler(this.nudChartLevelOddMin_ValueChanged); + // label29 // - // nudChartLevelEvenMax + this.label29.AutoSize = true; + this.label29.Location = new System.Drawing.Point(6, 75); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(137, 13); + this.label29.TabIndex = 3; + this.label29.Text = "After a successful import do"; // - this.nudChartLevelEvenMax.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudChartLevelEvenMax.Location = new System.Drawing.Point(102, 137); - this.nudChartLevelEvenMax.Maximum = new decimal(new int[] { - 360, - 0, - 0, - 0}); - this.nudChartLevelEvenMax.Minimum = new decimal(new int[] { - 360, - 0, - 0, - -2147483648}); - this.nudChartLevelEvenMax.Name = "nudChartLevelEvenMax"; - this.nudChartLevelEvenMax.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudChartLevelEvenMax.Size = new System.Drawing.Size(41, 20); - this.nudChartLevelEvenMax.TabIndex = 9; - this.nudChartLevelEvenMax.ValueChanged += new System.EventHandler(this.nudChartLevelEvenMax_ValueChanged); + // cbDeleteAutoImportedFile // - // nudChartLevelEvenMin + this.cbDeleteAutoImportedFile.AutoSize = true; + this.cbDeleteAutoImportedFile.Location = new System.Drawing.Point(26, 96); + this.cbDeleteAutoImportedFile.Name = "cbDeleteAutoImportedFile"; + this.cbDeleteAutoImportedFile.Size = new System.Drawing.Size(114, 17); + this.cbDeleteAutoImportedFile.TabIndex = 4; + this.cbDeleteAutoImportedFile.Text = "delete imported file"; + this.cbDeleteAutoImportedFile.UseVisualStyleBackColor = true; + this.cbDeleteAutoImportedFile.CheckedChanged += new System.EventHandler(this.cbDeleteAutoImportedFile_CheckedChanged); // - this.nudChartLevelEvenMin.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudChartLevelEvenMin.Location = new System.Drawing.Point(43, 137); - this.nudChartLevelEvenMin.Maximum = new decimal(new int[] { - 360, - 0, - 0, - 0}); - this.nudChartLevelEvenMin.Minimum = new decimal(new int[] { - 360, - 0, - 0, - -2147483648}); - this.nudChartLevelEvenMin.Name = "nudChartLevelEvenMin"; - this.nudChartLevelEvenMin.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudChartLevelEvenMin.Size = new System.Drawing.Size(41, 20); - this.nudChartLevelEvenMin.TabIndex = 8; - this.nudChartLevelEvenMin.ValueChanged += new System.EventHandler(this.nudChartLevelEvenMin_ValueChanged); + // cbMoveImportedFileToSubFolder // - // numericUpDownMaxBreedingSug + this.cbMoveImportedFileToSubFolder.AutoSize = true; + this.cbMoveImportedFileToSubFolder.Location = new System.Drawing.Point(26, 142); + this.cbMoveImportedFileToSubFolder.Name = "cbMoveImportedFileToSubFolder"; + this.cbMoveImportedFileToSubFolder.Size = new System.Drawing.Size(123, 17); + this.cbMoveImportedFileToSubFolder.TabIndex = 7; + this.cbMoveImportedFileToSubFolder.Text = "move imported file to"; + this.cbMoveImportedFileToSubFolder.UseVisualStyleBackColor = true; + this.cbMoveImportedFileToSubFolder.CheckedChanged += new System.EventHandler(this.cbMoveImportedFileToSubFolder_CheckedChanged); // - this.numericUpDownMaxBreedingSug.ForeColor = System.Drawing.SystemColors.GrayText; - this.numericUpDownMaxBreedingSug.Location = new System.Drawing.Point(252, 19); - this.numericUpDownMaxBreedingSug.Maximum = new decimal(new int[] { - 200, - 0, - 0, - 0}); - this.numericUpDownMaxBreedingSug.Name = "numericUpDownMaxBreedingSug"; - this.numericUpDownMaxBreedingSug.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.numericUpDownMaxBreedingSug.Size = new System.Drawing.Size(57, 20); - this.numericUpDownMaxBreedingSug.TabIndex = 1; + // label28 // - // NudWaitBeforeAutoLoad + this.label28.AutoSize = true; + this.label28.Location = new System.Drawing.Point(6, 39); + this.label28.Name = "label28"; + this.label28.Size = new System.Drawing.Size(256, 13); + this.label28.TabIndex = 1; + this.label28.Text = "Enable overlay for feedback about the import ingame"; // - this.NudWaitBeforeAutoLoad.ForeColor = System.Drawing.SystemColors.GrayText; - this.NudWaitBeforeAutoLoad.Location = new System.Drawing.Point(255, 41); - this.NudWaitBeforeAutoLoad.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.NudWaitBeforeAutoLoad.Name = "NudWaitBeforeAutoLoad"; - this.NudWaitBeforeAutoLoad.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudWaitBeforeAutoLoad.Size = new System.Drawing.Size(56, 20); - this.NudWaitBeforeAutoLoad.TabIndex = 12; + // cbAutoImportExported // - // NudKeepBackupFilesCount + this.cbAutoImportExported.AutoSize = true; + this.cbAutoImportExported.Location = new System.Drawing.Point(9, 19); + this.cbAutoImportExported.Name = "cbAutoImportExported"; + this.cbAutoImportExported.Size = new System.Drawing.Size(174, 17); + this.cbAutoImportExported.TabIndex = 0; + this.cbAutoImportExported.Text = "Auto extract exported creatures"; + this.cbAutoImportExported.UseVisualStyleBackColor = true; // - this.NudKeepBackupFilesCount.ForeColor = System.Drawing.SystemColors.GrayText; - this.NudKeepBackupFilesCount.Location = new System.Drawing.Point(44, 118); - this.NudKeepBackupFilesCount.Name = "NudKeepBackupFilesCount"; - this.NudKeepBackupFilesCount.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudKeepBackupFilesCount.Size = new System.Drawing.Size(59, 20); - this.NudKeepBackupFilesCount.TabIndex = 4; + // groupBox21 // - // NudBackupEveryMinutes + this.groupBox21.Controls.Add(this.CbApplyNamingPatternOnImportAlways); + this.groupBox21.Controls.Add(this.cbApplyNamePatternOnImportOnNewCreatures); + this.groupBox21.Controls.Add(this.label41); + this.groupBox21.Controls.Add(this.cbCopyPatternNameToClipboard); + this.groupBox21.Controls.Add(this.cbApplyNamePatternOnImportOnEmptyNames); + this.groupBox21.Location = new System.Drawing.Point(6, 508); + this.groupBox21.Name = "groupBox21"; + this.groupBox21.Size = new System.Drawing.Size(318, 162); + this.groupBox21.TabIndex = 5; + this.groupBox21.TabStop = false; + this.groupBox21.Text = "Auto naming on import"; // - this.NudBackupEveryMinutes.ForeColor = System.Drawing.SystemColors.GrayText; - this.NudBackupEveryMinutes.Location = new System.Drawing.Point(132, 144); - this.NudBackupEveryMinutes.Name = "NudBackupEveryMinutes"; - this.NudBackupEveryMinutes.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NudBackupEveryMinutes.Size = new System.Drawing.Size(47, 20); - this.NudBackupEveryMinutes.TabIndex = 7; + // CbApplyNamingPatternOnImportAlways // - // nudInfoGraphicHeight + this.CbApplyNamingPatternOnImportAlways.AutoSize = true; + this.CbApplyNamingPatternOnImportAlways.Location = new System.Drawing.Point(6, 39); + this.CbApplyNamingPatternOnImportAlways.Name = "CbApplyNamingPatternOnImportAlways"; + this.CbApplyNamingPatternOnImportAlways.Size = new System.Drawing.Size(177, 17); + this.CbApplyNamingPatternOnImportAlways.TabIndex = 1; + this.CbApplyNamingPatternOnImportAlways.Text = "always (overwrite existing name)"; + this.CbApplyNamingPatternOnImportAlways.UseVisualStyleBackColor = true; // - this.nudInfoGraphicHeight.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudInfoGraphicHeight.Location = new System.Drawing.Point(126, 18); - this.nudInfoGraphicHeight.Maximum = new decimal(new int[] { - 99999, - 0, - 0, - 0}); - this.nudInfoGraphicHeight.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.nudInfoGraphicHeight.Name = "nudInfoGraphicHeight"; - this.nudInfoGraphicHeight.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudInfoGraphicHeight.Size = new System.Drawing.Size(57, 20); - this.nudInfoGraphicHeight.TabIndex = 2; - this.nudInfoGraphicHeight.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - this.nudInfoGraphicHeight.ValueChanged += new System.EventHandler(this.nudInfoGraphicHeight_ValueChanged); + // cbApplyNamePatternOnImportOnNewCreatures // - // convenientNameDataGridViewTextBoxColumn + this.cbApplyNamePatternOnImportOnNewCreatures.AutoSize = true; + this.cbApplyNamePatternOnImportOnNewCreatures.Location = new System.Drawing.Point(6, 85); + this.cbApplyNamePatternOnImportOnNewCreatures.Name = "cbApplyNamePatternOnImportOnNewCreatures"; + this.cbApplyNamePatternOnImportOnNewCreatures.Size = new System.Drawing.Size(203, 17); + this.cbApplyNamePatternOnImportOnNewCreatures.TabIndex = 3; + this.cbApplyNamePatternOnImportOnNewCreatures.Text = "if the creature is imported the first time"; + this.cbApplyNamePatternOnImportOnNewCreatures.UseVisualStyleBackColor = true; // - this.convenientNameDataGridViewTextBoxColumn.DataPropertyName = "ConvenientName"; - this.convenientNameDataGridViewTextBoxColumn.HeaderText = "Name"; - this.convenientNameDataGridViewTextBoxColumn.Name = "convenientNameDataGridViewTextBoxColumn"; - this.convenientNameDataGridViewTextBoxColumn.ReadOnly = true; + // label41 // - // serverNameDataGridViewTextBoxColumn + this.label41.AutoSize = true; + this.label41.Location = new System.Drawing.Point(6, 19); + this.label41.Name = "label41"; + this.label41.Size = new System.Drawing.Size(235, 13); + this.label41.TabIndex = 0; + this.label41.Text = "Apply first naming pattern automatically on import"; // - this.serverNameDataGridViewTextBoxColumn.DataPropertyName = "ServerName"; - this.serverNameDataGridViewTextBoxColumn.HeaderText = "Server name"; - this.serverNameDataGridViewTextBoxColumn.Name = "serverNameDataGridViewTextBoxColumn"; - this.serverNameDataGridViewTextBoxColumn.ReadOnly = true; + // cbCopyPatternNameToClipboard // - // fileLocationDataGridViewTextBoxColumn + this.cbCopyPatternNameToClipboard.AutoSize = true; + this.cbCopyPatternNameToClipboard.Location = new System.Drawing.Point(6, 124); + this.cbCopyPatternNameToClipboard.Name = "cbCopyPatternNameToClipboard"; + this.cbCopyPatternNameToClipboard.Size = new System.Drawing.Size(208, 17); + this.cbCopyPatternNameToClipboard.TabIndex = 4; + this.cbCopyPatternNameToClipboard.Text = "When applied, copy name to clipboard"; + this.cbCopyPatternNameToClipboard.UseVisualStyleBackColor = true; // - this.fileLocationDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.fileLocationDataGridViewTextBoxColumn.DataPropertyName = "FileLocation"; - this.fileLocationDataGridViewTextBoxColumn.HeaderText = "File location"; - this.fileLocationDataGridViewTextBoxColumn.Name = "fileLocationDataGridViewTextBoxColumn"; - this.fileLocationDataGridViewTextBoxColumn.ReadOnly = true; + // cbApplyNamePatternOnImportOnEmptyNames // - // aTImportFileLocationBindingSource + this.cbApplyNamePatternOnImportOnEmptyNames.AutoSize = true; + this.cbApplyNamePatternOnImportOnEmptyNames.Location = new System.Drawing.Point(6, 62); + this.cbApplyNamePatternOnImportOnEmptyNames.Name = "cbApplyNamePatternOnImportOnEmptyNames"; + this.cbApplyNamePatternOnImportOnEmptyNames.Size = new System.Drawing.Size(119, 17); + this.cbApplyNamePatternOnImportOnEmptyNames.TabIndex = 2; + this.cbApplyNamePatternOnImportOnEmptyNames.Text = "if the name is empty"; + this.cbApplyNamePatternOnImportOnEmptyNames.UseVisualStyleBackColor = true; // - this.aTImportFileLocationBindingSource.AllowNew = false; - this.aTImportFileLocationBindingSource.DataSource = typeof(ARKBreedingStats.settings.ATImportFileLocation); + // groupBox19 // - // fileSelectorExtractedSaveFolder + this.groupBox19.Controls.Add(this.label26); + this.groupBox19.Controls.Add(this.nudWarnImportMoreThan); + this.groupBox19.Location = new System.Drawing.Point(6, 380); + this.groupBox19.Name = "groupBox19"; + this.groupBox19.Size = new System.Drawing.Size(318, 71); + this.groupBox19.TabIndex = 3; + this.groupBox19.TabStop = false; + this.groupBox19.Text = "Warn when importing many creatures"; // - this.fileSelectorExtractedSaveFolder.Dock = System.Windows.Forms.DockStyle.Fill; - this.fileSelectorExtractedSaveFolder.Link = "filename"; - this.fileSelectorExtractedSaveFolder.Location = new System.Drawing.Point(3, 16); - this.fileSelectorExtractedSaveFolder.Name = "fileSelectorExtractedSaveFolder"; - this.fileSelectorExtractedSaveFolder.Size = new System.Drawing.Size(724, 28); - this.fileSelectorExtractedSaveFolder.TabIndex = 0; + // label26 + // + this.label26.AutoSize = true; + this.label26.Location = new System.Drawing.Point(6, 21); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(138, 39); + this.label26.TabIndex = 0; + this.label26.Text = "Warn if importing more than\r\ncreatures at once.\r\n(Set to 0 to disable warning)"; // - // nudImportLowerBoundTE + // nudWarnImportMoreThan // - this.nudImportLowerBoundTE.DecimalPlaces = 2; - this.nudImportLowerBoundTE.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudImportLowerBoundTE.Location = new System.Drawing.Point(227, 19); - this.nudImportLowerBoundTE.Name = "nudImportLowerBoundTE"; - this.nudImportLowerBoundTE.NeutralNumber = new decimal(new int[] { - 0, + this.nudWarnImportMoreThan.Location = new System.Drawing.Point(184, 19); + this.nudWarnImportMoreThan.Maximum = new decimal(new int[] { + 100000, 0, 0, 0}); - this.nudImportLowerBoundTE.Size = new System.Drawing.Size(64, 20); - this.nudImportLowerBoundTE.TabIndex = 1; + this.nudWarnImportMoreThan.Name = "nudWarnImportMoreThan"; + this.nudWarnImportMoreThan.Size = new System.Drawing.Size(128, 20); + this.nudWarnImportMoreThan.TabIndex = 1; + // + // groupBox13 + // + this.groupBox13.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox13.Controls.Add(this.dataGridViewExportFolders); + this.groupBox13.Controls.Add(this.btAddExportFolder); + this.groupBox13.Location = new System.Drawing.Point(6, 112); + this.groupBox13.Name = "groupBox13"; + this.groupBox13.Size = new System.Drawing.Size(736, 261); + this.groupBox13.TabIndex = 2; + this.groupBox13.TabStop = false; + this.groupBox13.Text = "ARK export folders"; + // + // dataGridViewExportFolders + // + this.dataGridViewExportFolders.AutoGenerateColumns = false; + this.dataGridViewExportFolders.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.convenientNameDataGridViewTextBoxColumn1, + this.ownerSuffixDataGridViewTextBoxColumn, + this.folderPathDataGridViewTextBoxColumn, + this.dgvExportFolderChange, + this.dgvExportFolderDelete, + this.dgvExportMakeDefault}); + this.dataGridViewExportFolders.DataSource = this.aTExportFolderLocationsBindingSource; + this.dataGridViewExportFolders.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridViewExportFolders.Location = new System.Drawing.Point(3, 39); + this.dataGridViewExportFolders.Name = "dataGridViewExportFolders"; + this.dataGridViewExportFolders.RowHeadersVisible = false; + this.dataGridViewExportFolders.Size = new System.Drawing.Size(730, 219); + this.dataGridViewExportFolders.TabIndex = 1; + this.dataGridViewExportFolders.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewExportFolders_CellClick); // // convenientNameDataGridViewTextBoxColumn1 // @@ -4177,17 +3631,153 @@ private void InitializeComponent() this.folderPathDataGridViewTextBoxColumn.Name = "folderPathDataGridViewTextBoxColumn"; this.folderPathDataGridViewTextBoxColumn.ReadOnly = true; // + // dgvExportFolderChange + // + this.dgvExportFolderChange.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.dgvExportFolderChange.HeaderText = "Change"; + this.dgvExportFolderChange.MinimumWidth = 50; + this.dgvExportFolderChange.Name = "dgvExportFolderChange"; + this.dgvExportFolderChange.ReadOnly = true; + this.dgvExportFolderChange.Text = "Change"; + this.dgvExportFolderChange.UseColumnTextForButtonValue = true; + this.dgvExportFolderChange.Width = 50; + // + // dgvExportFolderDelete + // + this.dgvExportFolderDelete.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.dgvExportFolderDelete.HeaderText = "Delete"; + this.dgvExportFolderDelete.MinimumWidth = 50; + this.dgvExportFolderDelete.Name = "dgvExportFolderDelete"; + this.dgvExportFolderDelete.ReadOnly = true; + this.dgvExportFolderDelete.Text = "Delete"; + this.dgvExportFolderDelete.UseColumnTextForButtonValue = true; + this.dgvExportFolderDelete.Width = 50; + // + // dgvExportMakeDefault + // + this.dgvExportMakeDefault.HeaderText = "Default"; + this.dgvExportMakeDefault.Name = "dgvExportMakeDefault"; + this.dgvExportMakeDefault.ReadOnly = true; + this.dgvExportMakeDefault.Text = "Make default"; + this.dgvExportMakeDefault.UseColumnTextForButtonValue = true; + // // aTExportFolderLocationsBindingSource // this.aTExportFolderLocationsBindingSource.AllowNew = false; this.aTExportFolderLocationsBindingSource.DataSource = typeof(ARKBreedingStats.settings.ATImportExportedFolderLocation); // + // btAddExportFolder + // + this.btAddExportFolder.Dock = System.Windows.Forms.DockStyle.Top; + this.btAddExportFolder.Location = new System.Drawing.Point(3, 16); + this.btAddExportFolder.Name = "btAddExportFolder"; + this.btAddExportFolder.Size = new System.Drawing.Size(730, 23); + this.btAddExportFolder.TabIndex = 0; + this.btAddExportFolder.Text = "Add Export Folder…"; + this.btAddExportFolder.UseVisualStyleBackColor = true; + this.btAddExportFolder.Click += new System.EventHandler(this.btAddExportFolder_Click); + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Location = new System.Drawing.Point(3, 3); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(669, 91); + this.label25.TabIndex = 0; + this.label25.Text = resources.GetString("label25.Text"); + // + // tabPageTimers + // + this.tabPageTimers.Controls.Add(this.groupBox24); + this.tabPageTimers.Controls.Add(this.groupBox8); + this.tabPageTimers.Location = new System.Drawing.Point(4, 22); + this.tabPageTimers.Name = "tabPageTimers"; + this.tabPageTimers.Padding = new System.Windows.Forms.Padding(3); + this.tabPageTimers.Size = new System.Drawing.Size(750, 744); + this.tabPageTimers.TabIndex = 6; + this.tabPageTimers.Text = "Timers"; + this.tabPageTimers.UseVisualStyleBackColor = true; + // + // groupBox24 + // + this.groupBox24.Controls.Add(this.cbKeepExpiredTimersInOverlay); + this.groupBox24.Controls.Add(this.cbDeleteExpiredTimersOnSaving); + this.groupBox24.Controls.Add(this.cbTimersInOverlayAutomatically); + this.groupBox24.Location = new System.Drawing.Point(8, 233); + this.groupBox24.Name = "groupBox24"; + this.groupBox24.Size = new System.Drawing.Size(413, 90); + this.groupBox24.TabIndex = 1; + this.groupBox24.TabStop = false; + this.groupBox24.Text = "Timers"; + // + // cbKeepExpiredTimersInOverlay + // + this.cbKeepExpiredTimersInOverlay.AutoSize = true; + this.cbKeepExpiredTimersInOverlay.Location = new System.Drawing.Point(6, 42); + this.cbKeepExpiredTimersInOverlay.Name = "cbKeepExpiredTimersInOverlay"; + this.cbKeepExpiredTimersInOverlay.Size = new System.Drawing.Size(166, 17); + this.cbKeepExpiredTimersInOverlay.TabIndex = 1; + this.cbKeepExpiredTimersInOverlay.Text = "Keep expired timers in overlay"; + this.cbKeepExpiredTimersInOverlay.UseVisualStyleBackColor = true; + // + // cbDeleteExpiredTimersOnSaving + // + this.cbDeleteExpiredTimersOnSaving.AutoSize = true; + this.cbDeleteExpiredTimersOnSaving.Location = new System.Drawing.Point(6, 65); + this.cbDeleteExpiredTimersOnSaving.Name = "cbDeleteExpiredTimersOnSaving"; + this.cbDeleteExpiredTimersOnSaving.Size = new System.Drawing.Size(217, 17); + this.cbDeleteExpiredTimersOnSaving.TabIndex = 2; + this.cbDeleteExpiredTimersOnSaving.Text = "Delete expired timers when saving library"; + this.cbDeleteExpiredTimersOnSaving.UseVisualStyleBackColor = true; + // + // cbTimersInOverlayAutomatically + // + this.cbTimersInOverlayAutomatically.AutoSize = true; + this.cbTimersInOverlayAutomatically.Location = new System.Drawing.Point(6, 19); + this.cbTimersInOverlayAutomatically.Name = "cbTimersInOverlayAutomatically"; + this.cbTimersInOverlayAutomatically.Size = new System.Drawing.Size(202, 17); + this.cbTimersInOverlayAutomatically.TabIndex = 0; + this.cbTimersInOverlayAutomatically.Text = "Display timers in overlay automatically"; + this.cbTimersInOverlayAutomatically.UseVisualStyleBackColor = true; + // + // groupBox8 + // + this.groupBox8.Controls.Add(this.label22); + this.groupBox8.Controls.Add(this.tbPlayAlarmsSeconds); + this.groupBox8.Controls.Add(this.customSCCustom); + this.groupBox8.Controls.Add(this.customSCWakeup); + this.groupBox8.Controls.Add(this.customSCBirth); + this.groupBox8.Controls.Add(this.customSCStarving); + this.groupBox8.Controls.Add(this.label20); + this.groupBox8.Location = new System.Drawing.Point(8, 6); + this.groupBox8.Name = "groupBox8"; + this.groupBox8.Size = new System.Drawing.Size(413, 221); + this.groupBox8.TabIndex = 0; + this.groupBox8.TabStop = false; + this.groupBox8.Text = "Timer Sounds"; + // + // label22 + // + this.label22.Location = new System.Drawing.Point(6, 171); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(255, 66); + this.label22.TabIndex = 5; + this.label22.Text = "List of seconds the alarms play before they reach 0.\r\nE.g. \"60,0\" to play the ala" + + "rm at 60 s and at 0 s. Use commas to separate the values."; + // + // tbPlayAlarmsSeconds + // + this.tbPlayAlarmsSeconds.Location = new System.Drawing.Point(267, 168); + this.tbPlayAlarmsSeconds.Name = "tbPlayAlarmsSeconds"; + this.tbPlayAlarmsSeconds.Size = new System.Drawing.Size(140, 20); + this.tbPlayAlarmsSeconds.TabIndex = 6; + // // customSCCustom // this.customSCCustom.Location = new System.Drawing.Point(6, 139); this.customSCCustom.Name = "customSCCustom"; this.customSCCustom.Size = new System.Drawing.Size(401, 23); - this.customSCCustom.SoundFile = null; + this.customSCCustom.SoundFile = ""; this.customSCCustom.TabIndex = 4; // // customSCWakeup @@ -4195,7 +3785,7 @@ private void InitializeComponent() this.customSCWakeup.Location = new System.Drawing.Point(6, 81); this.customSCWakeup.Name = "customSCWakeup"; this.customSCWakeup.Size = new System.Drawing.Size(401, 23); - this.customSCWakeup.SoundFile = ""; + this.customSCWakeup.SoundFile = null; this.customSCWakeup.TabIndex = 2; // // customSCBirth @@ -4203,7 +3793,7 @@ private void InitializeComponent() this.customSCBirth.Location = new System.Drawing.Point(6, 110); this.customSCBirth.Name = "customSCBirth"; this.customSCBirth.Size = new System.Drawing.Size(401, 23); - this.customSCBirth.SoundFile = ""; + this.customSCBirth.SoundFile = null; this.customSCBirth.TabIndex = 3; // // customSCStarving @@ -4211,9 +3801,59 @@ private void InitializeComponent() this.customSCStarving.Location = new System.Drawing.Point(6, 52); this.customSCStarving.Name = "customSCStarving"; this.customSCStarving.Size = new System.Drawing.Size(401, 23); - this.customSCStarving.SoundFile = null; + this.customSCStarving.SoundFile = ""; this.customSCStarving.TabIndex = 1; // + // label20 + // + this.label20.Location = new System.Drawing.Point(6, 16); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(316, 33); + this.label20.TabIndex = 0; + this.label20.Text = "Only PCM-WAV-files are supported. The sound will play 1 min before the timer runs" + + " out."; + // + // tabPageOverlay + // + this.tabPageOverlay.Controls.Add(this.groupBox10); + this.tabPageOverlay.Location = new System.Drawing.Point(4, 22); + this.tabPageOverlay.Name = "tabPageOverlay"; + this.tabPageOverlay.Padding = new System.Windows.Forms.Padding(3); + this.tabPageOverlay.Size = new System.Drawing.Size(750, 744); + this.tabPageOverlay.TabIndex = 5; + this.tabPageOverlay.Text = "Overlay"; + this.tabPageOverlay.UseVisualStyleBackColor = true; + // + // groupBox10 + // + this.groupBox10.Controls.Add(this.NudOverlayRelativeFontSize); + this.groupBox10.Controls.Add(this.label65); + this.groupBox10.Controls.Add(this.CbOverlayDisplayInheritance); + this.groupBox10.Controls.Add(this.label45); + this.groupBox10.Controls.Add(this.pCustomOverlayLocation); + this.groupBox10.Controls.Add(this.cbCustomOverlayLocation); + this.groupBox10.Controls.Add(this.label38); + this.groupBox10.Controls.Add(this.nudOverlayInfoPosY); + this.groupBox10.Controls.Add(this.label39); + this.groupBox10.Controls.Add(this.nudOverlayInfoPosDFR); + this.groupBox10.Controls.Add(this.label40); + this.groupBox10.Controls.Add(this.label37); + this.groupBox10.Controls.Add(this.nudOverlayTimerPosY); + this.groupBox10.Controls.Add(this.label36); + this.groupBox10.Controls.Add(this.nudOverlayTimerPosX); + this.groupBox10.Controls.Add(this.label35); + this.groupBox10.Controls.Add(this.cbInventoryCheck); + this.groupBox10.Controls.Add(this.label21); + this.groupBox10.Controls.Add(this.nudOverlayInfoDuration); + this.groupBox10.Controls.Add(this.chkbSpeechRecognition); + this.groupBox10.Controls.Add(this.label66); + this.groupBox10.Location = new System.Drawing.Point(8, 6); + this.groupBox10.Name = "groupBox10"; + this.groupBox10.Size = new System.Drawing.Size(734, 307); + this.groupBox10.TabIndex = 0; + this.groupBox10.TabStop = false; + this.groupBox10.Text = "Overlay"; + // // NudOverlayRelativeFontSize // this.NudOverlayRelativeFontSize.DecimalPlaces = 2; @@ -4248,6 +3888,47 @@ private void InitializeComponent() 0, 0}); // + // label65 + // + this.label65.AutoSize = true; + this.label65.Location = new System.Drawing.Point(6, 252); + this.label65.Name = "label65"; + this.label65.Size = new System.Drawing.Size(141, 13); + this.label65.TabIndex = 18; + this.label65.Text = "Relative font size (default: 1)"; + // + // CbOverlayDisplayInheritance + // + this.CbOverlayDisplayInheritance.AutoSize = true; + this.CbOverlayDisplayInheritance.Location = new System.Drawing.Point(6, 284); + this.CbOverlayDisplayInheritance.Name = "CbOverlayDisplayInheritance"; + this.CbOverlayDisplayInheritance.Size = new System.Drawing.Size(203, 17); + this.CbOverlayDisplayInheritance.TabIndex = 17; + this.CbOverlayDisplayInheritance.Text = "Display creature inheritance on import"; + this.CbOverlayDisplayInheritance.UseVisualStyleBackColor = true; + // + // label45 + // + this.label45.AutoSize = true; + this.label45.Location = new System.Drawing.Point(38, 25); + this.label45.Name = "label45"; + this.label45.Size = new System.Drawing.Size(495, 13); + this.label45.TabIndex = 0; + this.label45.Text = "For the overlay to work, you need to set the window-mode \"Fullscreen-Windowed\" in" + + " the game settings."; + // + // pCustomOverlayLocation + // + this.pCustomOverlayLocation.Controls.Add(this.nudCustomOverlayLocX); + this.pCustomOverlayLocation.Controls.Add(this.label42); + this.pCustomOverlayLocation.Controls.Add(this.label43); + this.pCustomOverlayLocation.Controls.Add(this.nudCustomOverlayLocY); + this.pCustomOverlayLocation.Enabled = false; + this.pCustomOverlayLocation.Location = new System.Drawing.Point(195, 217); + this.pCustomOverlayLocation.Name = "pCustomOverlayLocation"; + this.pCustomOverlayLocation.Size = new System.Drawing.Size(201, 28); + this.pCustomOverlayLocation.TabIndex = 16; + // // nudCustomOverlayLocX // this.nudCustomOverlayLocX.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4271,6 +3952,24 @@ private void InitializeComponent() this.nudCustomOverlayLocX.Size = new System.Drawing.Size(57, 20); this.nudCustomOverlayLocX.TabIndex = 1; // + // label42 + // + this.label42.AutoSize = true; + this.label42.Location = new System.Drawing.Point(105, 5); + this.label42.Name = "label42"; + this.label42.Size = new System.Drawing.Size(14, 13); + this.label42.TabIndex = 2; + this.label42.Text = "Y"; + // + // label43 + // + this.label43.AutoSize = true; + this.label43.Location = new System.Drawing.Point(4, 5); + this.label43.Name = "label43"; + this.label43.Size = new System.Drawing.Size(14, 13); + this.label43.TabIndex = 0; + this.label43.Text = "X"; + // // nudCustomOverlayLocY // this.nudCustomOverlayLocY.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4295,6 +3994,26 @@ private void InitializeComponent() this.nudCustomOverlayLocY.TabIndex = 3; this.nudCustomOverlayLocY.ThousandsSeparator = true; // + // cbCustomOverlayLocation + // + this.cbCustomOverlayLocation.AutoSize = true; + this.cbCustomOverlayLocation.Location = new System.Drawing.Point(6, 221); + this.cbCustomOverlayLocation.Name = "cbCustomOverlayLocation"; + this.cbCustomOverlayLocation.Size = new System.Drawing.Size(138, 17); + this.cbCustomOverlayLocation.TabIndex = 15; + this.cbCustomOverlayLocation.Text = "Custom overlay location"; + this.cbCustomOverlayLocation.UseVisualStyleBackColor = true; + this.cbCustomOverlayLocation.CheckedChanged += new System.EventHandler(this.cbCustomOverlayLocation_CheckedChanged); + // + // label38 + // + this.label38.AutoSize = true; + this.label38.Location = new System.Drawing.Point(120, 187); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(93, 13); + this.label38.TabIndex = 11; + this.label38.Text = "distance from right"; + // // nudOverlayInfoPosY // this.nudOverlayInfoPosY.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4313,6 +4032,15 @@ private void InitializeComponent() this.nudOverlayInfoPosY.Size = new System.Drawing.Size(57, 20); this.nudOverlayInfoPosY.TabIndex = 14; // + // label39 + // + this.label39.AutoSize = true; + this.label39.Location = new System.Drawing.Point(300, 187); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(14, 13); + this.label39.TabIndex = 13; + this.label39.Text = "Y"; + // // nudOverlayInfoPosDFR // this.nudOverlayInfoPosDFR.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4331,6 +4059,24 @@ private void InitializeComponent() this.nudOverlayInfoPosDFR.Size = new System.Drawing.Size(57, 20); this.nudOverlayInfoPosDFR.TabIndex = 12; // + // label40 + // + this.label40.AutoSize = true; + this.label40.Location = new System.Drawing.Point(6, 187); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(94, 13); + this.label40.TabIndex = 10; + this.label40.Text = "Position of the info"; + // + // label37 + // + this.label37.AutoSize = true; + this.label37.Location = new System.Drawing.Point(300, 161); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(14, 13); + this.label37.TabIndex = 8; + this.label37.Text = "Y"; + // // nudOverlayTimerPosY // this.nudOverlayTimerPosY.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4349,46 +4095,201 @@ private void InitializeComponent() this.nudOverlayTimerPosY.Size = new System.Drawing.Size(57, 20); this.nudOverlayTimerPosY.TabIndex = 9; // - // nudOverlayTimerPosX + // label36 + // + this.label36.AutoSize = true; + this.label36.Location = new System.Drawing.Point(199, 161); + this.label36.Name = "label36"; + this.label36.Size = new System.Drawing.Size(14, 13); + this.label36.TabIndex = 6; + this.label36.Text = "X"; + // + // nudOverlayTimerPosX + // + this.nudOverlayTimerPosX.ForeColor = System.Drawing.SystemColors.GrayText; + this.nudOverlayTimerPosX.Location = new System.Drawing.Point(219, 159); + this.nudOverlayTimerPosX.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.nudOverlayTimerPosX.Name = "nudOverlayTimerPosX"; + this.nudOverlayTimerPosX.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudOverlayTimerPosX.Size = new System.Drawing.Size(57, 20); + this.nudOverlayTimerPosX.TabIndex = 7; + // + // label35 + // + this.label35.AutoSize = true; + this.label35.Location = new System.Drawing.Point(6, 161); + this.label35.Name = "label35"; + this.label35.Size = new System.Drawing.Size(104, 13); + this.label35.TabIndex = 5; + this.label35.Text = "Position of the timers"; + // + // cbInventoryCheck + // + this.cbInventoryCheck.Location = new System.Drawing.Point(6, 116); + this.cbInventoryCheck.Name = "cbInventoryCheck"; + this.cbInventoryCheck.Size = new System.Drawing.Size(305, 35); + this.cbInventoryCheck.TabIndex = 4; + this.cbInventoryCheck.Text = "Automatically extract inventory levels (needs working OCR and enabled overlay)"; + this.cbInventoryCheck.UseVisualStyleBackColor = true; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(6, 84); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(138, 13); + this.label21.TabIndex = 2; + this.label21.Text = "Display info in overlay for [s]"; + // + // nudOverlayInfoDuration + // + this.nudOverlayInfoDuration.ForeColor = System.Drawing.SystemColors.WindowText; + this.nudOverlayInfoDuration.Location = new System.Drawing.Point(150, 82); + this.nudOverlayInfoDuration.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.nudOverlayInfoDuration.Name = "nudOverlayInfoDuration"; + this.nudOverlayInfoDuration.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.nudOverlayInfoDuration.Size = new System.Drawing.Size(57, 20); + this.nudOverlayInfoDuration.TabIndex = 3; + this.nudOverlayInfoDuration.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // chkbSpeechRecognition + // + this.chkbSpeechRecognition.AutoSize = true; + this.chkbSpeechRecognition.Location = new System.Drawing.Point(6, 59); + this.chkbSpeechRecognition.Name = "chkbSpeechRecognition"; + this.chkbSpeechRecognition.Size = new System.Drawing.Size(338, 17); + this.chkbSpeechRecognition.TabIndex = 1; + this.chkbSpeechRecognition.Text = "Speech Recognition (displays taming info, e.g. say \"Rex level 30\")"; + this.chkbSpeechRecognition.UseVisualStyleBackColor = true; + // + // label66 + // + this.label66.AutoSize = true; + this.label66.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label66.Location = new System.Drawing.Point(6, 16); + this.label66.Name = "label66"; + this.label66.Size = new System.Drawing.Size(37, 26); + this.label66.TabIndex = 19; + this.label66.Text = "💡"; + // + // tabPageOCR + // + this.tabPageOCR.AutoScroll = true; + this.tabPageOCR.Controls.Add(this.groupBox1); + this.tabPageOCR.Location = new System.Drawing.Point(4, 22); + this.tabPageOCR.Name = "tabPageOCR"; + this.tabPageOCR.Padding = new System.Windows.Forms.Padding(3); + this.tabPageOCR.Size = new System.Drawing.Size(750, 744); + this.tabPageOCR.TabIndex = 4; + this.tabPageOCR.Text = "OCR"; + this.tabPageOCR.UseVisualStyleBackColor = true; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.BtGameNameAsa); + this.groupBox1.Controls.Add(this.label62); + this.groupBox1.Controls.Add(this.label61); + this.groupBox1.Controls.Add(this.label60); + this.groupBox1.Controls.Add(this.label59); + this.groupBox1.Controls.Add(this.label58); + this.groupBox1.Controls.Add(this.NudOCRClipboardCropHeight); + this.groupBox1.Controls.Add(this.NudOCRClipboardCropWidth); + this.groupBox1.Controls.Add(this.NudOCRClipboardCropTop); + this.groupBox1.Controls.Add(this.NudOCRClipboardCropLeft); + this.groupBox1.Controls.Add(this.CbOCRFromClipboard); + this.groupBox1.Controls.Add(this.BtGameNameAse); + this.groupBox1.Controls.Add(this.cbOCRIgnoreImprintValue); + this.groupBox1.Controls.Add(this.cbShowOCRButton); + this.groupBox1.Controls.Add(this.label23); + this.groupBox1.Controls.Add(this.nudWaitBeforeScreenCapture); + this.groupBox1.Controls.Add(this.label19); + this.groupBox1.Controls.Add(this.nudWhiteThreshold); + this.groupBox1.Controls.Add(this.tbOCRCaptureApp); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.cbbOCRApp); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(6, 6); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(734, 377); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "OCR"; + // + // BtGameNameAsa + // + this.BtGameNameAsa.Location = new System.Drawing.Point(6, 318); + this.BtGameNameAsa.Name = "BtGameNameAsa"; + this.BtGameNameAsa.Size = new System.Drawing.Size(171, 23); + this.BtGameNameAsa.TabIndex = 21; + this.BtGameNameAsa.Text = "ArkAscended (ASA default)"; + this.BtGameNameAsa.UseVisualStyleBackColor = true; + this.BtGameNameAsa.Click += new System.EventHandler(this.BtGameNameAsa_Click); + // + // label62 + // + this.label62.AutoSize = true; + this.label62.Location = new System.Drawing.Point(34, 211); + this.label62.Name = "label62"; + this.label62.Size = new System.Drawing.Size(616, 13); + this.label62.TabIndex = 20; + this.label62.Text = "Set an area of the clipboard screenshot to be used for the actual OCR. Set all fi" + + "elds to 0 to disable and use the whole screenshot."; + // + // label61 + // + this.label61.AutoSize = true; + this.label61.Location = new System.Drawing.Point(151, 229); + this.label61.Name = "label61"; + this.label61.Size = new System.Drawing.Size(26, 13); + this.label61.TabIndex = 19; + this.label61.Text = "Top"; + // + // label60 + // + this.label60.AutoSize = true; + this.label60.Location = new System.Drawing.Point(258, 229); + this.label60.Name = "label60"; + this.label60.Size = new System.Drawing.Size(35, 13); + this.label60.TabIndex = 18; + this.label60.Text = "Width"; // - this.nudOverlayTimerPosX.ForeColor = System.Drawing.SystemColors.GrayText; - this.nudOverlayTimerPosX.Location = new System.Drawing.Point(219, 159); - this.nudOverlayTimerPosX.Maximum = new decimal(new int[] { - 10000, - 0, - 0, - 0}); - this.nudOverlayTimerPosX.Name = "nudOverlayTimerPosX"; - this.nudOverlayTimerPosX.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudOverlayTimerPosX.Size = new System.Drawing.Size(57, 20); - this.nudOverlayTimerPosX.TabIndex = 7; + // label59 // - // nudOverlayInfoDuration + this.label59.AutoSize = true; + this.label59.Location = new System.Drawing.Point(374, 229); + this.label59.Name = "label59"; + this.label59.Size = new System.Drawing.Size(38, 13); + this.label59.TabIndex = 17; + this.label59.Text = "Height"; // - this.nudOverlayInfoDuration.ForeColor = System.Drawing.SystemColors.WindowText; - this.nudOverlayInfoDuration.Location = new System.Drawing.Point(150, 82); - this.nudOverlayInfoDuration.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.nudOverlayInfoDuration.Name = "nudOverlayInfoDuration"; - this.nudOverlayInfoDuration.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.nudOverlayInfoDuration.Size = new System.Drawing.Size(57, 20); - this.nudOverlayInfoDuration.TabIndex = 3; - this.nudOverlayInfoDuration.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); + // label58 + // + this.label58.AutoSize = true; + this.label58.Location = new System.Drawing.Point(45, 229); + this.label58.Name = "label58"; + this.label58.Size = new System.Drawing.Size(25, 13); + this.label58.TabIndex = 16; + this.label58.Text = "Left"; // // NudOCRClipboardCropHeight // @@ -4482,6 +4383,55 @@ private void InitializeComponent() this.NudOCRClipboardCropLeft.Size = new System.Drawing.Size(69, 20); this.NudOCRClipboardCropLeft.TabIndex = 12; // + // CbOCRFromClipboard + // + this.CbOCRFromClipboard.AutoSize = true; + this.CbOCRFromClipboard.Location = new System.Drawing.Point(6, 191); + this.CbOCRFromClipboard.Name = "CbOCRFromClipboard"; + this.CbOCRFromClipboard.Size = new System.Drawing.Size(506, 17); + this.CbOCRFromClipboard.TabIndex = 11; + this.CbOCRFromClipboard.Text = "Use image in clipboard for the OCR. You can press the Print-key to copy a screens" + + "hot to the cliphoard"; + this.CbOCRFromClipboard.UseVisualStyleBackColor = true; + // + // BtGameNameAse + // + this.BtGameNameAse.Location = new System.Drawing.Point(183, 318); + this.BtGameNameAse.Name = "BtGameNameAse"; + this.BtGameNameAse.Size = new System.Drawing.Size(170, 23); + this.BtGameNameAse.TabIndex = 8; + this.BtGameNameAse.Text = "ShooterGame (ASE default)"; + this.BtGameNameAse.UseVisualStyleBackColor = true; + this.BtGameNameAse.Click += new System.EventHandler(this.BtGameNameAse_Click); + // + // cbOCRIgnoreImprintValue + // + this.cbOCRIgnoreImprintValue.AutoSize = true; + this.cbOCRIgnoreImprintValue.Location = new System.Drawing.Point(6, 168); + this.cbOCRIgnoreImprintValue.Name = "cbOCRIgnoreImprintValue"; + this.cbOCRIgnoreImprintValue.Size = new System.Drawing.Size(287, 17); + this.cbOCRIgnoreImprintValue.TabIndex = 6; + this.cbOCRIgnoreImprintValue.Text = "Don\'t read imprinting value (can be overlapped by chat)"; + this.cbOCRIgnoreImprintValue.UseVisualStyleBackColor = true; + // + // cbShowOCRButton + // + this.cbShowOCRButton.AutoSize = true; + this.cbShowOCRButton.Location = new System.Drawing.Point(6, 96); + this.cbShowOCRButton.Name = "cbShowOCRButton"; + this.cbShowOCRButton.Size = new System.Drawing.Size(228, 17); + this.cbShowOCRButton.TabIndex = 1; + this.cbShowOCRButton.Text = "Show OCR-Button instead of Import-Button"; + this.cbShowOCRButton.UseVisualStyleBackColor = true; + // + // label23 + // + this.label23.Location = new System.Drawing.Point(6, 145); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(296, 20); + this.label23.TabIndex = 4; + this.label23.Text = "Wait before screencapture (time to tab into game) in ms"; + // // nudWaitBeforeScreenCapture // this.nudWaitBeforeScreenCapture.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4500,6 +4450,14 @@ private void InitializeComponent() this.nudWaitBeforeScreenCapture.Size = new System.Drawing.Size(72, 20); this.nudWaitBeforeScreenCapture.TabIndex = 5; // + // label19 + // + this.label19.Location = new System.Drawing.Point(6, 119); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(296, 20); + this.label19.TabIndex = 2; + this.label19.Text = "White Threshold (increase if you increased gamma ingame)"; + // // nudWhiteThreshold // this.nudWhiteThreshold.ForeColor = System.Drawing.SystemColors.GrayText; @@ -4518,6 +4476,60 @@ private void InitializeComponent() this.nudWhiteThreshold.Size = new System.Drawing.Size(72, 20); this.nudWhiteThreshold.TabIndex = 3; // + // tbOCRCaptureApp + // + this.tbOCRCaptureApp.Location = new System.Drawing.Point(6, 292); + this.tbOCRCaptureApp.Name = "tbOCRCaptureApp"; + this.tbOCRCaptureApp.Size = new System.Drawing.Size(722, 20); + this.tbOCRCaptureApp.TabIndex = 9; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 276); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(111, 13); + this.label4.TabIndex = 7; + this.label4.Text = "Process name of ARK"; + // + // cbbOCRApp + // + this.cbbOCRApp.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbbOCRApp.FormattingEnabled = true; + this.cbbOCRApp.Location = new System.Drawing.Point(6, 347); + this.cbbOCRApp.Name = "cbbOCRApp"; + this.cbbOCRApp.Size = new System.Drawing.Size(722, 21); + this.cbbOCRApp.TabIndex = 10; + this.cbbOCRApp.SelectedIndexChanged += new System.EventHandler(this.cbOCRApp_SelectedIndexChanged); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(6, 16); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(722, 77); + this.label1.TabIndex = 0; + this.label1.Text = resources.GetString("label1.Text"); + // + // panel1 + // + this.panel1.Controls.Add(this.buttonCancel); + this.panel1.Controls.Add(this.buttonOK); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 770); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(758, 30); + this.panel1.TabIndex = 12; + // + // CbLibraryDisplayZeroMutationLevels + // + this.CbLibraryDisplayZeroMutationLevels.AutoSize = true; + this.CbLibraryDisplayZeroMutationLevels.Location = new System.Drawing.Point(6, 203); + this.CbLibraryDisplayZeroMutationLevels.Name = "CbLibraryDisplayZeroMutationLevels"; + this.CbLibraryDisplayZeroMutationLevels.Size = new System.Drawing.Size(156, 17); + this.CbLibraryDisplayZeroMutationLevels.TabIndex = 9; + this.CbLibraryDisplayZeroMutationLevels.Text = "Display zero mutation levels"; + this.CbLibraryDisplayZeroMutationLevels.UseVisualStyleBackColor = true; + // // Settings // this.AcceptButton = this.buttonOK; @@ -4538,16 +4550,50 @@ private void InitializeComponent() this.groupBoxMultiplier.PerformLayout(); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrainEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmountEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingSpeed)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeedEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingIntervalEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleIntervalEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeedEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeedEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeed)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMatingInterval)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleInterval)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeed)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintingStatScale)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeed)).EndInit(); this.groupBox3.ResumeLayout(false); this.groupBox3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxServerLevel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxGraphLevel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxWildLevels)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMaxDomLevels)).EndInit(); this.groupBox4.ResumeLayout(false); this.groupBox4.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbChartOddRange)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pbChartEvenRange)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxBreedingSug)).EndInit(); this.groupBox5.ResumeLayout(false); this.groupBox5.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoCharacterFoodDrainMultiplier)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoTorporDrainMultiplier)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrainEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeedEvent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrain)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeed)).EndInit(); this.groupBox6.ResumeLayout(false); this.groupBox6.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NudWaitBeforeAutoLoad)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudKeepBackupFilesCount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NudBackupEveryMinutes)).EndInit(); this.groupBox7.ResumeLayout(false); this.groupBox7.PerformLayout(); this.tabControlSettings.ResumeLayout(false); @@ -4560,6 +4606,7 @@ private void InitializeComponent() this.groupBox18.ResumeLayout(false); this.groupBox11.ResumeLayout(false); this.groupBox11.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudWildLevelStep)).EndInit(); this.tabPageGeneral.ResumeLayout(false); this.tabPageGeneral.PerformLayout(); this.groupBox31.ResumeLayout(false); @@ -4570,10 +4617,12 @@ private void InitializeComponent() this.groupBox16.ResumeLayout(false); this.GbSpecies.ResumeLayout(false); this.GbSpecies.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NudSpeciesSelectorCountLastUsed)).EndInit(); this.groupBox26.ResumeLayout(false); this.groupBox26.PerformLayout(); this.groupBox25.ResumeLayout(false); this.groupBox25.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudDefaultFontSize)).EndInit(); this.groupBox20.ResumeLayout(false); this.groupBox20.PerformLayout(); this.groupBox17.ResumeLayout(false); @@ -4585,20 +4634,23 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.PbInfoGraphicPreview)).EndInit(); this.groupBox32.ResumeLayout(false); this.groupBox32.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudInfoGraphicHeight)).EndInit(); this.groupBox28.ResumeLayout(false); this.groupBox28.PerformLayout(); this.tabPageImportSavegame.ResumeLayout(false); this.tabPageImportSavegame.PerformLayout(); + this.groupBox14.ResumeLayout(false); this.groupBox15.ResumeLayout(false); this.groupBox15.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView_FileLocations)).EndInit(); - this.groupBox14.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.aTImportFileLocationBindingSource)).EndInit(); this.tabPageImportExported.ResumeLayout(false); this.tabPageImportExported.PerformLayout(); this.groupBox27.ResumeLayout(false); this.groupBox27.PerformLayout(); this.groupBox23.ResumeLayout(false); this.groupBox23.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudImportLowerBoundTE)).EndInit(); this.groupBox22.ResumeLayout(false); this.groupBox22.PerformLayout(); this.panel2.ResumeLayout(false); @@ -4610,6 +4662,7 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.nudWarnImportMoreThan)).EndInit(); this.groupBox13.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dataGridViewExportFolders)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.aTExportFolderLocationsBindingSource)).EndInit(); this.tabPageTimers.ResumeLayout(false); this.groupBox24.ResumeLayout(false); this.groupBox24.PerformLayout(); @@ -4618,54 +4671,9 @@ private void InitializeComponent() this.tabPageOverlay.ResumeLayout(false); this.groupBox10.ResumeLayout(false); this.groupBox10.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NudOverlayRelativeFontSize)).EndInit(); this.pCustomOverlayLocation.ResumeLayout(false); this.pCustomOverlayLocation.PerformLayout(); - this.tabPageOCR.ResumeLayout(false); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.panel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.nudWildLevelStep)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrain)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamedDinoCharacterFoodDrainEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmountEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintAmount)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingSpeed)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeedEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingIntervalEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleIntervalEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeedEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeedEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyFoodConsumptionSpeed)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMatingInterval)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyCuddleInterval)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyMatureSpeed)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudBabyImprintingStatScale)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudEggHatchSpeed)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxServerLevel)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxGraphLevel)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxWildLevels)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudMaxDomLevels)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoCharacterFoodDrainMultiplier)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudWildDinoTorporDrainMultiplier)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrainEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeedEvent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDinoCharacterFoodDrain)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudTamingSpeed)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudSpeciesSelectorCountLastUsed)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDefaultFontSize)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMax)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelOddMin)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMax)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudChartLevelEvenMin)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxBreedingSug)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudWaitBeforeAutoLoad)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudKeepBackupFilesCount)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudBackupEveryMinutes)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudInfoGraphicHeight)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.aTImportFileLocationBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudImportLowerBoundTE)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.aTExportFolderLocationsBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NudOverlayRelativeFontSize)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudCustomOverlayLocX)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudCustomOverlayLocY)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayInfoPosY)).EndInit(); @@ -4673,12 +4681,16 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.nudOverlayTimerPosY)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayTimerPosX)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudOverlayInfoDuration)).EndInit(); + this.tabPageOCR.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropHeight)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropWidth)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropTop)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NudOCRClipboardCropLeft)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudWaitBeforeScreenCapture)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nudWhiteThreshold)).EndInit(); + this.panel1.ResumeLayout(false); this.ResumeLayout(false); } @@ -5009,5 +5021,6 @@ private void InitializeComponent() private System.Windows.Forms.TextBox TbRemoteServerSettingsUri; private System.Windows.Forms.Button BtBeepUpdated; private System.Windows.Forms.CheckBox CbStreamerMode; + private System.Windows.Forms.CheckBox CbLibraryDisplayZeroMutationLevels; } } \ No newline at end of file diff --git a/ARKBreedingStats/settings/Settings.cs b/ARKBreedingStats/settings/Settings.cs index cc03cf9a..48034979 100644 --- a/ARKBreedingStats/settings/Settings.cs +++ b/ARKBreedingStats/settings/Settings.cs @@ -366,6 +366,7 @@ private void LoadSettings(CreatureCollection cc) CbNaturalSortIgnoreSpaces.Enabled = Properties.Settings.Default.UseNaturalSort; CbNaturalSortIgnoreSpaces.Checked = Properties.Settings.Default.NaturalSortIgnoreSpaces; CbDisplayLibraryCreatureIndex.Checked = Properties.Settings.Default.DisplayLibraryCreatureIndex; + CbLibraryDisplayZeroMutationLevels.Checked = Properties.Settings.Default.LibraryDisplayZeroMutationLevels; #endregion @@ -621,6 +622,7 @@ private void SaveSettings() Properties.Settings.Default.UseNaturalSort = CbNaturalSorting.Checked; Properties.Settings.Default.NaturalSortIgnoreSpaces = CbNaturalSortIgnoreSpaces.Checked; Properties.Settings.Default.DisplayLibraryCreatureIndex = CbDisplayLibraryCreatureIndex.Checked; + Properties.Settings.Default.LibraryDisplayZeroMutationLevels = CbLibraryDisplayZeroMutationLevels.Checked; #endregion diff --git a/ARKBreedingStats/settings/Settings.resx b/ARKBreedingStats/settings/Settings.resx index 05c9ce31..ba4bd8b0 100644 --- a/ARKBreedingStats/settings/Settings.resx +++ b/ARKBreedingStats/settings/Settings.resx @@ -120,6 +120,10 @@ If you have the files Game.ini or GameUserSettings.ini from your server, you can drag&&drop them on this window to insert their values. You can also select the text of the settings and drag&&drop the selection. + + + The creature data can be directly imported from the save-game, if you have access to that. This is also possible via an ftp-adress. +If you set the according files below, you can start the process automatically from the file-menu. True @@ -133,10 +137,6 @@ You can also select the text of the settings and drag&&drop the selectio 17, 17 - - The creature data can be directly imported from the save-game, if you have access to that. This is also possible via an ftp-adress. -If you set the according files below, you can start the process automatically from the file-menu. - True From 8e4d97b69613006fa1253c7530dcbbd4466395e5 Mon Sep 17 00:00:00 2001 From: cadon Date: Sat, 3 Feb 2024 16:17:58 +0100 Subject: [PATCH 27/29] prefilter creatures in breeding planner --- .../BreedingPlanning/BreedingPlan.cs | 48 ++++++++++++------- ARKBreedingStats/Form1.library.cs | 6 +-- ARKBreedingStats/library/Creature.cs | 15 +++--- ARKBreedingStats/utils/CreatureListSorter.cs | 2 +- 4 files changed, 43 insertions(+), 28 deletions(-) diff --git a/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs b/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs index d3cce2c3..4d71f575 100644 --- a/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs +++ b/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs @@ -286,9 +286,23 @@ private void DoCalculateBreedingScoresAndDisplayPairs() bool considerMutationLimit = nudBPMutationLimit.Value >= 0; bool creaturesMutationsFilteredOut = false; + + // only consider creatures with top stats if breeding for that + Creature[] females, males; + if (_breedingMode == BreedingMode.BestNextGen) + { + females = _females; + males = _males; + } + else + { + females = _females.Where(c => c.topStatsCountBP > 0).ToArray(); + males = _males?.Where(c => c.topStatsCountBP > 0).ToArray(); + } + // filter by tags - int crCountF = _females.Length; - int crCountM = _males?.Length ?? 0; + int crCountF = females.Length; + int crCountM = males?.Length ?? 0; IEnumerable selectFemales; IEnumerable selectMales = null; if (considerChosenCreature && (_chosenCreature.sex == Sex.Female || _currentSpecies.noGender)) @@ -297,10 +311,10 @@ private void DoCalculateBreedingScoresAndDisplayPairs() } else if (!cbBPMutationLimitOnlyOnePartner.Checked && considerMutationLimit) { - selectFemales = FilterByTags(_females.Where(c => c.Mutations <= nudBPMutationLimit.Value)); - creaturesMutationsFilteredOut = _females.Any(c => c.Mutations > nudBPMutationLimit.Value); + selectFemales = FilterByTags(females.Where(c => c.Mutations <= nudBPMutationLimit.Value)); + creaturesMutationsFilteredOut = females.Any(c => c.Mutations > nudBPMutationLimit.Value); } - else selectFemales = FilterByTags(_females); + else selectFemales = FilterByTags(females); if (considerChosenCreature && !_currentSpecies.noGender && _chosenCreature.sex == Sex.Male) { @@ -308,14 +322,14 @@ private void DoCalculateBreedingScoresAndDisplayPairs() } else if (!cbBPMutationLimitOnlyOnePartner.Checked && considerMutationLimit) { - if (_males != null) + if (males != null) { - selectMales = FilterByTags(_males.Where(c => c.Mutations <= nudBPMutationLimit.Value)); + selectMales = FilterByTags(males.Where(c => c.Mutations <= nudBPMutationLimit.Value)); creaturesMutationsFilteredOut = creaturesMutationsFilteredOut || - _males.Any(c => c.Mutations > nudBPMutationLimit.Value); + males.Any(c => c.Mutations > nudBPMutationLimit.Value); } } - else selectMales = FilterByTags(_males); + else selectMales = FilterByTags(males); // filter by servers if (cbServerFilterLibrary.Checked && (Settings.Default.FilterHideServers?.Any() ?? false)) @@ -401,18 +415,16 @@ private void DoCalculateBreedingScoresAndDisplayPairs() ref creaturesMutationsFilteredOut, levelLimitWithOutDomLevels, CbDontSuggestOverLimitOffspring.Checked, cbBPOnlyOneSuggestionForFemales.Checked, _statOddEvens); - //double minScore = _breedingPairs.LastOrDefault()?.BreedingScore ?? 0; - //if (minScore < 0) - //{ - // foreach (BreedingPair bp in _breedingPairs) - // bp.BreedingScore -= minScore; - //} + double minScore = _breedingPairs.LastOrDefault()?.BreedingScore.OneNumber ?? 0; + var displayScoreOffset = (minScore < 0 ? -minScore : 0) + .5; // don't display negative scores, could be confusing + + _breedingPairs = _breedingPairs.Take(CreatureCollection.maxBreedingSuggestions).ToList(); var sb = new StringBuilder(); // draw best parents using (var brush = new SolidBrush(Color.Black)) { - for (int i = 0; i < _breedingPairs.Count && i < CreatureCollection.maxBreedingSuggestions; i++) + for (int i = 0; i < _breedingPairs.Count; i++) { PedigreeCreature pc; if (2 * i < _pcs.Count) @@ -486,7 +498,7 @@ private void DoCalculateBreedingScoresAndDisplayPairs() sb.AppendLine(_breedingPairs[i].Father + " can produce a mutation."); } - var colorPercent = (int)(_breedingPairs[i].BreedingScore.OneNumber * 12.5); + var colorPercent = (int)((_breedingPairs[i].BreedingScore.OneNumber + displayScoreOffset) * 12.5); // outline brush.Color = Utils.GetColorFromPercent(colorPercent, -.2); g.FillRectangle(brush, 0, 15, 87, 5); @@ -504,7 +516,7 @@ private void DoCalculateBreedingScoresAndDisplayPairs() } // breeding score text brush.Color = Color.Black; - g.DrawString(_breedingPairs[i].BreedingScore.ToString("N4"), + g.DrawString((_breedingPairs[i].BreedingScore.Primary + displayScoreOffset).ToString("N4"), new Font("Microsoft Sans Serif", 8.25f), brush, 24, 12); pb.Image = bm; } diff --git a/ARKBreedingStats/Form1.library.cs b/ARKBreedingStats/Form1.library.cs index dc54e4a7..862eb8c5 100644 --- a/ARKBreedingStats/Form1.library.cs +++ b/ARKBreedingStats/Form1.library.cs @@ -1047,7 +1047,7 @@ private ListViewItem CreateCreatureLvItem(Creature cr, bool displayIndex = false Utils.SexSymbol(cr.sex), cr.domesticatedAt?.ToString("yyyy'-'MM'-'dd HH':'mm':'ss") ?? string.Empty, (cr.topness / 10).ToString(), - cr.topStatsCount.ToString(), + cr.topStatsConsideredCount.ToString(), cr.generation.ToString(), cr.levelFound.ToString(), cr.Mutations.ToString(), @@ -1132,7 +1132,7 @@ private ListViewItem CreateCreatureLvItem(Creature cr, bool displayIndex = false lvi.UseItemStyleForSubItems = false; // color for top-stats-nr - if (cr.topStatsCount > 0) + if (cr.topStatsConsideredCount > 0) { if (Properties.Settings.Default.LibraryHighlightTopCreatures && cr.topBreedingCreature) { @@ -1141,7 +1141,7 @@ private ListViewItem CreateCreatureLvItem(Creature cr, bool displayIndex = false else lvi.BackColor = Color.LightGreen; } - lvi.SubItems[ColumnIndexTopStats].BackColor = Utils.GetColorFromPercent(cr.topStatsCount * 8 + 44, 0.7); + lvi.SubItems[ColumnIndexTopStats].BackColor = Utils.GetColorFromPercent(cr.topStatsConsideredCount * 8 + 44, 0.7); } else { diff --git a/ARKBreedingStats/library/Creature.cs b/ARKBreedingStats/library/Creature.cs index ccd8d330..1e8d7647 100644 --- a/ARKBreedingStats/library/Creature.cs +++ b/ARKBreedingStats/library/Creature.cs @@ -2,7 +2,6 @@ using Newtonsoft.Json; using System; using System.Collections.Generic; -using System.Drawing.Text; using System.Linq; using System.Runtime.Serialization; @@ -57,7 +56,11 @@ public void SetTopStat(int statIndex, bool isTopStat) => public void ResetTopStats() => _topBreedingStatIndices = 0; private int _topBreedingStatIndices; // bit flags if a stat index is a top stat - public short topStatsCount; + + /// + /// Number of top stats that are considered in the library. + /// + public byte topStatsConsideredCount; /// /// Set a stat index to a top mutation stat or not for that species in the creatureCollection. @@ -73,9 +76,9 @@ public void SetTopMutationStat(int statIndex, bool isTopMutationStat) => private int _topMutationStatIndices; // bit flags if a stat index is a top mutation stat /// - /// topStatCount with all stats (regardless of considerStatHighlight[]) and without torpor (for breedingPlanner) + /// topStatCount with all stats (regardless of considerStatHighlight[]) and without torpor (for breeding planner) /// - public short topStatsCountBP; + public byte topStatsCountBP; /// /// True if it has some topBreedingStats and if it's male, no other male has more topBreedingStats. /// @@ -437,7 +440,7 @@ public void SetTopStatCount(bool[] considerStatHighlight, bool considerWastedSta || flags.HasFlag(CreatureFlags.Placeholder)) return; - short c = 0, cBP = 0; + byte c = 0, cBP = 0; onlyTopConsideredStats = true; for (int s = 0; s < Stats.StatsCount; s++) { @@ -453,7 +456,7 @@ public void SetTopStatCount(bool[] considerStatHighlight, bool considerWastedSta onlyTopConsideredStats = false; } } - topStatsCount = c; + topStatsConsideredCount = c; topStatsCountBP = cBP; } diff --git a/ARKBreedingStats/utils/CreatureListSorter.cs b/ARKBreedingStats/utils/CreatureListSorter.cs index 0a7e44b8..4a6ddd00 100644 --- a/ARKBreedingStats/utils/CreatureListSorter.cs +++ b/ARKBreedingStats/utils/CreatureListSorter.cs @@ -136,7 +136,7 @@ private IEnumerable OrderList(IEnumerable list, IComparer c.sex, c => c.domesticatedAt, c => c.topness, - c => c.topStatsCount, + c => c.topStatsConsideredCount, c => c.generation, c => c.levelFound, c => c.Mutations, From de1fffb7d1eb153326102fe180b908fa3bae25aa Mon Sep 17 00:00:00 2001 From: cadon Date: Sun, 4 Feb 2024 13:28:01 +0100 Subject: [PATCH 28/29] fixed topness calculation for negative weights --- .../BreedingPlanning/BreedingPlan.cs | 23 ++-- .../BreedingPlanning/BreedingScore.cs | 15 ++- ARKBreedingStats/Form1.library.cs | 121 +++++++++++------- ARKBreedingStats/library/Creature.cs | 1 + ARKBreedingStats/library/DummyCreatures.cs | 2 +- ARKBreedingStats/uiControls/StatWeighting.cs | 8 +- 6 files changed, 99 insertions(+), 71 deletions(-) diff --git a/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs b/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs index 4d71f575..3223138f 100644 --- a/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs +++ b/ARKBreedingStats/BreedingPlanning/BreedingPlan.cs @@ -52,7 +52,7 @@ public partial class BreedingPlan : UserControl private bool[] _enabledColorRegions; private TimeSpan _incubationTime; private Creature _chosenCreature; - private BreedingMode _breedingMode; + private BreedingScore.BreedingMode _breedingMode; public readonly StatWeighting StatWeighting; public bool BreedingPlanNeedsUpdate; private bool _speciesInfoNeedsUpdate; @@ -76,7 +76,7 @@ public BreedingPlan() for (int i = 0; i < Stats.StatsCount; i++) _statWeights[i] = 1; - _breedingMode = BreedingMode.TopStatsConservative; + _breedingMode = BreedingScore.BreedingMode.TopStatsConservative; _breedingPairs = new List(); pedigreeCreatureBest.SetIsVirtual(true); @@ -289,7 +289,7 @@ private void DoCalculateBreedingScoresAndDisplayPairs() // only consider creatures with top stats if breeding for that Creature[] females, males; - if (_breedingMode == BreedingMode.BestNextGen) + if (_breedingMode == BreedingScore.BreedingMode.BestNextGen) { females = _females; males = _males; @@ -538,7 +538,7 @@ private void DoCalculateBreedingScoresAndDisplayPairs() SetParents(0); // if breeding mode is conservative and a creature with top-stats already exists, the scoring might seem off - if (_breedingMode == BreedingMode.TopStatsConservative) + if (_breedingMode == BreedingScore.BreedingMode.TopStatsConservative) { bool bestCreatureAlreadyAvailable = true; Creature bestCreature = null; @@ -852,7 +852,7 @@ private void SetParents(int comboIndex) crW.Father = father; double probabilityBest = 1; bool totalLevelUnknown = false; // if stats are unknown, total level is as well (==> oxygen, speed) - bool topStatBreedingMode = _breedingMode == BreedingMode.TopStatsConservative || _breedingMode == BreedingMode.TopStatsLucky; + bool topStatBreedingMode = _breedingMode == BreedingScore.BreedingMode.TopStatsConservative || _breedingMode == BreedingScore.BreedingMode.TopStatsLucky; for (int s = 0; s < Stats.StatsCount; s++) { if (s == Stats.Torpidity) continue; @@ -996,7 +996,7 @@ private void radioButtonBPTopStatsCn_CheckedChanged(object sender, EventArgs e) { if (rbBPTopStatsCn.Checked) { - _breedingMode = BreedingMode.TopStatsConservative; + _breedingMode = BreedingScore.BreedingMode.TopStatsConservative; CalculateBreedingScoresAndDisplayPairs(); } } @@ -1005,7 +1005,7 @@ private void radioButtonBPTopStats_CheckedChanged(object sender, EventArgs e) { if (rbBPTopStats.Checked) { - _breedingMode = BreedingMode.TopStatsLucky; + _breedingMode = BreedingScore.BreedingMode.TopStatsLucky; CalculateBreedingScoresAndDisplayPairs(); } } @@ -1014,7 +1014,7 @@ private void radioButtonBPHighStats_CheckedChanged(object sender, EventArgs e) { if (rbBPHighStats.Checked) { - _breedingMode = BreedingMode.BestNextGen; + _breedingMode = BreedingScore.BreedingMode.BestNextGen; CalculateBreedingScoresAndDisplayPairs(); } } @@ -1108,13 +1108,6 @@ public bool IgnoreSexInBreedingPlan set => CbIgnoreSexInPlanning.Checked = value; } - public enum BreedingMode - { - BestNextGen, - TopStatsLucky, - TopStatsConservative - } - private void cbTagExcludeDefault_CheckedChanged(object sender, EventArgs e) { CalculateBreedingScoresAndDisplayPairs(); diff --git a/ARKBreedingStats/BreedingPlanning/BreedingScore.cs b/ARKBreedingStats/BreedingPlanning/BreedingScore.cs index ed3f0795..1c6c5415 100644 --- a/ARKBreedingStats/BreedingPlanning/BreedingScore.cs +++ b/ARKBreedingStats/BreedingPlanning/BreedingScore.cs @@ -31,7 +31,7 @@ public static class BreedingScore /// Array for each stat if the higher level should be considered for score: 0: consider any level, 1: consider only if odd, 2: consider only if even. /// public static List CalculateBreedingScores(Creature[] females, Creature[] males, Species species, - short[] bestPossLevels, double[] statWeights, int[] bestLevelsOfSpecies, BreedingPlan.BreedingMode breedingMode, + short[] bestPossLevels, double[] statWeights, int[] bestLevelsOfSpecies, BreedingMode breedingMode, bool considerChosenCreature, bool considerMutationLimit, int mutationLimit, ref bool creaturesMutationsFilteredOut, int offspringLevelLimit = 0, bool downGradeOffspringWithLevelHigherThanLimit = false, bool onlyBestSuggestionForFemale = false, byte[] anyOddEven = null) @@ -111,7 +111,7 @@ public static List CalculateBreedingScores(Creature[] females, Cre double weightedExpectedStatLevel = statWeights[s] * (Ark.ProbabilityInheritHigherLevel * higherLevel + Ark.ProbabilityInheritLowerLevel * lowerLevel) / 40; if (weightedExpectedStatLevel != 0) { - if (breedingMode == BreedingPlan.BreedingMode.TopStatsLucky) + if (breedingMode == BreedingMode.TopStatsLucky) { if (!ignoreTopStats && (female.levelsWild[s] == bestLevelsOfSpecies[s] || male.levelsWild[s] == bestLevelsOfSpecies[s])) { @@ -121,7 +121,7 @@ public static List CalculateBreedingScores(Creature[] females, Cre else if (bestLevelsOfSpecies[s] > 0) weightedExpectedStatLevel *= .01; } - else if (breedingMode == BreedingPlan.BreedingMode.TopStatsConservative && bestLevelsOfSpecies[s] > 0) + else if (breedingMode == BreedingMode.TopStatsConservative && bestLevelsOfSpecies[s] > 0) { bool higherIsBetter = statWeights[s] >= 0; bestPossLevels[s] = (short)(higherIsBetter ? Math.Max(female.levelsWild[s], male.levelsWild[s]) : Math.Min(female.levelsWild[s], male.levelsWild[s])); @@ -140,7 +140,7 @@ public static List CalculateBreedingScores(Creature[] females, Cre } } - if (breedingMode == BreedingPlan.BreedingMode.TopStatsConservative) + if (breedingMode == BreedingMode.TopStatsConservative) { if (topStatsMother < offspringPotentialTopStatCount && topStatsFather < offspringPotentialTopStatCount) t += offspringExpectedTopStatCount; @@ -274,5 +274,12 @@ public static int GetHigherBestLevel(int level1, int level2, byte anyOddEven) default: return Math.Max(level1, level2); } } + + public enum BreedingMode + { + BestNextGen, + TopStatsLucky, + TopStatsConservative + } } } diff --git a/ARKBreedingStats/Form1.library.cs b/ARKBreedingStats/Form1.library.cs index 862eb8c5..c83e5a80 100644 --- a/ARKBreedingStats/Form1.library.cs +++ b/ARKBreedingStats/Form1.library.cs @@ -316,8 +316,14 @@ private void CalculateTopStats(List creatures) } List[] bestCreaturesWildLevels = new List[Stats.StatsCount]; List[] bestCreaturesMutatedLevels = new List[Stats.StatsCount]; - int usedStatsCount = usedStatIndices.Count; - int usedAndConsideredStatsCount = usedAndConsideredStatIndices.Count; + var statPreferences = new StatWeighting.StatValuePreference[Stats.StatsCount]; + for (int s = 0; s < Stats.StatsCount; s++) + { + var statWeight = statWeights.Item1[s]; + statPreferences[s] = statWeight > 0 ? StatWeighting.StatValuePreference.High : + statWeight < 0 ? StatWeighting.StatValuePreference.Low : + StatWeighting.StatValuePreference.Indifferent; + } foreach (var c in speciesCreatures) { @@ -341,77 +347,80 @@ private void CalculateTopStats(List creatures) continue; } - for (int s = 0; s < usedStatsCount; s++) + foreach (var s in usedStatIndices) { - int si = usedStatIndices[s]; - var statWeight = statWeights.Item1[s]; - var statPreference = statWeight > 0 ? StatWeighting.StatValuePreference.High : - statWeight < 0 ? StatWeighting.StatValuePreference.Low : - StatWeighting.StatValuePreference.Indifferent; - - if (c.levelsWild[si] >= 0) + if (c.levelsWild[s] >= 0) { - if (statPreference == StatWeighting.StatValuePreference.Low) + if (statPreferences[s] == StatWeighting.StatValuePreference.Low) { - if (lowestLevels[si] == -1 || c.levelsWild[si] < lowestLevels[si]) + if (lowestLevels[s] == -1 || c.levelsWild[s] < lowestLevels[s]) { - bestCreaturesWildLevels[si] = new List { c }; - lowestLevels[si] = c.levelsWild[si]; + bestCreaturesWildLevels[s] = new List { c }; + lowestLevels[s] = c.levelsWild[s]; } - else if (c.levelsWild[si] == lowestLevels[si]) + else if (c.levelsWild[s] == lowestLevels[s]) { - bestCreaturesWildLevels[si].Add(c); + bestCreaturesWildLevels[s].Add(c); + } + + if (c.levelsWild[s] > highestLevels[s]) + { + highestLevels[s] = c.levelsWild[s]; } } - else if (statPreference == StatWeighting.StatValuePreference.High) + else if (statPreferences[s] == StatWeighting.StatValuePreference.High) { - if (c.levelsWild[si] > highestLevels[si]) + if (c.levelsWild[s] > highestLevels[s]) { // creature has a higher level than the current highest level // check if highest stats are only counted if odd or even if ((statWeights.Item2?[s] ?? 0) == 0 // even/odd doesn't matter - || (statWeights.Item2[s] == 1 && c.levelsWild[si] % 2 == 1) - || (statWeights.Item2[s] == 2 && c.levelsWild[si] % 2 == 0) + || (statWeights.Item2[s] == 1 && c.levelsWild[s] % 2 == 1) + || (statWeights.Item2[s] == 2 && c.levelsWild[s] % 2 == 0) ) { - bestCreaturesWildLevels[si] = new List { c }; - highestLevels[si] = c.levelsWild[si]; + bestCreaturesWildLevels[s] = new List { c }; + highestLevels[s] = c.levelsWild[s]; } } - else if (c.levelsWild[si] == highestLevels[si]) + else if (c.levelsWild[s] == highestLevels[s]) + { + bestCreaturesWildLevels[s].Add(c); + } + if (lowestLevels[s] == -1 || c.levelsWild[s] < lowestLevels[s]) { - bestCreaturesWildLevels[si].Add(c); + lowestLevels[s] = c.levelsWild[s]; } } } - if (c.levelsMutated != null && c.levelsMutated[si] >= 0) + if (c.levelsMutated != null && c.levelsMutated[s] >= 0) { - if (statPreference == StatWeighting.StatValuePreference.Low) + if (statPreferences[s] == StatWeighting.StatValuePreference.Low) { - if (c.levelsMutated[si] < lowestMutationLevels[si]) + if (c.levelsMutated[s] < lowestMutationLevels[s]) { - bestCreaturesMutatedLevels[si] = new List { c }; - lowestMutationLevels[si] = c.levelsMutated[si]; + bestCreaturesMutatedLevels[s] = new List { c }; + lowestMutationLevels[s] = c.levelsMutated[s]; } - else if (c.levelsMutated[si] == lowestMutationLevels[si]) + else if (c.levelsMutated[s] == lowestMutationLevels[s]) { - if (bestCreaturesMutatedLevels[si] == null) - bestCreaturesMutatedLevels[si] = new List { c }; - else bestCreaturesMutatedLevels[si].Add(c); + if (bestCreaturesMutatedLevels[s] == null) + bestCreaturesMutatedLevels[s] = new List { c }; + else bestCreaturesMutatedLevels[s].Add(c); } } - else if (statPreference == StatWeighting.StatValuePreference.High - && c.levelsMutated[si] > 0) + else if (statPreferences[s] == StatWeighting.StatValuePreference.High + && c.levelsMutated[s] > 0) { - if (c.levelsMutated[si] > 0 && c.levelsMutated[si] > highestMutationLevels[si]) + if (c.levelsMutated[s] > 0 && c.levelsMutated[s] > highestMutationLevels[s]) { - bestCreaturesMutatedLevels[si] = new List { c }; - highestMutationLevels[si] = c.levelsMutated[si]; + bestCreaturesMutatedLevels[s] = new List { c }; + highestMutationLevels[s] = c.levelsMutated[s]; } - else if (c.levelsMutated[si] == highestMutationLevels[si]) + else if (c.levelsMutated[s] == highestMutationLevels[s]) { - bestCreaturesMutatedLevels[si].Add(c); + bestCreaturesMutatedLevels[s].Add(c); } } } @@ -427,11 +436,21 @@ private void CalculateTopStats(List creatures) // set topness of each creature (== mean wildLevels/mean top wildLevels in permille) int sumTopLevels = 0; - for (int s = 0; s < usedAndConsideredStatsCount; s++) + foreach (var s in usedAndConsideredStatIndices) { - int si = usedAndConsideredStatIndices[s]; - if (highestLevels[si] > 0) - sumTopLevels += highestLevels[si]; + switch (statPreferences[s]) + { + case StatWeighting.StatValuePreference.Indifferent: + continue; + case StatWeighting.StatValuePreference.Low: + if (highestLevels[s] > 0 && lowestLevels[s] != 0) + sumTopLevels += highestLevels[s] - lowestLevels[s]; + break; + case StatWeighting.StatValuePreference.High: + if (highestLevels[s] > 0) + sumTopLevels += highestLevels[s]; + break; + } } if (sumTopLevels > 0) { @@ -439,10 +458,18 @@ private void CalculateTopStats(List creatures) { if (c.levelsWild == null || c.flags.HasFlag(CreatureFlags.Placeholder)) continue; int sumCreatureLevels = 0; - for (int s = 0; s < usedAndConsideredStatsCount; s++) + foreach (var s in usedAndConsideredStatIndices) { - int si = usedAndConsideredStatIndices[s]; - sumCreatureLevels += c.levelsWild[si] > 0 ? c.levelsWild[si] : 0; + switch (statPreferences[s]) + { + case StatWeighting.StatValuePreference.Low: + if (c.levelsWild[s] >= 0) + sumCreatureLevels += highestLevels[s] - c.levelsWild[s]; + break; + case StatWeighting.StatValuePreference.High: + sumCreatureLevels += c.levelsWild[s] > 0 ? c.levelsWild[s] : 0; + break; + } } c.topness = (short)(1000 * sumCreatureLevels / sumTopLevels); } diff --git a/ARKBreedingStats/library/Creature.cs b/ARKBreedingStats/library/Creature.cs index 1e8d7647..b06215bb 100644 --- a/ARKBreedingStats/library/Creature.cs +++ b/ARKBreedingStats/library/Creature.cs @@ -419,6 +419,7 @@ public Creature Mother motherGuid = mother?.guid ?? Guid.Empty; } } + public Creature Father { get => father; diff --git a/ARKBreedingStats/library/DummyCreatures.cs b/ARKBreedingStats/library/DummyCreatures.cs index 52d7323c..ecae6f38 100644 --- a/ARKBreedingStats/library/DummyCreatures.cs +++ b/ARKBreedingStats/library/DummyCreatures.cs @@ -244,7 +244,7 @@ private static List BreedCreatures(Creature[] creatures, Species speci var allCreaturesArray = noGender ? allCreatures.ToArray() : null; var pairs = BreedingScore.CalculateBreedingScores(noGender ? allCreaturesArray : femalesMales[Sex.Female].ToArray(), noGender ? allCreaturesArray : femalesMales[Sex.Male].ToArray(), species, bestPossibleLevels, statWeights, bestLevels, - BreedingPlan.BreedingMode.TopStatsConservative, false, false, 0, ref filteredOutByMutationLimit); + BreedingScore.BreedingMode.TopStatsConservative, false, false, 0, ref filteredOutByMutationLimit); var pairsCount = Math.Min(usePairsPerGeneration, pairs.Count); for (int i = 0; i < pairsCount; i++) diff --git a/ARKBreedingStats/uiControls/StatWeighting.cs b/ARKBreedingStats/uiControls/StatWeighting.cs index b48e9a3f..089ac36e 100644 --- a/ARKBreedingStats/uiControls/StatWeighting.cs +++ b/ARKBreedingStats/uiControls/StatWeighting.cs @@ -392,8 +392,8 @@ private void SetState(byte state) public enum StatValuePreference { Indifferent, - High, - Low + Low, + High } /// @@ -402,8 +402,8 @@ public enum StatValuePreference public enum StatValueEvenOdd { Indifferent, - Even, - Odd + Odd, + Even } } } From 9d9844e80ab009edbdee38f6ec0bb9a438afb224 Mon Sep 17 00:00:00 2001 From: cadon Date: Sun, 4 Feb 2024 15:11:43 +0100 Subject: [PATCH 29/29] ver --- ARKBreedingStats/Properties/AssemblyInfo.cs | 2 +- ARKBreedingStats/_manifest.json | 2 +- ARKBreedingStats/json/values/_manifest.json | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ARKBreedingStats/Properties/AssemblyInfo.cs b/ARKBreedingStats/Properties/AssemblyInfo.cs index 50ab4ac2..1a2a4a78 100644 --- a/ARKBreedingStats/Properties/AssemblyInfo.cs +++ b/ARKBreedingStats/Properties/AssemblyInfo.cs @@ -30,6 +30,6 @@ // Revision // [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("0.59.6.0")] +[assembly: AssemblyFileVersion("0.60.0.0")] [assembly: NeutralResourcesLanguage("en")] diff --git a/ARKBreedingStats/_manifest.json b/ARKBreedingStats/_manifest.json index 66fe0e5f..1ee774dd 100644 --- a/ARKBreedingStats/_manifest.json +++ b/ARKBreedingStats/_manifest.json @@ -4,7 +4,7 @@ "ARK Smart Breeding": { "Id": "ARK Smart Breeding", "Category": "main", - "version": "0.59.6.0" + "version": "0.60.0.0" }, "SpeciesColorImages": { "Id": "SpeciesColorImages", diff --git a/ARKBreedingStats/json/values/_manifest.json b/ARKBreedingStats/json/values/_manifest.json index 693318b2..21f4bd4b 100644 --- a/ARKBreedingStats/json/values/_manifest.json +++ b/ARKBreedingStats/json/values/_manifest.json @@ -67,7 +67,7 @@ "mod": { "id": "1356703358", "tag": "Primal_Fear_Noxious_Creatures", "title": "Primal Fear Noxious Creatures" } }, "1373744537-AC2.json": { - "version": "358.17.1700355462", + "version": "358.17.1705110964", "mod": { "id": "1373744537", "tag": "AC2", "title": "Additional Creatures 2: Wild Ark" } }, "1379111008-RealismPlus.json": { @@ -242,7 +242,7 @@ "mod": { "id": "1934081600", "tag": "SoloFarmAnky", "title": "Solo Farm Mod" } }, "1979037318-IceWyverns.json": { - "version": "358.17.1696373342", + "version": "358.17.1705110815", "mod": { "id": "1979037318", "tag": "IceWyverns", "title": "Shads Critter Reworks" } }, "1984129536-MTSMod.json": { @@ -258,7 +258,7 @@ "mod": { "id": "2000326197", "tag": "ExtraResources", "title": "Event Assets" } }, "2003934830-Beasts.json": { - "version": "358.17.1699137788", + "version": "358.17.1705183647", "mod": { "id": "2003934830", "tag": "Beasts", "title": "Prehistoric Beasts" } }, "2019846325-ApexMod.json": { @@ -310,7 +310,7 @@ "mod": { "id": "2362246280", "tag": "GigaFullTame", "title": "Giga Full Tame" } }, "2447186973-ArkOmega.json": { - "version": "358.17.1701673974", + "version": "358.17.1705727328", "mod": { "id": "2447186973", "tag": "ArkOmega", "title": "Ark Omega" } }, "2453342929-MoreDragonsMod.json": {