diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/armor_stand.lua | 36 | ||||
-rw-r--r-- | src/main/flower_spread.lua | 8 | ||||
-rw-r--r-- | src/main/lucky_block.lua | 29 |
3 files changed, 59 insertions, 14 deletions
diff --git a/src/main/armor_stand.lua b/src/main/armor_stand.lua new file mode 100644 index 0000000..e15f177 --- /dev/null +++ b/src/main/armor_stand.lua @@ -0,0 +1,36 @@ +local armor_parts = {"head", "torso", "legs", "feet"} +skycraft.armor_list = {} +for _, n in pairs(armor_parts) do + skycraft.armor_list[n] = skycraft.register_group_list("armor_" .. n) +end +skycraft.head_list = skycraft.register_group_list("head") + +function skycraft.place_and_fill_armor_stand(pos, player) + minetest.set_node(pos, {name = "mcl_armor_stand:armor_stand"}) + local nodedef = minetest.registered_nodes["mcl_armor_stand:armor_stand"] + local node = minetest.get_node(pos) + local armor_pieces = {} + for _, n in pairs(armor_parts) do + local piece_list = skycraft.armor_list[n] + table.insert(armor_pieces, ItemStack(piece_list[math.random(#piece_list)])) + end + local function equip_armor(i) + local piece = armor_pieces[i] + if not piece then return end + nodedef.on_rightclick(pos, node, player, ItemStack(piece)) + minetest.after(0.5, equip_armor, i + 1) + end + minetest.after(0.5, equip_armor, 1) +end + +minetest.register_chatcommand("armorstand", { + description = "Spawn an armor stand at your position and fill it with random armor", + privs = {server = true} + func = function(name) + local player = minetest.get_player_by_name(name) + if not player then return false, "You have to be online to use this command" end + skycraft.place_and_fill_armor_stand(vector.floor(player:get_pos()), player) + return true, "Armor stand spawned, equipping." + end +}) + diff --git a/src/main/flower_spread.lua b/src/main/flower_spread.lua index a808d9b..015253e 100644 --- a/src/main/flower_spread.lua +++ b/src/main/flower_spread.lua @@ -1,3 +1,6 @@ +skycraft.register_group_list("flower") +skycraft.group_lists["flower"] = {"mcl_flowers:fern", "mcl_flowers:double_fern", "mcl_flowers:tallgrass", "mcl_flowers:double_grass"} +local flower_list = skycraft.get_group_list("flower") minetest.register_abm({ nodenames = {"mcl_core:dirt_with_grass"}, interval = 300, @@ -5,9 +8,8 @@ minetest.register_abm({ action = function(pos, node) pos.y = pos.y + 1 local light = minetest.get_node_light(pos) or 0 - if minetest.get_node(pos).name == "air" and light > 12 and not minetest.find_node_near(pos, 2, {"group:flora"}) then - local flowers = {"mcl_flowers:blue_orchid", "mcl_flowers:azure_bluet", "mcl_flowers:allium", "mcl_flowers:tulip_white", "mcl_flowers:tulip_red", "mcl_flowers:tulip_pink", "mcl_flowers:tulip_orange", "mcl_flowers:oxeye_daisy", "mcl_flowers:dandelion", "mcl_flowers:poppy", "mcl_flowers:fern", "mcl_flowers:tallgrass", "mcl_flowers:double_grass"} - minetest.set_node(pos, {name = flowers[math.random(#flowers)]}) + if minetest.get_node(pos).name == "air" and light > 12 and not minetest.find_node_near(pos, 2, {"group:flower"}) then + minetest.set_node(pos, {name = flower_list[math.random(#flower_list)]}) end end }) diff --git a/src/main/lucky_block.lua b/src/main/lucky_block.lua index 7bb00d4..f5f5b00 100644 --- a/src/main/lucky_block.lua +++ b/src/main/lucky_block.lua @@ -1,3 +1,5 @@ +skycraft.glazed_terracotta_list = {} + local old_on_dig = minetest.registered_nodes["lucky_block:lucky_block"].on_dig minetest.override_item("lucky_block:lucky_block", { @@ -15,21 +17,26 @@ minetest.override_item("lucky_block:void_mirror", { minetest.register_alias_force("lucky_block:super_lucky_block", "lucky_block:lucky_block") -minetest.clear_craft({output = "lucky_block:lucky_block"}) - -local discs = {} -for i=1, 8 do - table.insert(discs, "mcl_jukebox:record_" .. tostring(i)) -end - lucky_block:add_blocks({ - {"dro", {"mcl_core:dirt", "mcl_core:sand", "mcl_core:gravel"}, 100}, - {"dro", discs, 1}, + {"dro", {"mcl_core:goldblock", "mcl_core:gold_ingot", "mcl_core:gold_nugget"}, 256}, + {"dro", {"mcl_core:dirt", "mcl_core:sand", "mcl_core:gravel"}, 64}, {"spw", "mobs_mc:zombie", 5}, + {"spw", "mobs_mc:husk", 5}, {"spw", "mobs_mc:spider", 4}, + {"spw", "mobs_mc:cave_spider", 4}, {"spw", "mobs_mc:skeleton", 2}, + {"spw", "mobs_mc:stray", 2}, {"spw", "mobs_mc:creeper", 1}, {"spw", "mobs_mc:enderman", 1}, - + {"spw", "mobs_mc:mooshroom", 1}, + {"spw", "mobs_mc:slime", 1}, + {"spw", "mobs_mc:bat", 10}, + {"nod", "mcl_cake:cake"}, + {"nod", "mcl_farming:pumpkin"}, + {"dro", skycraft.register_group_list("music_record"), 1}, + {"dro", skycraft.register_group_list("horse_armor"), 1}, + {"nod", skycraft.register_group_list("glazed_terracotta")}, + {"nod", skycraft.register_group_list("hardened_clay")}, + {"nod", skycraft.register_group_list("concrete")}, + {"cus", skycraft.place_and_fill_armor_stand}, }) - |