Пример #1
0
        public void Add(MapItem item)
        {
            if (item is MapObject)
            {
                MapObject o  = (MapObject)item;
                int       id = 0;
                while (layer.GetChild("obj").childs.Contains(id.ToString()))
                {
                    id++;
                }
                o.ID          = id;
                o.Object.Name = o.ID.ToString();
                objects.Add(o);
                objects.Sort(Map.CompareItems);
                layer.GetChild("obj").Add(o.Object);
                OrderObjects();
            }
            else if (item is MapTile)
            {
                MapTile t = (MapTile)item;

                string style = info.GetString("tS");

                IMGFile tilesF = MapEditor.file.Directory.GetIMG("Tile/" + style + ".img");

                if (tilesF.GetChild(t.Object.GetString("u") + "/" + t.Object.GetInt("no").ToString()) == null)
                {
                    t.Object.SetInt("no", MapEditor.Instance.random.Next(tilesF.GetChild(t.Object.GetString("u")).childs.Count));
                }
                IMGEntry image = MapEditor.file.Directory.GetIMG("Tile/" + style + ".img").GetChild(t.Object.GetString("u") + "/" + t.Object.GetInt("no").ToString());
                if (t.Image != image)
                {
                    t.Image = image;
                }

                int id = 0;
                while (layer.GetChild("tile").childs.Contains(id.ToString()))
                {
                    id++;
                }
                t.ID          = id;
                t.Object.Name = t.ID.ToString();
                tiles.Add(t);
                tiles.Sort(Map.CompareItems);
                layer.GetChild("tile").Add(t.Object);
                OrderTiles();
            }
            else
            {
                Map.Instance.Add(item);
            }
        }
Пример #2
0
        public GetMapInfo(IMGEntry info)
        {
            InitializeComponent();
            List <string> MusicNames = new List <string>();

            lock (MapEditor.SoundLock)
            {
                foreach (IMGFile bgms in MapEditor.sound.Directory.IMGs.Values)
                {
                    if (bgms.Name.Substring(0, 3) == "Bgm")
                    {
                        foreach (IMGEntry sound in bgms.childs.Values)
                        {
                            MusicNames.Add(bgms.Name + "/" + sound.Name);
                        }
                    }
                }
            }

            MusicNames.Sort();

            BGMsList.Items.AddRange(MusicNames.ToArray());

            BGMsList.SelectedItem = info.GetString("bgm").Replace("/", ".img/");
            int returnMap = info.GetInt("returnMap");

            if (returnMap == 999999999)
            {
                IsReturnMap.Checked = true;
                ReturnMap.Enabled   = false;
            }
            else
            {
                IsReturnMap.Checked = false;
                ReturnMap.Enabled   = true;
            }
            ReturnMap.Text    = returnMap.ToString();
            IsTown.Checked    = info.GetInt("town") == 1;
            IsSwim.Checked    = info.GetInt("swim") == 1;
            IsMiniMap.Checked = info.parent.GetChild("miniMap") != null;
            selectedMark      = info.GetString("mapMark");
            MarkPreview.Image = MapMarkSelect.GetMark(selectedMark);

            Bitmap background = new Bitmap(800, 600);

            using (Graphics g = Graphics.FromImage(background))
            {
                foreach (MapBack b in Map.Instance.backs)
                {
                    b.Draw(g);
                }
            }
            Bitmap thumb = new Bitmap(160, 120);

            using (Graphics g = Graphics.FromImage(thumb))
            {
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                g.DrawImage(background, 0, 0, 160, 120);
                g.Dispose();
            }

            BackgroundPreview.Image = thumb;
        }