Don't crash when wagons do not exist but show a warning instead
This commit is contained in:
parent
b649ea5fe4
commit
275579c364
|
@ -23,11 +23,11 @@ end
|
||||||
function atc.send_command(pos)
|
function atc.send_command(pos)
|
||||||
local pts=minetest.pos_to_string(pos)
|
local pts=minetest.pos_to_string(pos)
|
||||||
if atc.controllers[pts] then
|
if atc.controllers[pts] then
|
||||||
atprint("Called send_command at "..pts)
|
--atprint("Called send_command at "..pts)
|
||||||
local train_id = advtrains.detector.on_node[pts]
|
local train_id = advtrains.detector.on_node[pts]
|
||||||
if train_id then
|
if train_id then
|
||||||
if advtrains.trains[train_id] then
|
if advtrains.trains[train_id] then
|
||||||
atprint("send_command inside if: "..sid(train_id))
|
--atprint("send_command inside if: "..sid(train_id))
|
||||||
atc.train_reset_command(train_id)
|
atc.train_reset_command(train_id)
|
||||||
local arrowconn=atc.controllers[pts].arrowconn
|
local arrowconn=atc.controllers[pts].arrowconn
|
||||||
local train=advtrains.trains[train_id]
|
local train=advtrains.trains[train_id]
|
||||||
|
|
|
@ -474,7 +474,7 @@ function advtrains.update_trainpart_properties(train_id, invert_flipstate)
|
||||||
for i, w_id in ipairs(train.trainparts) do
|
for i, w_id in ipairs(train.trainparts) do
|
||||||
local wagon=nil
|
local wagon=nil
|
||||||
for aoid,iwagon in pairs(minetest.luaentities) do
|
for aoid,iwagon in pairs(minetest.luaentities) do
|
||||||
if iwagon.is_wagon and iwagon.initialized and iwagon.unique_id==w_id then
|
if iwagon.is_wagon and iwagon.unique_id==w_id then
|
||||||
if wagon then
|
if wagon then
|
||||||
--duplicate
|
--duplicate
|
||||||
atprint("update_trainpart_properties: Removing duplicate wagon with id="..aoid)
|
atprint("update_trainpart_properties: Removing duplicate wagon with id="..aoid)
|
||||||
|
@ -488,7 +488,11 @@ function advtrains.update_trainpart_properties(train_id, invert_flipstate)
|
||||||
if advtrains.wagon_save[w_id] then
|
if advtrains.wagon_save[w_id] then
|
||||||
--spawn a new and initialize it with the properties from wagon_save
|
--spawn a new and initialize it with the properties from wagon_save
|
||||||
wagon=minetest.env:add_entity(train.last_pos, advtrains.wagon_save[w_id].entity_name):get_luaentity()
|
wagon=minetest.env:add_entity(train.last_pos, advtrains.wagon_save[w_id].entity_name):get_luaentity()
|
||||||
wagon:init_from_wagon_save(w_id)
|
if not wagon then
|
||||||
|
minetest.chat_send_all("[advtrains] Warning: Wagon "..advtrains.wagon_save[w_id].entity_name.." does not exist. Make sure all required modules are loaded!")
|
||||||
|
else
|
||||||
|
wagon:init_from_wagon_save(w_id)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if wagon then
|
if wagon then
|
||||||
|
|
Loading…
Reference in New Issue