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();
        }
Exemplo n.º 2
0
        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)
 {
 }
Exemplo n.º 5
0
 public LocalPEmployee(Common.Gender gender, byte Age)
     : base(gender, Age)
 {
 }
Exemplo n.º 6
0
 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();
        }
Exemplo n.º 10
0
 public ForentPEmployee(Common.Gender gender, byte Age)
     : base(gender, Age)
 {
 }
Exemplo n.º 11
0
 public ForentPEmployee(Common.Gender gender)
     : base(gender)
 {
 }
Exemplo n.º 12
0
        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();
        }