mirror of
https://git.minetest.land/MineClone2/MineClone2.git
synced 2025-01-06 08:37:30 +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)
|
||||
end
|
||||
|
||||
dofile(modpath.."/campsite.lua")
|
||||
dofile(modpath.."/desert_temple.lua")
|
||||
dofile(modpath.."/desert_well.lua")
|
||||
dofile(modpath.."/end_city.lua")
|
||||
@ -41,7 +40,6 @@ dofile(modpath.."/ocean_temple.lua")
|
||||
dofile(modpath.."/pillager_outpost.lua")
|
||||
dofile(modpath.."/ruined_portal.lua")
|
||||
dofile(modpath.."/shipwrecks.lua")
|
||||
dofile(modpath.."/spider_cocoon.lua")
|
||||
dofile(modpath.."/witch_hut.lua")
|
||||
dofile(modpath.."/woodland_mansion.lua")
|
||||
|
||||
|
@ -8,6 +8,7 @@ vl_structures.register_structure("campsite",{
|
||||
y_max = mcl_vars.mg_overworld_max,
|
||||
y_min = 1,
|
||||
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 = {
|
||||
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