Skip to content

taikedz-mt/formspeccer

Repository files navigation

Minetest FormSpeccer

(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)

Example

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
)

About

Create formspecs more easily

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages