Add 'compatibility' of https://notabug.org/minenux/minetest-mod-nssb for layer map
* add compatibilty backguard for minetest older engines 0.4.15+ to 4.0.X
* also detect loop optimization on newer ones to future reduce of lag
so we can leave the older list of minerals be into a some pile of nodes
* fixed part of https://notabug.org/TenPlus1/nssb/issues/2
a complete fix will need a configuration flag to let some ore on generation
* reason: optimized ore generation by removing iterations and using stratum feature
as note this feature are only from 5.0 as documented and check in
9f6d90aa81
this was a good move by tenplus cos works as a unique plain layer due
creates single undulating ore stratum that is continuous across mapchunk
borders and horizontally spans the world, as a layer..
the ore type its used only on the generation of the space of the 7 layers
that defines the morlendor space, before and after there are indestructible ones
* then: make a loop for but if a 5.0 engine its detected break and
do not loop innecesary, only loop and do scatter ore type for older engine
so if newer one break loop and do stratum ore type generation for layers
* fix and close https://codeberg.org/minenux/minetest-mod-nssb/issues/3
* fix and close https://notabug.org/TenPlus1/nssb/issues/2
main
commit
f3270cdbc3
2
init.lua
2
init.lua
|
@ -2,6 +2,8 @@ nssb = {}
|
|||
|
||||
local path = minetest.get_modpath("nssb")
|
||||
|
||||
nssb.is_50 = minetest.has_feature("object_use_texture_alpha") or nil
|
||||
|
||||
dofile(path .. "/nodes.lua")
|
||||
dofile(path .. "/mapgen.lua")
|
||||
dofile(path .. "/spawn.lua")
|
||||
|
|
93
mapgen.lua
93
mapgen.lua
|
@ -1,7 +1,7 @@
|
|||
local moreores = minetest.get_modpath("moreores")
|
||||
local is_50 = nssb.is_50
|
||||
|
||||
nssb.mymapgenis = tonumber(minetest.settings:get("mymapgenis")) or 7
|
||||
|
||||
if nssb.mymapgenis ~= 6 and nssb.mymapgenis ~= 7 then
|
||||
nssb.mymapgenis = 7
|
||||
end
|
||||
|
@ -15,6 +15,14 @@ local posplace = {x = 0, y = level - 93, z = 0}
|
|||
local posmemory = {x = 0, y = level - 92, z = 0}
|
||||
local postest = {x = 5, y = level - 91, z = 6}
|
||||
|
||||
-- ore type generation
|
||||
local oretype_morlan_layer
|
||||
if is_50 then
|
||||
oretype_morlan_layer = "stratum"
|
||||
else
|
||||
oretype_morlan_layer = "scatter"
|
||||
end
|
||||
|
||||
function nssb_register_buildings(
|
||||
build, -- name of the schematic
|
||||
rand, -- 1/rand is the probability of the spawning of the schematic if the place found is acceptable
|
||||
|
@ -362,11 +370,9 @@ nssb_register_buildings ("blocobiggesthouse", 4, "default:stone", 0, "air", 0,
|
|||
-- This dimension is "divided" in in 7 layer.
|
||||
-- 1st layer is indistructible, made of indistructible morentir
|
||||
|
||||
-- for i = 1, 9 do
|
||||
|
||||
for i = 1, 9 do
|
||||
minetest.register_ore({
|
||||
--ore_type = "scatter",
|
||||
ore_type = "stratum",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = "nssb:indistructible_morentir",
|
||||
wherein = {
|
||||
"default:water_source","default:water_flowing","default:gravel",
|
||||
|
@ -388,15 +394,15 @@ nssb_register_buildings ("blocobiggesthouse", 4, "default:stone", 0, "air", 0,
|
|||
y_min = level - 44,
|
||||
y_max = level - 37
|
||||
})
|
||||
-- end
|
||||
if is_50 then break end
|
||||
end
|
||||
|
||||
--[[
|
||||
if moreores then
|
||||
|
||||
for i = 1, 9 do
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = "nssb:indistructible_morentir",
|
||||
wherein = {
|
||||
"moreores:mineral_tin", "moreores:mineral_silver",
|
||||
|
@ -409,18 +415,16 @@ if moreores then
|
|||
y_max = level - 37
|
||||
})
|
||||
end
|
||||
if is_50 then break end
|
||||
end
|
||||
]]
|
||||
|
||||
-- 2nd layer is "stalagmitic", have bats and morelentir
|
||||
|
||||
local function replace2(old, new)
|
||||
|
||||
-- for i = 1, 9 do
|
||||
|
||||
for i = 1, 9 do
|
||||
minetest.register_ore({
|
||||
-- ore_type = "scatter",
|
||||
ore_type = "stratum",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = new,
|
||||
wherein = old,
|
||||
clust_scarcity = 1,
|
||||
|
@ -429,7 +433,8 @@ local function replace2(old, new)
|
|||
y_min = level - 65,
|
||||
y_max = level - 45
|
||||
})
|
||||
-- end
|
||||
if is_50 then break end
|
||||
end
|
||||
end
|
||||
|
||||
-- optimized list
|
||||
|
@ -493,7 +498,6 @@ minetest.register_ore({
|
|||
})
|
||||
|
||||
for i = 1, 3 do
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "air",
|
||||
|
@ -504,15 +508,14 @@ for i = 1, 3 do
|
|||
y_min = level - 66,
|
||||
y_max = level - 58
|
||||
})
|
||||
if is_50 then break end
|
||||
end
|
||||
|
||||
-- 3rd layer is made by air
|
||||
|
||||
--for i = 1, 32 do
|
||||
|
||||
for i = 1, 32 do
|
||||
minetest.register_ore({
|
||||
--ore_type = "scatter",
|
||||
ore_type = "stratum",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = "air",
|
||||
wherein = {
|
||||
"nssb:ant_dirt", "default:stone", "default:cobble", "default:stonebrick",
|
||||
|
@ -533,15 +536,15 @@ end
|
|||
y_min = level - 93,
|
||||
y_max = level - 66
|
||||
})
|
||||
--end
|
||||
if is_50 then break end
|
||||
end
|
||||
|
||||
--[[
|
||||
if moreores then
|
||||
|
||||
for i = 1, 9 do
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = "air",
|
||||
wherein = {
|
||||
"moreores:mineral_tin", "moreores:mineral_silver",
|
||||
|
@ -553,6 +556,7 @@ if moreores then
|
|||
y_min = level - 93,
|
||||
y_max = level - 66
|
||||
})
|
||||
if is_50 then break end
|
||||
end
|
||||
end
|
||||
]]
|
||||
|
@ -694,11 +698,9 @@ minetest.register_ore({
|
|||
|
||||
local function replace4(old, new)
|
||||
|
||||
-- for i = 1, 9 do
|
||||
|
||||
for i = 1, 9 do
|
||||
minetest.register_ore({
|
||||
--ore_type = "scatter",
|
||||
ore_type = "stratum",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = new,
|
||||
wherein = old,
|
||||
clust_scarcity = 1,
|
||||
|
@ -707,7 +709,8 @@ local function replace4(old, new)
|
|||
y_min = level - 107,
|
||||
y_max = level - 94
|
||||
})
|
||||
-- end
|
||||
if is_50 then break end
|
||||
end
|
||||
end
|
||||
|
||||
-- optimized list
|
||||
|
@ -790,11 +793,9 @@ minetest.register_ore({
|
|||
|
||||
local function replace5(old, new)
|
||||
|
||||
-- for i = 1, 9 do
|
||||
|
||||
for i = 1, 9 do
|
||||
minetest.register_ore({
|
||||
-- ore_type = "scatter",
|
||||
ore_type = "stratum",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = new,
|
||||
wherein = old,
|
||||
clust_scarcity = 1,
|
||||
|
@ -803,7 +804,8 @@ local function replace5(old, new)
|
|||
y_min = level - 156,
|
||||
y_max = level - 108
|
||||
})
|
||||
-- end
|
||||
if is_50 then break end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_ore({
|
||||
|
@ -874,11 +876,10 @@ end
|
|||
|
||||
local function replace6(old, new)
|
||||
|
||||
-- for i = 1, 9 do
|
||||
for i = 1, 9 do
|
||||
|
||||
minetest.register_ore({
|
||||
-- ore_type = "scatter",
|
||||
ore_type = "stratum",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = new,
|
||||
wherein = old,
|
||||
clust_scarcity = 1,
|
||||
|
@ -887,7 +888,8 @@ local function replace6(old, new)
|
|||
y_min = level - 205,
|
||||
y_max = level - 157
|
||||
})
|
||||
-- end
|
||||
if is_50 then break end
|
||||
end
|
||||
end
|
||||
|
||||
-- optimized list
|
||||
|
@ -948,11 +950,10 @@ minetest.register_ore({
|
|||
|
||||
-- 7th layer is indistructible
|
||||
|
||||
-- for i = 1, 9 do
|
||||
for i = 1, 9 do
|
||||
|
||||
minetest.register_ore({
|
||||
-- ore_type = "scatter",
|
||||
ore_type = "stratum",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = "nssb:indistructible_morentir",
|
||||
wherein = {
|
||||
"nssb:ant_dirt", "default:stone", "default:cobble", "default:stonebrick",
|
||||
|
@ -972,7 +973,8 @@ minetest.register_ore({
|
|||
y_min = level - 213,
|
||||
y_max = level - 206
|
||||
})
|
||||
-- end
|
||||
if is_50 then break end
|
||||
end
|
||||
|
||||
--[[
|
||||
if moreores then
|
||||
|
@ -980,7 +982,7 @@ if moreores then
|
|||
for i = 1, 9 do
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = "nssb:indistructible_morentir",
|
||||
wherein = {
|
||||
"moreores:mineral_tin", "moreores:mineral_silver",
|
||||
|
@ -992,15 +994,15 @@ if moreores then
|
|||
y_min = level - 213,
|
||||
y_max = level - 206
|
||||
})
|
||||
if is_50 then break end
|
||||
end
|
||||
end
|
||||
]]
|
||||
|
||||
-- for i = 1, 12 do
|
||||
for i = 1, 12 do
|
||||
|
||||
minetest.register_ore({
|
||||
-- ore_type = "scatter",
|
||||
ore_type = "stratum",
|
||||
ore_type = oretype_morlan_layer,
|
||||
ore = "air",
|
||||
wherein = {
|
||||
"default:water_source", "default:water_flowing", "default:lava_source",
|
||||
|
@ -1012,7 +1014,8 @@ end
|
|||
y_min = level - 207,
|
||||
y_max = level - 45
|
||||
})
|
||||
-- end
|
||||
if is_50 then break end
|
||||
end
|
||||
|
||||
-- Place the buildings in the morlendor
|
||||
|
||||
|
|
Loading…
Reference in New Issue