コード例 #1
0
ファイル: GridForm.cs プロジェクト: Adosorken/queststudio
        public void Populate(QuestFile file)
        {
            gridBlocks.DataSource = file.Blocks;
            gridBlocks.Refresh();

            SelectBlock(0);
        }
コード例 #2
0
ファイル: QuestPanel.cs プロジェクト: roknus/Spark-Editor
        public QuestPanel(QuestFile file)
        {
            InitializeComponent();

            this.file = file;
            init();
        }
コード例 #3
0
        public frmChooseQuestVersion(QuestFile file)
        {
            InitializeComponent();
            this.file = file;

            cbQuestVersion.Items.AddRange(new string[] { "NA 2011", "CN 2012", "EU 2015" });
            cbQuestVersion.SelectedIndex = 0;
        }
コード例 #4
0
ファイル: frmMain.cs プロジェクト: roknus/Spark-Editor
        private async void openFile(string fileName)
        {
            try
            {
                dynamic file = null;
                var     dgv  = new DataGridView();

                // Display the hidden progressbar in the statusbar.
                pbProgress.Visible = true;

                // Determine what file type it is and cast to the appropriate type.
                switch (Path.GetExtension(fileName))
                {
                case ".shn":
                    if (Path.GetFileNameWithoutExtension(fileName).ToLower() == "questdata")
                    {
                        file = new QuestFile(fileName);
                        Program.LoadedFiles.Add(file);
                        Extensions.FileType = FileType.QuestFile;

                        var mainTab = new TabPage("QuestFile");
                        var qTab    = new TabPage("Quests");
                        var dTab    = new TabPage("Dialouges");
                        mainTab.BackColor = Color.White;
                        dTab.BackColor    = Color.White;
                        qTab.BackColor    = Color.White;

                        var tc = new TabControl();
                        tc.Dock         = DockStyle.Fill;
                        qTab.Padding    = new Padding(0, 5, 0, 0);
                        dTab.Padding    = new Padding(0, 5, 0, 0);
                        mainTab.Padding = new Padding(0, 5, 0, 0);

                        tc.TabPages.Add(qTab);
                        tc.TabPages.Add(dTab);

                        mainTab.Controls.Add(tc);

                        var qPanel = new QuestPanel(file);
                        qPanel.Dock    = DockStyle.Fill;
                        qTab.BackColor = Color.White;
                        qTab.Controls.Add(qPanel);

                        tcFiles.TabPages.Add(mainTab);
                        tcFiles.SelectedIndex = tcFiles.TabPages.Count - 1;

                        pbProgress.Visible = false;
                        pbProgress.Value   = 0;
                        lblStatus.Text     = "Ready";
                        updateFileInfo();

                        return;
                    }

                    file = new SHNFile(fileName);
                    Extensions.FileType = FileType.SHNFile;

                    break;

                case ".txt":
                    file = new ShineFile(fileName);
                    Extensions.FileType = FileType.ShineFile;

                    break;

                default:
                    throw new Exception("File type not supported");
                }

                lblStatus.Text = "Reading " + Path.GetFileName(fileName);

                // Await the asynchronous Load method and display the reported progress in our progressbar.
                await Task.Run(() => file.Load(new Progress <int>(value =>
                                                                  mainStatusStrip.Invoke(new MethodInvoker(() =>
                {
                    pbProgress.Value = value;
                }))
                                                                  )));

                Program.LoadedFiles.Add(file);

                if (file.GetType() == typeof(SHNFile))
                {
                    dgv                 = new DataGridView();
                    dgv.Dock            = DockStyle.Fill;
                    dgv.BackgroundColor = Color.WhiteSmoke;
                    dgv.DoubleBuffered(true);
                    dgv.DataSource = file;

                    dgv.CellEnter += File_CellEnter;

                    var tab = new TabPage(file.TableName);
                    file.RowChanged += new DataRowChangeEventHandler(File_RowChanged);
                    tab.Controls.Add(dgv);

                    tcFiles.TabPages.Add(tab);
                    tcFiles.SelectedIndex = tcFiles.TabPages.Count - 1;
                }

                else if (file.GetType() == typeof(ShineFile))
                {
                    var mainTab  = new TabPage(file.DataSetName);
                    var tcTables = new TabControl();
                    tcTables.Dock = DockStyle.Fill;

                    tcTables.SelectedIndexChanged += new EventHandler((object s, EventArgs e) =>
                    {
                        file.SelectedIndex = tcTables.SelectedIndex;
                    });

                    mainTab.Controls.Add(tcTables);
                    tcFiles.TabPages.Add(mainTab);
                    mainTab.BackColor = Color.White;

                    tcFiles.SelectedIndex = tcFiles.TabCount - 1;

                    foreach (var table in file.Tables)
                    {
                        dgv                 = new DataGridView();
                        dgv.Dock            = DockStyle.Fill;
                        dgv.BackgroundColor = Color.WhiteSmoke;
                        dgv.DoubleBuffered(true);
                        dgv.DataSource = table;

                        dgv.CellEnter += File_CellEnter;

                        var tab = new TabPage(table.TableName);
                        table.RowChanged += new DataRowChangeEventHandler(File_RowChanged);
                        tab.Controls.Add(dgv);

                        tcTables.TabPages.Add(tab);
                    }
                }


                // Hide and reset the progressbar.
                pbProgress.Visible = false;
                pbProgress.Value   = 0;
                lblStatus.Text     = "Ready";
                updateFileInfo();
            }
            catch (Exception ex)
            {
                pbProgress.Visible = false;
                pbProgress.Value   = 0;
                lblStatus.Text     = "Ready";
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #5
0
        static Database()
        {
            if (!Instance)
            {
                Levels       = DatabaseHelper.Deserialize <ModelLevels>("CharacterLevels.xml").Items;
                Blueprints   = DatabaseHelper.Deserialize <ModelInventoryItemBlueprints>("EconBlueprints.xml").Items;
                Advisors     = DatabaseHelper.Deserialize <ModelInventoryItemAdvisors>("advisors.xml").Items;
                Materials    = DatabaseHelper.Deserialize <ModelInventoryItemMaterials>("econmaterials.xml").Items;
                Consumables  = DatabaseHelper.Deserialize <ModelInventoryItemConsumables>("EconConsumables.xml").Items;
                Designs      = DatabaseHelper.Deserialize <ModelInventoryItemDesigns>("EconDesigns.xml").Items;
                Craftschools = DatabaseHelper.Deserialize <ModelCraftschools>("craftschools.xml").Items;
                Vendors      = DatabaseHelper.Deserialize <ModelVendors>("EconVendors.xml").Items;
                Lootrolls    = DatabaseHelper.Deserialize <ModelInventoryItemLootrolls>("econLootRolls.xml").Items;
                Questgivers  = DatabaseHelper.Deserialize <ModelQuestgivers>("questgivers.xml").Items;
                Equipments   = DatabaseHelper.Deserialize <ModelEquipments>("equipment.xml").Items;
                Nuggets      = DatabaseHelper.Deserialize <ModelNuggets>("nuggets.xml").Items;
                NuggetLogics = DatabaseHelper.Deserialize <ModelNuggetLogics>("nuggetlogics.xml").Items;

                foreach (string CivilizationFile in Directory.GetFiles($"{PathingHelper.gamedatabaseDir}civilizations", "*.xml", SearchOption.TopDirectoryOnly))
                {
                    ModelCivilization Civilization = new ModelCivilization().DeserializeFromFile(CivilizationFile);

                    Civilization.Source = CivilizationFile;

                    Civilizations.Add(Civilization.CivId, Civilization);
                }

                List <string> ExcludedTraitDirectories = new List <string>();

                ExcludedTraitDirectories.Add("_unused");

                if (Convert.ToInt32(ConfigurationManager.AppSettings["UseLosGear"]) != 1)
                {
                    ExcludedTraitDirectories.Add("_los");
                }

                foreach (string TraitFile in Directory.GetFiles($"{PathingHelper.gamedatabaseDir}traits", "*.xml", SearchOption.AllDirectories).Where(f => !DatabaseHelper.IsExcluded(ExcludedTraitDirectories, f)))
                {
                    Trait ObjTrait = new Trait().DeserializeFromFile(TraitFile);

                    ObjTrait.Source = TraitFile;

                    Traits.Add(ObjTrait.Name, ObjTrait);
                }

                foreach (string RegionFile in Directory.GetFiles($"{PathingHelper.gamedatabaseDir}regions", "*.region", SearchOption.TopDirectoryOnly))
                {
                    ModelRegion Region = new ModelRegion().DeserializeFromFile(RegionFile);

                    Region.Source = RegionFile;

                    Regions.Add(Region.Id, Region);
                }

                foreach (string QuestFile in Directory.GetFiles($"{PathingHelper.gamedatabaseDir}quests", "*.quest", SearchOption.AllDirectories))
                {
                    Quest ObjQuest = new Quest().DeserializeFromFile(QuestFile);

                    ObjQuest.Source   = QuestFile.Substring(0, QuestFile.LastIndexOf('.')).Replace($"{PathingHelper.gamedatabaseDir}", string.Empty).ToLower();
                    ObjQuest.Instance = DatabaseHelper.GetQuestInstance(ObjQuest);

                    Quests.Add(ObjQuest.Id, ObjQuest);
                }

                Instance = true;
            }
        }