xhads/source/material.ads

79 lines
3.6 KiB
Ada

-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
--
-- GNU General Public Licence (version 3 or later)
with core;
package material is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type enumeration is (
sulphur, mercury, mint, cinnamon, apple, peach,
pear, banana, orange, plum, cherry, lemon,
potato, wheat, carrot, cucumber, onion, garlic,
eggplant, tomato, meat, fish_meat, skull, animal_skull,
bone, rib_cage, animal_skin, animal_fur
);
------------------------------------------------------------------------------------------
type information is record
name : core.short_string;
cost : natural;
end record;
------------------------------------------------------------------------------------------
count : constant natural := enumeration'pos (enumeration'last) + 1;
trait : constant array (enumeration) of information := (
sulphur => ("Sulphur ", 7),
mercury => ("Mercury ", 13),
mint => ("Mint ", 3),
cinnamon => ("Cinnamon ", 5),
apple => ("Apple ", 2),
peach => ("Peach ", 2),
pear => ("Pear ", 2),
banana => ("Banana ", 3),
orange => ("Orange ", 3),
plum => ("Plum ", 3),
cherry => ("Cherry ", 3),
lemon => ("Lemon ", 2),
potato => ("Potato ", 1),
wheat => ("Wheat ", 1),
carrot => ("Carrot ", 2),
cucumber => ("Cucumber ", 3),
onion => ("Onion ", 2),
garlic => ("Garlic ", 2),
eggplant => ("Eggplant ", 3),
tomato => ("Tomato ", 2),
meat => ("Meat ", 3),
fish_meat => ("Fish Meat ", 2),
skull => ("Skull ", 1),
animal_skull => ("Animal Skull ", 1),
bone => ("Bone ", 1),
rib_cage => ("Rib Cage ", 1),
animal_skin => ("Animal Skin ", 5),
animal_fur => ("Animal Fur ", 7)
);
type points is array (enumeration) of core.point;
default : points := (others => (1, 12));
------------------------------------------------------------------------------------------
procedure configure;
procedure draw_points (data : in points := (others => (0, 0));
x : in integer := 0;
y : in integer := 0);
procedure save_points (here : in core.io.file_type; data : in points);
procedure load_points (here : in core.io.file_type; data : out points);
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end material;