package Tools.Paintbrushes is
type Paintbrush is new Tool with private;
function Create_Paintbrush( tile : Natural ) return A_Tool;
pragma Postcondition( Create_Paintbrush'Result /= null );
function Get_Tile( this : not null access Paintbrush'Class ) return Natural;
private
type Paintbrush is new Tool with
record
tile : Natural := 0;
overTileX,
overTileY : Integer := -1;
overLayer : Integer := -1;
lastFunc : Function_Type := Primary;
end record;
procedure Apply( this : access Paintbrush;
func : Function_Type;
modifiers : Modifiers_Array;
first : Boolean;
world : not null A_World;
worldX,
worldY,
layer : Integer );
procedure Construct( this : access Paintbrush; tile : Natural );
end Tools.Paintbrushes;