/// <summary> /// /// </summary> /// <param name="filepath"></param> public void Serialize(string filepath, MEX_Item item) { var builder = new SerializerBuilder() .WithTypeInspector(inspector => new MEXTypeInspector(inspector)) .WithNamingConvention(CamelCaseNamingConvention.Instance); using (StreamWriter writer = File.CreateText(filepath)) { builder.Build().Serialize(writer, item); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cpyLogicToClipButton_Click(object sender, EventArgs e) { MEX_Item item = null; if (itemTabs.SelectedIndex == 0 && commonItemEditor.SelectedObject is MEX_Item it) { item = it; } if (itemTabs.SelectedIndex == 1 && fighterItemEditor.SelectedObject is MEX_Item it2) { item = it2; } if (itemTabs.SelectedIndex == 2 && pokemonItemEditor.SelectedObject is MEX_Item it3) { item = it3; } if (itemTabs.SelectedIndex == 3 && stageItemEditor.SelectedObject is MEX_Item it4) { item = it4; } if (itemTabs.SelectedIndex == 4 && mexItemEditor.SelectedObject is MEX_Item it5) { item = it5; } if (item == null) { return; } if (item.ItemStates == null) { MessageBox.Show("This MxDt file does not contains item states", "Nothing to copy", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } StringBuilder table = new StringBuilder(); int index = 0; foreach (var m in item.ItemStates) { table.AppendLine("\t// State " + index++); table.AppendLine(string.Format( "\t{{" + "\n\t\t0x{0, -10}// AnimID" + "\n\t\t0x{1, -10}// AnimationCallback" + "\n\t\t0x{2, -10}// PhysicsCallback" + "\n\t\t0x{3, -10}// CollisionCallback" + "\n\t}},", m.AnimID.ToString("X") + ",", m.AnimationCallback.ToString("X") + ",", m.PhysicsCallback.ToString("X") + ",", m.CollisionCallback.ToString("X") + "," )); } Clipboard.SetText( @"__attribute__((used)) static struct ItemState item_states[] = { " + table.ToString() + @"}; "); MessageBox.Show("Item State Table Copied to Clipboard"); }
/// <summary> /// Adds a new MEX item to table /// </summary> /// <param name="item"></param> /// <returns>added mex item id</returns> public int AddMEXItem(MEX_Item item) { return(mexItemEditor.AddItem(item)); }