diff options
Diffstat (limited to 'advtrains/advtrains/couple.lua')
-rw-r--r-- | advtrains/advtrains/couple.lua | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/advtrains/advtrains/couple.lua b/advtrains/advtrains/couple.lua index b50eec9..7a1e07a 100644 --- a/advtrains/advtrains/couple.lua +++ b/advtrains/advtrains/couple.lua @@ -31,7 +31,7 @@ minetest.register_entity("advtrains:discouple", { on_punch=function(self, player) --only if player owns at least one wagon next to this local own=player:get_player_name() - if self.wagon.owner and self.wagon.owner==own then + if self.wagon.owner and self.wagon.owner==own and not self.wagon.lock_couples then local train=advtrains.trains[self.wagon.train_id] local nextwgn_id=train.trainparts[self.wagon.pos_in_trainparts-1] for aoi, le in pairs(minetest.luaentities) do @@ -46,6 +46,8 @@ minetest.register_entity("advtrains:discouple", { end advtrains.split_train_at_wagon(self.wagon)--found in trainlogic.lua self.object:remove() + elseif self.wagon.lock_couples then + minetest.chat_send_player(own, "Couples of one of the wagons are locked, can't discouple!") else minetest.chat_send_player(own, attrans("You need to own at least one neighboring wagon to destroy this couple.")) end @@ -99,24 +101,24 @@ minetest.register_entity("advtrains:couple", { end end, get_staticdata=function(self) return "COUPLE" end, - on_rightclick=function(self) + on_rightclick=function(self, clicker) if not self.train_id_1 or not self.train_id_2 then return end local id1, id2=self.train_id_1, self.train_id_2 if self.train1_is_backpos and not self.train2_is_backpos then - advtrains.do_connect_trains(id1, id2) + advtrains.do_connect_trains(id1, id2, clicker) --case 2 (second train is front) elseif self.train2_is_backpos and not self.train1_is_backpos then - advtrains.do_connect_trains(id2, id1) + advtrains.do_connect_trains(id2, id1, clicker) --case 3 elseif self.train1_is_backpos and self.train2_is_backpos then advtrains.invert_train(id2) - advtrains.do_connect_trains(id1, id2) + advtrains.do_connect_trains(id1, id2, clicker) --case 4 elseif not self.train1_is_backpos and not self.train2_is_backpos then advtrains.invert_train(id1) - advtrains.do_connect_trains(id1, id2) + advtrains.do_connect_trains(id1, id2, clicker) end self.object:remove() end, |