mirror of
https://git.minetest.land/MineClone2/MineClone2.git
synced 2025-01-07 17:17:31 +01:00
more new structures
This commit is contained in:
parent
782e9a4f61
commit
64aaa91cf8
@ -27,7 +27,6 @@ mcl_structures.register_structure = function(name, def, nospawn)
|
|||||||
vl_structures.register_structure(name, def)
|
vl_structures.register_structure(name, def)
|
||||||
end
|
end
|
||||||
|
|
||||||
dofile(modpath.."/campsite.lua")
|
|
||||||
dofile(modpath.."/desert_temple.lua")
|
dofile(modpath.."/desert_temple.lua")
|
||||||
dofile(modpath.."/desert_well.lua")
|
dofile(modpath.."/desert_well.lua")
|
||||||
dofile(modpath.."/end_city.lua")
|
dofile(modpath.."/end_city.lua")
|
||||||
@ -41,7 +40,6 @@ dofile(modpath.."/ocean_temple.lua")
|
|||||||
dofile(modpath.."/pillager_outpost.lua")
|
dofile(modpath.."/pillager_outpost.lua")
|
||||||
dofile(modpath.."/ruined_portal.lua")
|
dofile(modpath.."/ruined_portal.lua")
|
||||||
dofile(modpath.."/shipwrecks.lua")
|
dofile(modpath.."/shipwrecks.lua")
|
||||||
dofile(modpath.."/spider_cocoon.lua")
|
|
||||||
dofile(modpath.."/witch_hut.lua")
|
dofile(modpath.."/witch_hut.lua")
|
||||||
dofile(modpath.."/woodland_mansion.lua")
|
dofile(modpath.."/woodland_mansion.lua")
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ vl_structures.register_structure("campsite",{
|
|||||||
y_max = mcl_vars.mg_overworld_max,
|
y_max = mcl_vars.mg_overworld_max,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
prepare = { tolerance = 1, foundation = -2, clear_top = 1, padding = 1, corners = 1 }, -- low tolerance, perform little terraforming
|
prepare = { tolerance = 1, foundation = -2, clear_top = 1, padding = 1, corners = 1 }, -- low tolerance, perform little terraforming
|
||||||
|
biomes = { "Forest", "FlowerForest", "Plains", "SunflowerPlains", "Savanna", "SavannaM", "Taiga", "ColdTaiga" },
|
||||||
filenames = {
|
filenames = {
|
||||||
modpath.."/schematics/campsite_1.mts"
|
modpath.."/schematics/campsite_1.mts"
|
||||||
},
|
},
|
||||||
@ -67,5 +68,6 @@ vl_structures.register_structure("campsite",{
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
-- TODO: spawn a band of pillagers?
|
||||||
})
|
})
|
||||||
|
|
7
mods/MAPGEN/vl_extra_structures/init.lua
Normal file
7
mods/MAPGEN/vl_extra_structures/init.lua
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
local modname = minetest.get_current_modname()
|
||||||
|
local modpath = minetest.get_modpath(modname)
|
||||||
|
|
||||||
|
dofile(modpath.."/campsite.lua")
|
||||||
|
dofile(modpath.."/obelisks.lua")
|
||||||
|
dofile(modpath.."/spider_cocoon.lua")
|
||||||
|
dofile(modpath.."/witches_circle.lua")
|
4
mods/MAPGEN/vl_extra_structures/mod.conf
Normal file
4
mods/MAPGEN/vl_extra_structures/mod.conf
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
name = vl_extra_structures
|
||||||
|
author = kno10
|
||||||
|
description = Some additional decorative structures
|
||||||
|
depends = mcl_init, mcl_util, mcl_loot, vl_terraforming, vl_structures
|
52
mods/MAPGEN/vl_extra_structures/obelisks.lua
Normal file
52
mods/MAPGEN/vl_extra_structures/obelisks.lua
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
local modname = minetest.get_current_modname()
|
||||||
|
local modpath = minetest.get_modpath(modname)
|
||||||
|
|
||||||
|
vl_structures.register_structure("obelisk_sand",{
|
||||||
|
place_on = {"group:sand"},
|
||||||
|
flags = "place_center_x, place_center_z",
|
||||||
|
chunk_probability = 12,
|
||||||
|
y_max = mcl_vars.mg_overworld_max,
|
||||||
|
y_min = 1,
|
||||||
|
y_offset = -3,
|
||||||
|
prepare = { tolerance=3, padding = 0, clear=false },
|
||||||
|
biomes = { "Desert" },
|
||||||
|
filenames = {
|
||||||
|
modpath.."/schematics/obelisk_sand_1.mts",
|
||||||
|
modpath.."/schematics/obelisk_sand_2.mts",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vl_structures.register_structure("obelisk_light",{
|
||||||
|
place_on = {"group:sand"},
|
||||||
|
flags = "place_center_x, place_center_z",
|
||||||
|
chunk_probability = 25,
|
||||||
|
y_max = mcl_vars.mg_overworld_max,
|
||||||
|
y_min = 1,
|
||||||
|
y_offset = -2,
|
||||||
|
prepare = { tolerance=2, padding = 0, clear=false },
|
||||||
|
biomes = { "Desert" },
|
||||||
|
filenames = {
|
||||||
|
modpath.."/schematics/obelisk_fire.mts",
|
||||||
|
},
|
||||||
|
after_place = function(p,_,pr,p1,p2)
|
||||||
|
for _,n in pairs(minetest.find_nodes_in_area(p1,p2,{"group:wall"})) do
|
||||||
|
mcl_walls.update_wall(n)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vl_structures.register_structure("obelisk_cobble",{
|
||||||
|
place_on = {"group:grass_block", "group:dirt"},
|
||||||
|
flags = "place_center_x, place_center_z",
|
||||||
|
chunk_probability = 25,
|
||||||
|
y_max = mcl_vars.mg_overworld_max,
|
||||||
|
y_min = 1,
|
||||||
|
y_offset = -2,
|
||||||
|
prepare = { tolerance=2, padding=0, clear=false },
|
||||||
|
biomes = { "Plains", "SunflowerPlains", "Forest", "FlowerForest", "BrichForest", "Taiga", "RoofedForest", "MegaTaiga", "MegaSpruceTaiga", },
|
||||||
|
filenames = {
|
||||||
|
modpath.."/schematics/obelisk_cobble.mts",
|
||||||
|
modpath.."/schematics/obelisk_cobble_broken.mts",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
BIN
mods/MAPGEN/vl_extra_structures/schematics/obelisk_cobble.mts
Normal file
BIN
mods/MAPGEN/vl_extra_structures/schematics/obelisk_cobble.mts
Normal file
Binary file not shown.
Binary file not shown.
BIN
mods/MAPGEN/vl_extra_structures/schematics/obelisk_fire.mts
Normal file
BIN
mods/MAPGEN/vl_extra_structures/schematics/obelisk_fire.mts
Normal file
Binary file not shown.
BIN
mods/MAPGEN/vl_extra_structures/schematics/obelisk_sand_1.mts
Normal file
BIN
mods/MAPGEN/vl_extra_structures/schematics/obelisk_sand_1.mts
Normal file
Binary file not shown.
BIN
mods/MAPGEN/vl_extra_structures/schematics/obelisk_sand_2.mts
Normal file
BIN
mods/MAPGEN/vl_extra_structures/schematics/obelisk_sand_2.mts
Normal file
Binary file not shown.
BIN
mods/MAPGEN/vl_extra_structures/schematics/witch_circle.mts
Normal file
BIN
mods/MAPGEN/vl_extra_structures/schematics/witch_circle.mts
Normal file
Binary file not shown.
43
mods/MAPGEN/vl_extra_structures/witches_circle.lua
Normal file
43
mods/MAPGEN/vl_extra_structures/witches_circle.lua
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
local modname = minetest.get_current_modname()
|
||||||
|
local S = minetest.get_translator(modname)
|
||||||
|
local modpath = minetest.get_modpath(modname)
|
||||||
|
|
||||||
|
local peaceful = minetest.settings:get_bool("only_peaceful_mobs", false)
|
||||||
|
|
||||||
|
local function spawn_witch(pos,def,pr,p1,p2)
|
||||||
|
local c = minetest.find_node_near(p1,15,{"mcl_cauldrons:cauldron"})
|
||||||
|
if c then
|
||||||
|
local nn = minetest.find_nodes_in_area_under_air(vector.new(p1.x,c.y-1,p1.z),vector.new(p2.x,c.y-1,p2.z),{"group:stone"})
|
||||||
|
local witch
|
||||||
|
if not peaceful then
|
||||||
|
witch = minetest.add_entity(vector.offset(nn[math.random(#nn)],0,1,0),"mobs_mc:witch"):get_luaentity()
|
||||||
|
witch._home = c
|
||||||
|
witch.can_despawn = false
|
||||||
|
end
|
||||||
|
local catobject = minetest.add_entity(vector.offset(nn[math.random(#nn)],0,1,0),"mobs_mc:cat")
|
||||||
|
if catobject and catobject:get_pos() then
|
||||||
|
local cat=catobject:get_luaentity()
|
||||||
|
cat.object:set_properties({textures = {"mobs_mc_cat_black.png"}})
|
||||||
|
cat.owner = "!witch!" --so it's not claimable by player
|
||||||
|
cat._home = c
|
||||||
|
cat.can_despawn = false
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vl_structures.register_structure("witches_circle",{
|
||||||
|
place_on = {"group:grass_block", "group:dirt", "mclx_core:river_water_source"},
|
||||||
|
flags = "place_center_x, place_center_z, all_surfaces",
|
||||||
|
chunk_probability = 14,
|
||||||
|
prepare = { tolerance=4, clear_bottom=1, clear_top=-1, padding=0, corners=3, foundation=-2 },
|
||||||
|
y_max = mcl_vars.mg_overworld_max,
|
||||||
|
y_min = 1,
|
||||||
|
y_offset = -1,
|
||||||
|
force_placement = false,
|
||||||
|
biomes = { "Swampland", "Swampland_shore", "RoofedForest", },
|
||||||
|
filenames = { modpath.."/schematics/witch_circle.mts" },
|
||||||
|
construct_nodes = {"group:wall"}, -- fix wall orientation
|
||||||
|
after_place = spawn_witch,
|
||||||
|
})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user