diff --git a/mcl_rose_gold/deco_nodes.lua b/mcl_rose_gold/deco_nodes.lua new file mode 100644 index 0000000..986a6cc --- /dev/null +++ b/mcl_rose_gold/deco_nodes.lua @@ -0,0 +1,220 @@ +local modname = minetest.get_current_modname() +local modpath = minetest.get_modpath(modname) +local S = minetest.get_translator(modname) +--craftitem registers +--Rose Gold Nugget + minetest.register_craftitem("mcl_rose_gold:rose_gold_nugget", { + description = S("Rose Gold Nugget"), + _doc_items_longdesc = S("Rose Gold nuggets are very small pieces of molten rose gold; the main purpose is to create rose gold ingots."), + inventory_image = "mcl_rose_gold_rose_gold_nugget.png", + stack_max = 64, + groups = { craftitem=1 }, +}) +--Rose Gold Ingot +minetest.register_craftitem("mcl_rose_gold:rose_gold_ingot", { + description = S("Rose Gold Ingot"), + _doc_items_longdesc = S("Molten rose gold. It is used to craft armor, tools, and decorative items."), + inventory_image = "mcl_rose_gold_rose_gold_ingot.png", + stack_max = 64, + groups = { craftitem=1 }, +}) +--node registers +--Rose Gold Block +minetest.register_node("mcl_rose_gold:rose_gold_block", { + description = S("Block of Rose Gold"), + _doc_items_longdesc = S("A block of rose gold is mostly a shiny decorative block but also useful as a compact storage of rose gold ingots."), + tiles = {"mcl_rose_gold_rose_gold_block.png"}, + is_ground_content = false, + stack_max = 64, + groups = {pickaxey=4, building_block=1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 3, +}) +--Waxed Rose Gold Block +minetest.register_node("mcl_rose_gold:waxed_rose_gold_block", { + description = S("Waxed Block of Rose Gold"), + _doc_items_longdesc = S("A Waxed block of rose gold is mostly a shiny decorative block but also useful as a compact storage of rose gold ingots."), + tiles = {"mcl_rose_gold_rose_gold_block.png"}, + is_ground_content = false, + stack_max = 64, + groups = {pickaxey=4, building_block=1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 3, +}) +--Exposed Rose Gold Block +minetest.register_node("mcl_rose_gold:rose_gold_block_exposed", { + description = S("Exposed Rose Gold"), + _doc_items_longdesc = S("Exposed Rose Gold is a decorative block."), + tiles = {"mcl_rose_gold_rose_gold_block_exposed.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + _mcl_anti_oxidation_varient = "mcl_rose_gold:rose_gold_block", +}) +--Waxed Exposed Rose Gold Block +minetest.register_node("mcl_rose_gold:waxed_rose_gold_block_exposed", { + description = S("Waxed Exposed Rose Gold"), + _doc_items_longdesc = S("Waxed Exposed Rose Gold is a decorative block."), + tiles = {"mcl_rose_gold_rose_gold_block_exposed.png"}, + is_ground_content = false, + groups = {pickaxey = 2, building_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + _mcl_blast_resistance = 6, + _mcl_hardness = 5, +}) +--Rose Gold Lantern +mcl_lanterns.register_lantern("rose_gold_lantern", { + description = S("Rose Gold Lantern"), + longdesc = S("Rose gold lanterns are light sources which can be placed on the top or the bottom of most blocks."), + texture = "mcl_rose_gold_rose_gold_lantern.png", + texture_inv = "mcl_rose_gold_rose_gold_lantern_inv.png", + light_level = 10, +}) +--rose gold chain +minetest.register_node("mcl_rose_gold:rose_gold_chain", { + description = S("Rose Gold Chain"), + _doc_items_longdesc = S("Rose Gold Chains are metallic decoration blocks."), + inventory_image = "mcl_rose_gold_rose_gold_chain_inv.png", + tiles = {"mcl_rose_gold_rose_gold_chain.png"}, + drawtype = "mesh", + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = "clip", + mesh = "mcl_lanterns_chain.obj", + is_ground_content = false, + sunlight_propagates = true, + collision_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, + } + }, + groups = {pickaxey = 1, deco_block = 1}, + sounds = mcl_sounds.node_sound_metal_defaults(), + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:get_pos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y - 1 == p1.y then + param2 = 20 + elseif p0.x - 1 == p1.x then + param2 = 16 + elseif p0.x + 1 == p1.x then + param2 = 12 + elseif p0.z - 1 == p1.z then + param2 = 8 + elseif p0.z + 1 == p1.z then + param2 = 4 + end + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + mcl_lanterns.add_allowed_non_solid_nodes_ceiling("mcl_rose_gold:rose_gold_chain"), + mcl_lanterns.add_allowed_non_solid_nodes_floor("mcl_rose_gold:rose_gold_chain"), +}) +--Crafting Recipes +--rose gold nuggets +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_nugget 9", + recipe = { + {"mcl_rose_gold:rose_gold_ingot"}, + }, +}) +--rose gold ingot +minetest.register_craft({ + type = "shapeless", + output = "mcl_rose_gold:rose_gold_ingot", + recipe = { + "mcl_copper:copper_ingot", "mcl_core:gold_ingot", + "mcl_core:gold_ingot", "mcl_nether:quartz", + }, +}) +--rose gold ingot (block uncrafting) +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_ingot 4", + recipe = { + { "mcl_rose_gold:rose_gold_block" }, + }, +}) + +--rose gold ingot (9 nuggets) +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_ingot", + recipe = { + {"mcl_rose_gold:rose_gold_nugget", "mcl_rose_gold:rose_gold_nugget", "mcl_rose_gold:rose_gold_nugget"}, + {"mcl_rose_gold:rose_gold_nugget", "mcl_rose_gold:rose_gold_nugget", "mcl_rose_gold:rose_gold_nugget"}, + {"mcl_rose_gold:rose_gold_nugget", "mcl_rose_gold:rose_gold_nugget", "mcl_rose_gold:rose_gold_nugget"}, + }, +}) +-- rose gold block +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_block", + recipe = { + { "mcl_rose_gold:rose_gold_ingot", "mcl_rose_gold:rose_gold_ingot" }, + { "mcl_rose_gold:rose_gold_ingot", "mcl_rose_gold:rose_gold_ingot" }, + }, +}) +--Waxed rose gold block +minetest.register_craft({ + type = "shapeless", + output = "mcl_rose_gold:waxed_rose_gold_block", + recipe = { + "mcl_rose_gold:rose_gold_block", "mcl_honey:honeycomb", + }, +}) + +--exposed rose gold block +minetest.register_craft({ + type = "shapeless", + output = "mcl_rose_gold:rose_gold_block_exposed", + recipe = { + "mcl_rose_gold:rose_gold_block", "mcl_buckets:bucket_water", + }, + replacements = {{"mcl_buckets:bucket_water", "mcl_buckets:bucket_empty"}}, +}) + +-- rose gold lantern +minetest.register_craft({ + output = "mcl_lanterns:rose_gold_lantern_floor", + recipe = { + {"mcl_rose_gold:rose_gold_nugget", "mcl_rose_gold:rose_gold_nugget", "mcl_rose_gold:rose_gold_nugget"}, + {"mcl_rose_gold:rose_gold_nugget", "mcl_torches:torch" , "mcl_rose_gold:rose_gold_nugget"}, + {"mcl_rose_gold:rose_gold_nugget", "mcl_rose_gold:rose_gold_nugget", "mcl_rose_gold:rose_gold_nugget"}, + }, +}) +--rose gold chain +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_chain", + recipe = { + {"mcl_rose_gold:rose_gold_nugget"}, + {"mcl_rose_gold:rose_gold_ingot"}, + {"mcl_rose_gold:rose_gold_nugget"}, + }, +}) diff --git a/mcl_rose_gold/init.lua b/mcl_rose_gold/init.lua new file mode 100644 index 0000000..963496d --- /dev/null +++ b/mcl_rose_gold/init.lua @@ -0,0 +1,5 @@ +local modname = minetest.get_current_modname() +local modpath = minetest.get_modpath(modname) +local S = minetest.get_translator(modname) +dofile(modpath.."/deco_nodes.lua") +dofile(modpath.."/tools.lua") diff --git a/mcl_rose_gold/mod.conf b/mcl_rose_gold/mod.conf new file mode 100644 index 0000000..1467b9b --- /dev/null +++ b/mcl_rose_gold/mod.conf @@ -0,0 +1,6 @@ +name = mcl_rose_gold +depends = mcl_core, mcl_sounds, mcl_armor, mcl_tools, +description = Adds rose gold tools and armor to Mineclone 2 +release = 0.1 +author = SmokeyDope +title = MineClone2 Rose Gold Stuff (no oxidation) diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_axe.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_axe.png new file mode 100644 index 0000000..5bc7b65 Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_axe.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_block.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_block.png new file mode 100644 index 0000000..51e1b49 Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_block.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_block_5holes.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_block_5holes.png new file mode 100644 index 0000000..5d6ebc1 Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_block_5holes.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_block_exposed.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_block_exposed.png new file mode 100644 index 0000000..4560e25 Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_block_exposed.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_chain.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_chain.png new file mode 100644 index 0000000..d102612 Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_chain.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_chain_inv.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_chain_inv.png new file mode 100644 index 0000000..781d54f Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_chain_inv.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_hoe.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_hoe.png new file mode 100644 index 0000000..86c2d5b Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_hoe.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_ingot.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_ingot.png new file mode 100644 index 0000000..ebf5f87 Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_ingot.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_lantern.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_lantern.png new file mode 100644 index 0000000..4056222 Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_lantern.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_lantern_inv.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_lantern_inv.png new file mode 100644 index 0000000..b2c5813 Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_lantern_inv.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_nugget.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_nugget.png new file mode 100644 index 0000000..123e21c Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_nugget.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_pick.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_pick.png new file mode 100644 index 0000000..97bd47c Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_pick.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_shears.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_shears.png new file mode 100644 index 0000000..20986ab Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_shears.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_shovel.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_shovel.png new file mode 100644 index 0000000..a80ce21 Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_shovel.png differ diff --git a/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_sword.png b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_sword.png new file mode 100644 index 0000000..fabf474 Binary files /dev/null and b/mcl_rose_gold/textures/mcl_rose_gold_rose_gold_sword.png differ diff --git a/mcl_rose_gold/tools.lua b/mcl_rose_gold/tools.lua new file mode 100644 index 0000000..e254658 --- /dev/null +++ b/mcl_rose_gold/tools.lua @@ -0,0 +1,369 @@ +local modname = minetest.get_current_modname() +local modpath = minetest.get_modpath(modname) +local S = minetest.get_translator(modname) + +--Register Tools +-- Help texts (from mcl_tools) +local pickaxe_longdesc = S("Pickaxes are mining tools to mine hard blocks, such as stone. A pickaxe can also be used as weapon, but it is rather inefficient.") +local axe_longdesc = S("An axe is your tool of choice to cut down trees, wood-based blocks and other blocks. Axes deal a lot of damage as well, but they are rather slow.") +local sword_longdesc = S("Swords are great in melee combat, as they are fast, deal high damage and can endure countless battles. Swords can also be used to cut down a few particular blocks, such as cobwebs.") +local shovel_longdesc = S("Shovels are tools for digging coarse blocks, such as dirt, sand and gravel. They can also be used to turn grass blocks to grass paths. Shovels can be used as weapons, but they are very weak.") +local shovel_use = S("To turn a grass block into a grass path, hold the shovel in your hand, then use (rightclick) the top or side of a grass block. This only works when there's air above the grass block.") +local shears_longdesc = S("Shears are tools to shear sheep and to mine a few block types. Shears are a special mining tool and can be used to obtain the original item from grass, leaves and similar blocks that require cutting.") +local shears_use = S("To shear sheep or carve faceless pumpkins, use the “place” key on them. Faces can only be carved at the side of faceless pumpkins. Mining works as usual, but the drops are different for a few blocks.") +local hoe_tt = S("Turns block into farmland") +local hoe_longdesc = S("Hoes are essential tools for growing crops. They are used to create farmland in order to plant seeds on it. Hoes can also be used as very weak weapons in a pinch.") +local hoe_usagehelp = S("Use the hoe on a cultivatable block (by rightclicking it) to turn it into farmland. Dirt, grass blocks and grass paths are cultivatable blocks. Using a hoe on coarse dirt turns it into dirt.") + + +local wield_scale = mcl_vars.tool_wield_scale + +--Rose Gold Pick +minetest.register_tool("mcl_rose_gold:rose_gold_pick", { + description = S("Rose Gold Pickaxe"), + _doc_items_longdesc = pickaxe_longdesc, + inventory_image = "mcl_rose_gold_rose_gold_pick.png", + wield_scale = wield_scale, + groups = { tool=1, pickaxe=1, dig_speed_class=5, enchantability=18 }, + tool_capabilities = { + -- 1/1.2 + full_punch_interval = 0.83333333, + max_drop_level=2, + damage_groups = {fleshy=2}, + punch_attack_uses = 110, + }, + sound = { breaks = "default_tool_breaks" }, + _repair_material = "mcl_rose_gold:rose_gold_ingot", + _mcl_toollike_wield = true, + _mcl_diggroups = { + pickaxey = { speed = 10, level = 3, uses = 220 } + }, +}) + +-- shovel path making function +local make_grass_path = function(itemstack, placer, pointed_thing) + -- Use pointed node's on_rightclick function first, if present + local node = minetest.get_node(pointed_thing.under) + 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 + return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack + end + end + + -- Only make grass path if tool used on side or top of target node + if pointed_thing.above.y < pointed_thing.under.y then + return itemstack + end + + if (minetest.get_item_group(node.name, "path_creation_possible") == 1) then + local above = table.copy(pointed_thing.under) + above.y = above.y + 1 + if minetest.get_node(above).name == "air" then + if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then + minetest.record_protection_violation(pointed_thing.under, placer:get_player_name()) + return itemstack + end + + if not minetest.is_creative_enabled(placer:get_player_name()) then + -- Add wear (as if digging a shovely node) + local toolname = itemstack:get_name() + local wear = mcl_autogroup.get_wear(toolname, "shovely") + itemstack:add_wear(wear) + end + minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = above}, true) + minetest.swap_node(pointed_thing.under, {name="mcl_core:grass_path"}) + end + end + return itemstack +end + +--Rose Gold Shovel +minetest.register_tool("mcl_rose_gold:rose_gold_shovel", { + description = S("Rose Gold Shovel"), + _doc_items_longdesc = pickaxe_longdesc, + inventory_image = "mcl_rose_gold_rose_gold_shovel.png", + wield_scale = wield_scale, + groups = { tool=1, shovel=1, dig_speed_class=5, enchantability=18 }, + tool_capabilities = { + -- 1/1.2 + full_punch_interval = 0.83333333, + max_drop_level=2, + damage_groups = {fleshy=2}, + punch_attack_uses = 110, + }, + on_place = make_grass_path, + sound = { breaks = "default_tool_breaks" }, + _repair_material = "mcl_rose_gold:rose_gold_ingot", + _mcl_toollike_wield = true, + _mcl_diggroups = { + shovely = { speed = 10, level = 3, uses = 220 } + }, +}) + +--axe stripping logic +local function make_stripped_trunk(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then return end + + local node = minetest.get_node(pointed_thing.under) + local noddef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name] + + if not placer:get_player_control().sneak and noddef.on_rightclick then + return minetest.item_place(itemstack, placer, pointed_thing) + end + if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then + minetest.record_protection_violation(pointed_thing.under, placer:get_player_name()) + return itemstack + end + + if noddef._mcl_stripped_variant == nil then + return itemstack + else + minetest.swap_node(pointed_thing.under, {name=noddef._mcl_stripped_variant, param2=node.param2}) + if not minetest.is_creative_enabled(placer:get_player_name()) then + -- Add wear (as if digging a axey node) + local toolname = itemstack:get_name() + local wear = mcl_autogroup.get_wear(toolname, "axey") + itemstack:add_wear(wear) + end + end + return itemstack +end + +--Rose Gold Axe +minetest.register_tool("mcl_rose_gold:rose_gold_axe", { + description = S("Rose Gold Axe"), + _doc_items_longdesc = axe_longdesc, + inventory_image = "mcl_rose_gold_rose_gold_axe.png", + wield_scale = wield_scale, + groups = { tool=1, axe=1, dig_speed_class=5, enchantability=18 }, + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=2, + damage_groups = {fleshy=8}, + punch_attack_uses = 110, + }, + on_place = make_stripped_trunk, + sound = { breaks = "default_tool_breaks" }, + _repair_material = "mcl_rose_gold:rose_gold_ingot", + _mcl_toollike_wield = true, + _mcl_diggroups = { + axey = { speed = 10, level = 3, uses = 220 } + }, +}) + +--rose gold sword +minetest.register_tool("mcl_rose_gold:rose_gold_sword", { + description = S("Rose Gold Sword"), + _doc_items_longdesc = sword_longdesc, + inventory_image = "mcl_rose_gold_rose_gold_sword.png", + wield_scale = wield_scale, + groups = { weapon=1, sword=1, dig_speed_class=5, enchantability=18 }, + tool_capabilities = { + full_punch_interval = 0.625, + max_drop_level=2, + damage_groups = {fleshy=5}, + punch_attack_uses = 110, + }, + sound = { breaks = "default_tool_breaks" }, + _repair_material = "mcl_rose_gold:rose_gold_ingot", + _mcl_toollike_wield = true, + _mcl_diggroups = { + swordy = { speed = 10, level = 3, uses = 220 }, + swordy_cobweb = { speed = 10, level = 3, uses = 220 } + }, +}) + +--shear carving function +local carve_pumpkin +if minetest.get_modpath("mcl_farming") then + function carve_pumpkin(itemstack, placer, pointed_thing) + -- Use pointed node's on_rightclick function first, if present + local node = minetest.get_node(pointed_thing.under) + 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 + return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack + end + end + + -- Only carve pumpkin if used on side + if pointed_thing.above.y ~= pointed_thing.under.y then + return + end + if node.name == "mcl_farming:pumpkin" then + if not minetest.is_creative_enabled(placer:get_player_name()) then + -- Add wear (as if digging a shearsy node) + local toolname = itemstack:get_name() + local wear = mcl_autogroup.get_wear(toolname, "shearsy") + itemstack:add_wear(wear) + end + minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = pointed_thing.above}, true) + local dir = vector.subtract(pointed_thing.under, pointed_thing.above) + local param2 = minetest.dir_to_facedir(dir) + minetest.set_node(pointed_thing.under, {name="mcl_farming:pumpkin_face", param2 = param2}) + minetest.add_item(pointed_thing.above, "mcl_farming:pumpkin_seeds 4") + end + return itemstack + end +end + +--rose gold shears +minetest.register_tool("mcl_rose_gold:rose_gold_shears", { + description = S("Rose Gold Shears"), + _doc_items_longdesc = shears_longdesc, + _doc_items_usagehelp = shears_use, + inventory_image = "mcl_rose_gold_rose_gold_shears.png", + wield_image = "mcl_rose_gold_rose_gold_shears.png", + stack_max = 1, + groups = { tool=1, shears=1, dig_speed_class=5, }, + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level=1, + }, + on_place = carve_pumpkin, + sound = { breaks = "default_tool_breaks" }, + _mcl_toollike_wield = true, + _mcl_diggroups = { + shearsy = { speed = 3, level = 1, uses = 220 }, + shearsy_wool = { speed = 7, level = 1, uses = 220 }, + shearsy_cobweb = { speed = 18, level = 1, uses = 220 } + }, +}) + +--hoe function +local function create_soil(pos, inv) + if pos == nil then + return false + end + local node = minetest.get_node(pos) + local name = node.name + local above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}) + if minetest.get_item_group(name, "cultivatable") == 2 then + if above.name == "air" then + node.name = "mcl_farming:soil" + minetest.set_node(pos, node) + minetest.sound_play("default_dig_crumbly", { pos = pos, gain = 0.5 }, true) + return true + end + elseif minetest.get_item_group(name, "cultivatable") == 1 then + if above.name == "air" then + node.name = "mcl_core:dirt" + minetest.set_node(pos, node) + minetest.sound_play("default_dig_crumbly", { pos = pos, gain = 0.6 }, true) + return true + end + end + return false +end + +local hoe_on_place_function = function(wear_divisor) + return function(itemstack, user, pointed_thing) + -- Call on_rightclick if the pointed node defines it + local node = minetest.get_node(pointed_thing.under) + if user and not user:get_player_control().sneak then + if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then + return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, user, itemstack) or itemstack + end + end + + if minetest.is_protected(pointed_thing.under, user:get_player_name()) then + minetest.record_protection_violation(pointed_thing.under, user:get_player_name()) + return itemstack + end + + if create_soil(pointed_thing.under, user:get_inventory()) then + if not minetest.is_creative_enabled(user:get_player_name()) then + itemstack:add_wear(65535/wear_divisor) + end + return itemstack + end + end +end + +--rose gold hoe +local uses = { + rosegold = 220, +} + +minetest.register_tool("mcl_rose_gold:rose_gold_hoe", { + description = S("Rose Gold Hoe"), + _tt_help = hoe_tt.."\n"..S("Uses: @1", uses.rosegold), + _doc_items_longdesc = hoe_longdesc, + _doc_items_usagehelp = hoe_usagehelp, + inventory_image = "mcl_rose_gold_rose_gold_hoe.png", + wield_scale = mcl_vars.tool_wield_scale, + on_place = hoe_on_place_function(uses.rosegold), + groups = { tool=1, hoe=1, enchantability=18 }, + tool_capabilities = { + full_punch_interval = 1, + damage_groups = { fleshy = 1, }, + punch_attack_uses = uses.rosegold, + }, + _repair_material = "mcl_rose_gold:rose_gold_ingot", + _mcl_toollike_wield = true, + _mcl_diggroups = { + hoey = { speed = 10, level = 2, uses = 220 } + }, +}) + +--crafting recipes +--rose gold pick +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_pick", + recipe = { + {"mcl_rose_gold:rose_gold_ingot", "mcl_rose_gold:rose_gold_ingot", "mcl_rose_gold:rose_gold_ingot"}, + {"", "mcl_core:stick", ""}, + {"", "mcl_core:stick", ""}, + } +}) +--rose gold axe +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_axe", + recipe = { + {"mcl_rose_gold:rose_gold_ingot", "mcl_rose_gold:rose_gold_ingot"}, + {"mcl_rose_gold:rose_gold_ingot", "mcl_core:stick"}, + {"", "mcl_core:stick"}, + } +}) +--rose gold shovel +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_shovel", + recipe = { + {"mcl_rose_gold:rose_gold_ingot"}, + {"mcl_core:stick"}, + {"mcl_core:stick"}, + } +}) +--rose gold sword +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_sword", + recipe = { + {"mcl_rose_gold:rose_gold_ingot"}, + {"mcl_rose_gold:rose_gold_ingot"}, + {"mcl_core:stick"}, + } +}) +--rose gold shears +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_shears", + recipe = { + { "", "mcl_rose_gold:rose_gold_ingot" }, + { "mcl_rose_gold:rose_gold_ingot", "" }, + } +}) + +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_shears", + recipe = { + { "mcl_rose_gold:rose_gold_ingot", "" }, + { "", "mcl_rose_gold:rose_gold_ingot" }, + } +}) +--rose gold hoe +minetest.register_craft({ + output = "mcl_rose_gold:rose_gold_hoe", + recipe = { + {"mcl_rose_gold:rose_gold_ingot", "mcl_rose_gold:rose_gold_ingot"}, + {"", "mcl_core:stick"}, + {"", "mcl_core:stick"}, + } +})