public static GetInstance ( ) : |
||
return |
private void OnJsonFileDataSelected() { JsonFileData fileData = mSelectedFileData as JsonFileData; if (fileData.TreeNode != null) { treeView.SelectedNode = fileData.TreeNode; } List <string> addedOpenFiles = new List <string>(); bool hasImage = false; foreach (FileData openedFile in fileData.OpenedFiles) { TabPage newTabPage = new TabPage(); newTabPage.Text = openedFile.FileName; if (ModuleDataManager.GetInstance().ModifiedFiles.Contains(openedFile)) { newTabPage.Text = newTabPage.Text + "*"; } if (openedFile.HasErrors) { newTabPage.ImageIndex = 0; newTabPage.ToolTipText = openedFile.Errors; } FilePreview filePreview = new FilePreview(this, openedFile); filePreview.Dock = DockStyle.Fill; newTabPage.Controls.Add(filePreview); filePreviewTabs.TabPages.Add(newTabPage); foreach (KeyValuePair <string, FileData> linkedFile in openedFile.LinkedFileData) { if (addedOpenFiles.Contains(linkedFile.Key)) { continue; } addedOpenFiles.Add(linkedFile.Key); if (linkedFile.Value is QubicleFileData) { QubicleFileData qbFileData = linkedFile.Value as QubicleFileData; string fileName = qbFileData.FileName; Button openFileButton = new Button(); openFileButton.Name = qbFileData.GetOpenFilePath(); openFileButton.BackgroundImage = global::StonehearthEditor.Properties.Resources.qmofileicon_small; openFileButton.BackgroundImageLayout = ImageLayout.None; openFileButton.Text = Path.GetFileName(openFileButton.Name); openFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleRight; openFileButton.UseVisualStyleBackColor = true; openFileButton.Click += new System.EventHandler(openFileButton_Click); openFileButton.Padding = new Padding(22, 2, 2, 2); openFileButton.AutoSize = true; openFileButtonPanel.Controls.Add(openFileButton); } else if (linkedFile.Value is ImageFileData) { string imageFilePath = linkedFile.Value.Path; if (System.IO.File.Exists(imageFilePath)) { if (!hasImage) { iconView.ImageLocation = imageFilePath; hasImage = true; } Button openFileButton = new Button(); openFileButton.Name = imageFilePath; Image thumbnail = ThumbnailCache.GetThumbnail(imageFilePath); openFileButton.BackgroundImage = thumbnail; openFileButton.BackgroundImageLayout = ImageLayout.None; openFileButton.Text = Path.GetFileName(openFileButton.Name); openFileButton.TextAlign = System.Drawing.ContentAlignment.MiddleRight; openFileButton.UseVisualStyleBackColor = true; openFileButton.Click += new System.EventHandler(openFileButton_Click); openFileButton.Padding = new Padding(22, 2, 2, 2); openFileButton.AutoSize = true; openFileButtonPanel.Controls.Add(openFileButton); } } } } }
private void searchButton_Click(object sender, EventArgs e) { string searchTerm = searchBox.Text; ModuleDataManager.GetInstance().FilterAliasTree(treeView, searchTerm); }
private void ParseJsonSpecificData() { string directory = Directory; string categoryOverride = null; switch (mJsonType) { case JSONTYPE.ENTITY: JToken entityFormsComponent = mJson.SelectToken("components.stonehearth:entity_forms"); if (entityFormsComponent != null) { JToken iconicForm = entityFormsComponent["iconic_form"]; if (iconicForm != null) { string iconicFilePath = JsonHelper.GetFileFromFileJson(iconicForm.ToString(), directory); iconicFilePath = JsonHelper.NormalizeSystemPath(iconicFilePath); JsonFileData iconic = new JsonFileData(iconicFilePath); iconic.Load(); categoryOverride = iconic.Category; Category = iconic.Category; OpenedFiles.Add(iconic); } // Look for stonehearth:entity_forms JToken ghostForm = entityFormsComponent["ghost_form"]; if (ghostForm != null) { string ghostFilePath = JsonHelper.GetFileFromFileJson(ghostForm.ToString(), directory); ghostFilePath = JsonHelper.NormalizeSystemPath(ghostFilePath); JsonFileData ghost = new JsonFileData(ghostFilePath); ghost.Category = categoryOverride; ghost.Load(); ghost.AddMixin("stonehearth:mixins:placed_object"); OpenedFiles.Add(ghost); ghost.PostLoad(); } CheckForNoNetWorth(); } else { // Make sure to check if items have no net worth or set mNetWorth from their net worth data JToken catalog_data = mJson.SelectToken("entity_data.stonehearth:catalog.is_item"); if (catalog_data != null && catalog_data.Value <bool>()) { CheckForNoNetWorth(); } if (GetModuleFile() != null && mJson.SelectToken("components.item") != null) { CheckForNoNetWorth(); } if (mJson.SelectToken("entity_data.stonehearth:net_worth") != null) { CheckForNoNetWorth(); } } break; case JSONTYPE.JOB: // Parse crafter stuff JToken crafter = mJson["crafter"]; if (crafter != null) { // This is a crafter, load its recipes string recipeListLocation = crafter["recipe_list"].ToString(); recipeListLocation = JsonHelper.GetFileFromFileJson(recipeListLocation, directory); if (recipeListLocation != null) { JsonFileData recipes = new JsonFileData(recipeListLocation); recipes.Load(); foreach (FileData recipe in recipes.LinkedFileData.Values) { recipes.RelatedFiles.Add(recipe); } OpenedFiles.Add(recipes); recipes.ReferencedByFileData[GetAliasOrFlatName()] = this; } } JObject jobEquipment = mJson["equipment"] as JObject; if (jobEquipment != null) { foreach (JToken equippedItem in jobEquipment.Children()) { string equipmentJson = equippedItem.Last.ToString(); FileData fileData = null; if (equipmentJson.IndexOf(':') >= 0) { foreach (ModuleFile alias in LinkedAliases) { if (alias.FullAlias.Equals(equipmentJson)) { fileData = alias.FileData; } } } else { equipmentJson = JsonHelper.GetFileFromFileJson(equipmentJson, directory); LinkedFileData.TryGetValue(equipmentJson, out fileData); } JsonFileData jsonFileData = fileData as JsonFileData; if (jsonFileData != null) { JToken equipment_piece = jsonFileData.mJson.SelectToken("components.stonehearth:equipment_piece"); if (equipment_piece != null) { JToken ilevel = equipment_piece["ilevel"]; if (ilevel != null && ilevel.Value <int>() > 0) { JToken noDrop = equipment_piece["no_drop"]; if (noDrop == null || !noDrop.Value <bool>()) { AddError("Equipment piece " + equipmentJson + " is not set to no_drop=true even through it is a job equipment!"); } } } } } } ////AlterJobExperience(); break; case JSONTYPE.RECIPE: JToken portrait = mJson["portrait"]; if (portrait != null) { string portraitImageLocation = portrait.ToString(); portraitImageLocation = JsonHelper.GetFileFromFileJson(portraitImageLocation, directory); ImageFileData image = new ImageFileData(portraitImageLocation); LinkedFileData.Add(portraitImageLocation, image); } break; case JSONTYPE.AI_PACK: JArray actions = mJson["actions"] as JArray; if (actions != null) { foreach (JToken action in actions) { string fullAlias = action.ToString(); ModuleFile linkedAlias = ModuleDataManager.GetInstance().GetModuleFile(fullAlias); if (linkedAlias == null) { AddError("links to alias " + fullAlias + " which does not exist!"); } } } break; case JSONTYPE.MONSTER_TUNING: JToken experience = mJson.SelectToken("attributes.exp_reward"); if (experience != null) { //Console.WriteLine(GetAliasOrFlatName() + "\t" + experience.ToString()); } break; } FixUnitInfo(); CheckDisplayName(); FixUpAllCombatData(); }