xhads/source/attribute.adb

65 lines
2.5 KiB
Ada
Raw Normal View History

-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
--
-- GNU General Public Licence (version 3 or later)
with core, ui;
2024-02-15 21:03:09 -05:00
package body attribute is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sprite : array (enumeration) of core.sprite;
2024-04-23 16:19:29 -04:00
------------------------------------------------------------------------------------------
procedure configure is
structure : ui.structure;
begin
2024-03-11 08:42:25 -04:00
core.echo (core.comment, "Configuring attribute components...");
--
structure.title := "Attribute Menu ";
structure.toggle := core.signal_a;
structure.show := false;
structure.center := false;
structure.resize := true;
structure.x := 60;
structure.y := 80;
structure.gui_n := count;
--
ui.add_structure (structure);
--
for index in enumeration loop
sprite (index) := core.import_sprite ("./sprite/attribute/" & core.lowercase (enumeration'image (index)) & ".png", 1, 1);
--
2024-05-04 08:26:51 -04:00
ui.add_structure_button (sprite (index), trait (index).name, trait (index).text);
end loop;
end configure;
------------------------------------------------------------------------------------------
procedure draw_points (data : in points; x, y : in integer; list : in boolean) is
offset : constant core.vector := ((if list then 0 else core.icon),
(if list then core.icon else 0));
begin
for index in enumeration loop
ui.draw_icon (data => sprite (index),
text => trait (index).text,
x => x + offset.x * enumeration'pos (index),
y => y + offset.y * enumeration'pos (index));
--
ui.draw_icon_menu (x => x + offset.x * enumeration'pos (index) + offset.y,
y => y + offset.y * enumeration'pos (index) + offset.x,
width => core.icon,
height => core.icon);
--
ui.write (text => data (index)'image,
x => x + offset.x * enumeration'pos (index) - 3 + offset.y,
y => y + offset.y * enumeration'pos (index) + 6 + offset.x,
size => 18);
end loop;
end draw_points;
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end attribute;