360 lines
7.8 KiB
Lua
Executable File
360 lines
7.8 KiB
Lua
Executable File
-- mods/australia/biome_tasman_sea.lua
|
|
|
|
minetest.register_biome({
|
|
name = "tasman_sea",
|
|
--node_dust = "",
|
|
node_top = "default:sand",
|
|
depth_top = 1,
|
|
node_filler = "default:sand",
|
|
depth_filler = 2,
|
|
--node_stone = "",
|
|
--node_water_top = "",
|
|
--depth_water_top = ,
|
|
--node_water = "",
|
|
--node_river_water = "",
|
|
y_min = -64,
|
|
y_max = 3,
|
|
heat_point = 20,
|
|
humidity_point = 50,
|
|
})
|
|
|
|
|
|
|
|
--
|
|
-- Register ores
|
|
--
|
|
|
|
-- All mapgens except singlenode
|
|
-- Blob ore first to avoid other ores inside blobs
|
|
|
|
minetest.register_ore({
|
|
ore_type = "scatter",
|
|
ore = "australia:stone_kelp_brown",
|
|
wherein = "default:sand",
|
|
clust_scarcity = 9*9*9,
|
|
clust_num_ores = 25,
|
|
clust_size = 6,
|
|
biomes = {"tasman_sea"},
|
|
y_min = -10,
|
|
y_max = -3,
|
|
})
|
|
|
|
minetest.register_ore({
|
|
ore_type = "scatter",
|
|
ore = "australia:stone_kelp_giant_brown",
|
|
wherein = "default:sand",
|
|
clust_scarcity = 10*10*10,
|
|
clust_num_ores = 24,
|
|
clust_size = 8,
|
|
biomes = {"tasman_sea"},
|
|
y_min = -64,
|
|
y_max = -8,
|
|
})
|
|
|
|
minetest.register_ore({
|
|
ore_type = "scatter",
|
|
ore = "australia:woodship",
|
|
wherein = "default:sand",
|
|
clust_scarcity = 60*60*60,
|
|
clust_num_ores = 1,
|
|
clust_size = 12,
|
|
biomes = {"tasman_sea"},
|
|
y_min = -64,
|
|
y_max = -6,
|
|
})
|
|
|
|
|
|
|
|
--
|
|
-- Decorations
|
|
--
|
|
|
|
local function register_grass_decoration(offset, scale, length)
|
|
minetest.register_decoration({
|
|
deco_type = "simple",
|
|
place_on = {"default:sand"},
|
|
sidelen = 16,
|
|
noise_params = {
|
|
offset = offset,
|
|
scale = scale,
|
|
spread = {x = 200, y = 200, z = 200},
|
|
seed = 329,
|
|
octaves = 3,
|
|
persist = 0.6
|
|
},
|
|
biomes = {"tasman_sea"},
|
|
y_min = 3,
|
|
y_max = 3,
|
|
decoration = "default:grass_"..length,
|
|
})
|
|
end
|
|
|
|
local function register_dry_grass_decoration(offset, scale, length)
|
|
minetest.register_decoration({
|
|
deco_type = "simple",
|
|
place_on = {"default:sand"},
|
|
sidelen = 16,
|
|
noise_params = {
|
|
offset = offset,
|
|
scale = scale,
|
|
spread = {x = 200, y = 200, z = 200},
|
|
seed = 329,
|
|
octaves = 3,
|
|
persist = 0.6
|
|
},
|
|
biomes = {"tasman_sea"},
|
|
y_min = 3,
|
|
y_max = 3,
|
|
decoration = "default:dry_grass_"..length,
|
|
})
|
|
end
|
|
|
|
-- Grasses
|
|
register_grass_decoration(0.015, 0.045, 2)
|
|
register_grass_decoration(0.03, 0.03, 1)
|
|
|
|
-- Dry grasses
|
|
register_dry_grass_decoration(0.01, 0.05, 5)
|
|
register_dry_grass_decoration(0.03, 0.03, 4)
|
|
register_dry_grass_decoration(0.05, 0.01, 3)
|
|
|
|
|
|
|
|
--
|
|
-- ABM'S
|
|
--
|
|
|
|
minetest.register_abm({
|
|
nodenames = {"australia:stone_kelp_brown"},
|
|
interval = 15,
|
|
chance = 5,
|
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
|
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
|
if (minetest.get_node(yp).name == "default:water_source" or
|
|
minetest.get_node(yp).name == "australia:water_source") then
|
|
pos.y = pos.y + 1
|
|
minetest.add_node(pos, {name = "australia:kelp_brown"}) else
|
|
return
|
|
end
|
|
end
|
|
})
|
|
|
|
minetest.register_abm({
|
|
nodenames = {"australia:stone_kelp_giant_brown"},
|
|
interval = 12,
|
|
chance = 10,
|
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
|
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
|
if (minetest.get_node(yp).name == "default:water_source" or
|
|
minetest.get_node(yp).name == "australia:water_source") then
|
|
pos.y = pos.y + 1
|
|
minetest.add_node(pos, {name = "australia:kelp_giant_brown"}) else
|
|
return
|
|
end
|
|
end
|
|
})
|
|
|
|
minetest.register_abm({
|
|
nodenames = {"australia:kelp_giant_brown"},
|
|
interval = 6,
|
|
chance = 3,
|
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
|
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
|
local yyp = {x = pos.x, y = pos.y + 2, z = pos.z}
|
|
local yyyp = {x = pos.x, y = pos.y + 3, z = pos.z}
|
|
if minetest.get_node(pos).name == "australia:kelp_giant_brown" and
|
|
(minetest.get_node(yp).name == "default:water_source" or
|
|
minetest.get_node(yp).name == "australia:water_source") then
|
|
if (minetest.get_node(yyp).name == "default:water_source" or
|
|
minetest.get_node(yyp).name == "australia:water_source") then
|
|
if (minetest.get_node(yyyp).name == "default:water_source" or
|
|
minetest.get_node(yyyp).name == "australia:water_source") then
|
|
minetest.add_node(pos, {name = "australia:kelp_giant_brown_middle"})
|
|
pos.y = pos.y + 1
|
|
minetest.add_node(pos, {name = "australia:kelp_giant_brown"})
|
|
else
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end
|
|
})
|
|
|
|
minetest.register_abm({
|
|
nodenames = {"australia:woodship"},
|
|
interval = 1,
|
|
chance = 1,
|
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
|
local yp = {x = pos.x, y = pos.y + 3, z = pos.z}
|
|
if minetest.get_node(pos).name == "australia:woodship" and
|
|
(minetest.get_node(yp).name == "default:water_source" or
|
|
minetest.get_node(yp).name == "australia:water_source") then
|
|
minetest.add_node(pos, {name = "default:sand"})
|
|
|
|
pos.y = pos.y + 1
|
|
pos.x = pos.x - 6
|
|
|
|
for a = 1, 11 do
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
end
|
|
|
|
pos.z = pos.z + 1
|
|
pos.x = pos.x - 10
|
|
|
|
for a = 1, 9 do
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
end
|
|
|
|
pos.z = pos.z - 2
|
|
pos.x = pos.x - 9
|
|
|
|
for a = 1, 9 do
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
end
|
|
|
|
|
|
pos.y = pos.y + 1
|
|
pos.x = pos.x - 8
|
|
pos.z = pos.z - 1
|
|
|
|
for a = 1, 7 do
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
end
|
|
|
|
pos.z = pos.z + 4
|
|
pos.x = pos.x - 7
|
|
|
|
for a = 1, 7 do
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
end
|
|
|
|
pos.z = pos.z - 1
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.z = pos.z - 1
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
|
|
pos.z = pos.z - 1
|
|
pos.x = pos.x - 2
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
|
|
pos.z = pos.z + 2
|
|
pos.x = pos.x - 8
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
|
|
pos.z = pos.z - 1
|
|
pos.x = pos.x - 1
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
|
|
pos.x = pos.x - 1
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
|
|
pos.z = pos.z - 1
|
|
pos.x = pos.x + 2
|
|
minetest.add_node(pos, {name = "default:tree"})
|
|
|
|
|
|
pos.y = pos.y + 1
|
|
pos.z = pos.z - 1
|
|
|
|
for a = 1, 7 do
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
end
|
|
|
|
pos.z = pos.z + 4
|
|
pos.x = pos.x - 7
|
|
|
|
for a = 1, 7 do
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
end
|
|
|
|
pos.z = pos.z - 1
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.z = pos.z - 1
|
|
pos.x = pos.x + 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.z = pos.z - 1
|
|
pos.x = pos.x - 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.z = pos.z + 2
|
|
pos.x = pos.x - 8
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.z = pos.z - 1
|
|
pos.x = pos.x - 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
for a = 1, 3 do
|
|
pos.x = pos.x - 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
end
|
|
|
|
pos.z = pos.z - 1
|
|
pos.x = pos.x + 4
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.z = pos.z + 1
|
|
pos.x = pos.x + 3
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.y = pos.y + 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.y = pos.y - 2
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.y = pos.y + 3
|
|
pos.z = pos.z - 4
|
|
|
|
for a = 1, 7 do
|
|
pos.z = pos.z + 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
end
|
|
|
|
pos.z = pos.z - 3
|
|
|
|
for a = 1, 2 do
|
|
pos.y = pos.y + 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
end
|
|
|
|
pos.y = pos.y + 1
|
|
pos.z = pos.z - 3
|
|
|
|
for a = 1, 5 do
|
|
pos.z = pos.z + 1
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
end
|
|
|
|
pos.y = pos.y + 1
|
|
pos.z = pos.z - 2
|
|
minetest.add_node(pos, {name = "default:wood"})
|
|
|
|
pos.y = pos.y - 7
|
|
pos.z = pos.z + 1
|
|
pos.x = pos.x - 2
|
|
minetest.add_node(pos, {name = "australia:woodshipchest"})
|
|
|
|
else
|
|
return
|
|
end
|
|
end
|
|
})
|
|
|