optimize mob spawning for v6 or other mapgens

This commit is contained in:
tenplus1 2023-06-18 08:40:27 +01:00
parent 0f227972b8
commit 00e1bc91e6

767
spawn.lua
View File

@ -1,7 +1,7 @@
--Before starting a new game write 6 or 7 in order to regulate the spawns
-- (7 works also with flat and fractal).
local mymapgenis = nssm.mymapgenis
local v6 = nssm.mymapgenis == 6 -- true if set to 6
local mm = nssm.multimobs
-- Spawning parameters
@ -10,9 +10,9 @@ if mm ~= 0 then
-- V6 MAPGEN
if mymapgenis == 6 then
if v6 then
-- ANTS
-- ANTS (why only V6 mapgen ?)
mobs:spawn({
name = "nssm:ant_queen",
@ -37,368 +37,9 @@ if mm ~= 0 then
active_object_count = 5
})
-- SPIDERS
mobs:spawn({
name = "nssm:black_widow",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
interval = 20,
chance = (1200000 / mm),
active_object_count = 2
})
mobs:spawn({
name = "nssm:daddy_long_legs",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
interval = 10,
chance = (1200000 / mm),
active_object_count = 2
})
mobs:spawn({
name = "nssm:tarantula",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
max_light = 14,
interval = 120,
chance = (5000000 / mm)
})
mobs:spawn({
name = "nssm:ulboros",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
interval = 20,
chance = (1200000 / mm)
})
-- DUCKS
mobs:spawn({
name = "nssm:duck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
min_light = 10,
max_height = 20,
interval = 20,
chance = (350000 / mm)
})
mobs:spawn({
name = "nssm:duckking",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
min_light = 10,
max_height = 20,
interval = 300,
chance = (5000000 / mm)
})
mobs:spawn({
name = "nssm:enderduck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
max_light = 10,
max_height = 20,
interval = 45,
chance = (900000 / mm)
})
mobs:spawn({
name = "nssm:flying_duck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:leaves"},
min_light = 10,
min_height = 1,
max_height = 25,
interval = 120,
chance = (24000000 / mm)
})
mobs:spawn({
name = "nssm:flying_duck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
min_light = 10,
min_height = 1,
max_height = 25,
interval = 120,
chance = (6000000 / mm)
})
mobs:spawn({
name = "nssm:spiderduck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
min_light = 10,
max_height = 20,
interval = 45,
chance = (850000 / mm)
})
mobs:spawn({
name = "nssm:swimming_duck",
nodes = {"default:water_source"},
neighbors = {"default:water_source"},
max_height = 20,
interval = 60,
chance = (45000000 / mm)
})
-- MOUNTAINS
mobs:spawn({
name = "nssm:echidna",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
min_height = 22,
interval = 200,
chance = (100000000 / mm)
})
mobs:spawn({
name = "nssm:manticore",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
min_height = 20,
min_light = 10,
interval = 60,
chance = (12000000 / mm)
})
mobs:spawn({
name = "nssm:werewolf",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
max_light = 10,
min_height = 20,
interval = 60,
chance = (12000000 / mm)
})
-- ICE
mobs:spawn({
name = "nssm:icelamander",
nodes = {"default:snowblock", "default:ice"},
neighbors = {"default:snowblock", "default:ice"},
interval = 120,
chance = (25000000 / mm)
})
mobs:spawn({
name = "nssm:icesnake",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
chance = (6000000 / mm)
})
mobs:spawn({
name = "nssm:white_werewolf",
nodes = {"default:dirt_with_snow","default:snowblock"},
min_height = 20,
interval = 60,
chance = (9000000 / mm)
})
mobs:spawn({
name = "nssm:snow_biter",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
chance = (6000000 / mm)
})
-- FOREST
mobs:spawn({
name = "nssm:larva",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:tree","default:aspen_tree"},
max_height = 140,
interval = 40,
chance = (200000 / mm)
})
mobs:spawn({
name = "nssm:masticone",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:tree","default:aspen_tree"},
max_height = 140,
interval = 120,
chance = (5000000 / mm),
active_object_count = 2
})
-- PINE FOREST
mobs:spawn({
name = "nssm:pumpboom_small",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
chance = (600000 / mm)
})
mobs:spawn({
name = "nssm:pumpboom_medium",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
chance = (800000 / mm)
})
mobs:spawn({
name = "nssm:pumpboom_large",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
chance = (1000000 / mm)
})
mobs:spawn({
name = "nssm:pumpking",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_needles", "default:pine_tree"},
interval = 120,
chance = (8000000 / mm)
})
else -- ALL OTHER MAPGENS
-- SPIDERS
mobs:spawn({
name = "nssm:black_widow",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
chance = (4400000 / mm),
active_object_count = 2
})
mobs:spawn({
name = "nssm:daddy_long_legs",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
interval = 10,
chance = (4400000 / mm),
active_object_count = 2
})
mobs:spawn({
name = "nssm:tarantula",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
max_light = 14,
interval = 120,
chance = (50000000 / mm)
})
mobs:spawn({
name = "nssm:ulboros",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
chance = (4400000 / mm)
})
-- DUCKS
mobs:spawn({
name = "nssm:duck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
min_light = 10,
max_height = 40,
interval = 50,
chance = (1500000 / mm)
})
mobs:spawn({
name = "nssm:duckking",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
min_light = 10,
max_height = 40,
interval = 400,
chance = (120000000 / mm)
})
mobs:spawn({
name = "nssm:enderduck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
max_light = 10,
max_height = 40,
interval = 120,
chance = (5000000 / mm)
})
mobs:spawn({
name = "nssm:flying_duck",
nodes = {"air"},
neighbors = {"group:leaves"},
min_light = 10,
min_height = 1,
max_height = 40,
interval = 120,
chance = (8000000 / mm)
})
mobs:spawn({
name = "nssm:flying_duck",
nodes = {"air"},
neighbors = {"group:flora"},
min_light = 10,
min_height = 1,
max_height = 40,
interval = 120,
chance = (25000000 / mm)
})
mobs:spawn({
name = "nssm:spiderduck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
max_light = 10,
max_height = 20,
interval = 120,
chance = (5000000 / mm)
})
mobs:spawn({
name = "nssm:swimming_duck",
nodes = {"default:water_source"},
neighbors = {"default:water_source"},
max_height = 40,
interval = 60,
chance = (45000000 / mm)
})
-- SWIMMING DUCK (river water only)
mobs:spawn({
name = "nssm:swimming_duck",
@ -409,157 +50,6 @@ if mm ~= 0 then
chance = (3000000 / mm)
})
-- MOUNTAINS
mobs:spawn({
name = "nssm:echidna",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
min_height = 50,
interval = 200,
chance = (100000000 / mm)
})
mobs:spawn({
name = "nssm:manticore",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
min_height = 50,
interval = 60,
chance = (13000000 / mm)
})
mobs:spawn({
name = "nssm:werewolf",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
max_light = 10,
min_height = 40,
interval = 60,
chance = (13000000 / mm)
})
-- ICE
mobs:spawn({
name = "nssm:icelamander",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
interval = 180,
chance = (120000000 / mm)
})
mobs:spawn({
name = "nssm:icesnake",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
interval = 40,
chance = (20000000 / mm)
})
mobs:spawn({
name = "nssm:white_werewolf",
nodes = {"default:dirt_with_snow","default:snowblock"},
interval = 40,
chance = (22000000 / mm)
})
mobs:spawn({
name = "nssm:snow_biter",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
chance = (20000000 / mm)
})
-- FOREST
mobs:spawn({
name = "nssm:larva",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:tree","default:aspen_tree"},
max_height = 140,
interval = 40,
chance = (800000 / mm)
})
mobs:spawn({
name = "nssm:masticone",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:tree","default:aspen_tree"},
max_height = 140,
interval = 180,
chance = (6000000 / mm),
active_object_count = 2
})
-- PINE FOREST
mobs:spawn({
name = "nssm:larva",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:tree","default:aspen_tree"},
max_height = 140,
interval = 40,
chance = (200000 / mm)
})
mobs:spawn({
name = "nssm:masticone",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:tree","default:aspen_tree"},
max_height = 140,
interval = 120,
chance = (5000000 / mm),
active_object_count = 2
})
-- PINE FOREST
mobs:spawn({
name = "nssm:pumpboom_small",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
interval = 80,
chance = (1400000 / mm)
})
mobs:spawn({
name = "nssm:pumpboom_medium",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
interval = 80,
chance = (1600000 / mm)
})
mobs:spawn({
name = "nssm:pumpboom_large",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
interval = 80,
chance = (1800000 / mm)
})
mobs:spawn({
name = "nssm:pumpking",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_needles", "default:pine_tree"},
max_light = 12,
interval = 120,
chance = (8000000 / mm)
})
-- SAVANNA
mobs:spawn({
@ -586,6 +76,255 @@ if mm ~= 0 then
})
end
-- FOREST
mobs:spawn({
name = "nssm:larva",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:tree", "default:aspen_tree"},
max_height = 140,
interval = 40,
chance = v6 and (200000 / mm) or (800000 / mm)
})
mobs:spawn({
name = "nssm:masticone",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:tree", "default:aspen_tree"},
max_height = 140,
interval = v6 and 120 or 180,
chance = v6 and (5000000 / mm) or (6000000 / mm),
active_object_count = 2
})
-- PINE FOREST
mobs:spawn({
name = "nssm:pumpboom_small",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
interval = v6 and 30 or 80,
chance = v6 and (600000 / mm) or (1400000 / mm)
})
mobs:spawn({
name = "nssm:pumpboom_medium",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
interval = v6 and 30 or 80,
chance = v6 and (800000 / mm) or (1600000 / mm)
})
mobs:spawn({
name = "nssm:pumpboom_large",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
interval = v6 and 30 or 80,
chance = v6 and (1000000 / mm) or (1800000 / mm)
})
mobs:spawn({
name = "nssm:pumpking",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_needles", "default:pine_tree"},
max_light = v6 and 15 or 12,
interval = 120,
chance = (8000000 / mm)
})
-- ICE
mobs:spawn({
name = "nssm:icelamander",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
interval = v6 and 120 or 180,
chance = v6 and (25000000 / mm) or (120000000 / mm)
})
mobs:spawn({
name = "nssm:icesnake",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
interval = v6 and 30 or 40,
chance = v6 and (6000000 / mm) or (20000000 / mm)
})
mobs:spawn({
name = "nssm:white_werewolf",
nodes = {"default:dirt_with_snow","default:snowblock"},
min_height = v6 and 20 or 31000,
interval = v6 and 60 or 40,
chance = v6 and (9000000 / mm) or (22000000 / mm)
})
mobs:spawn({
name = "nssm:snow_biter",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
chance = v6 and (6000000 / mm) or (20000000 / mm)
})
-- MOUNTAINS
mobs:spawn({
name = "nssm:echidna",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
min_height = v6 and 22 or 50,
interval = 200,
chance = (100000000 / mm)
})
mobs:spawn({
name = "nssm:manticore",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
min_height = v6 and 20 or 50,
interval = 60,
chance = v6 and (12000000 / mm) or (13000000 / mm)
})
mobs:spawn({
name = "nssm:werewolf",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
max_light = 10,
min_height = v6 and 20 or 40,
interval = 60,
chance = v6 and (12000000 / mm) or (13000000 / mm)
})
-- DUCKS
mobs:spawn({
name = "nssm:duck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
min_light = 10,
max_height = 40,
interval = v6 and 20 or 50,
chance = v6 and (350000 / mm) or (1500000 / mm)
})
mobs:spawn({
name = "nssm:duckking",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
min_light = 10,
max_height = v6 and 20 or 40,
interval = v6 and 300 or 400,
chance = v6 and (5000000 / mm) or (120000000 / mm)
})
mobs:spawn({
name = "nssm:enderduck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
max_light = 10,
max_height = v6 and 20 or 40,
interval = v6 and 45 or 120,
chance = v6 and (900000 / mm) or (5000000 / mm)
})
mobs:spawn({
name = "nssm:flying_duck",
nodes = v6 and {"default:dirt_with_grass"} or {"air"},
neighbors = {"group:leaves"},
min_light = 10,
min_height = 1,
max_height = v6 and 25 or 40,
interval = 120,
chance = v6 and (24000000 / mm) or (8000000 / mm)
})
mobs:spawn({
name = "nssm:flying_duck",
nodes = v6 and {"default:dirt_with_grass"} or {"air"},
neighbors = {"group:flora"},
min_light = 10,
min_height = 1,
max_height = v6 and 25 or 40,
interval = 120,
chance = v6 and (6000000 / mm) or (25000000 / mm)
})
mobs:spawn({
name = "nssm:spiderduck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
max_light = 10,
max_height = 20,
interval = v6 and 45 or 120,
chance = v6 and (850000 / mm) or (5000000 / mm)
})
mobs:spawn({
name = "nssm:swimming_duck",
nodes = {"default:water_source"},
neighbors = {"default:water_source"},
max_height = v6 and 20 or 40,
interval = 60,
chance = (45000000 / mm)
})
-- SPIDERS
mobs:spawn({
name = "nssm:black_widow",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
interval = v6 and 20 or 30,
chance = v6 and (1200000 / mm) or (4400000 / mm),
active_object_count = 2
})
mobs:spawn({
name = "nssm:daddy_long_legs",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
interval = 10,
chance = v6 and (1200000 / mm) or (4400000 / mm),
active_object_count = 2
})
mobs:spawn({
name = "nssm:tarantula",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
max_light = 14,
interval = 120,
chance = v6 and (5000000 / mm) or (50000000 / mm)
})
mobs:spawn({
name = "nssm:ulboros",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
interval = v6 and 20 or 30,
chance = v6 and (1200000 / mm) or (4400000 / mm)
})
-- CAVES
mobs:spawn({