예제 #1
0
        protected override void OnKeyUp(KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                mode = mode + 1;
            }
            if (mode == Mode.MAX)
            {
                mode = 0;
            }
            Text = mode.ToString();

            if (e.KeyCode == Keys.S)
            {
                SaveFileDialog sfd = new SaveFileDialog();
                sfd.Filter = "WMap files (*.wmap)|*.wmap|All Files (*.*)|*.*";
                if (sfd.ShowDialog() != DialogResult.Cancel)
                {
                    WorldMapExporter.Export(tiles, sfd.FileName);
                }
            }
            else if (e.KeyCode == Keys.R)
            {
                tiles     = (RealmTile[, ])tilesBak.Clone();
                bmp       = RenderColorBmp(tiles);
                pic.Image = pic2.Image = bmp;
            }
            base.OnKeyUp(e);
        }
예제 #2
0
        public byte[] SaveWorld()
        {
            var tiles = new TerrainTile[Map.Width, Map.Height];

            for (int y = 0; y < Map.Height; y++)
            {
                for (int x = 0; x < Map.Width; x++)
                {
                    var mTile = Map[x, y];
                    tiles[x, y] = new TerrainTile
                    {
                        TileId  = mTile.TileId,
                        TileObj = GetObjIdAt(x, y),
                        Name    = mTile.Name,
                        Terrain = (TerrainType)Enum.Parse(typeof(TerrainType), mTile.Terrain.ToString()),
                        Region  = (TileRegion)Enum.Parse(typeof(TileRegion), mTile.Region.ToString())
                    };
                }
            }
            return(WorldMapExporter.Export(tiles));
        }