Index

Package: Entity_Factory (generic)

Description

generic package is used to register an association of entity class
-- names and allocators. This allows us to instantiate an entity class simply
-- by name, without ever referencing its implementation in the code.
package Entity_Factory is
This generic package is used to register an association of entity class names and allocators. This allows us to instantiate an entity class simply by name, without ever referencing its implementation in the code.

Types

Allocator

type Allocator is access function return Entity_Access;

References:

entity_factory.ads:13:10 (declaration)
entity_factory.adb:14:24 (reference)
entity_factory.adb:118:64 (reference)
entity_factory.ads:32:64 (reference)

Subprograms & Entries

Initialize

procedure Initialize
( factoryName: String );

References:

entity_factory.ads:19:15 (declaration)
entities.adb:550:17 (reference)
entity_factory.adb:48:15 (body)
entity_factory.adb:76:9 (label)

Calls:

Debugging.Dbg defined at debugging.ads:58:15
Entity_Factory.Initialize.Init_Class defined at entity_factory.adb:50:19
Iterate defined at a-cihama.ads:247:14
To_String defined at a-strunb.ads:65:13
To_Unbounded_String defined at a-strunb.ads:59:13
Initializes the factory by name. The name should be the class of entities that it manufactures. (ex: "item", "trigger", "player", etc). Classes should be registered before the factory is initialized. Template instances of each registered class are created at this time.

Finalize

procedure Finalize;

References:

entity_factory.ads:22:15 (declaration)
entities.adb:555:40 (reference)
entity_factory.adb:80:15 (body)
entity_factory.adb:101:9 (label)

Calls:

Debugging.Dbg defined at debugging.ads:58:15
Entity_Factory.Finalize.Delete_Class defined at entity_factory.adb:82:19
Iterate defined at a-cihama.ads:247:14
To_String defined at a-strunb.ads:65:13

Allocate

function Allocate
( id: String )
return Entity_Access;

References:

entity_factory.ads:25:14 (declaration)
entities.adb:504:70 (reference)
entity_factory.adb:30:14 (body)
entity_factory.adb:44:9 (label)

Calls:

Ada.Exceptions.Exception_Message defined at a-except.ads:101:13
Debugging.Dbg defined at debugging.ads:58:15
Element defined at a-cihama.ads:103:13
Find defined at a-cihama.ads:220:13
Has_Element defined at a-cihama.ads:232:13
To_String defined at a-strunb.ads:65:13
Returns null if no allocator is registered for the given id.

Iterate_Classes

procedure Iterate_Classes
( examine: access procedure( id : String )
);

References:

entity_factory.ads:29:15 (declaration)
entities.adb:536:21 (reference)
entities.adb:538:21 (reference)
entity_factory.adb:105:15 (body)
entity_factory.adb:114:9 (label)

Calls:

Entity_Factory.Iterate_Classes.Examine_Class defined at entity_factory.adb:107:19
Iterate defined at a-cihama.ads:247:14
Iterate over the registered class id strings.

Register_Class

procedure Register_Class
( id: String;
allocate: not null Allocator );

References:

entity_factory.ads:32:15 (declaration)
entity_factory.adb:118:15 (body)
entity_factory.adb:133:9 (label)
entities-enemies-keen4.adb:448:22 (reference)
entities-enemies-keen4.adb:449:22 (reference)
entities-enemies-keen4.adb:450:22 (reference)
entities-enemies-keen4.adb:451:22 (reference)
entities-enemies-keen4.adb:452:22 (reference)
entities-enemies-keen4.adb:453:22 (reference)
entities-enemies-keen4.adb:454:22 (reference)
entities-enemies-keen4.adb:455:22 (reference)
entities-enemies-keen4.adb:456:22 (reference)
entities-items-keen4.adb:779:22 (reference)
entities-items-keen4.adb:780:22 (reference)
entities-items-keen4.adb:781:22 (reference)
entities-items-keen4.adb:782:22 (reference)
entities-items-keen4.adb:783:22 (reference)
entities-items-keen4.adb:784:22 (reference)
entities-items-keen4.adb:785:22 (reference)
entities-items-keen4.adb:786:22 (reference)
entities-items-keen4.adb:787:22 (reference)
entities-items-keen4.adb:788:22 (reference)
entities-items-keen4.adb:789:22 (reference)
entities-items-keen4.adb:790:22 (reference)
entities-items-keen4.adb:791:22 (reference)
entities-players-keen.adb:1146:22 (reference)
entities-players-little_keen.adb:483:22 (reference)
entities-sprites-keen4.adb:962:22 (reference)
entities-sprites-keen4.adb:963:22 (reference)
entities-sprites-keen4.adb:964:22 (reference)
entities-sprites-keen4.adb:965:22 (reference)
entities-sprites-keen4.adb:966:22 (reference)
entities-sprites-keen4.adb:967:22 (reference)
entities-sprites-keen4.adb:968:22 (reference)
entities-sprites-keen4.adb:969:22 (reference)
entities-sprites-keen4.adb:970:22 (reference)
entities-sprites-keen4.adb:971:22 (reference)
entities-sprites-keen4.adb:972:22 (reference)
entities-sprites-keen4.adb:973:22 (reference)
entities-sprites-keen4.adb:974:22 (reference)
entities-triggers-keen.adb:135:22 (reference)

Calls:

Contains defined at a-cihama.ads:226:13
Debugging.Dbg defined at debugging.ads:58:15
Insert defined at a-cihama.ads:149:14
To_String defined at a-strunb.ads:65:13
Registers a class allocation function with an id.

Template

function Template
( id: String )
return Entity_Access;

References:

entity_factory.ads:39:14 (declaration)
entities.adb:544:70 (reference)
entity_factory.adb:137:14 (body)
entity_factory.adb:144:9 (label)

Calls:

Element defined at a-cihama.ads:103:13
Find defined at a-cihama.ads:220:13
Has_Element defined at a-cihama.ads:232:13
Returns a reference to a template instantiation of the class registered with 'id'. Template entities are instantiated when the factory package is initialized. If no class is registered for the id, null will be returned. Do not modify the entity that is returned!