mirror of
				https://github.com/APercy/airutils
				synced 2025-10-30 19:53:06 +01:00 
			
		
		
		
	improved water collision, flaps fixed
This commit is contained in:
		
							parent
							
								
									21c949db88
								
							
						
					
					
						commit
						95087601fa
					
				| @ -86,6 +86,8 @@ function airutils.on_activate(self, staticdata, dtime_s) | ||||
|     self._passengers = {} | ||||
|     if not self._vehicle_custom_data then self._vehicle_custom_data = {} end --initialize when it does not exists | ||||
| 
 | ||||
|     if self._flap then airutils.flap_on(self) end | ||||
| 
 | ||||
|     airutils.setText(self, self.infotext) | ||||
| end | ||||
| 
 | ||||
| @ -244,6 +246,13 @@ function airutils.logic(self) | ||||
|         self._custom_step_additional_function(self) | ||||
|     end | ||||
| 
 | ||||
|     if self._wing_configuration == self._wing_angle_of_attack and self._flap then | ||||
|         airutils.flap_on(self) | ||||
|     end | ||||
|     if self._wing_configuration ~= self._wing_angle_of_attack and self._flap == false then | ||||
|         airutils.flap_off(self) | ||||
|     end | ||||
| 
 | ||||
|     if longit_speed == 0 and is_flying == false and is_attached == false and self._engine_running == false then | ||||
|         return | ||||
|     end | ||||
| @ -497,13 +506,6 @@ function airutils.logic(self) | ||||
|     self.object:set_rotation({x=newpitch,y=newyaw,z=newroll}) | ||||
|     --end | ||||
| 
 | ||||
|     if self._wing_configuration == self._wing_angle_of_attack and self._flap then | ||||
|         airutils.flap_on(self) | ||||
|     end | ||||
|     if self._wing_configuration ~= self._wing_angle_of_attack and self._flap == false then | ||||
|         airutils.flap_off(self) | ||||
|     end | ||||
| 
 | ||||
|     if longit_speed > self._max_speed and self._flap == true then | ||||
|         if is_attached and self.driver_name then | ||||
|             minetest.chat_send_player(self.driver_name, core.colorize('#ff0000', " >>> Flaps retracted due for overspeed")) | ||||
|  | ||||
| @ -307,6 +307,26 @@ function airutils.testImpact(self, velocity, position) | ||||
|         end | ||||
|     end | ||||
| 
 | ||||
|     if self._last_water_touch == nil then self._last_water_touch = 3 end | ||||
|     if self._last_water_touch <= 3 then self._last_water_touch = self._last_water_touch + self.dtime end | ||||
|     if impact > 0.2  and self._longit_speed > 0.6 and self._last_water_touch >=3 then | ||||
|         self._last_water_touch = 0 | ||||
|         local noded = airutils.nodeatpos(airutils.pos_shift(p,{y=touch_point})) | ||||
| 	    if (noded and noded.drawtype ~= 'airlike') then | ||||
|             if noded.drawtype == 'liquid' then | ||||
|                 minetest.sound_play("airutils_touch_water", { | ||||
|                     --to_player = self.driver_name, | ||||
|                     object = self.object, | ||||
|                     max_hear_distance = 15, | ||||
|                     gain = 1.0, | ||||
|                     fade = 0.0, | ||||
|                     pitch = 1.0, | ||||
|                 }, true) | ||||
|                 return | ||||
|             end | ||||
| 	    end | ||||
|     end | ||||
| 
 | ||||
|     if vertical_impact > 0.5  and self._longit_speed > self._min_speed/2 then | ||||
|         local noded = airutils.nodeatpos(airutils.pos_shift(p,{y=touch_point})) | ||||
| 	    if (noded and noded.drawtype ~= 'airlike') then | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								sounds/airutils_touch_water.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								sounds/airutils_touch_water.ogg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user