Tweak group checks

This commit is contained in:
TenPlus1 2016-02-01 21:51:48 +00:00
parent 1fb99b3cb3
commit 9885b76b74

23
api.lua
View File

@ -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"})