From f7d98e2cad40b8e88e658f3edc59fb988faea692 Mon Sep 17 00:00:00 2001 From: Andrey Stepanov Date: Sat, 26 Apr 2025 22:37:16 +0500 Subject: [PATCH 1/2] add ground speed indicator --- engine_management.lua | 3 +- hud.lua | 102 +++++++++++++++++++++++++++++- textures/ap_airship_ind_gs_bg.png | Bin 0 -> 5442 bytes textures/ap_airship_ind_gs_fg.png | Bin 0 -> 9136 bytes textures/ap_airship_ind_gs_lh.png | Bin 0 -> 1368 bytes textures/ap_airship_ind_gs_lv.png | Bin 0 -> 562 bytes 6 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 textures/ap_airship_ind_gs_bg.png create mode 100644 textures/ap_airship_ind_gs_fg.png create mode 100644 textures/ap_airship_ind_gs_lh.png create mode 100644 textures/ap_airship_ind_gs_lv.png diff --git a/engine_management.lua b/engine_management.lua index 0c719ce..c22a9f5 100644 --- a/engine_management.lua +++ b/engine_management.lua @@ -39,12 +39,11 @@ function ap_airship.engine_step(self, accel) engines_step(self, accel) if self.driver_name then - local player = minetest.get_player_by_name(self.driver_name) local pressure = 0 local coal = self._energy --minetest.chat_send_all(self._power_lever) - ap_airship.update_hud(player, coal, 180, -pressure, self._power_lever) + ap_airship.update_hud(self, coal, 180, -pressure, self._power_lever) end end diff --git a/hud.lua b/hud.lua index 22eda55..40c926c 100755 --- a/hud.lua +++ b/hud.lua @@ -35,7 +35,49 @@ function ap_airship.animate_gauge(player, ids, prefix, x, y, angle) player:hud_change(ids[prefix .. "7"], "offset", {x = pos_x + x, y = pos_y + y}) end -function ap_airship.update_hud(player, coal, water, pressure, power_lever) +local hud_panel_x = 10 -- HUD left offset +local hud_panel_y = -10 -- HUD bottom offset + +-- Ground speed indicator +-- left bottom corner +local gs_ind_x = hud_panel_x +local gs_ind_y = hud_panel_y +-- zero position +local gs_ind_zero_x = gs_ind_x + 83 +local gs_ind_zero_y = gs_ind_y - 42 +-- indicator range +local gs_ind_range_xmin = gs_ind_zero_x - 56 +local gs_ind_range_xmax = gs_ind_zero_x + 58 +local gs_ind_xstep = 57 / 4 +local gs_ind_range_ymax = gs_ind_y - 154 +local gs_ind_range_ymin = gs_ind_y - 13 +local gs_ind_ystep = math.abs(gs_ind_range_ymax - gs_ind_zero_y) / 8 + +local function bound(min, value, max) + return math.max(math.min(value, max), min) +end + +local function set_gs_indicator(player, ids, forward, right) + player:hud_change( + ids["gs_hor"], + "offset", + { + x = gs_ind_x, + y = gs_ind_zero_y - bound(-2, forward, 8) * gs_ind_ystep + } + ) + player:hud_change( + ids["gs_vert"], + "offset", + { + x = gs_ind_zero_x + bound(-4, right, 4) * gs_ind_xstep, + y = gs_ind_y + } + ) +end + +function ap_airship.update_hud(self, coal, water, pressure, power_lever) + local player = minetest.get_player_by_name(self.driver_name) if player == nil then return end local player_name = player:get_player_name() @@ -57,6 +99,18 @@ function ap_airship.update_hud(player, coal, water, pressure, power_lever) if ids then player:hud_change(ids["throttle"], "offset", {x = throttle_x, y = throttle_y - power_lever}) + local yaw = self.object:get_rotation().y + local velocity = self.object:get_velocity() + local sin_yaw = math.sin(yaw) + local cos_yaw = math.cos(yaw) + + set_gs_indicator( + player, + ids, + velocity.z * cos_yaw - velocity.x * sin_yaw, + velocity.z * sin_yaw + velocity.x * cos_yaw + ) + --[[local coal_value = coal if coal_value > 99 then coal_value = 99 end if coal_value < 0 then coal_value = 0 end @@ -96,6 +150,52 @@ function ap_airship.update_hud(player, coal, water, pressure, power_lever) alignment = { x = 1, y = 0 }, }) + ids["gs_bg"] = player:hud_add({ + hud_elem_type = "image", + position = { x = 0, y = 1 }, + offset = { x = gs_ind_x, y = gs_ind_y }, + text = "ap_airship_ind_gs_bg.png", + scale = { x = 1, y = 1 }, + alignment = { x = 1, y = -1 }, + }) + + ids["gs_hor"] = player:hud_add({ + hud_elem_type = "image", + position = { x = 0, y = 1 }, + offset = { x = gs_ind_x, y = gs_ind_range_ymin }, + text = "ap_airship_ind_gs_lh.png", + scale = { x = 170, y = 1 }, + alignment = { x = 1, y = -1 }, + }) + + ids["gs_vert"] = player:hud_add({ + hud_elem_type = "image", + position = { x = 0, y = 1 }, + offset = { x = gs_ind_range_xmin, y = gs_ind_y }, + text = "ap_airship_ind_gs_lv.png", + scale = { x = 1, y = 170 }, + alignment = { x = 1, y = -1 }, + }) + + ids["gs_fg"] = player:hud_add({ + hud_elem_type = "image", + position = { x = 0, y = 1 }, + offset = { x = gs_ind_x, y = gs_ind_y }, + text = "ap_airship_ind_gs_fg.png", + scale = { x = 1, y = 1 }, + alignment = { x = 1, y = -1 }, + }) + + ids["gs_caption"] = player:hud_add({ + hud_elem_type = "text", + position = { x = 0, y = 1 }, + offset = { x = gs_ind_zero_x, y = gs_ind_y - 170 }, + text = "Ground Speed", + scale = { x = 1, y = 1 }, + alignment = { x = 0, y = -1 }, + number = 0xFFFFFF, + }) + --[[ids["coal_1"] = player:hud_add({ hud_elem_type = "image", position = {x = 0, y = 1}, diff --git a/textures/ap_airship_ind_gs_bg.png b/textures/ap_airship_ind_gs_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..fe506823d9a51f8dbb4e02f70a913fb52c7f1dd0 GIT binary patch literal 5442 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 literal 0 HcmV?d00001 diff --git a/textures/ap_airship_ind_gs_fg.png b/textures/ap_airship_ind_gs_fg.png new file mode 100644 index 0000000000000000000000000000000000000000..f2bac378010d79df31abf12ed8a842ad95d6adaf GIT binary patch literal 9136 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

5B_O;~3@{EV5v{f$Vq=?HrEcOXTvOFThi z6ZH|OPI-_X4!D(2IMy3cJ0aB>8JzS~Jl#N@OXwY%MX*SH#?Q61&ZdAuuii3tF>S5H z*8+NnlPa*&(bsAYg!BI%T4K#%4pj3sod5a*XvCribiP*C)(g-QJJr_~xew&?{{b{$ z(F1xPAoncu5;S9XvGkr*-e0}c_27MGqEJJ!A3vz=+gRZ1sJhxB;%OLIbwAC05iqO1-~G1r*z)4oYo_ z1-{gVSg55AKs}a-g<9$e)OkR}W-3E!5__N;hEx=rEP%p*l|{9M1t2h1$MHhyjb%U@ zFG`ID3`<3^hENStYBgRUV?bpA2pK>v03idY1%L){rJ~qOodv0eP`L)61(_ObWlD8o z(O9IeB2-&YWeg}S(4z|3S{Ms*wid=hnyq}Ovmne^kh8Tg7Q%B-!~irltU5^9nvDg# zwMamtvHrb4oN6Lf$be|9r*6{J#l6MJ4OSX1q{={pv3gXoD=S}J`#s^{#VYIC zI&1Js`vrPCCaVl}%T%2`Bc=TiI=ShI^KKQdFz?5`dM5=_LWivpZ)=08Y-Rn*`uwqPj@{R(`9S u1mI=OI!OR#F0PXV;AZ&RNdR` zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=E5j@%#&hTl0wkAQ8A&2dNosW<5H`$Nd=%xc?i z)xK0}m;iAc+xRm~=-6Tw^{n-X66jRD9I0wOOvw>>_x`I4J^{J|AIv#ebXFSzdtxyv9td7_WX zAoneocl7dOT=MY#1?k7Q7t^PREIl0aOGJ2)UKZ_d_ZZE`=-29M%2;yVi@H}rVWAxD zm_@KY%V>sMF}KwUnq#}1sIeB$c%YqBh=F)eqDGZQpuQ$2orp1UXT!*RvMiZ{Md1^u z2?c;ggH4JwaiBj@Dgr5w5q2!J{FdeKB!}llP-TKKn$_~F7Cxi&vo^-uOGM$`Grj=x zs#BV2l-WZK2x#o2>Pqn4UJG)A6)@A4X2$|+JT4Q5(pzoG0xi(fcrzwz*Z0#ws^JmM$w_a-5PNp_0YGrbq>> zloa)2$x%a9MU$##HFYgov*Z-8!*aGfkK1Zu$<(r$xfQD}o?Jbivb(B(1 zT|>{^y7$uSK&=fKY3RtqhL1ApgBtB^`@a1KHQLm8k(zq;pa!YgHHK9$Ffy5e7$^Km zMVkar&^(z%r<8b-o6KUF2c$BB)XAn%tduzgNu5{+J=ndG`z>xEr=N1;&youh-5-)$ z+(OqUZXZx<^KbiH#I9X9a~cJ^4?2|{Km41rhkNp;<9|c{njz^p{Qp8QYy5BMUp6E- zFiQ9iZo9wqc2FA50004mX+uL$Nkc;*aB^>EX>4Tx0C=2zkv&MmKpe$i(~6=M5j&_j zWT-A$5EXIMDionYs1;guFuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|E;uQ=NQwVT z3N2ziIPS;0dyl(!fKV+m%?gYInr@qkSX4}M1TcVJbYWCxmN6$uakLy?_we!c zF2b`~pZjxks~L*{K9P8q8KzCVK|H-_8=UuvLo6?=#OK6gCS8#Dk?V@bZ=7>33p_Jq zCKL0-A!0Gt#7Yyhyr~gS5rx%5W^ytAVGwJ zG72cdMub+K6blL3kGAj+x_*gV3b_hko z3)Cu(^L^|%wG+Vq3|#3Af2j)0e3D*iXyGHEXB)V!=P9u^uo zqptt}02y>eSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{000b0L_t&t*JEg4 aU;qFCgaCmk-Fnvm0000EX>4Tx04R}tkv&MmKpe$i(~6=M5j&_jWT-A$5EXIMDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|E;uQ=NQwVT3N2ziIPS;0dyl(!fKV+m%?gYInr@qk zSX4}M1TcVJbYWCxmN6$uakLy?_we!cF2b`~pZjxks~L*{K9P8q8KzCVK|H-_ z8=UuvLo6?=#OK6gCS8#Dk?V@bZ=7>33p_JqCKL0-A!0Gt#7Yyhyr~gS5rx%5W^ytAVGwJG72cdMub+K6blL3kGAj+x_*gV3b_hk zo3)Cu(^L^|%wG+Vq3|#3Af2j)0e3D*i zXyGHEXB)V!=P8Y)pb8Y}<+02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{000U}L_t&t*JDTk003eDVH*} Date: Sat, 26 Apr 2025 22:45:22 +0500 Subject: [PATCH 2/2] cleanup --- hud.lua | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/hud.lua b/hud.lua index 40c926c..bc26d28 100755 --- a/hud.lua +++ b/hud.lua @@ -122,16 +122,6 @@ function ap_airship.update_hud(self, coal, water, pressure, power_lever) else ids = {} - ids["title"] = player:hud_add({ - hud_elem_type = "text", - position = {x = 0, y = 1}, - offset = {x = screen_pos_x + 240, y = screen_pos_y - 100}, - text = "Airship engine state", - alignment = 0, - scale = { x = 100, y = 30}, - number = 0xFFFFFF, - }) - ids["bg"] = player:hud_add({ hud_elem_type = "image", position = {x = 0, y = 1},