This commit is contained in:
Alexsandro Percy 2022-01-16 18:31:33 -03:00
parent b1b698fc66
commit 0be087e26e
5 changed files with 75 additions and 4 deletions

View File

@ -18,6 +18,7 @@ dofile(minetest.get_modpath("automobiles") .. DIR_DELIM .. "fuel_management.lua"
dofile(minetest.get_modpath("automobiles") .. DIR_DELIM .. "ground_detection.lua")
dofile(minetest.get_modpath("automobiles_roadster") .. DIR_DELIM .. "roadster_utilities.lua")
dofile(minetest.get_modpath("automobiles_roadster") .. DIR_DELIM .. "roadster_entities.lua")
dofile(minetest.get_modpath("automobiles_roadster") .. DIR_DELIM .. "roadster_forms.lua")
-- --minetest.add_entity(e_pos, "automobiles_roadster:target")

View File

@ -163,7 +163,7 @@ minetest.register_entity("automobiles_roadster:roadster", {
initial_properties = {
physical = true,
collide_with_objects = true,
collisionbox = {-0.5, -0.5, -0.5, 0.5, 2, 0.5},
collisionbox = {-0.5, -0.5, -0.5, 0.5, 1, 0.5},
selectionbox = {-1.5, 0.0, -1.5, 1.5, 2, 1.5},
stepheight = 0.5,
visual = "mesh",
@ -181,10 +181,10 @@ minetest.register_entity("automobiles_roadster:roadster", {
"automobiles_roadster_fuel.png", --combustivel
"automobiles_metal2.png", --parabrisa fixo
"automobiles_alpha.png", --vidro do parabrisa fixo
"automobiles_metal2.png", --parabrisa movel
"automobiles_alpha.png", --vidro do parabrisa movel
"automobiles_painting.png", --portas
"automobiles_black.png", --portas interno
"automobiles_metal2.png", --parabrisa movel
"automobiles_alpha.png", --vidro do parabrisa movel
"automobiles_black.png", --paralamas
"automobiles_metal2.png", --carenagem do radiador
"automobiles_painting.png", --tanque de combustivel
@ -215,6 +215,7 @@ minetest.register_entity("automobiles_roadster:roadster", {
_roll = math.rad(0),
_pitch = math.rad(90),
_longit_speed = 0,
_show_rag = true,
get_staticdata = function(self) -- unloaded/unloads ... is now saved
return minetest.serialize({
@ -227,6 +228,7 @@ minetest.register_entity("automobiles_roadster:roadster", {
stored_last_checkpoint = self._last_checkpoint,
stored_total_laps = self._total_laps,
stored_race_id = self._race_id,
stored_rag = self._show_rag,
})
end,
@ -243,6 +245,7 @@ minetest.register_entity("automobiles_roadster:roadster", {
self._last_checkpoint = data.stored_last_checkpoint
self._total_laps = data.stored_total_laps
self._race_id = data.stored_race_id
self._show_rag = data.stored_rag
end
self.object:set_animation({x = 1, y = 8}, 0, 0, true)
@ -254,6 +257,11 @@ minetest.register_entity("automobiles_roadster:roadster", {
top1:set_attach(self.object,'',{x=0,y=0,z=0},{x=0,y=0,z=0})
self.top1 = top1
local top2=minetest.add_entity(self.object:get_pos(),'automobiles_roadster:top2')
top2:set_attach(self.object,'',{x=0,y=0,z=0},{x=0,y=0,z=0})
self.top2 = top2
self.top2:set_properties({is_visible=false})
local front_suspension=minetest.add_entity(self.object:get_pos(),'automobiles_roadster:front_suspension')
front_suspension:set_attach(self.object,'',{x=0,y=0,z=24.22},{x=0,y=0,z=0})
self.front_suspension = front_suspension
@ -336,6 +344,16 @@ minetest.register_entity("automobiles_roadster:roadster", {
local accel = vector.add(longit_drag,later_drag)
if self._show_rag == true then
self.object:set_bone_position("parabrisa", {x=0, y=15.8317, z=15.0394}, {x=0, y=0, z=0})
self.top2:set_properties({is_visible=true})
self.top1:set_properties({is_visible=false})
else
self.object:set_bone_position("parabrisa", {x=0, y=15.8317, z=15.0394}, {x=math.rad(-145), y=0, z=0})
self.top2:set_properties({is_visible=false})
self.top1:set_properties({is_visible=true})
end
local player = nil
local is_attached = false
if self.driver_name then
@ -584,6 +602,8 @@ minetest.register_entity("automobiles_roadster:roadster", {
end
if name == self.driver_name then
roadster.driver_formspec(name)
--[[
--detach all
automobiles.dettach_driver(self, clicker)
-- sound
@ -599,7 +619,7 @@ minetest.register_entity("automobiles_roadster:roadster", {
end
self.object:set_acceleration(vector.multiply(automobiles.vector_up, -automobiles.gravity))
]]--
else
if name == self.owner then
--is the owner, okay, lets attach

View File

@ -0,0 +1,50 @@
--------------
-- Manual --
--------------
function roadster.getCarFromPlayer(player)
local seat = player:get_attach()
if seat then
local car = seat:get_attach()
return car
end
return nil
end
function roadster.driver_formspec(name)
local basic_form = table.concat({
"formspec_version[3]",
"size[6,4.5]",
}, "")
basic_form = basic_form.."button[1,1.0;4,1;go_out;Go Offboard]"
basic_form = basic_form.."button[1,2.5;4,1;top;Close/Open Ragtop]"
minetest.show_formspec(name, "roadster:driver_main", basic_form)
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname == "roadster:driver_main" then
local name = player:get_player_name()
local car_obj = roadster.getCarFromPlayer(player)
local ent = car_obj:get_luaentity()
if fields.top then
if ent._show_rag == true then
ent._show_rag = false
else
ent._show_rag = true
end
end
if fields.go_out then
if ent._passenger then --any pax?
local pax_obj = minetest.get_player_by_name(ent._passenger)
automobiles.dettach_pax(ent, pax_obj)
end
automobiles.dettach_driver(ent, player)
end
minetest.close_formspec(name, "roadster:driver_main")
end
end)