Tweak group checks
This commit is contained in:
parent
1fb99b3cb3
commit
9885b76b74
23
api.lua
23
api.lua
@ -322,13 +322,14 @@ do_env_damage = function(self)
|
|||||||
pos.y = pos.y + self.collisionbox[2] + 0.1 -- foot level
|
pos.y = pos.y + self.collisionbox[2] + 0.1 -- foot level
|
||||||
|
|
||||||
local nod = node_ok(pos, "air") ; --print ("standing in "..nod)
|
local nod = node_ok(pos, "air") ; --print ("standing in "..nod)
|
||||||
local nodef = minetest.registered_nodes[nod]
|
--local nodef = minetest.registered_nodes[nod]
|
||||||
|
|
||||||
pos.y = pos.y + 1
|
pos.y = pos.y + 1
|
||||||
|
|
||||||
-- water
|
-- water
|
||||||
if self.water_damage ~= 0
|
if self.water_damage ~= 0
|
||||||
and nodef.groups.water then
|
--and nodef.groups.water then
|
||||||
|
and minetest.get_item_group(nod, "water") ~= 0 then
|
||||||
|
|
||||||
self.object:set_hp(self.object:get_hp() - self.water_damage)
|
self.object:set_hp(self.object:get_hp() - self.water_damage)
|
||||||
|
|
||||||
@ -337,7 +338,8 @@ do_env_damage = function(self)
|
|||||||
|
|
||||||
-- lava or fire
|
-- lava or fire
|
||||||
if self.lava_damage ~= 0
|
if self.lava_damage ~= 0
|
||||||
and (nodef.groups.lava
|
--and (nodef.groups.lava
|
||||||
|
and (minetest.get_item_group(nod, "lava") ~= 0
|
||||||
or nod == "fire:basic_flame"
|
or nod == "fire:basic_flame"
|
||||||
or nod == "fire:permanent_flame") then
|
or nod == "fire:permanent_flame") then
|
||||||
|
|
||||||
@ -783,7 +785,8 @@ minetest.register_entity(name, {
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- in water then float up
|
-- in water then float up
|
||||||
if minetest.registered_nodes[node_ok(pos)].groups.water then
|
--if minetest.registered_nodes[node_ok(pos)].groups.water then
|
||||||
|
if minetest.get_item_group(node_ok(pos), "water") ~= 0 then
|
||||||
|
|
||||||
if self.floats == 1 then
|
if self.floats == 1 then
|
||||||
|
|
||||||
@ -1885,14 +1888,19 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light,
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local nod = node_ok(pos)
|
||||||
|
|
||||||
-- are we spawning inside solid nodes?
|
-- are we spawning inside solid nodes?
|
||||||
if minetest.registered_nodes[node_ok(pos)].walkable == true then
|
if minetest.registered_nodes[nod]
|
||||||
|
and minetest.registered_nodes[nod].walkable == true then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
pos.y = pos.y + 1
|
pos.y = pos.y + 1
|
||||||
|
nod = node_ok(pos)
|
||||||
|
|
||||||
if minetest.registered_nodes[node_ok(pos)].walkable == true then
|
if minetest.registered_nodes[nod]
|
||||||
|
and minetest.registered_nodes[node_ok(pos)].walkable == true then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -2007,7 +2015,8 @@ function mobs:explosion(pos, radius, fire, smoke, sound)
|
|||||||
|
|
||||||
-- after effects
|
-- after effects
|
||||||
if fire > 0
|
if fire > 0
|
||||||
and (minetest.registered_nodes[n].groups.flammable
|
--and (minetest.registered_nodes[n].groups.flammable
|
||||||
|
and (minetest.get_item_group(n, "flammable") ~= 0
|
||||||
or math.random(1, 100) <= 30) then
|
or math.random(1, 100) <= 30) then
|
||||||
|
|
||||||
minetest.set_node(p, {name = "fire:basic_flame"})
|
minetest.set_node(p, {name = "fire:basic_flame"})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user