From 663273511616a173c5a41a5263c832e68b1d852e Mon Sep 17 00:00:00 2001 From: D00Med Date: Fri, 21 Oct 2016 05:54:41 +1000 Subject: [PATCH] Missile rotation The missiles rotate depending of if they are fired up or down. Currently does not work when moving straight ahead, ie: it will point either up or down --- api.lua | 14 ++++++++++++++ init.lua | 14 ++++++++++++-- models/missile.b3d | Bin 4114 -> 4571 bytes textures/vehicles_missile.png | Bin 21381 -> 4687 bytes 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/api.lua b/api.lua index a5f2a82..27d4e47 100644 --- a/api.lua +++ b/api.lua @@ -362,6 +362,11 @@ function object_fly(entity, dtime, speed, accel, decell, shoots, arrow, moving_a entity.object:setvelocity(vec_stop) entity.object:setacceleration({x=0, y=-4.5, z=0}) end + if ctrl.jump and ctrl.up then + entity.object:setvelocity({x=dir.x*speed, y=0, z=dir.z*speed}) + elseif ctrl.jump and not ctrl.up then + entity.object:setvelocity({x=velo.x*decell, y=0, z=velo.z*decell}) + end if ctrl.sneak and shoots and entity.loaded then entity.loaded = false local pos = entity.object:getpos() @@ -679,10 +684,19 @@ minetest.register_tool(vehicle.."_spawner", { }) end + +--out of date, left behind in case it is needed again function vehicle_drop(ent, player, name) if ent.owner == player then local pos = ent.object:getpos() minetest.env:add_item(pos, name.."_spawner") ent.object:remove() end +end + +function destroy(ent, player, name) + if ent.object:get_hp() == 0 and ent.owner == player then + local pos = ent.object:getpos() + minetest.env:add_item(pos, "vehicles:tank_spawner") + end end \ No newline at end of file diff --git a/init.lua b/init.lua index 278aa34..8c545c3 100644 --- a/init.lua +++ b/init.lua @@ -94,6 +94,14 @@ minetest.register_entity("vehicles:missile_2", { minetest.after(10, function() self.object:remove() end) + local velo = self.object:getvelocity() + if velo.y <= 1 and velo.y >= -1 then + self.object:set_animation({x=1, y=1}, 5, 0) + elseif velo.y <= -1 then + self.object:set_animation({x=4, y=4}, 5, 0) + elseif velo.y >= 1 then + self.object:set_animation({x=2, y=2}, 5, 0) + end local pos = self.object:getpos() local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) for k, obj in pairs(objs) do @@ -212,6 +220,7 @@ minetest.register_entity("vehicles:tank", { textures = {"vehicles_tank.png"}, velocity = 15, acceleration = -5, + owner = "", stepheight = 1.5, hp_max = 200, physical = true, @@ -224,7 +233,7 @@ minetest.register_entity("vehicles:tank", { end end, on_punch = function(self, puncher) - vehicle_drop(self, puncher, "vehicles:tank") + destroy(self, puncher, "vehicles:tank") end, on_step = function(self, dtime) if self.driver then @@ -242,7 +251,8 @@ minetest.register_entity("vehicles:turret", { velocity = 15, acceleration = -5, stepheight = 1.5, - hp_max = 200, + hp_max = 50, + groups = {fleshy=3, level=5}, physical = true, collisionbox = {-0.6, 0, -0.6, 0.6, 0.9, 0.6}, on_rightclick = function(self, clicker) diff --git a/models/missile.b3d b/models/missile.b3d index c1732de94b9127de72032afe53e23fb4662d9f58..e1b7d3853d1d2a06f00528cd9cdc12600c480846 100644 GIT binary patch literal 4571 zcma)_77B@=hAmY{ z)Wm{8VvIE*()ft{!NwS6*-KOeB*YL+G%<=AV!|VU(Lc%`2G8&ATzb>)tZwr4J7>Q; zXJ*cPv)v5_=T(0<%CZJomemwm6`n4{6`|Gj0;+RDTv;tB9Q_ zsJawi=8T;%LOp+SL;T={>#kn7_K?#c<4=jc_WL^J*Yh@hWsmR9amq#CDfQF0ZnypQ zQ|ZUj-?6Q-&V`JZ^~HSS9oC0F?8Ub$S-;ee`PT31LuIU|C)*!-s`{UNSgkh1_bT=$ z`;Ynd=dl0w3lm+P{>c7gzW&_PkH0WSnbt>rbW?xtT)JVmb>`cq`skdGX?@i9^knCQ z?$u9rzPF!R<&HP`1ATSPX4|yCtHmK#H?1GtTVJyNqR(pH>iQ?y`OnPSa!*g@FZB1s zBPM@RAN|UnpDGSaJES<@hOQCLTeZtvf772mcS_X)(SM(jqqd8GJ4&WHe=Kgd@gL{! z(;c54_w;?OXT183ufFRK>Z6ks|&>F)lt?(PpAf1B1veRNZO`jaVZOm#kderSC_ zf4Lv%y8eLmq5J9&7|;6fr>TGF_}{d@z~#jKFwKunebfHwAL}!nKl7uT{Dbc6kMjA? z^*8m=U!5?>sqe9zoa1??bIOX;(hrK9!DnvRe7@rEy;{FAds5Zym7~>+i=&;6^BE4G zpXm8>EXDZWM1MM%>-cs2ovHOPQh#qj!132de?3uOW%SLjm>+*rKRYpAjp`fk>i8GE zKG&g6eRR|LFhBlIb^hq4@$`q!XH);Vzvw;1J*U=p9<97OyW{j5UqtL7A9vU< z4}DIdS9KNGn||o7^z`;4`{JHXeRR`!dJDRx{;`gur+oF})L+w;_1rO+)I8QKMFitQ*=fnkqiGqB=B%Kpa z5lj{o3W@~e#M1;*1pxuSQpkxP5zsJ5fS)O)f_XY8eppa0 zC=)!QbK-@91%mm4MLH+81(kvd0l$aHiGza0f-1oh0Xgxbf{>tEuvF*7j|pl8HG(>w z6E_Iz1bxzzUctY^FAgpuZ6@q3#lVGLJi5EB2)@KUyN^}3V1^E&7vzQ~;x~;{k zYTNYrxNka6Zduq>G4)oj^6+Buo4jQQZiVj~Lkkz+&{6T%}kV?uHa31db$S2JcL$CxmtgfSnC zDPar>V@?b5#Fy@9aHthcB7p~GdCg=U2X3S2G zsbS0xV|*CX!Qlt61;c=-IgkqTH$e&lbsZAotdn_L|Nu>eJ%h6L-%a Gj{Xbz>6*g; literal 4114 zcma)m20Z*$4}bjwN3R;@2Gv;`r`Zwp|Pws0Zo2^KL_zySy2)> zmttAPJL~HCJI{w-ZWFu2=|wwcyxr#tZh-Pg)v|+F!~kn6tEEx zTDZC;+sVvrkJ!Dwhm4c$rpchmN&MBMPiTBK4+M0}-^Y{`uyA61turzw_~&zwdnM`7za>kNOzD0cXeW@O*i8m~lDZoX_chZVq3;0+A{VSkzzD@acBfipo<8!`M{$WplgzgXLm-(YU>bgGavOemne~dpOKgMVO z)Oy|jq4;??9~IyCd`@6KJi6YW=O_2){G{UiO!+as(iwlm`tTdi$oU*&|3=iO`)}I+ zqZ6$%zN!8*&^e!DIDg;y)boS*zWuXNALF}!Xxf~Y+B=-`zF7h|9WQ?#J$3yB``-&! z?Mr9N#O1SPPUOj>PC@VMHi&-NxZPRU(_ptBjuYQQqh8|bQLQh4K6rjE<2z)Z8=rf~ z_`Qff@%fPWYjBUu;XrJE!TsZAc8C7M{t51S;aM+r-j69*|AV`~D30xKGrz=ee3<)R zaPt?XvHYc;1ib_K2h|^xUr_v@{srkl@q_9QI-l!OLL7XGJmgVy^!dX)OH z#K|`G53ts=-uABlv7lC*balO+`p|mnYJaVB{~_J8zcIg{_N z_rWw@`tMJ5WocCtUxe`C555=ilK|AOts7w{f*U{*pig@oNCr27o0U&{BEV~wH6GyA zOZv2L1-Aga1X`1nPdg3V1}1|k%BOt?NC&rr4CT|#0#iXIn5KN%*0Qh!#ADFFt+Ie6Oco5_(pY}XZ0Oo@E%BTGhSO^w?kn(BU zAPfothEMvmi@;*A2owYQw3mPgC;>~APrD41f@NU2@@cOGycx0rY8a1AJrO3bres_WyHA=K%l! diff --git a/textures/vehicles_missile.png b/textures/vehicles_missile.png index aa914df59c846b3d7bca5775dfeddda86c362220..4b19858e6a0b8a73dacfb8065efc2f506e2716bb 100644 GIT binary patch literal 4687 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 bby(Tmt9RpHmIbpB{8_VN-SWJp?g#z@4rI{u