public TfmPreviewFolderWBGWorker( String Dir, Common.FolderType Folder = Common.FolderType.None, Common.Gender Gender = Common.Gender.None, Common.Direction Direction = Common.Direction.None, bool CropImage = false, bool SleepThread = true, Common.OfficialMirType OfficialMirType = Common.OfficialMirType.None) { InitializeComponent(); // Cast signature variables to shared variables _dir = Dir; lbDirectory.Caption = _dir; _folder = Folder; _gender = Gender; _direction = Direction; _cropImage = CropImage; _sleepThread = SleepThread; _officialMirType = OfficialMirType; // Log output listLog.Items.Add(string.Format("<b>[{0}]</b> Process started.", DateTime.Now, _dir)); listLog.Items.Add(string.Format("Directory: <color=blue>{0}</color>", _dir)); listLog.Items.Add(string.Format("Folder Type: <color=blue>{0}</color> Gender: <color=blue>{1}</color> Direction: <color=blue>{2}</color> Official Mir Type: <color=blue>{3}</color>", _folder.ToString(), _gender.ToString(), Direction.ToString(), _officialMirType.ToString())); listLog.Items.Add(string.Format("Crop Images: <color=red>{0}</color> Sleep Thread: <color=red>{1}</color>", _cropImage.ToString(), _sleepThread.ToString())); listLog.TopIndex = listLog.Items.Count - 1; // Decide to load structured format or generic if (_folder != Common.FolderType.None && _folder != Common.FolderType.Data) { FilesCount = (ushort)Directory.GetFiles(_dir).Length; } else { Files.AddRange(Directory.GetFiles(_dir)); } // Start the asynchronous operation. if (backgroundWorker1.IsBusy != true) { startTime = DateTime.Now; // Log time for time taken log backgroundWorker1.RunWorkerAsync(); } GC.Collect(); }
private void btnPreview_Click(object sender, EventArgs e) { // Error handle if (tbDir.Text.Length == 0) { MessageBox.Show("Please select a valid folder."); return; } if (cbType.Text == string.Empty) { MessageBox.Show("Please select a valid folder type"); return; } LibraryFolder = tbDir.Text; FolderType = (Common.FolderType)Enum.Parse(typeof(Common.FolderType), cbType.Text); Gender = (Common.Gender)radioGender.EditValue; Direction = (Common.Direction)radioDirection.EditValue; CropImage = (cbListAdditional.Items[0].CheckState == CheckState.Checked) ? true : false; SleepThread = (cbListAdditional.Items[1].CheckState == CheckState.Checked) ? true : false; ReturnType = Common.ReturnTye.Preview; this.Close(); }
public PermanentEmployee(Common.Gender gender, byte Age) : base(gender, Age) { }
public PermanentEmployee(Common.Gender gender) : base(gender) { }
public LocalPEmployee(Common.Gender gender, byte Age) : base(gender, Age) { }
public LocalPEmployee(Common.Gender gender) : base(gender) { }
public ContractEmployee(Common.Gender gender, byte Age) : base(gender, Age) { }
public ContractEmployee(Common.Gender gender) : base(gender) { }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { if (_sleepThread) { listLog.Items.Add(string.Format("<b>[{0}]</b> Sleeping thread.", DateTime.Now)); // Log output listLog.TopIndex = listLog.Items.Count - 1; Thread.Sleep(1500); // Sleep thread to allow form to be drawn } BackgroundWorker worker = sender as BackgroundWorker; int[] ImageIndexs; List <int> imageIndexes = new List <int>(); Common.Gender _currentGender = Common.Gender.None; // Data folder refers to office standard libraries if (_folder == Common.FolderType.Data) { switch (_officialMirType) { case Common.OfficialMirType.None: break; case Common.OfficialMirType.Armour: for (int i = 0; i < Files.Count; i++) { try { if (Files[i].ToLower().EndsWith(".wil") || Files[i].ToLower().EndsWith(".wzl") || Files[i].ToLower().EndsWith(".miz")) // Skip if not valid file type { if (Files[i].ToLower().Contains("effect") || !Files[i].ToLower().Contains("hum")) { continue; // Skip effect libraries and ones that are not armour libraries (to the best we can due to naming conventions) } _tempWeMadeLibrary = new FileStructures.WeMadeLibrary(Files[i], false); int ArmourCount = (((_tempWeMadeLibrary.Images.Length) / 1200)); // Get the amount of armours in the library // Loop through the armour count and add the relative male / female index numbers to initialize later for (int j = 0; j < ArmourCount; j++) { imageIndexes.Add((j * 1200) + ((byte)_direction * 8)); imageIndexes.Add((j * 1200) + 600 + ((byte)_direction * 8)); } _tempWeMadeLibrary.InitializeLibraryImages(imageIndexes.ToArray()); // Initialize armour indexes // Loop through armour indexes and pull the image to report for (int k = 0; k < imageIndexes.Count; k += 2) { backgroundWorker1.ReportProgress((int)Math.Round((double)(0)), new ImageListBoxItem(null, string.Format("{0}\nGender: {1}", Files[i], "Male"), 0, Files[i], (Image)_tempWeMadeLibrary.Images[imageIndexes[k]].Image)); backgroundWorker1.ReportProgress((int)Math.Round((double)(0)), new ImageListBoxItem(null, string.Format("{0}\nGender: {1}", Files[i], "Female"), 0, Files[i], (Image)_tempWeMadeLibrary.Images[imageIndexes[k + 1]].Image)); } } } catch (Exception exception) { // TODO: Add error reporting code continue; } } break; case Common.OfficialMirType.Weapon: for (int i = 0; i < Files.Count; i++) { try { if (Files[i].ToLower().EndsWith(".wil") || Files[i].ToLower().EndsWith(".wzl") || Files[i].ToLower().EndsWith(".miz")) { if (Files[i].ToLower().Contains("effect") || !Files[i].ToLower().Contains("weapon")) { continue; } _tempWeMadeLibrary = new FileStructures.WeMadeLibrary(Files[i], false); int WeaponCount = (((_tempWeMadeLibrary.Images.Length) / 1200)); for (int j = 0; j < WeaponCount; j++) { imageIndexes.Add((j * 1200) + ((byte)_direction * 8)); imageIndexes.Add((j * 1200) + 600 + ((byte)_direction * 8)); } _tempWeMadeLibrary.InitializeLibraryImages(imageIndexes.ToArray()); for (int k = 0; k < imageIndexes.Count; k += 2) { backgroundWorker1.ReportProgress((int)Math.Round((double)(0)), new ImageListBoxItem(null, string.Format("{0}\nGender: {1}", Files[i], "Male"), 0, Files[i], (Image)_tempWeMadeLibrary.Images[imageIndexes[k]].Image)); backgroundWorker1.ReportProgress((int)Math.Round((double)(0)), new ImageListBoxItem(null, string.Format("{0}\nGender: {1}", Files[i], "Female"), 0, Files[i], (Image)_tempWeMadeLibrary.Images[imageIndexes[k + 1]].Image)); } } } catch (Exception exception) { // TODO: Add error reporting code continue; } } break; default: break; } } else if (_folder != Common.FolderType.None) { for (int i = 0; i < FilesCount; i++) { if (worker.CancellationPending == true) { e.Cancel = true; break; } if (_sleepThread) { Thread.Sleep(20); // Sleep thread to allow rows to be drawn } try { switch (_folder) { case Common.FolderType.CArmour: switch (_gender) { case Common.Gender.Male: ImageIndexs = new int[] { 0 + ((byte)_direction * 4) }; break; case Common.Gender.Female: ImageIndexs = new int[] { 0 + ((byte)_direction * 4) + (int)Common.LibraryImageOffsets.CArmour }; break; case Common.Gender.Both: ImageIndexs = new int[] { 0 + ((byte)_direction * 4), 0 + ((byte)_direction * 4) + (int)Common.LibraryImageOffsets.CArmour }; break; default: ImageIndexs = new int[] { 0 }; break; } _tempCrystalV2Library = new FileStructures.MLibraryV2(_dir + @"\" + i.ToString("00") + ".Lib", ImageIndexs); break; case Common.FolderType.CWeapon: switch (_gender) { case Common.Gender.Male: ImageIndexs = new int[] { 0 + ((byte)_direction * 4) }; break; case Common.Gender.Female: ImageIndexs = new int[] { 0 + ((byte)_direction * 4) + (int)Common.LibraryImageOffsets.CWeapon }; break; case Common.Gender.Both: ImageIndexs = new int[] { 0 + ((byte)_direction * 4), 0 + ((byte)_direction * 4) + (int)Common.LibraryImageOffsets.CWeapon }; break; default: ImageIndexs = new int[] { 0 }; break; } _tempCrystalV2Library = new FileStructures.MLibraryV2(_dir + @"\" + i.ToString("00") + ".Lib", ImageIndexs); break; case Common.FolderType.Monster: ImageIndexs = new int[] { 0 }; _tempCrystalV2Library = new FileStructures.MLibraryV2(_dir + @"\" + i.ToString("000") + ".Lib", ImageIndexs); break; default: return; } for (int j = 0; j < ImageIndexs.Length; j++) { _currentGender = (j == 0) ? Common.Gender.Male : Common.Gender.Female; // Used for displaying gender in error FileStructures.MLibraryV2.MImage _tempImage = _tempCrystalV2Library.Images[ImageIndexs[j]]; // Image processing if (_cropImage == true) { _tempImage.Image = Functions.CropImage.CropTransparent(_tempImage.Image).Image; } if (_tempImage.Image == null || _tempImage.Width == 0) { _tempImage.Image = Properties.Resources.ImageError; // Replace new bitmap with error image } backgroundWorker1.ReportProgress((int)Math.Round((double)(100 * (i + 1)) / FilesCount), new ImageListBoxItem(null, string.Format("{0}\nGender: {1}", _tempCrystalV2Library.FileName, _currentGender), 0, _tempCrystalV2Library.FileName, (Image)_tempImage.Image)); } GC.Collect(); } catch (Exception ex) { backgroundWorker1.ReportProgress((int)Math.Round((double)(100 * (i + 1)) / FilesCount), new ImageListBoxItem(null, string.Format("{0}\nGender: {1}", _tempCrystalV2Library.FileName, _currentGender), 0, _tempCrystalV2Library.FileName, (Image)Properties.Resources.ImageError)); continue; } } } else { for (int i = 0; i < Files.Count; i++) { if (worker.CancellationPending == true) { e.Cancel = true; break; } if (_sleepThread) { Thread.Sleep(20); // Sleep thread to allow rows to be drawn } try { _tempCrystalV2Library = new FileStructures.MLibraryV2(Files[i], new int[] { 0 }); FileStructures.MLibraryV2.MImage _tempImage = _tempCrystalV2Library.Images[0]; // Image processing if (_cropImage == true) { _tempImage.Image = Functions.CropImage.CropTransparent(_tempImage.Image).Image; } if (_tempImage.Image == null || _tempImage.Width == 0) { _tempImage.Image = Properties.Resources.ImageError; // Replace new bitmap with error image } backgroundWorker1.ReportProgress((int)Math.Round((double)(100 * (i + 1)) / (Files.Count)), new ImageListBoxItem(null, string.Format("{0}\nGender: {1}", _tempCrystalV2Library.FileName, _gender), 0, _tempCrystalV2Library.FileName, (Image)_tempImage.Image)); GC.Collect(); } catch (Exception ex) { backgroundWorker1.ReportProgress((int)Math.Round((double)(100 * (i + 1)) / FilesCount), new ImageListBoxItem(null, string.Format("{0}\nGender: {1}", _tempCrystalV2Library.FileName, _gender), 0, _tempCrystalV2Library.FileName, (Image)Properties.Resources.ImageError)); continue; } } } GC.Collect(); }
public ForentPEmployee(Common.Gender gender, byte Age) : base(gender, Age) { }
public ForentPEmployee(Common.Gender gender) : base(gender) { }
public TfmPreviewFolder(String Dir, Common.FolderType Folder = Common.FolderType.None, Common.Gender Gender = Common.Gender.None, Common.Direction Direction = Common.Direction.None) { InitializeComponent(); backgroundWorker1.WorkerReportsProgress = true; backgroundWorker1.WorkerSupportsCancellation = true; if (backgroundWorker1.IsBusy != true) { // Start the asynchronous operation. backgroundWorker1.RunWorkerAsync(); } FilesCount = (ushort)Directory.GetFiles(Dir).Length; // Files = Directory.GetFiles(Dir); for (int i = 0; i < FilesCount; i++) { try { //if (Files[i].EndsWith(".LIB", StringComparison.OrdinalIgnoreCase)) //{ _tempLibrary = new FileStructures.MLibraryV2(Dir + "//" + i.ToString("00") + ".Lib"); switch (Folder) { case Common.FolderType.None: // TODO: Add break; case Common.FolderType.CHumEffect: switch (Gender) { case Common.Gender.None: //string.Format("Library: {0}.Lib\r\nDatabase Effect Number: {1}", i.ToString("00"), (i+1).ToString("00")); ImageListBox.Items.Add(new ImageListBoxItem(null, string.Format("Library: {0}.Lib\r\nDatabase Effect Number: {1}", i.ToString("00"), (i + 1).ToString("00")), i, "", _tempLibrary.Images[0 + ((byte)Direction * 8)].Image)); break; case Common.Gender.Male: ImageListBox.Items.Add(new ImageListBoxItem(null, string.Format("Library: {0}.Lib\r\nDatabase Effect Number: {1}\r\nGender: Male", i.ToString("00"), (i + 1).ToString("00")), i, "", _tempLibrary.Images[0 + ((byte)Direction * 8)].Image)); break; case Common.Gender.Female: ImageListBox.Items.Add(new ImageListBoxItem(null, string.Format("Library: {0}.Lib\r\nDatabase Effect Number: {1}\r\nGender: Female", i.ToString("00"), (i + 1).ToString("00")), i, "", _tempLibrary.Images[0 + ((byte)Direction * 8) + ArmourOffset].Image)); break; case Common.Gender.Both: ImageListBox.Items.Add(new ImageListBoxItem(null, string.Format("Library: {0}.Lib\r\nDatabase Effect Number: {1}\r\nGender: Male", i.ToString("00"), (i + 1).ToString("00")), i, "", _tempLibrary.Images[0 + ((byte)Direction * 8)].Image)); ImageListBox.Items.Add(new ImageListBoxItem(null, string.Format("Library: {0}.Lib\r\nDatabase Effect Number: {1}\r\nGender: Female", i.ToString("00"), (i + 1).ToString("00")), i, "", _tempLibrary.Images[0 + ((byte)Direction * 8) + ArmourOffset].Image)); break; default: break; } break; case Common.FolderType.CArmour: switch (Gender) { case Common.Gender.None: ImageListBox.Items.Add(new ImageListBoxItem(null, "Library: " + i.ToString("00") + ".Lib", i, "", _tempLibrary.Images[0 + ((byte)Direction * 4)].Image)); break; case Common.Gender.Male: ImageListBox.Items.Add(new ImageListBoxItem(null, "Library: " + i.ToString("00") + ".Lib" + "\r\nGender: Male", i, "", _tempLibrary.Images[0 + ((byte)Direction * 4)].Image)); break; case Common.Gender.Female: ImageListBox.Items.Add(new ImageListBoxItem(null, "Library: " + i.ToString("00") + ".Lib" + "\r\nGender: Female", i, "", _tempLibrary.Images[0 + ((byte)Direction * 4) + ArmourOffset].Image)); break; case Common.Gender.Both: ImageListBox.Items.Add(new ImageListBoxItem(null, "Library: " + i.ToString("00") + ".Lib" + "\r\nGender: Male", i, "", _tempLibrary.Images[0 + ((byte)Direction * 4)].Image)); ImageListBox.Items.Add(new ImageListBoxItem(null, "Library: " + i.ToString("00") + ".Lib" + "\r\nGender: Female", i, "", _tempLibrary.Images[0 + ((byte)Direction * 4) + ArmourOffset].Image)); break; default: break; } break; case Common.FolderType.CWeapon: // TODO: Add break; case Common.FolderType.CShields: // TODO: Add break; case Common.FolderType.CWeaponEffect: // TODO: Add break; case Common.FolderType.AArmour: // TODO: Add break; case Common.FolderType.AHumEffect: // TODO: Add break; case Common.FolderType.AWeapon: // TODO: Add break; case Common.FolderType.AWeaponEffect: // TODO: Add break; case Common.FolderType.ARArmour: // TODO: Add break; case Common.FolderType.ARHumEffect: // TODO: Add break; case Common.FolderType.ARWeapon: // TODO: Add break; case Common.FolderType.ARWeaponEffect: // TODO: Add break; case Common.FolderType.NPC: ImageListBox.Items.Add(new ImageListBoxItem(null, "Library: " + i.ToString("00") + ".Lib", i, i.ToString("00"), Functions.CropImage.CropTransparent(_tempLibrary.Images[0].Image).Image)); break; default: break; } //} } catch (Exception ex) { //ErrorFiles.Add(Files[i]); continue; } finally { if (ErrorFiles.Count > 0) { MessageBox.Show(ErrorFiles.ToString()); } } GC.Collect(); } this.Text += " " + ImageListBox.Items.Count.ToString(); }