xhads/source/material.ads

81 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 definition is record
name : core.unstring;
cost : natural;
end record;
type points is array (enumeration) of core.point;
------------------------------------------------------------------------------------------
count : constant natural := enumeration'pos (enumeration'last) + 1;
description : constant array (enumeration) of definition := (
sulphur => (core.unbound ("Sulphur"), 7),
mercury => (core.unbound ("Mercury"), 13),
mint => (core.unbound ("Mint"), 3),
cinnamon => (core.unbound ("Cinnamon"), 5),
apple => (core.unbound ("Apple"), 2),
peach => (core.unbound ("Peach"), 2),
pear => (core.unbound ("Pear"), 2),
banana => (core.unbound ("Banana"), 3),
orange => (core.unbound ("Orange"), 3),
plum => (core.unbound ("Plum"), 3),
cherry => (core.unbound ("Cherry"), 3),
lemon => (core.unbound ("Lemon"), 2),
potato => (core.unbound ("Potato"), 1),
wheat => (core.unbound ("Wheat"), 1),
carrot => (core.unbound ("Carrot"), 2),
cucumber => (core.unbound ("Cucumber"), 3),
onion => (core.unbound ("Onion"), 2),
garlic => (core.unbound ("Garlic"), 2),
eggplant => (core.unbound ("Eggplant"), 3),
tomato => (core.unbound ("Tomato"), 2),
meat => (core.unbound ("Meat"), 3),
fish_meat => (core.unbound ("Fish Meat"), 2),
skull => (core.unbound ("Skull"), 1),
animal_skull => (core.unbound ("Animal Skull"), 1),
bone => (core.unbound ("Bone"), 1),
rib_cage => (core.unbound ("Rib Cage"), 1),
animal_skin => (core.unbound ("Animal Skin"), 5),
animal_fur => (core.unbound ("Animal Fur"), 7)
);
default : points := (others => (1, 12));
icon : array (enumeration) of core.sprite;
------------------------------------------------------------------------------------------
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;