示例#1
0
        private void BtnAdd_Click(object sender, EventArgs e)
        {
            if (Manager.ObjectSet == null)
            {
                return;
            }

            bool   name_collision         = true;
            int    new_element_name_index = LBObjects.Items.Count;
            string new_element_name       = "";

            while (name_collision == true)
            {
                new_element_name = "obj" + new_element_name_index;

                name_collision = false;

                foreach (object item in LBObjects.Items)
                {
                    if (new_element_name.CompareTo(item) == 0)
                    {
                        name_collision = true;
                        ++new_element_name_index;
                        continue;
                    }
                }
            }

            Rectangle selection = SurfaceTexture.GetSelection();

            ObjectSetElementData new_element = new ObjectSetElementData
            {
                ElementName = new_element_name,
                OffsetU     = selection.X,
                OffsetV     = selection.Y,
                Size        = new SSize(selection.Width, selection.Height)
            };

            Manager.ObjectSet.Elements.Add(new_element);

            LBObjects.Items.Add(new_element_name);

            LBObjects.SelectedIndex = LBObjects.Items.Count - 1;
        }
        public void LoadFromFile(string FileName)
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(FileName);

            XmlElement xml_root = (XmlElement)doc.FirstChild;

            XmlElement xml_object_set_info = (XmlElement)xml_root.FirstChild;

            ObjectSet = new ObjectSetData
            {
                ObjectSetName   = xml_object_set_info.GetAttribute("Name"),
                TextureFileName = xml_object_set_info.GetAttribute("Texture")
            };

            XmlElement xml_object_set = (XmlElement)xml_object_set_info.NextSibling;

            if (xml_object_set == null)
            {
                return;
            }

            ObjectSet.Elements = new List <ObjectSetElementData>();
            XmlElement xml_element = (XmlElement)xml_object_set.FirstChild;

            while (xml_element != null)
            {
                ObjectSetElementData new_element = new ObjectSetElementData
                {
                    ElementName = xml_element.GetAttribute("Name"),
                    OffsetU     = Convert.ToInt32(xml_element.GetAttribute("OffsetU")),
                    OffsetV     = Convert.ToInt32(xml_element.GetAttribute("OffsetV")),
                    Size        = new SSize(
                        Convert.ToInt32(xml_element.GetAttribute("Width")),
                        Convert.ToInt32(xml_element.GetAttribute("Height")))
                };

                ObjectSet.Elements.Add(new_element);

                xml_element = (XmlElement)xml_element.NextSibling;
            }
        }
示例#3
0
        private void LBObjects_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (LBObjects.SelectedIndex == -1)
            {
                return;
            }

            ObjectSetElementData element = Manager.ObjectSet.Elements[LBObjects.SelectedIndex];

            TBObjectName.Text = element.ElementName;

            TBOffsetU.Text = element.OffsetU.ToString();
            TBOffsetV.Text = element.OffsetV.ToString();

            TBWidth.Text  = element.Size.Width.ToString();
            TBHeight.Text = element.Size.Height.ToString();

            SurfaceObject.DrawingRectangle =
                new Rectangle(element.OffsetU, element.OffsetV, element.Size.Width, element.Size.Height);

            SurfaceObject.Invalidate();
        }
示例#4
0
        private void BtnUpdate_Click(object sender, EventArgs e)
        {
            if (Manager.ObjectSet == null)
            {
                return;
            }
            if (Manager.ObjectSet.Elements.Count == 0)
            {
                return;
            }

            ObjectSetElementData element = Manager.ObjectSet.Elements[LBObjects.SelectedIndex];

            element.ElementName = TBObjectName.Text;

            try
            {
                element.OffsetU = Convert.ToInt32(TBOffsetU.Text);
                element.OffsetV = Convert.ToInt32(TBOffsetV.Text);
            }
            catch (System.FormatException error)
            {
                MessageBox.Show(error.Message + "\n( 오프셋은 숫자만 입력하실 수 있습니다. )", "값 오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            try
            {
                element.Size = new SSize(Convert.ToInt32(TBWidth.Text), Convert.ToInt32(TBHeight.Text));
            }
            catch (System.FormatException error)
            {
                MessageBox.Show(error.Message + "\n( 크기는 숫자만 입력하실 수 있습니다. )", "값 오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            LBObjects.Items[LBObjects.SelectedIndex] = TBObjectName.Text;
        }