Example #1
0
        /// <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);
            }
        }
Example #2
0
        /// <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");
        }
Example #3
0
 /// <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));
 }