Rename mod to ns_cavegen
parent
147b8a59c2
commit
baeda1ac7a
24
API.md
24
API.md
|
@ -10,9 +10,9 @@ Underground caves have varying shapes, and the variable
|
||||||
|
|
||||||
For shapes, the following functions are available:
|
For shapes, the following functions are available:
|
||||||
|
|
||||||
- `noordstar_caves.register_shape(shape def)` Define a new cave shape
|
- `ns_cavegen.register_shape(shape def)` Define a new cave shape
|
||||||
- `noordstar_caves.unregister_shape(name)` Remove a defined cave shape
|
- `ns_cavegen.unregister_shape(name)` Remove a defined cave shape
|
||||||
- `noordstar_caves.clear_registered_shapes()` Remove all known cave shapes
|
- `ns_cavegen.clear_registered_shapes()` Remove all known cave shapes
|
||||||
|
|
||||||
Generally, it is recommended to keep the number of cave shapes below 100.
|
Generally, it is recommended to keep the number of cave shapes below 100.
|
||||||
A good number of shapes is 10 for diversity but performance.
|
A good number of shapes is 10 for diversity but performance.
|
||||||
|
@ -21,7 +21,7 @@ The shapes are defined as follows:
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
{
|
{
|
||||||
name = "noordstar_caves:bubbles",
|
name = "ns_cavegen:bubbles",
|
||||||
-- Unique name identifying the shape
|
-- Unique name identifying the shape
|
||||||
-- Namespacing is not required but recommended
|
-- Namespacing is not required but recommended
|
||||||
|
|
||||||
|
@ -105,15 +105,15 @@ caves. The cave biomes are independent of the cave shapes.
|
||||||
|
|
||||||
For shapes, the following functions are available:
|
For shapes, the following functions are available:
|
||||||
|
|
||||||
- `noordstar_caves.register_biome(biome def)` Define a new cave biome
|
- `ns_cavegen.register_biome(biome def)` Define a new cave biome
|
||||||
- `noordstar_caves.unregister_biome(name)` Remove a defined cave biome
|
- `ns_cavegen.unregister_biome(name)` Remove a defined cave biome
|
||||||
- `noordstar_caves.clear_registered_biomes()` Remove all known cave biomes
|
- `ns_cavegen.clear_registered_biomes()` Remove all known cave biomes
|
||||||
|
|
||||||
The biomes are defined as follows:
|
The biomes are defined as follows:
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
{
|
{
|
||||||
name = "noordstar_caves:tundra",
|
name = "ns_cavegen:tundra",
|
||||||
-- Unique name identifying the biome
|
-- Unique name identifying the biome
|
||||||
-- Namespacing is not required but recommended
|
-- Namespacing is not required but recommended
|
||||||
|
|
||||||
|
@ -165,8 +165,8 @@ structures to cave biomes.
|
||||||
|
|
||||||
For decorations, the following functions are defined:
|
For decorations, the following functions are defined:
|
||||||
|
|
||||||
- `noordstar_caves.register_decoration(decoration def)` Define a new cave decoration
|
- `ns_cavegen.register_decoration(decoration def)` Define a new cave decoration
|
||||||
- `noordstar_caves.clear_registered_decorations()` Remove all known cave decorations
|
- `ns_cavegen.clear_registered_decorations()` Remove all known cave decorations
|
||||||
|
|
||||||
The decorations are defined as follows:
|
The decorations are defined as follows:
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ The decorations are defined as follows:
|
||||||
fill_ratio = 0.02,
|
fill_ratio = 0.02,
|
||||||
-- Percentage of surface nodes on which this decoration will spawn
|
-- Percentage of surface nodes on which this decoration will spawn
|
||||||
|
|
||||||
biomes = { "noordstar_caves:tundra", "foo:desert" },
|
biomes = { "ns_cavegen:tundra", "foo:desert" },
|
||||||
-- List of (cave!) biomes that this decoration will spawn in. Occurs in all
|
-- List of (cave!) biomes that this decoration will spawn in. Occurs in all
|
||||||
-- biomes if this is omitted.
|
-- biomes if this is omitted.
|
||||||
|
|
||||||
|
@ -271,7 +271,7 @@ this.
|
||||||
In case you wish to do a few other operations, here's a few other functions
|
In case you wish to do a few other operations, here's a few other functions
|
||||||
that might be helpful to you:
|
that might be helpful to you:
|
||||||
|
|
||||||
- `noordstar_caves.set_world_depth(h)` Set the world's depth to a given number.
|
- `ns_cavegen.set_world_depth(h)` Set the world's depth to a given number.
|
||||||
|
|
||||||
This feature is currently only supported in VoxeLibre. Contributions that help
|
This feature is currently only supported in VoxeLibre. Contributions that help
|
||||||
change the world depth in other games, are very welcome.
|
change the world depth in other games, are very welcome.
|
||||||
|
|
34
init.lua
34
init.lua
|
@ -49,7 +49,7 @@ local internal = {}
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
function internal.cave_vastness(pos)
|
function internal.cave_vastness(pos)
|
||||||
local v = ns_caves.cave_vastness(pos)
|
local v = ns_cavegen.cave_vastness(pos)
|
||||||
|
|
||||||
if not v then
|
if not v then
|
||||||
return 0
|
return 0
|
||||||
|
@ -208,7 +208,7 @@ end
|
||||||
|
|
||||||
-- Get connectivity noise params
|
-- Get connectivity noise params
|
||||||
function internal.connectivity_noise_params()
|
function internal.connectivity_noise_params()
|
||||||
local factor = math.max(1, math.abs(#ns_caves.registered_shapes) ^ 0.5)
|
local factor = math.max(1, math.abs(#ns_cavegen.registered_shapes) ^ 0.5)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
offset = 50,
|
offset = 50,
|
||||||
|
@ -229,7 +229,7 @@ end
|
||||||
-- Get a default cave biome in case no biomes are registered
|
-- Get a default cave biome in case no biomes are registered
|
||||||
function internal.default_biome()
|
function internal.default_biome()
|
||||||
return internal.clean_biome_def(
|
return internal.clean_biome_def(
|
||||||
{ name = "noordstar_caves:default_biome"
|
{ name = "ns_cavegen:default_biome"
|
||||||
, heat_point = OUTLANDISH_POINT
|
, heat_point = OUTLANDISH_POINT
|
||||||
, humidity_point = OUTLANDISH_POINT
|
, humidity_point = OUTLANDISH_POINT
|
||||||
}
|
}
|
||||||
|
@ -239,7 +239,7 @@ end
|
||||||
-- Get a default cave shape in case no shapes are registered
|
-- Get a default cave shape in case no shapes are registered
|
||||||
function internal.default_shape()
|
function internal.default_shape()
|
||||||
return internal.clean_shape_def(
|
return internal.clean_shape_def(
|
||||||
{ name = "noordstar_caves:none"
|
{ name = "ns_cavegen:none"
|
||||||
, connectivity_point = OUTLANDISH_POINT
|
, connectivity_point = OUTLANDISH_POINT
|
||||||
, verticality_point = OUTLANDISH_POINT
|
, verticality_point = OUTLANDISH_POINT
|
||||||
, func = function (pos, v) return 0 end
|
, func = function (pos, v) return 0 end
|
||||||
|
@ -270,7 +270,7 @@ function internal.find_biome_allocations(heat, humidity)
|
||||||
local biome_name
|
local biome_name
|
||||||
|
|
||||||
-- Find the appropriate biome
|
-- Find the appropriate biome
|
||||||
for name, def in pairs(ns_caves.registered_biomes) do
|
for name, def in pairs(ns_cavegen.registered_biomes) do
|
||||||
local def_d = internal.euclidian(
|
local def_d = internal.euclidian(
|
||||||
e, def.heat_point, u, def.humidity_point
|
e, def.heat_point, u, def.humidity_point
|
||||||
)
|
)
|
||||||
|
@ -303,7 +303,7 @@ function internal.find_shape_allocations(connectivity, verticality)
|
||||||
local shape_name
|
local shape_name
|
||||||
|
|
||||||
-- Find the appropriate shape
|
-- Find the appropriate shape
|
||||||
for name, def in pairs(ns_caves.registered_shapes) do
|
for name, def in pairs(ns_cavegen.registered_shapes) do
|
||||||
local def_d = internal.euclidian(
|
local def_d = internal.euclidian(
|
||||||
c, def.connectivity_point, v, def.verticality_point
|
c, def.connectivity_point, v, def.verticality_point
|
||||||
)
|
)
|
||||||
|
@ -337,7 +337,7 @@ function internal.find_shape_values(used_shapes, minp, maxp, va)
|
||||||
if name == nil then
|
if name == nil then
|
||||||
shape = default_shape
|
shape = default_shape
|
||||||
else
|
else
|
||||||
shape = ns_caves.registered_shapes[name]
|
shape = ns_cavegen.registered_shapes[name]
|
||||||
end
|
end
|
||||||
|
|
||||||
if captured_shapes[shape] == nil then
|
if captured_shapes[shape] == nil then
|
||||||
|
@ -544,13 +544,13 @@ end
|
||||||
-- Register a new biome
|
-- Register a new biome
|
||||||
function internal.register_biome(biome)
|
function internal.register_biome(biome)
|
||||||
biome = internal.clean_biome_def(biome)
|
biome = internal.clean_biome_def(biome)
|
||||||
ns_caves.registered_biomes[biome.name] = biome
|
ns_cavegen.registered_biomes[biome.name] = biome
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Register a new decoration
|
-- Register a new decoration
|
||||||
function internal.register_decoration(deco)
|
function internal.register_decoration(deco)
|
||||||
table.insert(
|
table.insert(
|
||||||
ns_caves.registered_decorations,
|
ns_cavegen.registered_decorations,
|
||||||
internal.clean_deco_def(deco)
|
internal.clean_deco_def(deco)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
@ -558,7 +558,7 @@ end
|
||||||
-- Register a new shape
|
-- Register a new shape
|
||||||
function internal.register_shape(shape)
|
function internal.register_shape(shape)
|
||||||
shape = internal.clean_shape_def(shape)
|
shape = internal.clean_shape_def(shape)
|
||||||
ns_caves.registered_shapes[shape.name] = shape
|
ns_cavegen.registered_shapes[shape.name] = shape
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Convert all shape noise into clarifications whether a node is wall or air.
|
-- Convert all shape noise into clarifications whether a node is wall or air.
|
||||||
|
@ -581,7 +581,7 @@ end
|
||||||
|
|
||||||
-- Get verticality noise params
|
-- Get verticality noise params
|
||||||
function internal.verticality_noise_params()
|
function internal.verticality_noise_params()
|
||||||
local factor = math.max(1, math.abs(#ns_caves.registered_shapes) ^ 0.5)
|
local factor = math.max(1, math.abs(#ns_cavegen.registered_shapes) ^ 0.5)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
offset = 50,
|
offset = 50,
|
||||||
|
@ -615,7 +615,7 @@ function internal.write_classified_node(vm_data, va, used_biomes, classified_nod
|
||||||
if biome == default_biome.name then
|
if biome == default_biome.name then
|
||||||
biome_def = default_biome
|
biome_def = default_biome
|
||||||
else
|
else
|
||||||
biome_def = ns_caves.registered_biomes[biome] or default_biome
|
biome_def = ns_cavegen.registered_biomes[biome] or default_biome
|
||||||
end
|
end
|
||||||
|
|
||||||
if biome_def[biome_key] == nil then
|
if biome_def[biome_key] == nil then
|
||||||
|
@ -644,7 +644,7 @@ function internal.write_classified_node(vm_data, va, used_biomes, classified_nod
|
||||||
end
|
end
|
||||||
|
|
||||||
function internal.write_schematic_ceiling_decoration(vmanip, used_biomes, classified_nodes, sva, claimed_spots)
|
function internal.write_schematic_ceiling_decoration(vmanip, used_biomes, classified_nodes, sva, claimed_spots)
|
||||||
for _, def in pairs(ns_caves.registered_decorations) do
|
for _, def in pairs(ns_cavegen.registered_decorations) do
|
||||||
if def.deco_type == "schematic" and def.place_on == "ceiling" then
|
if def.deco_type == "schematic" and def.place_on == "ceiling" then
|
||||||
-- Place the decoration, if they're in the appropriate biome
|
-- Place the decoration, if they're in the appropriate biome
|
||||||
for _, i in ipairs(classified_nodes) do
|
for _, i in ipairs(classified_nodes) do
|
||||||
|
@ -699,7 +699,7 @@ function internal.write_schematic_ceiling_decoration(vmanip, used_biomes, classi
|
||||||
end
|
end
|
||||||
|
|
||||||
function internal.write_schematic_floor_decoration(vmanip, used_biomes, classified_nodes, sva, claimed_spots)
|
function internal.write_schematic_floor_decoration(vmanip, used_biomes, classified_nodes, sva, claimed_spots)
|
||||||
for _, def in pairs(ns_caves.registered_decorations) do
|
for _, def in pairs(ns_cavegen.registered_decorations) do
|
||||||
if def.deco_type == "schematic" and def.place_on == "floor" then
|
if def.deco_type == "schematic" and def.place_on == "floor" then
|
||||||
-- Place the decoration, if they're in the appropriate biome
|
-- Place the decoration, if they're in the appropriate biome
|
||||||
for _, i in ipairs(classified_nodes) do
|
for _, i in ipairs(classified_nodes) do
|
||||||
|
@ -741,7 +741,7 @@ end
|
||||||
function internal.write_simple_ceiling_decorations(vm_data, va, used_biomes, classified_nodes, sva)
|
function internal.write_simple_ceiling_decorations(vm_data, va, used_biomes, classified_nodes, sva)
|
||||||
local claimed_spots = {}
|
local claimed_spots = {}
|
||||||
|
|
||||||
for _, def in pairs(ns_caves.registered_decorations) do
|
for _, def in pairs(ns_cavegen.registered_decorations) do
|
||||||
if def.deco_type == "simple" and def.place_on == "ceiling" then
|
if def.deco_type == "simple" and def.place_on == "ceiling" then
|
||||||
-- Place the decoration, if they're in the appropriate biome.
|
-- Place the decoration, if they're in the appropriate biome.
|
||||||
for _, i in ipairs(classified_nodes) do
|
for _, i in ipairs(classified_nodes) do
|
||||||
|
@ -795,7 +795,7 @@ end
|
||||||
function internal.write_simple_floor_decorations(vm_data, va, used_biomes, classified_nodes, sva)
|
function internal.write_simple_floor_decorations(vm_data, va, used_biomes, classified_nodes, sva)
|
||||||
local claimed_spots = {}
|
local claimed_spots = {}
|
||||||
|
|
||||||
for _, def in pairs(ns_caves.registered_decorations) do
|
for _, def in pairs(ns_cavegen.registered_decorations) do
|
||||||
if def.deco_type == "simple" and def.place_on == "floor" then
|
if def.deco_type == "simple" and def.place_on == "floor" then
|
||||||
-- Place the decoration, if they're in the appropriate biome.
|
-- Place the decoration, if they're in the appropriate biome.
|
||||||
for _, i in ipairs(classified_nodes) do
|
for _, i in ipairs(classified_nodes) do
|
||||||
|
@ -866,7 +866,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||||
internal.mapgen(minp, maxp, blockseed, vm, va)
|
internal.mapgen(minp, maxp, blockseed, vm, va)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
ns_caves = {
|
ns_cavegen = {
|
||||||
cave_vastness = function(pos)
|
cave_vastness = function(pos)
|
||||||
if pos.y > 0 or pos.y < WORLD_DEPTH then
|
if pos.y > 0 or pos.y < WORLD_DEPTH then
|
||||||
return 0
|
return 0
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
ns_caves.register_shape({
|
ns_cavegen.register_shape({
|
||||||
name = "ns_caves:bubbles",
|
name = "ns_cavegen:bubbles",
|
||||||
noise_params = {
|
noise_params = {
|
||||||
offset = -0.2,
|
offset = -0.2,
|
||||||
scale = 0.5,
|
scale = 0.5,
|
||||||
|
@ -16,8 +16,8 @@ ns_caves.register_shape({
|
||||||
verticality_point = 10,
|
verticality_point = 10,
|
||||||
})
|
})
|
||||||
|
|
||||||
ns_caves.register_shape({
|
ns_cavegen.register_shape({
|
||||||
name = "ns_caves:cliffs",
|
name = "ns_cavegen:cliffs",
|
||||||
noise_params = {
|
noise_params = {
|
||||||
offset = -0.4,
|
offset = -0.4,
|
||||||
scale = 0.9,
|
scale = 0.9,
|
||||||
|
@ -34,8 +34,8 @@ ns_caves.register_shape({
|
||||||
verticality_point = 80,
|
verticality_point = 80,
|
||||||
})
|
})
|
||||||
|
|
||||||
ns_caves.register_biome({
|
ns_cavegen.register_biome({
|
||||||
name = "ns_caves:snow",
|
name = "ns_cavegen:snow",
|
||||||
node_dust = "mcl_core:snow",
|
node_dust = "mcl_core:snow",
|
||||||
node_floor = "mcl_crimson:shroomlight",
|
node_floor = "mcl_crimson:shroomlight",
|
||||||
node_wall = "mcl_core:cobble",
|
node_wall = "mcl_core:cobble",
|
||||||
|
@ -45,8 +45,8 @@ ns_caves.register_biome({
|
||||||
humidity_point = 50,
|
humidity_point = 50,
|
||||||
})
|
})
|
||||||
|
|
||||||
ns_caves.register_biome({
|
ns_cavegen.register_biome({
|
||||||
name = "ns_caves:drip",
|
name = "ns_cavegen:drip",
|
||||||
node_floor = "dripstone:dry_dripstone_block",
|
node_floor = "dripstone:dry_dripstone_block",
|
||||||
node_wall = "dripstone:dry_dripstone_block",
|
node_wall = "dripstone:dry_dripstone_block",
|
||||||
node_roof = "dripstone:dry_dripstone_block",
|
node_roof = "dripstone:dry_dripstone_block",
|
||||||
|
@ -54,17 +54,17 @@ ns_caves.register_biome({
|
||||||
humidity_point = 0,
|
humidity_point = 0,
|
||||||
})
|
})
|
||||||
|
|
||||||
ns_caves.register_decoration({
|
ns_cavegen.register_decoration({
|
||||||
deco_type = "simple",
|
deco_type = "simple",
|
||||||
place_on = "ceiling",
|
place_on = "ceiling",
|
||||||
fill_ratio = 0.25,
|
fill_ratio = 0.25,
|
||||||
biomes = { "ns_caves:snow" },
|
biomes = { "ns_cavegen:snow" },
|
||||||
decoration = "mcl_core:water_source",
|
decoration = "mcl_core:water_source",
|
||||||
height = 1,
|
height = 1,
|
||||||
place_offset_y = 2,
|
place_offset_y = 2,
|
||||||
})
|
})
|
||||||
|
|
||||||
ns_caves.register_decoration({
|
ns_cavegen.register_decoration({
|
||||||
deco_type = "simple",
|
deco_type = "simple",
|
||||||
place_on = "ceiling",
|
place_on = "ceiling",
|
||||||
fill_ratio = 0.025,
|
fill_ratio = 0.025,
|
||||||
|
@ -73,7 +73,7 @@ ns_caves.register_decoration({
|
||||||
height_max = 7,
|
height_max = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
ns_caves.register_decoration({
|
ns_cavegen.register_decoration({
|
||||||
deco_type = "simple",
|
deco_type = "simple",
|
||||||
place_on = "floor",
|
place_on = "floor",
|
||||||
fill_ratio = 0.025,
|
fill_ratio = 0.025,
|
||||||
|
|
6
mod.conf
6
mod.conf
|
@ -1,6 +1,6 @@
|
||||||
name=ns_caves
|
name=ns_cavegen
|
||||||
description=A mod that adds more depths and caves to VoxeLibre or Mineclonia
|
description=A custom cave generator engine
|
||||||
author=Noordstar
|
author=Noordstar
|
||||||
title=Noordstar Caves
|
title=Cave Generator
|
||||||
depends=dripstone,mcl_init
|
depends=dripstone,mcl_init
|
||||||
optional_depends=mcl_init,mcl_worlds
|
optional_depends=mcl_init,mcl_worlds
|
Loading…
Reference in New Issue