xhads/source/skill.adb

69 lines
2.6 KiB
Ada

-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
--
-- GNU General Public Licence (version 3 or later)
with core, ui;
package body skill is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sprite : array (enumeration) of core.sprite;
------------------------------------------------------------------------------------------
procedure configure is
structure : ui.structure;
begin
core.echo (core.comment, "Configuring skill components...");
--
structure.title := "Skill Menu ";
structure.toggle := core.signal_s;
structure.show := false;
structure.center := true;
structure.resize := true;
structure.x := 80;
structure.y := (core.window_height - 320) / 2;
structure.gui_n := count + 1;
--
ui.add_structure (structure);
--
for index in enumeration loop
sprite (index) := core.import_sprite ("./sprite/skill/" & core.lowercase (enumeration'image (index)) & ".png", 1, 1);
--
if enumeration'pos (index) = 9 then
ui.add_structure_orient;
end if;
--
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;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end skill;