/// <summary> /// /// </summary> /// <param name="pack"></param> /// <param name="fighter"></param> /// <param name="editor"></param> /// <returns></returns> private void ImportItemData(ZipFile pack, MEXFighterEntry fighter) { Console.WriteLine($"Importing Item Data..."); var itemEntries = pack.Where(e => Regex.IsMatch(e.FileName, @"Item/item\d\d.*.yaml")); HSD_UShort[] itemIndices = new HSD_UShort[0]; foreach (var item in itemEntries) { int val; if (int.TryParse(Regex.Match(item.FileName, @"(?<=item)\d\d").Value, out val)) { using (MemoryStream s = new MemoryStream(GetBytes(item))) using (StreamReader r = new StreamReader(s)) { // add item entry to mex items var id = editor.ItemControl.AddMEXItem(r.ReadToEnd()); // add it to itemIndices Array.Resize(ref itemIndices, val + 1); itemIndices[val] = new HSD_UShort() { Value = (ushort)id }; } } } fighter.MEXItems = itemIndices.ToArray(); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void importStageButton_Click(object sender, EventArgs e) { var f = FileIO.OpenFile("YAML (*.yaml)|*.yaml"); if (f != null) { var package = StagePackage.DeserializeFile(f); var stage = package.Stage; // load items if (package.Items != null) { var newItems = new HSD_UShort[package.Items.Count]; for (int i = 0; i < package.Items.Count; i++) { var item = (ushort)Editor.ItemControl.AddMEXItem(package.Items[i]); newItems[i] = new HSD_UShort() { Value = item }; } stage.ItemLookup.Entries = newItems; } // insert new stage stageEditor.AddItem(stage); } }