forked from Sokomine/yl_speak_up
added Let's trade button
This commit is contained in:
parent
d75b94c99d
commit
466a5e617f
@ -1522,6 +1522,26 @@ yl_speak_up.get_fs_talkdialog = function(player, n_id, d_id)
|
|||||||
table.insert(formspec, "label[0.7,"..(h+0.45)..";I am your owner. I have new orders for you.]")
|
table.insert(formspec, "label[0.7,"..(h+0.45)..";I am your owner. I have new orders for you.]")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- add a Let's trade button to the first dialog if the NPC has trades
|
||||||
|
if(active_dialog and active_dialog.d_sort and tonumber(active_dialog.d_sort) == 0
|
||||||
|
and dialog.trades) then
|
||||||
|
local has_trades = nil
|
||||||
|
for k, v in pairs(dialog.trades) do
|
||||||
|
-- has the NPC any *public* trades that are not effects/results?
|
||||||
|
if(not(v.hide) and not(v.d_id)) then
|
||||||
|
has_trades = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if(has_trades) then
|
||||||
|
h = h + 1
|
||||||
|
table.insert(formspec, "button[0.5," .. h .. ";53.8,0.9;show_trade_list;]")
|
||||||
|
table.insert(formspec, "tooltip[show_trade_list;Show a list of trades the NPC has to offer.]")
|
||||||
|
table.insert(formspec, "label[0.7,"..(h+0.45)..";Let's trade!]")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
h = h + 1
|
h = h + 1
|
||||||
table.insert(formspec, "button_exit[0.5," .. h .. ";53.8,0.9;button_exit;]")
|
table.insert(formspec, "button_exit[0.5," .. h .. ";53.8,0.9;button_exit;]")
|
||||||
table.insert(formspec, "tooltip[button_exit;" .. yl_speak_up.message_button_option_exit .. "]")
|
table.insert(formspec, "tooltip[button_exit;" .. yl_speak_up.message_button_option_exit .. "]")
|
||||||
@ -2217,6 +2237,13 @@ yl_speak_up.save_changes_and_switch_to_other_dialog = function(player, fields, t
|
|||||||
yl_speak_up.edit_mode[pname] = nil
|
yl_speak_up.edit_mode[pname] = nil
|
||||||
target_dialog = nil
|
target_dialog = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- the trade list is not really a dialog...
|
||||||
|
if(target_dialog == "trade_list") then
|
||||||
|
minetest.show_formspec(pname, "yl_speak_up:trade_list",
|
||||||
|
yl_speak_up.get_fs_trade_list(player))
|
||||||
|
return
|
||||||
|
end
|
||||||
-- move on to the target dialog
|
-- move on to the target dialog
|
||||||
yl_speak_up.speak_to[pname].d_id = target_dialog
|
yl_speak_up.speak_to[pname].d_id = target_dialog
|
||||||
minetest.show_formspec(pname, "yl_speak_up:talk",
|
minetest.show_formspec(pname, "yl_speak_up:talk",
|
||||||
@ -2971,6 +2998,17 @@ yl_speak_up.input_talk = function(player, formname, fields)
|
|||||||
yl_speak_up.speak_to[pname].option_index = 1
|
yl_speak_up.speak_to[pname].option_index = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- the player wants to see the trade list
|
||||||
|
if(fields.show_trade_list) then
|
||||||
|
if(edit_mode) then
|
||||||
|
yl_speak_up.save_changes_and_switch_to_other_dialog(player, fields, "trade_list")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
minetest.show_formspec(pname, "yl_speak_up:trade_list",
|
||||||
|
yl_speak_up.get_fs_trade_list(player))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
for k, v in pairs(fields) do
|
for k, v in pairs(fields) do
|
||||||
local s = string.split(k, "_")
|
local s = string.split(k, "_")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user