From f18cc7e441ada7877eb96c76db3a27032d0f715f Mon Sep 17 00:00:00 2001 From: Alexsandro Percy Date: Wed, 28 Jun 2023 19:48:53 -0300 Subject: [PATCH] added more gauges and improved die by destruction --- lib_planes/entities.lua | 9 +++++---- lib_planes/gauges.lua | 23 +++++++++++++++++++++-- lib_planes/utilities.lua | 8 +++++--- textures/airutils_climber_gauge.png | Bin 0 -> 2679 bytes textures/airutils_rpm_gauge.png | Bin 0 -> 5626 bytes 5 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 textures/airutils_climber_gauge.png create mode 100644 textures/airutils_rpm_gauge.png diff --git a/lib_planes/entities.lua b/lib_planes/entities.lua index 3952b63..a049f10 100644 --- a/lib_planes/entities.lua +++ b/lib_planes/entities.lua @@ -192,12 +192,17 @@ function airutils.logic(self) --if is_flying then minetest.chat_send_all('is flying') end local is_attached = airutils.checkAttach(self, player) + if self._indicated_speed == nil then self._indicated_speed = 0 end if not is_attached then -- for some engine error the player can be detached from the machine, so lets set him attached again airutils.checkattachBug(self) end + if self._custom_step_additional_function then + self._custom_step_additional_function(self) + end + if longit_speed == 0 and is_flying == false and is_attached == false and self._engine_running == false then return end @@ -450,10 +455,6 @@ function airutils.logic(self) self.object:set_bone_position("aileron.l", self._aileron_l_pos, {x=self._rudder_angle - 90,y=0,z=0}) end - if self._custom_step_additional_function then - self._custom_step_additional_function(self) - end - -- calculate energy consumption -- airutils.consumptionCalc(self, accel) diff --git a/lib_planes/gauges.lua b/lib_planes/gauges.lua index 778bcdc..f91198c 100644 --- a/lib_planes/gauges.lua +++ b/lib_planes/gauges.lua @@ -104,10 +104,29 @@ function airutils.plot_speed_gauge(self, scale, place_x, place_y) --local speed_angle = -(speed_percentage*350)/100 --minetest.chat_send_all(dump(fuel_angle)) - local fuel = "^[resize:"..scale.."x"..scale.."^[combine:"..bg_width_height.."x"..bg_width_height..":" + local speed = "^[resize:"..scale.."x"..scale.."^[combine:"..bg_width_height.."x"..bg_width_height..":" ..place_x..","..place_y.."=airutils_speed_gauge.png:" --fuel = fuel..get_pointer(speed_angle-180, gauge_center_x, gauge_center_y, 1) - return fuel + return speed +end + +function airutils.plot_power_gauge(self, scale, place_x, place_y) + local bg_width_height = 100 + local pointer_img = 8 + local gauge_center = (bg_width_height / 2) - (pointer_img/2) + local gauge_center_x = place_x + gauge_center + local gauge_center_y = place_y + gauge_center + + --local speed_percentage = (curr_level*100)/max_level + --local speed_angle = -(speed_percentage*350)/100 + --minetest.chat_send_all(dump(fuel_angle)) + + local rpm = "^[resize:"..scale.."x"..scale.."^[combine:"..bg_width_height.."x"..bg_width_height..":" + ..place_x..","..place_y.."=airutils_rpm_gauge.png:" + + --fuel = fuel..get_pointer(speed_angle-180, gauge_center_x, gauge_center_y, 1) + + return rpm end diff --git a/lib_planes/utilities.lua b/lib_planes/utilities.lua index ebb60ec..526077e 100644 --- a/lib_planes/utilities.lua +++ b/lib_planes/utilities.lua @@ -347,14 +347,16 @@ function airutils.testImpact(self, velocity, position) local player_name = self.driver_name --minetest.chat_send_all('damage: '.. damage .. ' - hp: ' .. self.hp_max) - if self.hp_max < 0 then --if acumulated damage is greater than 50, adieu - airutils.destroy(self, true) + if self.hp_max < 0 then --adieu + airutils.destroy(self, self._enable_explosion) end local player = minetest.get_player_by_name(player_name) if player then if player:get_hp() > 0 then - player:set_hp(player:get_hp()-(damage/2)) + local hurt_by_impact_divisor = 0.5 --less is more + if self.hp_max > 0 then hurt_by_impact = 2 end + player:set_hp(player:get_hp()-(damage/hurt_by_impact_divisor)) end end if self._passenger ~= nil then diff --git a/textures/airutils_climber_gauge.png b/textures/airutils_climber_gauge.png new file mode 100644 index 0000000000000000000000000000000000000000..58eefa5097fad0b8d72dfff0ef0e6b2e344f8e8f GIT binary patch literal 2679 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 UogU9A7XSbN07*qoM6N<$f~!7xb^rhX literal 0 HcmV?d00001