mirror of
https://github.com/APercy/airutils.git
synced 2025-04-30 00:31:41 -04:00
Fix lib_plane do_attach
This commit is contained in:
parent
1c4ed7e761
commit
21553a54b3
1 changed files with 31 additions and 31 deletions
|
@ -53,6 +53,23 @@ local function sit_player(player, name)
|
|||
end)
|
||||
end
|
||||
|
||||
local function do_attach(self, player, slot)
|
||||
if slot == 0 then return end
|
||||
if self._passengers[slot] == nil then
|
||||
local name = player:get_player_name()
|
||||
--minetest.chat_send_all(self.driver_name)
|
||||
self._passengers[slot] = name
|
||||
player:set_attach(self._passengers_base[slot], "", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0})
|
||||
|
||||
local eye_y = -4
|
||||
if airutils.detect_player_api(player) == 1 then
|
||||
eye_y = 2.5
|
||||
end
|
||||
player:set_eye_offset({x = 0, y = eye_y, z = 2}, {x = 0, y = 3, z = -30})
|
||||
sit_player(player, name)
|
||||
end
|
||||
end
|
||||
|
||||
-- attach player
|
||||
function airutils.attach(self, player, instructor_mode)
|
||||
if self._needed_licence then
|
||||
|
@ -82,7 +99,7 @@ function airutils.attach(self, player, instructor_mode)
|
|||
if airutils.detect_player_api(player) == 2 then
|
||||
eye_y = -4
|
||||
end
|
||||
|
||||
|
||||
player:set_eye_offset({x = 0, y = eye_y, z = 2}, {x = 0, y = 1, z = -30})
|
||||
sit_player(player, name)
|
||||
end
|
||||
|
@ -121,8 +138,8 @@ function airutils.check_passenger_is_attached(self, name)
|
|||
if self._passenger == name then is_attached = true end
|
||||
if is_attached == false then
|
||||
local max_occupants = table.getn(self._seats)
|
||||
for i = max_occupants,1,-1
|
||||
do
|
||||
for i = max_occupants,1,-1
|
||||
do
|
||||
if self._passengers[i] == name then
|
||||
is_attached = true
|
||||
break
|
||||
|
@ -206,7 +223,7 @@ function airutils.dettach_pax(self, player, is_flying)
|
|||
else
|
||||
local max_seats = table.getn(self._seats)
|
||||
for i = max_seats,1,-1
|
||||
do
|
||||
do
|
||||
if self._passengers[i] == name then
|
||||
self._passengers[i] = nil
|
||||
break
|
||||
|
@ -269,10 +286,10 @@ function airutils.destroy(self, by_name)
|
|||
self.sound_handle = nil
|
||||
end
|
||||
|
||||
--remove the passengers first
|
||||
--remove the passengers first
|
||||
local max_seats = table.getn(self._seats)
|
||||
for i = max_seats,2,-1
|
||||
do
|
||||
do
|
||||
if self._passengers[i] then
|
||||
local passenger = minetest.get_player_by_name(self._passengers[i])
|
||||
if passenger then airutils.dettach_pax(self, passenger) end
|
||||
|
@ -454,7 +471,7 @@ function airutils.testImpact(self, velocity, position)
|
|||
self._power_lever = 0
|
||||
self._engine_running = false
|
||||
end
|
||||
|
||||
|
||||
airutils.setText(self, self._vehicle_name)
|
||||
|
||||
if self.driver_name then
|
||||
|
@ -545,7 +562,7 @@ function airutils.set_param_paint(self, puncher, itmstck, mode)
|
|||
mode = mode or 1
|
||||
local item_name = ""
|
||||
if itmstck then item_name = itmstck:get_name() end
|
||||
|
||||
|
||||
if item_name == "automobiles_lib:painter" or item_name == "bike:painter" then
|
||||
self._skin = ""
|
||||
--painting with bike painter
|
||||
|
@ -595,7 +612,7 @@ end
|
|||
local function _paint(self, l_textures, colstr, paint_list, mask_associations)
|
||||
paint_list = paint_list or self._painting_texture
|
||||
mask_associations = mask_associations or self._mask_painting_associations
|
||||
|
||||
|
||||
for _, texture in ipairs(l_textures) do
|
||||
for i, texture_name in ipairs(paint_list) do --textures list
|
||||
local indx = texture:find(texture_name)
|
||||
|
@ -807,7 +824,7 @@ function airutils.add_blast_damage(pos, radius, damage_cal)
|
|||
local obj_pos = obj:get_pos()
|
||||
local dist = math.max(1, vector.distance(pos, obj_pos))
|
||||
local damage = (damage_cal / dist) * radius
|
||||
|
||||
|
||||
if obj:is_player() then
|
||||
obj:set_hp(obj:get_hp() - damage)
|
||||
else
|
||||
|
@ -904,7 +921,7 @@ function airutils.camera_reposition(player, pitch, roll)
|
|||
--minetest.chat_send_all("2")
|
||||
eye_y = -5
|
||||
end
|
||||
|
||||
|
||||
local z, y = airutils.get_xz_from_hipotenuse(0, eye_y, pitch, player_properties.eye_height)
|
||||
new_eye_offset.z = z*7
|
||||
new_eye_offset.y = y*1.5
|
||||
|
@ -918,7 +935,7 @@ function airutils.seats_create(self)
|
|||
if self.object then
|
||||
local pos = self.object:get_pos()
|
||||
self._passengers_base = {}
|
||||
if self._seats then
|
||||
if self._seats then
|
||||
local max_seats = table.getn(self._seats)
|
||||
for i=1, max_seats do
|
||||
self._passengers_base[i] = minetest.add_entity(pos,'airutils:seat_base')
|
||||
|
@ -1023,23 +1040,6 @@ function airutils.flap_operate(self, player)
|
|||
end
|
||||
end
|
||||
|
||||
local function do_attach(self, player, slot)
|
||||
if slot == 0 then return end
|
||||
if self._passengers[slot] == nil then
|
||||
local name = player:get_player_name()
|
||||
--minetest.chat_send_all(self.driver_name)
|
||||
self._passengers[slot] = name
|
||||
player:set_attach(self._passengers_base[slot], "", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0})
|
||||
|
||||
local eye_y = -4
|
||||
if airutils.detect_player_api(player) == 1 then
|
||||
eye_y = 2.5
|
||||
end
|
||||
player:set_eye_offset({x = 0, y = eye_y, z = 2}, {x = 0, y = 3, z = -30})
|
||||
sit_player(player, name)
|
||||
end
|
||||
end
|
||||
|
||||
--this method checks for a disconected player who comes back
|
||||
function airutils.rescueConnectionFailedPassengers(self)
|
||||
if self._disconnection_check_time == nil then self._disconnection_check_time = 1 end
|
||||
|
@ -1049,8 +1049,8 @@ function airutils.rescueConnectionFailedPassengers(self)
|
|||
if self._disconnection_check_time > 1 then
|
||||
--minetest.chat_send_all(dump(self._passengers))
|
||||
self._disconnection_check_time = 0
|
||||
for i = max_seats,1,-1
|
||||
do
|
||||
for i = max_seats,1,-1
|
||||
do
|
||||
if self._passengers[i] then
|
||||
local player = minetest.get_player_by_name(self._passengers[i])
|
||||
if player then --we have a player!
|
||||
|
|
Loading…
Add table
Reference in a new issue