removed legacy stuff and made tnt have no damage when near water

This commit is contained in:
kaadmy 2015-09-24 13:33:53 -07:00
parent 23d0f62241
commit 94cf84f732
4 changed files with 80 additions and 74 deletions

View File

@ -830,15 +830,24 @@ minetest.register_tool(
if pointed_thing.type ~= "node" then return end if pointed_thing.type ~= "node" then return end
local pos = pointed_thing.under local pos = pointed_thing.under
local node = minetest.get_node(pointed_thing.under)
local nodename = node.name
if minetest.get_node(pointed_thing.under).name == "default:torch_weak" then if nodename == "default:torch_weak" then
local n = minetest.get_node(pointed_thing.under) local n = minetest.get_node(pos)
minetest.set_node(pos, {name = "default:torch", param = n.param, param2 = n.param2}) minetest.set_node(pos, {name = "default:torch", param = n.param, param2 = n.param2})
itemstack:add_wear(800) itemstack:add_wear(800)
elseif minetest.get_node(pointed_thing.under).name == "default:torch_dead" then elseif nodename == "default:torch_dead" then
local n = minetest.get_node(pointed_thing.under) local n = minetest.get_node(pos)
minetest.set_node(pos, {name = "default:torch_weak", param = n.param, param2 = n.param2}) minetest.set_node(pos, {name = "default:torch_weak", param = n.param, param2 = n.param2})
itemstack:add_wear(1300) itemstack:add_wear(800)
elseif nodename == "tnt:tnt" then
local y = minetest.registered_nodes["tnt:tnt"]
if y ~= nil then
y.on_punch(pos, node, user)
itemstack:add_wear(800)
end
end end
return itemstack return itemstack

View File

@ -58,7 +58,6 @@ minetest.register_node(
"default_furnace_sides.png", "default_furnace_sides.png", "default_furnace_front.png"}, "default_furnace_sides.png", "default_furnace_sides.png", "default_furnace_front.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky = 2}, groups = {cracky = 2},
legacy_facedir_simple = true,
is_ground_content = false, is_ground_content = false,
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_construct = function(pos) on_construct = function(pos)
@ -95,7 +94,6 @@ minetest.register_node(
light_source = 8, light_source = 8,
drop = "default:furnace", drop = "default:furnace",
groups = {cracky = 2}, groups = {cracky = 2},
legacy_facedir_simple = true,
is_ground_content = false, is_ground_content = false,
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_construct = function(pos) on_construct = function(pos)

View File

@ -704,7 +704,58 @@ minetest.register_node(
wall_side = {-0.5, -8/16, -0.1, -0.5+4/16, 0, 0.1}, wall_side = {-0.5, -8/16, -0.1, -0.5+4/16, 0, 0.1},
}, },
groups = {choppy=2, dig_immediate=3, attached_node=1}, groups = {choppy=2, dig_immediate=3, attached_node=1},
legacy_wallmounted = true, sounds = default.node_sound_defaults(),
})
minetest.register_node(
"default:torch_weak",
{
description = "Weak Torch",
drawtype = "nodebox",
tiles ={
{
name = "default_torch_3d_ends.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.0,
},
},
{
name = "default_torch_3d_ends.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.0,
},
},
{
name = "default_torch_3d.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.0,
},
},
},
inventory_image = "default_torch.png",
wield_image = "default_torch.png",
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
is_ground_content = false,
walkable = false,
light_source = default.LIGHT_MAX-4,
node_box = {
type = "wallmounted",
wall_top = {-2/16, 0, -2/16, 2/16, 0.5, 2/16},
wall_bottom = {-2/16, -0.5, -2/16, 2/16, 0, 2/16},
wall_side = {-0.5, -8/16, -0.1, -0.5+4/16, 0, 0.1},
},
groups = {choppy=2, dig_immediate=3, attached_node=1},
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),
}) })
@ -757,59 +808,6 @@ minetest.register_node(
wall_side = {-0.5, -8/16, -0.1, -0.5+4/16, 0, 0.1}, wall_side = {-0.5, -8/16, -0.1, -0.5+4/16, 0, 0.1},
}, },
groups = {choppy=2, dig_immediate=3, attached_node=1}, groups = {choppy=2, dig_immediate=3, attached_node=1},
legacy_wallmounted = true,
sounds = default.node_sound_defaults(),
})
minetest.register_node(
"default:torch_weak",
{
description = "Weak Torch",
drawtype = "nodebox",
tiles ={
{
name = "default_torch_3d_ends.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.0,
},
},
{
name = "default_torch_3d_ends.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.0,
},
},
{
name = "default_torch_3d.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.0,
},
},
},
inventory_image = "default_torch.png",
wield_image = "default_torch.png",
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
is_ground_content = false,
walkable = false,
light_source = default.LIGHT_MAX-4,
node_box = {
type = "wallmounted",
wall_top = {-2/16, 0, -2/16, 2/16, 0.5, 2/16},
wall_bottom = {-2/16, -0.5, -2/16, 2/16, 0, 2/16},
wall_side = {-0.5, -8/16, -0.1, -0.5+4/16, 0, 0.1},
},
groups = {choppy=2, dig_immediate=3, attached_node=1},
legacy_wallmounted = true,
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),
}) })
@ -833,7 +831,6 @@ minetest.register_node(
wall_side = {-0.5, -0.5+(4/16), -0.5+(1/16), -0.5+(1/16), 0.5-(4/16), 0.5-(1/16)}, wall_side = {-0.5, -0.5+(4/16), -0.5+(1/16), -0.5+(1/16), 0.5-(4/16), 0.5-(1/16)},
}, },
groups = {choppy=2,dig_immediate=2,attached_node=1}, groups = {choppy=2,dig_immediate=2,attached_node=1},
legacy_wallmounted = true,
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),
on_construct = function(pos) on_construct = function(pos)
--local n = minetest.get_node(pos) --local n = minetest.get_node(pos)
@ -939,7 +936,6 @@ minetest.register_node(
"default_chest_sides.png", "default_chest_sides.png", "default_chest_front.png"}, "default_chest_sides.png", "default_chest_sides.png", "default_chest_front.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true,
is_ground_content = false, is_ground_content = false,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_construct = function(pos) on_construct = function(pos)

