Add skinned styling to the marker editor
This commit is contained in:
parent
4cc3a4cfaa
commit
7c858d5264
@ -16,7 +16,7 @@ local function show_map_id_formspec(id, player_x, player_z, player_name)
|
|||||||
local formspec = cartographer.get_map_formspec_map(data, map, player_x, player_z);
|
local formspec = cartographer.get_map_formspec_map(data, map, player_x, player_z);
|
||||||
if _cartographer.marker_count > 0 then
|
if _cartographer.marker_count > 0 then
|
||||||
formspec = formspec .. string.format("style_type[button,image_button;noclip=true;border=true] container[%f,0.5]", map.w * 0.25) -- TODO: Don't assume map.w * 0.25
|
formspec = formspec .. string.format("style_type[button,image_button;noclip=true;border=true] container[%f,0.5]", map.w * 0.25) -- TODO: Don't assume map.w * 0.25
|
||||||
.. _cartographer.generate_marker_formspec(cartographer.get_marker(map, player_x, player_z), map.detail)
|
.. _cartographer.generate_marker_formspec(cartographer.get_marker(map, player_x, player_z), map.detail, cartographer.skin.marker_bg, cartographer.skin.marker_button)
|
||||||
.. "container_end[]";
|
.. "container_end[]";
|
||||||
end
|
end
|
||||||
minetest.show_formspec(player_name, "cartographer:map", formspec);
|
minetest.show_formspec(player_name, "cartographer:map", formspec);
|
||||||
|
@ -2,21 +2,24 @@
|
|||||||
-- selected_id: The id of the currently selected marker, or nil if no marker is
|
-- selected_id: The id of the currently selected marker, or nil if no marker is
|
||||||
-- selected
|
-- selected
|
||||||
-- detail: The map's detail level
|
-- detail: The map's detail level
|
||||||
|
-- bg: A 9-slice background skin table
|
||||||
|
-- button: A button skin table
|
||||||
--
|
--
|
||||||
-- Returns a formspec string for use in containers
|
-- Returns a formspec string for use in containers
|
||||||
function _cartographer.generate_marker_formspec(selected_id, detail)
|
function _cartographer.generate_marker_formspec(selected_id, detail, bg, button)
|
||||||
local fs = "button[0,0;0.5,0.5;clear_marker;x]";
|
local fs = string.format("background9[0,0;3.25,3.875;%s.png;false;%s]", bg.texture, tostring(bg.radius))
|
||||||
|
.. string.format("style_type[button,image_button;border=false;bgimg=%s.png;bgimg_hovered=%s.png;bgimg_pressed=%s.png;bgimg_middle=%s;textcolor=%s]", button.texture, button.hovered_texture, button.pressed_texture, tostring(button.radius), button.font_color)
|
||||||
|
.. "button[0.125,0.125;1.125,0.5;clear_marker;Erase]";
|
||||||
if selected_id then
|
if selected_id then
|
||||||
fs = fs .. string.format("style[marker-%s;bgcolor=blue]", selected_id);
|
fs = fs .. string.format("style[marker-%s;bgimg=%s.png;bgimg_hovered=%s.png;bgimg_pressed=%s.png]", selected_id, button.selected_texture, button.selected_texture, button.selected_texture);
|
||||||
end
|
end
|
||||||
|
|
||||||
-- TODO: Support pagination if _cartographer.marker_count is too high
|
-- TODO: Support pagination if _cartographer.marker_count is too high
|
||||||
local i = 0;
|
local i = 0;
|
||||||
for id in pairs(_cartographer.marker_lookup) do
|
for id in pairs(_cartographer.marker_lookup) do
|
||||||
fs = fs .. string.format("image_button[%f,%f;0.5,0.5;%s.png;marker-%s;]",
|
fs = fs .. string.format("image_button[%f,%f;0.5,0.5;%s.png;marker-%s;]",
|
||||||
i % 5 * 0.5,
|
i % 5 * 0.625 + 0.125,
|
||||||
math.floor(i / 5) * 0.5 + 0.5,
|
math.floor(i / 5) * 0.625 + 0.75,
|
||||||
cartographer.get_marker_texture(id, detail),
|
cartographer.get_marker_texture(id, detail),
|
||||||
id);
|
id);
|
||||||
|
|
||||||
|
16
skin_api.lua
16
skin_api.lua
@ -132,6 +132,22 @@ cartographer.skin = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- The skinning data for the marker editor's background
|
||||||
|
marker_bg = {
|
||||||
|
texture = "cartographer_markers_bg",
|
||||||
|
radius = 6,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- The skinning data for the marker editor's buttons
|
||||||
|
marker_button = {
|
||||||
|
font_color = "#694a3a",
|
||||||
|
texture = "cartographer_simple_table_button",
|
||||||
|
selected_texture = "cartographer_simple_table_button_pressed",
|
||||||
|
hovered_texture = "cartographer_simple_table_button_hovered",
|
||||||
|
pressed_texture = "cartographer_simple_table_button_pressed",
|
||||||
|
radius = 8,
|
||||||
|
},
|
||||||
|
|
||||||
-- The texture to use in maps when biome data is missing or empty
|
-- The texture to use in maps when biome data is missing or empty
|
||||||
unknown_biome_texture = "cartographer_unknown_biome",
|
unknown_biome_texture = "cartographer_unknown_biome",
|
||||||
};
|
};
|
||||||
|
BIN
textures/cartographer_markers_bg.png
Normal file
BIN
textures/cartographer_markers_bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
Loading…
Reference in New Issue
Block a user