diff --git a/aliases.lua b/aliases.lua index ca3e832..dd94ba7 100644 --- a/aliases.lua +++ b/aliases.lua @@ -74,23 +74,43 @@ minetest.register_alias("fake_fire", "maptools:fake_fire") minetest.register_alias("ffire", "maptools:fake_fire") minetest.register_alias("igniter", "maptools:igniter") -minetest.register_alias("stone_u", "maptools:stone") -minetest.register_alias("tree_u", "maptools:tree") -minetest.register_alias("cobble_u", "maptools:cobble") -minetest.register_alias("wood_u", "maptools:wood") -minetest.register_alias("sand_u", "maptools:sand") -minetest.register_alias("gravel_u", "maptools:gravel") -minetest.register_alias("brick_u", "maptools:brick") -minetest.register_alias("dirt_u", "maptools:dirt") -minetest.register_alias("glass_u", "maptools:glass") -minetest.register_alias("sandstone_u", "maptools:sandstone") -minetest.register_alias("desert_stone_u", "maptools:desert_stone") -minetest.register_alias("desertstone_u", "maptools:desert_stone") -minetest.register_alias("desert_sand_u", "maptools:desert_sand") -minetest.register_alias("desertsand_u", "maptools:desert_sand") -minetest.register_alias("leaves_u", "maptools:leaves") -minetest.register_alias("grass_u", "maptools:grass") +minetest.register_alias("maptools:stone", "default:stone_u") +minetest.register_alias("maptools:tree", "default:tree_u") +minetest.register_alias("maptools:cobble", "default:cobble_u") +minetest.register_alias("maptools:wood", "default:wood_u") +minetest.register_alias("maptools:sand", "default:sand_u") +minetest.register_alias("maptools:gravel", "default:gravel_u") +minetest.register_alias("maptools:brick", "default:brick_u") +minetest.register_alias("maptools:dirt", "default:dirt_u") +minetest.register_alias("maptools:glass", "default:glass_u") +minetest.register_alias("maptools:sandstone", "default:sandstone_u") +minetest.register_alias("maptools:desert_stone", "default:desert_stone_u") +minetest.register_alias("maptools:desertstone", "default:desert_stone_u") +minetest.register_alias("maptools:desert_sand", "default:desert_sand_u") +minetest.register_alias("maptools:desertsand", "default:desert_sand_u") +minetest.register_alias("maptools:leaves", "default:leaves_u") +minetest.register_alias("maptools:grass", "default:grass_u") +minetest.register_alias("maptools:mossycobble", "default:mossycobble_u") + +minetest.register_alias("stone_u", "default:stone_u") +minetest.register_alias("tree_u", "default:tree_u") +minetest.register_alias("cobble_u", "default:cobble_u") +minetest.register_alias("wood_u", "default:wood_u") +minetest.register_alias("sand_u", "default:sand_u") +minetest.register_alias("gravel_u", "default:gravel_u") +minetest.register_alias("brick_u", "default:brick_u") +minetest.register_alias("dirt_u", "default:dirt_u") +minetest.register_alias("glass_u", "default:glass_u") +minetest.register_alias("sandstone_u", "default:sandstone_u") +minetest.register_alias("desert_stone_u", "default:desert_stone_u") +minetest.register_alias("desertstone_u", "default:desert_stone_u") +minetest.register_alias("desert_sand_u", "default:desert_sand_u") +minetest.register_alias("desertsand_u", "default:desert_sand_u") +minetest.register_alias("leaves_u", "default:leaves_u") +minetest.register_alias("grass_u", "default:grass_u") minetest.register_alias("fullgrass", "maptools:fullgrass") minetest.register_alias("fullgrass_u", "maptools:fullgrass") -minetest.register_alias("mossycobble_u", "maptools:mossycobble") -minetest.register_alias("mossy_cobble_u", "maptools:mossycobble") +minetest.register_alias("mossycobble_u", "default:mossycobble_u") +minetest.register_alias("mossy_cobble_u", "default:mossycobble_u") + + diff --git a/default_nodes.lua b/default_nodes.lua index 8a59a68..298c4d4 100644 --- a/default_nodes.lua +++ b/default_nodes.lua @@ -7,270 +7,69 @@ Licensed under the zlib license. See LICENSE.md for more information. local S = maptools.S +local function shallowCopy(original) + local copy = {} + for key, value in pairs(original) do + copy[key] = value + end + return copy +end + maptools.creative = maptools.config["hide_from_creative_inventory"] -minetest.register_node("maptools:stone", { - description = S("Unbreakable Stone"), - range = 12, - stack_max = 10000, - tiles = {"default_stone.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) +function maptools.register_unbreakable_node(name) + local src_def = minetest.registered_nodes[name] + if not(src_def) then + minetest.log("[maptools] Can't register unbreakable node "..name.."_u : source not is nil!") + return false + end + local dst_def = shallowCopy(src_def) + dst_def.description = "Unbreakable "..src_def.description + dst_def.range = 12 + dst_def.stack_max = 10000 + dst_def.drop = "" + dst_def.groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative} + dst_def.on_drop = maptools.drop_msg + minetest.register_node(":"..name.."_u", dst_def) +end -minetest.register_node("maptools:stonebrick", { - description = S("Unbreakable Stone Brick"), - range = 12, - stack_max = 10000, - tiles = {"default_stone_brick.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) +maptools.register_unbreakable_node("default:stone") +maptools.register_unbreakable_node("default:stonebrick") +maptools.register_unbreakable_node("default:tree") +maptools.register_unbreakable_node("default:jungletree") +maptools.register_unbreakable_node("default:cactus") +maptools.register_unbreakable_node("default:papyrus") +maptools.register_unbreakable_node("default:dirt") +maptools.register_unbreakable_node("default:wood") +maptools.register_unbreakable_node("default:junglewood") +maptools.register_unbreakable_node("default:glass") +maptools.register_unbreakable_node("default:leaves") +maptools.register_unbreakable_node("default:sand") +maptools.register_unbreakable_node("default:clay") +maptools.register_unbreakable_node("default:desert_sand") +maptools.register_unbreakable_node("default:sandstone") +maptools.register_unbreakable_node("default:sandstone_brick") +maptools.register_unbreakable_node("default:desert_stone") +maptools.register_unbreakable_node("default:desert_cobble") +maptools.register_unbreakable_node("default:desert_stonebrick") +maptools.register_unbreakable_node("default:grass") +maptools.register_unbreakable_node("default:cobble") +maptools.register_unbreakable_node("default:mossycobble") +maptools.register_unbreakable_node("default:brick") +maptools.register_unbreakable_node("default:coalblock") +maptools.register_unbreakable_node("default:steelblock") +maptools.register_unbreakable_node("default:goldblock") +maptools.register_unbreakable_node("default:copperblock") +maptools.register_unbreakable_node("default:bronzeblock") +maptools.register_unbreakable_node("default:diamondblock") -minetest.register_node("maptools:tree", { - description = S("Unbreakable Tree"), - range = 12, - stack_max = 10000, - tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_wood_defaults(), - on_place = minetest.rotate_node, - on_drop = maptools.drop_msg -}) -minetest.register_node("maptools:jungletree", { - description = S("Unbreakable Jungle Tree"), - range = 12, - stack_max = 10000, - tiles = { - "default_jungletree_top.png", - "default_jungletree_top.png", - "default_jungletree.png", - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_wood_defaults(), - on_place = minetest.rotate_node, - on_drop = maptools.drop_msg -}) +-- Farming: -minetest.register_node("maptools:cactus", { - description = S("Unbreakable Cactus"), - range = 12, - stack_max = 10000, - tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_wood_defaults(), - on_place = minetest.rotate_node, - on_drop = maptools.drop_msg -}) +maptools.register_unbreakable_node("farming:soil_wet") +maptools.register_unbreakable_node("farming:desert_sand_soil_wet") -minetest.register_node("maptools:papyrus", { - description = S("Unbreakable Papyrus"), - drawtype = "plantlike", - range = 12, - stack_max = 10000, - tiles = {"default_papyrus.png"}, - inventory_image = "default_papyrus.png", - wield_image = "default_papyrus.png", - walkable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - selection_box = { - type = "fixed", - fixed = {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375} - }, - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_leaves_defaults(), - on_drop = maptools.drop_msg -}) -minetest.register_node("maptools:dirt", { - description = S("Unbreakable Dirt"), - range = 12, - stack_max = 10000, - tiles = {"default_dirt.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_dirt_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:wood", { - description = S("Unbreakable Wooden Planks"), - range = 12, - stack_max = 10000, - tiles = {"default_wood.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_wood_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:junglewood", { - description = S("Unbreakable Junglewood Planks"), - range = 12, - stack_max = 10000, - tiles = {"default_junglewood.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_wood_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:glass", { - description = S("Unbreakable Glass"), - range = 12, - stack_max = 10000, - drawtype = "glasslike", - tiles = {"default_glass.png"}, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_glass_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:leaves", { - description = S("Unbreakable Leaves"), - range = 12, - stack_max = 10000, - drawtype = "allfaces_optional", - tiles = {"default_leaves.png"}, - paramtype = "light", - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_leaves_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:sand", { - description = S("Unbreakable Sand"), - range = 12, - stack_max = 10000, - tiles = {"default_sand.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_sand_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:gravel", { - description = S("Unbreakable Gravel"), - range = 12, - stack_max = 10000, - tiles = {"default_gravel.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_gravel_footstep", gain=0.35}, - dug = {name="default_gravel_footstep", gain=0.6}, - }), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:clay", { - description = S("Unbreakable Clay"), - range = 12, - stack_max = 10000, - tiles = {"default_clay.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_dirt_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:desert_sand", { - description = S("Unbreakable Desert Sand"), - range = 12, - stack_max = 10000, - tiles = {"default_desert_sand.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_sand_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:sandstone", { - description = S("Unbreakable Sandstone"), - range = 12, - stack_max = 10000, - tiles = {"default_sandstone.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:sandstone_brick", { - description = S("Unbreakable Sandstone Brick"), - range = 12, - stack_max = 10000, - tiles = {"default_sandstone_brick.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:desert_stone", { - description = S("Unbreakable Desert Stone"), - range = 12, - stack_max = 10000, - tiles = {"default_desert_stone.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:desert_cobble", { - description = S("Unbreakable Desert Cobble"), - range = 12, - stack_max = 10000, - tiles = {"default_desert_cobble.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:desert_stonebrick", { - description = S("Unbreakable Desert Stone Brick"), - range = 12, - stack_max = 10000, - tiles = {"default_desert_stone_brick.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:grass", { - description = S("Unbreakable Dirt with Grass"), - range = 12, - stack_max = 10000, - tiles = { - "default_grass.png", - "default_dirt.png", - "default_dirt.png^default_grass_side.png", - }, - paramtype2 = "facedir", - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain = 0.4}, - }), - on_drop = maptools.drop_msg -}) minetest.register_node("maptools:fullgrass", { description = S("Unbreakable Full Grass"), @@ -311,142 +110,3 @@ for slab_num = 1,3,1 do on_drop = maptools.drop_msg }) end - -minetest.register_node("maptools:cobble", { - description = S("Unbreakable Cobblestone"), - range = 12, - stack_max = 10000, - tiles = {"default_cobble.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:mossycobble", { - description = S("Unbreakable Mossy Cobblestone"), - range = 12, - stack_max = 10000, - tiles = {"default_mossycobble.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:brick", { - description = S("Unbreakable Brick"), - range = 12, - stack_max = 10000, - tiles = {"default_brick.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:coalblock", { - description = S("Unbreakable Coal Block"), - range = 12, - stack_max = 10000, - tiles = {"default_coal_block.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - - -minetest.register_node("maptools:steelblock", { - description = S("Unbreakable Steel Block"), - range = 12, - stack_max = 10000, - tiles = {"default_steel_block.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:goldblock", { - description = S("Unbreakable Gold Block"), - range = 12, - stack_max = 10000, - tiles = {"default_gold_block.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:copperblock", { - description = S("Unbreakable Copper Block"), - range = 12, - stack_max = 10000, - tiles = {"default_copper_block.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:bronzeblock", { - description = S("Unbreakable Bronze Block"), - range = 12, - stack_max = 10000, - tiles = {"default_bronze_block.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:diamondblock", { - description = S("Unbreakable Diamond Block"), - range = 12, - stack_max = 10000, - tiles = {"default_diamond_block.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), - on_drop = maptools.drop_msg -}) - --- Farming: - -minetest.register_node("maptools:soil_wet", { - description = "Wet Soil", - range = 12, - stack_max = 10000, - tiles = { - "default_dirt.png^farming_soil_wet.png", - "default_dirt.png^farming_soil_wet_side.png", - }, - drop = "", - groups = { - unbreakable = 1, - not_in_creative_inventory = maptools.creative, - soil = 3, - wet = 1, - grassland = 1, - }, - sounds = default.node_sound_dirt_defaults(), - on_drop = maptools.drop_msg -}) - -minetest.register_node("maptools:desert_sand_soil_wet", { - description = "Wet Desert Sand Soil", - range = 12, - stack_max = 10000, - drop = "", - tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, - groups = { - unbreakable = 1, - not_in_creative_inventory = maptools.creative, - soil = 3, - wet = 1, - desert = 1, - }, - sounds = default.node_sound_sand_defaults(), - on_drop = maptools.drop_msg -}) diff --git a/mod.conf b/mod.conf index 329484d..8fafc92 100644 --- a/mod.conf +++ b/mod.conf @@ -1,5 +1,5 @@ name = maptools description = Adds various special versions of normal blocks, tools, and other map maintainer tools. -depends = default +depends = default, farming optional_depends = moreores min_minetest_version = 5.0.0