65 lines
2.5 KiB
Ada
65 lines
2.5 KiB
Ada
-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
|
|
--
|
|
-- GNU General Public Licence (version 3 or later)
|
|
|
|
with core, ui;
|
|
|
|
package body attribute is
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
sprite : array (enumeration) of core.sprite;
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
procedure configure is
|
|
structure : ui.structure;
|
|
begin
|
|
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);
|
|
--
|
|
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) - 6 + offset.y,
|
|
y => y + offset.y * enumeration'pos (index) + 6 + offset.x,
|
|
size => 18);
|
|
end loop;
|
|
end draw_points;
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
end attribute;
|