public void SetPixel(int x, int y, PaintMode? mode = null, bool? erase = null)
{
Tile curTile = CurrentWorld.Tiles[x, y];
PaintMode curMode = mode ?? TilePicker.PaintMode;
bool isErase = erase ?? TilePicker.IsEraser;
switch (curMode)
{
case PaintMode.TileAndWall:
if (TilePicker.TileStyleActive)
SetTile(curTile, isErase);
if (TilePicker.WallStyleActive)
SetWall(curTile, isErase);
if (TilePicker.BrickStyleActive && TilePicker.ExtrasActive)
SetPixelAutomatic(curTile, brickStyle: TilePicker.BrickStyle);
if (TilePicker.TilePaintActive)
SetPixelAutomatic(curTile, tileColor: isErase ? 0 : TilePicker.TileColor);
if (TilePicker.WallPaintActive)
SetPixelAutomatic(curTile, wallColor: isErase ? 0 : TilePicker.WallColor);
if (TilePicker.ExtrasActive)
SetPixelAutomatic(curTile, actuator: isErase ? false : TilePicker.Actuator, actuatorInActive: isErase ? false : TilePicker.ActuatorInActive);
break;
case PaintMode.Wire:
if (TilePicker.RedWireActive)
SetPixelAutomatic(curTile, wire: !isErase);
if (TilePicker.BlueWireActive)
SetPixelAutomatic(curTile, wire2: !isErase);
if (TilePicker.GreenWireActive)
SetPixelAutomatic(curTile, wire3: !isErase);
if (TilePicker.YellowWireActive)
SetPixelAutomatic(curTile, wire4: !isErase);
break;
case PaintMode.Liquid:
SetPixelAutomatic(curTile, liquid: isErase ? (byte)0 : (byte)255, liquidType: TilePicker.LiquidType);
break;
case PaintMode.Track:
SetTrack(x, y, curTile, isErase, (TilePicker.TrackMode == TrackMode.Hammer), true);
break;
}
// curTile.BrickStyle = TilePicker.BrickStyle;
Color curBgColor = GetBackgroundColor(y);
PixelMap.SetPixelColor(x, y, Render.PixelMap.GetTileColor(CurrentWorld.Tiles[x, y], curBgColor, _showWalls, _showTiles, _showLiquid, _showRedWires, _showBlueWires, _showGreenWires, _showYellowWires));
}