Merge pull request #8 from FaceDeer/master
updating various deprecated functions
This commit is contained in:
commit
4f6cc3f91e
10
api/abms.lua
10
api/abms.lua
@ -10,7 +10,7 @@ minetest.register_abm({
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
--local under = {x=pos.x, y=pos.y-1, z=pos.z}
|
--local under = {x=pos.x, y=pos.y-1, z=pos.z}
|
||||||
--local n = minetest.env:get_node(under).name
|
--local n = minetest.get_node(under).name
|
||||||
--if n~= "air" then
|
--if n~= "air" then
|
||||||
minetest.set_node({x=pos.x+1, y=pos.y, z=pos.z}, {name = "fire:basic_flame"})
|
minetest.set_node({x=pos.x+1, y=pos.y, z=pos.z}, {name = "fire:basic_flame"})
|
||||||
minetest.set_node({x=pos.x-1, y=pos.y, z=pos.z}, {name = "fire:basic_flame"})
|
minetest.set_node({x=pos.x-1, y=pos.y, z=pos.z}, {name = "fire:basic_flame"})
|
||||||
@ -27,7 +27,7 @@ minetest.register_abm({
|
|||||||
interval = 20.0,
|
interval = 20.0,
|
||||||
chance = 20,
|
chance = 20,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
local n = minetest.env:get_node(pos).name
|
local n = minetest.get_node(pos).name
|
||||||
if n== "air" then
|
if n== "air" then
|
||||||
minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, {name = "nssm:web"})
|
minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, {name = "nssm:web"})
|
||||||
end
|
end
|
||||||
@ -40,7 +40,7 @@ minetest.register_abm({
|
|||||||
interval = 20.0,
|
interval = 20.0,
|
||||||
chance = 20,
|
chance = 20,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
local n = minetest.env:get_node(pos).name
|
local n = minetest.get_node(pos).name
|
||||||
if n== "air" then
|
if n== "air" then
|
||||||
minetest.set_node({x = pos.x + 1, y = pos.y, z = pos.z}, {name = "nssm:web"})
|
minetest.set_node({x = pos.x + 1, y = pos.y, z = pos.z}, {name = "nssm:web"})
|
||||||
end
|
end
|
||||||
@ -53,7 +53,7 @@ minetest.register_abm({
|
|||||||
interval = 20.0,
|
interval = 20.0,
|
||||||
chance = 20,
|
chance = 20,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
local n = minetest.env:get_node(pos).name
|
local n = minetest.get_node(pos).name
|
||||||
if n == "air" then
|
if n == "air" then
|
||||||
minetest.set_node({x = pos.x - 1, y = pos.y, z = pos.z}, {name = "nssm:web"})
|
minetest.set_node({x = pos.x - 1, y = pos.y, z = pos.z}, {name = "nssm:web"})
|
||||||
end
|
end
|
||||||
@ -89,7 +89,7 @@ minetest.register_abm({
|
|||||||
action =
|
action =
|
||||||
function(pos, node)
|
function(pos, node)
|
||||||
local pos1 = {x=pos.x, y=pos.y+1, z=pos.z}
|
local pos1 = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
local n = minetest.env:get_node(pos1).name
|
local n = minetest.get_node(pos1).name
|
||||||
if n ~= "air" then
|
if n ~= "air" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -6,12 +6,12 @@ mobs:register_arrow("nssm:duck_father", {
|
|||||||
velocity = 8,
|
velocity = 8,
|
||||||
-- direct hit
|
-- direct hit
|
||||||
hit_player = function(self, player)
|
hit_player = function(self, player)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
duck_explosion(pos)
|
duck_explosion(pos)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
hit_mob = function(self, player)
|
hit_mob = function(self, player)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
duck_explosion(pos)
|
duck_explosion(pos)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
@ -76,12 +76,12 @@ mobs:register_arrow("nssm:snow_arrow", {
|
|||||||
velocity =20,
|
velocity =20,
|
||||||
-- direct hit
|
-- direct hit
|
||||||
hit_player = function(self, player)
|
hit_player = function(self, player)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
ice_explosion(pos)
|
ice_explosion(pos)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
hit_mob = function(self, player)
|
hit_mob = function(self, player)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
ice_explosion(pos)
|
ice_explosion(pos)
|
||||||
end,
|
end,
|
||||||
hit_node = function(self, pos, node)
|
hit_node = function(self, pos, node)
|
||||||
@ -94,7 +94,7 @@ function ice_explosion(pos)
|
|||||||
for j=pos.y-1, pos.y+4, 1 do
|
for j=pos.y-1, pos.y+4, 1 do
|
||||||
for k=pos.z-math.random(0, 1), pos.z+math.random(0, 1), 1 do
|
for k=pos.z-math.random(0, 1), pos.z+math.random(0, 1), 1 do
|
||||||
local p = {x=i, y=j, z=k}
|
local p = {x=i, y=j, z=k}
|
||||||
local n = minetest.env:get_node(p).name
|
local n = minetest.get_node(p).name
|
||||||
if not nssm.unswappable_node(p) then
|
if not nssm.unswappable_node(p) then
|
||||||
minetest.set_node(p, {name="default:ice"})
|
minetest.set_node(p, {name="default:ice"})
|
||||||
end
|
end
|
||||||
@ -152,7 +152,7 @@ mobs:register_arrow("nssm:webball", {
|
|||||||
velocity = 8,
|
velocity = 8,
|
||||||
-- direct hit
|
-- direct hit
|
||||||
hit_player = function(self, player)
|
hit_player = function(self, player)
|
||||||
local p = player:getpos()
|
local p = player:get_pos()
|
||||||
explosion_web(p, "nssm:web")
|
explosion_web(p, "nssm:web")
|
||||||
end,
|
end,
|
||||||
|
|
||||||
@ -176,8 +176,8 @@ function explosion_web(pos, webtype)
|
|||||||
-- TODO 0 check, why are we operating on two positions?
|
-- TODO 0 check, why are we operating on two positions?
|
||||||
local p = {x=i,y=j,z=k}
|
local p = {x=i,y=j,z=k}
|
||||||
local k = {x=i,y=j+1,z=k}
|
local k = {x=i,y=j+1,z=k}
|
||||||
local current = minetest.env:get_node(p).name
|
local current = minetest.get_node(p).name
|
||||||
local ontop = minetest.env:get_node(k).name
|
local ontop = minetest.get_node(k).name
|
||||||
if current == "air" then
|
if current == "air" then
|
||||||
--if not nssm.unswappable_node(p) then -- replaces to many nodes
|
--if not nssm.unswappable_node(p) then -- replaces to many nodes
|
||||||
minetest.set_node(p, {name=webtype})
|
minetest.set_node(p, {name=webtype})
|
||||||
@ -196,7 +196,7 @@ mobs:register_arrow("nssm:thickwebball", {
|
|||||||
velocity = 8,
|
velocity = 8,
|
||||||
-- direct hit
|
-- direct hit
|
||||||
hit_player = function(self, player)
|
hit_player = function(self, player)
|
||||||
local p = player:getpos()
|
local p = player:get_pos()
|
||||||
explosion_web(p, "nssm:thick_web")
|
explosion_web(p, "nssm:thick_web")
|
||||||
end,
|
end,
|
||||||
|
|
||||||
@ -224,12 +224,12 @@ mobs:register_arrow("nssm:phoenix_arrow", {
|
|||||||
|
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
|
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
if minetest.is_protected(pos, "") then
|
if minetest.is_protected(pos, "") then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local n = minetest.env:get_node(pos).name
|
local n = minetest.get_node(pos).name
|
||||||
|
|
||||||
if self.timer == 0 then
|
if self.timer == 0 then
|
||||||
self.timer = os.time()
|
self.timer = os.time()
|
||||||
@ -243,7 +243,7 @@ mobs:register_arrow("nssm:phoenix_arrow", {
|
|||||||
-- Randomly decide to place phoenix fire at current location
|
-- Randomly decide to place phoenix fire at current location
|
||||||
if math.random(1,2)==2 then
|
if math.random(1,2)==2 then
|
||||||
if not nssm.unswappable_node(pos) then
|
if not nssm.unswappable_node(pos) then
|
||||||
minetest.env:set_node(pos, {name="nssm:phoenix_fire"})
|
minetest.set_node(pos, {name="nssm:phoenix_fire"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -253,9 +253,9 @@ mobs:register_arrow("nssm:phoenix_arrow", {
|
|||||||
dy = math.random(-1,1)
|
dy = math.random(-1,1)
|
||||||
dz = math.random(-1,1)
|
dz = math.random(-1,1)
|
||||||
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||||
local n = minetest.env:get_node(p).name
|
local n = minetest.get_node(p).name
|
||||||
if n=="air" and not nssm.unswappable_node(p) then
|
if n=="air" and not nssm.unswappable_node(p) then
|
||||||
minetest.env:set_node(p, {name="nssm:phoenix_fire"})
|
minetest.set_node(p, {name="nssm:phoenix_fire"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -271,7 +271,7 @@ mobs:register_arrow("nssm:super_gas", {
|
|||||||
velocity = 8,
|
velocity = 8,
|
||||||
-- direct hit
|
-- direct hit
|
||||||
hit_player = function(self, player)
|
hit_player = function(self, player)
|
||||||
local p = player:getpos()
|
local p = player:get_pos()
|
||||||
gas_explosion(p)
|
gas_explosion(p)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
@ -292,7 +292,7 @@ function gas_explosion(pos)
|
|||||||
if minetest.is_protected(p, "") then
|
if minetest.is_protected(p, "") then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local n = minetest.env:get_node(p).name
|
local n = minetest.get_node(p).name
|
||||||
if n == "air" and not nssm.unswappable_node(p) then
|
if n == "air" and not nssm.unswappable_node(p) then
|
||||||
minetest.set_node(p, {name="nssm:venomous_gas"})
|
minetest.set_node(p, {name="nssm:venomous_gas"})
|
||||||
end
|
end
|
||||||
@ -310,9 +310,9 @@ mobs:register_arrow("nssm:roar_of_the_dragon", {
|
|||||||
|
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
|
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
|
|
||||||
local n = minetest.env:get_node(pos).name
|
local n = minetest.get_node(pos).name
|
||||||
|
|
||||||
if self.timer == 0 then
|
if self.timer == 0 then
|
||||||
self.timer = os.time()
|
self.timer = os.time()
|
||||||
@ -322,7 +322,7 @@ mobs:register_arrow("nssm:roar_of_the_dragon", {
|
|||||||
self.object:remove()
|
self.object:remove()
|
||||||
end
|
end
|
||||||
|
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, 1)
|
local objects = minetest.get_objects_inside_radius(pos, 1)
|
||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
local name = obj:get_entity_name()
|
local name = obj:get_entity_name()
|
||||||
if name ~= "nssm:roar_of_the_dragon" and name ~= "nssm:mese_dragon" then
|
if name ~= "nssm:roar_of_the_dragon" and name ~= "nssm:mese_dragon" then
|
||||||
@ -335,7 +335,7 @@ mobs:register_arrow("nssm:roar_of_the_dragon", {
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.env:set_node(pos, {name="air"})
|
minetest.set_node(pos, {name="air"})
|
||||||
if math.random(1,2)==1 then
|
if math.random(1,2)==1 then
|
||||||
dx = math.random(-1,1)
|
dx = math.random(-1,1)
|
||||||
dy = math.random(-1,1)
|
dy = math.random(-1,1)
|
||||||
@ -344,7 +344,7 @@ mobs:register_arrow("nssm:roar_of_the_dragon", {
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||||
minetest.env:set_node(p, {name="air"})
|
minetest.set_node(p, {name="air"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
@ -357,7 +357,7 @@ mobs:register_arrow("nssm:lava_arrow", {
|
|||||||
velocity = 10,
|
velocity = 10,
|
||||||
-- direct hit
|
-- direct hit
|
||||||
hit_player = function(self, player)
|
hit_player = function(self, player)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
if minetest.is_protected(pos, "") then
|
if minetest.is_protected(pos, "") then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -365,7 +365,7 @@ mobs:register_arrow("nssm:lava_arrow", {
|
|||||||
for dx=-1, 1, 2 do
|
for dx=-1, 1, 2 do
|
||||||
for dz=-1, 1, 2 do
|
for dz=-1, 1, 2 do
|
||||||
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||||
local n = minetest.env:get_node(p).name
|
local n = minetest.get_node(p).name
|
||||||
if n~="default:lava_flowing" and not nssm.unswappable_node(p) then
|
if n~="default:lava_flowing" and not nssm.unswappable_node(p) then
|
||||||
minetest.set_node(p, {name="default:lava_flowing"})
|
minetest.set_node(p, {name="default:lava_flowing"})
|
||||||
end
|
end
|
||||||
|
@ -19,7 +19,7 @@ end
|
|||||||
-- Return true if the original_node should not be swapped
|
-- Return true if the original_node should not be swapped
|
||||||
nssm.unswappable_node = function (pos, node_list)
|
nssm.unswappable_node = function (pos, node_list)
|
||||||
local _, node, original_node
|
local _, node, original_node
|
||||||
original_node = minetest.env:get_node(pos).name
|
original_node = minetest.get_node(pos).name
|
||||||
|
|
||||||
if original_node ~= "air" and not minetest.registered_nodes[original_node] then
|
if original_node ~= "air" and not minetest.registered_nodes[original_node] then
|
||||||
-- remnant unknown block
|
-- remnant unknown block
|
||||||
@ -55,7 +55,7 @@ end
|
|||||||
|
|
||||||
nssm.drops = function(drop)
|
nssm.drops = function(drop)
|
||||||
if drop then
|
if drop then
|
||||||
drop:setvelocity({
|
drop:set_velocity({
|
||||||
x = math.random(-10, 10) / 9,
|
x = math.random(-10, 10) / 9,
|
||||||
y = 5,
|
y = 5,
|
||||||
z = math.random(-10, 10) / 9,
|
z = math.random(-10, 10) / 9,
|
||||||
@ -153,8 +153,8 @@ function digging_attack(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if self.attack and self.attack:is_player() then
|
if self.attack and self.attack:is_player() then
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
local dir = vector.subtract(p,s)
|
local dir = vector.subtract(p,s)
|
||||||
dir = vector.normalize(dir)
|
dir = vector.normalize(dir)
|
||||||
@ -172,9 +172,9 @@ function digging_attack(
|
|||||||
local pos_to_dig = posp
|
local pos_to_dig = posp
|
||||||
|
|
||||||
for i = 0,dim.y do -- from 0 to dy between mob and player altitude?
|
for i = 0,dim.y do -- from 0 to dy between mob and player altitude?
|
||||||
local target_node = minetest.env:get_node(pos_to_dig).name
|
local target_node = minetest.get_node(pos_to_dig).name
|
||||||
if not nssm.unswappable_node(pos_to_dig) then
|
if not nssm.unswappable_node(pos_to_dig) then
|
||||||
local nodename = minetest.env:get_node(posp).name
|
local nodename = minetest.get_node(posp).name
|
||||||
local nodedef = minetest.registered_nodes[nodename]
|
local nodedef = minetest.registered_nodes[nodename]
|
||||||
if nodedef.groups and nodedef.groups[group] then
|
if nodedef.groups and nodedef.groups[group] then
|
||||||
minetest.remove_node(pos_to_dig)
|
minetest.remove_node(pos_to_dig)
|
||||||
@ -202,11 +202,11 @@ local function safely_put_block(self, pos_under_mob, original_node, putting_bloc
|
|||||||
minetest.registered_nodes[original_node].drawtype == "liquid"
|
minetest.registered_nodes[original_node].drawtype == "liquid"
|
||||||
or minetest.registered_nodes[original_node].drawtype == "flowingliquid"
|
or minetest.registered_nodes[original_node].drawtype == "flowingliquid"
|
||||||
) then
|
) then
|
||||||
minetest.env:set_node(pos_under_mob, {name = putting_block})
|
minetest.set_node(pos_under_mob, {name = putting_block})
|
||||||
|
|
||||||
-- buildable to (snow, torch)
|
-- buildable to (snow, torch)
|
||||||
elseif minetest.registered_nodes[original_node].buildable_to then
|
elseif minetest.registered_nodes[original_node].buildable_to then
|
||||||
minetest.env:set_node(pos_under_mob, {name = "air"})
|
minetest.set_node(pos_under_mob, {name = "air"})
|
||||||
minetest.add_item(pos_under_mob, {name = original_node})
|
minetest.add_item(pos_under_mob, {name = original_node})
|
||||||
|
|
||||||
end
|
end
|
||||||
@ -219,7 +219,7 @@ function putting_ability( --sets 'putting_block' under the mob, as well a
|
|||||||
max_vel -- max velocity of the mob
|
max_vel -- max velocity of the mob
|
||||||
)
|
)
|
||||||
|
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
|
|
||||||
local dx = 0
|
local dx = 0
|
||||||
local dz = 0
|
local dz = 0
|
||||||
@ -238,7 +238,7 @@ function putting_ability( --sets 'putting_block' under the mob, as well a
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local pos_under_mob = self.object:getpos()
|
local pos_under_mob = self.object:get_pos()
|
||||||
local pos_under_frontof_mob
|
local pos_under_frontof_mob
|
||||||
|
|
||||||
pos_under_mob.y=pos_under_mob.y - 1
|
pos_under_mob.y=pos_under_mob.y - 1
|
||||||
@ -248,8 +248,8 @@ function putting_ability( --sets 'putting_block' under the mob, as well a
|
|||||||
z = pos_under_mob.z + dz
|
z = pos_under_mob.z + dz
|
||||||
}
|
}
|
||||||
|
|
||||||
local node_under_mob = minetest.env:get_node(pos_under_mob).name
|
local node_under_mob = minetest.get_node(pos_under_mob).name
|
||||||
local node_under_frontof_mob = minetest.env:get_node(pos_under_frontof_mob).name
|
local node_under_frontof_mob = minetest.get_node(pos_under_frontof_mob).name
|
||||||
|
|
||||||
local oldmetainf = {
|
local oldmetainf = {
|
||||||
minetest.get_meta(pos_under_mob):to_table(),
|
minetest.get_meta(pos_under_mob):to_table(),
|
||||||
@ -266,16 +266,16 @@ function webber_ability( --puts randomly around the block defined as w_bl
|
|||||||
radius --max distance the block can be put
|
radius --max distance the block can be put
|
||||||
)
|
)
|
||||||
|
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
if (math.random(1,55)==1) then
|
if (math.random(1,55)==1) then
|
||||||
local dx=math.random(1,radius)
|
local dx=math.random(1,radius)
|
||||||
local dz=math.random(1,radius)
|
local dz=math.random(1,radius)
|
||||||
--local p = {x=pos.x+dx, y=pos.y-1, z=pos.z+dz}
|
--local p = {x=pos.x+dx, y=pos.y-1, z=pos.z+dz}
|
||||||
local t = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
|
local t = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
|
||||||
--local n = minetest.env:get_node(p).name
|
--local n = minetest.get_node(p).name
|
||||||
local k = minetest.env:get_node(t).name
|
local k = minetest.get_node(t).name
|
||||||
if k == "air" and not nssm.unswappable_node(t) then
|
if k == "air" and not nssm.unswappable_node(t) then
|
||||||
minetest.env:set_node(t, {name=w_block})
|
minetest.set_node(t, {name=w_block})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -288,15 +288,15 @@ function midas_ability( --ability to transform every blocks it touches in
|
|||||||
height --height of the mob
|
height --height of the mob
|
||||||
)
|
)
|
||||||
|
|
||||||
local v = self.object:getvelocity()
|
local v = self.object:get_velocity()
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
--[[
|
--[[
|
||||||
if minetest.is_protected(pos, "") then
|
if minetest.is_protected(pos, "") then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
--]]
|
--]]
|
||||||
local max = 0
|
local max = 0
|
||||||
local yaw = (self.object:getyaw() + self.rotate) or 0
|
local yaw = (self.object:get_yaw() + self.rotate) or 0
|
||||||
local x = math.sin(yaw)*-1
|
local x = math.sin(yaw)*-1
|
||||||
local z = math.cos(yaw)
|
local z = math.cos(yaw)
|
||||||
|
|
||||||
@ -323,10 +323,10 @@ function midas_ability( --ability to transform every blocks it touches in
|
|||||||
for dy = -1, height do
|
for dy = -1, height do
|
||||||
for dz = k1, k do
|
for dz = k1, k do
|
||||||
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||||
local n = minetest.env:get_node(p).name
|
local n = minetest.get_node(p).name
|
||||||
|
|
||||||
if not nssm.unswappable_node(p, {"air"}) then
|
if not nssm.unswappable_node(p, {"air"}) then
|
||||||
minetest.env:set_node(p, {name=m_block})
|
minetest.set_node(p, {name=m_block})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -449,7 +449,7 @@ local function eject_drops(drops, pos, radius)
|
|||||||
if obj then
|
if obj then
|
||||||
obj:get_luaentity().collect = true
|
obj:get_luaentity().collect = true
|
||||||
obj:setacceleration({x = 0, y = -10, z = 0})
|
obj:setacceleration({x = 0, y = -10, z = 0})
|
||||||
obj:setvelocity({x = math.random(-3, 3),
|
obj:set_velocity({x = math.random(-3, 3),
|
||||||
y = math.random(0, 10),
|
y = math.random(0, 10),
|
||||||
z = math.random(-3, 3)})
|
z = math.random(-3, 3)})
|
||||||
end
|
end
|
||||||
@ -494,7 +494,7 @@ end
|
|||||||
local function entity_physics(pos, radius, drops)
|
local function entity_physics(pos, radius, drops)
|
||||||
local objs = minetest.get_objects_inside_radius(pos, radius)
|
local objs = minetest.get_objects_inside_radius(pos, radius)
|
||||||
for _, obj in pairs(objs) do
|
for _, obj in pairs(objs) do
|
||||||
local obj_pos = obj:getpos()
|
local obj_pos = obj:get_pos()
|
||||||
local dist = math.max(1, vector.distance(pos, obj_pos))
|
local dist = math.max(1, vector.distance(pos, obj_pos))
|
||||||
|
|
||||||
local damage = (4 / dist) * radius
|
local damage = (4 / dist) * radius
|
||||||
@ -527,8 +527,8 @@ local function entity_physics(pos, radius, drops)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if do_knockback then
|
if do_knockback then
|
||||||
local obj_vel = obj:getvelocity()
|
local obj_vel = obj:get_velocity()
|
||||||
obj:setvelocity(calc_velocity(pos, obj_pos,
|
obj:set_velocity(calc_velocity(pos, obj_pos,
|
||||||
obj_vel, radius * 10))
|
obj_vel, radius * 10))
|
||||||
end
|
end
|
||||||
if do_damage then
|
if do_damage then
|
||||||
|
@ -174,7 +174,7 @@ minetest.register_node("nssm:pumpbomb", {
|
|||||||
drop = "",
|
drop = "",
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
tnt_boom_nssm(pos, {damage_radius=4,radius=3,ignore_protection=false})
|
tnt_boom_nssm(pos, {damage_radius=4,radius=3,ignore_protection=false})
|
||||||
minetest.env:set_node(pos, {name="air"})
|
minetest.set_node(pos, {name="air"})
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -70,8 +70,8 @@ nssm:register_mob("nssm:ant_queen", "Ant Queen", {
|
|||||||
self.ant_queen_counter = 0
|
self.ant_queen_counter = 0
|
||||||
local counter = 0
|
local counter = 0
|
||||||
|
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
p.y = p.y + 1.5
|
p.y = p.y + 1.5
|
||||||
s.y = s.y + 1.5
|
s.y = s.y + 1.5
|
||||||
@ -85,7 +85,7 @@ nssm:register_mob("nssm:ant_queen", "Ant Queen", {
|
|||||||
end
|
end
|
||||||
local pos1 = {x=s.x+math.random(-3,3), y=s.y-1, z=s.z+math.random(-3,3)}
|
local pos1 = {x=s.x+math.random(-3,3), y=s.y-1, z=s.z+math.random(-3,3)}
|
||||||
|
|
||||||
local objects = minetest.env:get_objects_inside_radius(s, 10)
|
local objects = minetest.get_objects_inside_radius(s, 10)
|
||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
if (obj:get_luaentity() and obj:get_luaentity().name == "nssm:ant_soldier") then
|
if (obj:get_luaentity() and obj:get_luaentity().name == "nssm:ant_soldier") then
|
||||||
counter = counter + 1
|
counter = counter + 1
|
||||||
@ -93,7 +93,7 @@ nssm:register_mob("nssm:ant_queen", "Ant Queen", {
|
|||||||
end
|
end
|
||||||
|
|
||||||
if ((pos1.x~=s.x) and (pos1.z~=s.z))
|
if ((pos1.x~=s.x) and (pos1.z~=s.z))
|
||||||
and (minetest.env:get_node(pos1).name == "air")
|
and (minetest.get_node(pos1).name == "air")
|
||||||
and (counter < 4)
|
and (counter < 4)
|
||||||
then
|
then
|
||||||
explosion_particles(pos1, 1)
|
explosion_particles(pos1, 1)
|
||||||
|
@ -58,7 +58,7 @@ nssm:register_mob("nssm:larva", "Mantis Larva", {
|
|||||||
if os.time() - self.metatimer >20 then
|
if os.time() - self.metatimer >20 then
|
||||||
minetest.log("action",
|
minetest.log("action",
|
||||||
"metatimer expired, metamorphosis! ")
|
"metatimer expired, metamorphosis! ")
|
||||||
local pos=self.object:getpos()
|
local pos=self.object:get_pos()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
minetest.add_particlespawner({
|
minetest.add_particlespawner({
|
||||||
amount = 200,
|
amount = 200,
|
||||||
|
@ -52,12 +52,12 @@ nssm:register_mob("nssm:lava_titan", "Lava Titan", {
|
|||||||
shoot_offset = 0,
|
shoot_offset = 0,
|
||||||
--[[
|
--[[
|
||||||
on_dist_attack = function(self, player)
|
on_dist_attack = function(self, player)
|
||||||
local pos = player:getpos()
|
local pos = player:get_pos()
|
||||||
for dy=-1, 6, 1 do
|
for dy=-1, 6, 1 do
|
||||||
for dx=-1, 1, 2 do
|
for dx=-1, 1, 2 do
|
||||||
for dz=-1, 1, 2 do
|
for dz=-1, 1, 2 do
|
||||||
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||||
local n = minetest.env:get_node(p).name
|
local n = minetest.get_node(p).name
|
||||||
if n~="default:lava_flowing" and not minetest.is_protected(p, "") then
|
if n~="default:lava_flowing" and not minetest.is_protected(p, "") then
|
||||||
minetest.set_node(p, {name="default:lava_flowing"})
|
minetest.set_node(p, {name="default:lava_flowing"})
|
||||||
end
|
end
|
||||||
|
@ -84,7 +84,7 @@ nssm:register_mob("nssm:masticone", "Masticone", {
|
|||||||
local chance = math.random(1,math.ceil(respawn_count * 1.5))
|
local chance = math.random(1,math.ceil(respawn_count * 1.5))
|
||||||
if chance == 1 then
|
if chance == 1 then
|
||||||
local pos = {x=pos.x+math.random(-1,1), y=pos.y+0.5, z=pos.z+math.random(-1,1)}
|
local pos = {x=pos.x+math.random(-1,1), y=pos.y+0.5, z=pos.z+math.random(-1,1)}
|
||||||
local n = minetest.env:get_node(pos).name
|
local n = minetest.get_node(pos).name
|
||||||
if n == "air" then
|
if n == "air" then
|
||||||
minetest.add_entity(pos, "nssm:masticone")
|
minetest.add_entity(pos, "nssm:masticone")
|
||||||
end
|
end
|
||||||
@ -94,8 +94,8 @@ nssm:register_mob("nssm:masticone", "Masticone", {
|
|||||||
end,
|
end,
|
||||||
|
|
||||||
do_custom = function (self)
|
do_custom = function (self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
local n = minetest.env:get_node(pos).name
|
local n = minetest.get_node(pos).name
|
||||||
|
|
||||||
if n == "default:lava_source" or n == "default:lava_flowing" then
|
if n == "default:lava_source" or n == "default:lava_flowing" then
|
||||||
self.object:set_hp(self.object:get_hp()-5)
|
self.object:set_hp(self.object:get_hp()-5)
|
||||||
@ -111,7 +111,7 @@ nssm:register_mob("nssm:masticone", "Masticone", {
|
|||||||
|
|
||||||
if obj then
|
if obj then
|
||||||
|
|
||||||
obj:setvelocity({
|
obj:set_velocity({
|
||||||
x = math.random(-1, 1),
|
x = math.random(-1, 1),
|
||||||
y = 6,
|
y = 6,
|
||||||
z = math.random(-1, 1)
|
z = math.random(-1, 1)
|
||||||
|
@ -74,11 +74,11 @@ nssm:register_mob("nssm:mese_dragon", "Mese Dragon", {
|
|||||||
self.timer = 0
|
self.timer = 0
|
||||||
self.attack_rip = self.attack_rip+1
|
self.attack_rip = self.attack_rip+1
|
||||||
|
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
if minetest.is_protected(s, "") then
|
if minetest.is_protected(s, "") then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
p.y = p.y + 1.5
|
p.y = p.y + 1.5
|
||||||
s.y = s.y + 1.5
|
s.y = s.y + 1.5
|
||||||
@ -103,9 +103,9 @@ nssm:register_mob("nssm:mese_dragon", "Mese Dragon", {
|
|||||||
for dx = -17,17 do
|
for dx = -17,17 do
|
||||||
for dz= -17,17 do
|
for dz= -17,17 do
|
||||||
local k = {x = s.x+dx, y=s.y+20, z=s.z+dz}
|
local k = {x = s.x+dx, y=s.y+20, z=s.z+dz}
|
||||||
local n = minetest.env:get_node(k).name
|
local n = minetest.get_node(k).name
|
||||||
if n=="air" and math.random(1,23)==1 then
|
if n=="air" and math.random(1,23)==1 then
|
||||||
minetest.env:set_node(k, {name="nssm:mese_meteor"})
|
minetest.set_node(k, {name="nssm:mese_meteor"})
|
||||||
nodeupdate(k)
|
nodeupdate(k)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -57,8 +57,8 @@ nssm:register_mob("nssm:mordain", "Mordain", {
|
|||||||
self.mordain_timer = (self.mordain_timer or os.time())
|
self.mordain_timer = (self.mordain_timer or os.time())
|
||||||
if (os.time() - self.mordain_timer) > 1 then
|
if (os.time() - self.mordain_timer) > 1 then
|
||||||
self.mordain_timer = os.time()
|
self.mordain_timer = os.time()
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
|
|
||||||
@ -89,8 +89,8 @@ nssm:register_mob("nssm:mordain", "Mordain", {
|
|||||||
|
|
||||||
for j = -3,3 do
|
for j = -3,3 do
|
||||||
ty = d.y + j
|
ty = d.y + j
|
||||||
local current = minetest.env:get_node({x = d.x, y = ty, z = d.z}).name
|
local current = minetest.get_node({x = d.x, y = ty, z = d.z}).name
|
||||||
local up = minetest.env:get_node({x = d.x, y = ty+1, z = d.z}).name
|
local up = minetest.get_node({x = d.x, y = ty+1, z = d.z}).name
|
||||||
if up == "air" and current ~= "air" then
|
if up == "air" and current ~= "air" then
|
||||||
d.y = d.y + j+1.5
|
d.y = d.y + j+1.5
|
||||||
flag = 1
|
flag = 1
|
||||||
@ -106,8 +106,8 @@ nssm:register_mob("nssm:mordain", "Mordain", {
|
|||||||
if dist>=2 then
|
if dist>=2 then
|
||||||
for j = -3,3 do
|
for j = -3,3 do
|
||||||
ty = d.y + j
|
ty = d.y + j
|
||||||
local current = minetest.env:get_node({x = d.x, y = ty, z = d.z}).name
|
local current = minetest.get_node({x = d.x, y = ty, z = d.z}).name
|
||||||
local up = minetest.env:get_node({x = d.x, y = ty+1, z = d.z}).name
|
local up = minetest.get_node({x = d.x, y = ty+1, z = d.z}).name
|
||||||
if up == "air" and current ~= "air" then
|
if up == "air" and current ~= "air" then
|
||||||
d.y = d.y + j+1.5
|
d.y = d.y + j+1.5
|
||||||
flag = 1
|
flag = 1
|
||||||
|
@ -59,8 +59,8 @@ nssm:register_mob("nssm:morde", "Morde", {
|
|||||||
if (os.time() - self.morde_timer) > 1 then
|
if (os.time() - self.morde_timer) > 1 then
|
||||||
self.morde_timer = os.time()
|
self.morde_timer = os.time()
|
||||||
|
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
|
|
||||||
@ -101,7 +101,7 @@ nssm:register_mob("nssm:morde", "Morde", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
minetest.add_entity(pos, "nssm:mortick")
|
minetest.add_entity(pos, "nssm:mortick")
|
||||||
end,
|
end,
|
||||||
@ -122,7 +122,7 @@ minetest.register_entity("nssm:mortick", {
|
|||||||
self.mortick_timer = self.mortick_timer or os.time()
|
self.mortick_timer = self.mortick_timer or os.time()
|
||||||
self.timer = self.timer or 0
|
self.timer = self.timer or 0
|
||||||
self.timer = self.timer+dtime
|
self.timer = self.timer+dtime
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local s1 = {x=s.x, y = s.y-1, z = s.z}
|
local s1 = {x=s.x, y = s.y-1, z = s.z}
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
@ -131,7 +131,7 @@ minetest.register_entity("nssm:mortick", {
|
|||||||
end
|
end
|
||||||
]]
|
]]
|
||||||
--The mortick dies when he finds himself in fire
|
--The mortick dies when he finds himself in fire
|
||||||
local name = minetest.env:get_node(s1).name
|
local name = minetest.get_node(s1).name
|
||||||
if name == "fire:basic_flame" or
|
if name == "fire:basic_flame" or
|
||||||
name == "fire:permanent_flame" or
|
name == "fire:permanent_flame" or
|
||||||
name == "nssm:phoenix_fire" or
|
name == "nssm:phoenix_fire" or
|
||||||
@ -145,7 +145,7 @@ minetest.register_entity("nssm:mortick", {
|
|||||||
--Find player to attack:
|
--Find player to attack:
|
||||||
self.attack = (self.attack or 0)
|
self.attack = (self.attack or 0)
|
||||||
|
|
||||||
local objects = minetest.env:get_objects_inside_radius(s, 8)
|
local objects = minetest.get_objects_inside_radius(s, 8)
|
||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
if (obj:is_player()) then
|
if (obj:is_player()) then
|
||||||
self.attack = obj
|
self.attack = obj
|
||||||
@ -154,7 +154,7 @@ minetest.register_entity("nssm:mortick", {
|
|||||||
|
|
||||||
--If found a player follow him
|
--If found a player follow him
|
||||||
if self.attack ~= 0 then
|
if self.attack ~= 0 then
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
local yawp = self.attack:get_look_horizontal()+math.pi/2
|
local yawp = self.attack:get_look_horizontal()+math.pi/2
|
||||||
local pi = math.pi
|
local pi = math.pi
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ minetest.register_entity("nssm:mortick", {
|
|||||||
local yaws = yawp +pi
|
local yaws = yawp +pi
|
||||||
|
|
||||||
--stay attached to players back:
|
--stay attached to players back:
|
||||||
self.object:setvelocity(v)
|
self.object:set_velocity(v)
|
||||||
self.object:setyaw(yaws)
|
self.object:setyaw(yaws)
|
||||||
|
|
||||||
--damage player every ten seconds:
|
--damage player every ten seconds:
|
||||||
|
@ -87,8 +87,8 @@ nssm:register_mob("nssm:morgut", "Morgut", {
|
|||||||
self.dir = (self.dir or 0)
|
self.dir = (self.dir or 0)
|
||||||
if (os.time() - self.morgut_timer) > 1 then
|
if (os.time() - self.morgut_timer) > 1 then
|
||||||
if self.attack then
|
if self.attack then
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
local m = 2
|
local m = 2
|
||||||
|
|
||||||
@ -167,14 +167,14 @@ nssm:register_mob("nssm:morgut", "Morgut", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
if (self.inventory ~= nil) then
|
if (self.inventory ~= nil) then
|
||||||
local elem
|
local elem
|
||||||
for i = 1,32 do
|
for i = 1,32 do
|
||||||
if self.inventory[i].num~=0 then
|
if self.inventory[i].num~=0 then
|
||||||
local items = ItemStack(self.inventory[i].name.." "..self.inventory[i].num)
|
local items = ItemStack(self.inventory[i].name.." "..self.inventory[i].num)
|
||||||
local obj = minetest.add_item(pos, items)
|
local obj = minetest.add_item(pos, items)
|
||||||
obj:setvelocity({
|
obj:set_velocity({
|
||||||
x = math.random(-1, 1),
|
x = math.random(-1, 1),
|
||||||
y = 6,
|
y = 6,
|
||||||
z = math.random(-1, 1)
|
z = math.random(-1, 1)
|
||||||
|
@ -89,8 +89,8 @@ nssm:register_mob("nssm:morlu", "Morlu", {
|
|||||||
self.dir = (self.dir or 0)
|
self.dir = (self.dir or 0)
|
||||||
if (os.time() - self.morlu_timer) > 1 then
|
if (os.time() - self.morlu_timer) > 1 then
|
||||||
|
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
local m = 1
|
local m = 1
|
||||||
|
|
||||||
@ -201,8 +201,8 @@ nssm:register_mob("nssm:morlu", "Morlu", {
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
|
|
||||||
@ -225,13 +225,13 @@ nssm:register_mob("nssm:morlu", "Morlu", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
if (self.inventory ~= nil) then
|
if (self.inventory ~= nil) then
|
||||||
if self.invnum > 0 then
|
if self.invnum > 0 then
|
||||||
for i=1,self.invnum do
|
for i=1,self.invnum do
|
||||||
local items = ItemStack(self.inventory[i].name.." 1")
|
local items = ItemStack(self.inventory[i].name.." 1")
|
||||||
local obj = minetest.add_item(pos, items)
|
local obj = minetest.add_item(pos, items)
|
||||||
obj:setvelocity({
|
obj:set_velocity({
|
||||||
x = math.random(-1, 1),
|
x = math.random(-1, 1),
|
||||||
y = 6,
|
y = 6,
|
||||||
z = math.random(-1, 1)
|
z = math.random(-1, 1)
|
||||||
|
@ -14,7 +14,7 @@ local function initiation_timeout(self)
|
|||||||
if os.time() - self.stop_timer > first_hit_timelimit then
|
if os.time() - self.stop_timer > first_hit_timelimit then
|
||||||
local shout_distance = 64
|
local shout_distance = 64
|
||||||
local message = "Summon me ... when you are ready to fight ..."
|
local message = "Summon me ... when you are ready to fight ..."
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
local objs = minetest.get_objects_inside_radius(pos, shout_distance)
|
local objs = minetest.get_objects_inside_radius(pos, shout_distance)
|
||||||
|
|
||||||
for k, obj in pairs(objs) do
|
for k, obj in pairs(objs) do
|
||||||
@ -91,8 +91,8 @@ mobs:register_mob("nssm:morvalar", {
|
|||||||
self.dir = (self.dir or 0)
|
self.dir = (self.dir or 0)
|
||||||
if (os.time() - self.morvalar_timer) > 2 then
|
if (os.time() - self.morvalar_timer) > 2 then
|
||||||
|
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
local m = 1
|
local m = 1
|
||||||
|
|
||||||
@ -168,8 +168,8 @@ mobs:register_mob("nssm:morvalar", {
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
|
|
||||||
@ -192,7 +192,7 @@ mobs:register_mob("nssm:morvalar", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
add_entity_and_particles("nssm:morvalar6", pos, "morparticle.png", 10)
|
add_entity_and_particles("nssm:morvalar6", pos, "morparticle.png", 10)
|
||||||
end,
|
end,
|
||||||
@ -252,8 +252,8 @@ mobs:register_mob("nssm:morvalar6", {
|
|||||||
self.dir = (self.dir or 0)
|
self.dir = (self.dir or 0)
|
||||||
if (os.time() - self.morvalar6_timer) > 1 then
|
if (os.time() - self.morvalar6_timer) > 1 then
|
||||||
|
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
local m = 2
|
local m = 2
|
||||||
|
|
||||||
@ -312,7 +312,7 @@ mobs:register_mob("nssm:morvalar6", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
add_entity_and_particles("nssm:morvalar5", pos, "morparticle.png", 10)
|
add_entity_and_particles("nssm:morvalar5", pos, "morparticle.png", 10)
|
||||||
end,
|
end,
|
||||||
@ -373,8 +373,8 @@ mobs:register_mob("nssm:morvalar5", {
|
|||||||
self.dir = (self.dir or 0)
|
self.dir = (self.dir or 0)
|
||||||
if (os.time() - self.morvalar5_timer) > 2 then
|
if (os.time() - self.morvalar5_timer) > 2 then
|
||||||
|
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
minetest.after(2, function(self)
|
minetest.after(2, function(self)
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
tnt_boom_nssm(p, {damage_radius=6,radius=5,ignore_protection=false})
|
tnt_boom_nssm(p, {damage_radius=6,radius=5,ignore_protection=false})
|
||||||
@ -383,7 +383,7 @@ mobs:register_mob("nssm:morvalar5", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
add_entity_and_particles("nssm:morvalar4", pos, "morparticle.png", 10)
|
add_entity_and_particles("nssm:morvalar4", pos, "morparticle.png", 10)
|
||||||
end,
|
end,
|
||||||
@ -442,8 +442,8 @@ mobs:register_mob("nssm:morvalar4", {
|
|||||||
self.morvalar4_timer = (self.morvalar4_timer or os.time())
|
self.morvalar4_timer = (self.morvalar4_timer or os.time())
|
||||||
if (os.time() - self.morvalar4_timer) > 1 then
|
if (os.time() - self.morvalar4_timer) > 1 then
|
||||||
self.morvalar4_timer = os.time()
|
self.morvalar4_timer = os.time()
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
|
|
||||||
@ -474,8 +474,8 @@ mobs:register_mob("nssm:morvalar4", {
|
|||||||
|
|
||||||
for j = -3,3 do
|
for j = -3,3 do
|
||||||
ty = d.y + j
|
ty = d.y + j
|
||||||
local current = minetest.env:get_node({x = d.x, y = ty, z = d.z}).name
|
local current = minetest.get_node({x = d.x, y = ty, z = d.z}).name
|
||||||
local up = minetest.env:get_node({x = d.x, y = ty+1, z = d.z}).name
|
local up = minetest.get_node({x = d.x, y = ty+1, z = d.z}).name
|
||||||
if up == "air" and current ~= "air" then
|
if up == "air" and current ~= "air" then
|
||||||
d.y = d.y + j+1.5
|
d.y = d.y + j+1.5
|
||||||
flag = 1
|
flag = 1
|
||||||
@ -491,8 +491,8 @@ mobs:register_mob("nssm:morvalar4", {
|
|||||||
if dist>=2 then
|
if dist>=2 then
|
||||||
for j = -3,3 do
|
for j = -3,3 do
|
||||||
ty = d.y + j
|
ty = d.y + j
|
||||||
local current = minetest.env:get_node({x = d.x, y = ty, z = d.z}).name
|
local current = minetest.get_node({x = d.x, y = ty, z = d.z}).name
|
||||||
local up = minetest.env:get_node({x = d.x, y = ty+1, z = d.z}).name
|
local up = minetest.get_node({x = d.x, y = ty+1, z = d.z}).name
|
||||||
if up == "air" and current ~= "air" then
|
if up == "air" and current ~= "air" then
|
||||||
d.y = d.y + j+1.5
|
d.y = d.y + j+1.5
|
||||||
flag = 1
|
flag = 1
|
||||||
@ -506,7 +506,7 @@ mobs:register_mob("nssm:morvalar4", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
add_entity_and_particles("nssm:morvalar3", pos, "morparticle.png", 10)
|
add_entity_and_particles("nssm:morvalar3", pos, "morparticle.png", 10)
|
||||||
end,
|
end,
|
||||||
@ -567,7 +567,7 @@ mobs:register_mob("nssm:morvalar3", {
|
|||||||
initiation_timeout(self)
|
initiation_timeout(self)
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
add_entity_and_particles("nssm:morvalar2", pos, "morparticle.png", 10)
|
add_entity_and_particles("nssm:morvalar2", pos, "morparticle.png", 10)
|
||||||
end,
|
end,
|
||||||
@ -625,11 +625,11 @@ mobs:register_mob("nssm:morvalar2", {
|
|||||||
self.morvalar2_timer = (self.morvalar2_timer or os.time())
|
self.morvalar2_timer = (self.morvalar2_timer or os.time())
|
||||||
if (os.time() - self.morvalar2_timer) > 1 then
|
if (os.time() - self.morvalar2_timer) > 1 then
|
||||||
self.morvalar2_timer = os.time()
|
self.morvalar2_timer = os.time()
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
local counter = 0
|
local counter = 0
|
||||||
local objects = minetest.env:get_objects_inside_radius(s, 7)
|
local objects = minetest.get_objects_inside_radius(s, 7)
|
||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
if obj:get_luaentity() then
|
if obj:get_luaentity() then
|
||||||
local name = obj:get_luaentity().name
|
local name = obj:get_luaentity().name
|
||||||
@ -667,7 +667,7 @@ mobs:register_mob("nssm:morvalar2", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
add_entity_and_particles("nssm:morvalar1", pos, "morparticle.png", 10)
|
add_entity_and_particles("nssm:morvalar1", pos, "morparticle.png", 10)
|
||||||
end,
|
end,
|
||||||
@ -726,8 +726,8 @@ mobs:register_mob("nssm:morvalar1", {
|
|||||||
if (os.time() - self.morvalar1_timer) > 3 then
|
if (os.time() - self.morvalar1_timer) > 3 then
|
||||||
self.morvalar1_timer = os.time()
|
self.morvalar1_timer = os.time()
|
||||||
|
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
|
|
||||||
@ -751,7 +751,7 @@ mobs:register_mob("nssm:morvalar1", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
add_entity_and_particles("nssm:morvalar0", pos, "morparticle.png", 10)
|
add_entity_and_particles("nssm:morvalar0", pos, "morparticle.png", 10)
|
||||||
end,
|
end,
|
||||||
@ -814,13 +814,13 @@ nssm:register_mob("nssm:morvalar0", "Mor Valar", {
|
|||||||
self.morvalar1_timer = os.time()
|
self.morvalar1_timer = os.time()
|
||||||
|
|
||||||
minetest.sound_play("kamehameha", {
|
minetest.sound_play("kamehameha", {
|
||||||
pos = self.object:getpos(),
|
pos = self.object:get_pos(),
|
||||||
gain = 1.0,
|
gain = 1.0,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.after(1, function()
|
minetest.after(1, function()
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
|
|
||||||
@ -830,12 +830,12 @@ nssm:register_mob("nssm:morvalar0", "Mor Valar", {
|
|||||||
s.y = s.y+0.5
|
s.y = s.y+0.5
|
||||||
p.y = p.y+0.9
|
p.y = p.y+0.9
|
||||||
local dir = {x=(p.x-s.x)*m, y=(p.y-s.y)*m, z=(p.z-s.z)*m} --direction of the kamehameha
|
local dir = {x=(p.x-s.x)*m, y=(p.y-s.y)*m, z=(p.z-s.z)*m} --direction of the kamehameha
|
||||||
obj:setvelocity(dir)
|
obj:set_velocity(dir)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_die = function(self)
|
on_die = function(self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
|
|
||||||
minetest.add_particlespawner({
|
minetest.add_particlespawner({
|
||||||
@ -861,7 +861,7 @@ nssm:register_mob("nssm:morvalar0", "Mor Valar", {
|
|||||||
minetest.register_entity("nssm:kamehameha_bad", {
|
minetest.register_entity("nssm:kamehameha_bad", {
|
||||||
textures = {"kamehameha.png"},
|
textures = {"kamehameha.png"},
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
local pos = self.object:getpos();
|
local pos = self.object:get_pos();
|
||||||
if self.timer == 0 then
|
if self.timer == 0 then
|
||||||
self.timer = os.time()
|
self.timer = os.time()
|
||||||
end
|
end
|
||||||
@ -871,7 +871,7 @@ minetest.register_entity("nssm:kamehameha_bad", {
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Damage things around the entity
|
-- Damage things around the entity
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, 2)
|
local objects = minetest.get_objects_inside_radius(pos, 2)
|
||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
if obj:is_player() then
|
if obj:is_player() then
|
||||||
--minetest.chat_send_all("Dentro il raggio grande")
|
--minetest.chat_send_all("Dentro il raggio grande")
|
||||||
@ -891,7 +891,7 @@ minetest.register_entity("nssm:kamehameha_bad", {
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Explode things near to the entity
|
-- Explode things near to the entity
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, 1)
|
local objects = minetest.get_objects_inside_radius(pos, 1)
|
||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
if obj:is_player() then
|
if obj:is_player() then
|
||||||
tnt_boom_nssm(pos, {damage_radius=6,radius=5})
|
tnt_boom_nssm(pos, {damage_radius=6,radius=5})
|
||||||
|
@ -62,8 +62,8 @@ nssm:register_mob("nssm:morvy", "Morvy", {
|
|||||||
self.morvy_counter = 0
|
self.morvy_counter = 0
|
||||||
local counter = 0
|
local counter = 0
|
||||||
|
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
|
|
||||||
p.y = p.y + 1.5
|
p.y = p.y + 1.5
|
||||||
s.y = s.y + 1.5
|
s.y = s.y + 1.5
|
||||||
@ -77,14 +77,14 @@ nssm:register_mob("nssm:morvy", "Morvy", {
|
|||||||
end]]
|
end]]
|
||||||
local pos1 = {x=s.x+math.random(-0.5,0.5), y=s.y+0.2, z=s.z+math.random(-0.5,0.5)}
|
local pos1 = {x=s.x+math.random(-0.5,0.5), y=s.y+0.2, z=s.z+math.random(-0.5,0.5)}
|
||||||
|
|
||||||
local objects = minetest.env:get_objects_inside_radius(s, 10)
|
local objects = minetest.get_objects_inside_radius(s, 10)
|
||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
if (obj:get_luaentity() and ((obj:get_luaentity().name == "nssm:morbat1") or (obj:get_luaentity().name == "nssm:morbat2") or (obj:get_luaentity().name == "nssm:morbat3"))) then
|
if (obj:get_luaentity() and ((obj:get_luaentity().name == "nssm:morbat1") or (obj:get_luaentity().name == "nssm:morbat2") or (obj:get_luaentity().name == "nssm:morbat3"))) then
|
||||||
counter = counter + 1
|
counter = counter + 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if (minetest.env:get_node(pos1).name == "air")
|
if (minetest.get_node(pos1).name == "air")
|
||||||
and (counter < 5)
|
and (counter < 5)
|
||||||
then
|
then
|
||||||
local bat
|
local bat
|
||||||
|
@ -60,12 +60,12 @@ nssm:register_mob("nssm:morwa", "Morwa", {
|
|||||||
shoot_end=226,
|
shoot_end=226,
|
||||||
},
|
},
|
||||||
do_custom = function (self)
|
do_custom = function (self)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
local light = minetest.get_node_light(pos)
|
local light = minetest.get_node_light(pos)
|
||||||
--minetest.chat_send_all("Luce: "..light)
|
--minetest.chat_send_all("Luce: "..light)
|
||||||
if (light < 8) then
|
if (light < 8) then
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
minetest.env:set_node(pos, {name="nssm:morwa_statue"})
|
minetest.set_node(pos, {name="nssm:morwa_statue"})
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -65,8 +65,8 @@ nssm:register_mob("nssm:pumpking", "PumpKing", {
|
|||||||
if (os.time() - self.pumpking_timer) >3 then
|
if (os.time() - self.pumpking_timer) >3 then
|
||||||
mobs:set_animation(self, "punch")
|
mobs:set_animation(self, "punch")
|
||||||
self.pumpking_timer = os.time()
|
self.pumpking_timer = os.time()
|
||||||
local s = self.object:getpos()
|
local s = self.object:get_pos()
|
||||||
local p = self.attack:getpos()
|
local p = self.attack:get_pos()
|
||||||
p.y = p.y + 1.5
|
p.y = p.y + 1.5
|
||||||
s.y = s.y + 1.5
|
s.y = s.y + 1.5
|
||||||
if minetest.line_of_sight(p, s) == true then
|
if minetest.line_of_sight(p, s) == true then
|
||||||
|
2
mod.conf
2
mod.conf
@ -1 +1,3 @@
|
|||||||
name = nssm
|
name = nssm
|
||||||
|
depends = default, mobs, fire, tnt
|
||||||
|
optional_depends = farming, 3d_armor, shields, itemdrop, nyancat
|
@ -7,12 +7,12 @@ function nssm_register_throwitem(name, descr, def)
|
|||||||
--weapons_shot(itemstack, placer, pointed_thing, def.velocity, name)
|
--weapons_shot(itemstack, placer, pointed_thing, def.velocity, name)
|
||||||
local velocity = 15
|
local velocity = 15
|
||||||
local dir = placer:get_look_dir();
|
local dir = placer:get_look_dir();
|
||||||
local playerpos = placer:getpos();
|
local playerpos = placer:get_pos();
|
||||||
posthrow = playerpos
|
posthrow = playerpos
|
||||||
local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:"..name.."_bomb_flying")
|
local obj = minetest.add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:"..name.."_bomb_flying")
|
||||||
local vec = {x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity}
|
local vec = {x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity}
|
||||||
local acc = {x=0, y=-9.8, z=0}
|
local acc = {x=0, y=-9.8, z=0}
|
||||||
obj:setvelocity(vec)
|
obj:set_velocity(vec)
|
||||||
obj:setacceleration(acc)
|
obj:setacceleration(acc)
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
return itemstack
|
return itemstack
|
||||||
@ -24,7 +24,7 @@ function nssm_register_throwitem(name, descr, def)
|
|||||||
hp_max = 20,
|
hp_max = 20,
|
||||||
collisionbox = {-0.1,-0.1,-0.1, 0.1,0.1,0.1},
|
collisionbox = {-0.1,-0.1,-0.1, 0.1,0.1,0.1},
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
local n = node.name
|
local n = node.name
|
||||||
if n ~= "air" then
|
if n ~= "air" then
|
||||||
@ -555,11 +555,11 @@ function nssm_register_throwegg(name, descr, def)
|
|||||||
--weapons_shot(itemstack, placer, pointed_thing, def.velocity, name)
|
--weapons_shot(itemstack, placer, pointed_thing, def.velocity, name)
|
||||||
local velocity = 15
|
local velocity = 15
|
||||||
local dir = placer:get_look_dir();
|
local dir = placer:get_look_dir();
|
||||||
local playerpos = placer:getpos();
|
local playerpos = placer:get_pos();
|
||||||
local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:"..name.."_bomb_flying")
|
local obj = minetest.add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:"..name.."_bomb_flying")
|
||||||
local vec = {x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity}
|
local vec = {x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity}
|
||||||
local acc = {x=0, y=-9.8, z=0}
|
local acc = {x=0, y=-9.8, z=0}
|
||||||
obj:setvelocity(vec)
|
obj:set_velocity(vec)
|
||||||
obj:setacceleration(acc)
|
obj:setacceleration(acc)
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
return itemstack
|
return itemstack
|
||||||
@ -569,7 +569,7 @@ function nssm_register_throwegg(name, descr, def)
|
|||||||
minetest.register_entity("nssm:"..name.."_bomb_flying",{
|
minetest.register_entity("nssm:"..name.."_bomb_flying",{
|
||||||
textures = {"evocation_bomb.png^"..name.."_egg.png"},
|
textures = {"evocation_bomb.png^"..name.."_egg.png"},
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
local n = node.name
|
local n = node.name
|
||||||
if n ~= "air" then
|
if n ~= "air" then
|
||||||
|
@ -160,7 +160,7 @@ minetest.register_tool("nssm:axe_of_pride", {
|
|||||||
damage_groups = {fleshy=16},
|
damage_groups = {fleshy=16},
|
||||||
},
|
},
|
||||||
on_drop = function(itemstack, dropper, pos)
|
on_drop = function(itemstack, dropper, pos)
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, 10)
|
local objects = minetest.get_objects_inside_radius(pos, 10)
|
||||||
local dropfuel = {name="nssm:energy_globe", description="energy sphere", quantity=1}
|
local dropfuel = {name="nssm:energy_globe", description="energy sphere", quantity=1}
|
||||||
local part = 0
|
local part = 0
|
||||||
|
|
||||||
@ -198,8 +198,8 @@ minetest.register_tool("nssm:axe_of_pride", {
|
|||||||
end
|
end
|
||||||
|
|
||||||
if part == 1 then
|
if part == 1 then
|
||||||
local s = dropper:getpos()
|
local s = dropper:get_pos()
|
||||||
local p = obj:getpos()
|
local p = obj:get_pos()
|
||||||
local m = 2
|
local m = 2
|
||||||
|
|
||||||
minetest.add_particlespawner({
|
minetest.add_particlespawner({
|
||||||
@ -240,10 +240,10 @@ minetest.register_tool("nssm:gratuitousness_battleaxe", {
|
|||||||
},
|
},
|
||||||
on_drop = function(itemstack, dropper, pos)
|
on_drop = function(itemstack, dropper, pos)
|
||||||
local epicenter_distance = 10
|
local epicenter_distance = 10
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, 10)
|
local objects = minetest.get_objects_inside_radius(pos, 10)
|
||||||
local flag = 0
|
local flag = 0
|
||||||
local vec = dropper:get_look_dir()
|
local vec = dropper:get_look_dir()
|
||||||
local pos = dropper:getpos()
|
local pos = dropper:get_pos()
|
||||||
--vec.y = 0
|
--vec.y = 0
|
||||||
local dropfuel = {name = "nssm:energy_globe", description = "energy globe", quantity = 1}
|
local dropfuel = {name = "nssm:energy_globe", description = "energy globe", quantity = 1}
|
||||||
|
|
||||||
@ -278,7 +278,7 @@ minetest.register_tool("nssm:sword_of_eagerness", {
|
|||||||
damage_groups = {fleshy=14},
|
damage_groups = {fleshy=14},
|
||||||
},
|
},
|
||||||
on_drop = function(itemstack, dropper, pos)
|
on_drop = function(itemstack, dropper, pos)
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, 10)
|
local objects = minetest.get_objects_inside_radius(pos, 10)
|
||||||
local flag = 0
|
local flag = 0
|
||||||
local dropfuel = {name = "nssm:energy_globe", description = "energy globe", quantity = 1}
|
local dropfuel = {name = "nssm:energy_globe", description = "energy globe", quantity = 1}
|
||||||
|
|
||||||
@ -291,7 +291,7 @@ minetest.register_tool("nssm:sword_of_eagerness", {
|
|||||||
if not find_dropfuel(dropper, dropfuel) then
|
if not find_dropfuel(dropper, dropfuel) then
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
local pos = obj:getpos()
|
local pos = obj:get_pos()
|
||||||
pos.y = pos.y + 15
|
pos.y = pos.y + 15
|
||||||
if (obj:is_player()) then
|
if (obj:is_player()) then
|
||||||
if (obj:get_player_name()~=dropper:get_player_name()) then
|
if (obj:get_player_name()~=dropper:get_player_name()) then
|
||||||
@ -353,7 +353,7 @@ minetest.register_tool("nssm:falchion_of_eagerness", {
|
|||||||
},
|
},
|
||||||
on_drop = function(itemstack, dropper, pos)
|
on_drop = function(itemstack, dropper, pos)
|
||||||
local vec = dropper:get_look_dir()
|
local vec = dropper:get_look_dir()
|
||||||
local pos_destination = dropper:getpos()
|
local pos_destination = dropper:get_pos()
|
||||||
--vec.y = 0
|
--vec.y = 0
|
||||||
local dropfuel = {name = "nssm:life_energy", description = "life energy", quantity = 5}
|
local dropfuel = {name = "nssm:life_energy", description = "life energy", quantity = 5}
|
||||||
|
|
||||||
@ -375,7 +375,7 @@ minetest.register_tool("nssm:falchion_of_eagerness", {
|
|||||||
return
|
return
|
||||||
|
|
||||||
else
|
else
|
||||||
local pos_particles = dropper:getpos()
|
local pos_particles = dropper:get_pos()
|
||||||
minetest.add_particlespawner({
|
minetest.add_particlespawner({
|
||||||
amount = 25,
|
amount = 25,
|
||||||
time = 0.3,
|
time = 0.3,
|
||||||
@ -444,7 +444,7 @@ minetest.register_tool("nssm:sword_of_envy", {
|
|||||||
damage_groups = {fleshy=14},
|
damage_groups = {fleshy=14},
|
||||||
},
|
},
|
||||||
on_drop = function(itemstack, dropper, pos)
|
on_drop = function(itemstack, dropper, pos)
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, 10)
|
local objects = minetest.get_objects_inside_radius(pos, 10)
|
||||||
local flag = 0
|
local flag = 0
|
||||||
local dropfuel = {name = "nssm:energy_globe", description = "energy globe", quantity = 1}
|
local dropfuel = {name = "nssm:energy_globe", description = "energy globe", quantity = 1}
|
||||||
|
|
||||||
@ -510,7 +510,7 @@ minetest.register_tool("nssm:sword_of_gluttony", {
|
|||||||
damage_groups = {fleshy=14},
|
damage_groups = {fleshy=14},
|
||||||
},
|
},
|
||||||
on_drop = function(itemstack, dropper, pos)
|
on_drop = function(itemstack, dropper, pos)
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, 10)
|
local objects = minetest.get_objects_inside_radius(pos, 10)
|
||||||
local flag = 0
|
local flag = 0
|
||||||
local dropfuel = {name = "nssm:energy_globe", description = "energy globe", quantity = 1}
|
local dropfuel = {name = "nssm:energy_globe", description = "energy globe", quantity = 1}
|
||||||
|
|
||||||
@ -535,7 +535,7 @@ minetest.register_tool("nssm:sword_of_gluttony", {
|
|||||||
else
|
else
|
||||||
if (obj:get_luaentity().health) then
|
if (obj:get_luaentity().health) then
|
||||||
if obj:get_luaentity().health <= 32 then
|
if obj:get_luaentity().health <= 32 then
|
||||||
local pos = obj:getpos()
|
local pos = obj:get_pos()
|
||||||
obj:remove()
|
obj:remove()
|
||||||
|
|
||||||
-- We don't use check_for_death, as that would cause it to put regular drops
|
-- We don't use check_for_death, as that would cause it to put regular drops
|
||||||
@ -550,8 +550,8 @@ minetest.register_tool("nssm:sword_of_gluttony", {
|
|||||||
nssm.drops(drop)
|
nssm.drops(drop)
|
||||||
end
|
end
|
||||||
|
|
||||||
local s = obj:getpos()
|
local s = obj:get_pos()
|
||||||
local p = dropper:getpos()
|
local p = dropper:get_pos()
|
||||||
local m = 3
|
local m = 3
|
||||||
|
|
||||||
minetest.add_particlespawner({
|
minetest.add_particlespawner({
|
||||||
@ -597,7 +597,7 @@ minetest.register_tool("nssm:death_scythe", {
|
|||||||
},
|
},
|
||||||
groups ={not_in_creative_inventory=1},
|
groups ={not_in_creative_inventory=1},
|
||||||
on_drop = function(itemstack, dropper, pos)
|
on_drop = function(itemstack, dropper, pos)
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, 10)
|
local objects = minetest.get_objects_inside_radius(pos, 10)
|
||||||
local flag = 0
|
local flag = 0
|
||||||
|
|
||||||
dropper:set_hp(math.ceil(dropper:get_hp()/2) )
|
dropper:set_hp(math.ceil(dropper:get_hp()/2) )
|
||||||
@ -623,7 +623,7 @@ minetest.register_tool("nssm:death_scythe", {
|
|||||||
drop = minetest.add_item(pos, "nssm:energy_globe 1")
|
drop = minetest.add_item(pos, "nssm:energy_globe 1")
|
||||||
|
|
||||||
if drop then
|
if drop then
|
||||||
drop:setvelocity({
|
drop:set_velocity({
|
||||||
x = math.random(-10, 10) / 9,
|
x = math.random(-10, 10) / 9,
|
||||||
y = 5,
|
y = 5,
|
||||||
z = math.random(-10, 10) / 9,
|
z = math.random(-10, 10) / 9,
|
||||||
@ -632,7 +632,7 @@ minetest.register_tool("nssm:death_scythe", {
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local pos = dropper:getpos()
|
local pos = dropper:get_pos()
|
||||||
local vec = {x=5,y=5,z=5}
|
local vec = {x=5,y=5,z=5}
|
||||||
local poslist = minetest.find_nodes_in_area(vector.subtract(pos, vec), vector.add(pos,vec), "default:dirt_with_grass")
|
local poslist = minetest.find_nodes_in_area(vector.subtract(pos, vec), vector.add(pos,vec), "default:dirt_with_grass")
|
||||||
for _,v in pairs(poslist) do
|
for _,v in pairs(poslist) do
|
||||||
|
@ -14,7 +14,7 @@ local tail_replacement = "nssm:light_energy"
|
|||||||
|
|
||||||
local function drop_rainbow_staff(itemstack, dropper, pos)
|
local function drop_rainbow_staff(itemstack, dropper, pos)
|
||||||
local extents = 16
|
local extents = 16
|
||||||
local airnodes = minetest.env:find_nodes_in_area(
|
local airnodes = minetest.find_nodes_in_area(
|
||||||
{x=pos.x-extents , y=pos.y-extents, z=pos.z-extents},
|
{x=pos.x-extents , y=pos.y-extents, z=pos.z-extents},
|
||||||
{x=pos.x+extents , y=pos.y+extents, z=pos.z+extents},
|
{x=pos.x+extents , y=pos.y+extents, z=pos.z+extents},
|
||||||
{"air"}
|
{"air"}
|
||||||
@ -44,7 +44,7 @@ if not nssm.server_rainbow_staff then
|
|||||||
on_step = function (self, pos, node, dtime)
|
on_step = function (self, pos, node, dtime)
|
||||||
self.timer = self.timer or os.time()
|
self.timer = self.timer or os.time()
|
||||||
|
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
if nssm.unswappable_node(pos) then
|
if nssm.unswappable_node(pos) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -74,10 +74,10 @@ if not nssm.server_rainbow_staff then
|
|||||||
groups = {not_in_creative_inventory=1,},
|
groups = {not_in_creative_inventory=1,},
|
||||||
on_use = function(itemstack, placer, pointed_thing)
|
on_use = function(itemstack, placer, pointed_thing)
|
||||||
local dir = placer:get_look_dir();
|
local dir = placer:get_look_dir();
|
||||||
local playerpos = placer:getpos();
|
local playerpos = placer:get_pos();
|
||||||
local obj = minetest.add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:rainbow")
|
local obj = minetest.add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:rainbow")
|
||||||
local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6}
|
local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6}
|
||||||
obj:setvelocity(vec)
|
obj:set_velocity(vec)
|
||||||
return itemstack
|
return itemstack
|
||||||
end,
|
end,
|
||||||
--on_drop = drop_rainbow_staff,
|
--on_drop = drop_rainbow_staff,
|
||||||
|
@ -50,11 +50,11 @@ local function spears_shot(itemstack, player)
|
|||||||
end
|
end
|
||||||
local drag = base_drag * statmodifier
|
local drag = base_drag * statmodifier
|
||||||
|
|
||||||
local playerpos = player:getpos()
|
local playerpos = player:get_pos()
|
||||||
local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, spear)
|
local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, spear)
|
||||||
local dir = player:get_look_dir()
|
local dir = player:get_look_dir()
|
||||||
|
|
||||||
obj:setvelocity({x=dir.x*speed, y=dir.y*speed, z=dir.z*speed})
|
obj:set_velocity({x=dir.x*speed, y=dir.y*speed, z=dir.z*speed})
|
||||||
obj:setacceleration({x=-dir.x*drag, y=-gravity, z=-dir.z*drag})
|
obj:setacceleration({x=-dir.x*drag, y=-gravity, z=-dir.z*drag})
|
||||||
obj:setyaw(player:get_look_horizontal()+(math.pi*1.5))
|
obj:setyaw(player:get_look_horizontal()+(math.pi*1.5))
|
||||||
minetest.sound_play("spears_sound", {pos=playerpos})
|
minetest.sound_play("spears_sound", {pos=playerpos})
|
||||||
@ -99,7 +99,7 @@ local function spears_set_entity(kind, eq, toughness, breadth)
|
|||||||
SPEAR_ENTITY.on_step = function(self, dtime)
|
SPEAR_ENTITY.on_step = function(self, dtime)
|
||||||
self.timer = self.timer+dtime
|
self.timer = self.timer+dtime
|
||||||
|
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
|
|
||||||
if not self.wear then
|
if not self.wear then
|
||||||
@ -127,7 +127,7 @@ local function spears_set_entity(kind, eq, toughness, breadth)
|
|||||||
if obj:get_luaentity() ~= nil then
|
if obj:get_luaentity() ~= nil then
|
||||||
if obj:get_luaentity().name ~= spearentityname and obj:get_luaentity().name ~= "__builtin:item" then
|
if obj:get_luaentity().name ~= spearentityname and obj:get_luaentity().name ~= "__builtin:item" then
|
||||||
if not (obj:is_player() and obj:get_luaentity().shooter:get_player_name() == obj:get_player_name() ) then
|
if not (obj:is_player() and obj:get_luaentity().shooter:get_player_name() == obj:get_player_name() ) then
|
||||||
local speed = vector.length(self.object:getvelocity()) / statmodifier
|
local speed = vector.length(self.object:get_velocity()) / statmodifier
|
||||||
local damage = (speed + eq)^1.12-20
|
local damage = (speed + eq)^1.12-20
|
||||||
|
|
||||||
obj:punch(self.object, 1.0, {
|
obj:punch(self.object, 1.0, {
|
||||||
|
@ -8,10 +8,10 @@ local default_dir = {
|
|||||||
--Function used to shoot:
|
--Function used to shoot:
|
||||||
local function weapons_shot(itemstack, placer, pointed_thing, velocity, name)
|
local function weapons_shot(itemstack, placer, pointed_thing, velocity, name)
|
||||||
local dir = placer:get_look_dir();
|
local dir = placer:get_look_dir();
|
||||||
local playerpos = placer:getpos();
|
local playerpos = placer:get_pos();
|
||||||
local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:"..name)
|
local obj = minetest.add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:"..name)
|
||||||
local vec = {x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity}
|
local vec = {x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity}
|
||||||
obj:setvelocity(vec)
|
obj:set_velocity(vec)
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ end
|
|||||||
|
|
||||||
local function activate_balls(pos)
|
local function activate_balls(pos)
|
||||||
local radius = 50
|
local radius = 50
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, radius)
|
local objects = minetest.get_objects_inside_radius(pos, radius)
|
||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
if (obj:get_luaentity() and obj:get_luaentity().name == "nssm:hellzone_grenade") then
|
if (obj:get_luaentity() and obj:get_luaentity().name == "nssm:hellzone_grenade") then
|
||||||
obj:get_luaentity().move = 1
|
obj:get_luaentity().move = 1
|
||||||
@ -39,7 +39,7 @@ local function search_on_step2(
|
|||||||
radius, --radius in which look for entities to follow
|
radius, --radius in which look for entities to follow
|
||||||
vel) --velocity of the projectile
|
vel) --velocity of the projectile
|
||||||
|
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
|
|
||||||
--Disappear after a certain time
|
--Disappear after a certain time
|
||||||
if self.life_time == 0 then
|
if self.life_time == 0 then
|
||||||
@ -51,7 +51,7 @@ local function search_on_step2(
|
|||||||
end
|
end
|
||||||
|
|
||||||
--Look for an entity to follow
|
--Look for an entity to follow
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, radius)
|
local objects = minetest.get_objects_inside_radius(pos, radius)
|
||||||
local min_dist = 100
|
local min_dist = 100
|
||||||
local obj_min = nil
|
local obj_min = nil
|
||||||
local obj_p = nil
|
local obj_p = nil
|
||||||
@ -59,7 +59,7 @@ local function search_on_step2(
|
|||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
if (obj:is_player()) then
|
if (obj:is_player()) then
|
||||||
elseif (obj:get_luaentity() and obj:get_luaentity().name ~= "__builtin:item" and obj:get_luaentity().name ~= self.object:get_luaentity().name) then
|
elseif (obj:get_luaentity() and obj:get_luaentity().name ~= "__builtin:item" and obj:get_luaentity().name ~= self.object:get_luaentity().name) then
|
||||||
obj_p = obj:getpos()
|
obj_p = obj:get_pos()
|
||||||
local vec = {x=obj_p.x-pos.x, y=obj_p.y-pos.y, z=obj_p.z-pos.z}
|
local vec = {x=obj_p.x-pos.x, y=obj_p.y-pos.y, z=obj_p.z-pos.z}
|
||||||
local dist = (vec.x^2+vec.y^2+vec.z^2)^0.5
|
local dist = (vec.x^2+vec.y^2+vec.z^2)^0.5
|
||||||
if (dist<min_dist) then
|
if (dist<min_dist) then
|
||||||
@ -93,19 +93,19 @@ local function search_on_step2(
|
|||||||
vec_min.x = (vec_min.x/max_diff)*vel
|
vec_min.x = (vec_min.x/max_diff)*vel
|
||||||
vec_min.y = (vec_min.y/max_diff)*vel
|
vec_min.y = (vec_min.y/max_diff)*vel
|
||||||
vec_min.z = (vec_min.z/max_diff)*vel
|
vec_min.z = (vec_min.z/max_diff)*vel
|
||||||
obj_p = obj_min:getpos()
|
obj_p = obj_min:get_pos()
|
||||||
if min_dist <=8 and self.move==0 then
|
if min_dist <=8 and self.move==0 then
|
||||||
self.object:setvelocity({x=0, y=0, z=0})
|
self.object:set_velocity({x=0, y=0, z=0})
|
||||||
|
|
||||||
--hit(pos,self)
|
--hit(pos,self)
|
||||||
elseif min_dist<=1 and self.move==1 then
|
elseif min_dist<=1 and self.move==1 then
|
||||||
hit(pos,self)
|
hit(pos,self)
|
||||||
else
|
else
|
||||||
self.object:setvelocity(vec_min)
|
self.object:set_velocity(vec_min)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local n = minetest.env:get_node(pos).name
|
local n = minetest.get_node(pos).name
|
||||||
if n ~= "air" and n ~= "default:water_source" and n ~= "default:water_flowing" then
|
if n ~= "air" and n ~= "default:water_source" and n ~= "default:water_flowing" then
|
||||||
hit(pos,self)
|
hit(pos,self)
|
||||||
end
|
end
|
||||||
@ -120,7 +120,7 @@ local function search_on_step(
|
|||||||
vel) --velocity of the projectile
|
vel) --velocity of the projectile
|
||||||
|
|
||||||
|
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
|
|
||||||
--Disappear after a certain time
|
--Disappear after a certain time
|
||||||
if self.life_time == 0 then
|
if self.life_time == 0 then
|
||||||
@ -133,7 +133,7 @@ local function search_on_step(
|
|||||||
|
|
||||||
|
|
||||||
--Look for an entity to follow
|
--Look for an entity to follow
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, radius)
|
local objects = minetest.get_objects_inside_radius(pos, radius)
|
||||||
local min_dist = 100
|
local min_dist = 100
|
||||||
local obj_min = nil
|
local obj_min = nil
|
||||||
local obj_p = nil
|
local obj_p = nil
|
||||||
@ -141,7 +141,7 @@ local function search_on_step(
|
|||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
if (obj:is_player()) then
|
if (obj:is_player()) then
|
||||||
elseif (obj:get_luaentity() and obj:get_luaentity().name ~= "__builtin:item" and obj:get_luaentity().name ~= self.object:get_luaentity().name) then
|
elseif (obj:get_luaentity() and obj:get_luaentity().name ~= "__builtin:item" and obj:get_luaentity().name ~= self.object:get_luaentity().name) then
|
||||||
obj_p = obj:getpos()
|
obj_p = obj:get_pos()
|
||||||
local vec = {x=obj_p.x-pos.x, y=obj_p.y-pos.y, z=obj_p.z-pos.z}
|
local vec = {x=obj_p.x-pos.x, y=obj_p.y-pos.y, z=obj_p.z-pos.z}
|
||||||
local dist = (vec.x^2+vec.y^2+vec.z^2)^0.5
|
local dist = (vec.x^2+vec.y^2+vec.z^2)^0.5
|
||||||
if (dist<min_dist) then
|
if (dist<min_dist) then
|
||||||
@ -175,17 +175,17 @@ local function search_on_step(
|
|||||||
vec_min.x = (vec_min.x/max_diff)*vel
|
vec_min.x = (vec_min.x/max_diff)*vel
|
||||||
vec_min.y = (vec_min.y/max_diff)*vel
|
vec_min.y = (vec_min.y/max_diff)*vel
|
||||||
vec_min.z = (vec_min.z/max_diff)*vel
|
vec_min.z = (vec_min.z/max_diff)*vel
|
||||||
obj_p = obj_min:getpos()
|
obj_p = obj_min:get_pos()
|
||||||
if min_dist < 1 then
|
if min_dist < 1 then
|
||||||
local node = node_ok(pos).name
|
local node = node_ok(pos).name
|
||||||
self.hit_node(self, pos, node)
|
self.hit_node(self, pos, node)
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
self.object:setvelocity(vec_min)
|
self.object:set_velocity(vec_min)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local n = minetest.env:get_node(pos).name
|
local n = minetest.get_node(pos).name
|
||||||
if n ~= "air" and n ~= "default:water_source" and n ~= "default:water_flowing" then
|
if n ~= "air" and n ~= "default:water_source" and n ~= "default:water_flowing" then
|
||||||
local node = node_ok(pos).name
|
local node = node_ok(pos).name
|
||||||
self.hit_node(self, pos, node)
|
self.hit_node(self, pos, node)
|
||||||
@ -205,7 +205,7 @@ local function default_on_step(
|
|||||||
vel) --velocity of the projectile
|
vel) --velocity of the projectile
|
||||||
|
|
||||||
|
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:get_pos()
|
||||||
|
|
||||||
if self.life_time == 0 then
|
if self.life_time == 0 then
|
||||||
self.life_time = os.time()
|
self.life_time = os.time()
|
||||||
@ -223,7 +223,7 @@ local function default_on_step(
|
|||||||
--minetest.chat_send_all("Timer: "..self.timer)
|
--minetest.chat_send_all("Timer: "..self.timer)
|
||||||
|
|
||||||
--while going around it damages entities
|
--while going around it damages entities
|
||||||
local objects = minetest.env:get_objects_inside_radius(pos, 2)
|
local objects = minetest.get_objects_inside_radius(pos, 2)
|
||||||
if self.timer > 0.1 then
|
if self.timer > 0.1 then
|
||||||
self.timer = 0
|
self.timer = 0
|
||||||
for _,obj in ipairs(objects) do
|
for _,obj in ipairs(objects) do
|
||||||
@ -244,14 +244,14 @@ local function default_on_step(
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local n = minetest.env:get_node(pos).name
|
local n = minetest.get_node(pos).name
|
||||||
if n==not_transparent or minetest.get_item_group(n, not_transparent)==1 then
|
if n==not_transparent or minetest.get_item_group(n, not_transparent)==1 then
|
||||||
local node = node_ok(pos).name
|
local node = node_ok(pos).name
|
||||||
self.hit_node(self, pos, node)
|
self.hit_node(self, pos, node)
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
local vec = self.object:getvelocity()
|
local vec = self.object:get_velocity()
|
||||||
local c=vel/10
|
local c=vel/10
|
||||||
--calculate how many blocks around need to be removed
|
--calculate how many blocks around need to be removed
|
||||||
local max = 0
|
local max = 0
|
||||||
@ -300,7 +300,7 @@ local function default_on_step(
|
|||||||
for dz = -k,k do
|
for dz = -k,k do
|
||||||
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||||
if not minetest.is_protected(p, "") or not minetest.get_item_group(n, "unbreakable") == 1 then
|
if not minetest.is_protected(p, "") or not minetest.get_item_group(n, "unbreakable") == 1 then
|
||||||
minetest.env:remove_node(p)
|
minetest.remove_node(p)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -406,7 +406,7 @@ nssm_register_weapon("hellzone_grenade", {
|
|||||||
end,
|
end,
|
||||||
|
|
||||||
on_drop = function(itemstack, user, pointed_thing)
|
on_drop = function(itemstack, user, pointed_thing)
|
||||||
local pos = user:getpos()
|
local pos = user:get_pos()
|
||||||
activate_balls(pos)
|
activate_balls(pos)
|
||||||
end,
|
end,
|
||||||
material = "default:mese",
|
material = "default:mese",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user