public Color[] GetFGChunkArt(int chunkId, bool back, bool front) { Color[] pixels = new Color[128 * 128]; LayoutBlock chunk = mLayoutBlocks[chunkId]; for (int y = 0; y < 128; y++) { for (int x = 0; x < 128; x++) { int sx, sy, dx, dy; LayoutBlock.LayoutBlockTile chunkTile = chunk.Tiles[x / 16, y / 16]; if (chunkTile.Index >= mTileBlocks.Count) { pixels[y * 128 + x] = Color.Transparent; continue; } dx = x % 16; dy = y % 16; if (chunkTile.X) { dx = 15 - dx; } if (chunkTile.Y) { dy = 15 - dy; } dx += (x / 16) * 16; dy += (y / 16) * 16; TileBlock block = mTileBlocks[chunkTile.Index]; TileBlock.TileBlockTile blockTile = block.Tiles[(x % 16) / 8, (y % 16) / 8]; if (blockTile.P && !front) { continue; } if (!blockTile.P && !back) { continue; } sx = x % 8; sy = y % 8; if (blockTile.X) { sx = 7 - sx; } if (blockTile.Y) { sy = 7 - sy; } pixels[dy * 128 + dx] = GetArtTilePixel(blockTile.CC, blockTile.Index, sx, sy); } } return(pixels); }
private void SetDefaultBlockValues(LayoutBlock block) { block.Left = (PictureBox.Width / 2) - 50; block.Top = (PictureBox.Height / 2) - 50; block.Width = 100; block.Height = 100; block.Enabled = true; }