示例#1
0
        public Bitmap CopyToMap(PixelMap map)
        {
            Bitmap bitmap = new Bitmap(984, 570);
            int    index  = 0;

            for (int y = 0; y < Program.CurrentMap.Height; y++)
            {
                for (int x = 0; x < Program.CurrentMap.Width; x++)
                {
                    bitmap.SetPixel(x, y, map.pixels[index].color);
                    index++;
                }
            }
            return(bitmap);
        }
示例#2
0
        public void ClearObject(PixelMap map)
        {
            int index = 0;

            for (int y = 0; y < Program.CurrentMap.Height; y++)
            {
                for (int x = 0; x < Program.CurrentMap.Width; x++)
                {
                    if (map.pixels[index].color != Color.White)
                    {
                        Program.CurrentMap.SetPixel(x, y, Color.White);
                    }
                    index++;
                }
            }
        }
 public void AddPosition()
 {
     PixelMap map = new PixelMap();
     for (int y = 0; y < Program.CurrentMap.Height; y++)
     {
         for (int x = 0; x < Program.CurrentMap.Width; x++)
         {
             if (Program.CurrentMap.GetPixel(x, y) == Program.PreviousMap.GetPixel(x, y))
             {
                 map.pixels.Add(new Pixel(x, y, Color.White));
             }
             else
             {
                 map.pixels.Add(new Pixel(x, y, Program.CurrentMap.GetPixel(x, y)));
             }
         }
     }
     Program.MapPositionUObj.Add(Convert.ToInt32(Program.CurrentOpertedDataBase.Tables[2].Rows[Convert.ToInt32(Program.CurrentOpertedDataBase.Tables[2].Rows.Count - 1)][0]), map);
 }