View File

@ -111,6 +111,9 @@ end
local function entity_physics(pos, radius) local function entity_physics(pos, radius)
-- Make the damage radius larger than the destruction radius -- Make the damage radius larger than the destruction radius
radius = radius * 2 radius = radius * 2
local no_water = (minetest.find_node_near(pos, 2, {"default:water_source"}) == nil)
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:getpos()
@ -122,8 +125,10 @@ local function entity_physics(pos, radius)
obj_vel, radius * 10)) obj_vel, radius * 10))
end end
local damage = (4 / dist) * radius if no_water then
obj:set_hp(obj:get_hp() - damage) local damage = (4 / dist) * radius
obj:set_hp(obj:get_hp() - damage)
end
end end
end end
@ -151,7 +156,7 @@ local function burn(pos)
if name == "tnt:tnt" then if name == "tnt:tnt" then
minetest.sound_play("tnt_ignite", {pos=pos}) minetest.sound_play("tnt_ignite", {pos=pos})
minetest.set_node(pos, {name="tnt:tnt_burning"}) minetest.set_node(pos, {name="tnt:tnt_burning"})
minetest.get_node_timer(pos):start(1) minetest.get_node_timer(pos):start(2)
end end
end end
@ -195,8 +200,7 @@ end
local function boom(pos) local function boom(pos)
minetest.sound_play("tnt_explode", {pos=pos, gain=1.5, max_hear_distance=2*64}) minetest.sound_play("tnt_explode", {pos=pos, gain=1.5, max_hear_distance=2*64})
minetest.set_node(pos, {name="air"}) minetest.remove_node(pos)
minetest.get_node_timer(pos):start(0.5)
local drops = explode(pos, radius) local drops = explode(pos, radius)
entity_physics(pos, radius) entity_physics(pos, radius)
@ -215,16 +219,15 @@ minetest.register_node(
on_punch = function(pos, node, puncher) on_punch = function(pos, node, puncher)
local itemname = puncher:get_wielded_item():get_name() local itemname = puncher:get_wielded_item():get_name()
if itemname == "default:torch" or itemname == "default:torch_weak" or itemname == "default:flint_and_steel" then if itemname == "default:torch"
minetest.sound_play("tnt_ignite", {pos=pos}) or itemname == "default:torch_weak"
minetest.set_node(pos, {name="tnt:tnt_burning"}) or itemname == "default:flint_and_steel" then
minetest.get_node_timer(pos):start(4) burn(pos)
end end
end, end,
on_blast = function(pos, intensity) on_blast = function(pos, intensity)
burn(pos) burn(pos)
end, end,
mesecons = {effector = {action_on = boom}},
}) })
minetest.register_node( minetest.register_node(
@ -254,7 +257,7 @@ minetest.register_craft(
output = "tnt:tnt", output = "tnt:tnt",
recipe = { recipe = {
{"", "group:planks", ""}, {"", "group:planks", ""},
{"group:planks", "default:torch", "group:planks"}, {"group:planks", "default:flint_and_steel", "group:planks"},
{"", "group:planks", ""} {"", "group:planks", ""}
} }
}) })