2022-08-31 11:41:04 +02:00
|
|
|
local modname = minetest.get_current_modname()
|
|
|
|
local modpath = minetest.get_modpath(modname)
|
|
|
|
|
2022-10-29 01:26:32 +02:00
|
|
|
local spawnon = {"mcl_end:purpur_block"}
|
|
|
|
|
2024-08-23 10:55:30 +02:00
|
|
|
local function spawn_shulkers(pos,def,pr,p1,p2)
|
|
|
|
vl_structures.spawn_mobs("mobs_mc:shulker",spawnon,p1,p2,pr,1)
|
|
|
|
local guard = minetest.find_nodes_in_area(p1,p2,{"mcl_itemframes:item_frame"})
|
|
|
|
if #guard > 0 then
|
2024-08-31 22:34:29 +02:00
|
|
|
minetest.add_entity(vector.offset(guard[1],0,-0.5,0),"mobs_mc:shulker") -- fixme: MCLA uses -0.5?
|
2022-09-11 23:44:33 +02:00
|
|
|
end
|
2022-08-31 11:41:04 +02:00
|
|
|
end
|
|
|
|
|
2024-08-23 10:55:30 +02:00
|
|
|
vl_structures.register_structure("end_shipwreck",{
|
2022-08-31 11:41:04 +02:00
|
|
|
place_on = {"mcl_end:end_stone"},
|
|
|
|
flags = "place_center_x, place_center_z, all_floors",
|
2024-08-23 10:55:30 +02:00
|
|
|
y_offset = function(pr) return pr:next(20,50) end,
|
|
|
|
force_placement = false,
|
|
|
|
prepare = { foundation = false, clear = false },
|
2024-08-06 20:37:44 +02:00
|
|
|
chunk_probability = 25,
|
2022-09-13 02:37:48 +02:00
|
|
|
--y_max = mcl_vars.mg_end_max,
|
|
|
|
--y_min = mcl_vars.mg_end_min -100,
|
2022-08-31 11:41:04 +02:00
|
|
|
biomes = { "End", "EndHighlands", "EndMidlands", "EndBarrens", "EndSmallIslands" },
|
|
|
|
filenames = {
|
|
|
|
modpath.."/schematics/mcl_structures_end_shipwreck_1.mts",
|
|
|
|
},
|
2022-09-11 23:44:33 +02:00
|
|
|
construct_nodes = {"mcl_chests:ender_chest_small","mcl_chests:ender_chest","mcl_brewing:stand_000","mcl_chests:violet_shulker_box_small"},
|
2024-08-23 10:55:30 +02:00
|
|
|
after_place = function(pos,def,pr,p1,p2)
|
|
|
|
local fr = minetest.find_nodes_in_area(p1,p2,{"mcl_itemframes:item_frame"})
|
|
|
|
if #fr > 0 and mcl_itemframes then
|
2024-08-31 22:34:29 +02:00
|
|
|
mcl_itemframes.update_item_entity(fr[1],minetest.get_node(fr[1]))
|
2022-09-11 23:44:33 +02:00
|
|
|
end
|
2024-08-23 10:55:30 +02:00
|
|
|
return spawn_shulkers(pos,def,pr,p1,p2)
|
2022-09-11 23:44:33 +02:00
|
|
|
end,
|
2022-08-31 11:41:04 +02:00
|
|
|
loot = {
|
2022-09-11 23:44:33 +02:00
|
|
|
[ "mcl_itemframes:item_frame" ] ={{
|
|
|
|
stacks_min = 1,
|
|
|
|
stacks_max = 1,
|
|
|
|
items = {
|
|
|
|
{ itemstring = "mcl_armor:elytra", weight = 100 },
|
|
|
|
},
|
|
|
|
}},
|
2022-08-31 11:41:04 +02:00
|
|
|
[ "mcl_chests:chest_small" ] ={{
|
|
|
|
stacks_min = 2,
|
|
|
|
stacks_max = 6,
|
|
|
|
items = {
|
|
|
|
{ itemstring = "mcl_mobitems:bone", weight = 20, amount_min = 4, amount_max=6 },
|
|
|
|
{ itemstring = "mcl_farming:beetroot_seeds", weight = 16, amount_min = 1, amount_max=10 },
|
|
|
|
{ itemstring = "mcl_core:gold_ingot", weight = 15, amount_min = 2, amount_max = 7 },
|
2024-08-23 10:55:30 +02:00
|
|
|
{ itemstring = "mcl_bamboo:bamboo", weight = 15, amount_min = 1, amount_max=3 },
|
2022-08-31 11:41:04 +02:00
|
|
|
{ itemstring = "mcl_core:iron_ingot", weight = 15, amount_min = 4, amount_max = 8 },
|
|
|
|
{ itemstring = "mcl_core:diamond", weight = 3, amount_min = 2, amount_max = 7 },
|
|
|
|
{ itemstring = "mcl_mobitems:saddle", weight = 3, },
|
|
|
|
{ itemstring = "mcl_core:emerald", weight = 2, amount_min = 1, amount_max = 3 },
|
2023-08-31 17:17:38 +02:00
|
|
|
{ itemstring = "mcl_armor:spire", amount_min = 1, amount_max = 1 },
|
2022-08-31 11:41:04 +02:00
|
|
|
{ itemstring = "mcl_books:book", weight = 1, func = function(stack, pr)
|
|
|
|
mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr)
|
|
|
|
end },
|
|
|
|
{ itemstring = "mcl_tools:pick_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:shovel_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:sword_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:helmet_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:chestplate_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:leggings_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:boots_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:pick_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:shovel_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:sword_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:helmet_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:chestplate_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:leggings_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:boots_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_core:emerald", weight = 2, amount_min = 1, amount_max = 3 },
|
|
|
|
{ itemstring = "mcl_mobitems:iron_horse_armor", weight = 1, },
|
|
|
|
{ itemstring = "mcl_mobitems:gold_horse_armor", weight = 1, },
|
|
|
|
{ itemstring = "mcl_mobitems:diamond_horse_armor", weight = 1, },
|
|
|
|
{ itemstring = "mcl_core:apple_gold_enchanted", weight = 2, },
|
|
|
|
}
|
|
|
|
}}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
2024-08-23 10:55:30 +02:00
|
|
|
vl_structures.register_structure("end_boat",{
|
2022-08-31 11:41:04 +02:00
|
|
|
place_on = {"mcl_end:end_stone"},
|
|
|
|
flags = "place_center_x, place_center_z, all_floors",
|
|
|
|
y_offset = function(pr) return pr:next(15,30) end,
|
2024-08-23 10:55:30 +02:00
|
|
|
force_placement = false,
|
|
|
|
prepare = { foundation = false, clear = false },
|
|
|
|
chunk_probability = 10,
|
2022-09-13 02:37:48 +02:00
|
|
|
--y_max = mcl_vars.mg_end_max,
|
|
|
|
--y_min = mcl_vars.mg_end_min -100,
|
2022-08-31 11:41:04 +02:00
|
|
|
biomes = { "End", "EndHighlands", "EndMidlands", "EndBarrens", "EndSmallIslands" },
|
|
|
|
filenames = {
|
|
|
|
modpath.."/schematics/mcl_structures_end_boat.mts",
|
|
|
|
},
|
|
|
|
after_place = spawn_shulkers,
|
2022-09-11 23:44:33 +02:00
|
|
|
construct_nodes = {"mcl_chests:ender_chest_small","mcl_chests:ender_chest","mcl_brewing:stand_000","mcl_chests:violet_shulker_box_small"},
|
2022-08-31 11:41:04 +02:00
|
|
|
loot = {
|
|
|
|
[ "mcl_chests:chest_small" ] ={{
|
|
|
|
stacks_min = 2,
|
|
|
|
stacks_max = 6,
|
|
|
|
items = {
|
|
|
|
{ itemstring = "mcl_mobitems:bone", weight = 20, amount_min = 4, amount_max=6 },
|
|
|
|
{ itemstring = "mcl_farming:beetroot_seeds", weight = 16, amount_min = 1, amount_max=10 },
|
|
|
|
{ itemstring = "mcl_core:gold_ingot", weight = 15, amount_min = 2, amount_max = 7 },
|
|
|
|
{ itemstring = "mcl_core:iron_ingot", weight = 15, amount_min = 4, amount_max = 8 },
|
|
|
|
{ itemstring = "mcl_core:diamond", weight = 3, amount_min = 2, amount_max = 7 },
|
|
|
|
{ itemstring = "mcl_mobitems:saddle", weight = 3, },
|
|
|
|
{ itemstring = "mcl_core:emerald", weight = 2, amount_min = 1, amount_max = 3 },
|
|
|
|
{ itemstring = "mcl_tools:pick_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:shovel_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:sword_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:helmet_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:chestplate_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:leggings_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:boots_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:pick_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:shovel_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:helmet_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:leggings_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:boots_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_core:emerald", weight = 2, amount_min = 1, amount_max = 3 },
|
|
|
|
{ itemstring = "mcl_mobitems:iron_horse_armor", weight = 1, },
|
|
|
|
{ itemstring = "mcl_mobitems:gold_horse_armor", weight = 1, },
|
|
|
|
{ itemstring = "mcl_core:apple_gold_enchanted", weight = 2, },
|
|
|
|
}
|
|
|
|
}}
|
|
|
|
}
|
|
|
|
})
|
2022-10-29 01:26:32 +02:00
|
|
|
|
2024-08-23 10:55:30 +02:00
|
|
|
vl_structures.register_structure_spawn({
|
2022-10-29 01:26:32 +02:00
|
|
|
name = "mobs_mc:shulker",
|
|
|
|
y_min = mcl_vars.mg_end_min,
|
|
|
|
y_max = mcl_vars.mg_end_max,
|
|
|
|
chance = 10,
|
|
|
|
interval = 60,
|
|
|
|
limit = 6,
|
|
|
|
spawnon = spawnon,
|
|
|
|
})
|
2024-08-31 22:34:29 +02:00
|
|
|
|
|
|
|
vl_structures.register_structure("small_end_city",{
|
|
|
|
place_on = {"mcl_end:end_stone"},
|
|
|
|
flags = "place_center_x, place_center_z, all_floors",
|
|
|
|
y_offset = 0,
|
|
|
|
chunk_probability = 30,
|
|
|
|
prepare = { foundation = 2 },
|
|
|
|
biomes = { "End", "EndHighlands", "EndMidlands", "EndBarrens", "EndSmallIslands" },
|
|
|
|
sidelen = 20,
|
|
|
|
filenames = {
|
|
|
|
modpath.."/schematics/mcl_structures_end_city_simple.mts",
|
|
|
|
},
|
|
|
|
after_place = function(pos,def,pr,p1,p2)
|
|
|
|
-- not on roof
|
|
|
|
vl_structures.spawn_mobs("mobs_mc:shulker",spawnon,p1,vector.offset(p2,0,-2,0),pr,1)
|
|
|
|
end,
|
|
|
|
construct_nodes = {"mcl_chests:ender_chest_small","mcl_chests:ender_chest","mcl_brewing:stand_000","mcl_chests:violet_shulker_box_small"},
|
|
|
|
loot = {
|
|
|
|
[ "mcl_chests:chest_small" ] ={{
|
|
|
|
stacks_min = 2,
|
|
|
|
stacks_max = 6,
|
|
|
|
items = {
|
|
|
|
{ itemstring = "mcl_mobitems:bone", weight = 20, amount_min = 4, amount_max=6 },
|
|
|
|
{ itemstring = "mcl_farming:beetroot_seeds", weight = 16, amount_min = 1, amount_max=10 },
|
|
|
|
{ itemstring = "mcl_core:gold_ingot", weight = 15, amount_min = 2, amount_max = 7 },
|
|
|
|
{ itemstring = "mcl_core:iron_ingot", weight = 15, amount_min = 4, amount_max = 8 },
|
|
|
|
{ itemstring = "mcl_core:diamond", weight = 3, amount_min = 2, amount_max = 7 },
|
|
|
|
{ itemstring = "mcl_mobitems:saddle", weight = 3, },
|
|
|
|
{ itemstring = "mcl_core:emerald", weight = 2, amount_min = 1, amount_max = 3 },
|
|
|
|
{ itemstring = "mcl_tools:pick_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:shovel_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:sword_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:helmet_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:chestplate_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:leggings_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:boots_iron_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:pick_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_tools:shovel_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:helmet_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:leggings_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_armor:boots_diamond_enchanted", weight = 3,func = function(stack, pr) mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) end },
|
|
|
|
{ itemstring = "mcl_core:emerald", weight = 2, amount_min = 1, amount_max = 3 },
|
|
|
|
{ itemstring = "mcl_mobitems:iron_horse_armor", weight = 1, },
|
|
|
|
{ itemstring = "mcl_mobitems:gold_horse_armor", weight = 1, },
|
|
|
|
{ itemstring = "mcl_core:apple_gold_enchanted", weight = 2, },
|
|
|
|
}
|
|
|
|
}}
|
|
|
|
}
|
|
|
|
})
|