From 3f84d1d11c4af62f9061bd4ab908a3466f4a6222 Mon Sep 17 00:00:00 2001 From: Alexsandro Percy Date: Sun, 25 Jun 2023 17:52:16 -0300 Subject: [PATCH] testing with texture modifiers --- lib_planes/entities.lua | 10 ++- lib_planes/fuel_management.lua | 4 +- lib_planes/gauges.lua | 113 ++++++++++++++++++++++++++ lib_planes/init.lua | 1 + lib_planes/utilities.lua | 1 - textures/airutils_altimeter_gauge.png | Bin 0 -> 22883 bytes textures/airutils_fuel_gauge.png | Bin 0 -> 10274 bytes textures/airutils_gauge_bg.png | Bin 0 -> 1583 bytes textures/airutils_ind_box_2.png | Bin 0 -> 5310 bytes textures/airutils_speed_gauge.png | Bin 0 -> 5623 bytes textures/gauge_bg.xcf | Bin 0 -> 5841 bytes 11 files changed, 123 insertions(+), 6 deletions(-) create mode 100644 lib_planes/gauges.lua create mode 100644 textures/airutils_altimeter_gauge.png create mode 100644 textures/airutils_fuel_gauge.png create mode 100644 textures/airutils_gauge_bg.png create mode 100644 textures/airutils_ind_box_2.png create mode 100644 textures/airutils_speed_gauge.png create mode 100644 textures/gauge_bg.xcf diff --git a/lib_planes/entities.lua b/lib_planes/entities.lua index a93a1d5..39d9475 100644 --- a/lib_planes/entities.lua +++ b/lib_planes/entities.lua @@ -418,8 +418,7 @@ function airutils.logic(self) local indicated_speed = longit_speed * 0.9 if indicated_speed < 0 then indicated_speed = 0 end - local speed_angle = airutils.get_gauge_angle(indicated_speed, -45) - --self.speed_gauge:set_attach(self.object,'',ALBATROS_D5_GAUGE_SPEED_POSITION,{x=0,y=0,z=speed_angle}) + self._indicated_speed = indicated_speed --adjust power indicator local power_indicator_angle = airutils.get_gauge_angle(self._power_lever/10) @@ -454,6 +453,11 @@ function airutils.logic(self) self.object:set_bone_position("aileron.r", self._aileron_r_pos, {x=-self._rudder_angle - 90,y=0,z=0}) 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 + --set stick position if self.stick then self.stick:set_attach(self.object,'',self._stick_pos,{x=self._elevator_angle/2,y=0,z=self._rudder_angle}) @@ -563,7 +567,7 @@ function airutils.on_punch(self, puncher, ttime, toolcaps, dir, damage) if itmstck then if airutils.set_param_paint(self, puncher, itmstck, 1) == false then if not self.driver and toolcaps and toolcaps.damage_groups - and toolcaps.damage_groups.fleshy and item_name ~= airutils.fuel then + and toolcaps.groupcaps and toolcaps.groupcaps.choppy and item_name ~= airutils.fuel then --airutils.hurt(self,toolcaps.damage_groups.fleshy - 1) --airutils.make_sound(self,'hit') damage_vehicle(self, toolcaps, ttime, damage) diff --git a/lib_planes/fuel_management.lua b/lib_planes/fuel_management.lua index 78d5f4c..41241d5 100755 --- a/lib_planes/fuel_management.lua +++ b/lib_planes/fuel_management.lua @@ -19,10 +19,10 @@ function airutils.loadFuel(self, player_name) if fuel then local stack = ItemStack(item_name .. " 1") - if self._energy < 10 then + if self._energy < self._max_fuel then inv:remove_item("main", stack) self._energy = self._energy + fuel - if self._energy > 10 then self._energy = 10 end + if self._energy > self._max_fuel then self._energy = self._max_fuel end local energy_indicator_angle = airutils.get_gauge_angle(self._energy) --self.fuel_gauge:set_attach(self.object,'',self._gauge_fuel_position,{x=0,y=0,z=energy_indicator_angle}) diff --git a/lib_planes/gauges.lua b/lib_planes/gauges.lua new file mode 100644 index 0000000..3e5ac2c --- /dev/null +++ b/lib_planes/gauges.lua @@ -0,0 +1,113 @@ +local function get_pointer(pointer_angle, gauge_center_x, gauge_center_y, full_pointer) + full_pointer = full_pointer or 1 + local retval = "" + local ind_pixel = "airutils_ind_box_2.png" + + pointer_img_size = 8 + local pointer_rad = math.rad(pointer_angle) + local dim = 2*(pointer_img_size/2) + local pos_x = math.sin(pointer_rad) * dim + local pos_y = math.cos(pointer_rad) * dim + retval = retval..(gauge_center_x+pos_x)..","..(gauge_center_y+pos_y).."="..ind_pixel..":" + + dim = 4*(pointer_img_size/2) + pos_x = math.sin(pointer_rad) * dim + pos_y = math.cos(pointer_rad) * dim + retval = retval..(gauge_center_x+pos_x)..","..(gauge_center_y+pos_y).."="..ind_pixel..":" + + dim = 6*(pointer_img_size/2) + pos_x = math.sin(pointer_rad) * dim + pos_y = math.cos(pointer_rad) * dim + retval = retval..(gauge_center_x+pos_x)..","..(gauge_center_y+pos_y).."="..ind_pixel..":" + + if full_pointer == 1 then + dim = 8*(pointer_img_size/2) + pos_x = math.sin(pointer_rad) * dim + pos_y = math.cos(pointer_rad) * dim + retval = retval..(gauge_center_x+pos_x)..","..(gauge_center_y+pos_y).."="..ind_pixel..":" + + dim = 10*(pointer_img_size/2) + pos_x = math.sin(pointer_rad) * dim + pos_y = math.cos(pointer_rad) * dim + retval = retval..(gauge_center_x+pos_x)..","..(gauge_center_y+pos_y).."="..ind_pixel..":" + end + return retval +end + +function airutils.plot_altimeter_gauge(self, scale, height, 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 + + + --altimeter + local altitude = (height / 0.32) / 100 + local hour, minutes = math.modf( altitude ) + hour = math.fmod (hour, 10) + minutes = minutes * 100 + minutes = (minutes * 100) / 100 + local minute_angle = (minutes*-360)/100 + local hour_angle = (hour*-360)/10 + ((minute_angle*36)/360) + + --[[ + #### `[combine:x:,=:,=:...` + + * ``: width + * ``: height + * ``: x position + * ``: y position + * ``: texture to combine + + Creates a texture of size `` times `` and blits the listed files to their + specified coordinates. + + ]]-- + + local altimeter = "^[resize:"..scale.."x"..scale.."^[combine:"..bg_width_height.."x"..bg_width_height..":" + ..place_x..","..place_y.."=airutils_altimeter_gauge.png:" + + altimeter = altimeter..get_pointer(minute_angle+180, gauge_center_x, gauge_center_y, 1) + altimeter = altimeter..get_pointer(hour_angle+180, gauge_center_x, gauge_center_y, 0) + + return altimeter +end + +function airutils.plot_fuel_gauge(self, scale, curr_level, max_level, 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 fuel_percentage = (curr_level*100)/max_level + local fuel_angle = -(fuel_percentage*180)/100 + --minetest.chat_send_all(dump(fuel_angle)) + + local fuel = "^[resize:"..scale.."x"..scale.."^[combine:"..bg_width_height.."x"..bg_width_height..":" + ..place_x..","..place_y.."=airutils_fuel_gauge.png:" + + fuel = fuel..get_pointer(fuel_angle-90, gauge_center_x, gauge_center_y, 1) + + return fuel +end + +function airutils.plot_speed_gauge(self, scale, curr_level, max_level, 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 fuel = "^[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 +end diff --git a/lib_planes/init.lua b/lib_planes/init.lua index e7847c2..2f7c870 100755 --- a/lib_planes/init.lua +++ b/lib_planes/init.lua @@ -7,6 +7,7 @@ dofile(minetest.get_modpath("airutils") .. DIR_DELIM .. "lib_planes" .. DIR_DELI dofile(minetest.get_modpath("airutils") .. DIR_DELIM .. "lib_planes" .. DIR_DELIM .. "utilities.lua") dofile(minetest.get_modpath("airutils") .. DIR_DELIM .. "lib_planes" .. DIR_DELIM .. "entities.lua") dofile(minetest.get_modpath("airutils") .. DIR_DELIM .. "lib_planes" .. DIR_DELIM .. "forms.lua") +dofile(minetest.get_modpath("airutils") .. DIR_DELIM .. "lib_planes" .. DIR_DELIM .. "gauges.lua") -- -- helpers and co. diff --git a/lib_planes/utilities.lua b/lib_planes/utilities.lua index cfed3c6..a31ff92 100644 --- a/lib_planes/utilities.lua +++ b/lib_planes/utilities.lua @@ -146,7 +146,6 @@ function airutils.checkAttach(self, player) return false end --- destroy the boat function airutils.destroy(self, effects) effects = effects or false if self.sound_handle then diff --git a/textures/airutils_altimeter_gauge.png b/textures/airutils_altimeter_gauge.png new file mode 100644 index 0000000000000000000000000000000000000000..8a34a718508b7722ed37961c712e7c67d2864578 GIT binary patch literal 22883 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 Ef>wqCj{pDw literal 0 HcmV?d00001 diff --git a/textures/airutils_fuel_gauge.png b/textures/airutils_fuel_gauge.png new file mode 100644 index 0000000000000000000000000000000000000000..f4bce5c23ab4ca78e5b7326565fd389ce0766611 GIT binary patch literal 10274 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 literal 0 HcmV?d00001 diff --git a/textures/airutils_ind_box_2.png b/textures/airutils_ind_box_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7f08cf4354c5ea49f8d69cde0d7529652c0a14 GIT binary patch literal 5310 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 literal 0 HcmV?d00001 diff --git a/textures/airutils_speed_gauge.png b/textures/airutils_speed_gauge.png new file mode 100644 index 0000000000000000000000000000000000000000..8e108a498354e1f122af51d73b41ad582d3e2fd4 GIT binary patch literal 5623 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 literal 0 HcmV?d00001