Updated attach checks, used `mcl_player.detach_player`, registered `quick_detach_player`

This commit is contained in:
WillConker 2024-06-06 14:55:15 +00:00
parent 99c0e12418
commit 8ad706e9bd
1 changed files with 20 additions and 2 deletions

View File

@ -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
@ -474,7 +492,7 @@ for b=1, #boat_ids do
inventory_image = "mcl_boats_" .. id .. "_boat.png"
texture = "mcl_boats_texture_" .. id .. "_boat.png"
end
minetest.register_craftitem(itemstring, {
description = names[b],
_tt_help = tt_help,