type World_Object is abstract new Object and Event_Listener and Process and Symbol_Resolver with private;
type A_World is access all World_Object'Class;
function Create_World
( | width, height | : Positive; |
libName, domain | : String ) return A_World; |
function Load_World
( | name | : String ) return A_World; |
procedure Attach_To_Framework
( | this | : not null access World_Object'Class; |
game | : not null A_Game_State; | |
corral | : not null A_Corral; | |
pman | : not null A_Process_Manager ); |
procedure Detach_From_Framework
( | this | : not null access World_Object'Class; |
destroy | : Boolean ); |
function Evaluate
( | this | : not null access World_Object'Class; |
expression | : String ) return A_Value; |
procedure Examine_Entities
( | this | : not null access World_Object'Class; |
examine | : not null access procedure( e : not null A_Entity ) ); |
function Get_Entity
( | this | : access World_Object; |
id | : Entity_Id ) return A_Entity; |
function Get_Filename
( | this | : access World_Object ) return String; |
function Get_Game_State
( | this | : not null access World_Object'Class ) return A_Game_State; |
function Get_Height
( | this | : not null access World_Object'Class ) return Positive; |
function Get_Height_Tiles
( | this | : not null access World_Object'Class ) return Positive; |
function Get_Library
( | this | : not null access World_Object'Class ) return A_Tile_Library; |
function Get_Music
( | this | : not null access World_Object'Class ) return String; |
function Get_Player
( | this | : not null access World_Object'Class ) return A_Player; |
function Get_Tile_Id
( | this | : not null access World_Object'Class; |
layer, x, y | : Integer ) return Natural; |
function Get_Title
( | this | : not null access World_Object'Class ) return String; |
function Get_Width
( | this | : not null access World_Object'Class) return Positive; |
function Get_Width_Tiles
( | this | : not null access World_Object'Class ) return Positive; |
procedure Resize
( | this | : not null access World_Object'Class; |
width, height | : Positive ); |
procedure Save
( | this | : not null access World_Object'Class; |
name | : String; | |
overwrite | : Boolean := True ); |
procedure Set_Property
( | this | : access World_Object; |
name, value | : String ); |
procedure Set_Tile
( | this | : access World_Object; |
layer | : Integer; | |
x, y | : Integer; | |
id | : Natural; | |
notify | : Boolean := True ); |
procedure Set_Tile
( | this | : access World_Object; |
layer | : Integer; | |
x, y | : Float; | |
id | : Natural; | |
notify | : Boolean := True ); |
procedure Spawn_Entity
( | this | : access World_Object; |
id | : String; | |
x, y | : Float; | |
width, height | : Natural := 0; | |
xv, yv | : Float := 0.0 ); |
function Tile_Width
( | this | : not null access World_Object'Class ) return Positive; |
function Object_Input
( | stream | : access Root_Stream_Type'Class ) return World_Object is abstract; |