@@ -10,10 +10,10 @@ -- use_texture_alpha = true; textures = {'sorcery_fireball.png'}; groups = {immortal = 1}; visual_size = { x = 2, y = 2, z = 2 }; - physical = false; - collide_with_objects = false; + physical = true; + collide_with_objects = true; pointable = false; glow = 14; static_save = false; }; @@ -66,12 +66,25 @@ end ::collcheck:: do -- if no collision then return end - local nname = minetest.get_node(pos).name - if nname == 'air' or minetest.registered_nodes[nname].walkable ~= true then return - elseif nname == 'ignore' then goto destroy end + -- local nname = minetest.get_node(pos).name + -- if nname == 'air' or minetest.registered_nodes[nname].walkable ~= true then return + -- elseif nname == 'ignore' then goto destroy end -- else fall through to explode + if collision then -- since 5.3 only!! + print('collision detected!',dump(collision)) + if collision.collides == false then return end + if #collision.collisions > 0 then + local col = collision.collisions[1] + if col.node_pos then + pos = col.node_pos + elseif col.object then + pos = col.object:get_pos() + end + -- fall through to explode + else return end + else return end end ::explode:: do -- minetest.add_particle({