linked works here/belongs_to to proper owner

This commit is contained in:
Sokomine 2017-07-26 05:07:26 +02:00
parent 9345755384
commit e52ad5c4bb
2 changed files with 32 additions and 7 deletions

View File

@ -556,7 +556,7 @@ mg_villages.inhabitants.print_house_info = function( village_to_add_data_bpos, h
-- allow to click through the plots
prev_next_button..
'label[0.5,0.5;'..minetest.formspec_escape(str)..']'..
'label[0.5,4.1;'..minetest.formspec_escape(add_str)..']'..
'label[0.5,4.1;'..add_str..']'..
'tablecolumns[' ..
'text,align=left]'.. -- name and description of inhabitant
'table[0.1,1.0;11.4,3.0;mg_villages:formspec_list_inhabitants;'..people_str..']';

View File

@ -403,12 +403,37 @@ mg_villages.form_input_handler = function( player, formname, fields)
and mg_villages.all_villages[ fields.village_id ]
and mg_villages.all_villages[ fields.village_id ].to_add_data
and mg_villages.all_villages[ fields.village_id ].to_add_data.bpos
and mg_villages.all_villages[ fields.village_id ].to_add_data.bpos[ fields.plot_nr ]
and mg_villages.all_villages[ fields.village_id ].to_add_data.bpos[ fields.plot_nr ].beds[mob_selected]) then
local village = mg_villages.all_villages[ fields.village_id ];
minetest.show_formspec( pname, "mg_villages:formspec_list_one_mob",
mg_villages.inhabitants.print_mob_info( village.to_add_data.bpos, fields.plot_nr, fields.village_id, mob_selected, pname ));
return true;
and mg_villages.all_villages[ fields.village_id ].to_add_data.bpos[ fields.plot_nr ])then
-- and mg_villages.all_villages[ fields.village_id ].to_add_data.bpos[ fields.plot_nr ].beds[mob_selected]) then
if( not( mg_villages.all_villages[ fields.village_id ].to_add_data.bpos[ fields.plot_nr ].beds)
or not( mg_villages.all_villages[ fields.village_id ].to_add_data.bpos[ fields.plot_nr ].beds[ mob_selected] )) then
-- allow to click at the worker
local bpos = mg_villages.all_villages[ fields.village_id ].to_add_data.bpos;
if( bpos[ fields.plot_nr ].worker
and bpos[ fields.plot_nr ].worker.lives_at
and bpos[ bpos[ fields.plot_nr ].worker.lives_at ]
and bpos[ bpos[ fields.plot_nr ].worker.lives_at ].beds
and bpos[ bpos[ fields.plot_nr ].worker.lives_at ].beds[1] ) then
fields.plot_nr = tonumber(bpos[ fields.plot_nr ].worker.lives_at);
mob_selected = 1;
-- allow to click at the owner
elseif( bpos[ fields.plot_nr ].belongs_to
and bpos[ bpos[ fields.plot_nr ].belongs_to ]
and bpos[ bpos[ fields.plot_nr ].belongs_to ].beds
and bpos[ bpos[ fields.plot_nr ].belongs_to ].beds[1] ) then
fields.plot_nr = tonumber(bpos[ fields.plot_nr ].belongs_to);
mob_selected = 1;
-- this is not a mob
else
mob_selected = nil;
end
end
if( mob_selected ) then
local village = mg_villages.all_villages[ fields.village_id ];
minetest.show_formspec( pname, "mg_villages:formspec_list_one_mob",
mg_villages.inhabitants.print_mob_info( village.to_add_data.bpos, fields.plot_nr, fields.village_id, mob_selected, pname ));
return true;
end
end