75 lines
2.8 KiB
Ada
75 lines
2.8 KiB
Ada
-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
|
|
--
|
|
-- GNU General Public Licence (version 3 or later)
|
|
|
|
with core, ui;
|
|
|
|
package body resource is
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
icon : array (enumeration) of core.sprite;
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
procedure configure is
|
|
structure : ui.structure;
|
|
begin
|
|
core.echo (core.comment, "Configuring resource components...");
|
|
--
|
|
structure.title := "Resource Menu ";
|
|
structure.toggle := core.signal_r;
|
|
structure.show := false;
|
|
structure.center := false;
|
|
structure.resize := true;
|
|
structure.x := 60;
|
|
structure.y := 500;
|
|
structure.gui_n := count;
|
|
--
|
|
ui.add_structure (structure);
|
|
--
|
|
for index in enumeration loop
|
|
icon (index) := core.import_sprite (core.folder & "/icon/resource/" & core.lowercase (enumeration'image (index)) & ".png", 1, 1);
|
|
--
|
|
ui.add_structure_button (icon (index), trait (index).name, trait (index).text);
|
|
end loop;
|
|
end configure;
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
procedure draw_points (data : in points; x, y : in integer) is
|
|
frame_width : constant integer := 4 * core.icon;
|
|
begin
|
|
for index in enumeration loop
|
|
ui.draw_icon (icon (index), trait (index).text, x + (core.icon + frame_width) * enumeration'pos (index), y);
|
|
ui.draw_frame (trait (index).text, x + (core.icon + frame_width) * enumeration'pos (index) + core.icon, y, frame_width, core.icon);
|
|
--
|
|
ui.write (text => data (index).value'image & " /" & data (index).limit'image,
|
|
x => x + (core.icon + frame_width) * enumeration'pos (index) + core.icon - 1,
|
|
y => y + 7,
|
|
size => 18);
|
|
end loop;
|
|
end draw_points;
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
procedure save_points (here : in core.io.file_type; data : in points) is
|
|
begin
|
|
for index in enumeration loop
|
|
core.save_point (here, data (index));
|
|
end loop;
|
|
end save_points;
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
procedure load_points (here : in core.io.file_type; data : out points) is
|
|
begin
|
|
for index in enumeration loop
|
|
core.load_point (here, data (index));
|
|
end loop;
|
|
end load_points;
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
end resource;
|