(C) Tai Kedzierski
License: LGPLv3
A lightweight mini-API for creating and managing formspecs without having to contend with its... specialised syntax....
Currently most of the items documented in formspec on the minetest dev wiki has been implemented, except for listcolors
There is still more to implement as per the Minetest Lua API (no support yet for those aded items)
Add a dependency to formspeccer, then use the formspeccer
object to manage formspecs.
Note that coordinates are expressed not in pixels but in a pieces of a grid. For brevity, and to distinguish from actual coordinates, I chose to simply supply them as comma-separated string vlues.
See the API documentation for details.
local formname = "mymod:myform"
formspeccer:newform(formname,"10,7") -- a new form , 10x7
formspeccer:add_field(formname,{
name="field1",
label="Your name",
value="Sam", -- optional pre-populated value for the form
})
formspeccer:add_button(
{
name="send",
label="Send!",
xy="2,3",
wh="1,1",
},
true -- optional , makes it an exit button
)
-- just show the form to a player
formspeccer:show(player,"mymod:myform)
-- this will error because the form already exists
formspeccer:newform(formname,"10,7")
-- clear the named form and start again
formspeccer:clear("mymod:myform")
minetest.show_formspec(player:get_player_name(),
formspeccer:to_string(formname) -- returns the formspec raw string
)