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; }
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) ); }
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); }
public void PutTile(int tilex, int tiley, Tile t) { try { map[tilex, tiley, level] = t; } catch { } Refresh(); }
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); }