summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>2018-08-27 19:45:34 -0400
committerVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>2018-08-27 19:45:34 -0400
commit62806f795e55a1ecaa00c7aee730c95c463b3aa6 (patch)
tree8021a7e330448dae46647910dda910b5e31af77d
parent057baacf2d8c3417d14d19a02edc82456246dc69 (diff)
downloadunifieddyes-62806f795e55a1ecaa00c7aee730c95c463b3aa6.tar
unifieddyes-62806f795e55a1ecaa00c7aee730c95c463b3aa6.tar.gz
unifieddyes-62806f795e55a1ecaa00c7aee730c95c463b3aa6.tar.bz2
unifieddyes-62806f795e55a1ecaa00c7aee730c95c463b3aa6.tar.xz
unifieddyes-62806f795e55a1ecaa00c7aee730c95c463b3aa6.zip
better handling of exiting the color selector form
also prints a warning if the user clicked "Accept" without a color selected
-rw-r--r--init.lua30
1 files changed, 19 insertions, 11 deletions
diff --git a/init.lua b/init.lua
index c8fc385..1f33dcf 100644
--- a/init.lua
+++ b/init.lua
@@ -1045,20 +1045,28 @@ minetest.register_craft( {
})
minetest.register_on_player_receive_fields(function(player, formname, fields)
+ print(dump(fields))
if formname == "unifieddyes:dye_select_form" then
local player_name = player:get_player_name()
- local s1 = string.sub(minetest.serialize(fields), 11)
- local s3 = string.sub(s1,1, string.find(s1, '"')-1)
- if s3 == "cancel" then
- unifieddyes.player_selected_dye[player_name] = nil
- return
- elseif s3 == "accept" and unifieddyes.player_selected_dye[player_name] then
- local dye = unifieddyes.player_selected_dye[player_name]
- unifieddyes.player_current_dye[player_name] = dye
- unifieddyes.player_selected_dye[player_name] = nil
- minetest.chat_send_player(player_name, "*** Selected "..string.sub(dye, 5).." for the airbrush.")
- return
+ if fields.quit then
+ if not fields.accept then
+ unifieddyes.player_selected_dye[player_name] = nil
+ return
+ else
+ local dye = unifieddyes.player_selected_dye[player_name]
+ if not dye then
+ minetest.chat_send_player(player_name, "*** Clicked \"Accept\", but no color was selected!")
+ return
+ end
+ unifieddyes.player_current_dye[player_name] = dye
+ unifieddyes.player_selected_dye[player_name] = nil
+ minetest.chat_send_player(player_name, "*** Selected "..string.sub(dye, 5).." for the airbrush.")
+ return
+ end
else
+ local s1 = string.sub(minetest.serialize(fields), 11)
+ local s3 = string.sub(s1,1, string.find(s1, '"')-1)
+
local inv = player:get_inventory()
local creative = creative and creative.is_enabled_for(player_name)
local dye = "dye:"..s3