|
- -- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
- --
- -- GNU General Public Licence (version 3 or later)
-
- with core, item, unit, construction;
-
- package world is
-
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
- type biome is (
- ash, sand, grass, rough, snow, swamp
- );
-
- ------------------------------------------------------------------------------------------
-
- type landmark_index is (
- dead_tree, mossy_rock, palm_tree, pine_tree, reeds, rock,
- snowed_pine_tree, snowed_rock, spiky_rock
- );
-
- type landmark_trait is record
- spawn : biome;
- clip : boolean;
- frames : integer;
- end record;
-
- type entity_trait is record
- index : natural;
- x, y : integer;
- end record;
-
- type tile_array is array (natural range <>, natural range <>) of integer;
- type entity_array is array (natural range <>) of entity_trait;
-
- type information is record
- kind : biome;
- width : natural;
- height : natural;
- tiles : access tile_array;
- landmarks : access entity_array;
- constructions : access entity_array;
- end record;
-
- ------------------------------------------------------------------------------------------
-
- tiles : core.sprite;
- landmarks : array (landmark_index) of core.sprite;
-
- landmark_limit : constant integer := 120;
-
- trait : constant array (landmark_index) of landmark_trait := (
- dead_tree => (ash, true, 1),
- mossy_rock => (swamp, true, 1),
- palm_tree => (sand, true, 4),
- pine_tree => (grass, true, 4),
- reeds => (swamp, false, 4),
- rock => (sand, true, 1),
- snowed_pine_tree => (snow, true, 4),
- snowed_rock => (snow, true, 1),
- spiky_rock => (ash, true, 1)
- );
-
- map : information;
-
- ------------------------------------------------------------------------------------------
-
- procedure configure;
-
- procedure make (index : in biome; width, height : in natural);
-
- procedure draw;
-
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
- end world;
|