[mineclone5] Put ITEMS/mcl_core/nodes_trees.lua from master
commit
96694692d8
|
@ -1029,10 +1029,10 @@ local node_ok = function(pos, fallback)
|
||||||
return minetest.registered_nodes[fallback]
|
return minetest.registered_nodes[fallback]
|
||||||
end
|
end
|
||||||
|
|
||||||
local function get_light(pos)
|
local function get_light(pos, tod)
|
||||||
if math.abs(pos.x) < 31000 and math.abs(pos.y) < 31000 and math.abs(pos.z) < 31000 then
|
if math.abs(pos.x) < 31000 and math.abs(pos.y) < 31000 and math.abs(pos.z) < 31000 then
|
||||||
local lightfunc = minetest.get_natural_light or minetest.get_node_light
|
local lightfunc = minetest.get_natural_light or minetest.get_node_light
|
||||||
return lightfunc(pos)
|
return lightfunc(pos, tod)
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
end
|
end
|
||||||
|
|
|
@ -46,56 +46,6 @@ minetest.register_craft({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Stripped Bark
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_core:stripped_oak_bark 3",
|
|
||||||
recipe = {
|
|
||||||
{ "mcl_core:stripped_oak", "mcl_core:stripped_oak" },
|
|
||||||
{ "mcl_core:stripped_oak", "mcl_core:stripped_oak" },
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_core:stripped_acacia_bark 3",
|
|
||||||
recipe = {
|
|
||||||
{ "mcl_core:stripped_acacia", "mcl_core:stripped_acacia" },
|
|
||||||
{ "mcl_core:stripped_acacia", "mcl_core:stripped_acacia" },
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_core:stripped_dark_oak_bark 3",
|
|
||||||
recipe = {
|
|
||||||
{ "mcl_core:stripped_dark_oak", "mcl_core:stripped_dark_oak" },
|
|
||||||
{ "mcl_core:stripped_dark_oak", "mcl_core:stripped_dark_oak" },
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_core:stripped_birch_bark 3",
|
|
||||||
recipe = {
|
|
||||||
{ "mcl_core:stripped_birch", "mcl_core:stripped_birch" },
|
|
||||||
{ "mcl_core:stripped_birch", "mcl_core:stripped_birch" },
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_core:stripped_spruce_bark 3",
|
|
||||||
recipe = {
|
|
||||||
{ "mcl_core:stripped_spruce", "mcl_core:stripped_spruce" },
|
|
||||||
{ "mcl_core:stripped_spruce", "mcl_core:stripped_spruce" },
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_core:stripped_jungle_bark 3",
|
|
||||||
recipe = {
|
|
||||||
{ "mcl_core:stripped_jungle", "mcl_core:stripped_jungle" },
|
|
||||||
{ "mcl_core:stripped_jungle", "mcl_core:stripped_jungle" },
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = 'shapeless',
|
type = 'shapeless',
|
||||||
output = 'mcl_core:mossycobble',
|
output = 'mcl_core:mossycobble',
|
||||||
|
|
|
@ -48,165 +48,46 @@ local register_tree_trunk = function(subname, description_trunk, description_bar
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Register stripped trunk
|
-- Register stripped trunk and stripped wood
|
||||||
minetest.register_node("mcl_core:stripped_oak", {
|
local register_stripped_trunk = function(subname, description_stripped_trunk, description_stripped_bark, longdesc, tile_stripped_inner, tile_stripped_bark)
|
||||||
description = "Stripped Oak Log",
|
minetest.register_node("mcl_core:"..subname, {
|
||||||
_doc_items_longdesc = "Stripped Oak Log is a log that has been stripped of it's bark.",
|
description = description_stripped_trunk,
|
||||||
tiles = {"mcl_core_stripped_oak_top.png", "mcl_core_stripped_oak_top.png", "mcl_core_stripped_oak_side.png"},
|
_doc_items_longdesc = longdesc,
|
||||||
is_ground_content = false,
|
_doc_items_hidden = false,
|
||||||
|
tiles = {tile_stripped_inner, tile_stripped_inner, tile_stripped_bark},
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
on_place = mcl_util.rotate_axis,
|
on_place = mcl_util.rotate_axis,
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5, tree=1},
|
stack_max = 64,
|
||||||
|
groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||||
_mcl_blast_resistance = 10,
|
on_rotate = on_rotate,
|
||||||
|
_mcl_blast_resistance = 2,
|
||||||
_mcl_hardness = 2,
|
_mcl_hardness = 2,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("mcl_core:stripped_acacia", {
|
minetest.register_node("mcl_core:"..subname.."_bark", {
|
||||||
description = "Stripped Acacia Log",
|
description = description_stripped_bark,
|
||||||
_doc_items_longdesc = "Stripped Acacia Log is a log that has been stripped of it's bark.",
|
_doc_items_longdesc = S("This is a decorative block."),
|
||||||
tiles = {"mcl_core_stripped_acacia_top.png", "mcl_core_stripped_acacia_top.png", "mcl_core_stripped_acacia_side.png"},
|
tiles = {tile_stripped_bark},
|
||||||
is_ground_content = false,
|
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
on_place = mcl_util.rotate_axis,
|
on_place = mcl_util.rotate_axis,
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5, tree=1},
|
stack_max = 64,
|
||||||
|
groups = {handy=1,axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("mcl_core:stripped_dark_oak", {
|
|
||||||
description = "Stripped Dark Oak Log",
|
|
||||||
_doc_items_longdesc = "Stripped Dark Oak Log is a log that has been stripped of it's bark.",
|
|
||||||
tiles = {"mcl_core_stripped_dark_oak_top.png", "mcl_core_stripped_dark_oak_top.png", "mcl_core_stripped_dark_oak_side.png"},
|
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
paramtype2 = "facedir",
|
on_rotate = on_rotate,
|
||||||
on_place = mcl_util.rotate_axis,
|
_mcl_blast_resistance = 2,
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5, tree=1},
|
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
_mcl_hardness = 2,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("mcl_core:stripped_birch", {
|
|
||||||
description = "Stripped Birch Log",
|
|
||||||
_doc_items_longdesc = "Stripped Birch Log is a log that has been stripped of it's bark.",
|
|
||||||
tiles = {"mcl_core_stripped_birch_top.png", "mcl_core_stripped_birch_top.png", "mcl_core_stripped_birch_side.png"},
|
|
||||||
is_ground_content = false,
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
on_place = mcl_util.rotate_axis,
|
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5, tree=1},
|
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("mcl_core:stripped_spruce", {
|
|
||||||
description = "Stripped Spruce Log",
|
|
||||||
_doc_items_longdesc = "Stripped Spruce Log is a log that has been stripped of it's bark.",
|
|
||||||
tiles = {"mcl_core_stripped_spruce_top.png", "mcl_core_stripped_spruce_top.png", "mcl_core_stripped_spruce_side.png"},
|
|
||||||
is_ground_content = false,
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
on_place = mcl_util.rotate_axis,
|
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5, tree=1},
|
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("mcl_core:stripped_jungle", {
|
|
||||||
description = "Stripped Jungle Log",
|
|
||||||
_doc_items_longdesc = "Stripped Jungle Log is a log that has been stripped of it's bark.",
|
|
||||||
tiles = {"mcl_core_stripped_jungle_top.png", "mcl_core_stripped_jungle_top.png", "mcl_core_stripped_jungle_side.png"},
|
|
||||||
is_ground_content = false,
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
on_place = mcl_util.rotate_axis,
|
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5, tree=1},
|
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
-- Register stripped bark
|
|
||||||
minetest.register_node("mcl_core:stripped_oak_bark", {
|
|
||||||
description = "Stripped Oak Bark",
|
|
||||||
_doc_items_longdesc = "Stripped Oak Bark is a bark that has been stripped.",
|
|
||||||
tiles = {"mcl_core_stripped_oak_side.png"},
|
|
||||||
is_ground_content = false,
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
on_place = mcl_util.rotate_axis,
|
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("mcl_core:stripped_acacia_bark", {
|
|
||||||
description = "Stripped Acacia Bark",
|
|
||||||
_doc_items_longdesc = "Stripped Acacia Bark is a bark that has been stripped.",
|
|
||||||
tiles = {"mcl_core_stripped_acacia_side.png"},
|
|
||||||
is_ground_content = false,
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
on_place = mcl_util.rotate_axis,
|
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("mcl_core:stripped_dark_oak_bark", {
|
|
||||||
description = "Stripped Dark Oak Bark",
|
|
||||||
_doc_items_longdesc = "Stripped Dark Oak Bark is a bark that has been stripped.",
|
|
||||||
tiles = {"mcl_core_stripped_dark_oak_side.png"},
|
|
||||||
is_ground_content = false,
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
on_place = mcl_util.rotate_axis,
|
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("mcl_core:stripped_birch_bark", {
|
|
||||||
description = "Stripped Birch Bark",
|
|
||||||
_doc_items_longdesc = "Stripped Birch Bark is a bark that has been stripped.",
|
|
||||||
tiles = {"mcl_core_stripped_birch_side.png"},
|
|
||||||
is_ground_content = false,
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
on_place = mcl_util.rotate_axis,
|
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("mcl_core:stripped_spruce_bark", {
|
|
||||||
description = "Stripped Spruce Bark",
|
|
||||||
_doc_items_longdesc = "Stripped Spruce Bark is a bark that has been stripped.",
|
|
||||||
tiles = {"mcl_core_stripped_spruce_side.png"},
|
|
||||||
is_ground_content = false,
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
on_place = mcl_util.rotate_axis,
|
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("mcl_core:stripped_jungle_bark", {
|
|
||||||
description = "Stripped Jungle Bark",
|
|
||||||
_doc_items_longdesc = "Stripped Jungles Bark is a bark that has been stripped.",
|
|
||||||
tiles = {"mcl_core_stripped_jungle_side.png"},
|
|
||||||
is_ground_content = false,
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
on_place = mcl_util.rotate_axis,
|
|
||||||
groups = {handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
|
||||||
_mcl_blast_resistance = 10,
|
|
||||||
_mcl_hardness = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_core:"..subname.."_bark 3",
|
||||||
|
recipe = {
|
||||||
|
{ "mcl_core:"..subname, "mcl_core:"..subname },
|
||||||
|
{ "mcl_core:"..subname, "mcl_core:"..subname },
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
local register_wooden_planks = function(subname, description, tiles)
|
local register_wooden_planks = function(subname, description, tiles)
|
||||||
minetest.register_node("mcl_core:"..subname, {
|
minetest.register_node("mcl_core:"..subname, {
|
||||||
|
@ -273,7 +154,7 @@ local register_leaves = function(subname, description, longdesc, tiles, sapling,
|
||||||
hoey=1,
|
hoey=1,
|
||||||
shearsy=1,
|
shearsy=1,
|
||||||
swordy=1,
|
swordy=1,
|
||||||
leafdecay=4,
|
leafdecay=leafdecay_distance,
|
||||||
flammable=2,
|
flammable=2,
|
||||||
leaves=1,
|
leaves=1,
|
||||||
deco_block=1,
|
deco_block=1,
|
||||||
|
@ -340,6 +221,13 @@ register_tree_trunk("sprucetree", S("Spruce Wood"), S("Spruce Bark"), S("The tru
|
||||||
register_tree_trunk("birchtree", S("Birch Wood"), S("Birch Bark"), S("The trunk of a birch tree."), "mcl_core_log_birch_top.png", "mcl_core_log_birch.png")
|
register_tree_trunk("birchtree", S("Birch Wood"), S("Birch Bark"), S("The trunk of a birch tree."), "mcl_core_log_birch_top.png", "mcl_core_log_birch.png")
|
||||||
register_tree_trunk("jungletree", S("Jungle Wood"), S("Jungle Bark"), S("The trunk of a jungle tree."), "default_jungletree_top.png", "default_jungletree.png")
|
register_tree_trunk("jungletree", S("Jungle Wood"), S("Jungle Bark"), S("The trunk of a jungle tree."), "default_jungletree_top.png", "default_jungletree.png")
|
||||||
|
|
||||||
|
register_stripped_trunk("stripped_oak", S("Stripped Oak Log"), S("Stripped Oak Wood"), S("The stripped trunk of an oak tree."), "mcl_core_stripped_oak_top.png", "mcl_core_stripped_oak_side.png")
|
||||||
|
register_stripped_trunk("stripped_acacia", S("Stripped Acacia Log"), S("Stripped Acacia Wood"), S("The stripped trunk of an acacia tree."), "mcl_core_stripped_acacia_top.png", "mcl_core_stripped_acacia_side.png")
|
||||||
|
register_stripped_trunk("stripped_dark_oak", S("Stripped Dark Oak Log"), S("Stripped Dark Oak Wood"), S("The stripped trunk of an dark oak tree."), "mcl_core_stripped_dark_oak_top.png", "mcl_core_stripped_dark_oak_side.png")
|
||||||
|
register_stripped_trunk("stripped_birch", S("Stripped Birch Log"), S("Stripped Birch Wood"), S("The stripped trunk of an birch tree."), "mcl_core_stripped_birch_top.png", "mcl_core_stripped_birch_side.png")
|
||||||
|
register_stripped_trunk("stripped_spruce", S("Stripped Spruce Log"), S("Stripped Spruce Wood"), S("The stripped trunk of an spruce tree."), "mcl_core_stripped_spruce_top.png", "mcl_core_stripped_spruce_side.png")
|
||||||
|
register_stripped_trunk("stripped_jungle", S("Stripped Jungle Log"), S("Stripped Jungle Wood"), S("The stripped trunk of an jungle tree."),"mcl_core_stripped_jungle_top.png", "mcl_core_stripped_jungle_side.png")
|
||||||
|
|
||||||
register_wooden_planks("wood", S("Oak Wood Planks"), {"default_wood.png"})
|
register_wooden_planks("wood", S("Oak Wood Planks"), {"default_wood.png"})
|
||||||
register_wooden_planks("darkwood", S("Dark Oak Wood Planks"), {"mcl_core_planks_big_oak.png"})
|
register_wooden_planks("darkwood", S("Dark Oak Wood Planks"), {"mcl_core_planks_big_oak.png"})
|
||||||
register_wooden_planks("junglewood", S("Jungle Wood Planks"), {"default_junglewood.png"})
|
register_wooden_planks("junglewood", S("Jungle Wood Planks"), {"default_junglewood.png"})
|
||||||
|
|
|
@ -770,12 +770,17 @@ mcl_enchanting.enchantments.unbreaking = {
|
||||||
description = S("Increases item durability."),
|
description = S("Increases item durability."),
|
||||||
curse = false,
|
curse = false,
|
||||||
on_enchant = function(itemstack, level)
|
on_enchant = function(itemstack, level)
|
||||||
local tool_capabilities = itemstack:get_tool_capabilities()
|
local name = itemstack:get_name()
|
||||||
for group, capability in pairs(tool_capabilities.groupcaps) do
|
if not minetest.registered_tools[name].tool_capabilities then
|
||||||
capability.uses = capability.uses * (1 + level)
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local tool_capabilities = itemstack:get_tool_capabilities()
|
||||||
tool_capabilities.punch_attack_uses = tool_capabilities.punch_attack_uses * (1 + level)
|
tool_capabilities.punch_attack_uses = tool_capabilities.punch_attack_uses * (1 + level)
|
||||||
itemstack:get_meta():set_tool_capabilities(tool_capabilities)
|
itemstack:get_meta():set_tool_capabilities(tool_capabilities)
|
||||||
|
|
||||||
|
-- Unbreaking for groupcaps is handled in this function.
|
||||||
|
mcl_enchanting.update_groupcaps(itemstack)
|
||||||
end,
|
end,
|
||||||
requires_tool = true,
|
requires_tool = true,
|
||||||
treasure = false,
|
treasure = false,
|
||||||
|
|
|
@ -12,11 +12,12 @@ end
|
||||||
function mcl_enchanting.unload_enchantments(itemstack)
|
function mcl_enchanting.unload_enchantments(itemstack)
|
||||||
local itemdef = itemstack:get_definition()
|
local itemdef = itemstack:get_definition()
|
||||||
if itemdef.tool_capabilities then
|
if itemdef.tool_capabilities then
|
||||||
itemstack:get_meta():set_tool_capabilities(itemdef.tool_capabilities)
|
itemstack:get_meta():set_tool_capabilities(nil)
|
||||||
end
|
end
|
||||||
local meta = itemstack:get_meta()
|
local meta = itemstack:get_meta()
|
||||||
if meta:get_string("name") == "" then
|
if meta:get_string("name") == "" then
|
||||||
meta:set_string("description", "")
|
meta:set_string("description", "")
|
||||||
|
meta:set_string("groupcaps_hash", "")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -45,18 +45,30 @@ end
|
||||||
-- To make it more efficient it will first check a hash value to determine if
|
-- To make it more efficient it will first check a hash value to determine if
|
||||||
-- the tool needs to be updated.
|
-- the tool needs to be updated.
|
||||||
function mcl_enchanting.update_groupcaps(itemstack)
|
function mcl_enchanting.update_groupcaps(itemstack)
|
||||||
if not itemstack:get_meta():get("tool_capabilities") then
|
local name = itemstack:get_name()
|
||||||
|
if not minetest.registered_tools[name].tool_capabilities then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local name = itemstack:get_name()
|
local efficiency = mcl_enchanting.get_enchantment(itemstack, "efficiency")
|
||||||
local level = mcl_enchanting.get_enchantment(itemstack, "efficiency")
|
local unbreaking = mcl_enchanting.get_enchantment(itemstack, "unbreaking")
|
||||||
local groupcaps = get_efficiency_groupcaps(name, level)
|
if unbreaking == 0 and efficiency == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local groupcaps = get_efficiency_groupcaps(name, efficiency)
|
||||||
local hash = itemstack:get_meta():get_string("groupcaps_hash")
|
local hash = itemstack:get_meta():get_string("groupcaps_hash")
|
||||||
|
|
||||||
if not hash or hash ~= groupcaps.hash then
|
if not hash or hash ~= groupcaps.hash then
|
||||||
local tool_capabilities = itemstack:get_tool_capabilities()
|
local tool_capabilities = itemstack:get_tool_capabilities()
|
||||||
tool_capabilities.groupcaps = groupcaps.values
|
tool_capabilities.groupcaps = groupcaps.values
|
||||||
|
|
||||||
|
-- Increase the number of uses depending on the unbreaking level
|
||||||
|
-- of the tool.
|
||||||
|
for group, capability in pairs(tool_capabilities.groupcaps) do
|
||||||
|
capability.uses = capability.uses * (1 + unbreaking)
|
||||||
|
end
|
||||||
|
|
||||||
itemstack:get_meta():set_tool_capabilities(tool_capabilities)
|
itemstack:get_meta():set_tool_capabilities(tool_capabilities)
|
||||||
itemstack:get_meta():set_string("groupcaps_hash", groupcaps.hash)
|
itemstack:get_meta():set_string("groupcaps_hash", groupcaps.hash)
|
||||||
end
|
end
|
||||||
|
|
|
@ -360,55 +360,39 @@ local make_stripped_trunk_add_wear = function(itemstack, placer)
|
||||||
itemstack:add_wear(wear)
|
itemstack:add_wear(wear)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local stripped_table = {
|
||||||
|
{"mcl_core:tree", "mcl_core:stripped_oak"},
|
||||||
|
{"mcl_core:darktree", "mcl_core:stripped_dark_oak"},
|
||||||
|
{"mcl_core:acaciatree", "mcl_core:stripped_acacia"},
|
||||||
|
{"mcl_core:birchtree", "mcl_core:stripped_birch"},
|
||||||
|
{"mcl_core:sprucetree", "mcl_core:stripped_spruce"},
|
||||||
|
{"mcl_core:jungletree", "mcl_core:stripped_jungle"},
|
||||||
|
{"mcl_core:tree_bark", "mcl_core:stripped_oak_bark"},
|
||||||
|
{"mcl_core:darktree_bark", "mcl_core:stripped_dark_oak_bark"},
|
||||||
|
{"mcl_core:acaciatree_bark", "mcl_core:stripped_acacia_bark"},
|
||||||
|
{"mcl_core:birchtree_bark", "mcl_core:stripped_birch_bark"},
|
||||||
|
{"mcl_core:sprucetree_bark", "mcl_core:stripped_spruce_bark"},
|
||||||
|
{"mcl_core:jungletree_bark", "mcl_core:stripped_jungle_bark"},
|
||||||
|
}
|
||||||
|
|
||||||
local make_stripped_trunk = function(itemstack, placer, pointed_thing)
|
local make_stripped_trunk = function(itemstack, placer, pointed_thing)
|
||||||
if pointed_thing.type == "node" then
|
if pointed_thing.type ~= "node" then return end
|
||||||
local pos = minetest.get_pointed_thing_position(pointed_thing)
|
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pointed_thing.under)
|
||||||
local node_name = node.name
|
local noddef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name]
|
||||||
if placer and not placer:get_player_control().sneak then
|
|
||||||
if minetest.registered_nodes[node_name] and minetest.registered_nodes[node_name].on_rightclick then
|
if not placer:get_player_control().sneak and noddef.on_rightclick then
|
||||||
return minetest.registered_nodes[node_name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack
|
return minetest.item_place(itemstack, placer, pointed_thing)
|
||||||
end
|
|
||||||
end
|
end
|
||||||
if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
|
if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
|
||||||
minetest.record_protection_violation(pointed_thing.under, placer:get_player_name())
|
minetest.record_protection_violation(pointed_thing.under, placer:get_player_name())
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
if node_name == "mcl_core:tree" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_oak"})
|
for _, st in pairs(stripped_table) do
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
if noddef.name == st[1] then
|
||||||
elseif node_name == "mcl_core:darktree" then
|
minetest.swap_node(pointed_thing.under, {name=st[2], param2=node.param2})
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_dark_oak"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
|
||||||
elseif node_name == "mcl_core:acaciatree" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_acacia"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
|
||||||
elseif node_name == "mcl_core:birchtree" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_birch"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
|
||||||
elseif node_name == "mcl_core:sprucetree" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_spruce"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
|
||||||
elseif node_name == "mcl_core:jungletree" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_jungle"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
|
||||||
elseif node_name == "mcl_core:tree_bark" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_oak_bark"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
|
||||||
elseif node_name == "mcl_core:darktree_bark" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_dark_oak_bark"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
|
||||||
elseif node_name == "mcl_core:acaciatree_bark" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_acacia_bark"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
|
||||||
elseif node_name == "mcl_core:birchtree_bark" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_birch_bark"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
|
||||||
elseif node_name == "mcl_core:sprucetree_bark" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_spruce_bark"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
|
||||||
elseif node_name == "mcl_core:jungletree_bark" then
|
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_jungle_bark"})
|
|
||||||
make_stripped_trunk_add_wear(itemstack, placer)
|
make_stripped_trunk_add_wear(itemstack, placer)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -150,13 +150,6 @@ minetest.register_globalstep(function(dtime)
|
||||||
|
|
||||||
for _,player in pairs(get_connected_players()) do
|
for _,player in pairs(get_connected_players()) do
|
||||||
|
|
||||||
local c_x, c_y = unpack(player_collision(player))
|
|
||||||
|
|
||||||
if player:get_velocity().x + player:get_velocity().y < .5 and c_x + c_y > 0 then
|
|
||||||
--minetest.chat_send_player(player:get_player_name(), "pushed at " .. c_x + c_y .. " parsecs.")
|
|
||||||
player:add_velocity({x=c_x, y=0, z=c_y})
|
|
||||||
end
|
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
_ _ _
|
_ _ _
|
||||||
__ _ _ __ (_)_ __ ___ __ _| |_(_) ___ _ __ ___
|
__ _ _ __ (_)_ __ ___ __ _| |_(_) ___ _ __ ___
|
||||||
|
@ -173,6 +166,14 @@ minetest.register_globalstep(function(dtime)
|
||||||
local wielded = player:get_wielded_item()
|
local wielded = player:get_wielded_item()
|
||||||
local player_velocity = player:get_velocity() or player:get_player_velocity()
|
local player_velocity = player:get_velocity() or player:get_player_velocity()
|
||||||
|
|
||||||
|
local c_x, c_y = unpack(player_collision(player))
|
||||||
|
|
||||||
|
if player_velocity.x + player_velocity.y < .5 and c_x + c_y > 0 then
|
||||||
|
local add_velocity = player.add_player_velocity or player.add_velocity
|
||||||
|
add_velocity(player, {x = c_x, y = 0, z = c_y})
|
||||||
|
player_velocity = player:get_velocity() or player:get_player_velocity()
|
||||||
|
end
|
||||||
|
|
||||||
-- control head bone
|
-- control head bone
|
||||||
local pitch = - degrees(player:get_look_vertical())
|
local pitch = - degrees(player:get_look_vertical())
|
||||||
local yaw = degrees(player:get_look_horizontal())
|
local yaw = degrees(player:get_look_horizontal())
|
||||||
|
|
Loading…
Reference in New Issue