package Worlds is
type World_Object is new Object and Event_Listener and Process and Evaluation_Node with private;
type A_World is access all World_Object'Class;
function Create_World
( | width, height | : Positive; |
physicalLayers | : Maps.Boolean_Array; | |
library, domain | : String ) return A_World; |
function Load_World
( | name | : String ) return A_World; |
procedure Attach_To_Framework
( | this | : not null access World_Object'Class; |
gameState | : not null A_Game_State; | |
corral | : not null A_Corral ); |
procedure Detach_From_Framework
( | this | : not null access World_Object'Class ); |
function Evaluate_Function
( | this | : access World_Object; |
name | : String; | |
arguments | : Value_Array ) return Value_Ptr; |
function Evaluate_Symbol
( | this | : access World_Object; |
symbol | : String ) return Value_Ptr; |
procedure Examine_Entities
( | this | : not null access World_Object'Class; |
examine | : not null access procedure( e : not null A_Entity ) ); |
function Get_Entity
( | this | : not null access World_Object'Class; |
id | : Entity_Id ) return A_Entity; |
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_Layers
( | 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_Player
( | this | : not null access World_Object'Class ) return A_Player; |
function Get_Property
( | this | : not null access World_Object'Class; |
name | : String ) return Value_Ptr; |
function Get_Tile_Id
( | this | : not null access World_Object'Class; |
layer | : Positive; | |
x, y | : Integer ) return Natural; |
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 | : not null access World_Object'Class; |
name | : String; | |
value | : Value_Ptr'Class ); |
procedure Set_Tile
( | this | : not null access World_Object'Class; |
layer | : Integer; | |
x, y | : Integer; | |
id | : Natural; | |
notify | : Boolean := True ); |
procedure Set_Tile
( | this | : not null access World_Object'Class; |
layer | : Integer; | |
x, y | : Float; | |
id | : Natural; | |
notify | : Boolean := True ); |
function Spawn_Entity
( | this | : not null access World_Object'Class; |
id | : String; | |
x, y | : Float; | |
width, height | : Natural := 0; | |
xv, yv | : Float := 0.0 ) return Entity_Id; |
function Tile_Width
( | this | : not null access World_Object'Class ) return Positive; |
function Object_Input
( | stream | : access Root_Stream_Type'Class ) return World_Object; |