diff --git a/mods/ITEMS/mcl_amethyst/grow.lua b/mods/ITEMS/mcl_amethyst/grow.lua index 1ab3d42410..ba4ba0c000 100644 --- a/mods/ITEMS/mcl_amethyst/grow.lua +++ b/mods/ITEMS/mcl_amethyst/grow.lua @@ -1,47 +1,47 @@ function mcl_amethyst.grow_amethyst_bud(pos,ignore_budding_amethyst) - local node = minetest.get_node(pos) - if not node.name then return false end - local def = minetest.registered_nodes[node.name] - if not def then return false end - if not def.groups and def.groups.amethyst_buds then return false end - local next_gen = def._mcl_amethyst_next_grade - if not next_gen then return false end - -- Check Budding Amethyst - if not ignore_budding_amethyst then - local dir = minetest.wallmounted_to_dir(node.param2) - local ba_pos = vector.add(pos,dir) - local ba_node = minetest.get_node(ba_pos) - if ba_node.name ~= "mcl_amethyst:budding_amethyst_block" then return false end - end - local swap_result = table.copy(node) - swap_result.name = next_gen - minetest.swap_node(pos,swap_result) - return true + local node = minetest.get_node(pos) + if not node.name then return false end + local def = minetest.registered_nodes[node.name] + if not def then return false end + if not def.groups and def.groups.amethyst_buds then return false end + local next_gen = def._mcl_amethyst_next_grade + if not next_gen then return false end + -- Check Budding Amethyst + if not ignore_budding_amethyst then + local dir = minetest.wallmounted_to_dir(node.param2) + local ba_pos = vector.add(pos,dir) + local ba_node = minetest.get_node(ba_pos) + if ba_node.name ~= "mcl_amethyst:budding_amethyst_block" then return false end + end + local swap_result = table.copy(node) + swap_result.name = next_gen + minetest.swap_node(pos,swap_result) + return true end local function get_growing_tool_handle(ignore) - return function(itemstack, user, pointed_thing) - if not user:is_player() then return end - local name = user:get_player_name() - local pos = minetest.get_pointed_thing_position(pointed_thing) - if minetest.is_protected(pos, name) then - minetest.record_protection_violation(pos, name) - minetest.chat_send_player(name,"Not allowed to use Amethyst Growing Tool in a protected area!") - return - end - if not mcl_amethyst.grow_amethyst_bud(pos, ignore) then - minetest.chat_send_player(name,"Growing Failed") - end - end + return function(itemstack, user, pointed_thing) + if not user:is_player() then return end + local name = user:get_player_name() + local pos = minetest.get_pointed_thing_position(pointed_thing) + if minetest.is_protected(pos, name) then + minetest.record_protection_violation(pos, name) + minetest.chat_send_player(name,"Not allowed to use Amethyst Growing Tool in a protected area!") + return + end + if not mcl_amethyst.grow_amethyst_bud(pos, ignore) then + minetest.chat_send_player(name,"Growing Failed") + end + end end minetest.register_tool("mcl_amethyst:growing_tool",{ - description = "Amethyst Growing Tool", - on_use = get_growing_tool_handle(true), - on_place = get_growing_tool_handle(false), - inventory_image = "amethyst_cluster.png^amethyst_shard.png", - groups = { - tool = 1, - }, + description = "Amethyst Growing Tool", + on_use = get_growing_tool_handle(true), + on_place = get_growing_tool_handle(false), + inventory_image = "amethyst_cluster.png^amethyst_shard.png", + groups = { + tool = 1, + }, }) mcl_wip.register_experimental_item("mcl_amethyst:growing_tool") diff --git a/mods/ITEMS/mcl_amethyst/init.lua b/mods/ITEMS/mcl_amethyst/init.lua index 9443612369..e13c42e8d5 100644 --- a/mods/ITEMS/mcl_amethyst/init.lua +++ b/mods/ITEMS/mcl_amethyst/init.lua @@ -3,210 +3,210 @@ mcl_amethyst = {} -- Amethyst block minetest.register_node("mcl_amethyst:amethyst_block",{ - description = S("Block of Amethyst"), - tiles = {"amethyst_block.png"}, - _mcl_hardness = 1.5, - _mcl_blast_resistance = 1.5, - groups = { - pickaxey = 1, - building_block = 1, - }, - sounds = mcl_sounds.node_sound_glass_defaults(), - is_ground_content = true, - stack_max = 64, - _doc_items_longdesc = S("The Block of Anethyst is a decoration block creft from amethyst shards."), + description = S("Block of Amethyst"), + tiles = {"amethyst_block.png"}, + _mcl_hardness = 1.5, + _mcl_blast_resistance = 1.5, + groups = { + pickaxey = 1, + building_block = 1, + }, + sounds = mcl_sounds.node_sound_glass_defaults(), + is_ground_content = true, + stack_max = 64, + _doc_items_longdesc = S("The Block of Anethyst is a decoration block creft from amethyst shards."), }) -- (WIP!) Budding Amethyst minetest.register_node("mcl_amethyst:budding_amethyst_block",{ - description = S("Budding Amethyst"), - tiles = {"budding_amethyst.png"}, - drop = "", - _mcl_hardness = 1.5, - _mcl_blast_resistance = 1.5, - groups = { - pickaxey = 1, - building_block = 1, - dig_by_piston = 1, - }, - sounds = mcl_sounds.node_sound_glass_defaults(), - is_ground_content = true, - stack_max = 64, - _doc_items_longdesc = S("The Budding Anethyst can grow amethyst"), + description = S("Budding Amethyst"), + tiles = {"budding_amethyst.png"}, + drop = "", + _mcl_hardness = 1.5, + _mcl_blast_resistance = 1.5, + groups = { + pickaxey = 1, + building_block = 1, + dig_by_piston = 1, + }, + sounds = mcl_sounds.node_sound_glass_defaults(), + is_ground_content = true, + stack_max = 64, + _doc_items_longdesc = S("The Budding Anethyst can grow amethyst"), }) mcl_wip.register_wip_item("mcl_amethyst:budding_amethyst_block") -- Amethyst Shard minetest.register_craftitem("mcl_amethyst:amethyst_shard",{ - description = S("Amethyst Shard"), - inventory_image = "amethyst_shard.png", - stack_max = 64, - groups = { - craftitem = 1, - }, - _doc_items_longdesc = S("An amethyst shard is a crystalline mineral."), + description = S("Amethyst Shard"), + inventory_image = "amethyst_shard.png", + stack_max = 64, + groups = { + craftitem = 1, + }, + _doc_items_longdesc = S("An amethyst shard is a crystalline mineral."), }) -- Calcite minetest.register_node("mcl_amethyst:calcite",{ - description = S("Calcite"), - tiles = {"calcite.png"}, - _mcl_hardness = 0.75, - _mcl_blast_resistance = 0.75, - groups = { - pickaxey = 1, - building_block = 1, - }, - sounds = mcl_sounds.node_sound_stone_defaults(), - is_ground_content = true, - stack_max = 64, - _doc_items_longdesc = S("Calcite can be found as part of amethyst geodes."), + description = S("Calcite"), + tiles = {"calcite.png"}, + _mcl_hardness = 0.75, + _mcl_blast_resistance = 0.75, + groups = { + pickaxey = 1, + building_block = 1, + }, + sounds = mcl_sounds.node_sound_stone_defaults(), + is_ground_content = true, + stack_max = 64, + _doc_items_longdesc = S("Calcite can be found as part of amethyst geodes."), }) -- Tinied Glass minetest.register_node("mcl_amethyst:tinted_glass",{ - description = S("Tinted Glass"), - tiles = {"tinted_glass.png"}, - _mcl_hardness = 0.3, - _mcl_blast_resistance = 0.3, - drawtype = "glasslike", - use_texture_alpha = "clip", - sunlight_propagates = false, - groups = { - handy = 1, - building_block = 1, - deco_block = 1, - }, - sounds = mcl_sounds.node_sound_glass_defaults(), - is_ground_content = false, - stack_max = 64, - _doc_items_longdesc = S("Tinted Glass is a type of glass which blocks lights while it is visually transparent."), + description = S("Tinted Glass"), + tiles = {"tinted_glass.png"}, + _mcl_hardness = 0.3, + _mcl_blast_resistance = 0.3, + drawtype = "glasslike", + use_texture_alpha = "clip", + sunlight_propagates = false, + groups = { + handy = 1, + building_block = 1, + deco_block = 1, + }, + sounds = mcl_sounds.node_sound_glass_defaults(), + is_ground_content = false, + stack_max = 64, + _doc_items_longdesc = S("Tinted Glass is a type of glass which blocks lights while it is visually transparent."), }) -- Amethyst Cluster local bud_def = { - {"small","Small","mcl_amethyst:medium_amethyst_bud"}, - {"medium","Medium","mcl_amethyst:large_amethyst_bud"}, - {"large","Large","mcl_amethyst:amethyst_cluster"}, + {"small","Small","mcl_amethyst:medium_amethyst_bud"}, + {"medium","Medium","mcl_amethyst:large_amethyst_bud"}, + {"large","Large","mcl_amethyst:amethyst_cluster"}, } for x,y in pairs(bud_def) do - minetest.register_node("mcl_amethyst:" .. y[1] .. "_amethyst_bud",{ - description = y[2] .. " Amethyst Bud", - _mcl_hardness = 1.5, - _mcl_blast_resistance = 1.5, - drop = "", - tiles = {y[1] .. "_amethyst_bud.png",}, - inventory_image = y[1] .. "_amethyst_bud.png", - paramtype1 = "light", - paramtype2 = "wallmounted", - drawtype = "plantlike", - use_texture_alpha = "clip", - sunlight_propagates = true, - groups = { - dig_by_water = 1, - destroy_by_lava_flow = 1, - dig_by_piston = 1, - pickaxey = 1, - deco_block = 1, - amethyst_buds = 1, - attached_node = 1, - }, - selection_box = { - type = "fixed", - -- fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, - fixed = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, - }, - collision_box = { - type = "fixed", - -- fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, - fixed = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, - }, - _mcl_silk_touch_drop = true, - _mcl_amethyst_next_grade = y[3], - _doc_items_longdesc = S(y[2] .. " Amethyst Bud is the " .. y[1] .. " grouth of amethyst bud."), - }) + minetest.register_node("mcl_amethyst:" .. y[1] .. "_amethyst_bud",{ + description = y[2] .. " Amethyst Bud", + _mcl_hardness = 1.5, + _mcl_blast_resistance = 1.5, + drop = "", + tiles = {y[1] .. "_amethyst_bud.png",}, + inventory_image = y[1] .. "_amethyst_bud.png", + paramtype1 = "light", + paramtype2 = "wallmounted", + drawtype = "plantlike", + use_texture_alpha = "clip", + sunlight_propagates = true, + groups = { + dig_by_water = 1, + destroy_by_lava_flow = 1, + dig_by_piston = 1, + pickaxey = 1, + deco_block = 1, + amethyst_buds = 1, + attached_node = 1, + }, + selection_box = { + type = "fixed", + -- fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + fixed = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, + }, + collision_box = { + type = "fixed", + -- fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + fixed = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, + }, + _mcl_silk_touch_drop = true, + _mcl_amethyst_next_grade = y[3], + _doc_items_longdesc = S(y[2] .. " Amethyst Bud is the " .. y[1] .. " grouth of amethyst bud."), + }) end minetest.register_node("mcl_amethyst:amethyst_cluster",{ - description = "Amethyst Cluster", - _mcl_hardness = 1.5, - _mcl_blast_resistance = 1.5, - _doc_items_longdesc = S("Amethyst Cluster is the final grouth of amethyst bud."), - drop = { - max_items = 1, - items = { - { - tools = {"~mcl_tools:pick_"}, - items = {"mcl_amethyst:amethyst_shard 4"}, - }, - { - items = {"mcl_amethyst:amethyst_shard 2"}, - }, - } - }, - tiles = {"amethyst_cluster.png",}, - inventory_image = "amethyst_cluster.png", - paramtype2 = "wallmounted", - drawtype = "plantlike", - paramtype1 = "light", - use_texture_alpha = "clip", - sunlight_propagates = true, - groups = { - dig_by_water = 1, - destroy_by_lava_flow = 1, - dig_by_piston = 1, - pickaxey = 1, - deco_block = 1, - attached_node = 1, - }, - selection_box = { - type = "fixed", - -- fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, - fixed = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, - }, - collision_box = { - type = "fixed", - -- fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, - fixed = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, - }, - _mcl_silk_touch_drop = true, + description = "Amethyst Cluster", + _mcl_hardness = 1.5, + _mcl_blast_resistance = 1.5, + _doc_items_longdesc = S("Amethyst Cluster is the final grouth of amethyst bud."), + drop = { + max_items = 1, + items = { + { + tools = {"~mcl_tools:pick_"}, + items = {"mcl_amethyst:amethyst_shard 4"}, + }, + { + items = {"mcl_amethyst:amethyst_shard 2"}, + }, + } + }, + tiles = {"amethyst_cluster.png",}, + inventory_image = "amethyst_cluster.png", + paramtype2 = "wallmounted", + drawtype = "plantlike", + paramtype1 = "light", + use_texture_alpha = "clip", + sunlight_propagates = true, + groups = { + dig_by_water = 1, + destroy_by_lava_flow = 1, + dig_by_piston = 1, + pickaxey = 1, + deco_block = 1, + attached_node = 1, + }, + selection_box = { + type = "fixed", + -- fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + fixed = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, + }, + collision_box = { + type = "fixed", + -- fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + fixed = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, + }, + _mcl_silk_touch_drop = true, }) -- Register Crafts minetest.register_craft({ - output = "mcl_amethyst:amethyst_block", - recipe = { - {"mcl_amethyst:amethyst_shard","mcl_amethyst:amethyst_shard",}, - {"mcl_amethyst:amethyst_shard","mcl_amethyst:amethyst_shard",}, - }, + output = "mcl_amethyst:amethyst_block", + recipe = { + {"mcl_amethyst:amethyst_shard","mcl_amethyst:amethyst_shard",}, + {"mcl_amethyst:amethyst_shard","mcl_amethyst:amethyst_shard",}, + }, }) minetest.register_craft({ - output = "mcl_amethyst:tinted_glass 2", - recipe = { - {"","mcl_amethyst:amethyst_shard",""}, - {"mcl_amethyst:amethyst_shard","mcl_core:glass","mcl_amethyst:amethyst_shard",}, - {"","mcl_amethyst:amethyst_shard",""}, - }, + output = "mcl_amethyst:tinted_glass 2", + recipe = { + {"","mcl_amethyst:amethyst_shard",""}, + {"mcl_amethyst:amethyst_shard","mcl_core:glass","mcl_amethyst:amethyst_shard",}, + {"","mcl_amethyst:amethyst_shard",""}, + }, }) if minetest.get_modpath("mcl_spyglass") then - minetest.clear_craft({output = "mcl_spyglass:spyglass",}) - local function craft_spyglass(ingot) - minetest.register_craft({ - output = "mcl_spyglass:spyglass", - recipe = { - {"mcl_amethyst:amethyst_shard"}, - {ingot}, - {ingot}, - } - }) - end - if minetest.get_modpath("mcl_copper") then - craft_spyglass("mcl_copper:copper_ingot") - else - craft_spyglass("mcl_core:iron_ingot") - end + minetest.clear_craft({output = "mcl_spyglass:spyglass",}) + local function craft_spyglass(ingot) + minetest.register_craft({ + output = "mcl_spyglass:spyglass", + recipe = { + {"mcl_amethyst:amethyst_shard"}, + {ingot}, + {ingot}, + } + }) + end + if minetest.get_modpath("mcl_copper") then + craft_spyglass("mcl_copper:copper_ingot") + else + craft_spyglass("mcl_core:iron_ingot") + end end -- Amethyst Growing