示例#4
0
        private void Change_Click(object sender, EventArgs e)
        {
            var rows = Program.CurrentOpertedDataBase.Tables[1].Select("[" + RFilter.Text + "] = '" + Input.Text + "'");

            if (rows.Length == 0)
            {
                MessageBox.Show("Ни одного подходящего элемента найдено не было", "Изменение", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                var      row = rows[0];
                PixelMap map = Program.MapPositionR[Convert.ToInt32(row[0])];
                ClearObject(map);
                Program.road    = new RObj();
                Program.road.Id = Convert.ToInt32(row[0]);
                ChangeRCon con = new ChangeRCon();
                con.Show();
                this.Close();
            }
        }
示例#5
0
        private void Delete_Click(object sender, EventArgs e)
        {
            var rows = Program.CurrentOpertedDataBase.Tables[2].Select("[" + UFilter.Text + "] = '" + Input.Text + "'");

            if (rows.Length == 0)
            {
                MessageBox.Show("Ни одного подходящего элемента найдено не было", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                foreach (var row in rows)
                {
                    PixelMap map = Program.MapPositionUObj[Convert.ToInt32(row[0])];
                    ClearObject(map);
                    Program.MapPositionUObj.Remove(Convert.ToInt32(row[0]));
                    Program.CurrentOpertedDataBase.Tables[2].Rows.Remove(row);
                }
                MessageBox.Show("Все подходящие элементы удалены", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        public void AddPosition()
        {
            PixelMap map = new PixelMap();

            for (int y = 0; y < Program.CurrentMap.Height; y++)
            {
                for (int x = 0; x < Program.CurrentMap.Width; x++)
                {
                    if (Program.CurrentMap.GetPixel(x, y) == Program.PreviousMap.GetPixel(x, y))
                    {
                        map.pixels.Add(new Pixel(x, y, Color.White));
                    }
                    else
                    {
                        map.pixels.Add(new Pixel(x, y, Program.CurrentMap.GetPixel(x, y)));
                    }
                }
            }
            Program.MapPositionLS[Program.land.Id] = map;
        }
        private void DownloadDB_Click(object sender, EventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();

            if (open.ShowDialog() == DialogResult.Cancel)
            {
                MessageBox.Show("Загрузка отменена", "Загрузка", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                BinaryFormatter binary     = new BinaryFormatter();
                string          filename   = open.FileName;
                SaveFile        LoadedSave = null;
                using (FileStream fs = new FileStream(filename, FileMode.Open))
                {
                    LoadedSave = (SaveFile)binary.Deserialize(fs);
                    MessageBox.Show("Файл открыт", "Загрузка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                Program.CreateMap();
                Program.CountryName            = LoadedSave.CountryName;
                Program.RegionName             = LoadedSave.RegionName;
                Program.LocalityName           = LoadedSave.LocalityName;
                Program.ExtraInfo              = LoadedSave.ExtraInfo;
                Program.CurrentMap             = LoadedSave.CurrentMap;
                Program.TypeDataBase           = new DataSet();
                Program.CurrentOpertedDataBase = new DataSet();
                Program.MakeDataSet();
                Program.MakeConnecction();
                Program.AddColumn();
                for (int i = 0; i < LoadedSave.MLS.Length; i++)
                {
                    PixelMap map = CopyToPixelMap(LoadedSave.MLS[i].map);
                    Program.MapPositionLS.Add(LoadedSave.MLS[i].id, map);
                    Program.CurrentOpertedDataBase.Tables[0].Rows.Add(LoadedSave.landscape[i].Id, LoadedSave.landscape[i].Name, LoadedSave.landscape[i].Type, LoadedSave.landscape[i].ExtraInfo);
                }
                if (Program.MapPositionLS.Count != 0)
                {
                    Program.CurrentOpertedDataBase.Tables[0].Columns[0].AutoIncrementSeed = Convert.ToInt32(Program.CurrentOpertedDataBase.Tables[0].Rows[Program.MapPositionLS.Count - 1][0]);
                }
                for (int i = 0; i < LoadedSave.MR.Length; i++)
                {
                    PixelMap map = CopyToPixelMap(LoadedSave.MR[i].map);
                    Program.MapPositionR.Add(LoadedSave.MR[i].id, map);
                    Program.CurrentOpertedDataBase.Tables[1].Rows.Add(LoadedSave.roadsystem[i].Id, LoadedSave.roadsystem[i].Name, LoadedSave.roadsystem[i].Type, LoadedSave.roadsystem[i].ExtraInfo);
                }
                if (Program.MapPositionR.Count != 0)
                {
                    Program.CurrentOpertedDataBase.Tables[1].Columns[0].AutoIncrementSeed = Convert.ToInt32(Program.CurrentOpertedDataBase.Tables[1].Rows[Program.MapPositionR.Count - 1][0]);
                }
                for (int i = 0; i < LoadedSave.MUObj.Length; i++)
                {
                    PixelMap map = CopyToPixelMap(LoadedSave.MUObj[i].map);
                    Program.MapPositionUObj.Add(LoadedSave.MUObj[i].id, map);
                    Program.CurrentOpertedDataBase.Tables[2].Rows.Add(LoadedSave.urbanobjects[i].Id, LoadedSave.urbanobjects[i].Name, LoadedSave.urbanobjects[i].Type, LoadedSave.urbanobjects[i].Street, LoadedSave.urbanobjects[i].Num, LoadedSave.urbanobjects[i].ExtraInfo);
                }
                if (Program.MapPositionUObj.Count != 0)
                {
                    Program.CurrentOpertedDataBase.Tables[2].Columns[0].AutoIncrementSeed = Convert.ToInt32(Program.CurrentOpertedDataBase.Tables[2].Rows[Program.MapPositionUObj.Count - 1][0]);
                }
                Program.MakeTypeMas();
                Program.MakeTypeColor();
                Program.MakeHeadersType();
                Program.MakeHeaders();
                MainChangingWindow main = new MainChangingWindow();
                main.Show();
            }
        }