From b7ee0f99caa96816ca9cd19a71c7aa388cd782ce Mon Sep 17 00:00:00 2001 From: Alexsandro Percy Date: Sun, 11 Sep 2022 09:29:25 -0300 Subject: [PATCH] fix control max speed, added new test vehicle --- automobiles_buggy/buggy_entities.lua | 4 +- automobiles_buggy/mod.conf | 2 +- automobiles_coupe/coupe_entities.lua | 4 +- automobiles_coupe/mod.conf | 2 +- automobiles_lib/README.md | 7 +- automobiles_lib/control.lua | 2 +- automobiles_lib/custom_physics.lua | 14 +- automobiles_lib/init.lua | 1 + automobiles_lib/mod.conf | 2 +- automobiles_lib/physics_lib.lua | 177 ++++++ automobiles_motorcycle/README.md | 7 + automobiles_motorcycle/init.lua | 26 + automobiles_motorcycle/mod.conf | 5 + .../models/automobiles_motorcycle_body.b3d | Bin 0 -> 143835 bytes .../models/automobiles_motorcycle_lights.b3d | Bin 0 -> 11313 bytes .../automobiles_motorcycle_r_lights.b3d | Bin 0 -> 1038 bytes automobiles_motorcycle/motorcycle_crafts.lua | 75 +++ .../motorcycle_entities.lua | 597 ++++++++++++++++++ automobiles_motorcycle/motorcycle_forms.lua | 46 ++ automobiles_motorcycle/motorcycle_player.lua | 175 +++++ .../motorcycle_utilities.lua | 66 ++ .../sounds/buggy_engine.ogg | Bin 0 -> 43963 bytes .../textures/automobiles_motorcycle.png | Bin 0 -> 10623 bytes .../textures/automobiles_motorcycle_body.png | Bin 0 -> 9566 bytes .../textures/automobiles_motorcycle_fuel.png | Bin 0 -> 6159 bytes .../automobiles_motorcycle_lights.png | Bin 0 -> 5222 bytes .../automobiles_motorcycle_rear_lights.png | Bin 0 -> 5831 bytes ...utomobiles_motorcycle_rear_lights_full.png | Bin 0 -> 5301 bytes ...automobiles_motorcycle_rear_lights_off.png | Bin 0 -> 5714 bytes .../textures/automobiles_motorcycle_wheel.png | Bin 0 -> 10055 bytes .../automobiles_motorcycle_wheel_icon.png | Bin 0 -> 15544 bytes automobiles_roadster/mod.conf | 2 +- automobiles_roadster/roadster_entities.lua | 4 +- 33 files changed, 1196 insertions(+), 22 deletions(-) create mode 100755 automobiles_lib/physics_lib.lua create mode 100755 automobiles_motorcycle/README.md create mode 100755 automobiles_motorcycle/init.lua create mode 100755 automobiles_motorcycle/mod.conf create mode 100755 automobiles_motorcycle/models/automobiles_motorcycle_body.b3d create mode 100755 automobiles_motorcycle/models/automobiles_motorcycle_lights.b3d create mode 100755 automobiles_motorcycle/models/automobiles_motorcycle_r_lights.b3d create mode 100644 automobiles_motorcycle/motorcycle_crafts.lua create mode 100755 automobiles_motorcycle/motorcycle_entities.lua create mode 100644 automobiles_motorcycle/motorcycle_forms.lua create mode 100644 automobiles_motorcycle/motorcycle_player.lua create mode 100755 automobiles_motorcycle/motorcycle_utilities.lua create mode 100644 automobiles_motorcycle/sounds/buggy_engine.ogg create mode 100755 automobiles_motorcycle/textures/automobiles_motorcycle.png create mode 100755 automobiles_motorcycle/textures/automobiles_motorcycle_body.png create mode 100755 automobiles_motorcycle/textures/automobiles_motorcycle_fuel.png create mode 100755 automobiles_motorcycle/textures/automobiles_motorcycle_lights.png create mode 100644 automobiles_motorcycle/textures/automobiles_motorcycle_rear_lights.png create mode 100644 automobiles_motorcycle/textures/automobiles_motorcycle_rear_lights_full.png create mode 100644 automobiles_motorcycle/textures/automobiles_motorcycle_rear_lights_off.png create mode 100755 automobiles_motorcycle/textures/automobiles_motorcycle_wheel.png create mode 100755 automobiles_motorcycle/textures/automobiles_motorcycle_wheel_icon.png diff --git a/automobiles_buggy/buggy_entities.lua b/automobiles_buggy/buggy_entities.lua index fa16ac6..989bd67 100755 --- a/automobiles_buggy/buggy_entities.lua +++ b/automobiles_buggy/buggy_entities.lua @@ -419,11 +419,11 @@ minetest.register_entity("automobiles_buggy:buggy", { self.inv = inv end - mobkit.actfunc(self, staticdata, dtime_s) + automobiles_lib.actfunc(self, staticdata, dtime_s) end, on_step = function(self, dtime) - mobkit.stepfunc(self, dtime) + automobiles_lib.stepfunc(self, dtime) --[[sound play control]]-- self._last_time_collision_snd = self._last_time_collision_snd + dtime if self._last_time_collision_snd > 1 then self._last_time_collision_snd = 1 end diff --git a/automobiles_buggy/mod.conf b/automobiles_buggy/mod.conf index 755187d..a472558 100755 --- a/automobiles_buggy/mod.conf +++ b/automobiles_buggy/mod.conf @@ -2,4 +2,4 @@ name=automobiles_buggy title=Buggy description=A buggy author=apercy -depends=biofuel,automobiles_lib,mobkit +depends=biofuel,automobiles_lib diff --git a/automobiles_coupe/coupe_entities.lua b/automobiles_coupe/coupe_entities.lua index 3686f19..22f2820 100755 --- a/automobiles_coupe/coupe_entities.lua +++ b/automobiles_coupe/coupe_entities.lua @@ -427,11 +427,11 @@ minetest.register_entity("automobiles_coupe:coupe", { end - mobkit.actfunc(self, staticdata, dtime_s) + automobiles_lib.actfunc(self, staticdata, dtime_s) end, on_step = function(self, dtime) - mobkit.stepfunc(self, dtime) + automobiles_lib.stepfunc(self, dtime) --[[sound play control]]-- self._last_time_collision_snd = self._last_time_collision_snd + dtime if self._last_time_collision_snd > 1 then self._last_time_collision_snd = 1 end diff --git a/automobiles_coupe/mod.conf b/automobiles_coupe/mod.conf index c2352dd..5936e1f 100755 --- a/automobiles_coupe/mod.conf +++ b/automobiles_coupe/mod.conf @@ -1,4 +1,4 @@ name=automobiles_coupe description=A coupe author=apercy -depends=biofuel,automobiles_lib,mobkit +depends=biofuel,automobiles_lib diff --git a/automobiles_lib/README.md b/automobiles_lib/README.md index a24dd4b..9f6ee0a 100755 --- a/automobiles_lib/README.md +++ b/automobiles_lib/README.md @@ -1,10 +1,9 @@ -Coupe - This mod adds library for automobiles licence of code -LGPL3 -except painter.lua, licenced as MIT +MIT + +physics_lib.lua - MIT by TheTermos licence of the media: licence CC0 diff --git a/automobiles_lib/control.lua b/automobiles_lib/control.lua index c7f6df9..bb339af 100755 --- a/automobiles_lib/control.lua +++ b/automobiles_lib/control.lua @@ -35,7 +35,7 @@ function automobiles_lib.control(self, dtime, hull_direction, longit_speed, long local acc = 0 if self._energy > 0 then - if longit_speed < roadster.max_speed and ctrl.up then + if longit_speed < max_speed and ctrl.up then --get acceleration factor acc = automobiles_lib.check_road_is_ok(self.object, max_acc_factor) --minetest.chat_send_all('engineacc: '.. engineacc) diff --git a/automobiles_lib/custom_physics.lua b/automobiles_lib/custom_physics.lua index be58673..96d6cba 100755 --- a/automobiles_lib/custom_physics.lua +++ b/automobiles_lib/custom_physics.lua @@ -39,28 +39,28 @@ function automobiles_lib.physics(self) -- buoyancy local surface = nil local surfnodename = nil - local spos = mobkit.get_stand_pos(self) + local spos = automobiles_lib.get_stand_pos(self) spos.y = spos.y+0.01 -- get surface height - local snodepos = mobkit.get_node_pos(spos) - local surfnode = mobkit.nodeatpos(spos) + local snodepos = automobiles_lib.get_node_pos(spos) + local surfnode = automobiles_lib.nodeatpos(spos) while surfnode and (surfnode.drawtype == 'liquid' or surfnode.drawtype == 'flowingliquid') do surfnodename = surfnode.name surface = snodepos.y +0.5 if surface > spos.y+self.height then break end snodepos.y = snodepos.y+1 - surfnode = mobkit.nodeatpos(snodepos) + surfnode = automobiles_lib.nodeatpos(snodepos) end self.isinliquid = surfnodename if surface then -- standing in liquid -- self.isinliquid = true local submergence = min(surface-spos.y,self.height)/self.height -- local balance = self.buoyancy*self.height - local buoyacc = mobkit.gravity*(self.buoyancy-submergence) - mobkit.set_acceleration(self.object, + local buoyacc = (automobiles_lib.gravity*-1)*(self.buoyancy-submergence) + automobiles_lib.set_acceleration(self.object, {x=-vel.x*self.water_drag,y=buoyacc-vel.y*abs(vel.y)*0.4,z=-vel.z*self.water_drag}) else - self.object:set_acceleration({x=0,y=mobkit.gravity,z=0}) + self.object:set_acceleration({x=0,y=-automobiles_lib.gravity,z=0}) end end diff --git a/automobiles_lib/init.lua b/automobiles_lib/init.lua index 0c01f9f..e4fe97c 100755 --- a/automobiles_lib/init.lua +++ b/automobiles_lib/init.lua @@ -403,6 +403,7 @@ function automobiles_lib.paint(self, colstr) end end +dofile(minetest.get_modpath("automobiles_lib") .. DIR_DELIM .. "physics_lib.lua") dofile(minetest.get_modpath("automobiles_lib") .. DIR_DELIM .. "custom_physics.lua") dofile(minetest.get_modpath("automobiles_lib") .. DIR_DELIM .. "control.lua") dofile(minetest.get_modpath("automobiles_lib") .. DIR_DELIM .. "fuel_management.lua") diff --git a/automobiles_lib/mod.conf b/automobiles_lib/mod.conf index 4418589..c91c8b9 100755 --- a/automobiles_lib/mod.conf +++ b/automobiles_lib/mod.conf @@ -1,2 +1,2 @@ name = automobiles_lib -depends=biofuel,mobkit,player_api +depends=biofuel,player_api diff --git a/automobiles_lib/physics_lib.lua b/automobiles_lib/physics_lib.lua new file mode 100755 index 0000000..4b4bf60 --- /dev/null +++ b/automobiles_lib/physics_lib.lua @@ -0,0 +1,177 @@ +local abs = math.abs +local pi = math.pi +local floor = math.floor +local ceil = math.ceil +local random = math.random +local sqrt = math.sqrt +local max = math.max +local min = math.min +local tan = math.tan +local pow = math.pow + +local sign = function(x) + return (x<0) and -1 or 1 +end + +function automobiles_lib.rot_to_dir(rot) -- keep rot within <-pi/2,pi/2> + local dir = minetest.yaw_to_dir(rot.y) + dir.y = dir.y+tan(rot.x)*vector.length(dir) + return vector.normalize(dir) +end + +function automobiles_lib.dir_to_rot(v,rot) + rot = rot or {x=0,y=0,z=0} + return {x = (v.x==0 and v.y==0 and v.z==0) and rot.x or math.atan2(v.y,vector.length({x=v.x,y=0,z=v.z})), + y = (v.x==0 and v.z==0) and rot.y or minetest.dir_to_yaw(v), + z=rot.z} +end + +function automobiles_lib.pos_shift(pos,vec) -- vec components can be omitted e.g. vec={y=1} + vec.x=vec.x or 0 + vec.y=vec.y or 0 + vec.z=vec.z or 0 + return {x=pos.x+vec.x, + y=pos.y+vec.y, + z=pos.z+vec.z} +end + +function automobiles_lib.get_stand_pos(thing) -- thing can be luaentity or objectref. + local pos = {} + local colbox = {} + if type(thing) == 'table' then + pos = thing.object:get_pos() + colbox = thing.object:get_properties().collisionbox + elseif type(thing) == 'userdata' then + pos = thing:get_pos() + colbox = thing:get_properties().collisionbox + else + return false + end + return automobiles_lib.pos_shift(pos,{y=colbox[2]+0.01}), pos +end + +function automobiles_lib.get_node_pos(pos) + return { + x=floor(pos.x+0.5), + y=floor(pos.y+0.5), + z=floor(pos.z+0.5), + } +end + +function automobiles_lib.nodeatpos(pos) + local node = minetest.get_node_or_nil(pos) + if node then return minetest.registered_nodes[node.name] end +end + +function automobiles_lib.minmax(v,m) + return min(abs(v),m)*sign(v) +end + +function automobiles_lib.set_acceleration(thing,vec,limit) + limit = limit or 100 + if type(thing) == 'table' then thing=thing.object end + vec.x=automobiles_lib.minmax(vec.x,limit) + vec.y=automobiles_lib.minmax(vec.y,limit) + vec.z=automobiles_lib.minmax(vec.z,limit) + + thing:set_acceleration(vec) +end + +function automobiles_lib.actfunc(self, staticdata, dtime_s) + + self.logic = self.logic or self.brainfunc + self.physics = self.physics or automobiles_lib.physics + + self.lqueue = {} + self.hqueue = {} + self.nearby_objects = {} + self.nearby_players = {} + self.pos_history = {} + self.path_dir = 1 + self.time_total = 0 + self.water_drag = self.water_drag or 1 + + local sdata = minetest.deserialize(staticdata) + if sdata then + for k,v in pairs(sdata) do + self[k] = v + end + end + + if self.textures==nil then + local prop_tex = self.object:get_properties().textures + if prop_tex then self.textures=prop_tex end + end + + if not self.memory then -- this is the initial activation + self.memory = {} + + -- texture variation + if #self.textures > 1 then self.texture_no = random(#self.textures) end + end + + if self.timeout and ((self.timeout>0 and dtime_s > self.timeout and next(self.memory)==nil) or + (self.timeout<0 and dtime_s > abs(self.timeout))) then + self.object:remove() + end + + -- apply texture + if self.textures and self.texture_no then + local props = {} + props.textures = {self.textures[self.texture_no]} + self.object:set_properties(props) + end + +--hp + self.max_hp = self.max_hp or 10 + self.hp = self.hp or self.max_hp +--armor + if type(self.armor_groups) ~= 'table' then + self.armor_groups={} + end + self.armor_groups.immortal = 1 + self.object:set_armor_groups(self.armor_groups) + + self.buoyancy = self.buoyancy or 0 + self.oxygen = self.oxygen or self.lung_capacity + self.lastvelocity = {x=0,y=0,z=0} +end + +function automobiles_lib.get_box_height(self) + if type(self) == 'table' then self = self.object end + local colbox = self:get_properties().collisionbox + local height = 0.1 + if colbox then height = colbox[5]-colbox[2] end + + return height > 0 and height or 0.1 +end + +function automobiles_lib.stepfunc(self,dtime,colinfo) + self.dtime = min(dtime,0.2) + self.colinfo = colinfo + self.height = automobiles_lib.get_box_height(self) + +-- physics comes first + local vel = self.object:get_velocity() + + if colinfo then + self.isonground = colinfo.touching_ground + else + if self.lastvelocity.y==0 and vel.y==0 then + self.isonground = true + else + self.isonground = false + end + end + + self:physics() + + if self.logic then + if self.view_range then self:sensefunc() end + self:logic() + execute_queues(self) + end + + self.lastvelocity = self.object:get_velocity() + self.time_total=self.time_total+self.dtime +end diff --git a/automobiles_motorcycle/README.md b/automobiles_motorcycle/README.md new file mode 100755 index 0000000..591740a --- /dev/null +++ b/automobiles_motorcycle/README.md @@ -0,0 +1,7 @@ +Motorcycle + +This mod adds a motorcycle to minetest + + + +licence see the files diff --git a/automobiles_motorcycle/init.lua b/automobiles_motorcycle/init.lua new file mode 100755 index 0000000..b86e685 --- /dev/null +++ b/automobiles_motorcycle/init.lua @@ -0,0 +1,26 @@ +-- +-- constants +-- +motorcycle={} +motorcycle.LONGIT_DRAG_FACTOR = 0.14*0.14 +motorcycle.LATER_DRAG_FACTOR = 25.0 +motorcycle.gravity = automobiles_lib.gravity +motorcycle.max_speed = 20 +motorcycle.max_acc_factor = 8 +motorcycle.max_fuel = 5 +motorcycle.trunk_slots = 0 + +motorcycle.front_wheel_xpos = 0 +motorcycle.rear_wheel_xpos = 0 + +dofile(minetest.get_modpath("automobiles_lib") .. DIR_DELIM .. "custom_physics.lua") +dofile(minetest.get_modpath("automobiles_lib") .. DIR_DELIM .. "control.lua") +dofile(minetest.get_modpath("automobiles_lib") .. DIR_DELIM .. "fuel_management.lua") +dofile(minetest.get_modpath("automobiles_lib") .. DIR_DELIM .. "ground_detection.lua") +dofile(minetest.get_modpath("automobiles_motorcycle") .. DIR_DELIM .. "motorcycle_player.lua") +dofile(minetest.get_modpath("automobiles_motorcycle") .. DIR_DELIM .. "motorcycle_utilities.lua") +dofile(minetest.get_modpath("automobiles_motorcycle") .. DIR_DELIM .. "motorcycle_entities.lua") +dofile(minetest.get_modpath("automobiles_motorcycle") .. DIR_DELIM .. "motorcycle_forms.lua") +dofile(minetest.get_modpath("automobiles_motorcycle") .. DIR_DELIM .. "motorcycle_crafts.lua") + + diff --git a/automobiles_motorcycle/mod.conf b/automobiles_motorcycle/mod.conf new file mode 100755 index 0000000..7660af0 --- /dev/null +++ b/automobiles_motorcycle/mod.conf @@ -0,0 +1,5 @@ +name=automobiles_motorcycle +title=Buggy +description=A motorcycle +author=apercy +depends=biofuel,automobiles_lib diff --git a/automobiles_motorcycle/models/automobiles_motorcycle_body.b3d b/automobiles_motorcycle/models/automobiles_motorcycle_body.b3d new file mode 100755 index 0000000000000000000000000000000000000000..525018c874431ad9bbe0a91c08b75720dfbd9f4d GIT binary patch literal 143835 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

~0z7 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 F@CyWO{jC51 literal 0 HcmV?d00001 diff --git a/automobiles_motorcycle/motorcycle_crafts.lua b/automobiles_motorcycle/motorcycle_crafts.lua new file mode 100644 index 0000000..c7afe11 --- /dev/null +++ b/automobiles_motorcycle/motorcycle_crafts.lua @@ -0,0 +1,75 @@ +-- +-- items +-- + +-- body +minetest.register_craftitem("automobiles_motorcycle:body",{ + description = "Motorcycle body", + inventory_image = "automobiles_motorcycle_body.png", +}) +-- wheel +minetest.register_craftitem("automobiles_motorcycle:wheel",{ + description = "Motorcycle wheel", + inventory_image = "automobiles_motorcycle_wheel_icon.png", +}) + +-- motorcycle +minetest.register_craftitem("automobiles_motorcycle:motorcycle", { + description = "Motorcycle", + inventory_image = "automobiles_motorcycle.png", + liquids_pointable = false, + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + + local pointed_pos = pointed_thing.above + --pointed_pos.y=pointed_pos.y+0.2 + local car = minetest.add_entity(pointed_pos, "automobiles_motorcycle:motorcycle") + if car and placer then + local ent = car:get_luaentity() + local owner = placer:get_player_name() + if ent then + ent.owner = owner + car:set_yaw(placer:get_look_horizontal()) + itemstack:take_item() + ent.object:set_acceleration({x=0,y=-automobiles_lib.gravity,z=0}) + automobiles_lib.setText(ent, "motorcycle") + automobiles_lib.create_inventory(ent, motorcycle.trunk_slots, owner) + end + end + + return itemstack + end, +}) + +-- +-- crafting +-- +if minetest.get_modpath("default") then + minetest.register_craft({ + output = "automobiles_motorcycle:motorcycle", + recipe = { + {"automobiles_motorcycle:wheel", "automobiles_lib:body", "automobiles_motorcycle:wheel"}, + } + }) + minetest.register_craft({ + output = "automobiles_motorcycle:body", + recipe = { + {"default:glass" ,"","default:steel_ingot"}, + {"default:steel_ingot","","default:steel_ingot"}, + {"default:steel_ingot","automobiles_lib:engine", "default:steel_ingot"}, + } + }) + minetest.register_craft({ + output = "automobiles_motorcycle:wheel", + recipe = { + {"default:steel_ingot", "default:tin_ingot", "default:steel_ingot"}, + {"default:steel_ingot","default:steelblock", "default:steel_ingot"}, + {"default:steel_ingot", "default:tin_ingot", "default:steel_ingot"}, + } + }) +end + + diff --git a/automobiles_motorcycle/motorcycle_entities.lua b/automobiles_motorcycle/motorcycle_entities.lua new file mode 100755 index 0000000..3b73f78 --- /dev/null +++ b/automobiles_motorcycle/motorcycle_entities.lua @@ -0,0 +1,597 @@ +-- +-- entity +-- + +minetest.register_entity('automobiles_motorcycle:lights',{ +initial_properties = { + physical = false, + collide_with_objects=false, + pointable=false, + glow = 0, + visual = "mesh", + mesh = "automobiles_motorcycle_lights.b3d", + textures = {"automobiles_grey.png",}, + }, + + on_activate = function(self,std) + self.sdata = minetest.deserialize(std) or {} + if self.sdata.remove then self.object:remove() end + end, + + get_staticdata=function(self) + self.sdata.remove=true + return minetest.serialize(self.sdata) + end, + +}) + +minetest.register_entity('automobiles_motorcycle:r_lights',{ +initial_properties = { + physical = false, + collide_with_objects=false, + pointable=false, + glow = 0, + visual = "mesh", + mesh = "automobiles_motorcycle_r_lights.b3d", + textures = {"automobiles_red.png",}, + }, + + on_activate = function(self,std) + self.sdata = minetest.deserialize(std) or {} + if self.sdata.remove then self.object:remove() end + end, + + get_staticdata=function(self) + self.sdata.remove=true + return minetest.serialize(self.sdata) + end, + +}) + +minetest.register_entity('automobiles_motorcycle:pivot_mesh',{ +initial_properties = { + physical = false, + collide_with_objects=false, + pointable=false, + visual = "mesh", + mesh = "automobiles_pivot_mesh.b3d", + textures = {"automobiles_black.png",}, + }, + + on_activate = function(self,std) + self.sdata = minetest.deserialize(std) or {} + if self.sdata.remove then self.object:remove() end + end, + + get_staticdata=function(self) + self.sdata.remove=true + return minetest.serialize(self.sdata) + end, + +}) + +minetest.register_entity('automobiles_motorcycle:pointer',{ +initial_properties = { + physical = false, + collide_with_objects=false, + pointable=false, + visual = "mesh", + mesh = "automobiles_pointer.b3d", + visual_size = {x = 0.8, y = 0.8, z = 0.8}, + textures = {"automobiles_white.png"}, + }, + + on_activate = function(self,std) + self.sdata = minetest.deserialize(std) or {} + if self.sdata.remove then self.object:remove() end + end, + + get_staticdata=function(self) + self.sdata.remove=true + return minetest.serialize(self.sdata) + end, +}) + +minetest.register_entity("automobiles_motorcycle:motorcycle", { + initial_properties = { + physical = true, + collide_with_objects = true, + collisionbox = {-0.1, -0.43, -0.1, 0.1, 1, 0.1}, + selectionbox = {-1, 1, -1, 1, -1, 1}, + stepheight = 0.7, + visual = "mesh", + mesh = "automobiles_motorcycle_body.b3d", + --use_texture_alpha = true, + backface_culling = false, + textures = { + "automobiles_black.png", --bancos + "automobiles_black.png", --chassis + "automobiles_black.png", --suspensao traseira + "automobiles_metal.png", --metais + "automobiles_painting.png", --paralamas + "automobiles_black.png", --preto + "automobiles_motorcycle_wheel.png", --rodas + "automobiles_metal.png", --escapamento + "automobiles_black.png", --saida escape + "automobiles_metal.png", --motor + "automobiles_painting.png", --paralamas 2 + "automobiles_painting.png", --carenagens + "automobiles_blue.png", --frontlights + "automobiles_red.png", --ref + }, + }, + textures = {}, + driver_name = nil, + sound_handle = nil, + owner = "", + static_save = true, + infotext = "A very nice motorcycle!", + hp = 50, + buoyancy = 2, + physics = automobiles_lib.physics, + lastvelocity = vector.new(), + time_total = 0, + _passenger = nil, + _color = "#AAAAAA", + _steering_angle = 0, + _engine_running = false, + _last_checkpoint = "", + _total_laps = -1, + _race_id = "", + _energy = 1, + _last_time_collision_snd = 0, + _last_time_drift_snd = 0, + _last_time_command = 0, + _roll = math.rad(0), + _pitch = 0, + _longit_speed = 0, + _show_lights = false, + _light_old_pos = nil, + _last_ground_check = 0, + _last_light_move = 0, + _last_engine_sound_update = 0, + _inv = nil, + _inv_id = "", + _change_color = automobiles_lib.paint, + + get_staticdata = function(self) -- unloaded/unloads ... is now saved + return minetest.serialize({ + stored_owner = self.owner, + stored_hp = self.hp, + stored_color = self._color, + stored_steering = self._steering_angle, + stored_energy = self._energy, + --race data + stored_last_checkpoint = self._last_checkpoint, + stored_total_laps = self._total_laps, + stored_race_id = self._race_id, + stored_rag = self._show_rag, + stored_pitch = self._pitch, + stored_light_old_pos = self._light_old_pos, + stored_inv_id = self._inv_id, + }) + end, + + on_deactivate = function(self) + automobiles_lib.save_inventory(self) + end, + + on_activate = function(self, staticdata, dtime_s) + if staticdata ~= "" and staticdata ~= nil then + local data = minetest.deserialize(staticdata) or {} + self.owner = data.stored_owner + self.hp = data.stored_hp + self._color = data.stored_color + self._steering_angle = data.stored_steering + self._energy = data.stored_energy + --minetest.debug("loaded: ", self.energy) + --race data + 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 + self._pitch = data.stored_pitch + self._light_old_pos = data.stored_light_old_pos + self._inv_id = data.stored_inv_id + automobiles_lib.setText(self, "Motorcycle") + end + + self.object:set_animation({x = 1, y = 41}, 0, 0, true) + + automobiles_lib.paint(self, self._color) + local pos = self.object:get_pos() + + local lights = minetest.add_entity(pos,'automobiles_motorcycle:lights') + lights:set_attach(self.object,'',{x=0,y=0,z=0},{x=0,y=0,z=0}) + self.lights = lights + self.lights:set_properties({is_visible=true}) + + local rlights = minetest.add_entity(pos,'automobiles_motorcycle:r_lights') + rlights:set_attach(self.object,'',{x=0,y=0,z=0},{x=0,y=0,z=0}) + self.rlights = rlights + self.rlights:set_properties({is_visible=true}) + + local driver_seat=minetest.add_entity(pos,'automobiles_motorcycle:pivot_mesh') + driver_seat:set_attach(self.object,'',{x=0.0,y=-1.1,z=5.5},{x=0,y=0,z=0}) + self.driver_seat = driver_seat + + local passenger_seat=minetest.add_entity(pos,'automobiles_motorcycle:pivot_mesh') + passenger_seat:set_attach(self.object,'',{x=0.0,y=-0.3,z=0.09},{x=0,y=0,z=0}) + self.passenger_seat = passenger_seat + + self.object:set_armor_groups({immortal=1}) + + local inv = minetest.get_inventory({type = "detached", name = self._inv_id}) + -- if the game was closed the inventories have to be made anew, instead of just reattached + if not inv then + automobiles_lib.create_inventory(self, motorcycle.trunk_slots) + else + self.inv = inv + end + + self.object:set_bone_position("guidao", {x=0, y=0, z=17.5}, {x=30, y=180, z=0}) + self.lights:set_bone_position("guidao", {x=0, y=0, z=17.5}, {x=30, y=180, z=0}) + + automobiles_lib.actfunc(self, staticdata, dtime_s) + end, + + on_step = function(self, dtime) + automobiles_lib.stepfunc(self, dtime) + --[[sound play control]]-- + self._last_time_collision_snd = self._last_time_collision_snd + dtime + if self._last_time_collision_snd > 1 then self._last_time_collision_snd = 1 end + self._last_time_drift_snd = self._last_time_drift_snd + dtime + if self._last_time_drift_snd > 1 then self._last_time_drift_snd = 1 end + --[[end sound control]]-- + + local rotation = self.object:get_rotation() + local yaw = rotation.y + local newyaw=yaw + local pitch = rotation.x + + local hull_direction = minetest.yaw_to_dir(yaw) + local nhdir = {x=hull_direction.z,y=0,z=-hull_direction.x} -- lateral unit vector + local velocity = self.object:get_velocity() + + local longit_speed = automobiles_lib.dot(velocity,hull_direction) + local fuel_weight_factor = (5 - self._energy)/5000 + local longit_drag = vector.multiply(hull_direction,(longit_speed*longit_speed) * + (motorcycle.LONGIT_DRAG_FACTOR - fuel_weight_factor) * -1 * automobiles_lib.sign(longit_speed)) + + local later_speed = automobiles_lib.dot(velocity,nhdir) + local later_drag = vector.multiply(nhdir,later_speed* + later_speed*motorcycle.LATER_DRAG_FACTOR*-1*automobiles_lib.sign(later_speed)) + + local accel = vector.add(longit_drag,later_drag) + + local player = nil + local is_attached = false + if self.driver_name then + player = minetest.get_player_by_name(self.driver_name) + + if player then + local player_attach = player:get_attach() + if player_attach then + if self.driver_seat then + if player_attach == self.driver_seat then is_attached = true end + end + end + end + end + + local is_breaking = false + if is_attached then + local ctrl = player:get_player_control() + if ctrl.aux1 then + --sets the engine running - but sets a delay also, cause keypress + if self._last_time_command > 0.8 then + self._last_time_command = 0 + minetest.sound_play({name = "automobiles_horn"}, + {object = self.object, gain = 0.6, pitch = 1.0, max_hear_distance = 32, loop = false,}) + end + end + if ctrl.down then + is_breaking = true + self.lights:set_properties({textures={"automobiles_motorcycle_lights.png",}, glow=32}) + self.rlights:set_properties({textures={"automobiles_motorcycle_rear_lights_full.png",}, glow=32}) + end + + else + --desligado + self.lights:set_properties({textures={"automobiles_grey.png",}, glow=0}) + self.rlights:set_properties({textures={"automobiles_rear_lights_off.png",}, glow=0}) + end + + self._last_light_move = self._last_light_move + dtime + if self._last_light_move > 0.15 then + self._last_light_move = 0 + if self._show_lights == true then + --self.lights:set_properties({is_visible=true}) + self.lights:set_properties({textures={"automobiles_motorcycle_lights.png",}, glow=32}) + self.rlights:set_properties({textures={"automobiles_motorcycle_rear_lights_full.png",}, glow=32}) + if is_breaking == false then + self.lights:set_properties({textures={"automobiles_motorcycle_lights.png",}, glow=32}) + self.rlights:set_properties({textures={"automobiles_motorcycle_rear_lights_full.png",}, glow=10}) + end + automobiles_lib.put_light(self) + else + if is_breaking == false then + --desligado + self.lights:set_properties({textures={"automobiles_grey.png",}, glow=0}) + self.rlights:set_properties({textures={"automobiles_rear_lights_off.png",}, glow=0}) + end + automobiles_lib.remove_light(self) + end + end + + local curr_pos = self.object:get_pos() + local steering_angle_max = 30 + self.object:move_to(curr_pos) + if is_attached then --and self.driver_name == self.owner then + self._show_lights = true + if self.driver_mesh then self.driver_mesh:set_properties({is_visible=true}) end + local impact = automobiles_lib.get_hipotenuse_value(velocity, self.lastvelocity) + if impact > 1 then + --self.damage = self.damage + impact --sum the impact value directly to damage meter + if self._last_time_collision_snd > 0.3 then + self._last_time_collision_snd = 0 + minetest.sound_play("collision", { + to_player = self.driver_name, + --pos = curr_pos, + --max_hear_distance = 5, + gain = 1.0, + fade = 0.0, + pitch = 1.0, + }) + end + --[[if self.damage > 100 then --if acumulated damage is greater than 100, adieu + automobiles_lib.destroy(self) + end]]-- + end + + local min_later_speed = 0.9 + if (later_speed > min_later_speed or later_speed < -min_later_speed) and + self._last_time_drift_snd > 0.6 then + self._last_time_drift_snd = 0 + minetest.sound_play("drifting", { + to_player = self.driver_name, + pos = curr_pos, + max_hear_distance = 5, + gain = 1.0, + fade = 0.0, + pitch = 1.0, + ephemeral = true, + }) + end + + --control + local steering_speed = 80 + if math.abs(longit_speed) > 3 then + local mid_speed = (steering_speed/2) + steering_speed = mid_speed + mid_speed / math.abs(longit_speed*0.25) + end + accel, stop = automobiles_lib.control(self, dtime, hull_direction, longit_speed, longit_drag, later_drag, accel, motorcycle.max_acc_factor, motorcycle.max_speed, steering_angle_max, steering_speed) + else + if self.driver_mesh then self.driver_mesh:set_properties({is_visible=false}) end + self._show_lights = false + if self.sound_handle ~= nil then + minetest.sound_stop(self.sound_handle) + self.sound_handle = nil + end + end + + local angle_factor = self._steering_angle / 10 + self.object:set_animation_frame_speed(longit_speed * (10 - angle_factor)) + + --whell turn + self.object:set_bone_position("eixo_direcao", {x=0, y=0, z=0}, {x=0, y=-self._steering_angle-angle_factor, z=0}) + self.lights:set_bone_position("eixo_direcao", {x=0, y=0, z=0}, {x=0, y=-self._steering_angle-angle_factor, z=0}) + + if player then + -- -30 direita -> steering_angle_max + -- +30 esquerda + local arm_range = 2 + local range = steering_angle_max * 2 + local armZ = -((self._steering_angle+steering_angle_max) * arm_range) / 60 + + --player:set_bone_position("Arm_Left", {x=3.0, y=5, z=-arm_range-armZ}, {x=240-(self._steering_angle/2), y=0, z=0}) + --player:set_bone_position("Arm_Right", {x=-3.0, y=5, z=armZ}, {x=240+(self._steering_angle/2), y=0, z=0}) + if self.driver_mesh then + self.driver_mesh:set_bone_position("Arm_Left", {x=3.0, y=5, z=-armZ-2}, {x=60-(self._steering_angle/2), y=0, z=0}) + self.driver_mesh:set_bone_position("Arm_Right", {x=-3.0, y=5, z=armZ}, {x=60+(self._steering_angle/2), y=0, z=0}) + end + end + + if math.abs(self._steering_angle)>5 then + local turn_rate = math.rad(40) + newyaw = yaw + dtime*(1 - 1 / (math.abs(longit_speed) + 1)) * + self._steering_angle / 30 * turn_rate * automobiles_lib.sign(longit_speed) + end + + --[[ + accell correction + under some circunstances the acceleration exceeds the max value accepted by set_acceleration and + the game crashes with an overflow, so limiting the max acceleration in each axis prevents the crash + ]]-- + local max_factor = 25 + local acc_adjusted = 10 + if accel.x > max_factor then accel.x = acc_adjusted end + if accel.x < -max_factor then accel.x = -acc_adjusted end + if accel.z > max_factor then accel.z = acc_adjusted end + if accel.z < -max_factor then accel.z = -acc_adjusted end + -- end correction + + -- calculate energy consumption -- + ---------------------------------- + if self._energy > 0 then + local zero_reference = vector.new() + local acceleration = automobiles_lib.get_hipotenuse_value(accel, zero_reference) + --minetest.chat_send_all(acceleration) + local consumed_power = acceleration/40000 + self._energy = self._energy - consumed_power; + end + if self._energy <= 0 then + self._engine_running = false + if self.sound_handle then minetest.sound_stop(self.sound_handle) end + --minetest.chat_send_player(self.driver_name, "Out of fuel") + else + self._last_engine_sound_update = self._last_engine_sound_update + dtime + if self._last_engine_sound_update > 0.300 then + self._last_engine_sound_update = 0 + motorcycle.engine_set_sound_and_animation(self, longit_speed) + end + end + + local energy_indicator_angle = automobiles_lib.get_gauge_angle(self._energy) + ---------------------------- + -- end energy consumption -- + + accel.y = -automobiles_lib.gravity + + if stop ~= true then + --self.object:set_velocity(velocity) + self.object:set_acceleration(accel) + else + if stop == true then + self.object:set_acceleration({x=0,y=0,z=0}) + self.object:set_velocity({x=0,y=0,z=0}) + end + end + + self._last_ground_check = self._last_ground_check + dtime + if self._last_ground_check > 0.18 then + self._last_ground_check = 0 + automobiles_lib.ground_get_distances(self, 0.372, 2.3) + end + local newpitch = self._pitch --velocity.y * math.rad(6) + + local turn_effect_speed = longit_speed + if turn_effect_speed > 10 then turn_effect_speed = 10 end + local newroll = (-self._steering_angle/100)*(turn_effect_speed/10) + + if newyaw~=yaw or newpitch~=pitch then self.object:set_rotation({x=newpitch,y=newyaw,z=newroll}) end + + --saves last velocity for collision detection (abrupt stop) + self.lastvelocity = self.object:get_velocity() + self._longit_speed = longit_speed + + end, + + on_punch = function(self, puncher, ttime, toolcaps, dir, damage) + if not puncher or not puncher:is_player() then + return + end + + local name = puncher:get_player_name() + --[[if self.owner and self.owner ~= name and self.owner ~= "" then return end]]-- + if self.owner == nil then + self.owner = name + end + + if self.driver_name and self.driver_name ~= name then + -- do not allow other players to remove the object while there is a driver + return + end + + local is_attached = false + if puncher:get_attach() == self.driver_seat then is_attached = true end + + local itmstck=puncher:get_wielded_item() + local item_name = "" + if itmstck then item_name = itmstck:get_name() end + + --refuel procedure + --[[ + refuel works it car is stopped and engine is off + ]]-- + local velocity = self.object:get_velocity() + local speed = automobiles_lib.get_hipotenuse_value(vector.new(), velocity) + if math.abs(speed) <= 0.1 then + if automobiles_lib.loadFuel(self, puncher:get_player_name(), false, motorcycle.max_fuel) then return end + end + -- end refuel + + if is_attached == false then + + -- deal with painting or destroying + if itmstck then + --race status restart + if item_name == "checkpoints:status_restarter" and self._engine_running == false then + --restart race current status + self._last_checkpoint = "" + self._total_laps = -1 + self._race_id = "" + return + end + + if automobiles_lib.set_paint(self, puncher, itmstck) == false then + local is_admin = false + is_admin = minetest.check_player_privs(puncher, {server=true}) + --minetest.chat_send_all('owner '.. self.owner ..' - name '.. name) + if not self.driver and (self.owner == name or is_admin == true) and toolcaps and + toolcaps.damage_groups and toolcaps.damage_groups.fleshy then + self.hp = self.hp - 10 + minetest.sound_play("collision", { + object = self.object, + max_hear_distance = 5, + gain = 1.0, + fade = 0.0, + pitch = 1.0, + }) + end + end + end + + if self.hp <= 0 then + motorcycle.destroy(self) + end + + end + + end, + + on_rightclick = function(self, clicker) + if not clicker or not clicker:is_player() then + return + end + + local name = clicker:get_player_name() + --[[if self.owner and self.owner ~= name and self.owner ~= "" then return end]]-- + if self.owner == "" then + self.owner = name + end + + if name == self.driver_name then + motorcycle.driver_formspec(name) + else + if name == self.owner then + if clicker:get_player_control().aux1 == true then + automobiles_lib.show_vehicle_trunk_formspec(self, clicker, motorcycle.trunk_slots) + else + --is the owner, okay, lets attach + motorcycle.attach_driver_stand(self, clicker) + -- sound + self.sound_handle = minetest.sound_play({name = "motorcycle_engine"}, + {object = self.object, gain = 4, pitch = 1, max_hear_distance = 10, loop = true,}) + end + else + --minetest.chat_send_all("clicou") + --a passenger + if self._passenger == nil then + --there is no passenger, so lets attach + if self.driver_name then + motorcycle.attach_pax_stand(self, clicker) + end + else + --there is a passeger + if self._passenger == name then + --if you are the psenger, so deattach + motorcycle.dettach_pax_stand(self, clicker) + end + end + end + end + end, +}) + + diff --git a/automobiles_motorcycle/motorcycle_forms.lua b/automobiles_motorcycle/motorcycle_forms.lua new file mode 100644 index 0000000..6c98ef7 --- /dev/null +++ b/automobiles_motorcycle/motorcycle_forms.lua @@ -0,0 +1,46 @@ + +-------------- +-- Manual -- +-------------- + +function motorcycle.getCarFromPlayer(player) + local seat = player:get_attach() + if seat then + local car = seat:get_attach() + return car + end + return nil +end + +function motorcycle.driver_formspec(name) + local basic_form = table.concat({ + "formspec_version[3]", + "size[6,6]", + }, "") + + basic_form = basic_form.."button[1,1.0;4,1;go_out;Go Offboard]" + + minetest.show_formspec(name, "motorcycle:driver_main", basic_form) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname == "motorcycle:driver_main" then + local name = player:get_player_name() + local car_obj = motorcycle.getCarFromPlayer(player) + if car_obj then + local ent = car_obj:get_luaentity() + if ent then + if fields.go_out then + + if ent._passenger then --any pax? + local pax_obj = minetest.get_player_by_name(ent._passenger) + motorcycle.dettach_pax_stand(ent, pax_obj) + end + + motorcycle.dettach_driver_stand(ent, player) + end + end + end + minetest.close_formspec(name, "motorcycle:driver_main") + end +end) diff --git a/automobiles_motorcycle/motorcycle_player.lua b/automobiles_motorcycle/motorcycle_player.lua new file mode 100644 index 0000000..a47e7c0 --- /dev/null +++ b/automobiles_motorcycle/motorcycle_player.lua @@ -0,0 +1,175 @@ +minetest.register_entity('automobiles_motorcycle:player_mesh',{ +initial_properties = { + physical = false, + collide_with_objects=false, + pointable=false, + visual = "mesh", + mesh = "character.b3d", + textures = {"character.png"}, + is_visible = false, + }, + + on_activate = function(self,std) + self.sdata = minetest.deserialize(std) or {} + if self.sdata.remove then self.object:remove() end + end, + + get_staticdata=function(self) + self.sdata.remove=true + return minetest.serialize(self.sdata) + end, + +}) + +-- attach player +function motorcycle.attach_driver_stand(self, player) + local name = player:get_player_name() + self.driver_name = name + self.driver_properties = player:get_properties() + self.driver_properties.selectionbox = nil + self.driver_properties.pointable = false + self.driver_properties.show_on_minimap = false + self.driver_properties.static_save = nil + self.driver_properties.makes_footstep_sound = nil + --minetest.chat_send_all(dump(self.driver_properties)) + + -- attach the driver + player:set_attach(self.driver_seat, "", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) + player_api.player_attached[name] = true + + -- makes it "invisible" + player:set_properties({mesh = "automobiles_pivot_mesh.b3d"}) + + + --create the dummy mesh + local pos = player:get_pos() + local driver_mesh=minetest.add_entity(pos,'automobiles_motorcycle:player_mesh') + driver_mesh:set_attach(player,'',{x=0.0,y=-0.0,z=0.0},{x=0,y=0,z=0}) + self.driver_mesh = driver_mesh + self.driver_mesh:set_properties({is_visible=false}) + + --position the dummy arms and legs + self.driver_mesh:set_properties(self.driver_properties) + self.driver_mesh:set_bone_position("Leg_Left", {x=1.1, y=0, z=0}, {x=12, y=0, z=10}) + self.driver_mesh:set_bone_position("Leg_Right", {x=-1.1, y=0, z=0}, {x=12, y=0, z=-10}) + self.driver_mesh:set_properties({ + is_visible=true, + }) + + --[[player:set_bone_position("Leg_Left", {x=1.1, y=0, z=0}, {x=180+12, y=0, z=10}) + player:set_bone_position("Leg_Right", {x=-1.1, y=0, z=0}, {x=180+12, y=0, z=-10}) + player:set_bone_position("Arm_Left", {x=3.0, y=5, z=-1}, {x=180+70, y=0, z=0}) + player:set_bone_position("Arm_Right", {x=-3.0, y=5, z=-1}, {x=180+70, y=0, z=0})]]-- +end + +function motorcycle.dettach_driver_stand(self, player) + local name = self.driver_name + + --self._engine_running = false + + -- driver clicked the object => driver gets off the vehicle + self.driver_name = nil + + if self._engine_running then + self._engine_running = false + end + -- sound and animation + if self.sound_handle then + minetest.sound_stop(self.sound_handle) + self.sound_handle = nil + end + + -- detach the player + if player then + --automobiles_lib.remove_hud(player) + + player:set_detach() + player_api.player_attached[name] = nil + player:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0}) + player_api.set_animation(player, "stand") + + if self.driver_properties then + player:set_properties({mesh = self.driver_properties.mesh}) + self.driver_properties = nil + end + + --player:set_properties({visual_size = {x=1, y=1}}) + if driver_mesh then + self.driver_mesh:set_properties({is_visible=false}) + self.driver_mesh:remove() + end + end + self.driver = nil +end + +-- attach passenger +function motorcycle.attach_pax_stand(self, player) + local onside = onside or false + local name = player:get_player_name() + + self.pax_properties = player:get_properties() + self.pax_properties.selectionbox = nil + self.pax_properties.pointable = false + self.pax_properties.show_on_minimap = false + self.pax_properties.static_save = nil + self.pax_properties.makes_footstep_sound = nil + + if self._passenger == nil then + self._passenger = name + + -- attach the driver + player:set_attach(self.passenger_seat, "", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) + player_api.player_attached[name] = true + + -- makes it "invisible" + player:set_properties({mesh = "automobiles_pivot_mesh.b3d"}) + + --create the dummy mesh + local pos = player:get_pos() + local pax_mesh=minetest.add_entity(pos,'automobiles_motorcycle:player_mesh') + pax_mesh:set_attach(player,'',{x=0.0,y=-0.0,z=0.0},{x=0,y=0,z=0}) + self.pax_mesh = pax_mesh + self.pax_mesh:set_properties({is_visible=false}) + + --position the dummy arms and legs + self.pax_mesh:set_properties(self.pax_properties) + self.pax_mesh:set_bone_position("Leg_Left", {x=1.1, y=0, z=0}, {x=12, y=0, z=10}) + self.pax_mesh:set_bone_position("Leg_Right", {x=-1.1, y=0, z=0}, {x=12, y=0, z=-10}) + self.pax_mesh:set_properties({ + is_visible=true, + }) + end + +end + +function motorcycle.dettach_pax_stand(self, player) + local name = player:get_player_name() --self._passenger + + -- passenger clicked the object => driver gets off the vehicle + if self._passenger == name then + self._passenger = nil + end + + -- detach the player + if player then + --player:set_properties({physical=true}) + player:set_detach() + player_api.player_attached[name] = nil + player_api.set_animation(player, "stand") + player:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0}) + --remove_physics_override(player, {speed=1,gravity=1,jump=1}) + + if self.pax_properties then + player:set_properties({mesh = self.pax_properties.mesh}) + self.pax_properties = nil + end + + --player:set_properties({visual_size = {x=1, y=1}}) + if self.pax_mesh then + self.pax_mesh:set_properties({is_visible=false}) + self.pax_mesh:remove() + end + end +end + + diff --git a/automobiles_motorcycle/motorcycle_utilities.lua b/automobiles_motorcycle/motorcycle_utilities.lua new file mode 100755 index 0000000..fd3a90c --- /dev/null +++ b/automobiles_motorcycle/motorcycle_utilities.lua @@ -0,0 +1,66 @@ +--dofile(minetest.get_modpath("automobiles_motorcycle") .. DIR_DELIM .. "buggy_global_definitions.lua") +--dofile(minetest.get_modpath("automobiles_motorcycle") .. DIR_DELIM .. "buggy_hud.lua") + +-- destroy the buggy +function motorcycle.destroy(self, puncher) + automobiles_lib.remove_light(self) + if self.sound_handle then + minetest.sound_stop(self.sound_handle) + self.sound_handle = nil + end + + if self.driver_name then + -- detach the driver first (puncher must be driver) + if puncher then + puncher:set_detach() + puncher:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) + if minetest.global_exists("player_api") then + player_api.player_attached[self.driver_name] = nil + -- player should stand again + player_api.set_animation(puncher, "stand") + end + end + self.driver_name = nil + end + + local pos = self.object:get_pos() + + if self.driver_seat then self.driver_seat:remove() end + if self.passenger_seat then self.passenger_seat:remove() end + if self.lights then self.lights:remove() end + if self.rlights then self.rlights:remove() end + if self.driver_mesh then self.driver_mesh:remove() end + if self.pax_mesh then self.pax_mesh:remove() end + + automobiles_lib.destroy_inventory(self) + self.object:remove() + + pos.y=pos.y+2 + + --minetest.add_item({x=pos.x+math.random()-0.5,y=pos.y,z=pos.z+math.random()-0.5},'automobiles_motorcycle:buggy') + minetest.add_item({x=pos.x+math.random()-0.5,y=pos.y,z=pos.z+math.random()-0.5},'automobiles_lib:engine') + minetest.add_item({x=pos.x+math.random()-0.5,y=pos.y,z=pos.z+math.random()-0.5},'automobiles_motorcycle:wheel') + minetest.add_item({x=pos.x+math.random()-0.5,y=pos.y,z=pos.z+math.random()-0.5},'automobiles_motorcycle:wheel') +end + +function motorcycle.engine_set_sound_and_animation(self, _longit_speed) + --minetest.chat_send_all('test1 ' .. dump(self._engine_running) ) + if self.sound_handle then + if (math.abs(self._longit_speed) > math.abs(_longit_speed) + 0.08) or (math.abs(self._longit_speed) + 0.08 < math.abs(_longit_speed)) then + --minetest.chat_send_all('test2') + motorcycle.engineSoundPlay(self) + end + end +end + +function motorcycle.engineSoundPlay(self) + --sound + if self.sound_handle then minetest.sound_stop(self.sound_handle) end + if self.object then + self.sound_handle = minetest.sound_play({name = "buggy_engine"}, + {object = self.object, gain = 8, + pitch = 1 + ((self._longit_speed/10)/2), + max_hear_distance = 10, + loop = true,}) + end +end diff --git a/automobiles_motorcycle/sounds/buggy_engine.ogg b/automobiles_motorcycle/sounds/buggy_engine.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3284d80aa5910b08c600c7b13568bf96e2dc154e GIT binary patch literal 43963 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 JzH~F-{{aiXoRt6o literal 0 HcmV?d00001 diff --git a/automobiles_motorcycle/textures/automobiles_motorcycle_body.png b/automobiles_motorcycle/textures/automobiles_motorcycle_body.png new file mode 100755 index 0000000000000000000000000000000000000000..d818bd6af88eed8495f9d62d845e59379ae1d48b GIT binary patch literal 9566 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 b8EpP4u*69pGn=GxY*p)N8Q@BfJB9xbTmX0_ literal 0 HcmV?d00001 diff --git a/automobiles_motorcycle/textures/automobiles_motorcycle_fuel.png b/automobiles_motorcycle/textures/automobiles_motorcycle_fuel.png new file mode 100755 index 0000000000000000000000000000000000000000..089e6c429647496329f380b2adad5b33312e7e7e GIT binary patch literal 6159 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 XboKSMf~!WrG(#-S>`Y6I{o?-*$v(G( literal 0 HcmV?d00001 diff --git a/automobiles_motorcycle/textures/automobiles_motorcycle_lights.png b/automobiles_motorcycle/textures/automobiles_motorcycle_lights.png new file mode 100755 index 0000000000000000000000000000000000000000..299f2c9506ea44b52d5bcd9dd4e867c5f10ece37 GIT binary patch literal 5222 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 Q3+BU+1V;qb1}x6{9|0Lon*aa+ literal 0 HcmV?d00001 diff --git a/automobiles_motorcycle/textures/automobiles_motorcycle_rear_lights_full.png b/automobiles_motorcycle/textures/automobiles_motorcycle_rear_lights_full.png new file mode 100644 index 0000000000000000000000000000000000000000..4b47e67c4f0c612438c3a2ce42117b1ce3bb55bd GIT binary patch literal 5301 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 literal 0 HcmV?d00001 diff --git a/automobiles_motorcycle/textures/automobiles_motorcycle_rear_lights_off.png b/automobiles_motorcycle/textures/automobiles_motorcycle_rear_lights_off.png new file mode 100644 index 0000000000000000000000000000000000000000..68ab0e34f8a14e6de9e50754e4cf66f459a78d24 GIT binary patch literal 5714 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 P(~NL+^mHh<3rYG9duI5v literal 0 HcmV?d00001 diff --git a/automobiles_motorcycle/textures/automobiles_motorcycle_wheel.png b/automobiles_motorcycle/textures/automobiles_motorcycle_wheel.png new file mode 100755 index 0000000000000000000000000000000000000000..3b7c5b323cb45511e3ba21dc85d8db81e58fdcd5 GIT binary patch literal 10055 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 literal 0 HcmV?d00001 diff --git a/automobiles_motorcycle/textures/automobiles_motorcycle_wheel_icon.png b/automobiles_motorcycle/textures/automobiles_motorcycle_wheel_icon.png new file mode 100755 index 0000000000000000000000000000000000000000..3ab797bf072c454164e559ede75512bbdec2f9fb GIT binary patch literal 15544 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 A761SM literal 0 HcmV?d00001 diff --git a/automobiles_roadster/mod.conf b/automobiles_roadster/mod.conf index 32e0ea8..8b01045 100755 --- a/automobiles_roadster/mod.conf +++ b/automobiles_roadster/mod.conf @@ -2,4 +2,4 @@ name=automobiles_roadster title=Roadster description=A roadster automobile author=apercy -depends=biofuel,automobiles_lib,mobkit +depends=biofuel,automobiles_lib diff --git a/automobiles_roadster/roadster_entities.lua b/automobiles_roadster/roadster_entities.lua index 1de282b..a0d7b4d 100755 --- a/automobiles_roadster/roadster_entities.lua +++ b/automobiles_roadster/roadster_entities.lua @@ -400,11 +400,11 @@ minetest.register_entity("automobiles_roadster:roadster", { self.inv = inv end - mobkit.actfunc(self, staticdata, dtime_s) + automobiles_lib.actfunc(self, staticdata, dtime_s) end, on_step = function(self, dtime) - mobkit.stepfunc(self, dtime) + automobiles_lib.stepfunc(self, dtime) --[[sound play control]]-- self._last_time_collision_snd = self._last_time_collision_snd + dtime if self._last_time_collision_snd > 1 then self._last_time_collision_snd = 1 end