Extract formspec API from rp_default → rp_formspec

This commit is contained in:
Wuzzy 2022-04-25 21:33:38 +02:00
parent 8eceff1832
commit e2c7590a1d
85 changed files with 169 additions and 160 deletions

View File

@ -97,7 +97,7 @@ function achievements.trigger_achievement(player, aname, times)
end, name, aname)
end
if default.ui.current_page[name] == "rp_achievements:achievements" then
if rp_formspec.current_page[name] == "rp_achievements:achievements" then
local form = achievements.get_formspec(name)
player:set_inventory_formspec(form)
end
@ -193,7 +193,7 @@ crafting.register_on_craft(on_craft)
-- Formspecs
local form = default.ui.get_page("rp_default:default")
local form = rp_formspec.get_page("rp_default:default")
-- column 1: status image (0=gotten, 1=partial, 2=missing)
-- column 2: achievement name
@ -201,7 +201,7 @@ local form = default.ui.get_page("rp_default:default")
form = form .. "tablecolumns[color;image,align=left,width=1,0=ui_checkmark.png^[colorize:"..COLOR_GOTTEN..":255,1=blank.png,2=blank.png;text,align=left,width=11;"
.. "text,align=left,width=28]"
default.ui.register_page("rp_achievements:achievements", form)
rp_formspec.register_page("rp_achievements:achievements", form)
function achievements.get_formspec(name, row)
row = row or 1
@ -243,7 +243,7 @@ function achievements.get_formspec(name, row)
achievement_list = achievement_list .. minetest.formspec_escape(def.description)
end
local form = default.ui.get_page("rp_achievements:achievements")
local form = rp_formspec.get_page("rp_achievements:achievements")
form = form .. "table[0.25,2.5;7.9,5.5;achievement_list;" .. achievement_list
.. ";" .. row .. "]"

View File

@ -1,2 +1,2 @@
name = rp_achievements
depends = rp_default, rp_crafting
depends = rp_default, rp_formspec, rp_crafting

View File

@ -24,11 +24,11 @@ armor.slots = {"helmet", "chestplate", "boots"}
-- Formspec
local form_armor = default.ui.get_page("rp_default:2part")
local form_armor = rp_formspec.get_page("rp_default:2part")
form_armor = form_armor .. "list[current_player;main;0.25,4.75;8,4;]"
form_armor = form_armor .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_armor = form_armor .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form_armor = form_armor .. rp_formspec.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_armor = form_armor .. rp_formspec.get_itemslot_bg(0.25, 5.75, 8, 3)
form_armor = form_armor .. "listring[current_player;main]"
form_armor = form_armor .. "label[3.25,1;"..minetest.formspec_escape(S("Helmet")).."]"
@ -37,12 +37,12 @@ form_armor = form_armor .. "label[3.25,3;"..minetest.formspec_escape(S("Boots"))
form_armor = form_armor .. "list[current_player;armor;2.25,0.75;1,3;]"
form_armor = form_armor .. "listring[current_player;armor]"
form_armor = form_armor .. default.ui.get_itemslot_bg(2.25, 0.75, 1, 3)
form_armor = form_armor .. rp_formspec.get_itemslot_bg(2.25, 0.75, 1, 3)
default.ui.register_page("rp_armor:armor", form_armor)
rp_formspec.register_page("rp_armor:armor", form_armor)
function armor.get_formspec(name)
local form = default.ui.get_page("rp_armor:armor")
local form = rp_formspec.get_page("rp_armor:armor")
return form
end

View File

@ -1,2 +1,2 @@
name = rp_armor
depends = rp_default, rp_player, rp_drop_items_on_die, rp_crafting, rp_achievements
depends = rp_default, rp_formspec, rp_player, rp_drop_items_on_die, rp_crafting, rp_achievements

View File

