-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- GNU General Public Licence (version 3 or later) with core, ui; package body material is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ procedure configure is procedure define (index : in enumeration; name : in string; cost : in natural) is begin description (index).name := core.unbound (name); description (index).cost := cost; end define; -- time : float := 0.0; begin time := core.time; -- core.echo (core.comment, "Configuring" & count'image & " material components..."); -- description := new description_array (enumeration'range); icon := new icon_array (enumeration'range); -- define (sulphur, "Sulphur", 11); define (mercury, "Mercury", 13); define (mint, "Mint", 3); define (cinnamon, "Cinnamon", 5); define (apple, "Apple", 2); define (peach, "Peach", 2); define (pear, "Pear", 2); define (banana, "Banana", 3); define (orange, "Orange", 3); define (plum, "Plum", 3); define (cherry, "Cherry", 3); define (lemon, "Lemon", 2); define (potato, "Potato", 1); define (wheat, "Wheat", 1); define (carrot, "Carrot", 2); define (cucumber, "Cucumber", 3); define (onion, "Onion", 2); define (garlic, "Garlic", 2); define (eggplant, "Eggplant", 3); define (tomato, "Tomato", 2); define (meat, "Meat", 3); define (fish_meat, "Fish Meat", 2); define (skull, "Skull", 1); define (animal_skull, "Animal Skull", 1); define (bone, "Bone", 1); define (rib_cage, "Rib Cage", 1); define (animal_skin, "Animal Skin", 5); define (animal_fur, "Animal Fur", 7); -- for index in enumeration loop icon (index) := core.import_sprite (core.folder & "/icon/material/" & core.lowercase (enumeration'image (index)) & ".png", 1, 1); end loop; -- core.echo (core.success, "Successfully configured resource information in" & natural'image (natural (1_000_000.0 * (core.time - time))) & " microseconds."); end configure; ------------------------------------------------------------------------------------------ procedure draw_points (data : in points := (others => (0, 0)); x : in integer := 0; y : in integer := 0) is move_x : integer := x; begin for index in enumeration loop if data (index).value > 0 then ui.draw_icon (icon (index), core.bound (description (index).name), move_x, y); ui.draw_text_box (move_x, y + core.icon, core.icon, core.icon); ui.write (data (index).value'image, move_x + 4, y + core.icon + 8, (255, 255, 255, 255), 15, true); -- move_x := move_x + core.icon; end if; 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 material;