-- Load support for intllib. local MP = minetest.get_modpath(minetest.get_current_modname()) local S, NS = dofile(MP .. "/intllib.lua") -- Default tree schematics local dpath = minetest.get_modpath("default") .. "/schematics/" lucky_block:add_schematics({ {"appletree", dpath .. "apple_tree_from_sapling.mts", {x = 3, y = 1, z = 3}}, {"jungletree", dpath .. "jungle_tree_from_sapling.mts", {x = 2, y = 1, z = 2}}, {"defpinetree", dpath .. "pine_tree_from_sapling.mts", {x = 2, y = 1, z = 2}}, {"acaciatree", dpath .. "acacia_tree_from_sapling.mts", {x = 4, y = 1, z = 4}}, {"aspentree", dpath .. "aspen_tree_from_sapling.mts", {x = 2, y = 1, z = 2}}, -- {"corals", dpath .. "corals.mts", {x = 2, y = 1, z = 2}}, {"largecactus", dpath .. "large_cactus.mts", {x = 2, y = 1, z = 2}}, {"defaultbush", dpath .. "bush.mts", {x = 1, y = 1, z = 1}}, {"acaciabush", dpath .. "acacia_bush.mts", {x = 1, y = 1, z = 1}}, {"corals", MP .. "/schematics/corals.mts", {x = 2, y = 1, z = 2}}, }) -- Default blocks lucky_block:add_blocks({ {"lig"}, {"fal", {"default:wood", "default:gravel", "default:sand", "default:desert_sand", "default:stone", "default:dirt", "default:goldblock"}, 0}, {"sch", "watertrap", 1, true}, {"tel"}, {"dro", {"default:apple"}, 10}, {"sch", "appletree", 0, false}, {"dro", {"default:snow"}, 10}, {"nod", "default:chest", 0, { {name = "bucket:bucket_water", max = 1}, {name = "default:wood", max = 3}, {name = "default:pick_diamond", max = 1}, {name = "default:coal_lump", max = 3} } }, {"sch", "sandtrap", 1, true}, {"sch", "defpinetree", 0, false}, {"sch", "lavatrap", 1, true}, {"dro", {"default:mese_crystal_fragment"}, 15}, {"dro", {"default:mese_crystal"}, 10}, {"dro", {"default:mese"}, 1}, {"exp", 2}, {"sch", "acaciabush", 0, false}, {"nod", "default:diamondblock", 0}, {"nod", "default:steelblock", 0}, {"nod", "default:dirt", 0}, {"nod", "default:chest", 0, { {name = "default:dirt", max = 15}, {name = "default:dirt_with_dry_grass", max = 15}, {name = "default:dirt_with_rainforest_litter", max = 15}, {name = "default:dirt_with_grass", max = 15}, {name = "default:dirt_with_snow", max = 15}, }}, {"dro", {"dye:"}, 10, true}, {"dro", {"default:sword_steel"}}, {"sch", "jungletree", 0, false}, {"sch", "sandtrap", 1, true, {{"default:sand", "default:silver_sand"}} }, {"dro", {"default:pick_steel"}}, {"dro", {"default:shovel_steel"}}, {"exp"}, {"dro", {"default:coal_lump"}, 3}, {"sch", "defaultbush", 0, false}, {"tro", "default:mese", "tnt_blast", true}, {"sch", "acaciatree", 0, false}, {"dro", {"default:axe_steel"}}, {"dro", {"default:sword_bronze"}}, {"exp", 3}, {"nod", "default:chest", 0, { {name = "default:acacia_sapling", max = 10}, {name = "default:aspen_sapling", max = 10}, {name = "default:pine_sapling", max = 10}, {name = "default:sapling", max = 10}, {name = "default:junglesapling", max = 10}, {name = "default:acacia_bush_sapling", max = 5}, {name = "default:bush_sapling", max = 5}, }}, {"sch", "platform", 1, true}, {"nod", "default:wood", 0}, {"dro", {"default:pick_bronze"}}, {"sch", "aspentree", 0, false}, {"dro", {"default:shovel_bronze"}}, {"nod", "default:gravel", 0}, {"sch", "sandtrap", 1, true, {{"default:sand", "default:gravel"}} }, {"sch", "largecactus", 0, false}, {"dro", {"default:axe_bronze"}}, {"dro", {"default:bookshelf", "default:book", "default:paper"}, 5}, {"dro", {"default:fence_wood"}, 10}, {"dro", {"default:fence_acacia_wood"}, 10}, {"dro", {"default:fence_aspen_wood"}, 10}, {"dro", {"default:fence_junglewood"}, 10}, {"dro", {"default:fence_pine_wood"}, 10}, {"sch", "obsidiantrap", 1, true}, {"sch", "sandtrap", 1, true, {{"default:sand", "default:desert_sand"}} }, {"nod", "default:chest", 0, { {name = "default:acacia_wood", max = 10}, {name = "default:aspen_wood", max = 10}, {name = "default:pine_wood", max = 10}, {name = "default:wood", max = 10}, {name = "default:junglewood", max = 10}, }}, {"nod", "default:chest", 0, { {name = "default:acacia_tree", max = 10}, {name = "default:aspen_tree", max = 10}, {name = "default:pine_tree", max = 10}, {name = "default:tree", max = 10}, {name = "default:jungletree", max = 10}, }}, {"dro", {"default:coral_brown"}, 5}, {"dro", {"default:coral_orange"}, 5}, {"dro", {"default:coral_skeleton"}, 5}, {"sch", "corals", 0, true}, {"dro", {"default:mese_post_light"}, 5}, {"dro", {"default:fence_wood"}, 5}, {"nod", "default:mese_post_light"}, {"dro", {"default:silver_sand"}, 20}, {"dro", {"default:sand"}, 20}, {"dro", {"default:desert_sand"}, 20}, {"dro", {"default:gravel"}, 15}, {"nod", "default:chest", 0, { {name = "default:silver_sand", max = 20}, {name = "default:silver_sandstone", max = 20}, {name = "default:desert_sand", max = 20}, {name = "default:silver_sandstone", max = 20}, {name = "default:sand", max = 20}, {name = "default:sandstone", max = 20}, {name = "default:gravel", max = 20}, }}, {"dro", {"default:obsidian"}, 14}, }) local green = minetest.get_color_escape_sequence("#1eff00") -- custom function (punches player with 5 damage) local function punchy(pos, player) player:punch(player, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = 5} }, nil) minetest.sound_play("player_damage", {pos = pos, gain = 1.0}, true) minetest.chat_send_player(player:get_player_name(), green .. S("Stop hitting yourself!")) end -- custom function (pint sized player) and potion with recipe local function pint(pos, player) player:set_properties({ visual_size = {x = 0.5, y = 0.5}, collisionbox = {-0.15, 0.0, -0.15, 0.15, .85, 0.15}, eye_height = 0.73, stepheight = 0.3 }) minetest.chat_send_player(player:get_player_name(), green .. S("Pint Sized Player!")) minetest.sound_play("default_place_node", {pos = pos, gain = 1.0}, true) minetest.after (180, function(player, pos) -- 3 minutes if player and player:is_player() then player:set_properties({ visual_size = {x = 1.0, y = 1.0}, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}, eye_height = 1.47, stepheight = 0.6 }) minetest.sound_play("default_place_node", {pos = pos, gain = 1.0}, true) end end, player) end minetest.register_craftitem("lucky_block:pint_sized_potion", { description = S("Pint Sized Potion (DRINK ME)"), inventory_image = "lucky_pint_sized_potion.png", on_use = function(itemstack, user, pointed_thing) itemstack:take_item() local pos = user:get_pos() local inv = user:get_inventory() local item = "vessels:glass_bottle" if inv:room_for_item("main", {name = item}) then inv:add_item("main", item) else minetest.add_item(pos, {name = item}) end pint(pos, user) return itemstack end, groups = {vessel = 1}, }) minetest.register_craft({ output = "lucky_block:pint_sized_potion", recipe = { {"default:bush_sapling", "flowers:tulip", "default:acacia_bush_sapling"}, {"dye:blue", "default:apple", "dye:cyan"}, {"", "vessels:glass_bottle", ""}, } }) -- custom function (slender player) and potion with recipe local function slender(pos, player) player:set_properties({ visual_size = {x = 1.0, y = 1.5}, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7 + .85, 0.3}, eye_height = 1.47 + 0.73, stepheight = 0.9 }) minetest.chat_send_player(player:get_player_name(), green .. S("Slender Player!")) minetest.sound_play("default_place_node", {pos = pos, gain = 1.0}, true) minetest.after (180, function(player, pos) -- 3 minutes if player and player:is_player() then player:set_properties({ visual_size = {x = 1.0, y = 1.0}, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}, eye_height = 1.47, stepheight = 0.6 }) minetest.sound_play("default_place_node", {pos = pos, gain = 1.0}, true) end end, player) end minetest.register_craftitem("lucky_block:slender_player_potion", { description = S("Slender Player Potion (DRINK ME)"), inventory_image = "lucky_slender_potion.png", on_use = function(itemstack, user, pointed_thing) itemstack:take_item() local pos = user:get_pos() local inv = user:get_inventory() local item = "vessels:glass_bottle" if inv:room_for_item("main", {name = item}) then inv:add_item("main", item) else minetest.add_item(pos, {name = item}) end slender(pos, user) return itemstack end, groups = {vessel = 1}, }) minetest.register_craft({ output = "lucky_block:slender_player_potion", recipe = { {"default:bush_sapling", "flowers:rose", "default:pine_bush_sapling"}, {"dye:red", "default:apple", "dye:orange"}, {"", "vessels:glass_bottle", ""}, } }) -- custom function (drop player inventory and replace with dry shrubs) local function bushy(pos, player) local player_inv = player:get_inventory() pos = player:get_pos() or pos for i = 1, player_inv:get_size("main") do local obj = minetest.add_item(pos, player_inv:get_stack("main", i)) if obj then obj:set_velocity({ x = math.random(-10, 10) / 9, y = 5, z = math.random(-10, 10) / 9, }) end player_inv:set_stack("main", i, "default:dry_shrub") end minetest.chat_send_player(player:get_player_name(), green .. S("Dry shrub takeover!")) end -- lightning staff minetest.register_tool("lucky_block:lightning_staff", { description = S("Lightning Staff"), inventory_image = "lucky_lightning_staff.png", range = 10, groups = {not_in_creative_inventory = 1}, on_use = function(itemstack, user, pointed_thing) local pos = user:get_pos() if pointed_thing.type == "object" then pos = pointed_thing.ref:get_pos() elseif pointed_thing.type == "node" then pos = pointed_thing.above end if not pos then return end local bnod = pos and minetest.get_node_or_nil(pos) local bref = bnod and minetest.registered_items[bnod.name] if bref and bref.buildable_to == true then local nod = "fire:basic_flame" minetest.set_node(pos, {name = nod}) end local radius = 4 local objs = minetest.get_objects_inside_radius(pos, radius) local obj_pos, dist -- add temp entity to cause damage local tmp_ent = minetest.add_entity(pos, "lucky_block:temp") for n = 1, #objs do obj_pos = objs[n]:get_pos() dist = vector.distance(pos, obj_pos) if dist < 1 then dist = 1 end local damage = math.floor((4 / dist) * radius) local ent = objs[n]:get_luaentity() -- if you blast yourself then delay hurt for bones mod if dead if objs[n] == user then minetest.after(0.1, function() objs[n]:punch(tmp_ent, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = damage, fire = 1}, }, pos) end) else objs[n]:punch(tmp_ent, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = damage, fire = 1}, }, pos) end end minetest.add_particle({ pos = {x = pos.x, y = pos.y + 4, z = pos.z}, velocity = {x = 0, y = 0, z = 0}, acceleration = {x = 0, y = 0, z = 0}, expirationtime = 1.0, collisiondetection = false, texture = "lucky_lightning.png", size = 100, glow = 15, }) minetest.sound_play("lightning", { pos = pos, gain = 1.0, max_hear_distance = 25 }, true) itemstack:add_wear(65535 / 50) -- 50 uses return itemstack end, }) lucky_block:add_blocks({ {"cus", pint}, {"cus", bushy}, {"cus", punchy}, {"cus", slender}, {"dro", {"lucky_block:pint_sized_potion"}, 1}, {"dro", {"lucky_block:slender_player_potion"}, 1}, {"nod", "default:chest", 0, { {name = "default:stick", max = 10}, {name = "default:acacia_bush_stem", max = 10}, {name = "default:bush_stem", max = 10}, {name = "default:pine_bush_stem", max = 10}, {name = "default:grass_1", max = 10}, {name = "default:dry_grass_1", max = 10}, {name = "lucky_block:lightning_staff", max = 1, chance = 10}}}, }) -- wool mod if minetest.get_modpath("wool") then lucky_block:add_blocks({ {"sch", "sandtrap", 1, true, {{"default:sand", "wool:red"}} }, {"dro", {"wool:"}, 10, true}, {"sch", "sandtrap", 1, true, {{"default:sand", "wool:green"}} }, {"dro", {"wool:white"}, 10}, }) end -- extra doors mod if minetest.get_modpath("extra_doors") then lucky_block:add_blocks({ {"dro", {"default:steel_rod"}, 10}, {"dro", {"extra_doors:door_woodpanel1"}, 1}, {"dro", {"extra_doors:door_woodglass1"}, 1}, {"dro", {"extra_doors:door_woodglass2"}, 1}, {"dro", {"extra_doors:door_door_japanese"}, 1}, {"dro", {"extra_doors:door_door_french"}, 1}, {"dro", {"extra_doors:door_door_cottage1"}, 1}, {"dro", {"extra_doors:door_door_cottage2"}, 1}, {"dro", {"extra_doors:door_door_barn1"}, 1}, {"lig"}, {"dro", {"extra_doors:door_door_barn2"}, 1}, {"dro", {"extra_doors:door_door_castle1"}, 1}, {"dro", {"extra_doors:door_door_castle2"}, 1}, {"dro", {"extra_doors:door_door_mansion1"}, 1}, {"dro", {"extra_doors:door_door_mansion2"}, 1}, {"dro", {"extra_doors:door_door_dungeon1"}, 1}, {"dro", {"extra_doors:door_door_dungeon2"}, 1}, {"dro", {"extra_doors:door_door_steelpanel1"}, 1}, {"dro", {"extra_doors:door_door_steelglass1"}, 1}, {"dro", {"extra_doors:door_door_steelglass2"}, 1}, }) end -- Flowers mod if minetest.get_modpath("flowers") then lucky_block:add_blocks({ {"nod", "flowers:rose", 0}, {"dro", {"flowers:mushroom_red"}, 5}, {"dro", {"flowers:mushroom_brown"}, 5}, {"dro", {"flowers:rose", "flowers:tulip", "flowers:dandelion_yellow", "flowers:geranium", "flowers:viola", "flowers:dandelion_white"}, 12}, {"nod", "default:chest", 0, { {name = "flowers:geranium", max = 15}, {name = "flowers:viola", max = 15}, {name = "flowers:dandelion_white", max = 15}, {name = "flowers:dandelion_yellow", max = 15}, {name = "flowers:tulip", max = 15}, {name = "flowers:rose", max = 15}, {name = "flowers:mushroom_brown", max = 10}, {name = "flowers:mushroom_red", max = 10}, {name = "flowers:waterlily", max = 10}, }}, }) end -- Doors mod if minetest.get_modpath("doors") then lucky_block:add_blocks({ {"dro", {"doors:door_wood"}}, {"dro", {"doors:door_steel"}}, {"dro", {"doors:door_glass"}}, {"dro", {"doors:door_obsidian_glass"}}, {"dro", {"doors:trapdoor"}}, {"dro", {"doors:trapdoor_steel"}}, {"dro", {"doors:gate_acacia_wood_closed"}}, {"dro", {"doors:gate_aspen_wood_closed"}}, {"dro", {"doors:gate_wood_closed"}}, {"dro", {"doors:gate_pine_wood_closed"}}, {"dro", {"doors:gate_junglewood_closed"}}, }) end -- Screwdriver mod if minetest.get_modpath("screwdriver") then if screwdriver and screwdriver.handler then minetest.register_tool(":screwdriver:screwdriver_magenta", { description = S("Super Mega Magenta Ultra Screwdriver 2500\n(left-click to rotate face, right-click to rotates axis)"), inventory_image = "screwdriver.png^[colorize:#ff009970", groups = {not_in_creative_inventory = 1}, on_use = function(itemstack, user, pointed_thing) screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_FACE, 2500) return itemstack end, on_place = function(itemstack, user, pointed_thing) screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_AXIS, 2500) return itemstack end, }) end lucky_block:add_blocks({ {"dro", {"screwdriver:screwdriver"}}, {"dro", {"screwdriver:screwdriver_magenta"}}, }) end -- Vessels mod if minetest.get_modpath("vessels") then lucky_block:add_blocks({ {"dro", {"vessels:shelf", "vessels:drinking_glass", "vessels:glass_bottle", "vessels:steel_bottle", "vessels:glass_fragments"}, 5}, {"nod", "vessels:drinking_glass", 0}, {"nod", "vessels:glass_bottle", 0}, {"nod", "vessels:steel_bottle", 0}, }) end -- Farming mod (default) if minetest.get_modpath("farming") then lucky_block:add_blocks({ {"dro", {"farming:bread"}, 5}, {"sch", "instafarm", 0, true}, {"nod", "default:water_source", 1}, {"nod", "farming:straw", 0}, {"dro", {"farming:straw"}, 8}, }) end -- Home Decor mod if minetest.get_modpath("homedecor") then lucky_block:add_blocks({ {"nod", "homedecor:toilet", 0}, {"nod", "homedecor:table", 0}, {"nod", "homedecor:chair", 0}, {"nod", "homedecor:table_lamp_off", 0}, {"dro", {"homedecor:plastic_sheeting", "homedecor:plastic_base"}, 15}, {"dro", {"homedecor:roof_tile_terracotta"}, 20}, {"dro", {"homedecor:shutter_oak"}, 5}, {"dro", {"homedecor:shutter_black"}, 5}, {"dro", {"homedecor:shutter_dark_grey"}, 5}, {"dro", {"homedecor:shutter_grey"}, 5}, {"dro", {"homedecor:shutter_white"}, 5}, {"dro", {"homedecor:shutter_mahogany"}, 5}, {"dro", {"homedecor:shutter_yellow"}, 5}, {"dro", {"homedecor:shutter_forest_green"}, 5}, {"dro", {"homedecor:shutter_light_blue"}, 5}, {"dro", {"homedecor:shutter_violet"}, 5}, {"dro", {"homedecor:table_legs_wrought_iron", "homedecor:utility_table_legs"}, 5}, {"dro", {"homedecor:pole_wrought_iron"}, 10}, {"dro", {"homedecor:fence_picket_white"}, 20}, }) end -- Boats mod if minetest.get_modpath("boats") then lucky_block:add_blocks({ {"dro", {"boats:boat"}}, }) end -- Beds mod if minetest.get_modpath("beds") then lucky_block:add_blocks({ {"dro", {"beds:bed"}}, {"dro", {"beds:fancy_bed"}}, }) end -- Walls mod if minetest.get_modpath("walls") then lucky_block:add_blocks({ {"dro", {"walls:cobble"}, 10}, {"dro", {"walls:mossycobble"}, 10}, {"dro", {"walls:desertcobble"}, 10}, }) end -- Carts mod if minetest.get_modpath("carts") or minetest.get_modpath("boost_cart") then lucky_block:add_blocks({ {"dro", {"carts:cart"}}, {"dro", {"default:rail"}, 10}, {"dro", {"carts:powerrail"}, 5}, }) end -- 3D Armor mod if minetest.get_modpath("3d_armor") then lucky_block:add_blocks({ {"dro", {"3d_armor:boots_wood"}}, {"dro", {"3d_armor:leggings_wood"}}, {"dro", {"3d_armor:chestplate_wood"}}, {"dro", {"3d_armor:helmet_wood"}}, {"tel"}, {"dro", {"3d_armor:boots_steel"}}, {"dro", {"3d_armor:leggings_steel"}}, {"dro", {"3d_armor:chestplate_steel"}}, {"dro", {"3d_armor:helmet_steel"}}, {"dro", {"3d_armor:boots_gold"}}, {"dro", {"3d_armor:leggings_gold"}}, {"dro", {"3d_armor:chestplate_gold"}}, {"exp"}, {"dro", {"3d_armor:helmet_gold"}}, {"dro", {"3d_armor:boots_cactus"}}, {"dro", {"3d_armor:leggings_cactus"}}, {"dro", {"3d_armor:chestplate_cactus"}}, {"dro", {"3d_armor:helmet_cactus"}}, {"dro", {"3d_armor:boots_bronze"}}, {"dro", {"3d_armor:leggings_bronze"}}, {"dro", {"3d_armor:chestplate_bronze"}}, {"dro", {"3d_armor:helmet_bronze"}}, {"lig"} }) end -- 3D Armor's Shields mod if minetest.get_modpath("shields") then lucky_block:add_blocks({ {"dro", {"shields:shield_wood"}}, {"dro", {"shields:shield_steel"}}, {"dro", {"shields:shield_gold"}}, {"dro", {"shields:shield_cactus"}}, {"dro", {"shields:shield_bronze"}}, {"exp", 2} }) end -- Fire mod if minetest.get_modpath("fire") then lucky_block:add_blocks({ {"dro", {"fire:flint_and_steel"}}, {"dro", {"default:flint"}, 5}, {"nod", "fire:basic_flame", 1}, {"nod", "fire:permanent_flame", 1}, {"sch", "firetrap", 1, true}, }) end -- Caverealms if minetest.get_modpath("caverealms") then lucky_block:add_blocks({ {"sch", "sandtrap", 1, true, {{"default:sand", "caverealms:coal_dust"}} }, {"sch", "obsidiantrap", 1, true, {{"default:obsidian", "caverealms:glow_obsidian_brick_2"}} }, {"flo", 5, {"caverealms:stone_with_moss"}, 2}, {"flo", 5, {"caverealms:stone_with_lichen"}, 2}, {"flo", 5, {"caverealms:stone_with_algae"}, 2}, }) end -- TNT mod if minetest.get_modpath("tnt") then local p = "tnt:tnt_burning" lucky_block:add_blocks({ {"dro", {"tnt:gunpowder"}, 5}, {"fal", {p, p, p, p, p}, 1, true, 4}, {"nod", "tnt:tnt_burning", 0}, }) end -- More Ore's mod if minetest.get_modpath("moreores") then lucky_block:add_blocks({ {"nod", "moreores:tin_block", 0}, {"nod", "moreores:silver_block", 0}, {"fal", {"default:sand", "default:sand", "default:sand", "default:sand", "default:sand", "default:sand", "moreores:mithril_block"}, 0}, {"dro", {"moreores:pick_silver"}}, {"dro", {"moreores:pick_mithril"}}, {"tro", "moreores:silver_block"}, {"dro", {"moreores:shovel_silver"}}, {"dro", {"moreores:shovel_mithril"}}, {"dro", {"moreores:axe_silver"}}, {"dro", {"moreores:axe_mithril"}}, {"tro", "moreores:mithril_block"}, {"dro", {"moreores:hoe_silver"}}, {"dro", {"moreores:hoe_mithril"}}, {"lig"}, {"nod", "default:chest", 0, { {name = "moreores:silver_lump", max = 10}, {name = "moreores:mithril_lump", max = 10}, {name = "default:copper_lump", max = 10}, {name = "default:gold_lump", max = 10}, {name = "default:iron_lump", max = 10}, {name = "default:tin_lump", max = 10}, {name = "default:coal_lump", max = 10}, {name = "default:clay_lump", max = 10}, }}, }) if minetest.get_modpath("3d_armor") then lucky_block:add_blocks({ {"dro", {"3d_armor:helmet_mithril"}}, {"dro", {"3d_armor:chestplate_mithril"}}, {"dro", {"3d_armor:leggings_mithril"}}, {"dro", {"3d_armor:boots_mithril"}}, }) end if minetest.get_modpath("shields") then lucky_block:add_blocks({ {"dro", {"shields:shield_mithril"}}, }) end end -- END moreores -- Moreblocks mod if minetest.get_modpath("moreblocks") then local p = "moreblocks:" local lav = {name = "default:lava_source"} local air = {name = "air"} local trs = {name = p.."trap_stone"} local trg = {name = p.."trap_glow_glass"} local trapstone_trap = { size = {x = 3, y = 6, z = 3}, data = { lav, lav, lav, air, air, air, air, air, air, air, air, air, air, air, air, trs, trs, trs, lav, lav, lav, air, air, air, air, air, air, air, air, air, air, trg, air, trs, air, trs, lav, lav, lav, air, air, air, air, air, air, air, air, air, air, air, air, trs, trs, trs, }, } lucky_block:add_schematics({ {"trapstonetrap", trapstone_trap, {x = 1, y = 6, z = 1}}, }) lucky_block:add_blocks({ {"dro", {p.."wood_tile"}, 10}, {"dro", {p.."wood_tile_center"}, 10}, {"dro", {p.."wood_tile_full"}, 10}, {"dro", {p.."wood_tile_offset"}, 10}, {"dro", {p.."circle_stone_bricks"}, 20}, {"dro", {p.."grey_bricks"}, 20}, {"dro", {p.."stone_tile"}, 10}, {"dro", {p.."split_stone_tile"}, 10}, {"dro", {p.."split_stone_tile_alt"}, 10}, {"flo", 5, {"moreblocks:stone_tile", "moreblocks:split_stone_tile"}, 2}, {"dro", {p.."tar", p.."cobble_compressed"}, 10}, {"dro", {p.."cactus_brick"}, 10}, {"dro", {p.."cactus_checker"}, 10}, {"nod", {p.."empty_bookshelf"}, 0}, {"dro", {p.."coal_stone"}, 10}, {"dro", {p.."coal_checker"}, 10}, {"dro", {p.."coal_stone_bricks"}, 10}, {"dro", {p.."coal_glass"}, 10}, {"exp", 3}, {"dro", {p.."iron_stone"}, 10}, {"dro", {p.."iron_checker"}, 10}, {"dro", {p.."iron_stone_bricks"}, 10}, {"dro", {p.."iron_glass"}, 10}, {"dro", {p.."trap_obsidian"}, 10}, {"dro", {p.."trap_sandstone"}, 10}, {"dro", {p.."trap_desert_stone"}, 10}, {"dro", {p.."trap_stone"}, 10}, {"dro", {p.."trap_glass"}, 10}, {"dro", {p.."trap_glow_glass"}, 10}, {"dro", {p.."trap_obsidian_glass"}, 10}, {"lig"}, {"sch", "trapstonetrap", 0, true}, {"dro", {p.."all_faces_tree"}, 10}, {"dro", {p.."all_faces_jungle_tree"}, 10}, {"dro", {p.."all_faces_pine_tree"}, 10}, {"dro", {p.."all_faces_acacia_tree"}, 10}, {"dro", {p.."all_faces_aspen_tree"}, 10}, {"flo", 3, {p.."all_faces_acacia_tree"}, 1}, {"dro", {p.."plankstone"}, 10}, {"fal", {p.."all_faces_tree", p.."all_faces_tree", p.."all_faces_tree", p.."all_faces_tree", p.."all_faces_tree"}, 0}, {"dro", {p.."glow_glass"}, 10}, {"dro", {p.."super_glow_glass"}, 10}, {"dro", {p.."clean_glass"}, 10}, {"nod", "default:chest", 0, { {name = p.."rope", max = 10}, {name = p.."sweeper", max = 1}, {name = p.."circular_saw", max = 1}, {name = p.."grey_bricks", max = 10}, {name = p.."tar", max = 3}}}, {"flo", 3, {"moreblocks:copperpatina"}, 1}, }) end -- Bags mod if minetest.get_modpath("bags") or minetest.get_modpath("sfinv_bags") then minetest.register_craftitem(":bags:spar", { description = "Spar Bag", inventory_image = "bags_spar.png", groups = {bagslots = 2, flammable = 2}, }) lucky_block:add_blocks({ {"dro", {"bags:spar"}}, {"dro", {"bags:small"}}, {"dro", {"bags:medium"}}, {"dro", {"bags:large"}}, {"dro", {"bags:trolley"}}, }) end -- Nether Mod if minetest.get_modpath("nether") then local p = "nether:" -- add well blocks lucky_block.wellblocks[#lucky_block.wellblocks + 1] = {p.."glowstone", 4} lucky_block.wellblocks[#lucky_block.wellblocks + 1] = {p.."glowstone_deep", 4} -- add lucky blocks lucky_block:add_blocks({ {"flo", 3, {"nether:rack", "nether:brick", "nether:brick_cracked"}, 1}, {"flo", 3, {"nether:rack_deep", "nether:brick_deep"}, 1}, {"flo", 3, {"nether:basalt", "nether:basalt_hewn", "nether:basalt_chiselled"}, 1}, {"nod", "nether:glowstone", 0}, {"nod", "nether:glowstone_deep", 0}, {"exp", 3}, {"fal", {p.."sand", p.."sand", p.."sand", p.."sand", p.."sand", p.."glowstone"}, 0}, {"nod", "nether:lava_crust", 1}, {"nod", "default:chest", 0, { {name = p.."fence_nether_brick", max = 5}, {name = p.."rack_wall", max = 5}, {name = p.."rack", max = 5}, {name = p.."axe_nether", max = 1}, {name = p.."sword_nether", max = 1}, {name = p.."nether_lump", max = 3}, }}, {"exp", 2}, {"sch", "wishingwell", 0, true, { {"default:stonebrick", p.."brick"}, {"stairs:slab_stonebrick", "stairs:slab_nether_brick"}, {"default:fence_wood", p.."fence_nether_brick"}, {"default:steelblock", p.."basalt_chiselled"}, {"default:water_source", "default:lava_source"}, {"default:glass", "default:obsidian_glass"} }}, {"lig"}, {"sch", "platform", 1, true, { {"default:sandstonebrick", p.."brick_deep"}, {"default:sandstone", p.."rack_deep"}, {"lucky_block:lucky_block", "lucky_block:super_lucky_block"} }}, {"nod", "default:chest", 0, { {name = p.."rack_deep_wall", max = 5}, {name = p.."rack_deep", max = 5}, {name = p.."pick_nether", max = 1}, {name = p.."shovel_nether", max = 1}, {name = p.."nether_lump", max = 3} }}, }) if minetest.get_modpath("3d_armor") then lucky_block:add_blocks({ {"dro", {"3d_armor:helmet_nether"}}, {"dro", {"3d_armor:chestplate_nether"}}, {"dro", {"3d_armor:leggings_nether"}}, {"dro", {"3d_armor:boots_nether"}} }) end if minetest.get_modpath("shields") then lucky_block:add_blocks({ {"dro", {"shields:shield_nether"}} }) end if minetest.get_modpath("xpanes") and minetest.registered_nodes["nether:geode"] then lucky_block:add_blocks({ {"dro", {"xpanes:nether_crystal_pane_flat"}, 5}, {"nod", "nether_geode", 0}, {"dro", {"nether_geode"}, 3} }) end end -- Additional Wishing Well Styles lucky_block:add_blocks({ {"sch", "wishingwell", 0, true}, {"sch", "wishingwell", 0, true, { {"default:stonebrick", "default:silver_sandstone_brick"}, {"stairs:slab_stonebrick", "stairs:slab_silver_sandstone_brick"}, {"default:fence_wood", "default:fence_aspen_wood"}, {"default:steelblock", "default:tinblock"}, } }, {"sch", "wishingwell", 0, true, { {"default:stonebrick", "default:sandstonebrick"}, {"stairs:slab_stonebrick", "stairs:slab_sandstonebrick"}, {"default:fence_wood", "default:fence_junglewood"}, {"default:steelblock", "default:goldblock"}, } }, {"sch", "wishingwell", 0, true, { {"default:stonebrick", "default:desert_stonebrick"}, {"stairs:slab_stonebrick", "stairs:slab_desert_stonebrick"}, {"default:fence_wood", "default:fence_acacia_wood"}, {"default:steelblock", "default:copperblock"}, } }, {"sch", "wishingwell", 0, true, { {"default:stonebrick", "default:desert_sandstone_brick"}, {"stairs:slab_stonebrick", "stairs:slab_desert_sandstone_brick"}, {"default:fence_wood", "default:fence_pine_wood"}, {"default:steelblock", "default:bronzeblock"}, } }, }) -- Special items minetest.register_node("lucky_block:void_mirror", { description = S("Void Mirror (Place to see through solid walls during daytime)"), drawtype = "normal", tiles = {"default_obsidian_glass.png^[brighten"}, use_texture_alpha = "clip", groups = {snappy = 3, not_in_creative_inventory = 1}, sounds = default.node_sound_glass_defaults(), }) lucky_block:add_blocks({ {"dro", {"lucky_block:void_mirror"}}, }) -- Troll local green = minetest.get_color_escape_sequence("#1eff00") local function fake_items(pos, player, def) for n = 1, 25 do minetest.add_particle({ time = 15, pos = { x = pos.x + math.random(-20, 20) / 10, y = pos.y, z = pos.z + math.random(-20, 20) / 10, }, velocity = {x = 0, y = 2, z = 0}, acceleration = {x = 0, y = -10, z = 0}, expirationtime = 4, maxsize = 4, texture = def.tex, glow = 2, size = 5, collisiondetection = true, vertical = true, }) end minetest.chat_send_player(player:get_player_name(), green .. S("Wow! So many faux " .. def.txt .. "!")) end lucky_block:add_blocks({ {"cus", fake_items, {tex = "default_diamond.png", txt = "diamonds"} }, {"cus", fake_items, {tex = "default_gold_ingot.png", txt = "ingots"} }, {"cus", fake_items, {tex = "default_mese_crystal.png", txt = "crystals"} }, }) -- Void Pick local old_handle_node_drops = minetest.handle_node_drops function minetest.handle_node_drops(pos, drops, digger) -- are we holding Crystal Shovel? if not digger or digger:get_wielded_item():get_name() ~= "lucky_block:pick_void" then return old_handle_node_drops(pos, drops, digger) end local nn = minetest.get_node(pos).name if nn == "default:furnace_active" or nn:find("xpanes:") or nn:find("door") or minetest.get_item_group(nn, "cracky") == 0 then return old_handle_node_drops(pos, drops, digger) end return old_handle_node_drops(pos, {ItemStack(nn)}, digger) end minetest.register_tool("lucky_block:pick_void", { description = "Void pick (Soft Touch)", inventory_image = "lucky_void_pick.png", wield_image = "lucky_void_pick.png^[transformR90", tool_capabilities = { full_punch_interval = 1.2, max_drop_level = 3, groupcaps = { cracky = { times = {[1] = 2.4, [2] = 1.2, [3] = 0.60}, uses = 20, maxlevel = 3 } }, damage_groups = {fleshy = 5}, }, groups = {pickaxe = 1, not_in_creative_inventory = 1}, sound = {breaks = "default_tool_breaks"} }) lucky_block:add_blocks({ {"nod", "default:chest", 0, { {name = "lucky_block:pick_void", max = 1, chance = 7}, {name = "default:stone_with_coal", max = 5}, {name = "default:stone_with_iron", max = 5}, {name = "default:stone_with_copper", max = 5}, {name = "default:stone_with_mese", max = 5}, {name = "default:stone_with_gold", max = 5}, {name = "default:stone_with_diamond", max = 5}, }} })