From 48c40cd005b3d0e8bc53407a021d0f56d82d40c8 Mon Sep 17 00:00:00 2001 From: zmv7 <72821250+zmv7@users.noreply.github.com> Date: Sat, 9 Apr 2022 12:29:55 +0000 Subject: [PATCH] Update --- init.lua | 69 +++++++++++++++++++++++++++++++---- sounds/rocket_launch.ogg | Bin 0 -> 7977 bytes textures/rocket.png | Bin 276 -> 186 bytes textures/rocket_launcher.png | Bin 252 -> 243 bytes textures/rocket_mesh.png | Bin 0 -> 309 bytes 5 files changed, 61 insertions(+), 8 deletions(-) create mode 100644 sounds/rocket_launch.ogg create mode 100644 textures/rocket_mesh.png diff --git a/init.lua b/init.lua index 426e704..11f7f2a 100644 --- a/init.lua +++ b/init.lua @@ -1,10 +1,31 @@ local rocket_radius = tonumber(minetest.settings:get("rocket_launcher_radius")) or 3 +minetest.register_chatcommand("rocket-radius", { + description = "Set rocket explosion radius", + params = "", + privs = {server=true}, + func = function(name, param) + if not tonumber(param) then return false, 'Invalid value' + else + rocket_radius = tonumber(param) + return true, 'Radius set to '..param + end +end}) +minetest.register_craftitem("rocket_launcher:rocket", { + wield_scale = {x=1,y=1,z=1.5}, + description = "Rocket", + inventory_image = "rocket.png", +}) -minetest.register_craftitem("rocket_launcher:launcher", { +minetest.register_tool("rocket_launcher:launcher", { + wield_scale = {x=1,y=1,z=2}, description = "Rocket Launcher", inventory_image = "rocket_launcher.png", on_use = function(itemstack, user, pointed_thing) - local pos = user:getpos() + local creative = minetest.check_player_privs(user:get_player_name(), {creative = true}) + local inv = user:get_inventory() +if inv:contains_item("main", "rocket_launcher:rocket") or creative then +if not creative then inv:remove_item("main", "rocket_launcher:rocket 1") end + local pos = user:get_pos() local dir = user:get_look_dir() local yaw = user:get_look_horizontal() if pos and dir then @@ -12,12 +33,13 @@ minetest.register_craftitem("rocket_launcher:launcher", { local obj = minetest.add_entity(pos, "rocket_launcher:rocket") if obj then obj:setvelocity({x=dir.x * 30, y=dir.y * 30, z=dir.z * 30}) - obj:setyaw(yaw) + obj:set_yaw(yaw) end end + minetest.sound_play('rocket_launch',{gain=0.5}) return itemstack - end, -}) + end +end}) local rocket = { armor_groups = {immortal = true}, @@ -26,7 +48,7 @@ local rocket = { visual = "mesh", mesh = 'rocket.obj', visual_size = {x=0.7, y=0.7,}, - textures = {'rocket.png'}, + textures = {'rocket_mesh.png'}, lastpos = {}, pointable = false, collisionbox = {-0.25,-0.25,-0.25,0.25,0.25,0.25}, @@ -35,14 +57,28 @@ local rocket = { } rocket.on_step = function(self, dtime) self.timer = self.timer + dtime - local pos = self.object:getpos() + local pos = self.object:get_pos() local node = minetest.get_node(pos) + local rnd = math.random() + minetest.after(0.1,function() + minetest.add_particle({ + pos = pos, + velocity = {x=rnd,y=rnd,z=rnd}, + --acceleration = {x=rnd,y=rnd,z=rnd}, + expirationtime = 0.7, + size = 10, + collisiondetection = false, + vertical = false, + texture = "tnt_smoke.png", + glow = 15,})end) if self.timer > 0.2 then local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y-1, z = pos.z}, 1) for k, obj in pairs(objs) do if not obj then goto nodes end - if obj:is_player() then + local prop = obj:get_properties() + if not prop then goto nodes end + if obj:is_player() or prop.collide_with_objects then tnt.boom(pos,{radius=rocket_raduis}) self.object:remove() end @@ -59,3 +95,20 @@ rocket.on_step = function(self, dtime) end minetest.register_entity("rocket_launcher:rocket", rocket) + +minetest.register_craft({ + output = "rocket_launcher:rocket", + recipe = { + {"","default:steel_ingot",""}, + {"default:steel_ingot","default:mese_crystal","default:steel_ingot"}, + {"default:steel_ingot","tnt:gunpowder","default:steel_ingot"} + } +}) +minetest.register_craft({ + output = "rocket_launcher:launcher", + recipe = { + {"default:steel_ingot","default:steel_ingot","default:steel_ingot"}, + {"","default:mese_crystal","default:obsidian_block"}, + {"default:steel_ingot","default:steel_ingot","default:steel_ingot"} + } +}) diff --git a/sounds/rocket_launch.ogg b/sounds/rocket_launch.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2747ab81cb56b052ec6c1a9d5fc5bf5357a984ce GIT binary patch literal 7977 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 literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}=R92;Ln7SY zPT$De?7-uiE7BFNv(xdYk YJWVs!oc~>Y66iAqPgg&ebxsLQ0F)qX_W%F@ diff --git a/textures/rocket_launcher.png b/textures/rocket_launcher.png index 45b1beb9be598c886f16e6227edc7e3b924280be..49cbd4488190153df83dae904c6568c289f595c6 100644 GIT binary patch delta 215 zcmV;|04V?b0rLTnB!9R`L_t(IPo0y|4TCTYM9&|U+K-OZ89D%)bRPy_1|}&h^ruo) zxm+M2&^W^QCkW*pw(k&qLNV6m0lZrXpFJf6P|W%c)A{N5gXG*y9Z)P+KwmycX!&%5 zQXIaBugGv)cL*$e(RqNYQr>#0*XjsZhC7OP-F9P&IcfKyYNv zhzSYsB|b}zHt(b~4(~8Py=872N9ik}STK2Ewb-Ctk;;2Bs)kla0oEZ{dq>GyLUM7JS2 z5HURfUVM;Xx$D6q*5iRBfQYX^($d6*Lf!-L9M6rj+xitq7FnAYQq0{0sTRjVTIsZ! z$6X(#t#oRDkjU1NDkQ)Qy-(upjY{K$|Fh(POl+K_p4gpO2UW3!=svXW#}O3Lj8}p3 aYyTfMR~0e{I5PkM002ovPDHLkV1fWPyJGnO diff --git a/textures/rocket_mesh.png b/textures/rocket_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..326ed366cae0e62bf7f8e70ea9dc0df9547d9ea9 GIT binary patch literal 309 zcmV-50m}Y~P)SftR+WK$Yw|If=$m~q<^ z`D){6czIgl>Go&mmlB7rGXh4y2p9n)U<8bS5ty66r}I=ARZU6dHETu0;_pY^!uk;A zV-spc)V1kKc9+z-EaRkje@{)+$M7yqWC=)d{#D7u&=c{>r8s{dn^-lW5FQcG#DAFp z0T|H4V-ujj+b|;VycRP=%`IQTGl8iFjDSi2!O*rr!;g-NGk^`85<)ct+@47jC2^QW z1~9afAdg{@z`s4BG$G^6cL0k+XV#lACZV0BSloI;5cmQ!ULvgSgM&x_0000