private void RenderedImagePanel_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Middle) { Point loc = getPointOnImage(e.Location, EstimateProp.Floor); int gs = Options.Get.GridSize; int xMin = (loc.X / gs) * gs; int xMax = xMin + gs; int yMin = (loc.Y / gs) * gs; int yMax = yMin + gs; var newGridMaskClip = new Rectangle(new Point(xMin, yMin), new Point(xMin, yMin).CalculateSize(new Point(xMax, yMax))); // If they click it again, we disable it. if (this.gridMaskClip != null) { if (this.gridMaskClip.Value.X == newGridMaskClip.X) { if (this.gridMaskClip.Value.Y == newGridMaskClip.Y) { this.gridMaskClip = null; Refresh(); return; } } } this.gridMaskClip = newGridMaskClip; Refresh(); } else if (e.Button == MouseButtons.Right) { Point loc = getPointOnImage(e.Location, EstimateProp.Floor); Color cFromPreRender = MainForm.Self.PreRenderedImage.GetPixelSafely(loc.X, loc.Y); Color cFromBlueprint = this.image.GetColor(loc.X, loc.Y); #region Coordinates (XYZ) if (Options.Get.IsSideView) { this.ts_xyz.Text = $"XYZ : ({loc.X}, {(this.image.Mapper.GetYLength(true) - loc.Y)}, *)"; } else { this.ts_xyz.Text = $"XYZ : ({loc.X}, *, {loc.Y})"; } #endregion #region Material name Material[] ms = this.image.Mapper.GetMaterialsAt(loc.X, loc.Y); this.ts_MaterialName.Text = $"Materials: \r\n{string.Join("\r\n", ms.Select(x => x.GetBlockNameAndData(true)))}"; #endregion #region Average color this.averageColorCodeToolStripMenuItem.Text = "AvgColor: #" + cFromBlueprint.R.ToString("X2") + cFromBlueprint.G.ToString("X2") + cFromBlueprint.B.ToString("X2"); this.rGBAToolStripMenuItem.Text = $"RGBA: ({cFromBlueprint.R}, {cFromBlueprint.G}, {cFromBlueprint.B}, {cFromBlueprint.A})"; #endregion #region Replacements list List <Color> matches = Materials.FindBestMatches(Materials.ColorMap.Keys.ToList(), cFromPreRender, Math.Min(Materials.ColorMap.Keys.Count, 30)); this.replaceMenuItems_1.DropDownItems.Clear(); this.replaceMenuItems_2.DropDownItems.Clear(); this.replaceMenuItems_3.DropDownItems.Clear(); int size = Constants.TextureSize * 4; for (int matchIndex = 0; matchIndex < matches.Count; matchIndex++) { var match = matches[matchIndex]; if (Materials.ColorMap.TryGetValue(match, out Material[] materials))