summaryrefslogtreecommitdiff
path: root/examples.lua
diff options
context:
space:
mode:
authorKrock <mk939@ymail.com>2026-05-15 07:57:47 -0500
committercheapie <no-email-for-you@example.com>2026-05-15 07:57:47 -0500
commit2eafcb924a6b89f6a67e3fa4bf6586413623ffc9 (patch)
treeb4bbb4066138116c3474b7ea310b0304e8483767 /examples.lua
parent32a504c664c3dd46550d19397ee5a59d95211531 (diff)
downloadplayersettings-2eafcb924a6b89f6a67e3fa4bf6586413623ffc9.tar
playersettings-2eafcb924a6b89f6a67e3fa4bf6586413623ffc9.tar.gz
playersettings-2eafcb924a6b89f6a67e3fa4bf6586413623ffc9.tar.bz2
playersettings-2eafcb924a6b89f6a67e3fa4bf6586413623ffc9.tar.xz
playersettings-2eafcb924a6b89f6a67e3fa4bf6586413623ffc9.zip
Assorted fixes/cleanups
Contains the following patches: * [PATCH 01/10] Replace 'minetest' with 'core' * [PATCH 02/10] Extend type checks * [PATCH 03/10] Add examples * [PATCH 04/10] Protect against invalid formspec inputs * [PATCH 05/10] Unify some code * [PATCH 06/10] Use dropdown index to check againt value validity * [PATCH 07/10] Improve formspec and implement 'Reset' button * [PATCH 08/10] Do not run callbacks if no value changed * [PATCH 09/10] Add checkbox to show technical names * [PATCH 10/10] Make formspec layout more compact
Diffstat (limited to 'examples.lua')
-rw-r--r--examples.lua64
1 files changed, 64 insertions, 0 deletions
diff --git a/examples.lua b/examples.lua
new file mode 100644
index 0000000..eb439b8
--- /dev/null
+++ b/examples.lua
@@ -0,0 +1,64 @@
+core.log("error", "[playersettings] Examples are enabled!")
+
+local longdesc = "Some helpful long description with [];\\[ escaped characters\nLine 2"
+
+-- Wrapper to add logging
+local function playersettings_register_logged(setting, def)
+ def.onjoin = function(player_name, setting_value)
+ core.log("action", ("Callback %s for player=%s: %s=%s"):format(
+ "onjoin", player_name, setting, dump(setting_value)))
+ end
+ def.onchange = function(player_name, old_value, new_value)
+ core.log("action", ("Callback %s for player=%s: old=%s, new=%s"):format(
+ "onchange", player_name, dump(old_value), dump(new_value)))
+ return true -- allow changing
+ end
+ def.afterchange = function(player_name, old_value, new_value)
+ core.log("action", ("Callback %s for player=%s: old=%s, new=%s"):format(
+ "afterchange", player_name, dump(old_value), dump(new_value)))
+ end
+
+ playersettings.register(setting, def)
+end
+
+playersettings_register_logged("playersettings:number", {
+ type = "number",
+ shortdesc = "Example: number",
+ longdesc = longdesc,
+ default = 5,
+ min = -0.123,
+ max = 10,
+})
+
+playersettings_register_logged("playersettings:number_integer", {
+ type = "number",
+ integer = true,
+ shortdesc = "Example: number (integer)",
+ longdesc = longdesc,
+ default = 5,
+ min = -10,
+ max = 20,
+})
+
+playersettings_register_logged("playersettings:string", {
+ type = "string",
+ shortdesc = "Example: string",
+ longdesc = longdesc,
+ default = "<default>",
+ values = "Input any value."
+})
+
+playersettings_register_logged("playersettings:boolean", {
+ type = "boolean",
+ shortdesc = "Example: boolean",
+ longdesc = longdesc,
+ default = true,
+})
+
+playersettings_register_logged("playersettings:enum", {
+ type = "enum",
+ shortdesc = "Example: enum",
+ longdesc = longdesc,
+ default = "apple",
+ values = { "apple", "banana", "batman" },
+})