private void tiles_OnMouseMove(Elements.TileGfxTile tile, InputEventMouse e, int pixel) { if (tile.TileX == 0 && tile.TileY == 0) { tiles_OnClick(tile, e, pixel); } }
private void refreshTiles() { if (State.Data.TileGfx.PageCount > 0) { if (m_Tiles.Count == 0) { panel_Editor.RemoveAllWidgets(); m_Tiles.Clear(); int pixelscale = 16; float tilescale = 8.5f; int rows = (int)System.Math.Ceiling((double)(panel_Editor.Area.Width / pixelscale - 8) / 18); int columns = (int)System.Math.Ceiling((double)(panel_Editor.Area.Height / pixelscale - 8) / 18); int x = (panel_Editor.Area.Width / 2) - (pixelscale * 4) - rows * (int)(pixelscale * tilescale); int y = (panel_Editor.Area.Height / 2) - (pixelscale * 4) - columns * (int)(pixelscale * tilescale); for (int iY = -columns; iY <= columns; iY++) { for (int iX = -rows; iX <= rows; iX++) { Elements.TileGfxTile tile = new Elements.TileGfxTile( x + ((iX + columns) * (int)(tilescale * pixelscale)), y + ((iY + rows) * (int)(tilescale * pixelscale)), pixelscale, iX, iY, tiles_OnClick, tiles_OnMouseMove); panel_Editor.AddWidget(tile); m_Tiles.Add(tile); } } } foreach (Elements.TileGfxTile tile in m_Tiles) { int x = tile.TileX + (State.SelectedTile % 16); int y = tile.TileY + (State.SelectedTile / 16); if (x < 0 || x >= 16 || y < 0 || y >= 16) { tile.Visible = false; } else { tile.Visible = true; tile.TileIndex = x + y * 16; tile.PageTexture = State.GfxPage(State.SelectedPage).Texture; } } } else if (State.Data.TileGfx.PageCount == 0 && m_Tiles.Count > 0) { panel_Editor.RemoveAllWidgets(); m_Tiles.Clear(); } }
private void tiles_OnClick(Elements.TileGfxTile tile, InputEventMouse e, int pixel) { if (e.Button == MouseButton.Left) { if (tile.TileX != 0 || tile.TileY != 0) { pages_OnClick(State.SelectedPage, tile.TileIndex); } else { State.SetPixel(State.SelectedPage, State.SelectedTile, pixel, (byte)State.SelectedColor); } } else if (e.Button == MouseButton.Right) { byte color = State.Data.TileGfx.GetPixel(State.SelectedPage, State.SelectedTile + tile.TileX + tile.TileY * 16, pixel); wells_OnClick(m_Wells[color]); } }