2017-08-21 00:25:22 +00:00
local mg_name = minetest.get_mapgen_setting ( " mg_name " )
2019-03-09 18:15:10 +00:00
local mg_seed = minetest.get_mapgen_setting ( " seed " )
2017-02-22 22:21:13 +00:00
2017-09-13 01:15:16 +00:00
-- Some mapgen settings
2019-02-09 01:42:11 +00:00
local superflat = mg_name == " flat " and minetest.get_mapgen_setting ( " mcl_superflat_classic " ) == " true "
2017-09-13 01:15:16 +00:00
2019-03-25 11:42:37 +00:00
local generate_fallen_logs = minetest.settings : get_bool ( " mcl_generate_fallen_logs " , false )
2017-09-13 01:15:16 +00:00
2021-05-29 14:12:33 +00:00
local mod_mcl_structures = minetest.get_modpath ( " mcl_structures " )
local mod_mcl_core = minetest.get_modpath ( " mcl_core " )
local mod_mcl_mushrooms = minetest.get_modpath ( " mcl_mushrooms " )
2022-06-16 20:17:11 +00:00
local mod_mcl_crimson = minetest.get_modpath ( " mcl_crimson " )
local mod_mcl_blackstone = minetest.get_modpath ( " mcl_blackstone " )
2022-07-28 16:28:09 +00:00
local mod_mcl_mangrove = minetest.get_modpath ( " mcl_mangrove " )
2021-05-29 14:12:33 +00:00
2019-03-09 23:35:16 +00:00
local deco_id_chorus_plant
2019-03-09 20:02:40 +00:00
2017-02-22 22:21:13 +00:00
--
2017-08-17 21:14:02 +00:00
-- Register biomes
2017-02-22 22:21:13 +00:00
--
2019-12-18 17:42:04 +00:00
local OCEAN_MIN = - 15
local DEEP_OCEAN_MAX = OCEAN_MIN - 1
local DEEP_OCEAN_MIN = - 31
2019-03-25 08:04:41 +00:00
--[[ Special biome field: _mcl_biome_type:
Rough categorization of biomes : One of " snowy " , " cold " , " medium " and " hot "
Based off < https : // minecraft.gamepedia . com / Biomes > ] ]
2017-02-22 23:15:47 +00:00
local function register_classic_superflat_biome ( )
-- Classic Superflat: bedrock (not part of biome), 2 dirt, 1 grass block
minetest.register_biome ( {
name = " flat " ,
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
2017-03-21 02:28:40 +00:00
depth_filler = 3 ,
2017-06-13 11:51:16 +00:00
node_stone = " mcl_core:dirt " ,
2017-08-16 14:22:28 +00:00
y_min = mcl_vars.mg_overworld_min - 512 ,
y_max = mcl_vars.mg_overworld_max ,
2017-02-22 23:15:47 +00:00
humidity_point = 50 ,
2017-09-12 18:40:20 +00:00
heat_point = 50 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 0 ,
2017-02-22 23:15:47 +00:00
} )
end
2017-02-22 22:21:13 +00:00
2017-02-22 23:15:47 +00:00
-- All mapgens except mgv6, flat and singlenode
2017-02-22 22:21:13 +00:00
local function register_biomes ( )
2017-08-15 17:40:53 +00:00
--[[ OVERWORLD ]]
2017-09-09 17:30:22 +00:00
--[[ These biomes try to resemble MC as good as possible. This means especially the floor cover and
the type of plants and structures ( shapes might differ ) . The terrain itself will be of course different
and depends on the mapgen .
Important : MC also takes the terrain into account while MT biomes don ' t care about the terrain at all
( except height ) .
MC has many “ M ” and “ Hills ” variants , most of which only differ in terrain compared to their original
counterpart .
In MT , any biome can occour in any terrain , so these variants are implied and are therefore
not explicitly implmented in MCL2 . “ M ” variants are only included if they have another unique feature ,
such as a different land cover .
2017-09-13 03:41:43 +00:00
In MCL2 , the MC Overworld biomes are split in multiple more parts ( stacked by height ) :
* The main part , this represents the land . It begins at around sea level and usually goes all the way up
* _ocean : For the area covered by ocean water . The y_max may vary for various beach effects .
Has sand or dirt as floor .
* _deep_ocean : Like _ocean , but deeper and has gravel as floor
* _underground :
* Other modifiers : Some complex biomes require more layers to improve the landscape .
2017-09-09 17:30:22 +00:00
2017-09-13 03:41:43 +00:00
The following naming conventions apply :
2019-03-11 12:41:19 +00:00
* The land biome name is equal to the MC biome name , as of Minecraft 1.11 ( in camel case )
2017-09-13 03:41:43 +00:00
* Height modifiers and sub - biomes are appended with underscores and in lowercase . Example : “ _ocean ”
* Non - MC biomes are written in lowercase
* MC dimension biomes are named after their MC dimension
2017-09-09 17:30:22 +00:00
2017-09-12 19:31:33 +00:00
Intentionally missing biomes :
2017-09-09 17:30:22 +00:00
* River ( generated by valleys and v7 )
2017-09-12 19:31:33 +00:00
* Frozen River ( generated by valleys and v7 )
2019-03-11 12:41:19 +00:00
* Hills biomes ( shape only )
* Plateau ( shape only )
* Plateau M ( shape only )
* Cold Taiga M ( mountain only )
* Taiga M ( mountain only )
* Roofed Forest M ( mountain only )
* Swampland M ( mountain only )
* Extreme Hills Edge ( unused in MC )
2017-09-12 19:31:33 +00:00
2017-09-10 15:18:11 +00:00
TODO :
2017-09-13 03:41:43 +00:00
* Better beaches
2017-09-13 08:31:41 +00:00
* Improve Extreme Hills M
2017-09-12 19:31:33 +00:00
* Desert M
2017-09-09 17:30:22 +00:00
] ]
2017-09-13 03:41:43 +00:00
-- List of Overworld biomes without modifiers.
-- IMPORTANT: Don't forget to add new Overworld biomes to this list!
local overworld_biomes = {
" IcePlains " ,
" IcePlainsSpikes " ,
" ColdTaiga " ,
" ExtremeHills " ,
" ExtremeHillsM " ,
" ExtremeHills+ " ,
" Taiga " ,
" MegaTaiga " ,
" MegaSpruceTaiga " ,
" StoneBeach " ,
" Plains " ,
" SunflowerPlains " ,
" Forest " ,
" FlowerForest " ,
" BirchForest " ,
" BirchForestM " ,
" RoofedForest " ,
" Swampland " ,
" Jungle " ,
" JungleM " ,
" JungleEdge " ,
" JungleEdgeM " ,
" MushroomIsland " ,
" Desert " ,
" Savanna " ,
" SavannaM " ,
" Mesa " ,
2019-03-11 20:42:30 +00:00
" MesaBryce " ,
2017-09-13 03:41:43 +00:00
" MesaPlateauF " ,
2019-03-10 23:04:03 +00:00
" MesaPlateauFM " ,
2022-07-29 00:48:00 +00:00
" MangroveSwamp " ,
2017-09-13 03:41:43 +00:00
}
2017-09-12 18:40:20 +00:00
-- Ice Plains Spikes (rare)
2017-02-22 22:21:13 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " IcePlainsSpikes " ,
2017-08-31 02:56:09 +00:00
node_top = " mcl_core:snowblock " ,
2017-09-10 14:55:55 +00:00
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 2 ,
2019-03-12 02:18:07 +00:00
node_water_top = " mcl_core:ice " ,
depth_water_top = 1 ,
2017-08-15 17:40:53 +00:00
node_river_water = " mcl_core:ice " ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-02-22 22:21:13 +00:00
depth_riverbed = 2 ,
2017-08-31 02:56:09 +00:00
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 24 ,
heat_point = - 5 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " snowy " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 2 ,
2017-08-15 17:40:53 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " IcePlainsSpikes_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-08-31 01:50:36 +00:00
depth_top = 2 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_filler = 3 ,
2017-08-22 14:17:29 +00:00
node_river_water = " mcl_core:ice " ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-22 14:17:29 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-08-31 02:56:09 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 24 ,
heat_point = - 5 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " snowy " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 2 ,
2017-02-22 22:21:13 +00:00
} )
2017-09-05 23:50:39 +00:00
-- Cold Taiga
2017-02-22 22:21:13 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ColdTaiga " ,
2017-09-05 23:50:39 +00:00
node_dust = " mcl_core:snow " ,
node_top = " mcl_core:dirt_with_grass_snow " ,
2017-08-21 12:08:35 +00:00
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 2 ,
2017-09-05 23:50:39 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-09 03:04:39 +00:00
y_min = 3 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 58 ,
heat_point = 8 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " snowy " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 3 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-12 19:31:33 +00:00
-- A cold beach-like biome, implemented as low part of Cold Taiga
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ColdTaiga_beach " ,
2017-09-05 23:50:39 +00:00
node_dust = " mcl_core:snow " ,
node_top = " mcl_core:sand " ,
2017-09-10 13:01:32 +00:00
depth_top = 2 ,
2017-09-08 15:51:56 +00:00
node_water_top = " mcl_core:ice " ,
depth_water_top = 1 ,
2017-09-10 13:01:32 +00:00
node_filler = " mcl_core:sandstone " ,
2017-08-15 17:40:53 +00:00
depth_filler = 2 ,
2017-09-05 23:50:39 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-10 13:01:32 +00:00
y_min = 1 ,
2017-09-09 03:04:39 +00:00
y_max = 2 ,
2017-09-12 18:40:20 +00:00
humidity_point = 58 ,
heat_point = 8 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " snowy " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 3 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-10 13:01:32 +00:00
-- Water part of the beach. Added to prevent snow being on the ice.
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ColdTaiga_beach_water " ,
2017-09-10 13:01:32 +00:00
node_top = " mcl_core:sand " ,
depth_top = 2 ,
node_water_top = " mcl_core:ice " ,
depth_water_top = 1 ,
node_filler = " mcl_core:sandstone " ,
depth_filler = 2 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2019-03-11 13:22:05 +00:00
y_min = - 4 ,
2017-09-10 13:01:32 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 58 ,
heat_point = 8 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " snowy " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 3 ,
2017-09-10 13:01:32 +00:00
} )
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ColdTaiga_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_filler = 3 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2019-03-11 13:22:05 +00:00
y_max = - 5 ,
2017-09-12 18:40:20 +00:00
humidity_point = 58 ,
heat_point = 8 ,
2019-03-11 13:22:05 +00:00
vertical_blend = 1 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " snowy " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 3 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-09 17:30:22 +00:00
-- Mega Taiga
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MegaTaiga " ,
2017-08-15 17:40:53 +00:00
node_top = " mcl_core:podzol " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-08-31 02:10:38 +00:00
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 76 ,
heat_point = 10 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 4 ,
2017-08-15 17:40:53 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MegaTaiga_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_filler = 3 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-08-31 02:10:38 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 76 ,
heat_point = 10 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 4 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-09 17:30:22 +00:00
-- Mega Spruce Taiga
2017-09-06 00:29:37 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MegaSpruceTaiga " ,
2017-09-06 00:29:37 +00:00
node_top = " mcl_core:podzol " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-09-06 00:29:37 +00:00
depth_riverbed = 2 ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 100 ,
heat_point = 8 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 5 ,
2017-09-06 00:29:37 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MegaSpruceTaiga_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-09-06 00:29:37 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-09-06 00:29:37 +00:00
depth_filler = 3 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-09-06 00:29:37 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-09-06 00:29:37 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 100 ,
heat_point = 8 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 5 ,
2017-09-06 00:29:37 +00:00
} )
2017-09-09 09:42:15 +00:00
-- Extreme Hills
2019-03-12 01:13:15 +00:00
-- Sparsely populated grasslands with little tallgras and trees.
2017-09-09 09:42:15 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ExtremeHills " ,
2017-09-09 09:42:15 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 4 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 4 ,
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 10 ,
heat_point = 45 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 6 ,
2017-09-09 09:42:15 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ExtremeHills_beach " ,
2017-09-09 09:42:15 +00:00
node_top = " mcl_core:sand " ,
2017-09-10 13:01:32 +00:00
depth_top = 2 ,
2017-09-09 09:42:15 +00:00
depth_water_top = 1 ,
2017-09-10 13:01:32 +00:00
node_filler = " mcl_core:sandstone " ,
2017-09-09 09:42:15 +00:00
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 4 ,
2019-03-11 13:22:05 +00:00
y_min = - 4 ,
2017-09-09 09:42:15 +00:00
y_max = 3 ,
2017-09-12 18:40:20 +00:00
humidity_point = 10 ,
heat_point = 45 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 6 ,
2017-09-09 09:42:15 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ExtremeHills_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-09-09 09:42:15 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-09-09 09:42:15 +00:00
depth_filler = 4 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 4 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2019-03-11 13:22:05 +00:00
y_max = - 5 ,
vertical_blend = 1 ,
2017-09-12 18:40:20 +00:00
humidity_point = 10 ,
heat_point = 45 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 6 ,
2017-09-09 09:42:15 +00:00
} )
-- Extreme Hills M
2019-03-12 01:13:15 +00:00
-- Just gravel.
2017-09-09 09:42:15 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ExtremeHillsM " ,
2017-09-09 09:42:15 +00:00
node_top = " mcl_core:gravel " ,
depth_top = 1 ,
node_filler = " mcl_core:gravel " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:gravel " ,
depth_riverbed = 3 ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 25 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 7 ,
2017-09-09 09:42:15 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ExtremeHillsM_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-09-09 09:42:15 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-09-09 09:42:15 +00:00
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 3 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-09-09 09:42:15 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 25 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 7 ,
2017-09-09 09:42:15 +00:00
} )
-- Extreme Hills+
2019-03-12 01:13:15 +00:00
-- This biome is near-identical to Extreme Hills on the surface but has snow-covered mountains with spruce/oak
-- forests above a certain height.
2017-09-09 09:42:15 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ExtremeHills+ " ,
2017-09-09 09:42:15 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 4 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 4 ,
y_min = 1 ,
2019-03-11 01:51:59 +00:00
y_max = 41 ,
2017-09-12 18:40:20 +00:00
humidity_point = 24 ,
heat_point = 25 ,
2019-03-11 01:51:59 +00:00
vertical_blend = 6 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 8 ,
2017-09-09 09:42:15 +00:00
} )
2019-03-12 01:13:15 +00:00
---- Sub-biome for Extreme Hills+ for those snow forests
2017-09-09 09:42:15 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ExtremeHills+_snowtop " ,
2017-09-09 09:42:15 +00:00
node_dust = " mcl_core:snow " ,
node_top = " mcl_core:dirt_with_grass_snow " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 4 ,
2018-01-07 23:19:53 +00:00
node_river_water = " mcl_core:ice " ,
2017-09-09 09:42:15 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 4 ,
2019-03-11 01:51:59 +00:00
y_min = 42 ,
2017-09-09 09:42:15 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 24 ,
heat_point = 25 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 8 ,
2017-09-09 09:42:15 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " ExtremeHills+_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-09-09 09:42:15 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-09-09 09:42:15 +00:00
depth_filler = 4 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 4 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-09-09 09:42:15 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 24 ,
heat_point = 25 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 8 ,
2017-09-09 09:42:15 +00:00
} )
2017-09-12 18:40:20 +00:00
-- Stone beach
2019-03-12 01:13:15 +00:00
-- Just stone.
-- Not neccessarily a beach at all, only named so according to MC
2017-09-09 17:01:04 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " StoneBeach " ,
2017-09-12 18:40:20 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 1 ,
2019-03-11 13:22:05 +00:00
y_min = - 7 ,
2017-09-09 17:01:04 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 8 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 9 ,
2017-09-09 17:01:04 +00:00
} )
2017-09-12 18:40:20 +00:00
2017-09-09 17:01:04 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " StoneBeach_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-09-09 17:01:04 +00:00
depth_top = 1 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 1 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2019-03-11 13:22:05 +00:00
y_max = - 8 ,
vertical_blend = 2 ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 8 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 9 ,
2017-09-09 17:01:04 +00:00
} )
2017-09-09 09:42:15 +00:00
2017-09-09 17:30:22 +00:00
-- Ice Plains
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " IcePlains " ,
2017-09-06 01:26:23 +00:00
node_dust = " mcl_core:snow " ,
2017-05-15 19:09:06 +00:00
node_top = " mcl_core:dirt_with_grass_snow " ,
2017-02-22 22:21:13 +00:00
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
2017-08-21 12:08:35 +00:00
depth_filler = 2 ,
2017-09-06 01:26:23 +00:00
node_water_top = " mcl_core:ice " ,
depth_water_top = 2 ,
node_river_water = " mcl_core:ice " ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-08-29 22:37:01 +00:00
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 24 ,
heat_point = 8 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " snowy " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 10 ,
2017-08-15 17:40:53 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " IcePlains_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-02-22 22:21:13 +00:00
depth_filler = 3 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-02-22 22:21:13 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-08-29 22:37:01 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 24 ,
heat_point = 8 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " snowy " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 10 ,
2017-02-22 22:21:13 +00:00
} )
2017-09-05 23:50:39 +00:00
-- Plains
2017-02-22 22:21:13 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Plains " ,
2017-02-22 22:21:13 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
2017-08-21 12:08:35 +00:00
depth_filler = 2 ,
2017-02-22 22:21:13 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-11-15 01:30:30 +00:00
y_min = 3 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 39 ,
heat_point = 58 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 0 ,
2017-02-22 22:21:13 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Plains_beach " ,
2017-02-22 22:21:13 +00:00
node_top = " mcl_core:sand " ,
2017-09-10 13:01:32 +00:00
depth_top = 2 ,
node_filler = " mcl_core:sandstone " ,
2017-08-15 17:40:53 +00:00
depth_filler = 2 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-11-15 01:30:30 +00:00
y_min = 0 ,
y_max = 2 ,
2017-09-12 18:40:20 +00:00
humidity_point = 39 ,
heat_point = 58 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 0 ,
2017-08-15 17:40:53 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Plains_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_filler = 3 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-11-15 01:30:30 +00:00
y_max = - 1 ,
2017-09-12 18:40:20 +00:00
humidity_point = 39 ,
heat_point = 58 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 0 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-12 18:40:20 +00:00
-- Sunflower Plains
2017-09-06 02:11:39 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " SunflowerPlains " ,
2017-09-06 02:11:39 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
2017-09-12 18:40:20 +00:00
depth_filler = 3 ,
2017-09-06 02:11:39 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 28 ,
heat_point = 45 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 11 ,
2017-09-06 02:11:39 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " SunflowerPlains_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-09-06 02:11:39 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-09-06 02:11:39 +00:00
depth_filler = 3 ,
node_riverbed = " mcl_core:dirt " ,
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-09-06 02:11:39 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 28 ,
heat_point = 45 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 11 ,
2017-09-06 02:11:39 +00:00
} )
2017-09-05 23:50:39 +00:00
-- Taiga
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Taiga " ,
2017-08-15 17:40:53 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
2017-02-22 22:21:13 +00:00
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-08-31 01:50:36 +00:00
y_min = 4 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 58 ,
heat_point = 22 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 12 ,
2017-02-22 22:21:13 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Taiga_beach " ,
2017-02-22 22:21:13 +00:00
node_top = " mcl_core:sand " ,
2017-09-10 13:01:32 +00:00
depth_top = 2 ,
node_filler = " mcl_core:sandstone " ,
depth_filler = 1 ,
2017-02-22 22:21:13 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 1 ,
2017-08-31 02:10:38 +00:00
y_max = 3 ,
2017-09-12 18:40:20 +00:00
humidity_point = 58 ,
heat_point = 22 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 12 ,
2017-02-22 22:21:13 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Taiga_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_filler = 3 ,
2017-08-21 11:24:42 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-08-15 17:40:53 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 58 ,
heat_point = 22 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " cold " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 12 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-09 17:30:22 +00:00
-- Forest
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Forest " ,
2017-08-15 17:40:53 +00:00
node_top = " mcl_core:dirt_with_grass " ,
2017-02-22 22:21:13 +00:00
depth_top = 1 ,
2017-08-15 17:40:53 +00:00
node_filler = " mcl_core:dirt " ,
2017-02-22 22:21:13 +00:00
depth_filler = 3 ,
2017-08-15 17:40:53 +00:00
node_riverbed = " mcl_core:sand " ,
2017-02-22 22:21:13 +00:00
depth_riverbed = 2 ,
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 61 ,
heat_point = 45 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 13 ,
2017-02-22 22:21:13 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Forest_beach " ,
2017-09-06 01:34:51 +00:00
node_top = " mcl_core:sand " ,
2017-09-10 13:01:32 +00:00
depth_top = 2 ,
node_filler = " mcl_core:sandstone " ,
depth_filler = 1 ,
2017-08-15 17:40:53 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = - 1 ,
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 61 ,
heat_point = 45 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 13 ,
2017-08-15 17:40:53 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Forest_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_filler = 3 ,
2017-08-21 11:24:42 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-08-15 17:40:53 +00:00
y_max = - 2 ,
2017-09-12 18:40:20 +00:00
humidity_point = 61 ,
heat_point = 45 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 13 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-09 17:30:22 +00:00
-- Flower Forest
2017-09-08 22:19:24 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " FlowerForest " ,
2017-09-08 22:19:24 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-09-10 13:01:32 +00:00
y_min = 3 ,
2017-09-08 22:19:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 44 ,
heat_point = 32 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 14 ,
2017-09-08 22:19:24 +00:00
} )
2017-09-08 22:27:03 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " FlowerForest_beach " ,
2017-09-08 22:27:03 +00:00
node_top = " mcl_core:sand " ,
2017-09-10 13:01:32 +00:00
depth_top = 2 ,
node_filler = " mcl_core:sandstone " ,
depth_filler = 1 ,
2017-09-08 22:27:03 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = - 2 ,
2017-09-10 13:01:32 +00:00
y_max = 2 ,
2017-09-12 18:40:20 +00:00
humidity_point = 44 ,
heat_point = 32 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 14 ,
2017-09-08 22:27:03 +00:00
} )
2017-09-08 22:19:24 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " FlowerForest_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-09-08 22:19:24 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-09-08 22:19:24 +00:00
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-09-08 22:27:03 +00:00
y_max = - 3 ,
2017-09-12 18:40:20 +00:00
humidity_point = 44 ,
heat_point = 32 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 14 ,
2017-09-08 22:19:24 +00:00
} )
2017-09-09 17:30:22 +00:00
-- Birch Forest
2017-09-06 04:04:32 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " BirchForest " ,
2017-09-06 04:04:32 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 78 ,
heat_point = 31 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 15 ,
2017-09-06 04:04:32 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " BirchForest_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-09-06 04:04:32 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-09-06 04:04:32 +00:00
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-09-06 04:04:32 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 78 ,
heat_point = 31 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 15 ,
2017-09-06 04:04:32 +00:00
} )
2017-09-09 17:30:22 +00:00
-- Birch Forest M
2017-09-06 04:04:32 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " BirchForestM " ,
2017-09-06 04:04:32 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 77 ,
heat_point = 27 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 16 ,
2017-09-06 04:04:32 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " BirchForestM_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-09-06 04:04:32 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-09-06 04:04:32 +00:00
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-09-06 04:04:32 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 77 ,
heat_point = 27 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 16 ,
2017-09-06 04:04:32 +00:00
} )
2017-09-09 17:30:22 +00:00
-- Desert
2017-02-22 22:21:13 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Desert " ,
2017-08-21 22:30:34 +00:00
node_top = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2017-08-21 22:30:34 +00:00
node_filler = " mcl_core:sand " ,
2017-08-21 12:08:35 +00:00
depth_filler = 2 ,
2017-08-21 22:30:34 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-08-21 22:30:34 +00:00
node_stone = " mcl_core:sandstone " ,
2017-08-31 02:10:38 +00:00
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 26 ,
heat_point = 94 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 17 ,
2017-02-22 22:21:13 +00:00
} )
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Desert_ocean " ,
2017-08-21 01:23:59 +00:00
node_top = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2017-08-21 01:23:59 +00:00
node_filler = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_filler = 3 ,
2017-08-21 01:23:59 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-08-31 02:10:38 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 26 ,
heat_point = 94 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 17 ,
2017-08-15 17:40:53 +00:00
} )
2017-02-22 22:21:13 +00:00
2017-09-09 17:30:22 +00:00
-- Roofed Forest
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " RoofedForest " ,
2017-08-21 02:50:45 +00:00
node_top = " mcl_core:dirt_with_grass " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2017-08-21 02:50:45 +00:00
node_filler = " mcl_core:dirt " ,
2017-08-21 12:08:35 +00:00
depth_filler = 2 ,
2017-08-21 02:58:25 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-08-21 12:04:34 +00:00
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 94 ,
heat_point = 27 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 18 ,
2017-08-15 17:40:53 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " RoofedForest_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-09-12 18:40:20 +00:00
depth_filler = 2 ,
2017-08-22 14:17:29 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-08-22 14:17:29 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 94 ,
heat_point = 27 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 18 ,
2017-08-15 17:40:53 +00:00
} )
2019-03-11 22:00:59 +00:00
-- Mesa: Starts with a couple of sand-covered layers (the "sandlevel"),
-- followed by terracotta with colorful (but imperfect) strata
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Mesa " ,
2017-08-21 11:24:42 +00:00
node_top = " mcl_colorblocks:hardened_clay " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2017-08-21 11:24:42 +00:00
node_filler = " mcl_colorblocks:hardened_clay " ,
2017-12-07 13:31:04 +00:00
node_riverbed = " mcl_core:redsand " ,
depth_riverbed = 1 ,
2017-08-31 02:15:51 +00:00
node_stone = " mcl_colorblocks:hardened_clay " ,
2017-09-09 22:55:32 +00:00
y_min = 11 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 100 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 19 ,
2017-02-22 22:21:13 +00:00
} )
2017-09-12 19:31:33 +00:00
-- Helper biome for the red sand at the bottom of Mesas.
2017-09-09 22:55:32 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Mesa_sandlevel " ,
2017-09-09 22:55:32 +00:00
node_top = " mcl_core:redsand " ,
depth_top = 1 ,
node_filler = " mcl_colorblocks:hardened_clay_orange " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:redsand " ,
depth_riverbed = 1 ,
node_stone = " mcl_colorblocks:hardened_clay_orange " ,
2019-03-11 13:22:05 +00:00
y_min = - 4 ,
2017-09-09 22:55:32 +00:00
y_max = 10 ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 100 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 19 ,
2017-09-09 22:55:32 +00:00
} )
2017-08-31 02:10:38 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Mesa_ocean " ,
2017-09-10 13:01:32 +00:00
node_top = " mcl_core:sand " ,
2017-08-31 02:15:51 +00:00
depth_top = 3 ,
2017-09-10 13:01:32 +00:00
node_filler = " mcl_core:sand " ,
2017-09-09 22:55:32 +00:00
depth_filler = 2 ,
2017-09-10 13:01:32 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-31 02:10:38 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2019-03-11 13:22:05 +00:00
y_max = - 5 ,
vertical_blend = 1 ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 100 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 19 ,
2017-08-31 02:10:38 +00:00
} )
2017-09-10 01:16:49 +00:00
2019-03-11 23:26:33 +00:00
-- Mesa Bryce: Variant of Mesa, but with perfect strata and a much smaller red sand desert
2019-03-11 20:42:30 +00:00
minetest.register_biome ( {
name = " MesaBryce " ,
node_top = " mcl_colorblocks:hardened_clay " ,
depth_top = 1 ,
node_filler = " mcl_colorblocks:hardened_clay " ,
node_riverbed = " mcl_colorblocks:hardened_clay " ,
depth_riverbed = 1 ,
node_stone = " mcl_colorblocks:hardened_clay " ,
2019-03-11 23:46:08 +00:00
y_min = 4 ,
2019-03-11 20:42:30 +00:00
y_max = mcl_vars.mg_overworld_max ,
2019-03-11 20:44:13 +00:00
humidity_point = - 5 ,
2019-03-11 20:42:30 +00:00
heat_point = 100 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 20 ,
2019-03-11 20:42:30 +00:00
} )
minetest.register_biome ( {
name = " MesaBryce_sandlevel " ,
node_top = " mcl_core:redsand " ,
depth_top = 1 ,
node_filler = " mcl_colorblocks:hardened_clay_orange " ,
depth_filler = 3 ,
2019-03-11 23:34:44 +00:00
node_riverbed = " mcl_colorblocks:hardened_clay " ,
2019-03-11 20:42:30 +00:00
depth_riverbed = 1 ,
node_stone = " mcl_colorblocks:hardened_clay_orange " ,
y_min = - 4 ,
2019-03-11 23:46:08 +00:00
y_max = 3 ,
2019-03-11 20:44:13 +00:00
humidity_point = - 5 ,
2019-03-11 20:42:30 +00:00
heat_point = 100 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 20 ,
2019-03-11 20:42:30 +00:00
} )
minetest.register_biome ( {
name = " MesaBryce_ocean " ,
node_top = " mcl_core:sand " ,
depth_top = 3 ,
node_filler = " mcl_core:sand " ,
depth_filler = 2 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = OCEAN_MIN ,
y_max = - 5 ,
vertical_blend = 1 ,
2019-03-11 20:44:13 +00:00
humidity_point = - 5 ,
2019-03-11 20:42:30 +00:00
heat_point = 100 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 20 ,
2019-03-11 20:42:30 +00:00
} )
2017-09-10 01:16:49 +00:00
-- Mesa Plateau F
2019-03-11 22:00:59 +00:00
-- Identical to Mesa below Y=30. At Y=30 and above there is a "dry" oak forest
2017-09-10 01:16:49 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MesaPlateauF " ,
2017-09-10 01:16:49 +00:00
node_top = " mcl_colorblocks:hardened_clay " ,
depth_top = 1 ,
node_filler = " mcl_colorblocks:hardened_clay " ,
2017-12-07 13:31:04 +00:00
node_riverbed = " mcl_core:redsand " ,
depth_riverbed = 1 ,
2017-09-10 01:16:49 +00:00
node_stone = " mcl_colorblocks:hardened_clay " ,
y_min = 11 ,
y_max = 29 ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 60 ,
2019-03-11 01:51:59 +00:00
vertical_blend = 0 , -- we want a sharp transition
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 21 ,
2017-09-10 01:16:49 +00:00
} )
2019-03-11 22:00:59 +00:00
-- The oak forest plateau of this biome.
-- This is a plateau for grass blocks, dry shrubs, tall grass, coarse dirt and oaks.
-- Strata don't generate here.
2017-09-10 01:16:49 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MesaPlateauF_grasstop " ,
2019-12-13 13:03:12 +00:00
node_top = " mcl_core:dirt_with_grass " ,
2017-09-10 01:16:49 +00:00
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
2017-12-07 13:31:04 +00:00
depth_filler = 1 ,
node_riverbed = " mcl_core:redsand " ,
depth_riverbed = 1 ,
2017-09-10 01:16:49 +00:00
node_stone = " mcl_colorblocks:hardened_clay " ,
y_min = 30 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 60 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 21 ,
2017-09-10 01:16:49 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MesaPlateauF_sandlevel " ,
2017-09-10 01:16:49 +00:00
node_top = " mcl_core:redsand " ,
2019-03-11 01:51:59 +00:00
depth_top = 2 ,
2017-09-10 01:16:49 +00:00
node_filler = " mcl_colorblocks:hardened_clay_orange " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:redsand " ,
depth_riverbed = 1 ,
node_stone = " mcl_colorblocks:hardened_clay_orange " ,
2019-03-11 13:22:05 +00:00
y_min = - 5 ,
2017-09-10 01:16:49 +00:00
y_max = 10 ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 60 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 21 ,
2017-09-10 01:16:49 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MesaPlateauF_ocean " ,
2017-09-10 13:01:32 +00:00
node_top = " mcl_core:sand " ,
2017-09-10 01:16:49 +00:00
depth_top = 3 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-09-10 01:16:49 +00:00
depth_filler = 2 ,
2017-09-10 13:01:32 +00:00
node_riverbed = " mcl_core:sand " ,
2017-09-10 01:16:49 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2019-03-11 13:22:05 +00:00
y_max = - 6 ,
vertical_blend = 1 ,
2017-09-12 18:40:20 +00:00
humidity_point = 0 ,
heat_point = 60 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 21 ,
2017-09-10 01:16:49 +00:00
} )
2017-02-22 22:21:13 +00:00
2019-03-10 23:04:03 +00:00
-- Mesa Plateau FM
2019-03-11 22:00:59 +00:00
-- Dryer and more "chaotic"/"weathered down" variant of MesaPlateauF:
-- oak forest is less dense, more coarse dirt, more erratic terrain, vertical blend, more red sand layers,
-- red sand as ores, red sandstone at sandlevel
2019-03-10 23:04:03 +00:00
minetest.register_biome ( {
name = " MesaPlateauFM " ,
node_top = " mcl_colorblocks:hardened_clay " ,
depth_top = 1 ,
node_filler = " mcl_colorblocks:hardened_clay " ,
node_riverbed = " mcl_core:redsand " ,
2019-03-10 23:08:36 +00:00
depth_riverbed = 2 ,
2019-03-10 23:04:03 +00:00
node_stone = " mcl_colorblocks:hardened_clay " ,
y_min = 12 ,
y_max = 29 ,
2019-03-11 20:44:13 +00:00
humidity_point = - 5 ,
heat_point = 60 ,
2019-03-10 23:04:03 +00:00
vertical_blend = 5 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 22 ,
2019-03-10 23:04:03 +00:00
} )
-- Grass plateau
minetest.register_biome ( {
name = " MesaPlateauFM_grasstop " ,
2019-12-13 13:03:12 +00:00
node_top = " mcl_core:dirt_with_grass " ,
2019-03-10 23:04:03 +00:00
depth_top = 1 ,
node_filler = " mcl_core:coarse_dirt " ,
depth_filler = 2 ,
2019-03-10 23:08:36 +00:00
node_riverbed = " mcl_core:redsand " ,
2019-03-10 23:04:03 +00:00
depth_riverbed = 1 ,
node_stone = " mcl_colorblocks:hardened_clay " ,
y_min = 30 ,
y_max = mcl_vars.mg_overworld_max ,
2019-03-11 20:44:13 +00:00
humidity_point = - 5 ,
heat_point = 60 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 22 ,
2019-03-10 23:04:03 +00:00
} )
minetest.register_biome ( {
name = " MesaPlateauFM_sandlevel " ,
node_top = " mcl_core:redsand " ,
2019-03-11 01:51:59 +00:00
depth_top = 3 ,
2019-03-10 23:04:03 +00:00
node_filler = " mcl_colorblocks:hardened_clay_orange " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:redsand " ,
depth_riverbed = 2 ,
2019-03-11 23:56:35 +00:00
node_stone = " mcl_colorblocks:hardened_clay " ,
2019-03-11 13:22:05 +00:00
-- red sand has wider reach than in other mesa biomes
y_min = - 7 ,
2019-03-10 23:04:03 +00:00
y_max = 11 ,
2019-03-11 20:44:13 +00:00
humidity_point = - 5 ,
heat_point = 60 ,
2019-03-10 23:04:03 +00:00
vertical_blend = 4 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 22 ,
2019-03-10 23:04:03 +00:00
} )
minetest.register_biome ( {
name = " MesaPlateauFM_ocean " ,
node_top = " mcl_core:sand " ,
depth_top = 3 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2019-03-10 23:08:36 +00:00
depth_filler = 3 ,
2019-03-10 23:04:03 +00:00
node_riverbed = " mcl_core:sand " ,
2019-03-10 23:08:36 +00:00
depth_riverbed = 3 ,
2019-03-10 23:04:03 +00:00
y_min = OCEAN_MIN ,
2019-03-11 13:22:05 +00:00
y_max = - 8 ,
vertical_blend = 2 ,
2019-03-11 20:44:13 +00:00
humidity_point = - 5 ,
heat_point = 60 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 22 ,
2019-03-10 23:04:03 +00:00
} )
2017-08-15 17:40:53 +00:00
-- Savanna
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Savanna " ,
2019-12-13 13:03:12 +00:00
node_top = " mcl_core:dirt_with_grass " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2017-09-10 01:41:42 +00:00
node_filler = " mcl_core:dirt " ,
2017-08-21 00:37:29 +00:00
depth_filler = 2 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 36 ,
heat_point = 79 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 1 ,
2017-08-15 17:40:53 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Savanna_beach " ,
2017-09-06 01:34:51 +00:00
node_top = " mcl_core:sand " ,
2017-09-10 13:01:32 +00:00
depth_top = 3 ,
node_filler = " mcl_core:sandstone " ,
depth_filler = 2 ,
2017-08-15 17:40:53 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = - 1 ,
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 36 ,
heat_point = 79 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 1 ,
2017-08-15 17:40:53 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Savanna_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_filler = 3 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-08-15 17:40:53 +00:00
y_max = - 2 ,
2017-09-12 18:40:20 +00:00
humidity_point = 36 ,
heat_point = 79 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 1 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-10 01:41:42 +00:00
-- Savanna M
2017-09-12 19:58:42 +00:00
-- Changes to Savanna: Coarse Dirt. No sand beach. No oaks.
2017-09-10 01:41:42 +00:00
-- Otherwise identical to Savanna
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " SavannaM " ,
2019-12-13 13:03:12 +00:00
node_top = " mcl_core:dirt_with_grass " ,
2017-09-10 01:41:42 +00:00
depth_top = 1 ,
node_filler = " mcl_core:coarse_dirt " ,
2017-09-10 13:01:32 +00:00
depth_filler = 3 ,
2017-09-10 01:41:42 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 18:40:20 +00:00
humidity_point = 48 ,
heat_point = 100 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 23 ,
2017-09-10 01:41:42 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " SavannaM_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-09-10 01:41:42 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-09-10 01:41:42 +00:00
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-09-10 01:41:42 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 48 ,
heat_point = 100 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 23 ,
2017-09-10 01:41:42 +00:00
} )
2017-09-05 23:50:39 +00:00
-- Jungle
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Jungle " ,
2017-08-31 15:27:58 +00:00
node_top = " mcl_core:dirt_with_grass " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 22:17:39 +00:00
humidity_point = 88 ,
heat_point = 81 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 24 ,
2017-08-15 17:40:53 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Jungle_shore " ,
2017-08-15 17:40:53 +00:00
node_top = " mcl_core:dirt " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2019-03-11 13:22:05 +00:00
y_min = - 2 ,
2017-08-15 17:40:53 +00:00
y_max = 0 ,
2017-09-12 22:17:39 +00:00
humidity_point = 88 ,
heat_point = 81 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 24 ,
2017-02-22 22:21:13 +00:00
} )
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Jungle_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_filler = 3 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2019-03-11 13:22:05 +00:00
y_max = - 3 ,
vertical_blend = 1 ,
2017-09-12 22:17:39 +00:00
humidity_point = 88 ,
heat_point = 81 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 24 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-12 03:20:03 +00:00
-- Jungle M
2017-09-12 19:31:33 +00:00
-- Like Jungle but with even more dense vegetation
2017-09-12 03:20:03 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " JungleM " ,
2017-09-12 03:20:03 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 22:17:39 +00:00
humidity_point = 92 ,
heat_point = 81 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 25 ,
2017-09-12 03:20:03 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " JungleM_shore " ,
2017-09-12 03:20:03 +00:00
node_top = " mcl_core:dirt " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2019-03-11 13:22:05 +00:00
y_min = - 2 ,
2017-09-12 03:20:03 +00:00
y_max = 0 ,
2017-09-12 22:17:39 +00:00
humidity_point = 92 ,
heat_point = 81 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 25 ,
2017-09-12 03:20:03 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " JungleM_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-09-12 03:20:03 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-09-12 03:20:03 +00:00
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = OCEAN_MIN ,
2019-03-11 13:22:05 +00:00
y_max = - 3 ,
vertical_blend = 1 ,
2017-09-12 22:17:39 +00:00
humidity_point = 92 ,
heat_point = 81 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 25 ,
2017-09-12 03:20:03 +00:00
} )
2017-09-09 17:30:22 +00:00
-- Jungle Edge
2017-09-08 23:13:21 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " JungleEdge " ,
2017-09-08 23:13:21 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
2017-09-10 01:59:59 +00:00
depth_filler = 2 ,
2017-09-08 23:13:21 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 22:17:39 +00:00
humidity_point = 88 ,
heat_point = 76 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 26 ,
2017-09-08 23:13:21 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " JungleEdge_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-09-08 23:13:21 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-09-10 01:59:59 +00:00
depth_filler = 2 ,
2017-09-08 23:13:21 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-09-08 23:13:21 +00:00
y_max = 0 ,
2017-09-12 22:17:39 +00:00
humidity_point = 88 ,
heat_point = 76 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 26 ,
2017-09-08 23:13:21 +00:00
} )
2017-09-12 22:17:39 +00:00
-- Jungle Edge M (very rare).
2017-09-12 18:40:20 +00:00
-- Almost identical to Jungle Edge. Has deeper dirt. Melons spawn here a lot.
2017-09-12 22:17:39 +00:00
-- This biome occours directly between Jungle M and Jungle Edge but also has a small border to Jungle.
-- This biome is very small in general.
2017-09-08 23:13:21 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " JungleEdgeM " ,
2017-09-10 01:59:59 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 4 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 22:17:39 +00:00
humidity_point = 90 ,
heat_point = 79 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 27 ,
2017-09-10 01:59:59 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " JungleEdgeM_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:sand " ,
2017-09-08 23:13:21 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:sand " ,
2017-09-10 01:59:59 +00:00
depth_filler = 4 ,
2017-09-08 23:13:21 +00:00
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-09-10 01:59:59 +00:00
y_max = 0 ,
2017-09-12 22:17:39 +00:00
humidity_point = 90 ,
heat_point = 79 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 27 ,
2017-09-08 23:13:21 +00:00
} )
2022-07-28 16:22:54 +00:00
-- Mangrove swamp
minetest.register_biome ( {
name = " MangroveSwamp " ,
node_top = " mcl_mud:mud " ,
depth_top = 1 ,
node_filler = " mcl_mud:mud " ,
depth_filler = 3 ,
2022-07-29 00:48:00 +00:00
node_riverbed = " mcl_core:dirt " ,
2022-07-28 16:22:54 +00:00
depth_riverbed = 2 ,
y_min = 1 ,
-- Note: Limited in height!
2022-07-29 00:48:00 +00:00
y_max = 27 ,
2022-07-28 16:22:54 +00:00
humidity_point = 95 ,
2022-07-29 00:48:00 +00:00
heat_point = 94 ,
2022-07-28 21:05:24 +00:00
_mcl_biome_type = " hot " ,
2022-07-29 00:48:00 +00:00
_mcl_palette_index = 27 ,
2022-07-28 16:22:54 +00:00
} )
minetest.register_biome ( {
name = " MangroveSwamp_shore " ,
node_top = " mcl_mud:mud " ,
depth_top = 1 ,
node_filler = " mcl_mud:mud " ,
depth_filler = 3 ,
2022-07-29 00:48:00 +00:00
node_riverbed = " mcl_core:dirt " ,
2022-07-28 16:22:54 +00:00
depth_riverbed = 2 ,
y_min = - 5 ,
y_max = 0 ,
humidity_point = 95 ,
2022-07-29 00:48:00 +00:00
heat_point = 94 ,
2022-07-28 21:05:24 +00:00
_mcl_biome_type = " hot " ,
2022-07-29 00:48:00 +00:00
_mcl_palette_index = 27 ,
2022-07-28 16:22:54 +00:00
} )
minetest.register_biome ( {
name = " MangroveSwamp_ocean " ,
2022-07-29 00:48:00 +00:00
node_top = " mcl_core:dirt " ,
2022-07-28 16:22:54 +00:00
depth_top = 1 ,
2022-07-29 00:48:00 +00:00
node_filler = " mcl_core:dirt " ,
2022-07-28 16:22:54 +00:00
depth_filler = 3 ,
2022-07-28 21:05:24 +00:00
node_riverbed = " mcl_core:gravel " ,
2022-07-28 16:22:54 +00:00
depth_riverbed = 2 ,
y_min = OCEAN_MIN ,
y_max = - 6 ,
vertical_blend = 1 ,
humidity_point = 95 ,
2022-07-29 00:48:00 +00:00
heat_point = 94 ,
2022-07-28 21:05:24 +00:00
_mcl_biome_type = " hot " ,
2022-07-29 00:48:00 +00:00
_mcl_palette_index = 27 ,
2022-07-28 16:22:54 +00:00
} )
2017-09-08 17:54:24 +00:00
-- Swampland
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Swampland " ,
2017-09-08 17:54:24 +00:00
node_top = " mcl_core:dirt_with_grass " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 1 ,
2017-09-09 17:30:22 +00:00
-- Note: Limited in height!
2017-09-08 17:54:24 +00:00
y_max = 23 ,
2017-09-12 18:40:20 +00:00
humidity_point = 90 ,
heat_point = 50 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 28 ,
2017-09-08 17:54:24 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Swampland_shore " ,
2017-09-08 17:54:24 +00:00
node_top = " mcl_core:dirt " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2019-03-11 13:22:05 +00:00
y_min = - 5 ,
2017-09-08 17:54:24 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 90 ,
heat_point = 50 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 28 ,
2017-09-08 17:54:24 +00:00
} )
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Swampland_ocean " ,
2017-09-08 17:54:24 +00:00
node_top = " mcl_core:sand " ,
depth_top = 1 ,
node_filler = " mcl_core:sand " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2019-03-11 13:22:05 +00:00
y_max = - 6 ,
vertical_blend = 1 ,
2017-09-12 18:40:20 +00:00
humidity_point = 90 ,
heat_point = 50 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 28 ,
2017-09-08 17:54:24 +00:00
} )
2017-09-12 18:40:20 +00:00
-- Mushroom Island / Mushroom Island Shore (rare)
2019-03-11 12:41:19 +00:00
-- Not neccessarily an island at all, only named after Minecraft's biome
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MushroomIsland " ,
2017-08-15 17:40:53 +00:00
node_top = " mcl_core:mycelium " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
2017-09-08 15:56:04 +00:00
y_min = 4 ,
2017-09-09 17:30:22 +00:00
-- Note: Limited in height!
2017-08-15 17:40:53 +00:00
y_max = 20 ,
2019-03-11 12:50:27 +00:00
vertical_blend = 1 ,
2017-09-12 18:40:20 +00:00
humidity_point = 106 ,
heat_point = 50 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 29 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-08 15:56:04 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MushroomIslandShore " ,
2017-09-08 15:56:04 +00:00
node_top = " mcl_core:mycelium " ,
depth_top = 1 ,
node_filler = " mcl_core:dirt " ,
depth_filler = 3 ,
node_riverbed = " mcl_core:sand " ,
depth_riverbed = 2 ,
y_min = 1 ,
y_max = 3 ,
2017-09-12 18:40:20 +00:00
humidity_point = 106 ,
heat_point = 50 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 29 ,
2017-09-08 15:56:04 +00:00
} )
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " MushroomIsland_ocean " ,
2019-12-22 00:22:05 +00:00
node_top = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_top = 1 ,
2019-12-22 00:22:05 +00:00
node_filler = " mcl_core:gravel " ,
2017-08-15 17:40:53 +00:00
depth_filler = 3 ,
2017-09-08 15:44:45 +00:00
node_riverbed = " mcl_core:sand " ,
2017-08-15 17:40:53 +00:00
depth_riverbed = 2 ,
2017-09-10 12:23:52 +00:00
y_min = OCEAN_MIN ,
2017-08-15 17:40:53 +00:00
y_max = 0 ,
2017-09-12 18:40:20 +00:00
humidity_point = 106 ,
heat_point = 50 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 29 ,
2017-08-15 17:40:53 +00:00
} )
2017-09-13 03:41:43 +00:00
-- Add deep ocean and underground biomes automatically.
for i = 1 , # overworld_biomes do
local biome = overworld_biomes [ i ]
2019-12-22 00:22:05 +00:00
-- Deep Ocean
2017-09-13 03:41:43 +00:00
minetest.register_biome ( {
name = biome .. " _deep_ocean " ,
heat_point = minetest.registered_biomes [ biome ] . heat_point ,
humidity_point = minetest.registered_biomes [ biome ] . humidity_point ,
y_min = DEEP_OCEAN_MIN ,
y_max = DEEP_OCEAN_MAX ,
2019-12-22 00:22:05 +00:00
node_top = minetest.registered_biomes [ biome .. " _ocean " ] . node_top ,
depth_top = 2 ,
node_filler = minetest.registered_biomes [ biome .. " _ocean " ] . node_filler ,
depth_filler = 3 ,
node_riverbed = minetest.registered_biomes [ biome .. " _ocean " ] . node_riverbed ,
2017-09-13 03:41:43 +00:00
depth_riverbed = 2 ,
2019-03-11 01:51:59 +00:00
vertical_blend = 5 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = minetest.registered_biomes [ biome ] . _mcl_biome_type ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = minetest.registered_biomes [ biome ] . _mcl_palette_index ,
2017-09-13 03:41:43 +00:00
} )
-- Underground biomes are used to identify the underground and to prevent nodes from the surface
-- (sand, dirt) from leaking into the underground.
minetest.register_biome ( {
name = biome .. " _underground " ,
heat_point = minetest.registered_biomes [ biome ] . heat_point ,
humidity_point = minetest.registered_biomes [ biome ] . humidity_point ,
y_min = mcl_vars.mg_overworld_min ,
y_max = DEEP_OCEAN_MIN - 1 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = minetest.registered_biomes [ biome ] . _mcl_biome_type ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = minetest.registered_biomes [ biome ] . _mcl_palette_index ,
2017-09-13 03:41:43 +00:00
} )
end
2017-08-17 21:14:02 +00:00
end
2017-08-15 17:40:53 +00:00
2017-08-17 21:14:02 +00:00
-- Register biomes of non-Overworld biomes
local function register_dimension_biomes ( )
2017-08-15 17:40:53 +00:00
--[[ REALMS ]]
--[[ THE NETHER ]]
2022-10-27 17:34:58 +00:00
-- the following decoration is a hack to cover exposed bedrock in netherrack - be careful not to put any ceiling decorations in a way that would apply to this (they would get generated regardless of biome)
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_core:bedrock " } ,
sidelen = 16 ,
fill_ratio = 10 ,
y_min = mcl_vars.mg_lava_nether_max ,
y_max = mcl_vars.mg_nether_max + 15 ,
height = 6 ,
max_height = 10 ,
decoration = " mcl_nether:netherrack " ,
flags = " all_ceilings " ,
param2 = 0 ,
} )
2022-10-29 01:16:08 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_core:bedrock " } ,
sidelen = 16 ,
fill_ratio = 10 ,
y_min = mcl_vars.mg_nether_min - 10 ,
y_max = mcl_vars.mg_lava_nether_max ,
height = 7 ,
max_height = 14 ,
decoration = " mcl_nether:netherrack " ,
flags = " all_floors,force_placement " ,
param2 = 0 ,
} )
2022-10-27 17:34:58 +00:00
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " Nether " ,
2017-08-15 17:40:53 +00:00
node_filler = " mcl_nether:netherrack " ,
2017-08-16 14:22:28 +00:00
node_stone = " mcl_nether:netherrack " ,
2022-10-27 17:52:32 +00:00
node_top = " mcl_nether:netherrack " ,
2017-08-18 12:07:35 +00:00
node_water = " air " ,
node_river_water = " air " ,
2021-04-06 23:34:15 +00:00
node_cave_liquid = " air " ,
2017-08-16 14:22:28 +00:00
y_min = mcl_vars.mg_nether_min ,
2022-06-16 20:17:11 +00:00
2017-08-16 14:22:28 +00:00
y_max = mcl_vars.mg_nether_max + 80 ,
2017-08-16 15:01:16 +00:00
heat_point = 100 ,
humidity_point = 0 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " hot " ,
2021-11-03 18:57:21 +00:00
_mcl_palette_index = 17 ,
2017-08-15 17:40:53 +00:00
} )
2022-06-18 19:38:20 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
2022-10-27 17:52:32 +00:00
place_on = { " mcl_nether:netherrack " , " mcl_nether:glowstone " , " mcl_blackstone:nether_gold " , " mcl_nether:quartz_ore " , " mcl_core:gravel " , " mcl_nether:soul_sand " , " mcl_nether:glowstone " , " mcl_nether:magma " } ,
2022-06-18 19:38:20 +00:00
sidelen = 16 ,
fill_ratio = 10 ,
biomes = { " Nether " } ,
2022-10-29 01:16:08 +00:00
y_min = mcl_vars.mg_lava_nether_max ,
2022-10-27 17:34:58 +00:00
y_max = mcl_vars.mg_nether_deco_max ,
2022-06-18 19:38:20 +00:00
decoration = " mcl_nether:netherrack " ,
flags = " all_floors " ,
param2 = 0 ,
} )
2022-06-16 20:17:11 +00:00
minetest.register_biome ( {
name = " SoulsandValley " ,
node_filler = " mcl_nether:netherrack " ,
node_stone = " mcl_nether:netherrack " ,
node_top = " mcl_blackstone:soul_soil " ,
node_water = " air " ,
node_river_water = " air " ,
node_cave_liquid = " air " ,
y_min = mcl_vars.mg_nether_min ,
y_max = mcl_vars.mg_nether_max + 80 ,
2022-06-17 21:30:00 +00:00
heat_point = 77 ,
humidity_point = 33 ,
2022-06-16 20:17:11 +00:00
_mcl_biome_type = " hot " ,
_mcl_palette_index = 17 ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
2022-10-23 12:33:09 +00:00
place_on = { " mcl_nether:netherrack " , " mcl_nether:glowstone " , " mcl_nether:magma " } ,
2022-06-16 20:17:11 +00:00
sidelen = 16 ,
fill_ratio = 10 ,
biomes = { " SoulsandValley " } ,
2022-10-29 01:16:08 +00:00
y_min = mcl_vars.mg_lava_nether_max ,
2022-10-27 17:34:58 +00:00
y_max = mcl_vars.mg_nether_deco_max ,
2022-06-16 20:17:11 +00:00
decoration = " mcl_blackstone:soul_soil " ,
flags = " all_floors, all_ceilings " ,
param2 = 0 ,
} )
2022-06-17 13:54:36 +00:00
minetest.register_ore ( {
ore_type = " blob " ,
ore = " mcl_nether:soul_sand " ,
wherein = { " mcl_nether:netherrack " , " mcl_blackstone:soul_soil " } ,
clust_scarcity = 100 ,
2022-06-18 14:01:25 +00:00
clust_num_ores = 225 ,
clust_size = 15 ,
2022-06-17 13:54:36 +00:00
biomes = { " SoulsandValley " } ,
2022-10-29 01:16:08 +00:00
y_min = mcl_vars.mg_lava_nether_max ,
2022-10-27 17:34:58 +00:00
y_max = mcl_vars.mg_nether_deco_max ,
2022-06-17 13:54:36 +00:00
noise_params = {
offset = 0 ,
scale = 1 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 12345 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
flags = " defaults " ,
}
} )
2022-06-16 20:17:11 +00:00
minetest.register_biome ( {
name = " CrimsonForest " ,
node_filler = " mcl_nether:netherrack " ,
node_stone = " mcl_nether:netherrack " ,
node_top = " mcl_crimson:crimson_nylium " ,
node_water = " air " ,
node_river_water = " air " ,
node_cave_liquid = " air " ,
y_min = mcl_vars.mg_nether_min ,
y_max = mcl_vars.mg_nether_max + 80 ,
heat_point = 60 ,
2022-06-17 21:30:00 +00:00
humidity_point = 47 ,
2022-06-16 20:17:11 +00:00
_mcl_biome_type = " hot " ,
_mcl_palette_index = 17 ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
2022-10-23 12:33:09 +00:00
place_on = { " mcl_nether:netherrack " , " mcl_nether:glowstone " , " mcl_blackstone:nether_gold " , " mcl_nether:quartz_ore " , " mcl_core:gravel " , " mcl_nether:soul_sand " , " mcl_nether:magma " , " mcl_blackstone:blackstone " } ,
2022-06-16 20:17:11 +00:00
sidelen = 16 ,
fill_ratio = 10 ,
biomes = { " CrimsonForest " } ,
2022-10-29 01:16:08 +00:00
y_min = mcl_vars.mg_lava_nether_max ,
2022-10-27 17:34:58 +00:00
y_max = mcl_vars.mg_nether_deco_max ,
2022-06-16 20:17:11 +00:00
decoration = " mcl_crimson:crimson_nylium " ,
2022-06-17 13:54:36 +00:00
flags = " all_floors " ,
2022-06-16 20:17:11 +00:00
param2 = 0 ,
} )
minetest.register_biome ( {
name = " WarpedForest " ,
node_filler = " mcl_nether:netherrack " ,
node_stone = " mcl_nether:netherrack " ,
node_top = " mcl_crimson:warped_nylium " ,
node_water = " air " ,
node_river_water = " air " ,
node_cave_liquid = " air " ,
y_min = mcl_vars.mg_nether_min ,
y_max = mcl_vars.mg_nether_max + 80 ,
2022-06-17 21:30:00 +00:00
heat_point = 37 ,
humidity_point = 70 ,
2022-06-16 20:17:11 +00:00
_mcl_biome_type = " hot " ,
_mcl_palette_index = 17 ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
2022-10-23 12:33:09 +00:00
place_on = { " mcl_nether:netherrack " , " mcl_nether:glowstone " , " mcl_blackstone:nether_gold " , " mcl_nether:quartz_ore " , " mcl_core:gravel " , " mcl_nether:soul_sand " , " mcl_nether:magma " , " mcl_blackstone:blackstone " } ,
2022-06-16 20:17:11 +00:00
sidelen = 16 ,
fill_ratio = 10 ,
biomes = { " WarpedForest " } ,
2022-10-29 01:16:08 +00:00
y_min = mcl_vars.mg_lava_nether_max ,
2022-10-27 17:34:58 +00:00
y_max = mcl_vars.mg_nether_deco_max ,
2022-06-16 20:17:11 +00:00
decoration = " mcl_crimson:warped_nylium " ,
2022-06-17 13:54:36 +00:00
flags = " all_floors " ,
2022-06-16 20:17:11 +00:00
param2 = 0 ,
} )
minetest.register_biome ( {
name = " BasaltDelta " ,
node_filler = " mcl_nether:netherrack " ,
node_stone = " mcl_nether:netherrack " ,
node_top = " mcl_blackstone:basalt " ,
node_water = " air " ,
node_river_water = " air " ,
node_cave_liquid = " air " ,
y_min = mcl_vars.mg_nether_min ,
y_max = mcl_vars.mg_nether_max + 80 ,
2022-06-17 21:30:00 +00:00
heat_point = 27 ,
2022-06-16 20:17:11 +00:00
humidity_point = 80 ,
_mcl_biome_type = " hot " ,
_mcl_palette_index = 17 ,
} )
2022-10-23 12:33:09 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_nether:netherrack " , " mcl_nether:glowstone " , " mcl_blackstone:nether_gold " , " mcl_nether:quartz_ore " , " mcl_core:gravel " , " mcl_nether:soul_sand " , " mcl_blackstone:blackstone " , " mcl_nether:magma " } ,
sidelen = 16 ,
fill_ratio = 10 ,
biomes = { " BasaltDelta " } ,
2022-10-29 01:16:08 +00:00
y_min = mcl_vars.mg_lava_nether_max ,
2022-10-27 17:34:58 +00:00
y_max = mcl_vars.mg_nether_deco_max ,
2022-10-23 12:33:09 +00:00
decoration = " mcl_blackstone:basalt " ,
flags = " all_floors " ,
param2 = 0 ,
} )
2022-06-16 20:17:11 +00:00
minetest.register_ore ( {
ore_type = " blob " ,
ore = " mcl_blackstone:blackstone " ,
2022-10-29 01:16:08 +00:00
wherein = { " mcl_nether:netherrack " , " mcl_nether:glowstone " , " mcl_core:gravel " } ,
2022-06-16 20:17:11 +00:00
clust_scarcity = 100 ,
2022-06-18 14:01:25 +00:00
clust_num_ores = 400 ,
clust_size = 20 ,
2022-06-16 20:17:11 +00:00
biomes = { " BasaltDelta " } ,
2022-10-29 01:16:08 +00:00
y_min = mcl_vars.mg_lava_nether_max ,
2022-10-27 17:34:58 +00:00
y_max = mcl_vars.mg_nether_deco_max ,
2022-06-16 20:17:11 +00:00
noise_params = {
offset = 0 ,
scale = 1 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 12345 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
flags = " defaults " ,
}
} )
2017-08-16 15:01:16 +00:00
--[[ THE END ]]
2017-08-15 17:40:53 +00:00
minetest.register_biome ( {
2017-09-12 19:31:33 +00:00
name = " End " ,
2017-08-18 00:42:26 +00:00
node_stone = " air " ,
2017-08-18 11:28:20 +00:00
node_filler = " air " ,
node_water = " air " ,
2017-08-18 00:42:26 +00:00
node_river_water = " air " ,
2021-04-06 23:34:15 +00:00
node_cave_liquid = " air " ,
2017-08-17 21:14:02 +00:00
y_min = mcl_vars.mg_end_min ,
2017-08-21 22:22:53 +00:00
y_max = mcl_vars.mg_end_max + 80 ,
2022-09-11 00:38:44 +00:00
heat_point = 1000 , --ridiculously high values so End Island always takes precedent
humidity_point = 1000 ,
2022-09-11 18:28:24 +00:00
vertical_blend = 16 ,
_mcl_biome_type = " medium " ,
_mcl_palette_index = 0 ,
} )
2022-11-16 01:41:17 +00:00
minetest.register_biome ( {
name = " EndBarrens " ,
node_stone = " air " ,
node_filler = " air " ,
node_water = " air " ,
node_river_water = " air " ,
node_cave_liquid = " air " ,
y_min = mcl_vars.mg_end_min ,
y_max = mcl_vars.mg_end_max + 80 ,
heat_point = 1000 ,
humidity_point = 1000 ,
vertical_blend = 16 ,
_mcl_biome_type = " medium " ,
_mcl_palette_index = 0 ,
} )
2022-09-11 18:28:24 +00:00
minetest.register_biome ( {
name = " EndMidlands " ,
node_stone = " air " ,
node_filler = " air " ,
node_water = " air " ,
node_river_water = " air " ,
node_cave_liquid = " air " ,
y_min = mcl_vars.mg_end_min ,
y_max = mcl_vars.mg_end_max + 80 ,
2022-09-11 23:37:21 +00:00
heat_point = 1000 ,
2022-09-11 18:28:24 +00:00
humidity_point = 1000 ,
vertical_blend = 16 ,
_mcl_biome_type = " medium " ,
_mcl_palette_index = 0 ,
} )
minetest.register_biome ( {
name = " EndHighlands " ,
node_stone = " air " ,
node_filler = " air " ,
node_water = " air " ,
node_river_water = " air " ,
node_cave_liquid = " air " ,
y_min = mcl_vars.mg_end_min ,
y_max = mcl_vars.mg_end_max + 80 ,
2022-09-11 23:37:21 +00:00
heat_point = 1000 ,
2022-09-11 18:28:24 +00:00
humidity_point = 1000 ,
vertical_blend = 16 ,
_mcl_biome_type = " medium " ,
_mcl_palette_index = 0 ,
} )
minetest.register_biome ( {
name = " EndSmallIslands " ,
node_stone = " air " ,
node_filler = " air " ,
node_water = " air " ,
node_river_water = " air " ,
node_cave_liquid = " air " ,
y_min = mcl_vars.mg_end_min ,
y_max = mcl_vars.mg_end_max + 80 ,
2022-09-11 23:37:21 +00:00
heat_point = 1000 ,
2022-09-11 18:28:24 +00:00
humidity_point = 1000 ,
vertical_blend = 16 ,
_mcl_biome_type = " medium " ,
_mcl_palette_index = 0 ,
} )
minetest.register_biome ( {
name = " EndBorder " ,
node_stone = " air " ,
node_filler = " air " ,
node_water = " air " ,
node_river_water = " air " ,
node_cave_liquid = " air " ,
y_min = mcl_vars.mg_end_min ,
y_max = mcl_vars.mg_end_max + 80 ,
heat_point = 500 ,
humidity_point = 500 ,
vertical_blend = 16 ,
max_pos = { x = 1250 , y = mcl_vars.mg_end_min + 512 , z = 1250 } ,
min_pos = { x = - 1250 , y = mcl_vars.mg_end_min , z = - 1250 } ,
2022-09-11 00:38:44 +00:00
_mcl_biome_type = " medium " ,
_mcl_palette_index = 0 ,
} )
minetest.register_biome ( {
2022-09-11 18:28:24 +00:00
name = " EndIsland " ,
2022-09-11 00:38:44 +00:00
node_stone = " air " ,
node_filler = " air " ,
node_water = " air " ,
node_river_water = " air " ,
node_cave_liquid = " air " ,
2022-09-11 23:37:21 +00:00
max_pos = { x = 650 , y = mcl_vars.mg_end_min + 512 , z = 650 } ,
min_pos = { x = - 650 , y = mcl_vars.mg_end_min , z = - 650 } ,
2017-08-15 17:40:53 +00:00
heat_point = 50 ,
humidity_point = 50 ,
2022-09-11 18:28:24 +00:00
vertical_blend = 16 ,
2019-03-25 08:04:41 +00:00
_mcl_biome_type = " medium " ,
2019-12-13 22:48:13 +00:00
_mcl_palette_index = 0 ,
2017-08-15 17:40:53 +00:00
} )
end
2018-01-10 16:55:17 +00:00
-- Register ores which are limited by biomes. For all mapgens except flat and singlenode.
local function register_biome_ores ( )
local stonelike = { " mcl_core:stone " , " mcl_core:diorite " , " mcl_core:andesite " , " mcl_core:granite " }
-- Emeralds
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_core:stone_with_emerald " ,
wherein = stonelike ,
clust_scarcity = 16384 ,
clust_num_ores = 1 ,
clust_size = 1 ,
y_min = mcl_worlds.layer_to_y ( 4 ) ,
y_max = mcl_worlds.layer_to_y ( 32 ) ,
2019-03-12 01:13:15 +00:00
biomes = {
" ExtremeHills " , " ExtremeHills_beach " , " ExtremeHills_ocean " , " ExtremeHills_deep_ocean " , " ExtremeHills_underground " ,
" ExtremeHills+ " , " ExtremeHills+_ocean " , " ExtremeHills+_deep_ocean " , " ExtremeHills+_underground " ,
" ExtremeHillsM " , " ExtremeHillsM_ocean " , " ExtremeHillsM_deep_ocean " , " ExtremeHillsM_underground " ,
} ,
2018-01-10 16:55:17 +00:00
} )
-- Rarely replace stone with stone monster eggs.
-- In v6 this can happen anywhere, in other mapgens only in Extreme Hills.
local monster_egg_scarcity
if mg_name == " v6 " then
monster_egg_scarcity = 28 * 28 * 28
else
monster_egg_scarcity = 26 * 26 * 26
end
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_monster_eggs:monster_egg_stone " ,
wherein = " mcl_core:stone " ,
clust_scarcity = monster_egg_scarcity ,
clust_num_ores = 3 ,
clust_size = 2 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_worlds.layer_to_y ( 61 ) ,
2019-03-12 01:13:15 +00:00
biomes = {
" ExtremeHills " , " ExtremeHills_beach " , " ExtremeHills_ocean " , " ExtremeHills_deep_ocean " , " ExtremeHills_underground " ,
" ExtremeHills+ " , " ExtremeHills+_ocean " , " ExtremeHills+_deep_ocean " , " ExtremeHills+_underground " ,
" ExtremeHillsM " , " ExtremeHillsM_ocean " , " ExtremeHillsM_deep_ocean " , " ExtremeHillsM_underground " ,
} ,
2018-01-10 16:55:17 +00:00
} )
-- Bonus gold spawn in Mesa
if mg_name ~= " v6 " then
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_core:stone_with_gold " ,
wherein = stonelike ,
clust_scarcity = 3333 ,
clust_num_ores = 5 ,
clust_size = 3 ,
y_min = mcl_worlds.layer_to_y ( 32 ) ,
y_max = mcl_worlds.layer_to_y ( 79 ) ,
2019-03-10 23:04:03 +00:00
biomes = { " Mesa " , " Mesa_sandlevel " , " Mesa_ocean " ,
2019-03-11 20:42:30 +00:00
" MesaBryce " , " MesaBryce_sandlevel " , " MesaBryce_ocean " ,
2019-03-10 23:04:03 +00:00
" MesaPlateauF " , " MesaPlateauF_sandlevel " , " MesaPlateauF_ocean " ,
" MesaPlateauFM " , " MesaPlateauFM_sandlevel " , " MesaPlateauFM_ocean " , } ,
2018-01-10 16:55:17 +00:00
} )
end
2022-06-17 13:54:36 +00:00
--nether gold
if mg_name ~= " v6 " then
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_blackstone:blackstone_gilded " ,
wherein = " mcl_blackstone:blackstone " ,
clust_scarcity = 4775 ,
clust_num_ores = 2 ,
clust_size = 2 ,
y_min = mcl_vars.mg_nether_min ,
y_max = mcl_vars.mg_nether_max ,
} )
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_blackstone:nether_gold " ,
wherein = " mcl_nether:netherrack " ,
clust_scarcity = 830 ,
clust_num_ores = 5 ,
clust_size = 3 ,
y_min = mcl_vars.mg_nether_min ,
y_max = mcl_vars.mg_nether_max ,
} )
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_blackstone:nether_gold " ,
wherein = " mcl_nether:netherrack " ,
clust_scarcity = 1660 ,
clust_num_ores = 4 ,
clust_size = 2 ,
y_min = mcl_vars.mg_nether_min ,
y_max = mcl_vars.mg_nether_max ,
} )
end
2018-01-10 16:55:17 +00:00
end
-- Register “fake” ores directly related to the biomes. These are mostly low-level landscape alternations
2017-08-15 17:40:53 +00:00
local function register_biomelike_ores ( )
2017-09-10 04:30:28 +00:00
-- Random coarse dirt floor in Mega Taiga and Mesa Plateau F
2017-09-09 03:04:39 +00:00
minetest.register_ore ( {
ore_type = " sheet " ,
ore = " mcl_core:coarse_dirt " ,
wherein = { " mcl_core:podzol " , " mcl_core:dirt " } ,
clust_scarcity = 1 ,
clust_num_ores = 12 ,
clust_size = 10 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
noise_threshold = 0.2 ,
noise_params = { offset = 0 , scale = 15 , spread = { x = 130 , y = 130 , z = 130 } , seed = 24 , octaves = 3 , persist = 0.70 } ,
2017-09-12 19:31:33 +00:00
biomes = { " MegaTaiga " } ,
2017-09-09 03:04:39 +00:00
} )
2017-09-10 04:30:28 +00:00
minetest.register_ore ( {
ore_type = " sheet " ,
ore = " mcl_core:coarse_dirt " ,
2019-12-13 13:03:12 +00:00
wherein = { " mcl_core:dirt_with_grass " , " mcl_core:dirt " } ,
2017-09-10 04:30:28 +00:00
column_height_max = 1 ,
column_midpoint_factor = 0.0 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
noise_threshold = 0.0 ,
noise_params = { offset = 0 , scale = 15 , spread = { x = 250 , y = 250 , z = 250 } , seed = 24 , octaves = 3 , persist = 0.70 } ,
2017-09-12 19:31:33 +00:00
biomes = { " MesaPlateauF_grasstop " } ,
2017-09-10 04:30:28 +00:00
} )
minetest.register_ore ( {
ore_type = " blob " ,
ore = " mcl_core:coarse_dirt " ,
2019-12-13 13:03:12 +00:00
wherein = { " mcl_core:dirt_with_grass " , " mcl_core:dirt " } ,
2017-09-10 04:30:28 +00:00
clust_scarcity = 1500 ,
clust_num_ores = 25 ,
clust_size = 7 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
2021-02-18 10:54:51 +00:00
noise_params = {
offset = 0 ,
scale = 1 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 12345 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
flags = " defaults " ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " MesaPlateauF_grasstop " } ,
2017-09-10 04:30:28 +00:00
} )
2019-03-10 23:04:03 +00:00
minetest.register_ore ( {
ore_type = " sheet " ,
ore = " mcl_core:coarse_dirt " ,
2019-12-13 13:03:12 +00:00
wherein = { " mcl_core:dirt_with_grass " , " mcl_core:dirt " } ,
2019-03-10 23:04:03 +00:00
column_height_max = 1 ,
column_midpoint_factor = 0.0 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
noise_threshold = - 2.5 ,
noise_params = { offset = 1 , scale = 15 , spread = { x = 250 , y = 250 , z = 250 } , seed = 24 , octaves = 3 , persist = 0.80 } ,
biomes = { " MesaPlateauFM_grasstop " } ,
} )
minetest.register_ore ( {
ore_type = " blob " ,
ore = " mcl_core:coarse_dirt " ,
2019-12-13 13:03:12 +00:00
wherein = { " mcl_core:dirt_with_grass " , " mcl_core:dirt " } ,
2019-03-10 23:04:03 +00:00
clust_scarcity = 1800 ,
clust_num_ores = 65 ,
clust_size = 15 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
2021-02-18 10:54:51 +00:00
noise_params = {
offset = 0 ,
scale = 1 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 12345 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
flags = " defaults " ,
} ,
2019-03-10 23:04:03 +00:00
biomes = { " MesaPlateauFM_grasstop " } ,
} )
-- Occasionally dig out portions of MesaPlateauFM
minetest.register_ore ( {
ore_type = " blob " ,
ore = " air " ,
wherein = { " group:hardened_clay " , " group:sand " , " mcl_core:coarse_dirt " } ,
clust_scarcity = 4000 ,
clust_size = 5 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
2021-02-18 10:54:51 +00:00
noise_params = {
offset = 0 ,
scale = 1 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 12345 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
flags = " defaults " ,
} ,
2019-03-10 23:04:03 +00:00
biomes = { " MesaPlateauFM " , " MesaPlateauFM_grasstop " } ,
} )
minetest.register_ore ( {
ore_type = " blob " ,
ore = " mcl_core:redsandstone " ,
wherein = { " mcl_colorblocks:hardened_clay_orange " } ,
clust_scarcity = 300 ,
clust_size = 8 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
2021-02-18 10:54:51 +00:00
noise_params = {
offset = 0 ,
scale = 1 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 12345 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
flags = " defaults " ,
} ,
2019-03-10 23:04:03 +00:00
biomes = { " MesaPlateauFM_sandlevel " } ,
} )
-- More red sand in MesaPlateauFM
minetest.register_ore ( {
ore_type = " sheet " ,
ore = " mcl_core:redsand " ,
wherein = { " group:hardened_clay " } ,
clust_scarcity = 1 ,
clust_num_ores = 12 ,
clust_size = 10 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
noise_threshold = 0.1 ,
noise_params = { offset = 0 , scale = 15 , spread = { x = 130 , y = 130 , z = 130 } , seed = 95 , octaves = 3 , persist = 0.70 } ,
biomes = { " MesaPlateauFM " } ,
} )
minetest.register_ore ( {
ore_type = " blob " ,
ore = " mcl_core:redsand " ,
wherein = { " group:hardened_clay " } ,
clust_scarcity = 1500 ,
clust_size = 4 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
2021-02-18 10:54:51 +00:00
noise_params = {
offset = 0 ,
scale = 1 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 12345 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
flags = " defaults " ,
} ,
2019-03-10 23:04:03 +00:00
biomes = { " MesaPlateauFM " , " MesaPlateauFM_grasstop " , " MesaPlateauFM_sandlevel " } ,
} )
2017-09-10 04:30:28 +00:00
2017-09-09 09:42:15 +00:00
-- Small dirt patches in Extreme Hills M
minetest.register_ore ( {
ore_type = " blob " ,
-- TODO: Should be grass block. But generating this as ore means gras blocks will spawn undeground. :-(
ore = " mcl_core:dirt " ,
wherein = { " mcl_core:gravel " } ,
clust_scarcity = 5000 ,
clust_num_ores = 12 ,
clust_size = 4 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
noise_threshold = 0.2 ,
noise_params = { offset = 0 , scale = 5 , spread = { x = 250 , y = 250 , z = 250 } , seed = 64 , octaves = 3 , persist = 0.60 } ,
2017-09-12 19:31:33 +00:00
biomes = { " ExtremeHillsM " } ,
2017-09-09 09:42:15 +00:00
} )
2019-03-10 17:42:53 +00:00
-- For a transition from stone to hardened clay in mesa biomes that is not perfectly flat
2017-09-13 19:43:15 +00:00
minetest.register_ore ( {
2019-03-10 17:42:53 +00:00
ore_type = " stratum " ,
2017-09-13 19:43:15 +00:00
ore = " mcl_core:stone " ,
2019-03-10 17:42:53 +00:00
wherein = { " group:hardened_clay " } ,
noise_params = { offset =- 6 , scale = 2 , spread = { x = 25 , y = 25 , z = 25 } , octaves = 1 , persist = 0.60 } ,
stratum_thickness = 8 ,
2017-09-13 19:43:15 +00:00
biomes = {
2019-03-10 17:42:53 +00:00
" Mesa_sandlevel " , " Mesa_ocean " ,
2019-03-11 20:42:30 +00:00
" MesaBryce_sandlevel " , " MesaBryce_ocean " ,
2019-03-10 17:42:53 +00:00
" MesaPlateauF_sandlevel " , " MesaPlateauF_ocean " ,
2019-03-10 23:04:03 +00:00
" MesaPlateauFM_sandlevel " , " MesaPlateauFM_ocean " ,
2017-09-13 19:43:15 +00:00
} ,
2019-03-10 17:42:53 +00:00
y_min = - 4 ,
2017-09-13 19:43:15 +00:00
y_max = 0 ,
2019-03-10 17:42:53 +00:00
} )
2017-09-13 19:43:15 +00:00
2017-09-10 00:49:02 +00:00
-- Mesa strata (registered as sheet ores)
2017-08-15 17:40:53 +00:00
2017-09-13 19:43:15 +00:00
-- Helper function to create strata.
2021-05-25 10:52:25 +00:00
local function stratum ( y_min , height , color , seed , is_perfect )
2017-09-10 00:44:47 +00:00
if not height then
height = 1
end
if not seed then
seed = 39
end
local y_max = y_min + height - 1
2019-03-11 22:00:59 +00:00
local perfect_biomes
if is_perfect then
-- "perfect" means no erosion
perfect_biomes = { " MesaBryce " , " Mesa " , " MesaPlateauF " , " MesaPlateauFM " }
else
perfect_biomes = { " MesaBryce " }
end
-- Full, perfect stratum
2019-03-11 00:57:00 +00:00
minetest.register_ore ( {
ore_type = " stratum " ,
ore = " mcl_colorblocks:hardened_clay_ " .. color ,
2019-03-11 23:26:33 +00:00
-- Only paint uncolored so the biome can choose
-- a color in advance.
2019-03-11 00:57:00 +00:00
wherein = { " mcl_colorblocks:hardened_clay " } ,
y_min = y_min ,
y_max = y_max ,
2019-03-11 22:00:59 +00:00
biomes = perfect_biomes ,
2019-03-11 00:57:00 +00:00
} )
2019-03-11 22:00:59 +00:00
if not is_perfect then
-- Slightly eroded stratum, only minor imperfections
minetest.register_ore ( {
ore_type = " stratum " ,
ore = " mcl_colorblocks:hardened_clay_ " .. color ,
wherein = { " mcl_colorblocks:hardened_clay " } ,
y_min = y_min ,
y_max = y_max ,
biomes = { " Mesa " , " MesaPlateauF " } ,
noise_params = {
offset = y_min + ( y_max - y_min ) / 2 ,
scale = 0 ,
spread = { x = 50 , y = 50 , z = 50 } ,
seed = seed + 4 ,
octaves = 1 ,
persist = 1.0
} ,
np_stratum_thickness = {
offset = 1.28 ,
scale = 1 ,
spread = { x = 18 , y = 18 , z = 18 } ,
seed = seed + 4 ,
octaves = 3 ,
persist = 0.8 ,
} ,
} )
-- Very eroded stratum, most of the color is gone
2017-09-09 22:55:32 +00:00
minetest.register_ore ( {
2019-03-10 17:47:27 +00:00
ore_type = " stratum " ,
2017-09-13 19:49:06 +00:00
ore = " mcl_colorblocks:hardened_clay_ " .. color ,
2017-09-09 22:55:32 +00:00
wherein = { " mcl_colorblocks:hardened_clay " } ,
y_min = y_min ,
y_max = y_max ,
2019-03-11 00:57:00 +00:00
biomes = { " MesaPlateauFM " } ,
noise_params = {
offset = y_min + ( y_max - y_min ) / 2 ,
scale = 0 ,
spread = { x = 50 , y = 50 , z = 50 } ,
seed = seed + 4 ,
octaves = 1 ,
persist = 1.0
} ,
np_stratum_thickness = {
offset = 0.1 ,
scale = 1 ,
spread = { x = 28 , y = 28 , z = 28 } ,
seed = seed + 4 ,
octaves = 2 ,
persist = 0.6 ,
} ,
2017-09-09 22:55:32 +00:00
} )
2019-03-11 22:00:59 +00:00
end
2019-03-11 00:57:00 +00:00
2017-09-09 22:55:32 +00:00
end
2017-08-15 17:40:53 +00:00
2019-03-11 23:26:33 +00:00
-- Hardcoded orange strata near sea level.
-- For MesaBryce, since it has no sand at these heights
2019-03-11 23:46:08 +00:00
stratum ( 4 , 1 , " orange " , nil , true )
2019-03-11 23:26:33 +00:00
stratum ( 7 , 2 , " orange " , nil , true )
-- 3-level stratum above the sandlevel (all mesa biomes)
stratum ( 11 , 3 , " orange " , nil , true )
2017-09-10 00:44:47 +00:00
2017-09-13 20:50:21 +00:00
-- Create random strata for up to Y = 256.
-- These strata are calculated based on the world seed and are global.
2019-03-11 23:26:33 +00:00
-- They are thus different per-world.
local mesapr = PcgRandom ( mg_seed )
2017-09-13 20:50:21 +00:00
--[[
------ DANGER ZONE! ------
The following code is sensitive to changes ; changing any number may break
mapgen consistency when the mapgen generates new mapchunks in existing
worlds because the random generator will yield different results and the strata
suddenly don ' t match up anymore. ]]
-- Available Mesa colors:
local mesa_stratum_colors = { " silver " , " brown " , " orange " , " red " , " yellow " , " white " }
-- Start level
local y = 17
-- Generate stratas
2017-09-10 00:44:47 +00:00
repeat
2017-09-13 20:50:21 +00:00
-- Each stratum has a color (duh!)
local colorid = mesapr : next ( 1 , # mesa_stratum_colors )
-- … and a random thickness
local heightrandom = mesapr : next ( 1 , 12 )
local h
if heightrandom == 12 then
h = 4
elseif heightrandom >= 10 then
h = 3
elseif heightrandom >= 8 then
h = 2
else
h = 1
end
-- Small built-in bias: Only thin strata up to this Y level
if y < 45 then
h = math.min ( h , 2 )
end
-- Register stratum
stratum ( y , h , mesa_stratum_colors [ colorid ] )
-- Skip a random amount of layers (which won't get painted)
local skiprandom = mesapr : next ( 1 , 12 )
local skip
if skiprandom == 12 then
skip = 4
elseif skiprandom >= 10 then
skip = 3
elseif skiprandom >= 5 then
skip = 2
elseif skiprandom >= 2 then
skip = 1
else
-- If this happens, the next stratum will touch the previous one without gap
skip = 0
end
-- Get height of next stratum or finish
y = y + h + skip
until y > 256
--[[ END OF DANGER ZONE ]]
2017-08-17 21:14:02 +00:00
end
2017-08-15 17:40:53 +00:00
2017-08-17 21:14:02 +00:00
-- Non-Overworld ores
local function register_dimension_ores ( )
2017-08-15 17:40:53 +00:00
--[[ NETHER GENERATION ]]
-- Soul sand
minetest.register_ore ( {
ore_type = " sheet " ,
ore = " mcl_nether:soul_sand " ,
2017-08-17 21:58:35 +00:00
-- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally
-- in v6, but instead set with the on_generated function in mcl_mapgen_core.
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
2017-08-15 17:40:53 +00:00
clust_scarcity = 13 * 13 * 13 ,
clust_size = 5 ,
2017-08-16 14:22:28 +00:00
y_min = mcl_vars.mg_nether_min ,
2017-11-24 02:10:02 +00:00
y_max = mcl_worlds.layer_to_y ( 64 , " nether " ) ,
2017-08-15 17:40:53 +00:00
noise_threshold = 0.0 ,
noise_params = {
offset = 0.5 ,
scale = 0.1 ,
spread = { x = 5 , y = 5 , z = 5 } ,
seed = 2316 ,
octaves = 1 ,
persist = 0.0
} ,
} )
-- Magma blocks
minetest.register_ore ( {
2017-08-16 15:01:16 +00:00
ore_type = " blob " ,
ore = " mcl_nether:magma " ,
2017-08-17 21:58:35 +00:00
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
2017-08-17 22:53:07 +00:00
clust_scarcity = 8 * 8 * 8 ,
clust_num_ores = 45 ,
clust_size = 6 ,
2017-11-24 02:10:02 +00:00
y_min = mcl_worlds.layer_to_y ( 23 , " nether " ) ,
y_max = mcl_worlds.layer_to_y ( 37 , " nether " ) ,
2021-02-18 10:54:51 +00:00
noise_params = {
offset = 0 ,
scale = 1 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 12345 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
flags = " defaults " ,
} ,
2017-08-17 03:35:06 +00:00
} )
minetest.register_ore ( {
ore_type = " blob " ,
ore = " mcl_nether:magma " ,
wherein = { " mcl_nether:netherrack " } ,
2017-08-17 22:53:07 +00:00
clust_scarcity = 10 * 10 * 10 ,
clust_num_ores = 65 ,
clust_size = 8 ,
2017-11-24 02:10:02 +00:00
y_min = mcl_worlds.layer_to_y ( 23 , " nether " ) ,
y_max = mcl_worlds.layer_to_y ( 37 , " nether " ) ,
2021-02-18 10:54:51 +00:00
noise_params = {
offset = 0 ,
scale = 1 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 12345 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
flags = " defaults " ,
} ,
2017-08-15 17:40:53 +00:00
} )
-- Glowstone
minetest.register_ore ( {
ore_type = " blob " ,
ore = " mcl_nether:glowstone " ,
2017-08-17 21:58:35 +00:00
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
2017-08-15 17:40:53 +00:00
clust_scarcity = 26 * 26 * 26 ,
clust_size = 5 ,
2017-08-16 15:01:16 +00:00
y_min = mcl_vars.mg_lava_nether_max + 10 ,
2022-10-29 09:49:56 +00:00
y_max = mcl_vars.mg_nether_max - 13 ,
2017-08-15 17:40:53 +00:00
noise_threshold = 0.0 ,
noise_params = {
offset = 0.5 ,
scale = 0.1 ,
spread = { x = 5 , y = 5 , z = 5 } ,
seed = 17676 ,
octaves = 1 ,
persist = 0.0
} ,
} )
2017-08-16 15:31:28 +00:00
-- Gravel (Nether)
minetest.register_ore ( {
ore_type = " sheet " ,
ore = " mcl_core:gravel " ,
2017-08-17 21:58:35 +00:00
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
2017-08-16 15:31:28 +00:00
column_height_min = 1 ,
column_height_max = 1 ,
2017-08-31 14:28:16 +00:00
column_midpoint_factor = 0 ,
2017-11-24 02:10:02 +00:00
y_min = mcl_worlds.layer_to_y ( 63 , " nether " ) ,
2017-08-31 14:28:16 +00:00
-- This should be 65, but for some reason with this setting, the sheet ore really stops at 65. o_O
2017-11-24 02:10:02 +00:00
y_max = mcl_worlds.layer_to_y ( 65 + 2 , " nether " ) ,
2017-08-31 14:28:16 +00:00
noise_threshold = 0.2 ,
2017-08-16 15:31:28 +00:00
noise_params = {
offset = 0.0 ,
2017-08-31 14:28:16 +00:00
scale = 0.5 ,
spread = { x = 20 , y = 20 , z = 20 } ,
2017-08-16 15:31:28 +00:00
seed = 766 ,
2017-08-31 14:28:16 +00:00
octaves = 3 ,
2017-08-16 15:31:28 +00:00
persist = 0.6 ,
} ,
} )
2017-08-16 15:01:16 +00:00
-- Nether quartz
2021-03-18 08:48:18 +00:00
if minetest.settings : get_bool ( " mcl_generate_ores " , true ) then
2021-02-22 19:12:33 +00:00
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_nether:quartz_ore " ,
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
clust_scarcity = 850 ,
clust_num_ores = 4 , -- MC cluster amount: 4-10
clust_size = 3 ,
y_min = mcl_vars.mg_nether_min ,
y_max = mcl_vars.mg_nether_max ,
} )
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_nether:quartz_ore " ,
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
clust_scarcity = 1650 ,
clust_num_ores = 8 , -- MC cluster amount: 4-10
clust_size = 4 ,
y_min = mcl_vars.mg_nether_min ,
y_max = mcl_vars.mg_nether_max ,
} )
end
2017-08-15 17:40:53 +00:00
2017-08-16 15:08:33 +00:00
-- Lava springs in the Nether
2017-08-15 17:40:53 +00:00
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_nether:nether_lava_source " ,
2017-08-17 21:58:35 +00:00
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
2022-10-29 03:13:45 +00:00
clust_scarcity = 13500 , --rare
clust_num_ores = 1 ,
clust_size = 1 ,
y_min = mcl_vars.mg_lava_nether_max ,
y_max = mcl_vars.mg_nether_max - 13 ,
} )
local lava_biomes = { " BasaltDelta " , " Nether " }
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_nether:nether_lava_source " ,
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
2017-08-16 15:08:33 +00:00
clust_scarcity = 500 ,
clust_num_ores = 1 ,
clust_size = 1 ,
2022-10-29 03:13:45 +00:00
biomes = lava_biomes ,
y_min = mcl_vars.mg_nether_min ,
y_max = mcl_vars.mg_lava_nether_max + 1 ,
2017-08-15 17:40:53 +00:00
} )
2017-08-16 15:08:33 +00:00
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_nether:nether_lava_source " ,
2017-08-17 21:58:35 +00:00
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
2017-08-16 15:08:33 +00:00
clust_scarcity = 1000 ,
clust_num_ores = 1 ,
clust_size = 1 ,
2022-10-29 03:13:45 +00:00
biomes = lava_biomes ,
2017-08-16 15:08:33 +00:00
y_min = mcl_vars.mg_lava_nether_max + 2 ,
y_max = mcl_vars.mg_lava_nether_max + 12 ,
} )
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_nether:nether_lava_source " ,
2017-08-17 21:58:35 +00:00
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
2017-08-16 15:08:33 +00:00
clust_scarcity = 2000 ,
clust_num_ores = 1 ,
clust_size = 1 ,
2022-10-29 03:13:45 +00:00
biomes = lava_biomes ,
2017-08-16 15:08:33 +00:00
y_min = mcl_vars.mg_lava_nether_max + 13 ,
y_max = mcl_vars.mg_lava_nether_max + 48 ,
} )
minetest.register_ore ( {
ore_type = " scatter " ,
ore = " mcl_nether:nether_lava_source " ,
2017-08-17 21:58:35 +00:00
wherein = { " mcl_nether:netherrack " , " mcl_core:stone " } ,
2017-08-16 15:08:33 +00:00
clust_scarcity = 3500 ,
clust_num_ores = 1 ,
clust_size = 1 ,
2022-10-29 03:13:45 +00:00
biomes = lava_biomes ,
2017-08-16 15:08:33 +00:00
y_min = mcl_vars.mg_lava_nether_max + 49 ,
2022-10-29 03:13:45 +00:00
y_max = mcl_vars.mg_nether_max - 13 ,
2017-08-16 15:08:33 +00:00
} )
2017-08-15 17:40:53 +00:00
--[[ THE END ]]
-- Generate fake End
2019-03-09 17:52:24 +00:00
-- TODO: Remove the "ores" when there's a better End generator
-- FIXME: Broken lighting in v6 mapgen
local end_wherein
if mg_name == " v6 " then
end_wherein = { " air " , " mcl_core:stone " }
else
end_wherein = { " air " }
end
2017-08-15 17:40:53 +00:00
2022-09-11 18:28:24 +00:00
local mult = 1.0
minetest.register_ore ( {
2022-09-11 23:37:21 +00:00
ore_type = " stratum " ,
2022-09-11 18:28:24 +00:00
ore = " mcl_end:end_stone " ,
wherein = end_wherein ,
biomes = { " EndSmallIslands " , " Endborder " } ,
y_min = mcl_vars.mg_end_min + 64 ,
y_max = mcl_vars.mg_end_min + 80 ,
clust_num_ores = 3375 ,
clust_size = 15 ,
noise_params = {
offset = mcl_vars.mg_end_min + 70 ,
scale = - 1 ,
spread = { x = 84 , y = 84 , z = 84 } ,
seed = 145 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
--flags = "defaults",
} ,
np_stratum_thickness = {
offset = 0 ,
scale = 15 ,
spread = { x = 84 , y = 84 , z = 84 } ,
seed = 145 ,
octaves = 3 ,
persist = 0.6 ,
lacunarity = 2 ,
--flags = "defaults",
} ,
clust_scarcity = 1 ,
} )
2017-08-15 17:40:53 +00:00
minetest.register_ore ( {
2019-03-09 17:52:24 +00:00
ore_type = " stratum " ,
2017-08-15 17:40:53 +00:00
ore = " mcl_end:end_stone " ,
2019-03-09 17:52:24 +00:00
wherein = end_wherein ,
2022-09-11 18:28:24 +00:00
biomes = { " End " , " EndMidlands " , " EndHighlands " , " EndBarrens " } ,
2017-08-18 00:42:26 +00:00
y_min = mcl_vars.mg_end_min + 64 ,
2019-03-09 20:20:37 +00:00
y_max = mcl_vars.mg_end_min + 80 ,
2019-03-09 17:52:24 +00:00
2017-08-18 00:42:26 +00:00
noise_params = {
2019-03-09 17:52:24 +00:00
offset = mcl_vars.mg_end_min + 70 ,
scale = - 1 ,
spread = { x = 126 , y = 126 , z = 126 } ,
2019-03-09 18:15:10 +00:00
seed = mg_seed + 9999 ,
2019-03-09 17:52:24 +00:00
octaves = 3 ,
persist = 0.5 ,
} ,
np_stratum_thickness = {
2017-08-18 00:42:26 +00:00
offset = - 2 ,
2019-03-09 17:52:24 +00:00
scale = 10 ,
spread = { x = 126 , y = 126 , z = 126 } ,
2019-03-09 18:15:10 +00:00
seed = mg_seed + 9999 ,
2019-03-09 17:52:24 +00:00
octaves = 3 ,
persist = 0.5 ,
2017-08-15 17:40:53 +00:00
} ,
2019-03-09 17:52:24 +00:00
clust_scarcity = 1 ,
2017-08-15 17:40:53 +00:00
} )
minetest.register_ore ( {
2019-03-09 17:52:24 +00:00
ore_type = " stratum " ,
2017-08-15 17:40:53 +00:00
ore = " mcl_end:end_stone " ,
2019-03-09 17:52:24 +00:00
wherein = end_wherein ,
2022-09-11 18:28:24 +00:00
biomes = { " End " , " EndMidlands " , " EndHighlands " , " EndBarrens " } ,
2017-08-18 00:42:26 +00:00
y_min = mcl_vars.mg_end_min + 64 ,
2019-03-09 20:20:37 +00:00
y_max = mcl_vars.mg_end_min + 80 ,
2019-03-09 17:52:24 +00:00
2017-08-18 00:42:26 +00:00
noise_params = {
2019-03-09 17:52:24 +00:00
offset = mcl_vars.mg_end_min + 72 ,
scale = - 3 ,
spread = { x = 84 , y = 84 , z = 84 } ,
2019-03-09 18:15:10 +00:00
seed = mg_seed + 999 ,
2019-03-09 17:52:24 +00:00
octaves = 4 ,
persist = 0.8 ,
} ,
np_stratum_thickness = {
2017-08-18 00:42:26 +00:00
offset = - 4 ,
2019-03-09 17:52:24 +00:00
scale = 10 ,
spread = { x = 84 , y = 84 , z = 84 } ,
2019-03-09 18:15:10 +00:00
seed = mg_seed + 999 ,
2019-03-09 17:52:24 +00:00
octaves = 4 ,
persist = 0.8 ,
} ,
clust_scarcity = 1 ,
} )
minetest.register_ore ( {
ore_type = " stratum " ,
ore = " mcl_end:end_stone " ,
wherein = end_wherein ,
2022-09-11 18:28:24 +00:00
biomes = { " End " , " EndMidlands " , " EndHighlands " , " EndBarrens " } ,
2019-03-09 17:52:24 +00:00
y_min = mcl_vars.mg_end_min + 64 ,
2019-03-09 20:20:37 +00:00
y_max = mcl_vars.mg_end_min + 80 ,
2019-03-09 17:52:24 +00:00
noise_params = {
offset = mcl_vars.mg_end_min + 70 ,
scale = - 2 ,
spread = { x = 84 , y = 84 , z = 84 } ,
2019-03-09 18:15:10 +00:00
seed = mg_seed + 99 ,
2019-03-09 17:52:24 +00:00
octaves = 4 ,
persist = 0.85 ,
2017-08-15 17:40:53 +00:00
} ,
2019-03-09 17:52:24 +00:00
np_stratum_thickness = {
offset = - 3 ,
scale = 5 ,
spread = { x = 63 , y = 63 , z = 63 } ,
2019-03-09 18:15:10 +00:00
seed = mg_seed + 50 ,
2019-03-09 17:52:24 +00:00
octaves = 4 ,
persist = 0.85 ,
} ,
clust_scarcity = 1 ,
2017-08-15 17:40:53 +00:00
} )
end
-- All mapgens except mgv6
2017-09-05 19:30:02 +00:00
-- Template to register a grass or fern decoration
2019-12-13 22:48:13 +00:00
local function register_grass_decoration ( grasstype , offset , scale , biomes )
2017-09-05 19:30:02 +00:00
local place_on , seed , node
if grasstype == " fern " then
node = " mcl_flowers:fern "
2022-07-28 16:22:54 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:podzol " , " mcl_mud:mud " }
2017-09-05 19:30:02 +00:00
seed = 333
elseif grasstype == " tallgrass " then
node = " mcl_flowers:tallgrass "
2022-07-28 16:22:54 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_mud:mud " }
2017-11-14 22:44:53 +00:00
seed = 420
2017-08-21 12:04:34 +00:00
end
local noise = {
2017-08-21 00:25:22 +00:00
offset = offset ,
scale = scale ,
spread = { x = 200 , y = 200 , z = 200 } ,
2017-09-05 19:30:02 +00:00
seed = seed ,
2017-08-21 00:25:22 +00:00
octaves = 3 ,
persist = 0.6
}
2019-12-13 22:48:13 +00:00
for b = 1 , # biomes do
local param2 = minetest.registered_biomes [ biomes [ b ] ] . _mcl_palette_index
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = place_on ,
sidelen = 16 ,
noise_params = noise ,
biomes = { biomes [ b ] } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
decoration = node ,
param2 = param2 ,
} )
end
2017-08-21 00:25:22 +00:00
end
2019-12-18 17:42:04 +00:00
local function register_seagrass_decoration ( grasstype , offset , scale , biomes )
local seed , nodes , surfaces , param2 , param2_max , y_max
if grasstype == " seagrass " then
seed = 16
surfaces = { " mcl_core:dirt " , " mcl_core:sand " , " mcl_core:gravel " , " mcl_core:redsand " }
nodes = { " mcl_ocean:seagrass_dirt " , " mcl_ocean:seagrass_sand " , " mcl_ocean:seagrass_gravel " , " mcl_ocean:seagrass_redsand " }
y_max = 0
elseif grasstype == " kelp " then
seed = 32
param2 = 16
param2_max = 96
surfaces = { " mcl_core:dirt " , " mcl_core:sand " , " mcl_core:gravel " }
nodes = { " mcl_ocean:kelp_dirt " , " mcl_ocean:kelp_sand " , " mcl_ocean:kelp_gravel " }
y_max = - 6
end
local noise = {
offset = offset ,
scale = scale ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = seed ,
octaves = 3 ,
persist = 0.6 ,
}
for s = 1 , # surfaces do
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { surfaces [ s ] } ,
sidelen = 16 ,
noise_params = noise ,
biomes = biomes ,
2019-12-18 20:04:07 +00:00
y_min = DEEP_OCEAN_MIN ,
2019-12-18 17:42:04 +00:00
y_max = y_max ,
decoration = nodes [ s ] ,
param2 = param2 ,
param2_max = param2_max ,
place_offset_y = - 1 ,
flags = " force_placement " ,
} )
end
end
2022-07-04 00:13:54 +00:00
local coral_min = OCEAN_MIN
local coral_max = - 10
2022-06-23 12:01:05 +00:00
local warm_oceans = {
" JungleEdgeM_ocean " ,
" Jungle_deep_ocean " ,
" Savanna_ocean " ,
" MesaPlateauF_ocean " ,
" Swampland_ocean " ,
" Mesa_ocean " ,
" Plains_ocean " ,
" MesaPlateauFM_ocean " ,
" MushroomIsland_ocean " ,
" SavannaM_ocean " ,
" JungleEdge_ocean " ,
" MesaBryce_ocean " ,
" Jungle_ocean " ,
" Desert_ocean " ,
" JungleM_ocean " ,
2022-07-28 19:11:21 +00:00
" MangroveSwamp_ocean "
2022-06-23 12:01:05 +00:00
}
local corals = {
" brain " ,
" horn " ,
" bubble " ,
" tube " ,
" fire "
}
local function register_coral_decos ( ck )
local c = corals [ ck ]
local noise = {
offset = - 0.0085 ,
scale = 0.002 ,
spread = { x = 25 , y = 120 , z = 25 } ,
seed = 235 ,
octaves = 5 ,
persist = 1.8 ,
lacunarity = 3.5 ,
flags = " absvalue "
}
minetest.register_decoration ( {
deco_type = " schematic " ,
2022-07-28 17:27:34 +00:00
place_on = { " group:sand " , " mcl_core:gravel " , " mcl_mud:mud " } ,
2022-06-23 12:01:05 +00:00
sidelen = 80 ,
noise_params = noise ,
biomes = warm_oceans ,
2022-07-04 00:13:54 +00:00
y_min = coral_min ,
y_max = coral_max ,
2022-06-23 12:01:05 +00:00
schematic = mod_mcl_structures .. " /schematics/mcl_structures_coral_ " .. c .. " _1.mts " ,
rotation = " random " ,
flags = " all_floors,force_placement " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
2022-07-28 17:27:34 +00:00
place_on = { " group:sand " , " mcl_core:gravel " , " mcl_mud:mud " } ,
2022-06-23 12:01:05 +00:00
noise_params = noise ,
sidelen = 80 ,
biomes = warm_oceans ,
2022-07-04 00:13:54 +00:00
y_min = coral_min ,
y_max = coral_max ,
2022-06-23 12:01:05 +00:00
schematic = mod_mcl_structures .. " /schematics/mcl_structures_coral_ " .. c .. " _2.mts " ,
rotation = " random " ,
flags = " all_floors,force_placement " ,
} )
2019-12-18 17:42:04 +00:00
2022-06-23 12:01:05 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_ocean: " .. c .. " _coral_block " } ,
sidelen = 16 ,
fill_ratio = 3 ,
2022-07-04 00:13:54 +00:00
y_min = coral_min ,
y_max = coral_max ,
2022-06-23 12:01:05 +00:00
decoration = " mcl_ocean: " .. c .. " _coral " ,
biomes = warm_oceans ,
flags = " force_placement, all_floors " ,
height = 1 ,
height_max = 1 ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_ocean:horn_coral_block " } ,
sidelen = 16 ,
fill_ratio = 7 ,
2022-07-04 00:13:54 +00:00
y_min = coral_min ,
y_max = coral_max ,
2022-06-23 12:01:05 +00:00
decoration = " mcl_ocean: " .. c .. " _coral_fan " ,
biomes = warm_oceans ,
flags = " force_placement, all_floors " ,
height = 1 ,
height_max = 1 ,
} )
end
2019-12-18 17:42:04 +00:00
2017-08-15 17:40:53 +00:00
local function register_decorations ( )
2022-06-23 12:01:05 +00:00
-- Coral Reefs
for k , _ in pairs ( corals ) do
register_coral_decos ( k )
end
minetest.register_decoration ( {
deco_type = " simple " ,
2022-07-28 17:27:34 +00:00
place_on = { " group:sand " , " mcl_core:gravel " , " mcl_mud:mud " } ,
2022-06-23 12:01:05 +00:00
sidelen = 16 ,
2022-06-24 16:15:26 +00:00
noise_params = {
offset = - 0.0085 ,
scale = 0.002 ,
spread = { x = 25 , y = 120 , z = 25 } ,
seed = 235 ,
octaves = 5 ,
persist = 1.8 ,
lacunarity = 3.5 ,
flags = " absvalue "
} ,
2022-07-04 00:13:54 +00:00
y_min = coral_min ,
y_max = coral_max ,
2022-06-23 12:01:05 +00:00
decoration = " mcl_ocean:dead_brain_coral_block " ,
biomes = warm_oceans ,
flags = " force_placement " ,
height = 1 ,
height_max = 1 ,
place_offset_y = - 1 ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_ocean:dead_brain_coral_block " } ,
sidelen = 16 ,
2022-06-23 15:18:01 +00:00
fill_ratio = 3 ,
2022-07-04 00:13:54 +00:00
y_min = coral_min ,
y_max = coral_max ,
2022-06-23 12:01:05 +00:00
decoration = " mcl_ocean:sea_pickle_1_dead_brain_coral_block " ,
biomes = warm_oceans ,
flags = " force_placement, all_floors " ,
height = 1 ,
height_max = 1 ,
place_offset_y = - 1 ,
} )
2022-06-23 15:18:01 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_ocean:dead_brain_coral_block " } ,
sidelen = 16 ,
fill_ratio = 3 ,
2022-07-04 00:13:54 +00:00
y_min = coral_min ,
y_max = coral_max ,
2022-06-23 15:18:01 +00:00
decoration = " mcl_ocean:sea_pickle_2_dead_brain_coral_block " ,
biomes = warm_oceans ,
flags = " force_placement, all_floors " ,
height = 1 ,
height_max = 1 ,
place_offset_y = - 1 ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_ocean:dead_brain_coral_block " } ,
sidelen = 16 ,
fill_ratio = 2 ,
2022-07-04 00:13:54 +00:00
y_min = coral_min ,
y_max = coral_max ,
2022-06-23 15:18:01 +00:00
decoration = " mcl_ocean:sea_pickle_3_dead_brain_coral_block " ,
biomes = warm_oceans ,
flags = " force_placement, all_floors " ,
height = 1 ,
height_max = 1 ,
place_offset_y = - 1 ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_ocean:dead_brain_coral_block " } ,
sidelen = 16 ,
fill_ratio = 2 ,
2022-07-04 00:13:54 +00:00
y_min = coral_min ,
y_max = coral_max ,
2022-06-23 15:18:01 +00:00
decoration = " mcl_ocean:sea_pickle_4_dead_brain_coral_block " ,
biomes = warm_oceans ,
flags = " force_placement, all_floors " ,
height = 1 ,
height_max = 1 ,
place_offset_y = - 1 ,
} )
2022-06-23 12:01:05 +00:00
--rare CORAl
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " group:sand " , " mcl_core:gravel " } ,
fill_ratio = 0.0001 ,
sidelen = 80 ,
biomes = warm_oceans ,
2022-07-04 00:13:54 +00:00
y_min = coral_min ,
y_max = coral_max ,
2022-06-23 12:01:05 +00:00
schematic = mod_mcl_structures .. " /schematics/coral_cora.mts " ,
rotation = " random " ,
flags = " place_center_x,place_center_z, force_placement " ,
} )
2022-10-23 23:13:44 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_core:dirt_with_grass " , " mcl_core:podzol " } ,
sidelen = 16 ,
noise_params = {
offset = 0 ,
scale = 0.012 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = 354 ,
octaves = 1 ,
persist = 0.5 ,
lacunarity = 1.0 ,
flags = " absvalue "
} ,
2022-10-24 14:35:47 +00:00
biomes = { " Taiga " , " ColdTaiga " , " MegaTaiga " , " MegaSpruceTaiga " , " Forest " } ,
2022-10-23 23:13:44 +00:00
y_max = mcl_vars.mg_overworld_max ,
y_min = 2 ,
decoration = " mcl_sweet_berry:sweet_berry_bush_3 "
} )
2022-06-23 12:01:05 +00:00
2017-09-04 04:32:30 +00:00
-- Large ice spike
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " mcl_core:snowblock " , " mcl_core:snow " , " group:grass_block_snow " } ,
2017-09-04 04:32:30 +00:00
sidelen = 80 ,
noise_params = {
offset = 0.00040 ,
scale = 0.001 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 1133 ,
octaves = 4 ,
persist = 0.67 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " IcePlainsSpikes " } ,
2017-09-04 04:32:30 +00:00
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_structures .. " /schematics/mcl_structures_ice_spike_large.mts " ,
2017-09-04 04:32:30 +00:00
rotation = " random " ,
flags = " place_center_x, place_center_z " ,
} )
-- Small ice spike
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " mcl_core:snowblock " , " mcl_core:snow " , " group:grass_block_snow " } ,
2017-09-04 04:32:30 +00:00
sidelen = 80 ,
noise_params = {
offset = 0.005 ,
scale = 0.001 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 1133 ,
octaves = 4 ,
persist = 0.67 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " IcePlainsSpikes " } ,
2017-09-04 04:32:30 +00:00
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_structures .. " /schematics/mcl_structures_ice_spike_small.mts " ,
2017-09-04 04:32:30 +00:00
rotation = " random " ,
flags = " place_center_x, place_center_z " ,
} )
2017-08-31 03:38:25 +00:00
-- Oak
2017-09-08 17:54:24 +00:00
-- Large oaks
2018-05-13 16:03:57 +00:00
for i = 1 , 4 do
2017-09-09 09:42:15 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-09 09:42:15 +00:00
sidelen = 80 ,
noise_params = {
2018-05-13 16:03:57 +00:00
offset = 0.000545 ,
2017-09-09 09:42:15 +00:00
scale = 0.0011 ,
spread = { x = 250 , y = 250 , z = 250 } ,
2018-05-13 16:03:57 +00:00
seed = 3 + 5 * i ,
2017-09-09 09:42:15 +00:00
octaves = 3 ,
persist = 0.66
} ,
2017-09-12 19:31:33 +00:00
biomes = { " Forest " } ,
2017-09-09 09:42:15 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_large_ " .. i .. " .mts " ,
2017-09-09 09:42:15 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " , " mcl_core:dirt " , } ,
2017-09-09 09:42:15 +00:00
sidelen = 80 ,
noise_params = {
2018-05-13 16:39:47 +00:00
offset = - 0.0007 ,
2017-09-09 09:42:15 +00:00
scale = 0.001 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 3 ,
octaves = 3 ,
persist = 0.6
} ,
2017-09-12 19:31:33 +00:00
biomes = { " ExtremeHills " , " ExtremeHillsM " , " ExtremeHills+ " , " ExtremeHills+_snowtop " } ,
2017-09-09 09:42:15 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_large_ " .. i .. " .mts " ,
2017-09-09 09:42:15 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
end
2017-09-12 19:54:42 +00:00
-- Small “classic” oak (many biomes)
2017-09-05 06:18:00 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-09 09:42:15 +00:00
sidelen = 16 ,
2017-09-05 06:18:00 +00:00
noise_params = {
2017-09-09 09:42:15 +00:00
offset = 0.025 ,
scale = 0.0022 ,
2017-09-05 06:18:00 +00:00
spread = { x = 250 , y = 250 , z = 250 } ,
2017-09-09 09:42:15 +00:00
seed = 2 ,
2017-09-05 06:18:00 +00:00
octaves = 3 ,
persist = 0.66
} ,
2017-09-12 19:31:33 +00:00
biomes = { " Forest " } ,
2017-09-05 06:18:00 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic.mts " ,
2017-09-05 06:18:00 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-09 09:42:15 +00:00
sidelen = 16 ,
2017-09-05 06:18:00 +00:00
noise_params = {
2017-09-09 09:42:15 +00:00
offset = 0.01 ,
scale = 0.0022 ,
2017-09-05 06:18:00 +00:00
spread = { x = 250 , y = 250 , z = 250 } ,
2017-09-09 09:42:15 +00:00
seed = 2 ,
2017-09-05 06:18:00 +00:00
octaves = 3 ,
persist = 0.66
} ,
2017-09-12 19:31:33 +00:00
biomes = { " FlowerForest " } ,
2017-09-05 06:18:00 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic.mts " ,
2017-09-05 06:18:00 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2017-08-15 17:40:53 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " , " mcl_core:dirt " , } ,
2017-08-15 17:40:53 +00:00
sidelen = 16 ,
noise_params = {
2017-09-09 09:42:15 +00:00
offset = 0.0 ,
scale = 0.002 ,
2017-08-15 17:40:53 +00:00
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
2017-09-09 09:42:15 +00:00
persist = 0.7
2017-08-15 17:40:53 +00:00
} ,
2017-09-12 19:31:33 +00:00
biomes = { " ExtremeHills " , " ExtremeHillsM " , " ExtremeHills+ " , " ExtremeHills+_snowtop " } ,
2017-08-15 17:40:53 +00:00
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic.mts " ,
2017-08-15 17:40:53 +00:00
flags = " place_center_x, place_center_z " ,
2017-08-21 11:43:16 +00:00
rotation = " random " ,
2017-08-15 17:40:53 +00:00
} )
2017-09-09 09:42:15 +00:00
2017-09-08 22:19:24 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " , " mcl_core:dirt " } ,
2017-09-08 22:19:24 +00:00
sidelen = 16 ,
noise_params = {
2017-09-09 09:42:15 +00:00
offset = 0.006 ,
scale = 0.002 ,
2017-09-08 22:19:24 +00:00
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
2017-09-09 09:42:15 +00:00
persist = 0.7
2017-09-08 22:19:24 +00:00
} ,
2017-09-12 19:31:33 +00:00
biomes = { " ExtremeHills+ " , " ExtremeHills+_snowtop " } ,
2017-09-09 09:42:15 +00:00
y_min = 50 ,
2017-09-08 22:19:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic.mts " ,
2017-09-08 22:19:24 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2017-09-10 01:16:49 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2019-12-13 13:03:12 +00:00
place_on = { " mcl_core:dirt_with_grass " , " mcl_core:dirt " } ,
2017-09-10 01:16:49 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.015 ,
scale = 0.002 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.7
} ,
2017-09-12 19:31:33 +00:00
biomes = { " MesaPlateauF_grasstop " } ,
2017-09-10 01:16:49 +00:00
y_min = 30 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic.mts " ,
2017-09-10 01:16:49 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2019-03-10 23:04:03 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2019-12-13 13:03:12 +00:00
place_on = { " mcl_core:dirt_with_grass " , " mcl_core:dirt " } ,
2019-03-10 23:04:03 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.008 ,
scale = 0.002 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.7
} ,
biomes = { " MesaPlateauFM_grasstop " } ,
y_min = 30 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic.mts " ,
2019-03-10 23:04:03 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2017-09-09 09:42:15 +00:00
2017-09-06 02:32:49 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " , " mcl_core:dirt " , } ,
2017-09-06 02:32:49 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.0 ,
scale = 0.0002 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.7
} ,
2017-09-12 19:31:33 +00:00
biomes = { " IcePlains " } ,
2017-09-06 02:32:49 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic.mts " ,
2017-09-06 02:32:49 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2017-09-12 19:54:42 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-12 19:54:42 +00:00
sidelen = 80 ,
fill_ratio = 0.004 ,
biomes = { " Jungle " , " JungleM " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic.mts " ,
2017-09-12 19:54:42 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-12 19:54:42 +00:00
sidelen = 80 ,
fill_ratio = 0.0004 ,
2017-09-12 19:58:42 +00:00
biomes = { " JungleEdge " , " JungleEdgeM " , " Savanna " } ,
2017-09-12 19:54:42 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic.mts " ,
2017-09-12 19:54:42 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2022-11-16 03:19:50 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
sidelen = 16 ,
--[[noise_params = {
offset = 0.01 ,
scale = 0.00001 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.33
} , ] ] --
fill_ratio = 0.0002 ,
biomes = { " FlowerForest " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic_bee_nest.mts " ,
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
spawn_by = " group:flower " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
sidelen = 16 ,
--[[noise_params = {
offset = 0.01 ,
scale = 0.00001 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.33
} , ] ] --
fill_ratio = 0.00002 ,
biomes = { " Forest " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_classic_bee_nest.mts " ,
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
spawn_by = " group:flower " ,
} )
2017-09-12 19:54:42 +00:00
2017-09-08 17:54:24 +00:00
-- Rare balloon oak
2017-08-31 16:32:52 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-08-31 16:32:52 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.002083 ,
scale = 0.0022 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 3 ,
octaves = 3 ,
persist = 0.6 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " Forest " } ,
2017-08-31 16:32:52 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_balloon.mts " ,
2017-08-31 16:32:52 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2019-12-18 17:42:04 +00:00
2017-09-08 17:54:24 +00:00
-- Swamp oak
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-08 17:54:24 +00:00
sidelen = 80 ,
noise_params = {
offset = 0.0055 ,
scale = 0.0011 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 5005 ,
octaves = 5 ,
persist = 0.6 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " Swampland " , " Swampland_shore " } ,
2017-09-08 17:54:24 +00:00
y_min = 0 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_oak_swamp.mts " ,
2017-09-08 17:54:24 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2017-08-15 17:40:53 +00:00
2022-07-28 16:28:09 +00:00
minetest.register_decoration ( {
2022-07-28 19:11:21 +00:00
name = " mcl_biomes:mangrove_tree_1 " ,
2022-07-28 16:28:09 +00:00
deco_type = " schematic " ,
place_on = { " mcl_mud:mud " } ,
sidelen = 80 ,
2022-07-28 21:05:24 +00:00
fill_ratio = 0.0065 ,
2022-07-28 16:28:09 +00:00
biomes = { " MangroveSwamp " , " MangroveSwamp_shore " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_mangrove .. " /schematics/mcl_mangrove_tree_1.mts " ,
2022-07-28 21:05:24 +00:00
flags = " place_center_x, place_center_z, force_placement " ,
2022-07-28 16:28:09 +00:00
rotation = " random " ,
} )
minetest.register_decoration ( {
2022-07-28 19:11:21 +00:00
name = " mcl_biomes:mangrove_tree_2 " ,
2022-07-28 16:28:09 +00:00
deco_type = " schematic " ,
place_on = { " mcl_mud:mud " } ,
sidelen = 80 ,
2022-07-28 21:05:24 +00:00
fill_ratio = 0.0045 ,
2022-07-28 16:28:09 +00:00
biomes = { " MangroveSwamp " , " MangroveSwamp_shore " } ,
2022-07-28 21:05:24 +00:00
y_min = - 1 ,
2022-07-28 16:28:09 +00:00
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_mangrove .. " /schematics/mcl_mangrove_tree_2.mts " ,
2022-07-28 21:05:24 +00:00
flags = " place_center_x, place_center_z, force_placement " ,
2022-07-28 16:28:09 +00:00
rotation = " random " ,
} )
minetest.register_decoration ( {
2022-07-28 19:11:21 +00:00
name = " mcl_biomes:mangrove_tree_3 " ,
2022-07-28 16:28:09 +00:00
deco_type = " schematic " ,
place_on = { " mcl_mud:mud " } ,
sidelen = 80 ,
2022-07-28 21:05:24 +00:00
fill_ratio = 0.023 ,
2022-07-28 16:28:09 +00:00
biomes = { " MangroveSwamp " , " MangroveSwamp_shore " } ,
2022-07-28 21:05:24 +00:00
y_min = - 1 ,
2022-07-28 16:28:09 +00:00
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_mangrove .. " /schematics/mcl_mangrove_tree_3.mts " ,
2022-07-28 21:05:24 +00:00
flags = " place_center_x, place_center_z, force_placement " ,
2022-07-28 16:28:09 +00:00
rotation = " random " ,
} )
2022-07-29 18:10:21 +00:00
minetest.register_decoration ( {
name = " mcl_biomes:mangrove_tree_4 " ,
deco_type = " schematic " ,
place_on = { " mcl_mud:mud " } ,
sidelen = 80 ,
fill_ratio = 0.023 ,
biomes = { " MangroveSwamp " , " MangroveSwamp_shore " } ,
y_min = - 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_mangrove .. " /schematics/mcl_mangrove_tree_4.mts " ,
flags = " place_center_x, place_center_z, force_placement " ,
rotation = " random " ,
} )
minetest.register_decoration ( {
name = " mcl_biomes:mangrove_tree_4 " ,
deco_type = " schematic " ,
place_on = { " mcl_mud:mud " } ,
sidelen = 80 ,
fill_ratio = 0.023 ,
biomes = { " MangroveSwamp " , " MangroveSwamp_shore " } ,
y_min = - 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_mangrove .. " /schematics/mcl_mangrove_tree_5.mts " ,
flags = " place_center_x, place_center_z, force_placement " ,
rotation = " random " ,
} )
2022-11-16 03:19:50 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " mcl_mud:mud " } ,
sidelen = 80 ,
--[[noise_params = {
offset = 0.01 ,
scale = 0.00001 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.33
} , ] ] --
fill_ratio = 0.0005 ,
biomes = { " MangroveSwamp " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_mangrove .. " /schematics/mcl_mangrove_bee_nest.mts " ,
flags = " place_center_x, place_center_z, force_placement " ,
rotation = " random " ,
spawn_by = " group:flower " ,
} )
2022-07-28 19:11:21 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_mud:mud " } ,
sidelen = 80 ,
fill_ratio = 0.045 ,
biomes = { " MangroveSwamp " , " MangroveSwamp_shore " } ,
y_min = 0 ,
y_max = 0 ,
decoration = " mcl_mangrove:water_logged_roots " ,
flags = " place_center_x, place_center_z, force_placement " ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_mangrove:mangrove_roots " } ,
2022-07-29 10:48:37 +00:00
spawn_by = { " group:water " } ,
2022-07-28 19:11:21 +00:00
num_spawn_by = 2 ,
sidelen = 80 ,
fill_ratio = 10 ,
biomes = { " MangroveSwamp " , " MangroveSwamp_shore " } ,
y_min = 0 ,
y_max = 0 ,
decoration = " mcl_mangrove:water_logged_roots " ,
flags = " place_center_x, place_center_z, force_placement, all_ceilings " ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_mud:mud " } ,
sidelen = 80 ,
fill_ratio = 0.045 ,
biomes = { " MangroveSwamp " , " MangroveSwamp_shore " } ,
place_offset_y = - 1 ,
decoration = " mcl_mangrove:mangrove_mud_roots " ,
flags = " place_center_x, place_center_z, force_placement " ,
} )
2022-07-29 00:48:00 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_mud:mud " } ,
sidelen = 80 ,
fill_ratio = 0.008 ,
biomes = { " MangroveSwamp " , " MangroveSwamp_shore " } ,
decoration = " mcl_core:deadbush " ,
flags = " place_center_x, place_center_z " ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_core:water_source " } ,
sidelen = 80 ,
fill_ratio = 0.035 ,
biomes = { " MangroveSwamp " , " MangroveSwamp_shore " } ,
decoration = " mcl_flowers:waterlily " ,
flags = " place_center_x, place_center_z, liquid_surface " ,
} )
2022-07-28 19:11:21 +00:00
2017-08-31 03:38:25 +00:00
-- Jungle tree
2017-09-12 03:35:02 +00:00
2022-09-12 12:02:46 +00:00
-- Huge jungle tree (4 variants)
for i = 1 , 4 do
2017-09-12 03:35:02 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-12 03:35:02 +00:00
sidelen = 80 ,
2022-09-12 12:02:46 +00:00
fill_ratio = 0.0008 ,
2017-09-12 19:31:33 +00:00
biomes = { " Jungle " } ,
2017-09-12 03:35:02 +00:00
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_tree_huge_ " .. i .. " .mts " ,
2017-09-12 03:35:02 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-12 03:35:02 +00:00
sidelen = 80 ,
2022-09-12 12:02:46 +00:00
fill_ratio = 0.003 ,
2017-09-12 19:31:33 +00:00
biomes = { " JungleM " } ,
2017-09-12 03:35:02 +00:00
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_tree_huge_ " .. i .. " .mts " ,
2017-09-12 03:35:02 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
end
-- Common jungle tree
2017-08-15 17:40:53 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-08-15 17:40:53 +00:00
sidelen = 80 ,
2022-09-12 12:02:46 +00:00
fill_ratio = 0.025 ,
biomes = { " Jungle " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_tree.mts " ,
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
sidelen = 80 ,
fill_ratio = 0.015 ,
biomes = { " Jungle " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_tree_2.mts " ,
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
sidelen = 80 ,
fill_ratio = 0.005 ,
biomes = { " Jungle " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_tree_3.mts " ,
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
sidelen = 80 ,
fill_ratio = 0.005 ,
biomes = { " Jungle " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_tree_4.mts " ,
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
sidelen = 80 ,
fill_ratio = 0.025 ,
2017-09-12 19:31:33 +00:00
biomes = { " Jungle " } ,
2017-08-31 16:04:40 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_tree.mts " ,
2017-08-31 16:04:40 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2017-09-08 23:13:21 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-08 23:13:21 +00:00
sidelen = 80 ,
fill_ratio = 0.0045 ,
2017-09-12 19:31:33 +00:00
biomes = { " JungleEdge " , " JungleEdgeM " } ,
2017-09-08 23:13:21 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_tree.mts " ,
2017-09-08 23:13:21 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2017-09-12 03:20:03 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-12 03:20:03 +00:00
sidelen = 80 ,
fill_ratio = 0.09 ,
2017-09-12 19:31:33 +00:00
biomes = { " JungleM " } ,
2017-09-12 03:20:03 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2022-09-12 12:02:46 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_tree_2.mts " ,
2017-09-12 03:20:03 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
2017-08-31 03:38:25 +00:00
-- Spruce
2017-09-09 09:42:15 +00:00
local function quick_spruce ( seed , offset , sprucename , biomes , y )
if not y then
2017-11-15 05:23:46 +00:00
y = 1
2017-09-09 09:42:15 +00:00
end
2017-09-06 00:29:37 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " , " mcl_core:dirt " , " mcl_core:podzol " } ,
2017-09-06 00:29:37 +00:00
sidelen = 16 ,
noise_params = {
offset = offset ,
scale = 0.0006 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = seed ,
octaves = 3 ,
persist = 0.66
} ,
biomes = biomes ,
2017-09-09 09:42:15 +00:00
y_min = y ,
2017-09-06 00:29:37 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/ " .. sprucename ,
2017-09-06 00:29:37 +00:00
flags = " place_center_x, place_center_z " ,
} )
end
2017-09-05 02:17:35 +00:00
2017-09-06 00:29:37 +00:00
-- Huge spruce
2018-05-13 16:39:47 +00:00
quick_spruce ( 3000 , 0.0030 , " mcl_core_spruce_huge_1.mts " , { " MegaSpruceTaiga " } )
quick_spruce ( 4000 , 0.0036 , " mcl_core_spruce_huge_2.mts " , { " MegaSpruceTaiga " } )
quick_spruce ( 6000 , 0.0036 , " mcl_core_spruce_huge_3.mts " , { " MegaSpruceTaiga " } )
quick_spruce ( 6600 , 0.0036 , " mcl_core_spruce_huge_4.mts " , { " MegaSpruceTaiga " } )
2017-09-09 03:04:39 +00:00
2017-09-12 19:31:33 +00:00
quick_spruce ( 3000 , 0.0008 , " mcl_core_spruce_huge_up_1.mts " , { " MegaTaiga " } )
quick_spruce ( 4000 , 0.0008 , " mcl_core_spruce_huge_up_2.mts " , { " MegaTaiga " } )
quick_spruce ( 6000 , 0.0008 , " mcl_core_spruce_huge_up_3.mts " , { " MegaTaiga " } )
2017-09-06 00:29:37 +00:00
2017-09-09 09:42:15 +00:00
2017-09-06 00:29:37 +00:00
-- Common spruce
2017-09-12 19:31:33 +00:00
quick_spruce ( 11000 , 0.00150 , " mcl_core_spruce_5.mts " , { " Taiga " , " ColdTaiga " } )
2017-09-09 03:04:39 +00:00
2017-09-12 19:31:33 +00:00
quick_spruce ( 2500 , 0.00325 , " mcl_core_spruce_1.mts " , { " MegaSpruceTaiga " , " MegaTaiga " , " Taiga " , " ColdTaiga " } )
quick_spruce ( 7000 , 0.00425 , " mcl_core_spruce_3.mts " , { " MegaSpruceTaiga " , " MegaTaiga " , " Taiga " , " ColdTaiga " } )
quick_spruce ( 9000 , 0.00325 , " mcl_core_spruce_4.mts " , { " MegaTaiga " , " Taiga " , " ColdTaiga " } )
2017-09-09 03:04:39 +00:00
2017-09-12 19:31:33 +00:00
quick_spruce ( 9500 , 0.00500 , " mcl_core_spruce_tall.mts " , { " MegaTaiga " } )
2017-09-09 03:04:39 +00:00
2017-09-12 19:31:33 +00:00
quick_spruce ( 5000 , 0.00250 , " mcl_core_spruce_2.mts " , { " MegaSpruceTaiga " , " MegaTaiga " } )
2017-09-05 02:17:35 +00:00
2017-09-12 19:31:33 +00:00
quick_spruce ( 11000 , 0.000025 , " mcl_core_spruce_5.mts " , { " ExtremeHills " , " ExtremeHillsM " } )
quick_spruce ( 2500 , 0.00005 , " mcl_core_spruce_1.mts " , { " ExtremeHills " , " ExtremeHillsM " } )
quick_spruce ( 7000 , 0.00005 , " mcl_core_spruce_3.mts " , { " ExtremeHills " , " ExtremeHillsM " } )
quick_spruce ( 9000 , 0.00005 , " mcl_core_spruce_4.mts " , { " ExtremeHills " , " ExtremeHillsM " } )
2017-09-09 09:42:15 +00:00
2017-09-12 19:31:33 +00:00
quick_spruce ( 11000 , 0.001 , " mcl_core_spruce_5.mts " , { " ExtremeHills+ " , " ExtremeHills+_snowtop " } , 50 )
quick_spruce ( 2500 , 0.002 , " mcl_core_spruce_1.mts " , { " ExtremeHills+ " , " ExtremeHills+_snowtop " } , 50 )
quick_spruce ( 7000 , 0.003 , " mcl_core_spruce_3.mts " , { " ExtremeHills+ " , " ExtremeHills+_snowtop " } , 50 )
quick_spruce ( 9000 , 0.002 , " mcl_core_spruce_4.mts " , { " ExtremeHills+ " , " ExtremeHills+_snowtop " } , 50 )
2017-09-09 09:42:15 +00:00
2017-09-05 02:17:35 +00:00
-- Small lollipop spruce
2017-08-31 18:11:23 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " , " mcl_core:podzol " } ,
2017-08-31 18:11:23 +00:00
sidelen = 16 ,
noise_params = {
2017-08-31 19:05:04 +00:00
offset = 0.004 ,
2017-08-31 18:11:23 +00:00
scale = 0.0022 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2500 ,
octaves = 3 ,
persist = 0.66
} ,
2017-09-12 19:31:33 +00:00
biomes = { " Taiga " , " ColdTaiga " } ,
2017-08-31 18:11:23 +00:00
y_min = 2 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_spruce_lollipop.mts " ,
2017-08-31 18:11:23 +00:00
flags = " place_center_x, place_center_z " ,
} )
2017-08-15 17:40:53 +00:00
2017-09-05 02:17:35 +00:00
-- Matchstick spruce: Very few leaves, tall trunk
2017-08-31 19:05:04 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " , " mcl_core:podzol " } ,
2017-08-31 19:05:04 +00:00
sidelen = 80 ,
noise_params = {
2017-09-06 00:36:26 +00:00
offset = - 0.025 ,
2017-08-31 19:05:04 +00:00
scale = 0.025 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2566 ,
octaves = 5 ,
persist = 0.60 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " Taiga " , " ColdTaiga " } ,
2017-08-31 19:05:04 +00:00
y_min = 3 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_spruce_matchstick.mts " ,
2017-08-31 19:05:04 +00:00
flags = " place_center_x, place_center_z " ,
} )
2017-09-12 19:31:33 +00:00
-- Rare spruce in Ice Plains
2017-09-10 14:53:33 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " } ,
2017-09-10 14:53:33 +00:00
sidelen = 16 ,
noise_params = {
offset = - 0.00075 ,
scale = - 0.0015 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 11 ,
octaves = 3 ,
persist = 0.7
} ,
2017-09-12 19:31:33 +00:00
biomes = { " IcePlains " } ,
2017-09-10 14:53:33 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_spruce_5.mts " ,
2017-09-10 14:53:33 +00:00
flags = " place_center_x, place_center_z " ,
} )
2017-09-09 06:15:49 +00:00
-- Acacia (many variants)
for a = 1 , 7 do
minetest.register_decoration ( {
deco_type = " schematic " ,
2019-12-13 13:03:12 +00:00
place_on = { " mcl_core:dirt_with_grass " , " mcl_core:dirt " , " mcl_core:coarse_dirt " } ,
2017-09-09 06:15:49 +00:00
sidelen = 16 ,
fill_ratio = 0.0002 ,
2017-09-12 19:31:33 +00:00
biomes = { " Savanna " , " SavannaM " } ,
2017-09-09 06:15:49 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_acacia_ " .. a .. " .mts " ,
2017-09-09 06:15:49 +00:00
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
} )
end
2017-08-15 17:40:53 +00:00
2017-08-31 03:38:25 +00:00
-- Birch
2017-09-06 04:04:32 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " } ,
2017-09-06 04:04:32 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.03 ,
scale = 0.0025 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 11 ,
octaves = 3 ,
persist = 0.66
} ,
2017-09-12 19:31:33 +00:00
biomes = { " BirchForest " } ,
2017-09-06 04:04:32 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_birch.mts " ,
2017-09-06 04:04:32 +00:00
flags = " place_center_x, place_center_z " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " } ,
2017-09-06 04:04:32 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.03 ,
scale = 0.0025 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 11 ,
octaves = 3 ,
persist = 0.66
} ,
2017-09-12 19:31:33 +00:00
biomes = { " BirchForestM " } ,
2017-09-06 04:04:32 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_birch_tall.mts " ,
2017-09-06 04:04:32 +00:00
flags = " place_center_x, place_center_z " ,
} )
2017-08-15 17:40:53 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-08-15 17:40:53 +00:00
sidelen = 16 ,
noise_params = {
2017-09-08 22:19:24 +00:00
offset = 0.000333 ,
2017-08-15 17:40:53 +00:00
scale = - 0.0015 ,
spread = { x = 250 , y = 250 , z = 250 } ,
2017-09-06 02:32:49 +00:00
seed = 11 ,
2017-08-15 17:40:53 +00:00
octaves = 3 ,
persist = 0.66
} ,
2017-09-12 19:31:33 +00:00
biomes = { " Forest " , " FlowerForest " } ,
2017-08-15 17:40:53 +00:00
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_birch.mts " ,
2017-08-15 17:40:53 +00:00
flags = " place_center_x, place_center_z " ,
} )
2022-11-16 03:19:50 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
sidelen = 16 ,
--[[noise_params = {
offset = 0.01 ,
scale = 0.00001 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.33
} , ] ] --
fill_ratio = 0.00002 ,
biomes = { " Forest " , " BirchForest " , " BirchForestM " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_core .. " /schematics/mcl_core_birch_bee_nest.mts " ,
flags = " place_center_x, place_center_z " ,
rotation = " random " ,
spawn_by = " group:flower " ,
} )
2017-08-15 17:40:53 +00:00
2017-08-21 02:50:45 +00:00
-- Dark Oak
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " } ,
2017-08-21 02:50:45 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.05 ,
scale = 0.0015 ,
spread = { x = 125 , y = 125 , z = 125 } ,
seed = 223 ,
octaves = 3 ,
persist = 0.66
} ,
2017-09-12 19:31:33 +00:00
biomes = { " RoofedForest " } ,
2017-08-21 12:04:34 +00:00
y_min = 4 ,
2017-08-21 02:50:45 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_dark_oak.mts " ,
2017-08-21 02:50:45 +00:00
flags = " place_center_x, place_center_z " ,
2017-09-05 04:41:48 +00:00
rotation = " random " ,
2017-08-21 02:50:45 +00:00
} )
2017-08-15 17:40:53 +00:00
2017-09-08 20:46:30 +00:00
local ratio_mushroom = 0.0001
local ratio_mushroom_huge = ratio_mushroom * ( 11 / 12 )
local ratio_mushroom_giant = ratio_mushroom * ( 1 / 12 )
local ratio_mushroom_mycelium = 0.002
local ratio_mushroom_mycelium_huge = ratio_mushroom_mycelium * ( 11 / 12 )
local ratio_mushroom_mycelium_giant = ratio_mushroom_mycelium * ( 1 / 12 )
2017-08-31 16:17:20 +00:00
-- Huge Brown Mushroom
2017-08-21 03:11:45 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-08-21 03:11:45 +00:00
sidelen = 80 ,
2017-09-08 20:46:30 +00:00
fill_ratio = ratio_mushroom_huge ,
2017-09-12 19:31:33 +00:00
biomes = { " RoofedForest " } ,
2017-09-08 20:46:30 +00:00
y_min = 1 ,
2017-08-21 03:11:45 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_mushrooms .. " /schematics/mcl_mushrooms_huge_brown.mts " ,
2017-08-31 16:17:20 +00:00
flags = " place_center_x, place_center_z " ,
2017-12-12 22:59:02 +00:00
rotation = " 0 " ,
2017-08-21 03:11:45 +00:00
} )
2017-09-08 20:46:30 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-08 20:46:30 +00:00
sidelen = 80 ,
fill_ratio = ratio_mushroom_giant ,
2017-09-12 19:31:33 +00:00
biomes = { " RoofedForest " } ,
2017-09-08 20:46:30 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_mushrooms .. " /schematics/mcl_mushrooms_giant_brown.mts " ,
2017-09-08 20:46:30 +00:00
flags = " place_center_x, place_center_z " ,
2017-12-12 22:59:02 +00:00
rotation = " 0 " ,
2017-09-08 20:46:30 +00:00
} )
2017-08-21 03:11:45 +00:00
2017-08-15 17:40:53 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-08-31 16:17:20 +00:00
place_on = { " mcl_core:mycelium " } ,
2017-08-15 17:40:53 +00:00
sidelen = 80 ,
2017-09-08 20:46:30 +00:00
fill_ratio = ratio_mushroom_mycelium_huge ,
2017-09-12 19:31:33 +00:00
biomes = { " MushroomIsland " , " MushroomIslandShore " } ,
2017-09-08 20:46:30 +00:00
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_mushrooms .. " /schematics/mcl_mushrooms_huge_brown.mts " ,
2017-08-31 16:17:20 +00:00
flags = " place_center_x, place_center_z " ,
2017-12-12 22:59:02 +00:00
rotation = " 0 " ,
2017-08-15 17:40:53 +00:00
} )
2017-09-08 20:46:30 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " mcl_core:mycelium " } ,
sidelen = 80 ,
fill_ratio = ratio_mushroom_mycelium_giant ,
2017-09-12 19:31:33 +00:00
biomes = { " MushroomIsland " , " MushroomIslandShore " } ,
2017-09-08 20:46:30 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_mushrooms .. " /schematics/mcl_mushrooms_giant_brown.mts " ,
2017-09-08 20:46:30 +00:00
flags = " place_center_x, place_center_z " ,
2017-12-12 22:59:02 +00:00
rotation = " 0 " ,
2017-09-08 20:46:30 +00:00
} )
2017-08-15 17:40:53 +00:00
2017-08-31 16:17:20 +00:00
-- Huge Red Mushroom
2017-08-15 17:40:53 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-08 20:46:30 +00:00
sidelen = 80 ,
fill_ratio = ratio_mushroom_huge ,
2017-09-12 19:31:33 +00:00
biomes = { " RoofedForest " } ,
2017-09-08 20:46:30 +00:00
y_min = 1 ,
2017-08-21 03:11:45 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_mushrooms .. " /schematics/mcl_mushrooms_huge_red.mts " ,
2017-08-31 16:17:20 +00:00
flags = " place_center_x, place_center_z " ,
2017-12-12 22:59:02 +00:00
rotation = " 0 " ,
2017-08-21 03:11:45 +00:00
} )
2017-09-08 20:46:30 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-08 20:46:30 +00:00
sidelen = 80 ,
fill_ratio = ratio_mushroom_giant ,
2017-09-12 19:31:33 +00:00
biomes = { " RoofedForest " } ,
2017-09-08 20:46:30 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_mushrooms .. " /schematics/mcl_mushrooms_giant_red.mts " ,
2017-09-08 20:46:30 +00:00
flags = " place_center_x, place_center_z " ,
2017-12-12 22:59:02 +00:00
rotation = " 0 " ,
2017-09-08 20:46:30 +00:00
} )
2017-08-21 03:11:45 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-08-31 16:17:20 +00:00
place_on = { " mcl_core:mycelium " } ,
2017-09-08 20:46:30 +00:00
sidelen = 80 ,
fill_ratio = ratio_mushroom_mycelium_huge ,
2017-09-12 19:31:33 +00:00
biomes = { " MushroomIsland " , " MushroomIslandShore " } ,
2017-09-08 20:46:30 +00:00
y_min = 1 ,
2017-08-21 02:23:24 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_mushrooms .. " /schematics/mcl_mushrooms_huge_red.mts " ,
2017-08-31 16:17:20 +00:00
flags = " place_center_x, place_center_z " ,
2017-12-12 22:59:02 +00:00
rotation = " 0 " ,
2017-08-15 17:40:53 +00:00
} )
2017-09-08 20:46:30 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " mcl_core:mycelium " } ,
sidelen = 80 ,
fill_ratio = ratio_mushroom_mycelium_giant ,
2017-09-12 19:31:33 +00:00
biomes = { " MushroomIsland " , " MushroomIslandShore " } ,
2017-09-08 20:46:30 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_mushrooms .. " /schematics/mcl_mushrooms_giant_red.mts " ,
2017-09-08 20:46:30 +00:00
flags = " place_center_x, place_center_z " ,
2017-12-12 22:59:02 +00:00
rotation = " 0 " ,
2017-09-08 20:46:30 +00:00
} )
2017-08-15 17:40:53 +00:00
2022-09-10 02:39:49 +00:00
--Snow on snowy dirt
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_core:dirt_with_grass_snow " } ,
sidelen = 80 ,
fill_ratio = 10 ,
flags = " all_floors " ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_core:snow " ,
} )
2022-06-22 13:56:51 +00:00
--Mushrooms in caves
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " group:material_stone " } ,
sidelen = 80 ,
fill_ratio = 0.009 ,
noise_threshold = 2.0 ,
flags = " all_floors " ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_mushrooms:mushroom_red " ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " group:material_stone " } ,
sidelen = 80 ,
fill_ratio = 0.009 ,
noise_threshold = 2.0 ,
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_mushrooms:mushroom_brown " ,
} )
2019-12-11 03:23:26 +00:00
-- Mossy cobblestone boulder (3× 3)
2017-09-03 05:06:14 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " mcl_core:podzol " , " mcl_core:dirt " , " mcl_core:coarse_dirt " } ,
sidelen = 80 ,
noise_params = {
offset = 0.00015 ,
scale = 0.001 ,
spread = { x = 300 , y = 300 , z = 300 } ,
seed = 775703 ,
octaves = 4 ,
persist = 0.63 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " MegaTaiga " , " MegaSpruceTaiga " } ,
2017-09-03 12:34:03 +00:00
y_min = 1 ,
2017-09-03 05:06:14 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_structures .. " /schematics/mcl_structures_boulder.mts " ,
2017-09-04 04:32:30 +00:00
flags = " place_center_x, place_center_z " ,
2022-06-24 15:54:34 +00:00
rotation = " random " ,
2017-09-03 05:06:14 +00:00
} )
2019-12-11 03:23:26 +00:00
-- Small mossy cobblestone boulder (2× 2)
2017-09-03 05:06:14 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " mcl_core:podzol " , " mcl_core:dirt " , " mcl_core:coarse_dirt " } ,
sidelen = 80 ,
noise_params = {
offset = 0.001 ,
scale = 0.001 ,
spread = { x = 300 , y = 300 , z = 300 } ,
seed = 775703 ,
octaves = 4 ,
persist = 0.63 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " MegaTaiga " , " MegaSpruceTaiga " } ,
2017-09-03 12:34:03 +00:00
y_min = 1 ,
2017-09-03 05:06:14 +00:00
y_max = mcl_vars.mg_overworld_max ,
2021-05-29 14:12:33 +00:00
schematic = mod_mcl_structures .. " /schematics/mcl_structures_boulder_small.mts " ,
2017-09-04 04:32:30 +00:00
flags = " place_center_x, place_center_z " ,
2022-06-24 15:54:34 +00:00
rotation = " random " ,
2017-09-03 05:06:14 +00:00
} )
2017-08-21 02:14:28 +00:00
-- Cacti
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " group:sand " } ,
sidelen = 16 ,
noise_params = {
offset = - 0.012 ,
scale = 0.024 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = 257 ,
octaves = 3 ,
persist = 0.6
} ,
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_core:cactus " ,
2019-03-10 23:04:03 +00:00
biomes = { " Desert " ,
" Mesa " , " Mesa_sandlevel " ,
" MesaPlateauF " , " MesaPlateauF_sandlevel " ,
" MesaPlateauFM " , " MesaPlateauFM_sandlevel " } ,
2017-08-21 02:14:28 +00:00
height = 1 ,
height_max = 3 ,
} )
-- Sugar canes
minetest.register_decoration ( {
2017-08-22 13:57:19 +00:00
deco_type = " simple " ,
2017-11-15 19:27:29 +00:00
place_on = { " mcl_core:dirt " , " mcl_core:coarse_dirt " , " group:grass_block_no_snow " , " group:sand " , " mcl_core:podzol " , " mcl_core:reeds " } ,
2017-08-21 02:14:28 +00:00
sidelen = 16 ,
noise_params = {
offset = - 0.3 ,
scale = 0.7 ,
2017-09-19 11:51:09 +00:00
spread = { x = 200 , y = 200 , z = 200 } ,
2017-08-21 02:14:28 +00:00
seed = 2 ,
octaves = 3 ,
persist = 0.7
} ,
2017-09-08 17:54:24 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_core:reeds " ,
height = 1 ,
height_max = 3 ,
spawn_by = { " mcl_core:water_source " , " group:frosted_ice " } ,
num_spawn_by = 1 ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
2017-11-15 19:27:29 +00:00
place_on = { " mcl_core:dirt " , " mcl_core:coarse_dirt " , " group:grass_block_no_snow " , " group:sand " , " mcl_core:podzol " , " mcl_core:reeds " } ,
2017-09-08 17:54:24 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.0 ,
scale = 0.5 ,
2017-09-19 11:51:09 +00:00
spread = { x = 200 , y = 200 , z = 200 } ,
2017-09-08 17:54:24 +00:00
seed = 2 ,
octaves = 3 ,
persist = 0.7 ,
} ,
2017-09-19 11:50:07 +00:00
biomes = { " Swampland " , " Swampland_shore " } ,
2017-08-21 02:14:28 +00:00
y_min = 1 ,
2017-08-22 13:57:19 +00:00
y_max = mcl_vars.mg_overworld_max ,
2017-08-21 02:14:28 +00:00
decoration = " mcl_core:reeds " ,
height = 1 ,
height_max = 3 ,
spawn_by = { " mcl_core:water_source " , " group:frosted_ice " } ,
num_spawn_by = 1 ,
} )
2017-11-16 02:13:19 +00:00
-- Doubletall grass
2021-05-25 10:52:25 +00:00
local function register_doubletall_grass ( offset , scale , biomes )
2017-08-21 02:14:28 +00:00
2019-12-13 22:48:13 +00:00
for b = 1 , # biomes do
local param2 = minetest.registered_biomes [ biomes [ b ] ] . _mcl_palette_index
minetest.register_decoration ( {
deco_type = " schematic " ,
schematic = {
size = { x = 1 , y = 3 , z = 1 } ,
data = {
{ name = " air " , prob = 0 } ,
{ name = " mcl_flowers:double_grass " , param1 = 255 , param2 = param2 } ,
{ name = " mcl_flowers:double_grass_top " , param1 = 255 , param2 = param2 } ,
} ,
2017-09-13 17:03:15 +00:00
} ,
2019-12-13 22:48:13 +00:00
place_on = { " group:grass_block_no_snow " } ,
sidelen = 16 ,
noise_params = {
offset = offset ,
scale = scale ,
spread = { x = 200 , y = 200 , z = 200 } ,
seed = 420 ,
octaves = 3 ,
persist = 0.6 ,
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
biomes = { biomes [ b ] } ,
} )
end
2017-09-13 17:03:15 +00:00
end
2017-08-21 02:14:28 +00:00
2017-11-14 22:44:53 +00:00
register_doubletall_grass ( - 0.01 , 0.03 , { " Taiga " , " Forest " , " FlowerForest " , " BirchForest " , " BirchForestM " , " RoofedForest " } )
2017-09-13 17:03:15 +00:00
register_doubletall_grass ( - 0.002 , 0.03 , { " Plains " , " SunflowerPlains " } )
2019-12-13 22:48:13 +00:00
register_doubletall_grass ( - 0.0005 , - 0.03 , { " Savanna " , " SavannaM " } )
2017-09-12 03:20:03 +00:00
2017-09-13 17:03:15 +00:00
-- Large ferns
2021-05-25 10:52:25 +00:00
local function register_double_fern ( offset , scale , biomes )
2019-12-13 22:48:13 +00:00
for b = 1 , # biomes do
local param2 = minetest.registered_biomes [ biomes [ b ] ] . _mcl_palette_index
minetest.register_decoration ( {
deco_type = " schematic " ,
schematic = {
size = { x = 1 , y = 3 , z = 1 } ,
data = {
{ name = " air " , prob = 0 } ,
{ name = " mcl_flowers:double_fern " , param1 = 255 , param2 = param2 } ,
{ name = " mcl_flowers:double_fern_top " , param1 = 255 , param2 = param2 } ,
} ,
2017-09-13 17:03:15 +00:00
} ,
2019-12-13 22:48:13 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:podzol " } ,
sidelen = 16 ,
noise_params = {
offset = offset ,
scale = scale ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 333 ,
octaves = 2 ,
persist = 0.66 ,
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
biomes = biomes [ b ] ,
} )
end
2017-09-13 17:03:15 +00:00
end
2017-09-12 03:20:03 +00:00
2017-09-13 17:03:15 +00:00
register_double_fern ( 0.01 , 0.03 , { " Jungle " , " JungleM " , " JungleEdge " , " JungleEdgeM " , " Taiga " , " ColdTaiga " , " MegaTaiga " , " MegaSpruceTaiga " } )
register_double_fern ( 0.15 , 0.1 , { " JungleM " } )
2017-08-21 02:14:28 +00:00
2017-08-21 00:25:22 +00:00
-- Large flowers
2021-05-25 10:52:25 +00:00
local function register_large_flower ( name , biomes , seed , offset , flower_forest_offset )
2017-09-08 22:19:24 +00:00
local maxi
if flower_forest_offset then
maxi = 2
else
maxi = 1
end
for i = 1 , maxi do
local o , b -- offset, biomes
if i == 1 then
o = offset
b = biomes
else
o = flower_forest_offset
2017-09-12 19:31:33 +00:00
b = { " FlowerForest " }
2017-09-08 22:19:24 +00:00
end
minetest.register_decoration ( {
deco_type = " schematic " ,
schematic = {
size = { x = 1 , y = 3 , z = 1 } ,
data = {
{ name = " air " , prob = 0 } ,
{ name = " mcl_flowers: " .. name , param1 = 255 , } ,
{ name = " mcl_flowers: " .. name .. " _top " , param1 = 255 , } ,
} ,
2017-08-21 00:25:22 +00:00
} ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-08 22:19:24 +00:00
sidelen = 16 ,
noise_params = {
offset = o ,
scale = 0.01 ,
spread = { x = 300 , y = 300 , z = 300 } ,
seed = seed ,
octaves = 5 ,
persist = 0.62 ,
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
flags = " " ,
biomes = b ,
} )
end
2017-08-21 00:25:22 +00:00
end
2017-09-12 19:31:33 +00:00
register_large_flower ( " rose_bush " , { " Forest " } , 9350 , - 0.008 , 0.003 )
register_large_flower ( " peony " , { " Forest " } , 10450 , - 0.008 , 0.003 )
register_large_flower ( " lilac " , { " Forest " } , 10600 , - 0.007 , 0.003 )
2017-09-12 19:38:38 +00:00
register_large_flower ( " sunflower " , { " SunflowerPlains " } , 2940 , 0.01 )
2017-08-21 00:25:22 +00:00
2017-08-31 03:43:46 +00:00
-- Jungle bush
2017-09-13 01:15:16 +00:00
2017-08-31 03:43:46 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-08-31 03:43:46 +00:00
sidelen = 80 ,
noise_params = {
2017-08-31 16:04:40 +00:00
offset = 0.0196 ,
2022-09-12 12:02:46 +00:00
scale = 0.015 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2930 ,
octaves = 4 ,
persist = 0.6 ,
} ,
biomes = { " Jungle " } ,
y_min = 3 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_bush_oak_leaves.mts " ,
flags = " place_center_x, place_center_z " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
sidelen = 80 ,
noise_params = {
offset = 0.0196 ,
scale = 0.005 ,
2017-08-31 03:43:46 +00:00
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2930 ,
octaves = 4 ,
persist = 0.6 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " Jungle " } ,
2017-08-31 03:43:46 +00:00
y_min = 3 ,
y_max = mcl_vars.mg_overworld_max ,
2022-09-12 12:02:46 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_bush_oak_leaves_2.mts " ,
2017-08-31 03:43:46 +00:00
flags = " place_center_x, place_center_z " ,
} )
2017-09-12 03:20:03 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-12 03:20:03 +00:00
sidelen = 80 ,
noise_params = {
offset = 0.05 ,
scale = 0.025 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2930 ,
octaves = 4 ,
persist = 0.6 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " JungleM " } ,
2017-09-12 03:20:03 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2022-09-12 12:02:46 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_bush_oak_leaves.mts " ,
2017-09-12 03:20:03 +00:00
flags = " place_center_x, place_center_z " ,
} )
2017-09-08 23:13:21 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-08 23:13:21 +00:00
sidelen = 80 ,
noise_params = {
offset = 0.0085 ,
scale = 0.025 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2930 ,
octaves = 4 ,
persist = 0.6 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " JungleEdge " , " JungleEdgeM " } ,
2017-09-08 23:13:21 +00:00
y_min = 3 ,
y_max = mcl_vars.mg_overworld_max ,
2022-09-12 12:02:46 +00:00
schematic = mod_mcl_core .. " /schematics/mcl_core_jungle_bush_oak_leaves.mts " ,
2017-09-08 23:13:21 +00:00
flags = " place_center_x, place_center_z " ,
} )
2017-08-31 03:43:46 +00:00
2017-08-31 03:38:25 +00:00
-- Fallen logs
2017-09-13 01:15:16 +00:00
-- These fallen logs are not really good yet. They must be longer and also have one upright block.
-- Note the decortion API does not like wide schematics, they are likely to overhang.
if generate_fallen_logs then
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:podzol " , " mcl_core:coarse_dirt " } ,
2017-09-13 01:15:16 +00:00
sidelen = 80 ,
noise_params = {
offset = 0.00018 ,
scale = 0.00011 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.66
2017-08-31 03:38:25 +00:00
} ,
2017-09-13 01:15:16 +00:00
biomes = { " MegaTaiga " , " MegaSpruceTaiga " , " Taiga " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = {
size = { x = 3 , y = 3 , z = 1 } ,
data = {
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " mcl_core:sprucetree " , param2 = 12 , prob = 127 } ,
{ name = " mcl_core:sprucetree " , param2 = 12 } ,
{ name = " mcl_core:sprucetree " , param2 = 12 } ,
{ name = " air " , prob = 0 } ,
{ name = " mcl_mushrooms:mushroom_brown " , prob = 160 } ,
{ name = " mcl_mushrooms:mushroom_red " , prob = 160 } ,
} ,
} ,
flags = " place_center_x " ,
rotation = " random " ,
} )
2017-08-31 03:38:25 +00:00
2017-09-13 01:15:16 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " , " mcl_core:podzol " , " mcl_core:podzol_snow " , " mcl_core:coarse_dirt " } ,
2017-09-13 01:15:16 +00:00
sidelen = 80 ,
noise_params = {
offset = 0.00018 ,
scale = 0.00011 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.66
2017-09-06 01:03:02 +00:00
} ,
2017-09-13 01:15:16 +00:00
biomes = { " ColdTaiga " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = {
size = { x = 3 , y = 3 , z = 1 } ,
data = {
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " mcl_core:sprucetree " , param2 = 12 , prob = 127 } ,
{ name = " mcl_core:sprucetree " , param2 = 12 } ,
{ name = " mcl_core:sprucetree " , param2 = 12 } ,
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
} ,
} ,
flags = " place_center_x " ,
rotation = " random " ,
} )
2017-09-06 01:03:02 +00:00
2017-09-13 01:15:16 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " } ,
2017-09-13 01:15:16 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.0 ,
scale = - 0.00008 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.66
2017-08-31 03:38:25 +00:00
} ,
2017-09-13 01:15:16 +00:00
biomes = { " BirchForest " , " BirchForestM " , } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = {
size = { x = 3 , y = 3 , z = 1 } ,
data = {
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " mcl_core:birchtree " , param2 = 12 } ,
{ name = " mcl_core:birchtree " , param2 = 12 } ,
{ name = " mcl_core:birchtree " , param2 = 12 , prob = 127 } ,
{ name = " mcl_mushrooms:mushroom_red " , prob = 100 } ,
{ name = " mcl_mushrooms:mushroom_brown " , prob = 10 } ,
{ name = " air " , prob = 0 } ,
} ,
} ,
flags = " place_center_x " ,
rotation = " random " ,
} )
2017-08-31 03:38:25 +00:00
2017-09-13 01:15:16 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-13 01:15:16 +00:00
sidelen = 80 ,
fill_ratio = 0.005 ,
biomes = { " Jungle " , " JungleM " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = {
size = { x = 3 , y = 3 , z = 1 } ,
data = {
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " mcl_core:jungletree " , param2 = 12 } ,
{ name = " mcl_core:jungletree " , param2 = 12 } ,
{ name = " mcl_core:jungletree " , param2 = 12 , prob = 127 } ,
{ name = " air " , prob = 0 } ,
{ name = " mcl_mushrooms:mushroom_brown " , prob = 50 } ,
{ name = " air " , prob = 0 } ,
} ,
2017-08-31 03:38:25 +00:00
} ,
2017-09-13 01:15:16 +00:00
flags = " place_center_x " ,
rotation = " random " ,
} )
2017-08-31 03:38:25 +00:00
2017-09-13 01:15:16 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " } ,
2017-09-13 01:15:16 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.00018 ,
scale = 0.00011 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 2 ,
octaves = 3 ,
persist = 0.66
2017-08-31 03:38:25 +00:00
} ,
2017-09-13 01:15:16 +00:00
biomes = { " Forest " } ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = {
size = { x = 3 , y = 3 , z = 1 } ,
data = {
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " air " , prob = 0 } ,
{ name = " mcl_core:tree " , param2 = 12 , prob = 127 } ,
{ name = " mcl_core:tree " , param2 = 12 } ,
{ name = " mcl_core:tree " , param2 = 12 } ,
{ name = " air " , prob = 0 } ,
{ name = " mcl_mushrooms:mushroom_brown " , prob = 96 } ,
{ name = " mcl_mushrooms:mushroom_red " , prob = 96 } ,
} ,
} ,
flags = " place_center_x " ,
rotation = " random " ,
} )
end
2017-08-31 03:38:25 +00:00
2017-08-22 15:40:54 +00:00
-- Lily pad
2017-09-08 20:04:05 +00:00
local lily_schem = {
{ name = " mcl_core:water_source " } ,
{ name = " mcl_flowers:waterlily " } ,
}
2017-09-12 19:31:33 +00:00
-- Spawn them in shallow water at ocean level in Swampland.
2017-09-08 20:04:05 +00:00
-- Tweak lilydepth to change the maximum water depth
local lilydepth = 2
for d = 1 , lilydepth do
local height = d + 2
local y = 1 - d
table.insert ( lily_schem , 1 , { name = " air " , prob = 0 } )
minetest.register_decoration ( {
deco_type = " schematic " ,
schematic = {
size = { x = 1 , y = height , z = 1 } ,
data = lily_schem ,
2017-08-22 15:40:54 +00:00
} ,
2017-09-08 20:04:05 +00:00
place_on = " mcl_core:dirt " ,
sidelen = 16 ,
noise_params = {
offset = 0 ,
scale = 0.3 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = 503 ,
octaves = 6 ,
persist = 0.7 ,
} ,
y_min = y ,
y_max = y ,
2017-09-12 19:31:33 +00:00
biomes = { " Swampland_shore " } ,
2017-09-08 20:04:05 +00:00
rotation = " random " ,
} )
end
2017-08-22 15:40:54 +00:00
2017-08-21 00:25:22 +00:00
-- Melon
minetest.register_decoration ( {
deco_type = " simple " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " } ,
2017-08-21 00:25:22 +00:00
sidelen = 16 ,
noise_params = {
2017-09-08 23:34:37 +00:00
offset = - 0.01 ,
scale = 0.006 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 333 ,
octaves = 3 ,
persist = 0.6
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_farming:melon " ,
2017-09-12 19:31:33 +00:00
biomes = { " Jungle " } ,
2017-09-08 23:34:37 +00:00
} )
2017-09-12 03:20:03 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " } ,
2017-09-12 03:20:03 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.0 ,
scale = 0.006 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 333 ,
octaves = 3 ,
persist = 0.6
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_farming:melon " ,
2017-09-12 19:31:33 +00:00
biomes = { " JungleM " } ,
2017-09-12 03:20:03 +00:00
} )
2017-09-08 23:34:37 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " } ,
2017-09-08 23:34:37 +00:00
sidelen = 16 ,
noise_params = {
offset = - 0.005 ,
2017-08-21 00:25:22 +00:00
scale = 0.006 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 333 ,
octaves = 3 ,
persist = 0.6
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_farming:melon " ,
2017-09-12 19:31:33 +00:00
biomes = { " JungleEdge " , " JungleEdgeM " } ,
2017-08-21 00:25:22 +00:00
} )
2017-09-10 02:45:43 +00:00
2017-09-12 18:40:20 +00:00
-- Lots of melons in Jungle Edge M
2017-09-10 01:59:59 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " } ,
2017-09-10 01:59:59 +00:00
sidelen = 80 ,
noise_params = {
offset = 0.013 ,
scale = 0.006 ,
spread = { x = 125 , y = 125 , z = 125 } ,
seed = 333 ,
octaves = 3 ,
persist = 0.6
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_farming:melon " ,
2017-09-12 19:31:33 +00:00
biomes = { " JungleEdgeM " } ,
2017-09-10 01:59:59 +00:00
} )
2017-08-15 17:40:53 +00:00
2017-08-21 02:14:28 +00:00
-- Pumpkin
minetest.register_decoration ( {
2019-03-10 05:37:36 +00:00
deco_type = " simple " ,
2020-05-02 19:04:03 +00:00
decoration = " mcl_farming:pumpkin " ,
2019-03-10 05:37:36 +00:00
param2 = 0 ,
param2_max = 3 ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " } ,
2017-08-21 02:14:28 +00:00
sidelen = 16 ,
noise_params = {
offset = - 0.016 ,
scale = 0.01332 ,
spread = { x = 125 , y = 125 , z = 125 } ,
seed = 666 ,
octaves = 6 ,
persist = 0.666
} ,
2017-09-10 04:06:02 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2017-08-21 02:14:28 +00:00
} )
2017-08-21 12:04:34 +00:00
-- Grasses and ferns
2017-11-14 22:44:53 +00:00
local grass_forest = { " Plains " , " Taiga " , " Forest " , " FlowerForest " , " BirchForest " , " BirchForestM " , " RoofedForest " , " Swampland " , }
local grass_mpf = { " MesaPlateauF_grasstop " }
2022-07-28 16:22:54 +00:00
local grass_plains = { " Plains " , " SunflowerPlains " , " JungleEdge " , " JungleEdgeM " , " MangroveSwamp " }
2017-09-12 19:31:33 +00:00
local grass_savanna = { " Savanna " , " SavannaM " }
2019-03-10 23:04:03 +00:00
local grass_sparse = { " ExtremeHills " , " ExtremeHills+ " , " ExtremeHills+_snowtop " , " ExtremeHillsM " , " Jungle " }
local grass_mpfm = { " MesaPlateauFM_grasstop " }
2017-09-06 02:11:39 +00:00
2017-09-08 05:41:14 +00:00
register_grass_decoration ( " tallgrass " , - 0.03 , 0.09 , grass_forest )
register_grass_decoration ( " tallgrass " , - 0.015 , 0.075 , grass_forest )
2017-09-05 19:30:02 +00:00
register_grass_decoration ( " tallgrass " , 0 , 0.06 , grass_forest )
register_grass_decoration ( " tallgrass " , 0.015 , 0.045 , grass_forest )
register_grass_decoration ( " tallgrass " , 0.03 , 0.03 , grass_forest )
2019-12-13 22:48:13 +00:00
register_grass_decoration ( " tallgrass " , - 0.03 , 0.09 , grass_mpf )
register_grass_decoration ( " tallgrass " , - 0.015 , 0.075 , grass_mpf )
register_grass_decoration ( " tallgrass " , 0 , 0.06 , grass_mpf )
register_grass_decoration ( " tallgrass " , 0.01 , 0.045 , grass_mpf )
2017-09-05 19:30:02 +00:00
register_grass_decoration ( " tallgrass " , 0.01 , 0.05 , grass_forest )
2017-09-05 23:50:39 +00:00
register_grass_decoration ( " tallgrass " , 0.03 , 0.03 , grass_plains )
register_grass_decoration ( " tallgrass " , 0.05 , 0.01 , grass_plains )
register_grass_decoration ( " tallgrass " , 0.07 , - 0.01 , grass_plains )
register_grass_decoration ( " tallgrass " , 0.09 , - 0.03 , grass_plains )
2019-12-13 22:48:13 +00:00
register_grass_decoration ( " tallgrass " , 0.18 , - 0.03 , grass_savanna )
2017-09-09 09:42:15 +00:00
register_grass_decoration ( " tallgrass " , 0.05 , - 0.03 , grass_sparse )
2019-12-13 22:48:13 +00:00
register_grass_decoration ( " tallgrass " , 0.05 , 0.05 , grass_mpfm )
2017-08-21 12:04:34 +00:00
2022-07-28 16:22:54 +00:00
local fern_minimal = { " Jungle " , " JungleM " , " JungleEdge " , " JungleEdgeM " , " Taiga " , " MegaTaiga " , " MegaSpruceTaiga " , " ColdTaiga " , " MangroveSwamp " }
2017-09-12 19:31:33 +00:00
local fern_low = { " Jungle " , " JungleM " , " JungleEdge " , " JungleEdgeM " , " Taiga " , " MegaTaiga " , " MegaSpruceTaiga " }
local fern_Jungle = { " Jungle " , " JungleM " , " JungleEdge " , " JungleEdgeM " }
2021-05-22 21:04:18 +00:00
--local fern_JungleM = { "JungleM" },
2017-09-05 19:30:02 +00:00
register_grass_decoration ( " fern " , - 0.03 , 0.09 , fern_minimal )
register_grass_decoration ( " fern " , - 0.015 , 0.075 , fern_minimal )
register_grass_decoration ( " fern " , 0 , 0.06 , fern_minimal )
register_grass_decoration ( " fern " , 0.015 , 0.045 , fern_low )
register_grass_decoration ( " fern " , 0.03 , 0.03 , fern_low )
2017-09-12 19:31:33 +00:00
register_grass_decoration ( " fern " , 0.01 , 0.05 , fern_Jungle )
register_grass_decoration ( " fern " , 0.03 , 0.03 , fern_Jungle )
register_grass_decoration ( " fern " , 0.05 , 0.01 , fern_Jungle )
register_grass_decoration ( " fern " , 0.07 , - 0.01 , fern_Jungle )
register_grass_decoration ( " fern " , 0.09 , - 0.03 , fern_Jungle )
2021-05-22 21:04:18 +00:00
register_grass_decoration ( " fern " , 0.12 , - 0.03 , { " JungleM " } )
2017-02-22 22:21:13 +00:00
2019-12-18 20:04:07 +00:00
local b_seagrass = { " ColdTaiga_ocean " , " ExtremeHills_ocean " , " ExtremeHillsM_ocean " , " ExtremeHills+_ocean " , " Taiga_ocean " , " MegaTaiga_ocean " , " MegaSpruceTaiga_ocean " , " StoneBeach_ocean " , " Plains_ocean " , " SunflowerPlains_ocean " , " Forest_ocean " , " FlowerForest_ocean " , " BirchForest_ocean " , " BirchForestM_ocean " , " RoofedForest_ocean " , " Swampland_ocean " , " Jungle_ocean " , " JungleM_ocean " , " JungleEdge_ocean " , " JungleEdgeM_ocean " , " MushroomIsland_ocean " , " Desert_ocean " , " Savanna_ocean " , " SavannaM_ocean " , " Mesa_ocean " , " MesaBryce_ocean " , " MesaPlateauF_ocean " , " MesaPlateauFM_ocean " ,
" ColdTaiga_deep_ocean " , " ExtremeHills_deep_ocean " , " ExtremeHillsM_deep_ocean " , " ExtremeHills+_deep_ocean " , " Taiga_deep_ocean " , " MegaTaiga_deep_ocean " , " MegaSpruceTaiga_deep_ocean " , " StoneBeach_deep_ocean " , " Plains_deep_ocean " , " SunflowerPlains_deep_ocean " , " Forest_deep_ocean " , " FlowerForest_deep_ocean " , " BirchForest_deep_ocean " , " BirchForestM_deep_ocean " , " RoofedForest_deep_ocean " , " Swampland_deep_ocean " , " Jungle_deep_ocean " , " JungleM_deep_ocean " , " JungleEdge_deep_ocean " , " JungleEdgeM_deep_ocean " , " MushroomIsland_deep_ocean " , " Desert_deep_ocean " , " Savanna_deep_ocean " , " SavannaM_deep_ocean " , " Mesa_deep_ocean " , " MesaBryce_deep_ocean " , " MesaPlateauF_deep_ocean " , " MesaPlateauFM_deep_ocean " ,
" Mesa_sandlevel " , " MesaBryce_sandlevel " , " MesaPlateauF_sandlevel " , " MesaPlateauFM_sandlevel " , " Swampland_shore " , " Jungle_shore " , " JungleM_shore " , " Savanna_beach " , " FlowerForest_beach " , " ColdTaiga_beach_water " , " ExtremeHills_beach " }
local b_kelp = { " ExtremeHillsM_ocean " , " ExtremeHills+_ocean " , " MegaTaiga_ocean " , " MegaSpruceTaiga_ocean " , " Plains_ocean " , " SunflowerPlains_ocean " , " Forest_ocean " , " FlowerForest_ocean " , " BirchForest_ocean " , " BirchForestM_ocean " , " RoofedForest_ocean " , " Swampland_ocean " , " Jungle_ocean " , " JungleM_ocean " , " JungleEdge_ocean " , " JungleEdgeM_ocean " , " MushroomIsland_ocean " ,
" ExtremeHillsM_deep_ocean " , " ExtremeHills+_deep_ocean " , " MegaTaiga_deep_ocean " , " MegaSpruceTaiga_deep_ocean " , " Plains_deep_ocean " , " SunflowerPlains_deep_ocean " , " Forest_deep_ocean " , " FlowerForest_deep_ocean " , " BirchForest_deep_ocean " , " BirchForestM_deep_ocean " , " RoofedForest_deep_ocean " , " Swampland_deep_ocean " , " Jungle_deep_ocean " , " JungleM_deep_ocean " , " JungleEdge_deep_ocean " , " JungleEdgeM_deep_ocean " , " MushroomIsland_deep_ocean "
}
2019-12-18 17:42:04 +00:00
register_seagrass_decoration ( " seagrass " , 0 , 0.5 , b_seagrass )
register_seagrass_decoration ( " kelp " , - 0.5 , 1 , b_kelp )
2019-12-18 19:55:20 +00:00
local b_sponge = { " Plains_deep_ocean " , " SunflowerPlains_deep_ocean " , " Forest_deep_ocean " , " FlowerForest_deep_ocean " , " BirchForest_deep_ocean " , " BirchForestM_deep_ocean " , " RoofedForest_deep_ocean " , " Jungle_deep_ocean " , " JungleM_deep_ocean " , " JungleEdge_deep_ocean " , " JungleEdgeM_deep_ocean " , " MushroomIsland_deep_ocean " , " Desert_deep_ocean " , " Savanna_deep_ocean " , " SavannaM_deep_ocean " , " Mesa_deep_ocean " , " MesaBryce_deep_ocean " , " MesaPlateauF_deep_ocean " , " MesaPlateauFM_deep_ocean " }
-- Wet Sponge
-- TODO: Remove this when we got ocean monuments
minetest.register_decoration ( {
deco_type = " simple " ,
decoration = " mcl_sponges:sponge_wet " ,
biomes = b_sponge ,
spawn_by = { " group:water " } ,
num_spawn_by = 1 ,
place_on = { " mcl_core:dirt " , " mcl_core:sand " , " mcl_core:gravel " } ,
sidelen = 16 ,
noise_params = {
offset = 0.00495 ,
scale = 0.006 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = 999 ,
octaves = 3 ,
persist = 0.666
} ,
flags = " force_placement " ,
2019-12-18 20:04:07 +00:00
y_min = mcl_vars.mg_lava_overworld_max + 5 ,
2019-12-18 19:55:20 +00:00
y_max = - 20 ,
} )
2017-09-09 09:42:15 +00:00
-- Place tall grass on snow in Ice Plains and Extreme Hills+
2017-09-06 02:11:39 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " } ,
2017-09-06 02:11:39 +00:00
sidelen = 16 ,
noise_params = {
offset = - 0.08 ,
scale = 0.09 ,
spread = { x = 15 , y = 15 , z = 15 } ,
seed = 420 ,
octaves = 3 ,
persist = 0.6 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " IcePlains " } ,
2017-09-06 02:11:39 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = {
size = { x = 1 , y = 2 , z = 1 } ,
data = {
{ name = " mcl_core:dirt_with_grass " , force_place = true , } ,
2019-12-13 22:48:13 +00:00
{ name = " mcl_flowers:tallgrass " , param2 = minetest.registered_biomes [ " IcePlains " ] . _mcl_palette_index } ,
2017-09-06 02:11:39 +00:00
} ,
} ,
} )
2017-09-09 09:42:15 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block " } ,
2017-09-09 09:42:15 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.0 ,
scale = 0.09 ,
spread = { x = 15 , y = 15 , z = 15 } ,
seed = 420 ,
octaves = 3 ,
persist = 0.6 ,
} ,
2017-09-12 19:31:33 +00:00
biomes = { " ExtremeHills+_snowtop " } ,
2017-09-09 09:42:15 +00:00
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
schematic = {
size = { x = 1 , y = 2 , z = 1 } ,
data = {
{ name = " mcl_core:dirt_with_grass " , force_place = true , } ,
2019-12-13 22:48:13 +00:00
{ name = " mcl_flowers:tallgrass " , param2 = minetest.registered_biomes [ " ExtremeHills+_snowtop " ] . _mcl_palette_index } ,
2017-09-09 09:42:15 +00:00
} ,
} ,
} )
2017-09-06 02:11:39 +00:00
2017-08-21 02:14:28 +00:00
-- Dead bushes
minetest.register_decoration ( {
deco_type = " simple " ,
2019-12-13 13:03:12 +00:00
place_on = { " group:sand " , " mcl_core:podzol " , " mcl_core:dirt " , " mcl_core:dirt_with_grass " , " mcl_core:coarse_dirt " , " group:hardened_clay " } ,
2017-08-21 02:14:28 +00:00
sidelen = 16 ,
noise_params = {
2019-03-10 23:04:03 +00:00
offset = 0.0 ,
2017-08-21 02:14:28 +00:00
scale = 0.035 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = 1972 ,
octaves = 3 ,
persist = 0.6
} ,
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
2019-03-11 20:42:30 +00:00
biomes = { " Desert " , " Mesa " , " Mesa_sandlevel " , " MesaPlateauF " , " MesaPlateauF_sandlevel " , " MesaPlateauF_grasstop " , " MesaBryce " , " Taiga " , " MegaTaiga " } ,
2017-08-21 02:14:28 +00:00
decoration = " mcl_core:deadbush " ,
height = 1 ,
} )
2019-03-10 23:04:03 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
2019-12-13 13:03:12 +00:00
place_on = { " group:sand " , " mcl_core:dirt " , " mcl_core:dirt_with_grass " , " mcl_core:coarse_dirt " } ,
2019-03-10 23:04:03 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.1 ,
scale = 0.035 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = 1972 ,
octaves = 3 ,
persist = 0.6
} ,
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
biomes = { " MesaPlateauFM_grasstop " } ,
decoration = " mcl_core:deadbush " ,
height = 1 ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " group:sand " } ,
sidelen = 16 ,
noise_params = {
offset = 0.045 ,
scale = 0.055 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = 1972 ,
octaves = 3 ,
persist = 0.6
} ,
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
biomes = { " MesaPlateauFM " , " MesaPlateauFM_sandlevel " } ,
decoration = " mcl_core:deadbush " ,
height = 1 ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " group:hardened_clay " } ,
sidelen = 16 ,
noise_params = {
offset = 0.010 ,
scale = 0.035 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = 1972 ,
octaves = 3 ,
persist = 0.6
} ,
y_min = 4 ,
y_max = mcl_vars.mg_overworld_max ,
biomes = { " MesaPlateauFM " , " MesaPlateauFM_sandlevel " , " MesaPlateauFM_grasstop " } ,
decoration = " mcl_core:deadbush " ,
height = 1 ,
} )
2017-08-21 02:14:28 +00:00
-- Mushrooms in mushroom biome
2017-08-21 00:25:22 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_core:mycelium " } ,
sidelen = 80 ,
2017-08-21 13:14:33 +00:00
fill_ratio = 0.009 ,
2017-09-12 19:31:33 +00:00
biomes = { " MushroomIsland " , " MushroomIslandShore " } ,
2017-08-21 13:14:33 +00:00
noise_threshold = 2.0 ,
2017-08-21 02:23:24 +00:00
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
2017-08-21 00:25:22 +00:00
decoration = " mcl_mushrooms:mushroom_red " ,
} )
2017-02-22 22:21:13 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
2017-08-21 00:25:22 +00:00
place_on = { " mcl_core:mycelium " } ,
sidelen = 80 ,
2017-08-21 13:14:33 +00:00
fill_ratio = 0.009 ,
2017-09-12 19:31:33 +00:00
biomes = { " MushroomIsland " , " MushroomIslandShore " } ,
2017-08-21 00:25:22 +00:00
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_mushrooms:mushroom_brown " ,
} )
2017-09-12 19:31:33 +00:00
-- Mushrooms in Taiga
2017-08-21 13:14:33 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_core:podzol " } ,
sidelen = 80 ,
fill_ratio = 0.003 ,
2017-09-12 19:31:33 +00:00
biomes = { " Taiga " , " MegaTaiga " , " MegaSpruceTaiga " } ,
2017-08-21 13:14:33 +00:00
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_mushrooms:mushroom_red " ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_core:podzol " } ,
sidelen = 80 ,
fill_ratio = 0.003 ,
2017-09-12 19:31:33 +00:00
biomes = { " Taiga " , " MegaTaiga " , " MegaSpruceTaiga " } ,
2017-08-21 13:14:33 +00:00
y_min = mcl_vars.mg_overworld_min ,
y_max = mcl_vars.mg_overworld_max ,
decoration = " mcl_mushrooms:mushroom_brown " ,
} )
2017-08-21 02:14:28 +00:00
-- Mushrooms next to trees
local mushrooms = { " mcl_mushrooms:mushroom_red " , " mcl_mushrooms:mushroom_brown " }
local mseeds = { 7133 , 8244 }
for m = 1 , # mushrooms do
-- Mushrooms next to trees
minetest.register_decoration ( {
deco_type = " simple " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " , " mcl_core:podzol " , " mcl_core:mycelium " , " mcl_core:stone " , " mcl_core:andesite " , " mcl_core:diorite " , " mcl_core:granite " } ,
2017-08-21 02:14:28 +00:00
sidelen = 16 ,
noise_params = {
offset = 0 ,
2017-08-21 13:14:33 +00:00
scale = 0.003 ,
2017-08-21 02:14:28 +00:00
spread = { x = 250 , y = 250 , z = 250 } ,
seed = mseeds [ m ] ,
octaves = 3 ,
persist = 0.66 ,
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
decoration = mushrooms [ m ] ,
2017-09-02 17:46:56 +00:00
spawn_by = { " mcl_core:tree " , " mcl_core:sprucetree " , " mcl_core:darktree " , " mcl_core:birchtree " } ,
2017-08-21 02:14:28 +00:00
num_spawn_by = 1 ,
} )
2017-09-08 17:54:24 +00:00
2017-09-12 19:31:33 +00:00
-- More mushrooms in Swampland
2017-09-08 17:54:24 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " , " mcl_core:podzol " , " mcl_core:mycelium " , " mcl_core:stone " , " mcl_core:andesite " , " mcl_core:diorite " , " mcl_core:granite " } ,
2017-09-08 17:54:24 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.05 ,
scale = 0.003 ,
spread = { x = 250 , y = 250 , z = 250 } ,
seed = mseeds [ m ] ,
octaves = 3 ,
persist = 0.6 ,
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
decoration = mushrooms [ m ] ,
2017-09-12 19:31:33 +00:00
biomes = { " Swampland " } ,
2017-09-08 17:54:24 +00:00
spawn_by = { " mcl_core:tree " , " mcl_core:sprucetree " , " mcl_core:darktree " , " mcl_core:birchtree " } ,
num_spawn_by = 1 ,
} )
2017-08-21 02:14:28 +00:00
end
2017-09-08 22:19:24 +00:00
local function register_flower ( name , biomes , seed , is_in_flower_forest )
if is_in_flower_forest == nil then
is_in_flower_forest = true
end
2017-09-08 22:22:59 +00:00
if biomes then
minetest.register_decoration ( {
deco_type = " simple " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-08 22:22:59 +00:00
sidelen = 16 ,
noise_params = {
offset = 0.0008 ,
scale = 0.006 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = seed ,
octaves = 3 ,
persist = 0.6
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
biomes = biomes ,
decoration = " mcl_flowers: " .. name ,
} )
end
2017-09-08 22:19:24 +00:00
if is_in_flower_forest then
minetest.register_decoration ( {
deco_type = " simple " ,
2017-11-15 19:27:29 +00:00
place_on = { " group:grass_block_no_snow " , " mcl_core:dirt " } ,
2017-09-08 22:19:24 +00:00
sidelen = 80 ,
noise_params = {
offset = 0.0008 * 40 ,
scale = 0.003 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = seed ,
octaves = 3 ,
persist = 0.6 ,
} ,
y_min = 1 ,
y_max = mcl_vars.mg_overworld_max ,
2017-09-12 19:31:33 +00:00
biomes = { " FlowerForest " } ,
2017-09-08 22:19:24 +00:00
decoration = " mcl_flowers: " .. name ,
} )
end
2017-08-21 00:25:22 +00:00
end
2017-09-12 19:31:33 +00:00
local flower_biomes1 = { " Plains " , " SunflowerPlains " , " RoofedForest " , " Forest " , " BirchForest " , " BirchForestM " , " Taiga " , " ColdTaiga " , " Jungle " , " JungleM " , " JungleEdge " , " JungleEdgeM " , " Savanna " , " SavannaM " , " ExtremeHills " , " ExtremeHillsM " , " ExtremeHills+ " , " ExtremeHills+_snowtop " }
2017-08-21 00:25:22 +00:00
register_flower ( " dandelion " , flower_biomes1 , 8 )
register_flower ( " poppy " , flower_biomes1 , 9439 )
2017-09-12 19:31:33 +00:00
local flower_biomes2 = { " Plains " , " SunflowerPlains " }
2017-08-21 00:25:22 +00:00
register_flower ( " tulip_red " , flower_biomes2 , 436 )
register_flower ( " tulip_orange " , flower_biomes2 , 536 )
register_flower ( " tulip_pink " , flower_biomes2 , 636 )
register_flower ( " tulip_white " , flower_biomes2 , 736 )
register_flower ( " azure_bluet " , flower_biomes2 , 800 )
register_flower ( " oxeye_daisy " , flower_biomes2 , 3490 )
2017-09-12 19:31:33 +00:00
register_flower ( " allium " , nil , 0 ) -- flower Forest only
register_flower ( " blue_orchid " , { " Swampland " } , 64500 , false )
2017-08-21 00:25:22 +00:00
2017-08-17 21:14:02 +00:00
end
-- Decorations in non-Overworld dimensions
local function register_dimension_decorations ( )
2019-03-09 20:02:40 +00:00
--[[ NETHER ]]
2022-06-18 19:38:20 +00:00
--NETHER WASTES (Nether)
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_nether:netherrack " , " mcl_nether:magma " } ,
sidelen = 16 ,
fill_ratio = 0.04 ,
biomes = { " Nether " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
y_max = mcl_vars.mg_nether_max - 1 ,
flags = " all_floors " ,
decoration = " mcl_fire:eternal_fire " ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_nether:netherrack " } ,
sidelen = 16 ,
fill_ratio = 0.013 ,
biomes = { " Nether " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
y_max = mcl_vars.mg_nether_max - 1 ,
flags = " all_floors " ,
decoration = " mcl_mushrooms:mushroom_brown " ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_nether:netherrack " } ,
sidelen = 16 ,
fill_ratio = 0.012 ,
biomes = { " Nether " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
y_max = mcl_vars.mg_nether_max - 1 ,
flags = " all_floors " ,
decoration = " mcl_mushrooms:mushroom_red " ,
} )
2019-03-09 20:02:40 +00:00
2022-06-16 20:17:11 +00:00
-- WARPED FOREST
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_crimson:warped_nylium " } ,
sidelen = 16 ,
fill_ratio = 0.02 ,
biomes = { " WarpedForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
2022-06-18 19:38:20 +00:00
y_max = mcl_vars.mg_nether_max - 10 ,
2022-06-16 20:17:11 +00:00
flags = " all_floors " ,
decoration = " mcl_crimson:warped_fungus " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
2022-06-18 12:28:05 +00:00
name = " mcl_biomes:warped_tree1 " ,
place_on = { " mcl_crimson:warped_nylium " } ,
sidelen = 16 ,
fill_ratio = 0.007 ,
biomes = { " WarpedForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
y_max = mcl_vars.mg_nether_max - 15 ,
flags = " all_floors, place_center_x, place_center_z " ,
schematic = mod_mcl_crimson .. " /schematics/warped_fungus_1.mts " ,
size = { x = 5 , y = 11 , z = 5 } ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
name = " mcl_biomes:warped_tree2 " ,
2022-06-16 20:17:11 +00:00
place_on = { " mcl_crimson:warped_nylium " } ,
sidelen = 16 ,
2022-06-18 12:28:05 +00:00
fill_ratio = 0.005 ,
2022-06-16 20:17:11 +00:00
biomes = { " WarpedForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
2022-06-17 13:54:36 +00:00
y_max = mcl_vars.mg_nether_max - 10 ,
2022-06-16 20:17:11 +00:00
flags = " all_floors, place_center_x, place_center_z " ,
2022-06-18 12:28:05 +00:00
schematic = mod_mcl_crimson .. " /schematics/warped_fungus_2.mts " ,
size = { x = 5 , y = 6 , z = 5 } ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
name = " mcl_biomes:warped_tree3 " ,
place_on = { " mcl_crimson:warped_nylium " } ,
sidelen = 16 ,
fill_ratio = 0.003 ,
biomes = { " WarpedForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
y_max = mcl_vars.mg_nether_max - 14 ,
flags = " all_floors, place_center_x, place_center_z " ,
schematic = mod_mcl_crimson .. " /schematics/warped_fungus_3.mts " ,
size = { x = 5 , y = 12 , z = 5 } ,
2022-06-16 20:17:11 +00:00
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_crimson:warped_nylium " , " mcl_crimson:twisting_vines " } ,
sidelen = 16 ,
2022-09-15 02:31:35 +00:00
fill_ratio = 0.032 ,
2022-06-16 20:17:11 +00:00
biomes = { " WarpedForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
flags = " all_floors " ,
2022-06-18 14:01:25 +00:00
height = 2 ,
height_max = 8 ,
2022-06-16 20:17:11 +00:00
decoration = " mcl_crimson:twisting_vines " ,
} )
2022-06-17 01:09:40 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_crimson:warped_nylium " } ,
sidelen = 16 ,
fill_ratio = 0.0812 ,
biomes = { " WarpedForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
flags = " all_floors " ,
max_height = 5 ,
decoration = " mcl_crimson:warped_roots " ,
} )
2022-06-17 23:49:18 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_crimson:crimson_nylium " } ,
sidelen = 16 ,
fill_ratio = 0.052 ,
biomes = { " WarpedForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
flags = " all_floors " ,
decoration = " mcl_crimson:nether_sprouts " ,
} )
2022-06-16 20:17:11 +00:00
-- CRIMSON FOREST
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_crimson:crimson_nylium " } ,
sidelen = 16 ,
fill_ratio = 0.02 ,
biomes = { " CrimsonForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
2022-10-15 00:43:16 +00:00
y_max = mcl_vars.mg_nether_max - 10 ,
2022-06-16 20:17:11 +00:00
flags = " all_floors " ,
decoration = " mcl_crimson:crimson_fungus " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
2022-06-17 21:12:37 +00:00
name = " mcl_biomes:crimson_tree " ,
2022-06-16 20:17:11 +00:00
place_on = { " mcl_crimson:crimson_nylium " } ,
sidelen = 16 ,
2022-06-18 12:28:05 +00:00
fill_ratio = 0.008 ,
2022-06-16 20:17:11 +00:00
biomes = { " CrimsonForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
2022-06-17 13:54:36 +00:00
y_max = mcl_vars.mg_nether_max - 10 ,
2022-06-16 20:17:11 +00:00
flags = " all_floors, place_center_x, place_center_z " ,
2022-06-18 12:28:05 +00:00
schematic = mod_mcl_crimson .. " /schematics/crimson_fungus_1.mts " ,
2022-06-16 20:17:11 +00:00
size = { x = 5 , y = 8 , z = 5 } ,
rotation = " random " ,
} )
2022-06-18 12:28:05 +00:00
minetest.register_decoration ( {
deco_type = " schematic " ,
name = " mcl_biomes:crimson_tree2 " ,
place_on = { " mcl_crimson:crimson_nylium " } ,
sidelen = 16 ,
fill_ratio = 0.006 ,
biomes = { " CrimsonForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
y_max = mcl_vars.mg_nether_max - 15 ,
flags = " all_floors, place_center_x, place_center_z " ,
schematic = mod_mcl_crimson .. " /schematics/crimson_fungus_2.mts " ,
size = { x = 5 , y = 12 , z = 5 } ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
name = " mcl_biomes:crimson_tree3 " ,
place_on = { " mcl_crimson:crimson_nylium " } ,
sidelen = 16 ,
fill_ratio = 0.004 ,
biomes = { " CrimsonForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
y_max = mcl_vars.mg_nether_max - 20 ,
flags = " all_floors, place_center_x, place_center_z " ,
schematic = mod_mcl_crimson .. " /schematics/crimson_fungus_3.mts " ,
size = { x = 7 , y = 13 , z = 7 } ,
rotation = " random " ,
} )
2022-09-15 02:31:35 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_crimson:warped_nylium " , " mcl_crimson:weeping_vines " , " mcl_nether:netherrack " } ,
sidelen = 16 ,
fill_ratio = 0.063 ,
biomes = { " CrimsonForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
2022-10-27 17:34:58 +00:00
y_max = mcl_vars.mg_nether_deco_max ,
2022-09-15 02:31:35 +00:00
flags = " all_ceilings " ,
height = 2 ,
height_max = 8 ,
decoration = " mcl_crimson:weeping_vines " ,
} )
2022-06-16 20:17:11 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
place_on = { " mcl_crimson:crimson_nylium " } ,
sidelen = 16 ,
2022-06-17 01:09:40 +00:00
fill_ratio = 0.082 ,
2022-06-16 20:17:11 +00:00
biomes = { " CrimsonForest " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
flags = " all_floors " ,
max_height = 5 ,
decoration = " mcl_crimson:crimson_roots " ,
} )
2022-06-17 01:09:40 +00:00
2022-06-16 20:17:11 +00:00
--SOULSAND VALLEY
minetest.register_decoration ( {
deco_type = " simple " ,
2022-06-17 13:54:36 +00:00
place_on = { " mcl_blackstone:soul_soil " , " mcl_nether:soul_sand " } ,
2022-06-16 20:17:11 +00:00
sidelen = 16 ,
2022-06-17 13:54:36 +00:00
fill_ratio = 0.062 ,
2022-06-16 20:17:11 +00:00
biomes = { " SoulsandValley " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
flags = " all_floors " ,
max_height = 5 ,
decoration = " mcl_blackstone:soul_fire " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " mcl_blackstone:soul_soil " , " mcl_nether:soulsand " } ,
sidelen = 16 ,
fill_ratio = 0.000212 ,
biomes = { " SoulsandValley " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
flags = " all_floors, place_center_x, place_center_z " ,
schematic = mod_mcl_blackstone .. " /schematics/mcl_blackstone_nether_fossil_1.mts " ,
size = { x = 5 , y = 8 , z = 5 } ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " mcl_blackstone:soul_soil " , " mcl_nether:soulsand " } ,
sidelen = 16 ,
fill_ratio = 0.0002233 ,
biomes = { " SoulsandValley " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
flags = " all_floors, place_center_x, place_center_z " ,
schematic = mod_mcl_blackstone .. " /schematics/mcl_blackstone_nether_fossil_2.mts " ,
size = { x = 5 , y = 8 , z = 5 } ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " mcl_blackstone:soul_soil " , " mcl_nether:soulsand " } ,
sidelen = 16 ,
fill_ratio = 0.000225 ,
biomes = { " SoulsandValley " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
flags = " all_floors, place_center_x, place_center_z " ,
schematic = mod_mcl_blackstone .. " /schematics/mcl_blackstone_nether_fossil_3.mts " ,
size = { x = 5 , y = 8 , z = 5 } ,
rotation = " random " ,
} )
minetest.register_decoration ( {
deco_type = " schematic " ,
place_on = { " mcl_blackstone:soul_soil " , " mcl_nether:soulsand " } ,
sidelen = 16 ,
fill_ratio = 0.00022323 ,
biomes = { " SoulsandValley " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
flags = " all_floors, place_center_x, place_center_z " ,
schematic = mod_mcl_blackstone .. " /schematics/mcl_blackstone_nether_fossil_4.mts " ,
size = { x = 5 , y = 8 , z = 5 } ,
rotation = " random " ,
} )
2022-06-22 23:42:20 +00:00
--BASALT DELTA
minetest.register_decoration ( {
deco_type = " simple " ,
decoration = " mcl_blackstone:basalt " ,
place_on = { " mcl_blackstone:basalt " , " mcl_nether:netherrack " , " mcl_blackstone:blackstone " } ,
sidelen = 80 ,
height_max = 55 ,
noise_params = {
offset = - 0.0085 ,
scale = 0.002 ,
spread = { x = 25 , y = 120 , z = 25 } ,
seed = 2325 ,
octaves = 5 ,
persist = 2 ,
lacunarity = 3.5 ,
flags = " absvalue "
} ,
biomes = { " BasaltDelta " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
2022-10-27 21:00:15 +00:00
y_max = mcl_vars.mg_nether_deco_max - 50 ,
2022-06-22 23:42:20 +00:00
flags = " all_floors, all ceilings " ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
decoration = " mcl_blackstone:basalt " ,
place_on = { " mcl_blackstone:basalt " , " mcl_nether:netherrack " , " mcl_blackstone:blackstone " } ,
sidelen = 80 ,
height_max = 15 ,
noise_params = {
offset = - 0.0085 ,
scale = 0.004 ,
spread = { x = 25 , y = 120 , z = 25 } ,
seed = 235 ,
octaves = 5 ,
persist = 2.5 ,
lacunarity = 3.5 ,
flags = " absvalue "
} ,
biomes = { " BasaltDelta " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
2022-10-27 21:00:15 +00:00
y_max = mcl_vars.mg_nether_deco_max - 15 ,
2022-06-22 23:42:20 +00:00
flags = " all_floors, all ceilings " ,
} )
2022-11-01 02:48:12 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
decoration = " mcl_blackstone:basalt " ,
place_on = { " mcl_blackstone:basalt " , " mcl_nether:netherrack " , " mcl_blackstone:blackstone " } ,
sidelen = 80 ,
height_max = 3 ,
fill_ratio = 0.4 ,
biomes = { " BasaltDelta " } ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
y_max = mcl_vars.mg_nether_deco_max - 15 ,
flags = " all_floors, all ceilings " ,
} )
2022-06-22 23:42:20 +00:00
minetest.register_decoration ( {
deco_type = " simple " ,
decoration = " mcl_nether:magma " ,
place_on = { " mcl_blackstone:basalt " , " mcl_nether:netherrack " , " mcl_blackstone:blackstone " } ,
sidelen = 80 ,
fill_ratio = 0.082323 ,
biomes = { " BasaltDelta " } ,
place_offset_y = - 1 ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
flags = " all_floors, all ceilings " ,
} )
minetest.register_decoration ( {
deco_type = " simple " ,
decoration = " mcl_nether:nether_lava_source " ,
place_on = { " mcl_blackstone:basalt " , " mcl_nether:netherrack " , " mcl_blackstone:blackstone " } ,
spawn_by = { " mcl_blackstone:basalt " , " mcl_blackstone:blackstone " } ,
num_spawn_by = 14 ,
sidelen = 80 ,
fill_ratio = 4 ,
biomes = { " BasaltDelta " } ,
place_offset_y = - 1 ,
y_min = mcl_vars.mg_lava_nether_max + 1 ,
y_max = mcl_vars.mg_nether_max - 5 ,
flags = " all_floors, force_placement " ,
} )
2022-06-16 20:17:11 +00:00
2019-03-09 20:02:40 +00:00
--[[ THE END ]]
-- Chorus plant
minetest.register_decoration ( {
2022-09-11 18:28:24 +00:00
name = " mcl_biomes:chorus " ,
2019-03-09 20:02:40 +00:00
deco_type = " simple " ,
2022-09-11 18:28:24 +00:00
place_on = { " mcl_end:end_stone " } ,
2019-03-09 20:02:40 +00:00
flags = " all_floors " ,
sidelen = 16 ,
noise_params = {
offset = - 0.012 ,
scale = 0.024 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = 257 ,
octaves = 3 ,
persist = 0.6
} ,
y_min = mcl_vars.mg_end_min ,
y_max = mcl_vars.mg_end_max ,
2022-09-11 18:28:24 +00:00
decoration = " mcl_end:chorus_plant " ,
height = 1 ,
height_max = 8 ,
2022-09-13 00:37:48 +00:00
biomes = { " End " , " EndMidlands " , " EndHighlands " , " EndBarrens " , " EndSmallIslands " } ,
2022-09-11 18:28:24 +00:00
} )
minetest.register_decoration ( {
name = " mcl_biomes:chorus_plant " ,
deco_type = " simple " ,
place_on = { " mcl_end:chorus_plant " } ,
flags = " all_floors " ,
sidelen = 16 ,
fill_ratio = 10 ,
--[[noise_params = {
offset = - 0.012 ,
scale = 0.024 ,
spread = { x = 100 , y = 100 , z = 100 } ,
seed = 257 ,
octaves = 3 ,
persist = 0.6
} , --]]
y_min = mcl_vars.mg_end_min ,
y_max = mcl_vars.mg_end_max ,
2019-03-09 20:02:40 +00:00
decoration = " mcl_end:chorus_flower " ,
height = 1 ,
2022-09-13 00:37:48 +00:00
biomes = { " End " , " EndMidlands " , " EndHighlands " , " EndBarrens " , " EndSmallIslands " } ,
2019-03-09 20:02:40 +00:00
} )
deco_id_chorus_plant = minetest.get_decoration_id ( " mcl_biomes:chorus_plant " )
minetest.set_gen_notify ( { decoration = true } , { deco_id_chorus_plant } )
-- TODO: End cities
2017-02-22 22:21:13 +00:00
end
2018-01-10 16:55:17 +00:00
2017-02-22 22:21:13 +00:00
--
-- Detect mapgen to select functions
--
2017-09-05 20:47:48 +00:00
if mg_name ~= " singlenode " then
2019-02-09 01:42:11 +00:00
if not superflat then
2018-01-10 16:55:17 +00:00
if mg_name ~= " v6 " then
register_biomes ( )
register_biomelike_ores ( )
end
register_biome_ores ( )
if mg_name ~= " v6 " then
register_decorations ( )
end
else
2019-02-09 01:42:11 +00:00
-- Implementation of Minecraft's Superflat mapgen, classic style:
-- * Perfectly flat land, 1 grass biome, no decorations, no caves
-- * 4 layers, from top to bottom: grass block, dirt, dirt, bedrock
2017-09-05 20:47:48 +00:00
minetest.clear_registered_biomes ( )
minetest.clear_registered_decorations ( )
minetest.clear_registered_schematics ( )
register_classic_superflat_biome ( )
end
2017-08-17 21:14:02 +00:00
2017-09-05 20:47:48 +00:00
-- Non-overworld stuff is registered independently
register_dimension_biomes ( )
register_dimension_ores ( )
register_dimension_decorations ( )
-- Overworld decorations for v6 are handled in mcl_mapgen_core
2019-03-09 20:02:40 +00:00
2022-06-18 12:28:05 +00:00
local deco_ids_fungus = {
minetest.get_decoration_id ( " mcl_biomes:crimson_tree1 " ) ,
minetest.get_decoration_id ( " mcl_biomes:crimson_tree2 " ) ,
minetest.get_decoration_id ( " mcl_biomes:crimson_tree3 " ) ,
minetest.get_decoration_id ( " mcl_biomes:warped_tree1 " ) ,
minetest.get_decoration_id ( " mcl_biomes:warped_tree2 " ) ,
minetest.get_decoration_id ( " mcl_biomes:warped_tree3 " )
}
2022-07-28 19:11:21 +00:00
local deco_ids_trees = {
minetest.get_decoration_id ( " mcl_biomes:mangrove_tree_1 " ) ,
minetest.get_decoration_id ( " mcl_biomes:mangrove_tree_2 " ) ,
minetest.get_decoration_id ( " mcl_biomes:mangrove_tree_3 " ) ,
}
2022-06-18 12:28:05 +00:00
for _ , f in pairs ( deco_ids_fungus ) do
minetest.set_gen_notify ( { decoration = true } , { f } )
end
2022-07-28 19:11:21 +00:00
for _ , f in pairs ( deco_ids_trees ) do
minetest.set_gen_notify ( { decoration = true } , { f } )
end
if deco_id_chorus_plant or deco_ids_fungus or deco_ids_trees then
2021-02-21 23:15:32 +00:00
mcl_mapgen_core.register_generator ( " chorus_grow " , nil , function ( minp , maxp , blockseed )
2019-03-09 20:02:40 +00:00
local gennotify = minetest.get_mapgen_object ( " gennotify " )
2021-05-22 21:04:18 +00:00
local pr = PseudoRandom ( blockseed + 14 )
2022-07-28 19:11:21 +00:00
for _ , f in pairs ( deco_ids_trees ) do
for _ , pos in ipairs ( gennotify [ " decoration# " .. f ] or { } ) do
2022-07-29 10:48:37 +00:00
local nn = minetest.find_nodes_in_area ( vector.offset ( pos , - 8 , - 1 , - 8 ) , vector.offset ( pos , 8 , 0 , 8 ) , { " mcl_mangrove:mangrove_roots " } )
2022-07-28 19:11:21 +00:00
for _ , v in pairs ( nn ) do
2022-07-28 21:05:24 +00:00
local l = pr : next ( 2 , 16 )
2022-07-29 10:48:37 +00:00
local n = minetest.get_node ( vector.offset ( v , 0 , - 1 , 0 ) ) . name
if minetest.get_item_group ( n , " water " ) > 0 then
local wl = " mcl_mangrove:water_logged_roots "
if n : find ( " river " ) then
wl = " mcl_mangrove:river_water_logged_roots "
end
minetest.bulk_set_node ( minetest.find_nodes_in_area ( vector.offset ( v , 0 , 0 , 0 ) , vector.offset ( v , 0 , - l , 0 ) , { " group:water " } ) , { name = wl } )
elseif n == " mcl_mud:mud " then
2022-07-28 21:05:24 +00:00
minetest.bulk_set_node ( minetest.find_nodes_in_area ( vector.offset ( v , 0 , 0 , 0 ) , vector.offset ( v , 0 , - l , 0 ) , { " mcl_mud:mud " } ) , { name = " mcl_mangrove:mangrove_mud_roots " } )
2022-07-29 10:48:37 +00:00
elseif n == " air " then
2022-07-28 21:05:24 +00:00
minetest.bulk_set_node ( minetest.find_nodes_in_area ( vector.offset ( v , 0 , 0 , 0 ) , vector.offset ( v , 0 , - l , 0 ) , { " air " } ) , { name = " mcl_mangrove:mangrove_roots " } )
2022-07-28 19:11:21 +00:00
end
end
end
end
if minp.y > - 26900 then return end
2019-03-09 20:02:40 +00:00
for _ , pos in ipairs ( gennotify [ " decoration# " .. deco_id_chorus_plant ] or { } ) do
2021-05-09 22:47:56 +00:00
local x , y , z = pos.x , pos.y , pos.z
2022-09-11 18:28:24 +00:00
if x < - 10 or x > 10 or z < - 10 or z > 10 then
2021-05-09 22:47:56 +00:00
local realpos = { x = x , y = y + 1 , z = z }
local node = minetest.get_node ( realpos )
if node and node.name == " mcl_end:chorus_flower " then
mcl_end.grow_chorus_plant ( realpos , node , pr )
end
2021-05-09 22:24:38 +00:00
end
2019-03-09 20:02:40 +00:00
end
2022-06-17 21:12:37 +00:00
if minp.y > mcl_vars.mg_nether_max then return end
2022-06-18 12:28:05 +00:00
for _ , f in pairs ( deco_ids_fungus ) do
for _ , pos in ipairs ( gennotify [ " decoration# " .. f ] or { } ) do
minetest.fix_light ( vector.offset ( pos , - 8 , - 8 , - 8 ) , vector.offset ( pos , 8 , 8 , 8 ) )
end
2022-06-17 21:12:37 +00:00
end
2021-05-09 22:47:56 +00:00
end )
2019-03-09 20:02:40 +00:00
end
2017-09-05 20:47:48 +00:00
end