type Entity_Event is abstract new Event with private;
type Entities_Event is abstract new Event with private;
type Accelerate_Event is new Entity_Event with private;
type Delete_Entity_Event is new Entity_Event with private;
type Entities_Collided_Event is new Entities_Event with private;
type Entities_Separated_Event is new Entities_Event with private;
type Entity_Attribute_Event is new Entity_Event with private;
type Entity_Attribute_Changed_Event is new Entity_Attribute_Event with private;
type Entity_Created_Event is new Entity_Event with private;
type Entity_Deleted_Event is new Entity_Event with private;
type Entity_Face_Event is new Entity_Event with private;
type Entity_Grounded_Event is new Entity_Event with private;
type Entity_Hit_Wall_Event is new Entity_Event with private;
type Entity_Moved_Event is new Entity_Event with private;
type Entity_Resized_Event is new Entity_Event with private;
type Follow_Entity_Event is new Entity_Event with private;
type Frame_Changed_Event is new Entity_Event with private;
type Impulse_Event is new Entity_Event with private;
type Move_Entity_Event is new Entity_Event with private;
type Resize_Entity_Event is new Entity_Event with private;
type Set_Entity_Attribute_Event is new Entity_Attribute_Event with private;
type Spawn_Entity_Event is new Event with private;
type A_Accelerate_Event is access all Accelerate_Event'Class;
type A_Delete_Entity_Event is access all Delete_Entity_Event'Class;
type A_Entities_Collided_Event is access all Entities_Collided_Event'Class;
type A_Entities_Separated_Event is access all Entities_Separated_Event'Class;
type A_Entity_Attribute_Changed_Event is access all Entity_Attribute_Changed_Event;
type A_Entity_Created_Event is access all Entity_Created_Event'Class;
type A_Entity_Deleted_Event is access all Entity_Deleted_Event'Class;
type A_Entity_Face_Event is access all Entity_Face_Event'Class;
type A_Entity_Grounded_Event is access all Entity_Grounded_Event'Class;
type A_Entity_Hit_Wall_Event is access all Entity_Hit_Wall_Event'Class;
type A_Entity_Moved_Event is access all Entity_Moved_Event'Class;
type A_Entity_Resized_Event is access all Entity_Resized_Event'Class;
type A_Follow_Entity_Event is access all Follow_Entity_Event'Class;
type A_Frame_Changed_Event is access all Frame_Changed_Event'Class;
type A_Impulse_Event is access all Impulse_Event'Class;
type A_Move_Entity_Event is access all Move_Entity_Event'Class;
type A_Resize_Entity_Event is access all Resize_Entity_Event'Class;
type A_Set_Entity_Attribute_Event is access all Set_Entity_Attribute_Event;
type A_Spawn_Entity_Event is access all Spawn_Entity_Event;
ACCELERATE_ID : constant Event_Id := To_Event_Id( "Accelerate" );
DELETE_ENTITY_ID : constant Event_Id := To_Event_Id( "Delete_Entity" );
ENTITIES_COLLIDED_ID: constant Event_Id := To_Event_Id( "Entities_Collided" );
ENTITIES_SEPARATED_ID: constant Event_Id := To_Event_Id( "Entities_Separated" );
ENTITY_ATTRIBUTE_CHANGED_ID : constant Event_Id := To_Event_Id( "Entity_Attribute_Changed" );
ENTITY_CREATED_ID : constant Event_Id := To_Event_Id( "Entity_Created" );
ENTITY_DELETED_ID : constant Event_Id := To_Event_Id( "Entity_Deleted" );
ENTITY_FACE_ID : constant Event_Id := To_Event_Id( "Entity_Face" );
ENTITY_GROUNDED_ID : constant Event_Id := To_Event_Id( "Entity_Grounded" );
ENTITY_HIT_WALL_ID : constant Event_Id := To_Event_Id( "Entity_Hit_Wall" );
ENTITY_MOVED_ID : constant Event_Id := To_Event_Id( "Entity_Moved" );
ENTITY_RESIZED_ID : constant Event_Id := To_Event_Id( "Entity_Resized" );
FOLLOW_ENTITY_ID : constant Event_Id := To_Event_Id( "Follow_Entity" );
FRAME_CHANGED_ID : constant Event_Id := To_Event_Id( "Frame_Changed" );
IMPULSE_ID : constant Event_Id := To_Event_Id( "Impulse" );
MOVE_ENTITY_ID : constant Event_Id := To_Event_Id( "Move_Entity" );
RESIZE_ENTITY_ID : constant Event_Id := To_Event_Id( "Resize_Entity" );
SET_ENTITY_ATTRIBUTE_ID : constant Event_Id := To_Event_Id( "Set_Entity_Attribute" );
SPAWN_ENTITY_ID : constant Event_Id := To_Event_Id( "Spawn_Entity" );
procedure Copy_Value
( | this | : access Entity_Attribute_Event; |
val | : in out A_Value ); |
procedure Copy_Attributes
( | this | : not null access Entity_Created_Event'Class; |
attributes | : in out A_Association ); |
function Get_Direction
( | this | : not null access Entity_Hit_Wall_Event'Class ) |
procedure Queue_Accelerate
( | id | : Entity_Id; |
dir | : Cardinal_Direction; | |
vel | : Float; | |
acc | : Float ); |
procedure Queue_Delete_Entity
( | id | : Entity_Id ); |
procedure Queue_Entities_Collided
( | a, b | : Entity_Id ); |
procedure Queue_Entities_Separated
( | a, b | : Entity_Id ); |
procedure Queue_Entity_Created
( | id | : Entity_Id; |
class | : String; | |
physical, metaphysical, clipped | : Boolean; | |
width, height | : Natural; | |
x, y | : Float; | |
xv, yv | : Float; | |
libName | : String; | |
frame | : Natural; | |
attributes | : not null A_Association ); |
procedure Queue_Entity_Deleted
( | id | : Entity_Id ); |
procedure Queue_Entity_Face
( | id | : Entity_Id; |
dir | : Direction_Type ); |
procedure Queue_Entity_Grounded
( | id | : Entity_Id; |
grounded | : Boolean ); |
procedure Queue_Entity_Hit_Wall
( | id | : Entity_Id; |
dir | : Cardinal_Direction ); |
procedure Queue_Entity_Moved
( | id | : Entity_Id; |
x, y, xv, yv | : Float ); |
procedure Queue_Entity_Resized
( | id | : Entity_Id; |
width, height | : Natural ); |
procedure Queue_Impulse
( | id | : Entity_Id; |
name | : Hashed_String ); |
procedure Queue_Follow_Entity
( | id | : Entity_Id ); |
procedure Queue_Frame_Changed
( | id | : Entity_Id; |
frame | : Natural ); |
procedure Queue_Move_Entity
( | id | : Entity_Id; |
x, y | : Float ); |
procedure Queue_Resize_Entity
( | id | : Entity_Id; |
width, height | : Natural ); |
procedure Queue_Spawn_Entity
( | id | : String; |
x, y | : Float; | |
width, height | : Natural := 0; | |
xv, yv | : Float := 0.0 ); |