public override void activate(int ex, int ey) { pixelGridPanel.toolGrid.clear(RGB.nullRGB); int gx = pixelGridPanel.gridPixelX(ex); int gy = pixelGridPanel.gridPixelY(ey); if (gx >= 0 && gx < pixelGridPanel.ActiveGrid.Size.x && gy >= 0 && gy < pixelGridPanel.ActiveGrid.Size.y) { foreach (Vector v in PixelGridPanel.getPixelsInBetween( pixelGridPanel.gridPixelX(ex), pixelGridPanel.gridPixelY(ey), pixelGridPanel.gridPixelX(pixelGridPanel.lastMousePosition.x), pixelGridPanel.gridPixelY(pixelGridPanel.lastMousePosition.y), 0.2f )) { pixelGridPanel.toolGrid.setPixel( v.x, v.y, pixelGridPanel.drawColor ); } } pixelGridPanel.Invalidate(); }
protected override bool canFillPixel(int gx, int gy, RGB fromRGB, RGB toRGB) { bool canFill = base.canFillPixel(gx, gy, fromRGB, toRGB); if (!canFill) { return(false); } //Return true if not required to check line of sight if (!checkLOS) { return(true); } //Exit if there's no line of sight to beginning foreach (Vector v in PixelGridPanel.getPixelsInBetween( fillSparkPos.x, fillSparkPos.y, gx, gy, 0.4f )) { RGB rgb = pixelGridPanel.ActiveGrid.getPixel(v.x, v.y); if (v.x != gx || v.y != gy) { if (rgb != fromRGB && rgb != toRGB) { return(false); } } } return(true); }
public Tool(PixelGridPanel pixelGridPanel) { this.pixelGridPanel = pixelGridPanel; }
public HandTool(PixelGridPanel pgp) : base(pgp) { pixelGridPanel.MouseDown += overtakeMouseDown; }
public FillTool(PixelGridPanel pgp) : base(pgp) { }
public LineTool(PixelGridPanel pgp) : base(pgp) { }
public LightBulbFillTool(PixelGridPanel pgp) : base(pgp) { }
public PencilTool(PixelGridPanel pgp) : base(pgp) { }