2024-04-25 00:27:13 -04:00
|
|
|
-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
|
|
|
|
--
|
|
|
|
-- GNU General Public Licence (version 3 or later)
|
|
|
|
|
2024-05-08 15:43:44 -04:00
|
|
|
with core, ui;
|
2024-02-15 21:03:09 -05:00
|
|
|
|
|
|
|
package body attribute is
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
2024-04-26 16:05:48 -04:00
|
|
|
sprite : array (enumeration) of core.sprite;
|
2024-04-23 16:19:29 -04:00
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
|
2024-02-16 06:24:49 -05:00
|
|
|
procedure configure is
|
2024-05-04 07:12:00 -04:00
|
|
|
structure : ui.structure;
|
2024-02-16 06:24:49 -05:00
|
|
|
begin
|
2024-03-11 08:42:25 -04:00
|
|
|
core.echo (core.comment, "Configuring attribute components...");
|
|
|
|
--
|
2024-05-04 07:12:00 -04:00
|
|
|
structure.title := "Attribute Menu ";
|
|
|
|
structure.toggle := core.signal_a;
|
|
|
|
structure.show := false;
|
2024-05-07 09:59:26 -04:00
|
|
|
structure.center := false;
|
2024-05-04 07:12:00 -04:00
|
|
|
structure.resize := true;
|
2024-05-07 09:59:26 -04:00
|
|
|
structure.x := 60;
|
|
|
|
structure.y := 80;
|
2024-05-04 07:12:00 -04:00
|
|
|
structure.gui_n := count;
|
|
|
|
--
|
2024-05-13 09:55:14 -04:00
|
|
|
ui.add_structure (data => structure);
|
2024-05-03 10:13:49 -04:00
|
|
|
--
|
2024-04-27 10:01:54 -04:00
|
|
|
for index in enumeration loop
|
2024-04-26 16:05:48 -04:00
|
|
|
sprite (index) := core.import_sprite ("./sprite/attribute/" & core.lowercase (enumeration'image (index)) & ".png", 1, 1);
|
2024-05-03 10:13:49 -04:00
|
|
|
--
|
2024-05-13 09:55:14 -04:00
|
|
|
ui.add_structure_button (icon => sprite (index),
|
|
|
|
name => trait (index).name,
|
|
|
|
text => trait (index).text);
|
2024-02-16 06:24:49 -05:00
|
|
|
end loop;
|
|
|
|
end configure;
|
|
|
|
|
2024-05-11 00:28:50 -04:00
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
|
2024-05-13 09:55:14 -04:00
|
|
|
procedure draw_points (data : in points := (others => 0);
|
|
|
|
x : in integer := 0;
|
|
|
|
y : in integer := 0;
|
|
|
|
list : in boolean := false) is
|
|
|
|
--
|
2024-05-11 00:28:50 -04:00
|
|
|
offset : constant core.vector := ((if list then 0 else core.icon),
|
|
|
|
(if list then core.icon else 0));
|
|
|
|
begin
|
|
|
|
for index in enumeration loop
|
2024-05-11 00:42:24 -04:00
|
|
|
ui.draw_icon (data => sprite (index),
|
|
|
|
text => trait (index).text,
|
|
|
|
x => x + offset.x * enumeration'pos (index),
|
|
|
|
y => y + offset.y * enumeration'pos (index));
|
2024-05-11 00:28:50 -04:00
|
|
|
--
|
2024-05-11 00:42:24 -04:00
|
|
|
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,
|
2024-05-11 00:49:15 -04:00
|
|
|
x => x + offset.x * enumeration'pos (index) - 3 + offset.y,
|
2024-05-11 00:42:24 -04:00
|
|
|
y => y + offset.y * enumeration'pos (index) + 6 + offset.x,
|
|
|
|
size => 18);
|
2024-05-11 00:28:50 -04:00
|
|
|
end loop;
|
|
|
|
end draw_points;
|
|
|
|
|
2024-02-15 21:03:09 -05:00
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
end attribute;
|