Exemplo n.º 1
0
 byte isTileSame(Tile[, ,] tilemap, int x, int y, int z)
 {
     if (x >= tilemap.GetLength(0) || x < 0)
     {
         return 1;
     }
     if (y >= tilemap.GetLength(0) || y < 0)
     {
         return 1;
     }
     return this == tilemap[x, y, z] ? (byte)1 : (byte)0;
 }
Exemplo n.º 2
0
 public byte Surroundings(Tile[, ,] tilemap, int x, int y, int z)
 {
     return (byte)(
         (isTileSame(tilemap, x+1, y-1, z) << 0) |
         (isTileSame(tilemap, x+1, y+1, z) << 1) |
         (isTileSame(tilemap, x-1, y+1, z) << 2) |
         (isTileSame(tilemap, x-1, y-1, z) << 3) |
         (isTileSame(tilemap, x, y-1, z) << 4) |
         (isTileSame(tilemap, x+1, y, z) << 5) |
         (isTileSame(tilemap, x, y+1, z) << 6) |
         (isTileSame(tilemap, x-1, y, z) << 7)
         );
 }
Exemplo n.º 3
0
 private void AddSimpleTile(SimpleTile basicTile)
 {
     RadioButton btn = new RadioButton();
     btn.Appearance = Appearance.Button;
     btn.Size = new System.Drawing.Size(40, 40);
     btn.Image = basicTile.GetBitmap(0, 0);
     btn.Tag = basicTile;
     btn.Click += new EventHandler((o, evt) =>
     {
         paintTile = (Tile)((RadioButton)o).Tag;
         populatePanel2WithTileEditor();
     });
     flow_tiles.Controls.Add(btn);
 }
Exemplo n.º 4
0
 public void PutTile(int tilex, int tiley, Tile t)
 {
     try
     {
         map[tilex, tiley, level] = t;
     }
     catch { }
     Refresh();
 }
Exemplo n.º 5
0
        private void AddAutotile94(Tile autotile, AutoTile94 at)
        {
            RadioButton btn = new RadioButton();
            btn.Appearance = Appearance.Button;
            btn.Size = new System.Drawing.Size(40, 40);
            btn.Image = autotile.GetBitmap(0, 0);

            int t = Tile.tilesize;
            var nine = new Bitmap(t * 3, t * 3);
            var four = new Bitmap(t * 2, t * 2);
            using (Graphics g = Graphics.FromImage(nine))
            {
                for (int x = 0; x < 3; x++)
                {
                    for (int y = 0; y < 3; y++)
                    {
                        g.DrawImage(autotile.GetBitmap(0, 0), t * x, t * y);
                    }
                }
            }

            using (Graphics g = Graphics.FromImage(four))
            {
                for (int x = 0; x < 2; x++)
                {
                    for (int y = 0; y < 2; y++)
                    {
                        g.DrawImage(autotile.GetBitmap(0, 0), t * x, t * y);
                    }
                }
            }

            btn.Tag = at;
            btn.Click += new EventHandler((o, evt) =>
            {
                paintTile = (Tile)((RadioButton)o).Tag;
                populatePanel2WithTileEditor();
            });
            flow_tiles.Controls.Add(btn);
        }