@ -41,10 +41,10 @@ minetest.register_craftitem(
title = data:get_string("book:title")
end
local form = default.ui.get_page("rp_default:notabs")
local form = rp_formspec.get_page("rp_default:notabs")
form = form .. "field[0.5,1.25;8,0;title;"..F(S("Title:"))..";"..F(title).."]"
form = form .. "textarea[0.5,1.75;8,6.75;text;"..F(S("Contents:"))..";"..F(text).."]"
form = form .. default.ui.button_exit(2.75, 7.75, 3, 1, "write", S("Write"))
form = form .. rp_formspec.button_exit(2.75, 7.75, 3, 1, "write", S("Write"))
minetest.show_formspec(name, "rp_book:book", form)
end,

View File

@ -1,2 +1,2 @@
name = rp_book
depends = rp_default
depends = rp_default, rp_formspec

View File

@ -261,13 +261,13 @@ function crafting.craft(player, wanted, wanted_count, output, items)
return {items = items, output = output}
end
local form = default.ui.get_page("rp_default:2part")
local form = rp_formspec.get_page("rp_default:2part")
form = form .. "field[-1,-1;0,0;crafting_tracker;;]"
form = form .. "list[current_player;main;0.25,4.75;8,4;]"
form = form .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form = form .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form = form .. rp_formspec.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form = form .. rp_formspec.get_itemslot_bg(0.25, 5.75, 8, 3)
form = form .. "list[current_player;craft_in;0.25,0.25;1,4;]"
@ -278,15 +278,15 @@ form = form .. "listring[current_player;craft_in]"
form = form .. "listring[current_player;main]"
form = form .. "listring[current_player;craft_out]"
form = form .. default.ui.get_itemslot_bg(0.25, 0.25, 1, 4)
form = form .. default.ui.get_output_itemslot_bg(7.25, 3.25, 1, 1)
form = form .. rp_formspec.get_itemslot_bg(0.25, 0.25, 1, 4)
form = form .. rp_formspec.get_output_itemslot_bg(7.25, 3.25, 1, 1)
form = form .. default.ui.button(7.25, 1.25, 1, 1, "do_craft_1", "1", nil, S("Craft once"))
form = form .. default.ui.button(7.25, 2.25, 1, 1, "do_craft_10", "10", nil, S("Craft 10 times"))
form = form .. rp_formspec.button(7.25, 1.25, 1, 1, "do_craft_1", "1", nil, S("Craft once"))
form = form .. rp_formspec.button(7.25, 2.25, 1, 1, "do_craft_10", "10", nil, S("Craft 10 times"))
form = form .. "tablecolumns[text,align=left,width=2;text,align=left,width=40]"
default.ui.register_page("rp_crafting:crafting", form)
rp_formspec.register_page("rp_crafting:crafting", form)
function crafting.get_formspec(name, select_item)
local row = 1
@ -369,7 +369,7 @@ function crafting.get_formspec(name, select_item)
end
end
local form = default.ui.get_page("rp_crafting:crafting")
local form = rp_formspec.get_page("rp_crafting:crafting")
if craft_count > 0 then
form = form .. "table[2.25,0.25;4.75,3.75;craft_list;" .. craft_list
@ -378,23 +378,23 @@ function crafting.get_formspec(name, select_item)
if selected_craftdef ~= nil then
if selected_craftdef.items[1] ~= nil then
form = form .. default.ui.fake_itemstack_any(
form = form .. rp_formspec.fake_itemstack_any(
1.25, 0.25, selected_craftdef.items[1], "craftex_in_1")
end
if selected_craftdef.items[2] ~= nil then
form = form .. default.ui.fake_itemstack_any(
form = form .. rp_formspec.fake_itemstack_any(
1.25, 1.25, selected_craftdef.items[2], "craftex_in_2")
end
if selected_craftdef.items[3] ~= nil then
form = form .. default.ui.fake_itemstack_any(
form = form .. rp_formspec.fake_itemstack_any(
1.25, 2.25, selected_craftdef.items[3], "craftex_in_3")
end
if selected_craftdef.items[4] ~= nil then
form = form .. default.ui.fake_itemstack_any(
form = form .. rp_formspec.fake_itemstack_any(
1.25, 3.25, selected_craftdef.items[4], "craftex_in_4")
end
if selected_craftdef.output ~= nil then
form = form .. default.ui.fake_itemstack_any(
form = form .. rp_formspec.fake_itemstack_any(
7.25, 0.25, selected_craftdef.output, "craftex_out")
end
end
@ -407,7 +407,7 @@ function crafting.get_formspec(name, select_item)
guide_icon = "ui_icon_craftingguide.png"
guide_tip = S("Show all recipes")
end
form = form .. default.ui.tab(8.37, 0.5, "toggle_filter", guide_icon, guide_tip, "right")
form = form .. rp_formspec.tab(8.37, 0.5, "toggle_filter", guide_icon, guide_tip, "right")
return form
end

View File

@ -1,2 +1,2 @@
name = rp_crafting
depends = rp_default, rp_drop_items_on_die
depends = rp_default, rp_formspec, rp_drop_items_on_die

View File

@ -8,13 +8,13 @@ creative.creative_sizes = {}
local playerdata = {}
local form = default.ui.get_page("rp_default:2part")
local form = rp_formspec.get_page("rp_default:2part")
form = form .. "list[current_player;main;0.25,4.75;8,4;]"
form = form .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form = form .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form = form .. rp_formspec.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form = form .. rp_formspec.get_itemslot_bg(0.25, 5.75, 8, 3)
default.ui.register_page("rp_creative:creative", form)
rp_formspec.register_page("rp_creative:creative", form)
creative.slots_num = 7*4
@ -96,13 +96,13 @@ creative.get_creative_formspec = function(player, start_i, pagenum)
"list[detached:creative_"..player_name..";main;0.25,0.25;7,4;"..tostring(start_i).."]"..
"label[7.5,0.75;"..F(S("@1/@2", pagenum, pagemax)).."]"..
default.ui.image_button(7.25, 1.25, 1, 1, "creative_prev", "ui_icon_prev.png")..
default.ui.image_button(7.25, 2.25, 1, 1, "creative_next", "ui_icon_next.png")..
rp_formspec.image_button(7.25, 1.25, 1, 1, "creative_prev", "ui_icon_prev.png")..
rp_formspec.image_button(7.25, 2.25, 1, 1, "creative_next", "ui_icon_next.png")..
default.ui.get_itemslot_bg(0.25, 0.25, 7,4)..
rp_formspec.get_itemslot_bg(0.25, 0.25, 7,4)..
"image[7.25,3.25;1,1;creative_trash_icon.png]"..
"list[detached:creative!trash;main;7.25,3.25;1,1;]"..
default.ui.get_itemslot_bg(7.25, 3.25, 1,1)..
rp_formspec.get_itemslot_bg(7.25, 3.25, 1,1)..
"listring[current_player;main]"..
"listring[detached:creative!trash;main]"..
"listring[detached:creative_"..player_name..";main]"..
@ -128,7 +128,7 @@ creative.get_formspec = function(playername)
end
local player = minetest.get_player_by_name(playername)
if player then
local form = default.ui.get_page("rp_creative:creative")
local form = rp_formspec.get_page("rp_creative:creative")
local page, start_i = get_page_and_start_i(playername)
form = form .. creative.get_creative_formspec(player, start_i, page)
return form
@ -187,7 +187,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
page = 1
end
local form = default.ui.get_page("rp_creative:creative")
local form = rp_formspec.get_page("rp_creative:creative")
form = form .. creative.get_creative_formspec(player, start_i, start_i / (creative.slots_num) + 1)
if changed then
minetest.show_formspec(playername, "rp_creative:creative", form)

View File

@ -1,2 +1,2 @@
name = rp_creative
depends = rp_default
depends = rp_default, rp_formspec

View File

@ -15,10 +15,6 @@ Sound licenses:
* default_tool_breaks.ogg:
* Source: https://freesound.org/people/JustInvoke/sounds/446118/
* Author: JustInvoke (CC BY 3.0)
* default_gui_button.ogg:
* Source: https://freesound.org/people/joedeshon/sounds/117413/
* Sound was changed!
* Author: joedeshon (CC BY 3.0)
* All other sounds: CC0
Texture license: CC BY-SA 4.0
Source license: LGPLv2.1

View File

@ -35,7 +35,7 @@ minetest.register_node(
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.ui.get_page("rp_default:chest"))
meta:set_string("formspec", rp_formspec.get_page("rp_default:chest"))
meta:set_string("infotext", S("Chest"))
local inv = meta:get_inventory()
@ -61,16 +61,16 @@ minetest.register_node(
end,
})
local form_chest = default.ui.get_page("rp_default:2part")
local form_chest = rp_formspec.get_page("rp_default:2part")
form_chest = form_chest .. "list[current_name;main;0.25,0.25;8,4;]"
form_chest = form_chest .. "listring[current_name;main]"
form_chest = form_chest .. default.ui.get_itemslot_bg(0.25, 0.25, 8, 4)
form_chest = form_chest .. rp_formspec.get_itemslot_bg(0.25, 0.25, 8, 4)
form_chest = form_chest .. "list[current_player;main;0.25,4.75;8,4;]"
form_chest = form_chest .. "listring[current_player;main]"
form_chest = form_chest .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_chest = form_chest .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
default.ui.register_page("rp_default:chest", form_chest)
form_chest = form_chest .. rp_formspec.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_chest = form_chest .. rp_formspec.get_itemslot_bg(0.25, 5.75, 8, 3)
rp_formspec.register_page("rp_default:chest", form_chest)
minetest.register_node(
@ -85,7 +85,7 @@ minetest.register_node(
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.ui.get_page("rp_default:bookshelf"))
meta:set_string("formspec", rp_formspec.get_page("rp_default:bookshelf"))
meta:set_string("infotext", S("Bookshelf"))
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
@ -109,15 +109,15 @@ minetest.register_node(
end,
})
local form_bookshelf = default.ui.get_page("rp_default:2part")
local form_bookshelf = rp_formspec.get_page("rp_default:2part")
form_bookshelf = form_bookshelf .. "list[current_player;main;0.25,4.75;8,4;]"
form_bookshelf = form_bookshelf .. "listring[current_player;main]"
form_bookshelf = form_bookshelf .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_bookshelf = form_bookshelf .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form_bookshelf = form_bookshelf .. rp_formspec.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_bookshelf = form_bookshelf .. rp_formspec.get_itemslot_bg(0.25, 5.75, 8, 3)
form_bookshelf = form_bookshelf .. "list[current_name;main;2.25,1.25;4,2;]"
form_bookshelf = form_bookshelf .. "listring[current_name;main]"
form_bookshelf = form_bookshelf .. default.ui.get_itemslot_bg(2.25, 1.25, 4, 2)
default.ui.register_page("rp_default:bookshelf", form_bookshelf)
form_bookshelf = form_bookshelf .. rp_formspec.get_itemslot_bg(2.25, 1.25, 4, 2)
rp_formspec.register_page("rp_default:bookshelf", form_bookshelf)
default.log("container", "loaded")

View File

@ -6,19 +6,19 @@ local S = minetest.get_translator("rp_default")
local F = minetest.formspec_escape
function default.furnace_active_formspec(percent, item_percent)
local form = default.ui.get_page("rp_default:2part")
local form = rp_formspec.get_page("rp_default:2part")
form = form .. "list[current_player;main;0.25,4.75;8,4;]"
form = form .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form = form .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form = form .. rp_formspec.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form = form .. rp_formspec.get_itemslot_bg(0.25, 5.75, 8, 3)
form = form .. "list[current_name;src;2.25,0.75;1,1;]"
form = form .. default.ui.get_itemslot_bg(2.25, 0.75, 1, 1)
form = form .. rp_formspec.get_itemslot_bg(2.25, 0.75, 1, 1)
form = form .. "list[current_name;fuel;2.25,2.75;1,1;]"
form = form .. default.ui.get_itemslot_bg(2.25, 2.75, 1, 1)
form = form .. rp_formspec.get_itemslot_bg(2.25, 2.75, 1, 1)
form = form .. "list[current_name;dst;4.25,1.25;2,2;]"
form = form .. default.ui.get_output_itemslot_bg(4.25, 1.25, 2, 2)
form = form .. rp_formspec.get_output_itemslot_bg(4.25, 1.25, 2, 2)
form = form .. "listring[current_player;main]"
form = form .. "listring[current_name;src]"
@ -35,19 +35,19 @@ function default.furnace_active_formspec(percent, item_percent)
return form
end
local form_furnace = default.ui.get_page("rp_default:2part")
local form_furnace = rp_formspec.get_page("rp_default:2part")
form_furnace = form_furnace .. "list[current_player;main;0.25,4.75;8,4;]"
form_furnace = form_furnace .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_furnace = form_furnace .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form_furnace = form_furnace .. rp_formspec.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_furnace = form_furnace .. rp_formspec.get_itemslot_bg(0.25, 5.75, 8, 3)
form_furnace = form_furnace .. "list[current_name;src;2.25,0.75;1,1;]"
form_furnace = form_furnace .. default.ui.get_itemslot_bg(2.25, 0.75, 1, 1)
form_furnace = form_furnace .. rp_formspec.get_itemslot_bg(2.25, 0.75, 1, 1)
form_furnace = form_furnace .. "list[current_name;fuel;2.25,2.75;1,1;]"
form_furnace = form_furnace .. default.ui.get_itemslot_bg(2.25, 2.75, 1, 1)
form_furnace = form_furnace .. rp_formspec.get_itemslot_bg(2.25, 2.75, 1, 1)
form_furnace = form_furnace .. "list[current_name;dst;4.25,1.25;2,2;]"
form_furnace = form_furnace .. default.ui.get_hotbar_itemslot_bg(4.25, 1.25, 2, 2)
form_furnace = form_furnace .. rp_formspec.get_hotbar_itemslot_bg(4.25, 1.25, 2, 2)
form_furnace = form_furnace .. "listring[current_player;main]"
form_furnace = form_furnace .. "listring[current_name;src]"
@ -59,7 +59,7 @@ form_furnace = form_furnace .. "listring[current_name;fuel]"
form_furnace = form_furnace .. "image[2.25,1.75;1,1;ui_fire_bg.png]"
form_furnace = form_furnace .. "image[3.25,1.75;1,1;ui_arrow_bg.png^[transformR270]"
default.ui.register_page("default_furnace_inactive", form_furnace)
rp_formspec.register_page("default_furnace_inactive", form_furnace)
local check_put = function(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) and
@ -112,7 +112,7 @@ minetest.register_node(
sounds = default.node_sound_stone_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.ui.get_page("default_furnace_inactive"))
meta:set_string("formspec", rp_formspec.get_page("default_furnace_inactive"))
meta:set_string("infotext", S("Furnace"))
local inv = meta:get_inventory()
@ -152,7 +152,7 @@ minetest.register_node(
sounds = default.node_sound_stone_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.ui.get_page("default_furnace_inactive"))
meta:set_string("formspec", rp_formspec.get_page("default_furnace_inactive"))
meta:set_string("infotext", S("Furnace"));
local inv = meta:get_inventory()
@ -278,7 +278,7 @@ minetest.register_abm(
--
-- Update formspec, infotext and node
--
local formspec = default.ui.get_page("default_furnace_inactive")
local formspec = rp_formspec.get_page("default_furnace_inactive")
local item_state = ""
local item_percent = 0
if cookable then

View File

@ -27,11 +27,6 @@ end
minetest.nodedef_default.stack_max = 60
minetest.craftitemdef_default.stack_max = 60
function minetest.nodedef_default.on_receive_fields(pos, form_name, fields, player)
default.ui.receive_fields(player, form_name, fields)
end
dofile(minetest.get_modpath("rp_default").."/formspec.lua")
dofile(minetest.get_modpath("rp_default").."/functions.lua")
dofile(minetest.get_modpath("rp_default").."/sounds.lua")

View File

@ -1,2 +1,3 @@
name = rp_default
depends = rp_formspec
description = Core Repixture mods. Contains most basic blocks and items, chests, furnaces, fertilizer, signs, torches, ladders, buckets

View File

@ -27,7 +27,7 @@ minetest.register_node(
on_construct = function(pos)
--local n = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.ui.get_page("rp_default:field"))
meta:set_string("formspec", rp_formspec.get_page("rp_default:field"))
-- Show empty sign text in quotation marks
meta:set_string("infotext", S('""'))
meta:set_string("text", "")

View File

@ -0,0 +1,11 @@
Repixure mod: rp_formspec
=============================
By Kaadmy and Wuzzy, for Repixture
Sound licenses:
* default_gui_button.ogg:
* Source: https://freesound.org/people/joedeshon/sounds/117413/
* Sound was changed!
* Author: joedeshon (CC BY 3.0)
Texture license: CC BY-SA 4.0
Source license: LGPLv2.1

View File

@ -1,18 +1,22 @@
default.ui = {}
rp_formspec = {}
local S = minetest.get_translator("rp_default")
local S = minetest.get_translator("rp_formspec")
function minetest.nodedef_default.on_receive_fields(pos, form_name, fields, player)
rp_formspec.receive_fields(player, form_name, fields)
end
-- Registered UI pages
default.ui.registered_pages = {
rp_formspec.registered_pages = {
}
-- UI defaults
default.ui.default = {}
rp_formspec.default = {}
default.ui.current_page = {}
rp_formspec.current_page = {}
-- Colors
@ -20,14 +24,14 @@ local prepend = "listcolors[#00000000;#00000010;#00000000;#68B259;#FFF]" ..
"tableoptions[background=#DDDDDD30;highlight=#539646]" ..
"style_type[button,image_button,item_image_button,checkbox,tabheader;sound=default_gui_button]" ..
"style_type[button:pressed,image_button:pressed,item_image_button:pressed;content_offset=0]"
default.ui.default.bg = "bgcolor[#00000000]"
rp_formspec.default.bg = "bgcolor[#00000000]"
-- bgcolor intentionally not included because it would make pause menu transparent, too :(
local formspec_prepend = prepend
-- Group default items
default.ui.group_defaults = {
rp_formspec.group_defaults = {
fuzzy = "mobs:wool",
planks = "rp_default:planks",
soil = "rp_default:dirt",
@ -35,7 +39,7 @@ default.ui.group_defaults = {
tree = "rp_default:tree",
green_grass = "rp_default:grass",
}
default.ui.group_names = {
rp_formspec.group_names = {
fuzzy = { S("Fuzzy"), S("Any fuzzy block") },
planks = { S("Planks"), S("Any planks") },
soil = { S("Soil"), S("Any soil") },
@ -45,7 +49,7 @@ default.ui.group_names = {
-- Itemslot backgrounds
function default.ui.get_itemslot_bg(x, y, w, h)
function rp_formspec.get_itemslot_bg(x, y, w, h)
local out = ""
for i = 0, w - 1, 1 do
for j = 0, h - 1, 1 do
@ -55,7 +59,7 @@ function default.ui.get_itemslot_bg(x, y, w, h)
return out
end
function default.ui.get_hotbar_itemslot_bg(x, y, w, h)
function rp_formspec.get_hotbar_itemslot_bg(x, y, w, h)
local out = ""
for i = 0, w - 1, 1 do
for j = 0, h - 1, 1 do
@ -66,11 +70,11 @@ function default.ui.get_hotbar_itemslot_bg(x, y, w, h)
return out
end
default.ui.get_output_itemslot_bg = default.ui.get_hotbar_itemslot_bg
rp_formspec.get_output_itemslot_bg = rp_formspec.get_hotbar_itemslot_bg
-- Buttons
function default.ui.image_button(x, y, w, h, name, image, tooltip)
function rp_formspec.image_button(x, y, w, h, name, image, tooltip)
local ww
if w == 1 then
ww = "1w"
@ -95,7 +99,7 @@ function default.ui.image_button(x, y, w, h, name, image, tooltip)
return form
end
function default.ui.button(x, y, w, h, name, label, noclip, tooltip)
function rp_formspec.button(x, y, w, h, name, label, noclip, tooltip)
local nc = "false"
if noclip then
@ -125,7 +129,7 @@ function default.ui.button(x, y, w, h, name, label, noclip, tooltip)
end
end
function default.ui.button_exit(x, y, w, h, name, label, noclip, tooltip)
function rp_formspec.button_exit(x, y, w, h, name, label, noclip, tooltip)
local nc = "false"
if noclip then
@ -152,7 +156,7 @@ end
-- Tabs
function default.ui.tab(x, y, name, icon, tooltip, side)
function rp_formspec.tab(x, y, name, icon, tooltip, side)
local tooltip = tooltip or ""
local img_active
if side == "right" then
@ -188,7 +192,7 @@ local function get_itemdef_field(itemname, fieldname)
return minetest.registered_items[itemname][fieldname]
end
function default.ui.fake_itemstack(x, y, itemstack)
function rp_formspec.fake_itemstack(x, y, itemstack)
local itemname = itemstack:get_name()
local itemamt = itemstack:get_count()
@ -211,7 +215,7 @@ function default.ui.fake_itemstack(x, y, itemstack)
return result
end
function default.ui.fake_simple_itemstack(x, y, itemname, name)
function rp_formspec.fake_simple_itemstack(x, y, itemname, name)
local name = name or "fake_simple_itemstack"
local itemdesc = ""
@ -233,12 +237,12 @@ function default.ui.fake_simple_itemstack(x, y, itemname, name)
return result
end
function default.ui.item_group(x, y, group, count, name)
function rp_formspec.item_group(x, y, group, count, name)
local name = name or "fake_itemgroup"
local itemname = ""
local group_default = default.ui.group_defaults[group]
local group_default = rp_formspec.group_defaults[group]
if group_default ~= nil and minetest.registered_items[group_default] then
itemname = group_default
@ -259,8 +263,8 @@ function default.ui.item_group(x, y, group, count, name)
..minetest.formspec_escape(itemname .. " " .. count).."]"
local group_prettyprint
if default.ui.group_names[group] then
group_prettyprint = minetest.colorize("#ffecb6", default.ui.group_names[group][2])
if rp_formspec.group_names[group] then
group_prettyprint = minetest.colorize("#ffecb6", rp_formspec.group_names[group][2])
else
group_prettyprint = S("Group: @1", minetest.colorize("#ffecb6", group))
end
@ -271,20 +275,20 @@ function default.ui.item_group(x, y, group, count, name)
return result
end
function default.ui.fake_itemstack_any(x, y, itemstack, name)
function rp_formspec.fake_itemstack_any(x, y, itemstack, name)
local group = string.match(itemstack:get_name(), "group:(.*)")
if group == nil then
return default.ui.fake_itemstack(x, y, itemstack)
return rp_formspec.fake_itemstack(x, y, itemstack)
else
return default.ui.item_group(x, y, group, itemstack:get_count(), name)
return rp_formspec.item_group(x, y, group, itemstack:get_count(), name)
end
end
-- Pages
function default.ui.get_page(name)
local page= default.ui.registered_pages[name]
function rp_formspec.get_page(name)
local page= rp_formspec.registered_pages[name]
if page == nil then
default.log("UI page '" .. name .. "' is not yet registered", "dev")
@ -294,48 +298,48 @@ function default.ui.get_page(name)
return page
end
function default.ui.register_page(name, form)
default.ui.registered_pages[name] = form
function rp_formspec.register_page(name, form)
rp_formspec.registered_pages[name] = form
end
-- Default formspec boilerplates
local form_default_default = ""
form_default_default = form_default_default .. "size[8.5,9]"
form_default_default = form_default_default .. default.ui.default.bg
form_default_default = form_default_default .. default.ui.tab(-0.9, 0.5, "tab_crafting", "ui_icon_crafting.png", S("Crafting"))
form_default_default = form_default_default .. rp_formspec.default.bg
form_default_default = form_default_default .. rp_formspec.tab(-0.9, 0.5, "tab_crafting", "ui_icon_crafting.png", S("Crafting"))
if minetest.get_modpath("rp_armor") ~= nil then
form_default_default = form_default_default .. default.ui.tab(-0.9, 1.28, "tab_armor", "ui_icon_armor.png", S("Armor"))
form_default_default = form_default_default .. rp_formspec.tab(-0.9, 1.28, "tab_armor", "ui_icon_armor.png", S("Armor"))
end
if minetest.get_modpath("rp_achievements") ~= nil then
form_default_default = form_default_default .. default.ui.tab(-0.9, 2.06, "tab_achievements", "ui_icon_achievements.png", S("Achievements"))
form_default_default = form_default_default .. rp_formspec.tab(-0.9, 2.06, "tab_achievements", "ui_icon_achievements.png", S("Achievements"))
end
if minetest.get_modpath("rp_player_skins") ~= nil then
form_default_default = form_default_default .. default.ui.tab(-0.9, 2.84, "tab_player_skins", "ui_icon_player_skins.png", S("Player Skins"))
form_default_default = form_default_default .. rp_formspec.tab(-0.9, 2.84, "tab_player_skins", "ui_icon_player_skins.png", S("Player Skins"))
end
if minetest.get_modpath("rp_creative") ~= nil and minetest.settings:get_bool("creative_mode") then
form_default_default = form_default_default .. default.ui.tab(-0.9, 3.64, "tab_creative", "ui_icon_creative.png", S("Creative Inventory"))
form_default_default = form_default_default .. rp_formspec.tab(-0.9, 3.64, "tab_creative", "ui_icon_creative.png", S("Creative Inventory"))
end
form_default_default = form_default_default .. "background[0,0;8.5,9;ui_formspec_bg_tall.png]"
default.ui.register_page("rp_default:default", form_default_default)
default.ui.register_page("rp_default:2part", form_default_default .. "background[0,0;8.5,4.5;ui_formspec_bg_short.png]")
rp_formspec.register_page("rp_default:default", form_default_default)
rp_formspec.register_page("rp_default:2part", form_default_default .. "background[0,0;8.5,4.5;ui_formspec_bg_short.png]")
local form_default_notabs = ""
form_default_notabs = form_default_notabs .. "size[8.5,9]"
form_default_notabs = form_default_notabs .. default.ui.default.bg
form_default_notabs = form_default_notabs .. rp_formspec.default.bg
form_default_notabs = form_default_notabs .. "background[0,0;8.5,9;ui_formspec_bg_tall.png]"
default.ui.register_page("rp_default:notabs", form_default_notabs)
default.ui.register_page("rp_default:notabs_2part", form_default_notabs .. "background[0,0;8.5,4.5;ui_formspec_bg_short.png]")
rp_formspec.register_page("rp_default:notabs", form_default_notabs)
rp_formspec.register_page("rp_default:notabs_2part", form_default_notabs .. "background[0,0;8.5,4.5;ui_formspec_bg_short.png]")
local form_default_field = ""
form_default_field = form_default_field .. "size[8.5,5]"
form_default_field = form_default_field .. default.ui.default.bg
form_default_field = form_default_field .. rp_formspec.default.bg
form_default_field = form_default_field .. "background[0,0;8.5,4.5;ui_formspec_bg_short.png]"
form_default_field = form_default_field .. default.ui.button_exit(2.75, 3, 3, 1, "", minetest.formspec_escape(S("Write")), false)
form_default_field = form_default_field .. rp_formspec.button_exit(2.75, 3, 3, 1, "", minetest.formspec_escape(S("Write")), false)
form_default_field = form_default_field .. "field[1,1.75;7,0;text;;${text}]"
default.ui.register_page("rp_default:field", form_default_field)
rp_formspec.register_page("rp_default:field", form_default_field)
function default.ui.receive_fields(player, form_name, fields)
function rp_formspec.receive_fields(player, form_name, fields)
local name = player:get_player_name()
local formname, form
@ -358,13 +362,13 @@ function default.ui.receive_fields(player, form_name, fields)
if formname and form then
player:set_inventory_formspec(form)
minetest.show_formspec(name, formname, form)
default.ui.current_page[name] = formname
rp_formspec.current_page[name] = formname
end
end
minetest.register_on_player_receive_fields(
function(player, form_name, fields)
default.ui.receive_fields(player, form_name, fields)
rp_formspec.receive_fields(player, form_name, fields)
end)
minetest.register_on_joinplayer(
@ -373,14 +377,14 @@ minetest.register_on_joinplayer(
local name = player:get_player_name()
if minetest.settings:get_bool("creative_mode") then
player:set_inventory_formspec(creative.get_formspec(name))
default.ui.current_page[name] = "rp_creative:creative"
rp_formspec.current_page[name] = "rp_creative:creative"
else
player:set_inventory_formspec(crafting.get_formspec(name))
default.ui.current_page[name] = "rp_crafting:crafting"
rp_formspec.current_page[name] = "rp_crafting:crafting"
end
end)
minetest.register_on_leaveplayer(
function(player)
default.ui.current_page[player:get_player_name()] = nil
rp_formspec.current_page[player:get_player_name()] = nil
end)

View File

@ -0,0 +1,2 @@
name = rp_formspec
description = Repixture formspec API

View File

Before

Width:  |  Height:  |  Size: 156 B

After

Width:  |  Height:  |  Size: 156 B

View File

Before

Width:  |  Height:  |  Size: 156 B

After

Width:  |  Height:  |  Size: 156 B

View File

Before

Width:  |  Height:  |  Size: 143 B

After

Width:  |  Height:  |  Size: 143 B

View File

Before

Width:  |  Height:  |  Size: 169 B

After

Width:  |  Height:  |  Size: 169 B

View File

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 148 B

View File

Before

Width:  |  Height:  |  Size: 188 B

After

Width:  |  Height:  |  Size: 188 B

View File

Before

Width:  |  Height:  |  Size: 154 B

After

Width:  |  Height:  |  Size: 154 B

View File

Before

Width:  |  Height:  |  Size: 180 B

After

Width:  |  Height:  |  Size: 180 B

View File

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 136 B

View File

Before

Width:  |  Height:  |  Size: 157 B

After

Width:  |  Height:  |  Size: 157 B

View File

Before

Width:  |  Height:  |  Size: 140 B

After

Width:  |  Height:  |  Size: 140 B

View File

Before

Width:  |  Height:  |  Size: 208 B

After

Width:  |  Height:  |  Size: 208 B

View File

Before

Width:  |  Height:  |  Size: 227 B

After

Width:  |  Height:  |  Size: 227 B

View File

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 167 B

View File

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 148 B

View File

Before

Width:  |  Height:  |  Size: 182 B

After

Width:  |  Height:  |  Size: 182 B

View File

Before

Width:  |  Height:  |  Size: 166 B

After

Width:  |  Height:  |  Size: 166 B

View File

Before

Width:  |  Height:  |  Size: 174 B

After

Width:  |  Height:  |  Size: 174 B

View File

Before

Width:  |  Height:  |  Size: 158 B

After

Width:  |  Height:  |  Size: 158 B

View File

Before

Width:  |  Height:  |  Size: 159 B

After

Width:  |  Height:  |  Size: 159 B

View File

Before

Width:  |  Height:  |  Size: 147 B

After

Width:  |  Height:  |  Size: 147 B

View File

Before

Width:  |  Height:  |  Size: 159 B

After

Width:  |  Height:  |  Size: 159 B

View File

Before

Width:  |  Height:  |  Size: 169 B

After

Width:  |  Height:  |  Size: 169 B

View File

Before

Width:  |  Height:  |  Size: 147 B

After

Width:  |  Height:  |  Size: 147 B

View File

Before

Width:  |  Height:  |  Size: 146 B

After

Width:  |  Height:  |  Size: 146 B

View File

Before

Width:  |  Height:  |  Size: 146 B

After

Width:  |  Height:  |  Size: 146 B

View File

Before

Width:  |  Height:  |  Size: 134 B

After

Width:  |  Height:  |  Size: 134 B

View File

Before

Width:  |  Height:  |  Size: 102 B

After

Width:  |  Height:  |  Size: 102 B

View File

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 126 B

View File

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 130 B

View File

Before

Width:  |  Height:  |  Size: 99 B

After

Width:  |  Height:  |  Size: 99 B

View File

@ -136,18 +136,18 @@ end
local form_trading = ""
form_trading = form_trading .. default.ui.get_page("rp_default:2part")
form_trading = form_trading .. rp_formspec.get_page("rp_default:2part")
form_trading = form_trading .. "list[current_player;gold_trade_out;4.75,2.25;1,1;]"
form_trading = form_trading .. default.ui.get_hotbar_itemslot_bg(4.75, 2.25, 1, 1)
form_trading = form_trading .. rp_formspec.get_hotbar_itemslot_bg(4.75, 2.25, 1, 1)
form_trading = form_trading .. "list[current_player;main;0.25,4.75;8,4;]"
form_trading = form_trading .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_trading = form_trading .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form_trading = form_trading .. rp_formspec.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_trading = form_trading .. rp_formspec.get_itemslot_bg(0.25, 5.75, 8, 3)
form_trading = form_trading .. "list[current_player;gold_trade_in;1.25,2.25;2,1;]"
form_trading = form_trading .. default.ui.get_itemslot_bg(1.25, 2.25, 2, 1)
form_trading = form_trading .. rp_formspec.get_itemslot_bg(1.25, 2.25, 2, 1)
form_trading = form_trading .. "listring[current_player;main]"
form_trading = form_trading .. "listring[current_player;gold_trade_in]"
@ -157,10 +157,10 @@ form_trading = form_trading .. "listring[current_player;gold_trade_out]"
form_trading = form_trading .. "image[3.5,1.25;1,1;ui_arrow_bg.png^[transformR270]"
form_trading = form_trading .. "image[3.5,2.25;1,1;ui_arrow.png^[transformR270]"
form_trading = form_trading .. default.ui.button(1.25, 3.25, 2, 1, "trade", S("Trade"))
form_trading = form_trading .. default.ui.button_exit(5.25, 3.25, 2, 1, "cancel", S("Cancel"))
form_trading = form_trading .. rp_formspec.button(1.25, 3.25, 2, 1, "trade", S("Trade"))
form_trading = form_trading .. rp_formspec.button_exit(5.25, 3.25, 2, 1, "cancel", S("Cancel"))
default.ui.register_page("rp_gold_trading_book", form_trading)
rp_formspec.register_page("rp_gold_trading_book", form_trading)
function gold.trade(trade, trade_type, player)
local name = player:get_player_name()
@ -197,12 +197,12 @@ function gold.trade(trade, trade_type, player)
local trade_wanted1 = inv:get_stack("gold_trade_wanted", 1)
local trade_wanted2 = inv:get_stack("gold_trade_wanted", 2)
local form = default.ui.get_page("rp_gold_trading_book")
local form = rp_formspec.get_page("rp_gold_trading_book")
form = form .. "label[0.25,0.25;"..minetest.formspec_escape(trade_name).."]"
form = form .. default.ui.fake_itemstack(1.25, 1.25, trade_wanted1)
form = form .. default.ui.fake_itemstack(2.25, 1.25, trade_wanted2)
form = form .. default.ui.fake_itemstack(4.75, 1.25, ItemStack(trade[3]))
form = form .. rp_formspec.fake_itemstack(1.25, 1.25, trade_wanted1)
form = form .. rp_formspec.fake_itemstack(2.25, 1.25, trade_wanted2)
form = form .. rp_formspec.fake_itemstack(4.75, 1.25, ItemStack(trade[3]))
minetest.show_formspec(name, "rp_gold:trading_book", form)

View File

@ -1,2 +1,2 @@
name = rp_gold
depends = rp_default, rp_crafting, rp_achievements
depends = rp_default, rp_formspec, rp_crafting, rp_achievements

View File

@ -18,21 +18,21 @@ jewels.registered_jewel_parents = {}
-- Formspec
local form_bench = default.ui.get_page("rp_default:2part")
local form_bench = rp_formspec.get_page("rp_default:2part")
form_bench = form_bench .. "list[current_name;main;2.25,1.75;1,1;]"
form_bench = form_bench .. "listring[current_name;main]"
form_bench = form_bench .. default.ui.get_itemslot_bg(2.25, 1.75, 1, 1)
form_bench = form_bench .. rp_formspec.get_itemslot_bg(2.25, 1.75, 1, 1)
form_bench = form_bench .. "label[3.25,1.75;"..F(S("1. Place tool here")).."]"
form_bench = form_bench .. "label[3.25,2.25;"..F(S("2. Hold a jewel and punch the bench")).."]"
form_bench = form_bench .. "list[current_player;main;0.25,4.75;8,4;]"
form_bench = form_bench .. "listring[current_player;main]"
form_bench = form_bench .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_bench = form_bench .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form_bench = form_bench .. rp_formspec.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form_bench = form_bench .. rp_formspec.get_itemslot_bg(0.25, 5.75, 8, 3)
default.ui.register_page("rp_jewels_bench", form_bench)
rp_formspec.register_page("rp_jewels_bench", form_bench)
local function plus_power(i)
if i >= 0 then
@ -298,7 +298,7 @@ minetest.register_node(
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.ui.get_page("rp_jewels_bench"))
meta:set_string("formspec", rp_formspec.get_page("rp_jewels_bench"))
meta:set_string("infotext", S("Jeweler's Workbench"))
local inv = meta:get_inventory()

View File

@ -1,3 +1,3 @@
name = rp_jewels
depends = rp_default, rp_crafting, rp_achievements
depends = rp_default, rp_formspec, rp_crafting, rp_achievements
optional_depends = tt

View File

@ -223,15 +223,15 @@ minetest.register_node(
if not locks.is_locked(meta, player) then
local np = pos.x .. "," .. pos.y .. "," .. pos.z
local form = default.ui.get_page("rp_default:2part")
local form = rp_formspec.get_page("rp_default:2part")
form = form .. "list[nodemeta:" .. np .. ";main;0.25,0.25;8,4;]"
form = form .. "listring[nodemeta:" .. np .. ";main]"
form = form .. default.ui.get_itemslot_bg(0.25, 0.25, 8, 4)
form = form .. rp_formspec.get_itemslot_bg(0.25, 0.25, 8, 4)
form = form .. "list[current_player;main;0.25,4.75;8,4;]"
form = form .. "listring[current_player;main]"
form = form .. default.ui.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form = form .. default.ui.get_itemslot_bg(0.25, 5.75, 8, 3)
form = form .. rp_formspec.get_hotbar_itemslot_bg(0.25, 4.75, 8, 1)
form = form .. rp_formspec.get_itemslot_bg(0.25, 5.75, 8, 3)
minetest.show_formspec(
player:get_player_name(),

View File

@ -1,2 +1,2 @@
name = rp_locks
depends = rp_default, rp_crafting, rp_achievements
depends = rp_default, rp_formspec, rp_crafting, rp_achievements

View File

@ -188,14 +188,14 @@ minetest.register_on_joinplayer(on_joinplayer)
minetest.register_on_leaveplayer(on_leaveplayer)
function player_skins.get_formspec(playername)
local form = default.ui.get_page("rp_default:default")
local form = rp_formspec.get_page("rp_default:default")
form = form .. "model[0.2,0.5;4,8;player_skins_skin_select_model;character.b3d;"..player_skins.skins[playername]..";0,180;false;false;0,0]"
form = form .. default.ui.button(3.5, 0.3, 3, 1, "player_skins_skin_select_hairs", S("Hair"))
form = form .. default.ui.button(3.5, 1.3, 3, 1, "player_skins_skin_select_eye_colors", S("Eyes"))
form = form .. default.ui.button(3.5, 3, 3, 1, "player_skins_skin_select_cloth_colors", S("Shirt"))
form = form .. default.ui.button(3.5, 5, 3, 1, "player_skins_skin_select_band_colors", S("Trousers"))
form = form .. default.ui.button(3.5, 6, 3, 1, "player_skins_skin_select_skin_colors", S("Skin"))
form = form .. default.ui.button(3.5, 7.75, 3, 1, "player_skins_skin_select_random", S("Random"))
form = form .. rp_formspec.button(3.5, 0.3, 3, 1, "player_skins_skin_select_hairs", S("Hair"))
form = form .. rp_formspec.button(3.5, 1.3, 3, 1, "player_skins_skin_select_eye_colors", S("Eyes"))
form = form .. rp_formspec.button(3.5, 3, 3, 1, "player_skins_skin_select_cloth_colors", S("Shirt"))
form = form .. rp_formspec.button(3.5, 5, 3, 1, "player_skins_skin_select_band_colors", S("Trousers"))
form = form .. rp_formspec.button(3.5, 6, 3, 1, "player_skins_skin_select_skin_colors", S("Skin"))
form = form .. rp_formspec.button(3.5, 7.75, 3, 1, "player_skins_skin_select_random", S("Random"))
return form
end