diff --git a/ARKBreedingStats/ARKBreedingStats.csproj b/ARKBreedingStats/ARKBreedingStats.csproj index 09deda6c..17dde40a 100644 --- a/ARKBreedingStats/ARKBreedingStats.csproj +++ b/ARKBreedingStats/ARKBreedingStats.csproj @@ -121,6 +121,7 @@ Component + UserControl @@ -954,10 +955,10 @@ - 37.0.3 + 44.0.1 - 3.3.3 + 3.3.4 runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/ARKBreedingStats/App.config b/ARKBreedingStats/App.config index 87f9b4a7..7b4c66d3 100644 --- a/ARKBreedingStats/App.config +++ b/ARKBreedingStats/App.config @@ -478,6 +478,9 @@ True + + False + diff --git a/ARKBreedingStats/Form1.Designer.cs b/ARKBreedingStats/Form1.Designer.cs index 1b4ab581..d62ee374 100644 --- a/ARKBreedingStats/Form1.Designer.cs +++ b/ARKBreedingStats/Form1.Designer.cs @@ -58,8 +58,6 @@ private void InitializeComponent() this.groupBox1 = new System.Windows.Forms.GroupBox(); this.lbImprintedCount = new System.Windows.Forms.Label(); this.labelImprintingTester = new System.Windows.Forms.Label(); - this.numericUpDownImprintingBonusTester = new ARKBreedingStats.uiControls.Nud(); - this.NumericUpDownTestingTE = new ARKBreedingStats.uiControls.Nud(); this.labelTesterTE = new System.Windows.Forms.Label(); this.groupBoxPossibilities = new System.Windows.Forms.GroupBox(); this.listViewPossibilities = new System.Windows.Forms.ListView(); @@ -72,14 +70,11 @@ private void InitializeComponent() this.cbExactlyImprinting = new System.Windows.Forms.CheckBox(); this.labelImprintingBonus = new System.Windows.Forms.Label(); this.lbImprintingCuddleCountExtractor = new System.Windows.Forms.Label(); - this.numericUpDownImprintingBonusExtractor = new ARKBreedingStats.uiControls.Nud(); this.panelExtrTE = new System.Windows.Forms.Panel(); this.labelTE = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); - this.numericUpDownUpperTEffBound = new ARKBreedingStats.uiControls.Nud(); this.label3 = new System.Windows.Forms.Label(); - this.numericUpDownLowerTEffBound = new ARKBreedingStats.uiControls.Nud(); this.lbLevel = new System.Windows.Forms.Label(); this.lbBreedingValueTester = new System.Windows.Forms.Label(); this.lbTesterWildLevel = new System.Windows.Forms.Label(); @@ -153,9 +148,7 @@ private void InitializeComponent() this.tabControlMain = new System.Windows.Forms.TabControl(); this.tabPageStatTesting = new System.Windows.Forms.TabPage(); this.pictureBoxColorRegionsTester = new System.Windows.Forms.PictureBox(); - this.statPotentials1 = new ARKBreedingStats.uiControls.StatPotentials(); this.gbStatChart = new System.Windows.Forms.GroupBox(); - this.radarChart1 = new ARKBreedingStats.RadarChart(); this.panelWildTamedBredTester = new System.Windows.Forms.Panel(); this.rbBredTester = new System.Windows.Forms.RadioButton(); this.rbTamedTester = new System.Windows.Forms.RadioButton(); @@ -174,15 +167,12 @@ private void InitializeComponent() this.lbCurrentCreature = new System.Windows.Forms.Label(); this.labelCurrentTesterCreature = new System.Windows.Forms.Label(); this.lbTestingInfo = new System.Windows.Forms.Label(); - this.creatureInfoInputTester = new ARKBreedingStats.CreatureInfoInput(); this.tabPageExtractor = new System.Windows.Forms.TabPage(); - this.creatureAnalysis1 = new ARKBreedingStats.uiControls.CreatureAnalysis(); this.LbBlueprintPath = new System.Windows.Forms.Label(); this.BtCopyIssueDumpToClipboard = new System.Windows.Forms.Button(); this.llOnlineHelpExtractionIssues = new System.Windows.Forms.LinkLabel(); this.PbCreatureColorsExtractor = new System.Windows.Forms.PictureBox(); this.groupBoxRadarChartExtractor = new System.Windows.Forms.GroupBox(); - this.radarChartExtractor = new ARKBreedingStats.RadarChart(); this.lbImprintingFailInfo = new System.Windows.Forms.Label(); this.groupBoxTamingInfo = new System.Windows.Forms.GroupBox(); this.labelTamingInfo = new System.Windows.Forms.Label(); @@ -194,9 +184,6 @@ private void InitializeComponent() this.btExtractLevels = new System.Windows.Forms.Button(); this.cbQuickWildCheck = new System.Windows.Forms.CheckBox(); this.labelErrorHelp = new System.Windows.Forms.Label(); - this.parentInheritanceExtractor = new ARKBreedingStats.uiControls.ParentInheritance(); - this.numericUpDownLevel = new ARKBreedingStats.uiControls.Nud(); - this.creatureInfoInputExtractor = new ARKBreedingStats.CreatureInfoInput(); this.tabPageLibrary = new System.Windows.Forms.TabPage(); this.tableLayoutPanelLibrary = new System.Windows.Forms.TableLayoutPanel(); this.listViewLibrary = new System.Windows.Forms.ListView(); @@ -283,30 +270,21 @@ private void InitializeComponent() this.buttonRecalculateTops = new System.Windows.Forms.Button(); this.label17 = new System.Windows.Forms.Label(); this.tabPageLibRadarChart = new System.Windows.Forms.TabPage(); - this.radarChartLibrary = new ARKBreedingStats.RadarChart(); - this.creatureBoxListView = new ARKBreedingStats.CreatureBox(); + this.tabPageLibraryInfo = new System.Windows.Forms.TabPage(); + this.tlpLibraryInfo = new System.Windows.Forms.TableLayoutPanel(); + this.BtCopyLibraryColorToClipboard = new System.Windows.Forms.Button(); + this.CbLibraryInfoUseFilter = new System.Windows.Forms.CheckBox(); this.tabPagePedigree = new System.Windows.Forms.TabPage(); - this.pedigree1 = new ARKBreedingStats.Pedigree.PedigreeControl(); this.tabPageTaming = new System.Windows.Forms.TabPage(); - this.tamingControl1 = new ARKBreedingStats.TamingControl(); this.tabPageBreedingPlan = new System.Windows.Forms.TabPage(); - this.breedingPlan1 = new ARKBreedingStats.BreedingPlanning.BreedingPlan(); this.tabPageHatching = new System.Windows.Forms.TabPage(); - this.hatching1 = new ARKBreedingStats.uiControls.Hatching(); this.tabPageRaising = new System.Windows.Forms.TabPage(); - this.raisingControl1 = new ARKBreedingStats.raising.RaisingControl(); this.tabPageTimer = new System.Windows.Forms.TabPage(); - this.timerList1 = new ARKBreedingStats.TimerControl(); this.tabPagePlayerTribes = new System.Windows.Forms.TabPage(); - this.tribesControl1 = new ARKBreedingStats.TribesControl(); this.tabPageNotes = new System.Windows.Forms.TabPage(); - this.notesControl1 = new ARKBreedingStats.NotesControl(); this.TabPageOCR = new System.Windows.Forms.TabPage(); - this.ocrControl1 = new ARKBreedingStats.ocr.OCRControl(); this.tabPageExtractionTests = new System.Windows.Forms.TabPage(); - this.extractionTestControl1 = new ARKBreedingStats.testCases.ExtractionTestControl(); this.tabPageMultiplierTesting = new System.Windows.Forms.TabPage(); - this.statsMultiplierTesting1 = new ARKBreedingStats.multiplierTesting.StatsMultiplierTesting(); this.btReadValuesFromArk = new System.Windows.Forms.Button(); this.cbEventMultipliers = new System.Windows.Forms.CheckBox(); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); @@ -344,7 +322,6 @@ private void InitializeComponent() this.panelToolBar = new System.Windows.Forms.Panel(); this.btImportLastExported = new System.Windows.Forms.Button(); this.pbSpecies = new System.Windows.Forms.PictureBox(); - this.tbSpeciesGlobal = new ARKBreedingStats.uiControls.TextBoxSuggest(); this.cbGuessSpecies = new System.Windows.Forms.CheckBox(); this.cbToggleOverlay = new System.Windows.Forms.CheckBox(); this.lbListening = new System.Windows.Forms.Label(); @@ -352,19 +329,39 @@ private void InitializeComponent() this.lbLibrarySelectionInfo = new System.Windows.Forms.Label(); this.contextMenuStripLibraryHeader = new System.Windows.Forms.ContextMenuStrip(this.components); this.toolStripMenuItemResetLibraryColumnWidths = new System.Windows.Forms.ToolStripMenuItem(); + this.statPotentials1 = new ARKBreedingStats.uiControls.StatPotentials(); + this.radarChart1 = new ARKBreedingStats.RadarChart(); + this.numericUpDownImprintingBonusTester = new ARKBreedingStats.uiControls.Nud(); + this.NumericUpDownTestingTE = new ARKBreedingStats.uiControls.Nud(); + this.creatureInfoInputTester = new ARKBreedingStats.CreatureInfoInput(); + this.creatureAnalysis1 = new ARKBreedingStats.uiControls.CreatureAnalysis(); + this.radarChartExtractor = new ARKBreedingStats.RadarChart(); + this.numericUpDownImprintingBonusExtractor = new ARKBreedingStats.uiControls.Nud(); + this.numericUpDownUpperTEffBound = new ARKBreedingStats.uiControls.Nud(); + this.numericUpDownLowerTEffBound = new ARKBreedingStats.uiControls.Nud(); + this.parentInheritanceExtractor = new ARKBreedingStats.uiControls.ParentInheritance(); + this.numericUpDownLevel = new ARKBreedingStats.uiControls.Nud(); + this.creatureInfoInputExtractor = new ARKBreedingStats.CreatureInfoInput(); + this.radarChartLibrary = new ARKBreedingStats.RadarChart(); + this.creatureBoxListView = new ARKBreedingStats.CreatureBox(); + this.pedigree1 = new ARKBreedingStats.Pedigree.PedigreeControl(); + this.tamingControl1 = new ARKBreedingStats.TamingControl(); + this.breedingPlan1 = new ARKBreedingStats.BreedingPlanning.BreedingPlan(); + this.hatching1 = new ARKBreedingStats.uiControls.Hatching(); + this.raisingControl1 = new ARKBreedingStats.raising.RaisingControl(); + this.timerList1 = new ARKBreedingStats.TimerControl(); + this.tribesControl1 = new ARKBreedingStats.TribesControl(); + this.notesControl1 = new ARKBreedingStats.NotesControl(); + this.ocrControl1 = new ARKBreedingStats.ocr.OCRControl(); + this.extractionTestControl1 = new ARKBreedingStats.testCases.ExtractionTestControl(); + this.statsMultiplierTesting1 = new ARKBreedingStats.multiplierTesting.StatsMultiplierTesting(); this.speciesSelector1 = new ARKBreedingStats.SpeciesSelector(); - this.libraryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.copyColorInformationToClipboardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tbSpeciesGlobal = new ARKBreedingStats.uiControls.TextBoxSuggest(); this.groupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownImprintingBonusTester)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NumericUpDownTestingTE)).BeginInit(); this.groupBoxPossibilities.SuspendLayout(); this.groupBoxDetailsExtractor.SuspendLayout(); this.panelExtrImpr.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownImprintingBonusExtractor)).BeginInit(); this.panelExtrTE.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownUpperTEffBound)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLowerTEffBound)).BeginInit(); this.menuStrip1.SuspendLayout(); this.panelSums.SuspendLayout(); this.panelWildTamedBred.SuspendLayout(); @@ -372,7 +369,6 @@ private void InitializeComponent() this.tabPageStatTesting.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBoxColorRegionsTester)).BeginInit(); this.gbStatChart.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.radarChart1)).BeginInit(); this.panelWildTamedBredTester.SuspendLayout(); this.groupBox2.SuspendLayout(); this.flowLayoutPanelStatIOsTester.SuspendLayout(); @@ -382,12 +378,10 @@ private void InitializeComponent() this.tabPageExtractor.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.PbCreatureColorsExtractor)).BeginInit(); this.groupBoxRadarChartExtractor.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.radarChartExtractor)).BeginInit(); this.groupBoxTamingInfo.SuspendLayout(); this.gbStatsExtractor.SuspendLayout(); this.flowLayoutPanelStatIOsExtractor.SuspendLayout(); this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLevel)).BeginInit(); this.tabPageLibrary.SuspendLayout(); this.tableLayoutPanelLibrary.SuspendLayout(); this.contextMenuStripLibrary.SuspendLayout(); @@ -397,7 +391,8 @@ private void InitializeComponent() this.tabPage3.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout(); this.tabPageLibRadarChart.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.radarChartLibrary)).BeginInit(); + this.tabPageLibraryInfo.SuspendLayout(); + this.tlpLibraryInfo.SuspendLayout(); this.tabPagePedigree.SuspendLayout(); this.tabPageTaming.SuspendLayout(); this.tabPageBreedingPlan.SuspendLayout(); @@ -414,6 +409,15 @@ private void InitializeComponent() this.panelToolBar.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbSpecies)).BeginInit(); this.contextMenuStripLibraryHeader.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radarChart1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownImprintingBonusTester)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NumericUpDownTestingTE)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radarChartExtractor)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownImprintingBonusExtractor)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownUpperTEffBound)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLowerTEffBound)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLevel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radarChartLibrary)).BeginInit(); this.SuspendLayout(); // // aboutToolStripMenuItem @@ -603,47 +607,6 @@ private void InitializeComponent() this.labelImprintingTester.TabIndex = 5; this.labelImprintingTester.Text = "% Imprinting Bonus"; // - // numericUpDownImprintingBonusTester - // - this.numericUpDownImprintingBonusTester.DecimalPlaces = 5; - this.numericUpDownImprintingBonusTester.Enabled = false; - this.numericUpDownImprintingBonusTester.ForeColor = System.Drawing.SystemColors.GrayText; - this.numericUpDownImprintingBonusTester.Location = new System.Drawing.Point(6, 45); - this.numericUpDownImprintingBonusTester.Maximum = new decimal(new int[] { - 1000, - 0, - 0, - 0}); - this.numericUpDownImprintingBonusTester.Name = "numericUpDownImprintingBonusTester"; - this.numericUpDownImprintingBonusTester.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.numericUpDownImprintingBonusTester.Size = new System.Drawing.Size(75, 20); - this.numericUpDownImprintingBonusTester.TabIndex = 4; - this.numericUpDownImprintingBonusTester.ValueChanged += new System.EventHandler(this.numericUpDownImprintingBonusTester_ValueChanged); - // - // NumericUpDownTestingTE - // - this.NumericUpDownTestingTE.DecimalPlaces = 2; - this.NumericUpDownTestingTE.ForeColor = System.Drawing.SystemColors.WindowText; - this.NumericUpDownTestingTE.Location = new System.Drawing.Point(6, 19); - this.NumericUpDownTestingTE.Name = "NumericUpDownTestingTE"; - this.NumericUpDownTestingTE.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.NumericUpDownTestingTE.Size = new System.Drawing.Size(60, 20); - this.NumericUpDownTestingTE.TabIndex = 0; - this.NumericUpDownTestingTE.Value = new decimal(new int[] { - 80, - 0, - 0, - 0}); - this.NumericUpDownTestingTE.ValueChanged += new System.EventHandler(this.NumericUpDownTestingTE_ValueChanged); - // // labelTesterTE // this.labelTesterTE.AutoSize = true; @@ -755,27 +718,6 @@ private void InitializeComponent() this.lbImprintingCuddleCountExtractor.TabIndex = 50; this.lbImprintingCuddleCountExtractor.Text = "(0×)"; // - // numericUpDownImprintingBonusExtractor - // - this.numericUpDownImprintingBonusExtractor.DecimalPlaces = 5; - this.numericUpDownImprintingBonusExtractor.ForeColor = System.Drawing.SystemColors.GrayText; - this.numericUpDownImprintingBonusExtractor.Location = new System.Drawing.Point(3, 3); - this.numericUpDownImprintingBonusExtractor.Maximum = new decimal(new int[] { - 1000, - 0, - 0, - 0}); - this.numericUpDownImprintingBonusExtractor.Name = "numericUpDownImprintingBonusExtractor"; - this.numericUpDownImprintingBonusExtractor.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.numericUpDownImprintingBonusExtractor.Size = new System.Drawing.Size(77, 20); - this.numericUpDownImprintingBonusExtractor.TabIndex = 6; - this.numericUpDownImprintingBonusExtractor.ValueChanged += new System.EventHandler(this.numericUpDownImprintingBonusExtractor_ValueChanged); - this.numericUpDownImprintingBonusExtractor.Enter += new System.EventHandler(this.numericUpDown_Enter); - // // panelExtrTE // this.panelExtrTE.Controls.Add(this.labelTE); @@ -815,25 +757,6 @@ private void InitializeComponent() this.label1.TabIndex = 5; this.label1.Text = "%"; // - // numericUpDownUpperTEffBound - // - this.numericUpDownUpperTEffBound.ForeColor = System.Drawing.SystemColors.WindowText; - this.numericUpDownUpperTEffBound.Location = new System.Drawing.Point(147, 3); - this.numericUpDownUpperTEffBound.Name = "numericUpDownUpperTEffBound"; - this.numericUpDownUpperTEffBound.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.numericUpDownUpperTEffBound.Size = new System.Drawing.Size(45, 20); - this.numericUpDownUpperTEffBound.TabIndex = 3; - this.numericUpDownUpperTEffBound.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - this.numericUpDownUpperTEffBound.Enter += new System.EventHandler(this.numericUpDown_Enter); - // // label3 // this.label3.AutoSize = true; @@ -843,25 +766,6 @@ private void InitializeComponent() this.label3.TabIndex = 2; this.label3.Text = "-"; // - // numericUpDownLowerTEffBound - // - this.numericUpDownLowerTEffBound.ForeColor = System.Drawing.SystemColors.WindowText; - this.numericUpDownLowerTEffBound.Location = new System.Drawing.Point(80, 3); - this.numericUpDownLowerTEffBound.Name = "numericUpDownLowerTEffBound"; - this.numericUpDownLowerTEffBound.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.numericUpDownLowerTEffBound.Size = new System.Drawing.Size(45, 20); - this.numericUpDownLowerTEffBound.TabIndex = 1; - this.numericUpDownLowerTEffBound.Value = new decimal(new int[] { - 80, - 0, - 0, - 0}); - this.numericUpDownLowerTEffBound.Enter += new System.EventHandler(this.numericUpDown_Enter); - // // lbLevel // this.lbLevel.AutoSize = true; @@ -975,7 +879,6 @@ private void InitializeComponent() this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem, this.editToolStripMenuItem, - this.libraryToolStripMenuItem, this.libraryFilterToolStripMenuItem, this.settingsToolStripMenuItem, this.helpToolStripMenuItem, @@ -1447,6 +1350,7 @@ private void InitializeComponent() this.tabControlMain.Controls.Add(this.tabPageStatTesting); this.tabControlMain.Controls.Add(this.tabPageExtractor); this.tabControlMain.Controls.Add(this.tabPageLibrary); + this.tabControlMain.Controls.Add(this.tabPageLibraryInfo); this.tabControlMain.Controls.Add(this.tabPagePedigree); this.tabControlMain.Controls.Add(this.tabPageTaming); this.tabControlMain.Controls.Add(this.tabPageBreedingPlan); @@ -1494,13 +1398,6 @@ private void InitializeComponent() this.pictureBoxColorRegionsTester.TabStop = false; this.pictureBoxColorRegionsTester.Click += new System.EventHandler(this.pictureBoxColorRegionsTester_Click); // - // statPotentials1 - // - this.statPotentials1.Location = new System.Drawing.Point(808, 9); - this.statPotentials1.Name = "statPotentials1"; - this.statPotentials1.Size = new System.Drawing.Size(293, 433); - this.statPotentials1.TabIndex = 12; - // // gbStatChart // this.gbStatChart.Controls.Add(this.radarChart1); @@ -1511,16 +1408,6 @@ private void InitializeComponent() this.gbStatChart.TabStop = false; this.gbStatChart.Text = "Stat-Chart"; // - // radarChart1 - // - this.radarChart1.Image = ((System.Drawing.Image)(resources.GetObject("radarChart1.Image"))); - this.radarChart1.Location = new System.Drawing.Point(6, 19); - this.radarChart1.Name = "radarChart1"; - this.radarChart1.Size = new System.Drawing.Size(200, 200); - this.radarChart1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.radarChart1.TabIndex = 10; - this.radarChart1.TabStop = false; - // // panelWildTamedBredTester // this.panelWildTamedBredTester.Controls.Add(this.rbBredTester); @@ -1707,42 +1594,6 @@ private void InitializeComponent() this.lbTestingInfo.TabIndex = 37; this.lbTestingInfo.Text = "Preview or edit levels of a creature."; // - // creatureInfoInputTester - // - this.creatureInfoInputTester.ColorIdsAlsoPossible = null; - this.creatureInfoInputTester.CooldownUntil = null; - this.creatureInfoInputTester.CreatureFlags = ARKBreedingStats.Library.CreatureFlags.None; - this.creatureInfoInputTester.CreatureName = ""; - this.creatureInfoInputTester.CreatureNote = ""; - this.creatureInfoInputTester.CreatureOwner = ""; - this.creatureInfoInputTester.CreatureServer = ""; - this.creatureInfoInputTester.CreatureSex = ARKBreedingStats.Library.Sex.Unknown; - this.creatureInfoInputTester.CreatureStatus = ARKBreedingStats.Library.CreatureStatus.Available; - this.creatureInfoInputTester.CreatureTribe = ""; - this.creatureInfoInputTester.DomesticatedAt = new System.DateTime(2014, 12, 31, 0, 0, 0, 0); - this.creatureInfoInputTester.Father = null; - this.creatureInfoInputTester.GrowingUntil = null; - this.creatureInfoInputTester.Location = new System.Drawing.Point(321, 184); - this.creatureInfoInputTester.LockServer = false; - this.creatureInfoInputTester.Mother = null; - this.creatureInfoInputTester.MutationCounterFather = 0; - this.creatureInfoInputTester.MutationCounterMother = 0; - this.creatureInfoInputTester.Name = "creatureInfoInputTester"; - this.creatureInfoInputTester.OwnerLock = false; - this.creatureInfoInputTester.RegionColors = new byte[] { - ((byte)(0)), - ((byte)(0)), - ((byte)(0)), - ((byte)(0)), - ((byte)(0)), - ((byte)(0))}; - this.creatureInfoInputTester.Size = new System.Drawing.Size(262, 590); - this.creatureInfoInputTester.TabIndex = 4; - this.creatureInfoInputTester.TribeLock = false; - this.creatureInfoInputTester.Add2LibraryClicked += new System.Action(this.creatureInfoInputTester_Add2Library_Clicked); - this.creatureInfoInputTester.Save2LibraryClicked += new System.Action(this.creatureInfoInputTester_Save2Library_Clicked); - this.creatureInfoInputTester.ParentListRequested += new System.Action(this.CreatureInfoInput_ParentListRequested); - // // tabPageExtractor // this.tabPageExtractor.AutoScroll = true; @@ -1775,13 +1626,6 @@ private void InitializeComponent() this.tabPageExtractor.Text = "Extractor"; this.tabPageExtractor.UseVisualStyleBackColor = true; // - // creatureAnalysis1 - // - this.creatureAnalysis1.Location = new System.Drawing.Point(851, 265); - this.creatureAnalysis1.Name = "creatureAnalysis1"; - this.creatureAnalysis1.Size = new System.Drawing.Size(346, 199); - this.creatureAnalysis1.TabIndex = 55; - // // LbBlueprintPath // this.LbBlueprintPath.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); @@ -1834,17 +1678,6 @@ private void InitializeComponent() this.groupBoxRadarChartExtractor.TabStop = false; this.groupBoxRadarChartExtractor.Text = "Stat-Chart"; // - // radarChartExtractor - // - this.radarChartExtractor.Dock = System.Windows.Forms.DockStyle.Fill; - this.radarChartExtractor.Image = ((System.Drawing.Image)(resources.GetObject("radarChartExtractor.Image"))); - this.radarChartExtractor.Location = new System.Drawing.Point(3, 16); - this.radarChartExtractor.Name = "radarChartExtractor"; - this.radarChartExtractor.Size = new System.Drawing.Size(144, 144); - this.radarChartExtractor.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.radarChartExtractor.TabIndex = 10; - this.radarChartExtractor.TabStop = false; - // // lbImprintingFailInfo // this.lbImprintingFailInfo.BackColor = System.Drawing.Color.MistyRose; @@ -1961,73 +1794,7 @@ private void InitializeComponent() this.labelErrorHelp.TabIndex = 40; this.labelErrorHelp.Text = resources.GetString("labelErrorHelp.Text"); // - // parentInheritanceExtractor - // - this.parentInheritanceExtractor.Location = new System.Drawing.Point(851, 470); - this.parentInheritanceExtractor.Name = "parentInheritanceExtractor"; - this.parentInheritanceExtractor.Size = new System.Drawing.Size(337, 182); - this.parentInheritanceExtractor.TabIndex = 52; - // - // numericUpDownLevel - // - this.numericUpDownLevel.ForeColor = System.Drawing.SystemColors.WindowText; - this.numericUpDownLevel.Location = new System.Drawing.Point(244, 9); - this.numericUpDownLevel.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.numericUpDownLevel.Name = "numericUpDownLevel"; - this.numericUpDownLevel.NeutralNumber = new decimal(new int[] { - 0, - 0, - 0, - 0}); - this.numericUpDownLevel.Size = new System.Drawing.Size(56, 20); - this.numericUpDownLevel.TabIndex = 2; - this.numericUpDownLevel.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDownLevel.Enter += new System.EventHandler(this.numericUpDown_Enter); - // - // creatureInfoInputExtractor - // - this.creatureInfoInputExtractor.ColorIdsAlsoPossible = null; - this.creatureInfoInputExtractor.CooldownUntil = null; - this.creatureInfoInputExtractor.CreatureFlags = ARKBreedingStats.Library.CreatureFlags.None; - this.creatureInfoInputExtractor.CreatureName = ""; - this.creatureInfoInputExtractor.CreatureNote = ""; - this.creatureInfoInputExtractor.CreatureOwner = ""; - this.creatureInfoInputExtractor.CreatureServer = ""; - this.creatureInfoInputExtractor.CreatureSex = ARKBreedingStats.Library.Sex.Unknown; - this.creatureInfoInputExtractor.CreatureStatus = ARKBreedingStats.Library.CreatureStatus.Available; - this.creatureInfoInputExtractor.CreatureTribe = ""; - this.creatureInfoInputExtractor.DomesticatedAt = new System.DateTime(2014, 12, 31, 0, 0, 0, 0); - this.creatureInfoInputExtractor.Father = null; - this.creatureInfoInputExtractor.GrowingUntil = null; - this.creatureInfoInputExtractor.Location = new System.Drawing.Point(321, 184); - this.creatureInfoInputExtractor.LockServer = false; - this.creatureInfoInputExtractor.Mother = null; - this.creatureInfoInputExtractor.MutationCounterFather = 0; - this.creatureInfoInputExtractor.MutationCounterMother = 0; - this.creatureInfoInputExtractor.Name = "creatureInfoInputExtractor"; - this.creatureInfoInputExtractor.OwnerLock = false; - this.creatureInfoInputExtractor.RegionColors = new byte[] { - ((byte)(0)), - ((byte)(0)), - ((byte)(0)), - ((byte)(0)), - ((byte)(0)), - ((byte)(0))}; - this.creatureInfoInputExtractor.Size = new System.Drawing.Size(262, 590); - this.creatureInfoInputExtractor.TabIndex = 7; - this.creatureInfoInputExtractor.TribeLock = false; - this.creatureInfoInputExtractor.Add2LibraryClicked += new System.Action(this.creatureInfoInputExtractor_Add2Library_Clicked); - this.creatureInfoInputExtractor.ParentListRequested += new System.Action(this.CreatureInfoInput_ParentListRequested); - // - // tabPageLibrary + // tabPageLibrary // this.tabPageLibrary.Controls.Add(this.tableLayoutPanelLibrary); this.tabPageLibrary.Location = new System.Drawing.Point(4, 22); @@ -2746,26 +2513,53 @@ private void InitializeComponent() this.tabPageLibRadarChart.Text = "Chart"; this.tabPageLibRadarChart.UseVisualStyleBackColor = true; // - // radarChartLibrary - // - this.radarChartLibrary.Dock = System.Windows.Forms.DockStyle.Top; - this.radarChartLibrary.Image = ((System.Drawing.Image)(resources.GetObject("radarChartLibrary.Image"))); - this.radarChartLibrary.Location = new System.Drawing.Point(3, 3); - this.radarChartLibrary.Name = "radarChartLibrary"; - this.radarChartLibrary.Size = new System.Drawing.Size(175, 287); - this.radarChartLibrary.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.radarChartLibrary.TabIndex = 0; - this.radarChartLibrary.TabStop = false; - // - // creatureBoxListView - // - this.creatureBoxListView.Location = new System.Drawing.Point(3, 3); - this.creatureBoxListView.Name = "creatureBoxListView"; - this.creatureBoxListView.Size = new System.Drawing.Size(189, 406); - this.creatureBoxListView.TabIndex = 0; - this.creatureBoxListView.Changed += new System.Action(this.UpdateDisplayedCreatureValues); - this.creatureBoxListView.GiveParents += new System.Action(this.CreatureBoxListView_FindParents); - this.creatureBoxListView.SelectCreature += new System.Action(this.SelectCreatureInLibrary); + // tabPageLibraryInfo + // + this.tabPageLibraryInfo.Controls.Add(this.tlpLibraryInfo); + this.tabPageLibraryInfo.Location = new System.Drawing.Point(4, 22); + this.tabPageLibraryInfo.Name = "tabPageLibraryInfo"; + this.tabPageLibraryInfo.Padding = new System.Windows.Forms.Padding(3); + this.tabPageLibraryInfo.Size = new System.Drawing.Size(1870, 749); + this.tabPageLibraryInfo.TabIndex = 14; + this.tabPageLibraryInfo.Text = "Library Info"; + this.tabPageLibraryInfo.UseVisualStyleBackColor = true; + // + // tlpLibraryInfo + // + this.tlpLibraryInfo.AutoScroll = true; + this.tlpLibraryInfo.ColumnCount = 2; + this.tlpLibraryInfo.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tlpLibraryInfo.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tlpLibraryInfo.Controls.Add(this.CbLibraryInfoUseFilter, 1, 0); + this.tlpLibraryInfo.Controls.Add(this.BtCopyLibraryColorToClipboard, 0, 0); + this.tlpLibraryInfo.Dock = System.Windows.Forms.DockStyle.Fill; + this.tlpLibraryInfo.Location = new System.Drawing.Point(3, 3); + this.tlpLibraryInfo.Name = "tlpLibraryInfo"; + this.tlpLibraryInfo.RowCount = 1; + this.tlpLibraryInfo.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tlpLibraryInfo.Size = new System.Drawing.Size(1864, 743); + this.tlpLibraryInfo.TabIndex = 0; + // + // BtCopyLibraryColorToClipboard + // + this.BtCopyLibraryColorToClipboard.Location = new System.Drawing.Point(3, 3); + this.BtCopyLibraryColorToClipboard.Name = "BtCopyLibraryColorToClipboard"; + this.BtCopyLibraryColorToClipboard.Size = new System.Drawing.Size(214, 23); + this.BtCopyLibraryColorToClipboard.TabIndex = 0; + this.BtCopyLibraryColorToClipboard.Text = "Copy this text to the clipboard"; + this.BtCopyLibraryColorToClipboard.UseVisualStyleBackColor = true; + this.BtCopyLibraryColorToClipboard.Click += new System.EventHandler(this.BtCopyLibraryColorToClipboard_Click); + // + // CbLibraryInfoUseFilter + // + this.CbLibraryInfoUseFilter.AutoSize = true; + this.CbLibraryInfoUseFilter.Location = new System.Drawing.Point(223, 3); + this.CbLibraryInfoUseFilter.Name = "CbLibraryInfoUseFilter"; + this.CbLibraryInfoUseFilter.Size = new System.Drawing.Size(97, 17); + this.CbLibraryInfoUseFilter.TabIndex = 1; + this.CbLibraryInfoUseFilter.Text = "Use library filter"; + this.CbLibraryInfoUseFilter.UseVisualStyleBackColor = true; + this.CbLibraryInfoUseFilter.CheckedChanged += new System.EventHandler(this.CbLibraryInfoUseFilter_CheckedChanged); // // tabPagePedigree // @@ -2778,16 +2572,6 @@ private void InitializeComponent() this.tabPagePedigree.Text = "Pedigree"; this.tabPagePedigree.UseVisualStyleBackColor = true; // - // pedigree1 - // - this.pedigree1.AutoScroll = true; - this.pedigree1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pedigree1.LeftColumnWidth = 203; - this.pedigree1.Location = new System.Drawing.Point(3, 3); - this.pedigree1.Name = "pedigree1"; - this.pedigree1.Size = new System.Drawing.Size(1864, 743); - this.pedigree1.TabIndex = 0; - // // tabPageTaming // this.tabPageTaming.Controls.Add(this.tamingControl1); @@ -2799,24 +2583,6 @@ private void InitializeComponent() this.tabPageTaming.Text = "Taming"; this.tabPageTaming.UseVisualStyleBackColor = true; // - // tamingControl1 - // - this.tamingControl1.AutoScroll = true; - this.tamingControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tamingControl1.Location = new System.Drawing.Point(3, 3); - this.tamingControl1.Name = "tamingControl1"; - this.tamingControl1.Size = new System.Drawing.Size(1864, 743); - this.tamingControl1.TabIndex = 0; - this.tamingControl1.WeaponDamages = new double[] { - 100D, - 100D, - 100D, - 100D, - 100D, - 100D, - 100D}; - this.tamingControl1.WeaponDamagesEnabled = 3; - // // tabPageBreedingPlan // this.tabPageBreedingPlan.Controls.Add(this.breedingPlan1); @@ -2828,17 +2594,6 @@ private void InitializeComponent() this.tabPageBreedingPlan.Text = "Breeding Plan"; this.tabPageBreedingPlan.UseVisualStyleBackColor = true; // - // breedingPlan1 - // - this.breedingPlan1.AutoScroll = true; - this.breedingPlan1.CurrentSpecies = null; - this.breedingPlan1.Dock = System.Windows.Forms.DockStyle.Fill; - this.breedingPlan1.Location = new System.Drawing.Point(3, 3); - this.breedingPlan1.MutationLimit = 0; - this.breedingPlan1.Name = "breedingPlan1"; - this.breedingPlan1.Size = new System.Drawing.Size(1864, 743); - this.breedingPlan1.TabIndex = 0; - // // tabPageHatching // this.tabPageHatching.Controls.Add(this.hatching1); @@ -2850,14 +2605,6 @@ private void InitializeComponent() this.tabPageHatching.Text = "Hatching"; this.tabPageHatching.UseVisualStyleBackColor = true; // - // hatching1 - // - this.hatching1.Dock = System.Windows.Forms.DockStyle.Fill; - this.hatching1.Location = new System.Drawing.Point(3, 3); - this.hatching1.Name = "hatching1"; - this.hatching1.Size = new System.Drawing.Size(1864, 743); - this.hatching1.TabIndex = 0; - // // tabPageRaising // this.tabPageRaising.Controls.Add(this.raisingControl1); @@ -2869,15 +2616,6 @@ private void InitializeComponent() this.tabPageRaising.Text = "Raising"; this.tabPageRaising.UseVisualStyleBackColor = true; // - // raisingControl1 - // - this.raisingControl1.AutoScroll = true; - this.raisingControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.raisingControl1.Location = new System.Drawing.Point(3, 3); - this.raisingControl1.Name = "raisingControl1"; - this.raisingControl1.Size = new System.Drawing.Size(1864, 743); - this.raisingControl1.TabIndex = 0; - // // tabPageTimer // this.tabPageTimer.Controls.Add(this.timerList1); @@ -2889,15 +2627,6 @@ private void InitializeComponent() this.tabPageTimer.Text = "Timer"; this.tabPageTimer.UseVisualStyleBackColor = true; // - // timerList1 - // - this.timerList1.Dock = System.Windows.Forms.DockStyle.Fill; - this.timerList1.Location = new System.Drawing.Point(3, 3); - this.timerList1.Name = "timerList1"; - this.timerList1.Size = new System.Drawing.Size(1864, 743); - this.timerList1.TabIndex = 0; - this.timerList1.TimerAlertsCSV = ""; - // // tabPagePlayerTribes // this.tabPagePlayerTribes.Controls.Add(this.tribesControl1); @@ -2909,14 +2638,6 @@ private void InitializeComponent() this.tabPagePlayerTribes.Text = "Player"; this.tabPagePlayerTribes.UseVisualStyleBackColor = true; // - // tribesControl1 - // - this.tribesControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tribesControl1.Location = new System.Drawing.Point(3, 3); - this.tribesControl1.Name = "tribesControl1"; - this.tribesControl1.Size = new System.Drawing.Size(1864, 743); - this.tribesControl1.TabIndex = 0; - // // tabPageNotes // this.tabPageNotes.Controls.Add(this.notesControl1); @@ -2928,14 +2649,6 @@ private void InitializeComponent() this.tabPageNotes.Text = "Notes"; this.tabPageNotes.UseVisualStyleBackColor = true; // - // notesControl1 - // - this.notesControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.notesControl1.Location = new System.Drawing.Point(3, 3); - this.notesControl1.Name = "notesControl1"; - this.notesControl1.Size = new System.Drawing.Size(1864, 743); - this.notesControl1.TabIndex = 0; - // // TabPageOCR // this.TabPageOCR.Controls.Add(this.ocrControl1); @@ -2947,14 +2660,6 @@ private void InitializeComponent() this.TabPageOCR.Text = "Experimental OCR"; this.TabPageOCR.UseVisualStyleBackColor = true; // - // ocrControl1 - // - this.ocrControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.ocrControl1.Location = new System.Drawing.Point(3, 3); - this.ocrControl1.Name = "ocrControl1"; - this.ocrControl1.Size = new System.Drawing.Size(1864, 743); - this.ocrControl1.TabIndex = 2; - // // tabPageExtractionTests // this.tabPageExtractionTests.Controls.Add(this.extractionTestControl1); @@ -2966,14 +2671,6 @@ private void InitializeComponent() this.tabPageExtractionTests.Text = "Extraction Tests"; this.tabPageExtractionTests.UseVisualStyleBackColor = true; // - // extractionTestControl1 - // - this.extractionTestControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.extractionTestControl1.Location = new System.Drawing.Point(3, 3); - this.extractionTestControl1.Name = "extractionTestControl1"; - this.extractionTestControl1.Size = new System.Drawing.Size(1864, 743); - this.extractionTestControl1.TabIndex = 0; - // // tabPageMultiplierTesting // this.tabPageMultiplierTesting.Controls.Add(this.statsMultiplierTesting1); @@ -2985,14 +2682,6 @@ private void InitializeComponent() this.tabPageMultiplierTesting.Text = "Multiplier Testing"; this.tabPageMultiplierTesting.UseVisualStyleBackColor = true; // - // statsMultiplierTesting1 - // - this.statsMultiplierTesting1.Dock = System.Windows.Forms.DockStyle.Fill; - this.statsMultiplierTesting1.Location = new System.Drawing.Point(3, 3); - this.statsMultiplierTesting1.Name = "statsMultiplierTesting1"; - this.statsMultiplierTesting1.Size = new System.Drawing.Size(1864, 743); - this.statsMultiplierTesting1.TabIndex = 0; - // // btReadValuesFromArk // this.btReadValuesFromArk.Location = new System.Drawing.Point(262, 3); @@ -3365,18 +3054,6 @@ private void InitializeComponent() this.pbSpecies.TabStop = false; this.pbSpecies.Click += new System.EventHandler(this.pbSpecies_Click); // - // tbSpeciesGlobal - // - this.tbSpeciesGlobal.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append; - this.tbSpeciesGlobal.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource; - this.tbSpeciesGlobal.Location = new System.Drawing.Point(104, 3); - this.tbSpeciesGlobal.Name = "tbSpeciesGlobal"; - this.tbSpeciesGlobal.Size = new System.Drawing.Size(152, 20); - this.tbSpeciesGlobal.TabIndex = 8; - this.tbSpeciesGlobal.Click += new System.EventHandler(this.tbSpeciesGlobal_Click); - this.tbSpeciesGlobal.Enter += new System.EventHandler(this.tbSpeciesGlobal_Enter); - this.tbSpeciesGlobal.KeyUp += new System.Windows.Forms.KeyEventHandler(this.TbSpeciesGlobal_KeyUp); - // // cbGuessSpecies // this.cbGuessSpecies.AutoSize = true; @@ -3445,69 +3122,424 @@ private void InitializeComponent() this.toolStripMenuItemResetLibraryColumnWidths.Text = "Reset column width"; this.toolStripMenuItemResetLibraryColumnWidths.Click += new System.EventHandler(this.toolStripMenuItemResetLibraryColumnWidths_Click); // - // speciesSelector1 + // statPotentials1 // - this.speciesSelector1.Dock = System.Windows.Forms.DockStyle.Fill; - this.speciesSelector1.LastSpecies = new string[0]; - this.speciesSelector1.Location = new System.Drawing.Point(0, 103); - this.speciesSelector1.Name = "speciesSelector1"; - this.speciesSelector1.Size = new System.Drawing.Size(1878, 775); - this.speciesSelector1.SplitterDistance = 500; - this.speciesSelector1.TabIndex = 0; + this.statPotentials1.Location = new System.Drawing.Point(808, 9); + this.statPotentials1.Name = "statPotentials1"; + this.statPotentials1.Size = new System.Drawing.Size(293, 433); + this.statPotentials1.TabIndex = 12; // - // libraryToolStripMenuItem + // radarChart1 // - this.libraryToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.copyColorInformationToClipboardToolStripMenuItem}); - this.libraryToolStripMenuItem.Name = "libraryToolStripMenuItem"; - this.libraryToolStripMenuItem.Size = new System.Drawing.Size(55, 20); - this.libraryToolStripMenuItem.Text = "Library"; + this.radarChart1.Image = ((System.Drawing.Image)(resources.GetObject("radarChart1.Image"))); + this.radarChart1.Location = new System.Drawing.Point(6, 19); + this.radarChart1.Name = "radarChart1"; + this.radarChart1.Size = new System.Drawing.Size(200, 200); + this.radarChart1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.radarChart1.TabIndex = 10; + this.radarChart1.TabStop = false; // - // copyColorInformationToClipboardToolStripMenuItem + // numericUpDownImprintingBonusTester // - this.copyColorInformationToClipboardToolStripMenuItem.Name = "copyColorInformationToClipboardToolStripMenuItem"; - this.copyColorInformationToClipboardToolStripMenuItem.Size = new System.Drawing.Size(265, 22); - this.copyColorInformationToClipboardToolStripMenuItem.Text = "Copy color information to clipboard"; - this.copyColorInformationToClipboardToolStripMenuItem.Click += new System.EventHandler(this.copyColorInformationToClipboardToolStripMenuItem_Click); + this.numericUpDownImprintingBonusTester.DecimalPlaces = 5; + this.numericUpDownImprintingBonusTester.Enabled = false; + this.numericUpDownImprintingBonusTester.ForeColor = System.Drawing.SystemColors.GrayText; + this.numericUpDownImprintingBonusTester.Location = new System.Drawing.Point(6, 45); + this.numericUpDownImprintingBonusTester.Maximum = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + this.numericUpDownImprintingBonusTester.Name = "numericUpDownImprintingBonusTester"; + this.numericUpDownImprintingBonusTester.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.numericUpDownImprintingBonusTester.Size = new System.Drawing.Size(75, 20); + this.numericUpDownImprintingBonusTester.TabIndex = 4; + this.numericUpDownImprintingBonusTester.ValueChanged += new System.EventHandler(this.numericUpDownImprintingBonusTester_ValueChanged); // - // Form1 + // NumericUpDownTestingTE // - this.AcceptButton = this.btExtractLevels; - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1878, 900); - this.Controls.Add(this.tabControlMain); - this.Controls.Add(this.speciesSelector1); - this.Controls.Add(this.panelToolBar); - this.Controls.Add(this.toolStrip2); - this.Controls.Add(this.menuStrip1); - this.Controls.Add(this.statusStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.KeyPreview = true; - this.MainMenuStrip = this.menuStrip1; - this.Name = "Form1"; - this.Text = "ARK Smart Breeding"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); - this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed); - this.Load += new System.EventHandler(this.Form1_Load); - this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); - this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter); - this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); + this.NumericUpDownTestingTE.DecimalPlaces = 2; + this.NumericUpDownTestingTE.ForeColor = System.Drawing.SystemColors.WindowText; + this.NumericUpDownTestingTE.Location = new System.Drawing.Point(6, 19); + this.NumericUpDownTestingTE.Name = "NumericUpDownTestingTE"; + this.NumericUpDownTestingTE.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.NumericUpDownTestingTE.Size = new System.Drawing.Size(60, 20); + this.NumericUpDownTestingTE.TabIndex = 0; + this.NumericUpDownTestingTE.Value = new decimal(new int[] { + 80, + 0, + 0, + 0}); + this.NumericUpDownTestingTE.ValueChanged += new System.EventHandler(this.NumericUpDownTestingTE_ValueChanged); + // + // creatureInfoInputTester + // + this.creatureInfoInputTester.ColorIdsAlsoPossible = null; + this.creatureInfoInputTester.CooldownUntil = null; + this.creatureInfoInputTester.CreatureFlags = ARKBreedingStats.Library.CreatureFlags.None; + this.creatureInfoInputTester.CreatureName = ""; + this.creatureInfoInputTester.CreatureNote = ""; + this.creatureInfoInputTester.CreatureOwner = ""; + this.creatureInfoInputTester.CreatureServer = ""; + this.creatureInfoInputTester.CreatureSex = ARKBreedingStats.Library.Sex.Unknown; + this.creatureInfoInputTester.CreatureStatus = ARKBreedingStats.Library.CreatureStatus.Available; + this.creatureInfoInputTester.CreatureTribe = ""; + this.creatureInfoInputTester.DomesticatedAt = new System.DateTime(2014, 12, 31, 0, 0, 0, 0); + this.creatureInfoInputTester.Father = null; + this.creatureInfoInputTester.GrowingUntil = null; + this.creatureInfoInputTester.Location = new System.Drawing.Point(321, 184); + this.creatureInfoInputTester.LockServer = false; + this.creatureInfoInputTester.Mother = null; + this.creatureInfoInputTester.MutationCounterFather = 0; + this.creatureInfoInputTester.MutationCounterMother = 0; + this.creatureInfoInputTester.Name = "creatureInfoInputTester"; + this.creatureInfoInputTester.OwnerLock = false; + this.creatureInfoInputTester.RegionColors = new byte[] { + ((byte)(0)), + ((byte)(0)), + ((byte)(0)), + ((byte)(0)), + ((byte)(0)), + ((byte)(0))}; + this.creatureInfoInputTester.Size = new System.Drawing.Size(262, 590); + this.creatureInfoInputTester.TabIndex = 4; + this.creatureInfoInputTester.TribeLock = false; + this.creatureInfoInputTester.Add2LibraryClicked += new System.Action(this.creatureInfoInputTester_Add2Library_Clicked); + this.creatureInfoInputTester.Save2LibraryClicked += new System.Action(this.creatureInfoInputTester_Save2Library_Clicked); + this.creatureInfoInputTester.ParentListRequested += new System.Action(this.CreatureInfoInput_ParentListRequested); + // + // creatureAnalysis1 + // + this.creatureAnalysis1.Location = new System.Drawing.Point(851, 265); + this.creatureAnalysis1.Name = "creatureAnalysis1"; + this.creatureAnalysis1.Size = new System.Drawing.Size(346, 199); + this.creatureAnalysis1.TabIndex = 55; + // + // radarChartExtractor + // + this.radarChartExtractor.Dock = System.Windows.Forms.DockStyle.Fill; + this.radarChartExtractor.Image = ((System.Drawing.Image)(resources.GetObject("radarChartExtractor.Image"))); + this.radarChartExtractor.Location = new System.Drawing.Point(3, 16); + this.radarChartExtractor.Name = "radarChartExtractor"; + this.radarChartExtractor.Size = new System.Drawing.Size(144, 144); + this.radarChartExtractor.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.radarChartExtractor.TabIndex = 10; + this.radarChartExtractor.TabStop = false; + // + // numericUpDownImprintingBonusExtractor + // + this.numericUpDownImprintingBonusExtractor.DecimalPlaces = 5; + this.numericUpDownImprintingBonusExtractor.ForeColor = System.Drawing.SystemColors.GrayText; + this.numericUpDownImprintingBonusExtractor.Location = new System.Drawing.Point(3, 3); + this.numericUpDownImprintingBonusExtractor.Maximum = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + this.numericUpDownImprintingBonusExtractor.Name = "numericUpDownImprintingBonusExtractor"; + this.numericUpDownImprintingBonusExtractor.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.numericUpDownImprintingBonusExtractor.Size = new System.Drawing.Size(77, 20); + this.numericUpDownImprintingBonusExtractor.TabIndex = 6; + this.numericUpDownImprintingBonusExtractor.ValueChanged += new System.EventHandler(this.numericUpDownImprintingBonusExtractor_ValueChanged); + this.numericUpDownImprintingBonusExtractor.Enter += new System.EventHandler(this.numericUpDown_Enter); + // + // numericUpDownUpperTEffBound + // + this.numericUpDownUpperTEffBound.ForeColor = System.Drawing.SystemColors.WindowText; + this.numericUpDownUpperTEffBound.Location = new System.Drawing.Point(147, 3); + this.numericUpDownUpperTEffBound.Name = "numericUpDownUpperTEffBound"; + this.numericUpDownUpperTEffBound.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.numericUpDownUpperTEffBound.Size = new System.Drawing.Size(45, 20); + this.numericUpDownUpperTEffBound.TabIndex = 3; + this.numericUpDownUpperTEffBound.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.numericUpDownUpperTEffBound.Enter += new System.EventHandler(this.numericUpDown_Enter); + // + // numericUpDownLowerTEffBound + // + this.numericUpDownLowerTEffBound.ForeColor = System.Drawing.SystemColors.WindowText; + this.numericUpDownLowerTEffBound.Location = new System.Drawing.Point(80, 3); + this.numericUpDownLowerTEffBound.Name = "numericUpDownLowerTEffBound"; + this.numericUpDownLowerTEffBound.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.numericUpDownLowerTEffBound.Size = new System.Drawing.Size(45, 20); + this.numericUpDownLowerTEffBound.TabIndex = 1; + this.numericUpDownLowerTEffBound.Value = new decimal(new int[] { + 80, + 0, + 0, + 0}); + this.numericUpDownLowerTEffBound.Enter += new System.EventHandler(this.numericUpDown_Enter); + // + // parentInheritanceExtractor + // + this.parentInheritanceExtractor.Location = new System.Drawing.Point(851, 470); + this.parentInheritanceExtractor.Name = "parentInheritanceExtractor"; + this.parentInheritanceExtractor.Size = new System.Drawing.Size(337, 182); + this.parentInheritanceExtractor.TabIndex = 52; + // + // numericUpDownLevel + // + this.numericUpDownLevel.ForeColor = System.Drawing.SystemColors.WindowText; + this.numericUpDownLevel.Location = new System.Drawing.Point(244, 9); + this.numericUpDownLevel.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.numericUpDownLevel.Name = "numericUpDownLevel"; + this.numericUpDownLevel.NeutralNumber = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.numericUpDownLevel.Size = new System.Drawing.Size(56, 20); + this.numericUpDownLevel.TabIndex = 2; + this.numericUpDownLevel.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDownLevel.Enter += new System.EventHandler(this.numericUpDown_Enter); + // + // creatureInfoInputExtractor + // + this.creatureInfoInputExtractor.ColorIdsAlsoPossible = null; + this.creatureInfoInputExtractor.CooldownUntil = null; + this.creatureInfoInputExtractor.CreatureFlags = ARKBreedingStats.Library.CreatureFlags.None; + this.creatureInfoInputExtractor.CreatureName = ""; + this.creatureInfoInputExtractor.CreatureNote = ""; + this.creatureInfoInputExtractor.CreatureOwner = ""; + this.creatureInfoInputExtractor.CreatureServer = ""; + this.creatureInfoInputExtractor.CreatureSex = ARKBreedingStats.Library.Sex.Unknown; + this.creatureInfoInputExtractor.CreatureStatus = ARKBreedingStats.Library.CreatureStatus.Available; + this.creatureInfoInputExtractor.CreatureTribe = ""; + this.creatureInfoInputExtractor.DomesticatedAt = new System.DateTime(2014, 12, 31, 0, 0, 0, 0); + this.creatureInfoInputExtractor.Father = null; + this.creatureInfoInputExtractor.GrowingUntil = null; + this.creatureInfoInputExtractor.Location = new System.Drawing.Point(321, 184); + this.creatureInfoInputExtractor.LockServer = false; + this.creatureInfoInputExtractor.Mother = null; + this.creatureInfoInputExtractor.MutationCounterFather = 0; + this.creatureInfoInputExtractor.MutationCounterMother = 0; + this.creatureInfoInputExtractor.Name = "creatureInfoInputExtractor"; + this.creatureInfoInputExtractor.OwnerLock = false; + this.creatureInfoInputExtractor.RegionColors = new byte[] { + ((byte)(0)), + ((byte)(0)), + ((byte)(0)), + ((byte)(0)), + ((byte)(0)), + ((byte)(0))}; + this.creatureInfoInputExtractor.Size = new System.Drawing.Size(262, 590); + this.creatureInfoInputExtractor.TabIndex = 7; + this.creatureInfoInputExtractor.TribeLock = false; + this.creatureInfoInputExtractor.Add2LibraryClicked += new System.Action(this.creatureInfoInputExtractor_Add2Library_Clicked); + this.creatureInfoInputExtractor.ParentListRequested += new System.Action(this.CreatureInfoInput_ParentListRequested); + // + // radarChartLibrary + // + this.radarChartLibrary.Dock = System.Windows.Forms.DockStyle.Top; + this.radarChartLibrary.Image = ((System.Drawing.Image)(resources.GetObject("radarChartLibrary.Image"))); + this.radarChartLibrary.Location = new System.Drawing.Point(3, 3); + this.radarChartLibrary.Name = "radarChartLibrary"; + this.radarChartLibrary.Size = new System.Drawing.Size(175, 287); + this.radarChartLibrary.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.radarChartLibrary.TabIndex = 0; + this.radarChartLibrary.TabStop = false; + // + // creatureBoxListView + // + this.creatureBoxListView.Location = new System.Drawing.Point(3, 3); + this.creatureBoxListView.Name = "creatureBoxListView"; + this.creatureBoxListView.Size = new System.Drawing.Size(189, 406); + this.creatureBoxListView.TabIndex = 0; + this.creatureBoxListView.Changed += new System.Action(this.UpdateDisplayedCreatureValues); + this.creatureBoxListView.GiveParents += new System.Action(this.CreatureBoxListView_FindParents); + this.creatureBoxListView.SelectCreature += new System.Action(this.SelectCreatureInLibrary); + // + // pedigree1 + // + this.pedigree1.AutoScroll = true; + this.pedigree1.Dock = System.Windows.Forms.DockStyle.Fill; + this.pedigree1.LeftColumnWidth = 203; + this.pedigree1.Location = new System.Drawing.Point(3, 3); + this.pedigree1.Name = "pedigree1"; + this.pedigree1.Size = new System.Drawing.Size(1864, 743); + this.pedigree1.TabIndex = 0; + // + // tamingControl1 + // + this.tamingControl1.AutoScroll = true; + this.tamingControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tamingControl1.Location = new System.Drawing.Point(3, 3); + this.tamingControl1.Name = "tamingControl1"; + this.tamingControl1.Size = new System.Drawing.Size(1864, 743); + this.tamingControl1.TabIndex = 0; + this.tamingControl1.WeaponDamages = new double[] { + 100D, + 100D, + 100D, + 100D, + 100D, + 100D, + 100D}; + this.tamingControl1.WeaponDamagesEnabled = 3; + // + // breedingPlan1 + // + this.breedingPlan1.AutoScroll = true; + this.breedingPlan1.CurrentSpecies = null; + this.breedingPlan1.Dock = System.Windows.Forms.DockStyle.Fill; + this.breedingPlan1.Location = new System.Drawing.Point(3, 3); + this.breedingPlan1.MutationLimit = 0; + this.breedingPlan1.Name = "breedingPlan1"; + this.breedingPlan1.Size = new System.Drawing.Size(1864, 743); + this.breedingPlan1.TabIndex = 0; + // + // hatching1 + // + this.hatching1.Dock = System.Windows.Forms.DockStyle.Fill; + this.hatching1.Location = new System.Drawing.Point(3, 3); + this.hatching1.Name = "hatching1"; + this.hatching1.Size = new System.Drawing.Size(1864, 743); + this.hatching1.TabIndex = 0; + // + // raisingControl1 + // + this.raisingControl1.AutoScroll = true; + this.raisingControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.raisingControl1.Location = new System.Drawing.Point(3, 3); + this.raisingControl1.Name = "raisingControl1"; + this.raisingControl1.Size = new System.Drawing.Size(1864, 743); + this.raisingControl1.TabIndex = 0; + // + // timerList1 + // + this.timerList1.Dock = System.Windows.Forms.DockStyle.Fill; + this.timerList1.Location = new System.Drawing.Point(3, 3); + this.timerList1.Name = "timerList1"; + this.timerList1.Size = new System.Drawing.Size(1864, 743); + this.timerList1.TabIndex = 0; + this.timerList1.TimerAlertsCSV = ""; + // + // tribesControl1 + // + this.tribesControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tribesControl1.Location = new System.Drawing.Point(3, 3); + this.tribesControl1.Name = "tribesControl1"; + this.tribesControl1.Size = new System.Drawing.Size(1864, 743); + this.tribesControl1.TabIndex = 0; + // + // notesControl1 + // + this.notesControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.notesControl1.Location = new System.Drawing.Point(3, 3); + this.notesControl1.Name = "notesControl1"; + this.notesControl1.Size = new System.Drawing.Size(1864, 743); + this.notesControl1.TabIndex = 0; + // + // ocrControl1 + // + this.ocrControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.ocrControl1.Location = new System.Drawing.Point(3, 3); + this.ocrControl1.Name = "ocrControl1"; + this.ocrControl1.Size = new System.Drawing.Size(1864, 743); + this.ocrControl1.TabIndex = 2; + // + // extractionTestControl1 + // + this.extractionTestControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.extractionTestControl1.Location = new System.Drawing.Point(3, 3); + this.extractionTestControl1.Name = "extractionTestControl1"; + this.extractionTestControl1.Size = new System.Drawing.Size(1864, 743); + this.extractionTestControl1.TabIndex = 0; + // + // statsMultiplierTesting1 + // + this.statsMultiplierTesting1.Dock = System.Windows.Forms.DockStyle.Fill; + this.statsMultiplierTesting1.Location = new System.Drawing.Point(3, 3); + this.statsMultiplierTesting1.Name = "statsMultiplierTesting1"; + this.statsMultiplierTesting1.Size = new System.Drawing.Size(1864, 743); + this.statsMultiplierTesting1.TabIndex = 0; + // + // speciesSelector1 + // + this.speciesSelector1.Dock = System.Windows.Forms.DockStyle.Fill; + this.speciesSelector1.LastSpecies = new string[0]; + this.speciesSelector1.Location = new System.Drawing.Point(0, 103); + this.speciesSelector1.Name = "speciesSelector1"; + this.speciesSelector1.Size = new System.Drawing.Size(1878, 775); + this.speciesSelector1.SplitterDistance = 500; + this.speciesSelector1.TabIndex = 0; + // + // tbSpeciesGlobal + // + this.tbSpeciesGlobal.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append; + this.tbSpeciesGlobal.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource; + this.tbSpeciesGlobal.Location = new System.Drawing.Point(104, 3); + this.tbSpeciesGlobal.Name = "tbSpeciesGlobal"; + this.tbSpeciesGlobal.Size = new System.Drawing.Size(152, 20); + this.tbSpeciesGlobal.TabIndex = 8; + this.tbSpeciesGlobal.Click += new System.EventHandler(this.tbSpeciesGlobal_Click); + this.tbSpeciesGlobal.Enter += new System.EventHandler(this.tbSpeciesGlobal_Enter); + this.tbSpeciesGlobal.KeyUp += new System.Windows.Forms.KeyEventHandler(this.TbSpeciesGlobal_KeyUp); + // + // Form1 + // + this.AcceptButton = this.btExtractLevels; + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1878, 900); + this.Controls.Add(this.tabControlMain); + this.Controls.Add(this.speciesSelector1); + this.Controls.Add(this.panelToolBar); + this.Controls.Add(this.toolStrip2); + this.Controls.Add(this.menuStrip1); + this.Controls.Add(this.statusStrip1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.MainMenuStrip = this.menuStrip1; + this.Name = "Form1"; + this.Text = "ARK Smart Breeding"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed); + this.Load += new System.EventHandler(this.Form1_Load); + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); + this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyUp); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownImprintingBonusTester)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NumericUpDownTestingTE)).EndInit(); this.groupBoxPossibilities.ResumeLayout(false); this.groupBoxDetailsExtractor.ResumeLayout(false); this.panelExtrImpr.ResumeLayout(false); this.panelExtrImpr.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownImprintingBonusExtractor)).EndInit(); this.panelExtrTE.ResumeLayout(false); this.panelExtrTE.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownUpperTEffBound)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLowerTEffBound)).EndInit(); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); this.panelSums.ResumeLayout(false); @@ -3518,7 +3550,6 @@ private void InitializeComponent() this.tabPageStatTesting.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pictureBoxColorRegionsTester)).EndInit(); this.gbStatChart.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.radarChart1)).EndInit(); this.panelWildTamedBredTester.ResumeLayout(false); this.panelWildTamedBredTester.PerformLayout(); this.groupBox2.ResumeLayout(false); @@ -3533,13 +3564,11 @@ private void InitializeComponent() this.tabPageExtractor.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.PbCreatureColorsExtractor)).EndInit(); this.groupBoxRadarChartExtractor.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.radarChartExtractor)).EndInit(); this.groupBoxTamingInfo.ResumeLayout(false); this.gbStatsExtractor.ResumeLayout(false); this.flowLayoutPanelStatIOsExtractor.ResumeLayout(false); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLevel)).EndInit(); this.tabPageLibrary.ResumeLayout(false); this.tableLayoutPanelLibrary.ResumeLayout(false); this.contextMenuStripLibrary.ResumeLayout(false); @@ -3550,7 +3579,9 @@ private void InitializeComponent() this.tableLayoutPanel2.ResumeLayout(false); this.tableLayoutPanel2.PerformLayout(); this.tabPageLibRadarChart.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.radarChartLibrary)).EndInit(); + this.tabPageLibraryInfo.ResumeLayout(false); + this.tlpLibraryInfo.ResumeLayout(false); + this.tlpLibraryInfo.PerformLayout(); this.tabPagePedigree.ResumeLayout(false); this.tabPageTaming.ResumeLayout(false); this.tabPageBreedingPlan.ResumeLayout(false); @@ -3570,6 +3601,15 @@ private void InitializeComponent() this.panelToolBar.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbSpecies)).EndInit(); this.contextMenuStripLibraryHeader.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.radarChart1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownImprintingBonusTester)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NumericUpDownTestingTE)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radarChartExtractor)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownImprintingBonusExtractor)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownUpperTEffBound)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLowerTEffBound)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLevel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radarChartLibrary)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -3894,7 +3934,9 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripLabel TsLbLabelSet; private System.Windows.Forms.ToolStripComboBox TsCbbLabelSets; private System.Windows.Forms.Label LbWarningLevel255; - private System.Windows.Forms.ToolStripMenuItem libraryToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem copyColorInformationToClipboardToolStripMenuItem; + private System.Windows.Forms.TabPage tabPageLibraryInfo; + private System.Windows.Forms.TableLayoutPanel tlpLibraryInfo; + private System.Windows.Forms.Button BtCopyLibraryColorToClipboard; + private System.Windows.Forms.CheckBox CbLibraryInfoUseFilter; } } diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs index fdd88e10..ba901165 100644 --- a/ARKBreedingStats/Form1.cs +++ b/ARKBreedingStats/Form1.cs @@ -222,6 +222,8 @@ private void Form1_Load(object sender, EventArgs e) LoadListViewSettings(tribesControl1.ListViewPlayers, "PlayerListColumnWidths", "PlayerListColumnDisplayIndices", "PlayerListSortColumn", "PlayerListSortAsc"); + CbLibraryInfoUseFilter.Checked = Properties.Settings.Default.LibraryColorInfoUseFilter; + // load stat weights double[][] custWd = Properties.Settings.Default.customStatWeights; string[] custWs = Properties.Settings.Default.customStatWeightNames; @@ -674,6 +676,10 @@ private void SpeciesSelector1OnSpeciesSelected(bool speciesChanged) if (Properties.Settings.Default.ApplyGlobalSpeciesToLibrary) listBoxSpeciesLib.SelectedItem = species; } + else if (tabControlMain.SelectedTab == tabPageLibraryInfo) + { + LibraryInfo.SetColorInfo(speciesSelector1.SelectedSpecies, CbLibraryInfoUseFilter.Checked ? (IList)ApplyLibraryFilterSettings(_creatureCollection.creatures).ToArray() : _creatureCollection.creatures, CbLibraryInfoUseFilter.Checked, tlpLibraryInfo); + } else if (tabControlMain.SelectedTab == tabPagePedigree) { pedigree1.SetSpecies(species); @@ -920,6 +926,7 @@ private void UpdateCreatureListings(Species species = null, bool keepCurrentlySe breedingPlan1.BreedingPlanNeedsUpdate = true; pedigree1.SetSpecies(forceUpdate: true); raisingControl1.RecreateList(); + LibraryInfo.ClearInfo(); } /// @@ -1292,6 +1299,7 @@ private void Form1_FormClosed(object sender, FormClosedEventArgs e) Properties.Settings.Default.DisabledVariants = speciesSelector1.VariantSelector?.DisabledVariants?.ToArray(); Properties.Settings.Default.RaisingFoodLastSelected = raisingControl1.LastSelectedFood; + Properties.Settings.Default.LibraryColorInfoUseFilter = CbLibraryInfoUseFilter.Checked; /////// save settings for next session Properties.Settings.Default.Save(); @@ -1519,6 +1527,10 @@ private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) else if (_libraryNeedsUpdate) FilterLibRecalculate(); } + else if (tabControlMain.SelectedTab == tabPageLibraryInfo) + { + LibraryInfo.SetColorInfo(speciesSelector1.SelectedSpecies, CbLibraryInfoUseFilter.Checked ? (IList)ApplyLibraryFilterSettings(_creatureCollection.creatures).ToArray() : _creatureCollection.creatures, CbLibraryInfoUseFilter.Checked, tlpLibraryInfo); + } else if (tabControlMain.SelectedTab == tabPagePedigree) { pedigree1.SetSpeciesIfNotSet(speciesSelector1.SelectedSpecies); @@ -3630,11 +3642,17 @@ private void colorDefinitionsToClipboardToolStripMenuItem_Click(object sender, E Clipboard.SetText(string.Join("\n", Values.V.Colors.ColorsList.Select(c => $"{c.Id,3}: {c}"))); } - private void copyColorInformationToClipboardToolStripMenuItem_Click(object sender, EventArgs e) + private void BtCopyLibraryColorToClipboard_Click(object sender, EventArgs e) { - var colorInfo = _creatureCollection.GetColorInfo(speciesSelector1.SelectedSpecies); + LibraryInfo.SetColorInfo(speciesSelector1.SelectedSpecies, CbLibraryInfoUseFilter.Checked ? (IList)ApplyLibraryFilterSettings(_creatureCollection.creatures).ToArray() : _creatureCollection.creatures, CbLibraryInfoUseFilter.Checked); + var colorInfo = LibraryInfo.GetSpeciesInfo(); Clipboard.SetText(string.IsNullOrEmpty(colorInfo) ? $"no color info available for species {speciesSelector1.SelectedSpecies}" : colorInfo); SetMessageLabelText($"Color information about {speciesSelector1.SelectedSpecies} has been copied to the clipboard, you can paste it in a text editor to view it.", MessageBoxIcon.Information); } + + private void CbLibraryInfoUseFilter_CheckedChanged(object sender, EventArgs e) + { + LibraryInfo.SetColorInfo(speciesSelector1.SelectedSpecies, CbLibraryInfoUseFilter.Checked ? (IList)ApplyLibraryFilterSettings(_creatureCollection.creatures).ToArray() : _creatureCollection.creatures, CbLibraryInfoUseFilter.Checked, tlpLibraryInfo); + } } } diff --git a/ARKBreedingStats/Form1.importSave.cs b/ARKBreedingStats/Form1.importSave.cs index 3370a3e2..9c342adf 100644 --- a/ARKBreedingStats/Form1.importSave.cs +++ b/ARKBreedingStats/Form1.importSave.cs @@ -13,6 +13,7 @@ using System.Threading.Tasks; using System.Windows.Forms; using ARKBreedingStats.utils; +using FluentFTP.Exceptions; namespace ARKBreedingStats { @@ -176,7 +177,7 @@ await ImportSavegame.ImportCollectionFromSavegame(_creatureCollection, workingCo } } } - var client = new FtpClient(ftpUri.Host, ftpUri.Port, credentials.Username, credentials.Password); + var client = new AsyncFtpClient(ftpUri.Host, credentials.Username, credentials.Password, ftpUri.Port); string ftpPath = null; try @@ -193,7 +194,7 @@ await ImportSavegame.ImportCollectionFromSavegame(_creatureCollection, workingCo // TaskCanceledException // on cancelling it throws // Cannot access a disposed object. Object name: 'System.Net.Sockets.Socket'. - await client.ConnectAsync(token: cancellationTokenSource.Token); + await client.Connect(token: cancellationTokenSource.Token); progressDialog.StatusText = "Finding most recent file"; await Task.Yield(); @@ -219,7 +220,7 @@ await ImportSavegame.ImportCollectionFromSavegame(_creatureCollection, workingCo await Task.Yield(); var filePath = Path.Combine(workingCopyFolder, Path.GetFileName(ftpPath)); - await client.DownloadFileAsync(filePath, ftpPath, FtpLocalExists.Overwrite, FtpVerify.Retry, progressDialog, token: cancellationTokenSource.Token); + await client.DownloadFile(filePath, ftpPath, FtpLocalExists.Overwrite, FtpVerify.Retry, progressDialog, token: cancellationTokenSource.Token); await Task.Delay(500, cancellationTokenSource.Token); if (filePath.EndsWith(".gz")) @@ -302,10 +303,10 @@ private async Task DecompressGZippedFileAsync(string filePath, Cancellat return newFileName; } - public async Task GetLastModifiedFileAsync(FtpClient client, Uri ftpUri, string fileRegex, CancellationToken cancellationToken) + public async Task GetLastModifiedFileAsync(AsyncFtpClient client, Uri ftpUri, string fileRegex, CancellationToken cancellationToken) { var folderUri = new Uri(ftpUri, "."); - var listItems = await client.GetListingAsync(folderUri.AbsolutePath, cancellationToken); + var listItems = await client.GetListing(folderUri.AbsolutePath, cancellationToken); Regex fileNameRegex; if (!fileRegex.Contains("(?<")) diff --git a/ARKBreedingStats/Properties/AssemblyInfo.cs b/ARKBreedingStats/Properties/AssemblyInfo.cs index 229248a9..40c91200 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.50.9.0")] +[assembly: AssemblyFileVersion("0.50.10.0")] [assembly: NeutralResourcesLanguage("en")] diff --git a/ARKBreedingStats/Properties/Settings.Designer.cs b/ARKBreedingStats/Properties/Settings.Designer.cs index 80a7eaf9..77ef1643 100644 --- a/ARKBreedingStats/Properties/Settings.Designer.cs +++ b/ARKBreedingStats/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace ARKBreedingStats.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -2135,5 +2135,17 @@ public bool LibraryGroupBySpecies { this["LibraryGroupBySpecies"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool LibraryColorInfoUseFilter { + get { + return ((bool)(this["LibraryColorInfoUseFilter"])); + } + set { + this["LibraryColorInfoUseFilter"] = value; + } + } } } diff --git a/ARKBreedingStats/Properties/Settings.settings b/ARKBreedingStats/Properties/Settings.settings index 5e79fc5f..4ce4281e 100644 --- a/ARKBreedingStats/Properties/Settings.settings +++ b/ARKBreedingStats/Properties/Settings.settings @@ -536,5 +536,8 @@ True + + False + \ No newline at end of file diff --git a/ARKBreedingStats/_manifest.json b/ARKBreedingStats/_manifest.json index 9ae78413..d266529e 100644 --- a/ARKBreedingStats/_manifest.json +++ b/ARKBreedingStats/_manifest.json @@ -4,7 +4,7 @@ "ARK Smart Breeding": { "Id": "ARK Smart Breeding", "Category": "main", - "version": "0.50.9.0" + "version": "0.50.10.0" }, "SpeciesColorImages": { "Id": "SpeciesColorImages", diff --git a/ARKBreedingStats/json/values/_manifest.json b/ARKBreedingStats/json/values/_manifest.json index 6b24adba..e78231af 100644 --- a/ARKBreedingStats/json/values/_manifest.json +++ b/ARKBreedingStats/json/values/_manifest.json @@ -6,7 +6,7 @@ "mod": { "id": "1083349027", "tag": "SpeedyFlyers", "title": "Najs Speedy Flyers" } }, "1090809604-Pyria.json": { - "version": "351.6.1667005010", + "version": "356.5.1671741134.1", "mod": { "id": "1090809604", "tag": "Pyria", "title": "Pyria: Mythos Evolved" } }, "1092784125-Gryphons.json": { @@ -23,7 +23,7 @@ } }, "1125442531-Gaia.json": { - "version": "340.3.1630493486.1", + "version": "356.5.1630493486", "mod": { "id": "1125442531", "tag": "Gaia", "title": "Gaia" } }, "1136390783-PhoenixBreeding.json": { @@ -35,7 +35,7 @@ "mod": { "id": "1139775728", "tag": "Confuciusornis", "title": "Confuciusornis" } }, "1169020368-Trex.json": { - "version": "356.4.1675003923", + "version": "356.5.1675401434", "mod": { "id": "1169020368", "tag": "Trex", "title": "Ark Creature Rebalance (AG Reborn)" } }, "1178308359-ShadDragon.json": { @@ -72,7 +72,7 @@ "mod": { "id": "1356703358", "tag": "Primal_Fear_Noxious_Creatures", "title": "Primal Fear Noxious Creatures" } }, "1373744537-AC2.json": { - "version": "355.16.1674258851", + "version": "356.5.1675373582", "mod": { "id": "1373744537", "tag": "AC2", "title": "Additional Creatures 2: Wild Ark" } }, "1405944717-Project_Evolution.json": { @@ -104,11 +104,11 @@ "mod": { "id": "1523045986", "tag": "Paranoia", "title": "Additional Creatures 2: Paranoia!" } }, "1565015734-BetterDinosTest.json": { - "version": "348.7.1659637030", + "version": "356.5.1659982227", "mod": { "id": "1565015734", "tag": "BetterDinosTest", "title": "Better Dinos" } }, "1576299694-ElementalDinos.json": { - "version": "355.3.1667827331", + "version": "356.5.1667827331", "mod": { "id": "1576299694", "tag": "ElementalDinos", "title": "Elemental Ark" } }, "1587391872-FasterFlyers.json": { @@ -129,7 +129,7 @@ "mod": { "id": "1633860796", "tag": "DE_Breedable_RockDrakes", "title": "Dark Edges Breedable Rock Drakes" } }, "1652120435-AtlasPort.json": { - "version": "354.4.1669849853", + "version": "356.5.1672480004", "mod": { "id": "1652120435", "tag": "AtlasPort", "title": "Shad's Atlas Imports" } }, "1654255131-AtlasImports.json": { @@ -166,7 +166,7 @@ "mod": { "id": "1729512589", "tag": "Brachiosaurus", "title": "ARK Additions: Brachiosaurus!" } }, "1734595558-Pyria2.json": { - "version": "354.4.1669482607", + "version": "356.5.1669482607", "mod": { "id": "1734595558", "tag": "Pyria2", "title": "Pyria: The Second Chapter" } }, "1768499278-BalancedJPE.json": { @@ -235,7 +235,7 @@ "mod": { "id": "2000326197", "tag": "ExtraResources", "title": "Event Assets" } }, "2003934830-Beasts.json": { - "version": "355.16.1674245153", + "version": "356.5.1674614859", "mod": { "id": "2003934830", "tag": "Beasts", "title": "Prehistoric Beasts" } }, "2019846325-ApexMod.json": { @@ -259,7 +259,7 @@ "mod": { "id": "2117881804", "tag": "FiresFixes", "title": "Fire's Fixes" } }, "2135314513-CI_Dinos.json": { - "version": "340.3.1623948861", + "version": "356.5.1623948861", "mod": { "id": "2135314513", "tag": "CI_Dinos", "title": "Crystal Isles Dino Addition" } }, "2447186973-ArkOmega.json": { @@ -279,7 +279,7 @@ "mod": { "id": "814833973", "tag": "Wyvern_Mating", "title": "Wyvern Mating" } }, "839162288-Primal_Fear.json": { - "version": "345.19.1651177976", + "version": "356.5.1651177976", "mod": { "id": "839162288", "tag": "Primal_Fear", "title": "Primal Fear" } }, "883957187-WyvernWorld.json": { @@ -287,7 +287,7 @@ "mod": { "id": "883957187", "tag": "WyvernWorld", "title": "Wyvern World" } }, "893735676-AE.json": { - "version": "355.12.1672955615", + "version": "356.5.1672955615.1", "mod": { "id": "893735676", "tag": "AE", "title": "Ark Eternal" } }, "895711211-ClassicFlyers.json": { @@ -317,7 +317,7 @@ } }, "values.json": { - "version": "355.3.10136424" + "version": "356.5.10438696" } } } \ No newline at end of file diff --git a/ARKBreedingStats/json/values/values.json b/ARKBreedingStats/json/values/values.json index 06a079f4..9bff581a 100644 --- a/ARKBreedingStats/json/values/values.json +++ b/ARKBreedingStats/json/values/values.json @@ -1,5 +1,5 @@ { - "version": "355.3.10136424", + "version": "356.5.10438696", "format": "1.14-flyerspeed", "species": [ { @@ -3978,7 +3978,8 @@ "affinityIncreasePL": 160, "foodConsumptionBase": 0.002314, "foodConsumptionMult": 160.0563, - "babyFoodConsumptionMult": 900 + "babyFoodConsumptionMult": 900, + "adultFoodConsumptionMult": 3 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -4453,7 +4454,8 @@ "wakeFoodDeplMult": 2, "foodConsumptionBase": 0.1, "foodConsumptionMult": 13, - "babyFoodConsumptionMult": 510 + "babyFoodConsumptionMult": 510, + "adultFoodConsumptionMult": 0.1 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -4677,7 +4679,8 @@ "affinityIncreasePL": 5, "foodConsumptionBase": 0.1, "foodConsumptionMult": 13, - "babyFoodConsumptionMult": 510 + "babyFoodConsumptionMult": 510, + "adultFoodConsumptionMult": 0.1 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -5383,7 +5386,8 @@ "wakeFoodDeplMult": 2, "foodConsumptionBase": 0.1, "foodConsumptionMult": 13, - "babyFoodConsumptionMult": 510 + "babyFoodConsumptionMult": 510, + "adultFoodConsumptionMult": 0.1 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -22271,7 +22275,8 @@ "affinityIncreasePL": 160, "foodConsumptionBase": 0.002314, "foodConsumptionMult": 160.0563, - "babyFoodConsumptionMult": 900 + "babyFoodConsumptionMult": 900, + "adultFoodConsumptionMult": 3 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -29327,7 +29332,8 @@ "affinityIncreasePL": 160, "foodConsumptionBase": 0.002314, "foodConsumptionMult": 160.0563, - "babyFoodConsumptionMult": 900 + "babyFoodConsumptionMult": 900, + "adultFoodConsumptionMult": 3 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -41253,7 +41259,8 @@ "torporDepletionPS0": 120, "foodConsumptionBase": 0.002314, "foodConsumptionMult": 160.0563, - "babyFoodConsumptionMult": 900 + "babyFoodConsumptionMult": 900, + "adultFoodConsumptionMult": 3 }, "TamedBaseHealthMultiplier": 0.97, "displayedStats": 927 @@ -77724,7 +77731,8 @@ "affinityIncreasePL": 160, "foodConsumptionBase": 0.002314, "foodConsumptionMult": 160.0563, - "babyFoodConsumptionMult": 900 + "babyFoodConsumptionMult": 900, + "adultFoodConsumptionMult": 3 }, "TamedBaseHealthMultiplier": 0.97, "displayedStats": 927 @@ -89538,7 +89546,8 @@ "torporDepletionPS0": 0.5, "foodConsumptionBase": 0.002314, "foodConsumptionMult": 150.0634, - "babyFoodConsumptionMult": 700 + "babyFoodConsumptionMult": 700, + "adultFoodConsumptionMult": 3 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -96142,7 +96151,8 @@ "torporDepletionPS0": 120, "foodConsumptionBase": 0.002314, "foodConsumptionMult": 160.0563, - "babyFoodConsumptionMult": 900 + "babyFoodConsumptionMult": 900, + "adultFoodConsumptionMult": 3 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -96232,7 +96242,8 @@ "affinityIncreasePL": 160, "foodConsumptionBase": 0.002314, "foodConsumptionMult": 160.0563, - "babyFoodConsumptionMult": 900 + "babyFoodConsumptionMult": 900, + "adultFoodConsumptionMult": 3 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -96322,7 +96333,8 @@ "torporDepletionPS0": 120, "foodConsumptionBase": 0.002314, "foodConsumptionMult": 160.0563, - "babyFoodConsumptionMult": 900 + "babyFoodConsumptionMult": 900, + "adultFoodConsumptionMult": 3 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -96412,7 +96424,8 @@ "affinityIncreasePL": 160, "foodConsumptionBase": 0.002314, "foodConsumptionMult": 160.0563, - "babyFoodConsumptionMult": 900 + "babyFoodConsumptionMult": 900, + "adultFoodConsumptionMult": 3 }, "TamedBaseHealthMultiplier": 1, "displayedStats": 927 @@ -109108,7 +109121,8 @@ "torporDepletionPS0": 0, "foodConsumptionBase": 0.1, "foodConsumptionMult": 13, - "babyFoodConsumptionMult": 510 + "babyFoodConsumptionMult": 510, + "adultFoodConsumptionMult": 0.1 }, "TamedBaseHealthMultiplier": 1.8, "displayedStats": 927 diff --git a/ARKBreedingStats/library/CreatureCollection.cs b/ARKBreedingStats/library/CreatureCollection.cs index 4e25eafb..1c9a7f45 100644 --- a/ARKBreedingStats/library/CreatureCollection.cs +++ b/ARKBreedingStats/library/CreatureCollection.cs @@ -561,99 +561,5 @@ public enum ColorExisting /// ColorIsNew } - - /// - /// Returns information about what color ids exist in which regions of the creatures of a species. - /// - internal string GetColorInfo(Species species) - { - if (species == null) return null; - - var colorsExistPerRegion = new HashSet[Ark.ColorRegionCount]; - var colorsDontExistPerRegion = new HashSet[Ark.ColorRegionCount]; - var allAvailableColorIds = Values.V.Colors.ColorsList.Select(c => c.Id).ToArray(); - for (int i = 0; i < Ark.ColorRegionCount; i++) - { - colorsExistPerRegion[i] = new HashSet(); - colorsDontExistPerRegion[i] = new HashSet(allAvailableColorIds); - } - - - foreach (var cr in creatures) - { - if (cr.speciesBlueprint != species.blueprintPath - || cr.colors == null) - continue; - - var ci = 0; - foreach (var co in cr.colors) - { - if (colorsExistPerRegion[ci].Contains(co)) continue; - colorsExistPerRegion[ci].Add(co); - colorsDontExistPerRegion[ci].Remove(co); - ci++; - } - } - - var sb = new StringBuilder($"Color information about {species.DescriptiveNameAndMod} ({species.blueprintPath})\n\n"); - for (int i = 0; i < Ark.ColorRegionCount; i++) - { - if (!species.EnabledColorRegions[i]) continue; - sb.AppendLine($"Color region {i}: {species.colors[i].name}"); - var colorsExist = colorsExistPerRegion[i].Count; - sb.AppendLine($"{colorsExist} color id{(colorsExist != 1 ? "s" : "")} available in your library:"); - CreateNumberRanges(colorsExistPerRegion[i]); - sb.AppendLine(); - var colorsDontExist = colorsDontExistPerRegion[i].Count; - sb.AppendLine($"{colorsDontExist} color id{(colorsDontExist != 1 ? "s" : "")} missing in your library:"); - CreateNumberRanges(colorsDontExistPerRegion[i]); - sb.AppendLine(); - sb.AppendLine(); - } - - void CreateNumberRanges(HashSet numbers) - { - var count = numbers.Count; - if (count == 0) return; - if (count == 1) - { - sb.Append(numbers.First()); - return; - } - - int lastNumber = -2; - bool currentlyInRange = false; - foreach (var number in numbers.OrderBy(c => c)) - { - var lastNumberOfSet = --count == 0; - if (lastNumber + 1 == number) - { - if (lastNumberOfSet) - { - if (currentlyInRange) - sb.Append($"-{number}"); - else sb.Append($", {number}"); - } - currentlyInRange = true; - } - else if (currentlyInRange) - { - // was a number range that now ends - sb.Append($"-{lastNumber}, {number}"); - currentlyInRange = false; - } - else - { - if (lastNumber == -2) - sb.Append($"{number}"); // first number of row - else - sb.Append($", {number}"); - } - lastNumber = number; - } - } - - return sb.ToString(); - } } } diff --git a/ARKBreedingStats/uiControls/LibraryInfo.cs b/ARKBreedingStats/uiControls/LibraryInfo.cs new file mode 100644 index 00000000..c36505df --- /dev/null +++ b/ARKBreedingStats/uiControls/LibraryInfo.cs @@ -0,0 +1,183 @@ +using System; +using ARKBreedingStats.Library; +using ARKBreedingStats.species; +using ARKBreedingStats.values; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace ARKBreedingStats.uiControls +{ + internal static class LibraryInfo + { + private static Species _infoForSpecies; + private static bool _libraryFilterConsidered; + private static string _speciesInfo; + + /// + /// Clear the cached information. + /// + internal static void ClearInfo() + { + _infoForSpecies = null; + _speciesInfo = null; + } + + internal static string GetSpeciesInfo() => _speciesInfo; + + /// + /// Returns information about what color ids exist in which regions of the creatures of a species. + /// + internal static bool SetColorInfo(Species species, IList creatures, bool libraryFilterConsidered, TableLayoutPanel tlp = null) + { + if (species == null || creatures == null) return false; + if (species == _infoForSpecies + && _libraryFilterConsidered == libraryFilterConsidered + && _infoForSpecies != null) return true; + + _infoForSpecies = species; + _libraryFilterConsidered = libraryFilterConsidered; + if (tlp != null) + { + tlp.SuspendLayout(); + // remove all controls except copy to clipboard button and filter checkbox + for (int i = tlp.Controls.Count - 1; i > 1; i--) + tlp.Controls.RemoveAt(i); + } + + var colorsExistPerRegion = new HashSet[Ark.ColorRegionCount]; + var colorsDontExistPerRegion = new HashSet[Ark.ColorRegionCount]; + var allAvailableColorIds = Values.V.Colors.ColorsList.Select(c => c.Id).ToArray(); + for (int i = 0; i < Ark.ColorRegionCount; i++) + { + colorsExistPerRegion[i] = new HashSet(); + colorsDontExistPerRegion[i] = new HashSet(allAvailableColorIds); + } + + var properties = new Dictionary(); + var flags = ((CreatureFlags[])Enum.GetValues(typeof(CreatureFlags))).Where(f => f != CreatureFlags.None).ToArray(); + foreach (var flag in flags) + properties[flag] = 0; + var creatureCount = 0; + + foreach (var cr in creatures) + { + if (cr.speciesBlueprint != species.blueprintPath + || cr.flags.HasFlag(CreatureFlags.Placeholder) + || cr.colors == null) + continue; + + creatureCount++; + for (var ci = 0; ci < Ark.ColorRegionCount; ci++) + { + var co = cr.colors[ci]; + if (colorsExistPerRegion[ci].Contains(co)) continue; + colorsExistPerRegion[ci].Add(co); + colorsDontExistPerRegion[ci].Remove(co); + } + + foreach (var flag in flags) + { + if (cr.flags.HasFlag(flag)) + properties[flag]++; + } + } + + var sb = new StringBuilder(); + var tableRow = 1; + + void AddParagraph(string text, string suffixForPlainText = null, bool bold = false, float relativeFontSize = 1) + { + if (tlp != null) + { + while (tlp.RowStyles.Count <= tableRow) + tlp.RowStyles.Add(new RowStyle(SizeType.AutoSize)); + var l = new Label + { + Text = text, + Font = bold || relativeFontSize != 1 + ? new Font(Control.DefaultFont.FontFamily, Control.DefaultFont.Size * relativeFontSize, + bold ? FontStyle.Bold : FontStyle.Regular) + : Control.DefaultFont, + Margin = new Padding(3, bold ? 8 : 3, 3, 3), + AutoSize = true + }; + tlp.Controls.Add(l, 0, tableRow++); + tlp.SetColumnSpan(l, 2); + } + + sb.AppendLine(text + suffixForPlainText); + } + + AddParagraph($"Information about the {species.DescriptiveNameAndMod} in this library", "\n", true, 1.5f); + AddParagraph( + $"{creatureCount} creatures. {string.Join(", ", properties.Where(p => p.Value > 0).Select(p => $"{Loc.S(p.Key.ToString())}: {p.Value}"))}", + "\n"); + AddParagraph($"Color information", null, true, 1.3f); + + var rangeSb = new StringBuilder(); + for (int i = 0; i < Ark.ColorRegionCount; i++) + { + if (!species.EnabledColorRegions[i]) continue; + AddParagraph($"Color region {i}: {species.colors[i].name}", bold: true, relativeFontSize: 1.1f); + var colorsExist = colorsExistPerRegion[i].Count; + AddParagraph($"{colorsExist} color id{(colorsExist != 1 ? "s" : string.Empty)} available in your library:"); + AddParagraph(CreateNumberRanges(colorsExistPerRegion[i])); + var colorsDontExist = colorsDontExistPerRegion[i].Count; + AddParagraph($"{colorsDontExist} color id{(colorsDontExist != 1 ? "s" : string.Empty)} missing in your library:"); + AddParagraph(CreateNumberRanges(colorsDontExistPerRegion[i]), "\n"); + } + + string CreateNumberRanges(HashSet numbers) + { + var count = numbers.Count; + if (count == 0) return null; + if (count == 1) + { + return numbers.First().ToString(); + } + + rangeSb.Clear(); + int lastNumber = -2; + bool currentlyInRange = false; + foreach (var number in numbers.OrderBy(c => c)) + { + var lastNumberOfSet = --count == 0; + if (lastNumber + 1 == number) + { + if (lastNumberOfSet) + { + if (currentlyInRange) + rangeSb.Append($"-{number}"); + else rangeSb.Append($", {number}"); + } + currentlyInRange = true; + } + else if (currentlyInRange) + { + // was a number range that now ends + rangeSb.Append($"-{lastNumber}, {number}"); + currentlyInRange = false; + } + else + { + if (lastNumber == -2) + rangeSb.Append($"{number}"); // first number of row + else + rangeSb.Append($", {number}"); + } + lastNumber = number; + } + + return rangeSb.ToString(); + } + + _speciesInfo = sb.ToString(); + tlp?.ResumeLayout(); + return true; + } + + } +} diff --git a/ARKBreedingStats/utils/ColorModeColors.cs b/ARKBreedingStats/utils/ColorModeColors.cs index bb825859..07ae3d4a 100644 --- a/ARKBreedingStats/utils/ColorModeColors.cs +++ b/ARKBreedingStats/utils/ColorModeColors.cs @@ -1,11 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Drawing.Imaging; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Web.Management; +using System.Drawing; namespace ARKBreedingStats.utils {