forked from VoxeLibre/VoxeLibre
Updated attach checks, used `mcl_player.detach_player`, registered `quick_detach_player`
This commit is contained in:
parent
99c0e12418
commit
8ad706e9bd
|
@ -1,3 +1,5 @@
|
|||
mcl_boats = {}
|
||||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local boat_visual_size = {x = 1, y = 1, z = 1}
|
||||
|
@ -128,6 +130,21 @@ local function detach_object(obj, change_pos)
|
|||
end
|
||||
end
|
||||
|
||||
function mcl_boats.quick_detach_player(player, boat)
|
||||
-- called in mcl_player
|
||||
-- boat should be luaentity
|
||||
if player == boat._driver then
|
||||
detach_object(player, true)
|
||||
boat._driver = nil
|
||||
elseif player == boat._passenger then
|
||||
detach_object(player, true)
|
||||
boat._passenger = nil
|
||||
else
|
||||
-- minetest.debug('Player attached to boat but not driver or passenger???')
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
--
|
||||
-- Boat entity
|
||||
--
|
||||
|
@ -160,9 +177,10 @@ local boat = {
|
|||
minetest.register_on_respawnplayer(detach_object)
|
||||
|
||||
function boat.on_rightclick(self, clicker)
|
||||
if self._passenger or not clicker or clicker:get_attach() or (self.name == "mcl_boats:chest_boat" and self._driver) then
|
||||
if self._passenger or not clicker or (self.name == "mcl_boats:chest_boat" and self._driver) then
|
||||
return
|
||||
end
|
||||
mcl_player.detach_player(clicker)
|
||||
attach_object(self, clicker)
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue