mirror of
https://gitea.your-land.de/Sokomine/yl_speak_up.git
synced 2025-09-06 11:06:24 +02:00
added yl_speak_up.show_fs to combine almost all formspecs
This commit is contained in:
parent
caf72721b3
commit
4095be4e43
@ -1792,6 +1792,44 @@ minetest.register_on_player_receive_fields( function(player, formname, fields)
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
||||||
|
-- call show_formspec with the right input_* function for the right formspec
|
||||||
|
yl_speak_up.show_fs = function(player, fs_name, param)
|
||||||
|
if(not(player)) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local pname = player:get_player_name()
|
||||||
|
|
||||||
|
if(fs_name == "trade_list") then
|
||||||
|
minetest.show_formspec(pname,
|
||||||
|
"yl_speak_up:trade_list",
|
||||||
|
yl_speak_up.get_fs_trade_list(player))
|
||||||
|
|
||||||
|
elseif(fs_name == "trade_simple") then
|
||||||
|
-- the optional parameter param is the trade_id
|
||||||
|
if(not(param) and yl_speak_up.speak_to[pname]) then
|
||||||
|
param = yl_speak_up.speak_to[pname].trade_id
|
||||||
|
end
|
||||||
|
minetest.show_formspec(pname,
|
||||||
|
"yl_speak_up:do_trade_simple",
|
||||||
|
yl_speak_up.get_fs_trade_simple(player, param))
|
||||||
|
|
||||||
|
elseif(fs_name == "add_trade_simple") then
|
||||||
|
-- the optional parameter param is the trade_id
|
||||||
|
if(not(param) and yl_speak_up.speak_to[pname]) then
|
||||||
|
param = yl_speak_up.speak_to[pname].trade_id
|
||||||
|
end
|
||||||
|
minetest.show_formspec(pname,
|
||||||
|
"yl_speak_up:add_trade_simple",
|
||||||
|
yl_speak_up.get_fs_add_trade_simple(player, param))
|
||||||
|
-- fallback in case of wrong call
|
||||||
|
else
|
||||||
|
minetest.chat_send_player(pname, "Error: Trying to show wrong "..
|
||||||
|
"formspec: \""..tostring(fs_name).."\". Please notify "..
|
||||||
|
"an admin.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- the player has closed the inventory formspec of the NPC - save it
|
-- the player has closed the inventory formspec of the NPC - save it
|
||||||
yl_speak_up.input_inventory = function(player, formname, fields)
|
yl_speak_up.input_inventory = function(player, formname, fields)
|
||||||
local pname = player:get_player_name()
|
local pname = player:get_player_name()
|
||||||
@ -1802,7 +1840,7 @@ yl_speak_up.input_inventory = function(player, formname, fields)
|
|||||||
yl_speak_up.save_npc_inventory(n_id)
|
yl_speak_up.save_npc_inventory(n_id)
|
||||||
-- show the trade list?
|
-- show the trade list?
|
||||||
if(fields.inventory_show_tradelist) then
|
if(fields.inventory_show_tradelist) then
|
||||||
yl_speak_up.show_fs_trade_list(player)
|
yl_speak_up.show_fs(player, "trade_list")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
-- ..and go back to the normal talk formspec
|
-- ..and go back to the normal talk formspec
|
||||||
@ -2254,7 +2292,7 @@ yl_speak_up.save_changes_and_switch_to_other_dialog = function(player, fields, t
|
|||||||
|
|
||||||
-- the trade list is not really a dialog...
|
-- the trade list is not really a dialog...
|
||||||
if(target_dialog == "trade_list") then
|
if(target_dialog == "trade_list") then
|
||||||
yl_speak_up.show_fs_trade_list(player)
|
yl_speak_up.show_fs(player, "trade_list")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
-- move on to the target dialog
|
-- move on to the target dialog
|
||||||
@ -2703,7 +2741,7 @@ yl_speak_up.input_edit_option_dialog = function(player, formname, fields)
|
|||||||
-- do not switch target dialog (we are in edit mode)
|
-- do not switch target dialog (we are in edit mode)
|
||||||
yl_speak_up.speak_to[pname].target_d_id = nil
|
yl_speak_up.speak_to[pname].target_d_id = nil
|
||||||
-- create a new trade for this dialog and option - with ID "<d_id> <o_id>"
|
-- create a new trade for this dialog and option - with ID "<d_id> <o_id>"
|
||||||
yl_speak_up.show_fs_add_trade_simple(player, tostring(d_id).." "..tostring(o_id))
|
yl_speak_up.show_fs(player, "add_trade_simple", tostring(d_id).." "..tostring(o_id))
|
||||||
return
|
return
|
||||||
|
|
||||||
-- the player wants to see the previous option/answer
|
-- the player wants to see the previous option/answer
|
||||||
@ -2743,7 +2781,7 @@ yl_speak_up.input_edit_option_dialog = function(player, formname, fields)
|
|||||||
-- do not switch target dialog (we are in edit mode)
|
-- do not switch target dialog (we are in edit mode)
|
||||||
yl_speak_up.speak_to[pname].target_d_id = nil
|
yl_speak_up.speak_to[pname].target_d_id = nil
|
||||||
-- show the trade with ID "<d_id> <o_id>"
|
-- show the trade with ID "<d_id> <o_id>"
|
||||||
yl_speak_up.show_fs_trade_simple(player, tostring(d_id).." "..tostring(o_id))
|
yl_speak_up.show_fs(player, "trade_simple", tostring(d_id).." "..tostring(o_id))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -2979,7 +3017,7 @@ yl_speak_up.input_talk = function(player, formname, fields)
|
|||||||
yl_speak_up.save_changes_and_switch_to_other_dialog(player, fields, "trade_list")
|
yl_speak_up.save_changes_and_switch_to_other_dialog(player, fields, "trade_list")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
yl_speak_up.show_fs_trade_list(player)
|
yl_speak_up.show_fs(player, "trade_list")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -3212,7 +3250,7 @@ yl_speak_up.input_talk = function(player, formname, fields)
|
|||||||
-- which dialog shall be shown in case of a successful trade?
|
-- which dialog shall be shown in case of a successful trade?
|
||||||
yl_speak_up.speak_to[pname].target_d_id = target_dialog
|
yl_speak_up.speak_to[pname].target_d_id = target_dialog
|
||||||
-- show the trade dialog
|
-- show the trade dialog
|
||||||
yl_speak_up.show_fs_trade_simple(player, trade_id)
|
yl_speak_up.show_fs(player, "trade_simple", trade_id)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,17 +1,5 @@
|
|||||||
-- show a list of all trades
|
-- show a list of all trades
|
||||||
|
|
||||||
|
|
||||||
-- provides an easier call for the trade list formspec
|
|
||||||
yl_speak_up.show_fs_trade_list = function(player)
|
|
||||||
if(not(player)) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
minetest.show_formspec(player:get_player_name(),
|
|
||||||
"yl_speak_up:trade_list",
|
|
||||||
yl_speak_up.get_fs_trade_list(player))
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- the player is accessing the trade list
|
-- the player is accessing the trade list
|
||||||
yl_speak_up.input_trade_list = function(player, formname, fields)
|
yl_speak_up.input_trade_list = function(player, formname, fields)
|
||||||
local pname = player:get_player_name()
|
local pname = player:get_player_name()
|
||||||
@ -27,7 +15,7 @@ yl_speak_up.input_trade_list = function(player, formname, fields)
|
|||||||
-- the player wants to add a new trade
|
-- the player wants to add a new trade
|
||||||
if(fields.trade_list_add_trade) then
|
if(fields.trade_list_add_trade) then
|
||||||
-- show the trade config dialog for a new trade
|
-- show the trade config dialog for a new trade
|
||||||
yl_speak_up.show_fs_add_trade_simple(player, "new")
|
yl_speak_up.show_fs(player, "add_trade_simple", "new")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -41,7 +29,7 @@ yl_speak_up.input_trade_list = function(player, formname, fields)
|
|||||||
-- normal mode: the player wants to see a particular trade
|
-- normal mode: the player wants to see a particular trade
|
||||||
for k,v in pairs(dialog.trades) do
|
for k,v in pairs(dialog.trades) do
|
||||||
if(fields[ k ]) then
|
if(fields[ k ]) then
|
||||||
yl_speak_up.show_fs_trade_simple(player, k)
|
yl_speak_up.show_fs(player, "trade_simple", k)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -6,34 +6,6 @@ yl_speak_up.trade_fail_fs = "size[6,2]"..
|
|||||||
"button_exit[2,1.5;1,0.9;exit;Exit]"
|
"button_exit[2,1.5;1,0.9;exit;Exit]"
|
||||||
|
|
||||||
|
|
||||||
-- provides an easier call for the trade simple formspec
|
|
||||||
yl_speak_up.show_fs_trade_simple = function(player, trade_id)
|
|
||||||
if(not(player)) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if(not(trade_id) and yl_speak_up.speak_to[pname]) then
|
|
||||||
trade_id = yl_speak_up.speak_to[pname].trade_id
|
|
||||||
end
|
|
||||||
minetest.show_formspec(player:get_player_name(),
|
|
||||||
"yl_speak_up:do_trade_simple",
|
|
||||||
yl_speak_up.get_fs_trade_simple(player, trade_id))
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- also provides an easier way to call this function
|
|
||||||
yl_speak_up.show_fs_add_trade_simple = function(player, trade_id)
|
|
||||||
if(not(player)) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if(not(trade_id) and yl_speak_up.speak_to[pname]) then
|
|
||||||
trade_id = yl_speak_up.speak_to[pname].trade_id
|
|
||||||
end
|
|
||||||
minetest.show_formspec(player:get_player_name(),
|
|
||||||
"yl_speak_up:add_trade_simple",
|
|
||||||
yl_speak_up.get_fs_add_trade_simple(player, trade_id))
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- possible inputs:
|
-- possible inputs:
|
||||||
-- fields.edit_trade_simple go on to showing the add_trade_simple formspec
|
-- fields.edit_trade_simple go on to showing the add_trade_simple formspec
|
||||||
-- fields.abort_trade_simple, ESC, depends on context
|
-- fields.abort_trade_simple, ESC, depends on context
|
||||||
@ -53,13 +25,13 @@ yl_speak_up.input_do_trade_simple = function(player, formname, fields)
|
|||||||
|
|
||||||
-- show the trade list
|
-- show the trade list
|
||||||
if(fields.back_to_trade_list) then
|
if(fields.back_to_trade_list) then
|
||||||
yl_speak_up.show_fs_trade_list(player)
|
yl_speak_up.show_fs(player, "trade_list")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- a new trade has been stored - show it
|
-- a new trade has been stored - show it
|
||||||
if(fields.trade_simple_stored) then
|
if(fields.trade_simple_stored) then
|
||||||
yl_speak_up.show_fs_trade_simple(player, yl_speak_up.speak_to[pname].trade_id)
|
yl_speak_up.show_fs(player, "trade_simple", yl_speak_up.speak_to[pname].trade_id)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -102,7 +74,7 @@ yl_speak_up.input_do_trade_simple = function(player, formname, fields)
|
|||||||
yl_speak_up.trade[pname] = nil
|
yl_speak_up.trade[pname] = nil
|
||||||
end
|
end
|
||||||
-- go back showing the trade list (since we deleted this trade)
|
-- go back showing the trade list (since we deleted this trade)
|
||||||
yl_speak_up.show_fs_trade_list(player)
|
yl_speak_up.show_fs(player, "trade_list")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -127,7 +99,7 @@ yl_speak_up.input_do_trade_simple = function(player, formname, fields)
|
|||||||
|
|
||||||
-- show the edit trade formspec
|
-- show the edit trade formspec
|
||||||
if(fields.edit_trade_simple) then
|
if(fields.edit_trade_simple) then
|
||||||
yl_speak_up.show_fs_add_trade_simple(player, trade.trade_id)
|
yl_speak_up.show_fs(player, "add_trade_simple", trade.trade_id)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -161,7 +133,7 @@ yl_speak_up.input_do_trade_simple = function(player, formname, fields)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- show this formspec again
|
-- show this formspec again
|
||||||
yl_speak_up.show_fs_trade_simple(player)
|
yl_speak_up.show_fs(player, "trade_simple")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -250,7 +222,7 @@ yl_speak_up.input_add_trade_simple = function(player, formname, fields)
|
|||||||
-- we return from showing an error message (the player may not have noticed
|
-- we return from showing an error message (the player may not have noticed
|
||||||
-- a chat message while viewing a formspec; thus, we showed a formspec message)
|
-- a chat message while viewing a formspec; thus, we showed a formspec message)
|
||||||
if(fields.back_from_error_msg) then
|
if(fields.back_from_error_msg) then
|
||||||
yl_speak_up.show_fs_add_trade_simple(player)
|
yl_speak_up.show_fs(player, "add_trade_simple")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -273,7 +245,7 @@ yl_speak_up.input_add_trade_simple = function(player, formname, fields)
|
|||||||
-- return the items (setting up the trade was aborted)
|
-- return the items (setting up the trade was aborted)
|
||||||
yl_speak_up.add_trade_simple_return_items(player, trade_inv, pay, buy)
|
yl_speak_up.add_trade_simple_return_items(player, trade_inv, pay, buy)
|
||||||
-- ..else go back to the edit options formspec
|
-- ..else go back to the edit options formspec
|
||||||
yl_speak_up.show_fs_trade_list(player)
|
yl_speak_up.show_fs(player, "trade_list")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
-- adding a new trade via the trade list?
|
-- adding a new trade via the trade list?
|
||||||
@ -405,7 +377,7 @@ yl_speak_up.input_add_trade_simple = function(player, formname, fields)
|
|||||||
-- we are no longer trading
|
-- we are no longer trading
|
||||||
yl_speak_up.speak_to[pname].trade_id = nil
|
yl_speak_up.speak_to[pname].trade_id = nil
|
||||||
-- ..else go back to the edit options formspec
|
-- ..else go back to the edit options formspec
|
||||||
yl_speak_up.show_fs_trade_list(player)
|
yl_speak_up.show_fs(player, "trade_list")
|
||||||
else
|
else
|
||||||
-- we are no longer trading
|
-- we are no longer trading
|
||||||
yl_speak_up.speak_to[pname].trade_id = nil
|
yl_speak_up.speak_to[pname].trade_id = nil
|
||||||
@ -744,7 +716,7 @@ minetest.register_on_joinplayer(function(player, last_login)
|
|||||||
if(listname == "pay") then
|
if(listname == "pay") then
|
||||||
local pname = player:get_player_name()
|
local pname = player:get_player_name()
|
||||||
-- show formspec with updated information (perhaps sale is now possible)
|
-- show formspec with updated information (perhaps sale is now possible)
|
||||||
yl_speak_up.show_fs_trade_simple(player)
|
yl_speak_up.show_fs(player, "trade_simple")
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_take = function(inv, listname, index, stack, player)
|
on_take = function(inv, listname, index, stack, player)
|
||||||
@ -753,12 +725,12 @@ minetest.register_on_joinplayer(function(player, last_login)
|
|||||||
if(listname == "pay") then
|
if(listname == "pay") then
|
||||||
local pname = player:get_player_name()
|
local pname = player:get_player_name()
|
||||||
-- show formspec with updated information (perhaps sale is now possible)
|
-- show formspec with updated information (perhaps sale is now possible)
|
||||||
yl_speak_up.show_fs_trade_simple(player)
|
yl_speak_up.show_fs(player, "trade_simple")
|
||||||
elseif(listname == "buy") then
|
elseif(listname == "buy") then
|
||||||
yl_speak_up.do_trade_simple(player, stack:get_count())
|
yl_speak_up.do_trade_simple(player, stack:get_count())
|
||||||
-- information may require an update (NPC might now be out of stock), or
|
-- information may require an update (NPC might now be out of stock), or
|
||||||
-- the player can do the trade a second time
|
-- the player can do the trade a second time
|
||||||
yl_speak_up.show_fs_trade_simple(player)
|
yl_speak_up.show_fs(player, "trade_simple")
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user