summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README76
1 files changed, 76 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..71a4ca9
--- /dev/null
+++ b/README
@@ -0,0 +1,76 @@
+playersettings
+==============
+
+This mod provides a GUI (via unified_inventory) that allows players to change various per-player settings.
+No settings are actually included, but other mods can provide their own.
+
+To register a setting:
+
+playersettings.register("yourmodname:yoursettingname",{
+
+ type = "number",
+ -- Specifies the type of the setting to register.
+ -- Valid types are:
+ ---- "number": An integer or floating-point value.
+ ---- "string": A text string.
+ ---- "boolean": A simple yes/no checkbox.
+ ---- "enum": A list of possible choices.
+
+ shortdesc = "Short Description",
+ -- A short (human-readable) description of the setting, to be shown as the setting name in the menu.
+
+ longdesc = "Long Description Goes Here",
+ -- A longer desciption that is shown when the user selects your setting in the menu.
+
+ default = 5,
+ -- The default value of the setting.
+
+ min = 0,
+ -- For "number" settings: The smallest selectable value.
+
+ max = 10,
+ -- For "number" settings: The largest selectable value.
+
+ integer = true,
+ -- For "integer" settings: If true, entered numbers will be rounded down to the nearest integer.
+
+ values = "some text here",
+ -- For "string" settings: Text to be displayed under the entry field to assist the user in selecting valid values.
+
+ values = {"Apple", "Orange", "Banana"},
+ -- For "enum" settings: A list of the possible choices.
+
+ onjoin = function(player_name,setting_value),
+ -- A function to be called whenever a player joins the game.
+ -- 'player_name' is the name of the player that just joined.
+ -- 'setting_value' is the current value of the setting.
+
+ onchange = function(player_name,old_value,new_value)
+ -- A function to be called when a player tries to change the setting, before the setting is actually changed.
+ -- Custom validation logic should go here.
+ -- 'player_name' is the name of the player trying to change the setting.
+ -- 'old_value' is the current value of the setting.
+ -- 'new_value' is the value the player wants to change the setting to.
+ -- Return true to allow the change to take place, or false (or nothing at all) to prevent the change.
+
+ afterchange = function(player_name,old_value,new_value)
+ -- A function to be called after the setting is changed.
+ -- Code to apply the new value of the setting should go here.
+ -- 'player_name' is the name of the player that changed the setting.
+ -- 'old_value' is the old value of the setting, before it was changed.
+ -- 'new_value' is the value that the setting was changed to.
+})
+
+To set a setting (from another mod):
+
+playersettings.set(player_name,setting_name,new_value)
+-- 'player_name' is the player to change the setting for.
+-- 'setting_name' is the name of the setting to change.
+-- 'new_value' is the new value of the setting.
+-- Changing settings via this interface bypasses the built-in validation (such as range checking on numbers) but NOT any specified onchange or afterchange actions.
+
+To get the value of a setting (from another mod):
+
+playersettings.get(player_name,setting_name)
+-- 'player_name' is the player to get the setting value from.
+-- 'setting_name' is the name of the setting to get.