1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-01 17:38:41 +00:00

Rename perlin noise to value noise (#15858)

This commit is contained in:
Erich Schubert 2025-04-10 14:39:40 +02:00 committed by GitHub
parent 372e37faf2
commit 78293404c7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 339 additions and 309 deletions

View file

@ -1023,9 +1023,9 @@ int ModApiEnv::l_find_nodes_in_area_under_air(lua_State *L)
return findNodesInAreaUnderAir(L, minp, maxp, filter, getNode);
}
// get_perlin(seeddiff, octaves, persistence, scale)
// returns world-specific PerlinNoise
int ModApiEnv::l_get_perlin(lua_State *L)
// get_value_noise(seeddiff, octaves, persistence, scale)
// returns world-specific ValueNoise
int ModApiEnv::l_get_value_noise(lua_State *L)
{
GET_ENV_PTR_NO_MAP_LOCK;
@ -1042,16 +1042,16 @@ int ModApiEnv::l_get_perlin(lua_State *L)
params.seed += (int)env->getServerMap().getSeed();
LuaPerlinNoise *n = new LuaPerlinNoise(&params);
LuaValueNoise *n = new LuaValueNoise(&params);
*(void **)(lua_newuserdata(L, sizeof(void *))) = n;
luaL_getmetatable(L, "PerlinNoise");
luaL_getmetatable(L, "ValueNoise");
lua_setmetatable(L, -2);
return 1;
}
// get_perlin_map(noiseparams, size)
// returns world-specific PerlinNoiseMap
int ModApiEnv::l_get_perlin_map(lua_State *L)
// get_value_noise_map(noiseparams, size)
// returns world-specific ValueNoiseMap
int ModApiEnv::l_get_value_noise_map(lua_State *L)
{
GET_ENV_PTR_NO_MAP_LOCK;
@ -1061,9 +1061,9 @@ int ModApiEnv::l_get_perlin_map(lua_State *L)
v3s16 size = read_v3s16(L, 2);
s32 seed = (s32)(env->getServerMap().getSeed());
LuaPerlinNoiseMap *n = new LuaPerlinNoiseMap(&np, seed, size);
LuaValueNoiseMap *n = new LuaValueNoiseMap(&np, seed, size);
*(void **)(lua_newuserdata(L, sizeof(void *))) = n;
luaL_getmetatable(L, "PerlinNoiseMap");
luaL_getmetatable(L, "ValueNoiseMap");
lua_setmetatable(L, -2);
return 1;
}
@ -1415,8 +1415,8 @@ void ModApiEnv::Initialize(lua_State *L, int top)
API_FCT(load_area);
API_FCT(emerge_area);
API_FCT(delete_area);
API_FCT(get_perlin);
API_FCT(get_perlin_map);
API_FCT(get_value_noise);
API_FCT(get_value_noise_map);
API_FCT(get_voxel_manip);
API_FCT(clear_objects);
API_FCT(spawn_tree);

View file

@ -179,13 +179,13 @@ private:
// delete_area(p1, p2) -> true/false
static int l_delete_area(lua_State *L);
// get_perlin(seeddiff, octaves, persistence, scale)
// returns world-specific PerlinNoise
static int l_get_perlin(lua_State *L);
// get_value_noise(seeddiff, octaves, persistence, scale)
// returns world-specific ValueNoise
static int l_get_value_noise(lua_State *L);
// get_perlin_map(noiseparams, size)
// returns world-specific PerlinNoiseMap
static int l_get_perlin_map(lua_State *L);
// get_value_noise_map(noiseparams, size)
// returns world-specific ValueNoiseMap
static int l_get_value_noise_map(lua_State *L);
// get_voxel_manip()
// returns world-specific voxel manipulator

View file

@ -13,38 +13,38 @@
///////////////////////////////////////
/*
LuaPerlinNoise
LuaValueNoise
*/
LuaPerlinNoise::LuaPerlinNoise(const NoiseParams *params) :
LuaValueNoise::LuaValueNoise(const NoiseParams *params) :
np(*params)
{
}
int LuaPerlinNoise::l_get_2d(lua_State *L)
int LuaValueNoise::l_get_2d(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
LuaPerlinNoise *o = checkObject<LuaPerlinNoise>(L, 1);
LuaValueNoise *o = checkObject<LuaValueNoise>(L, 1);
v2f p = readParam<v2f>(L, 2);
lua_Number val = NoisePerlin2D(&o->np, p.X, p.Y, 0);
lua_Number val = NoiseFractal2D(&o->np, p.X, p.Y, 0);
lua_pushnumber(L, val);
return 1;
}
int LuaPerlinNoise::l_get_3d(lua_State *L)
int LuaValueNoise::l_get_3d(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
LuaPerlinNoise *o = checkObject<LuaPerlinNoise>(L, 1);
LuaValueNoise *o = checkObject<LuaValueNoise>(L, 1);
v3f p = check_v3f(L, 2);
lua_Number val = NoisePerlin3D(&o->np, p.X, p.Y, p.Z, 0);
lua_Number val = NoiseFractal3D(&o->np, p.X, p.Y, p.Z, 0);
lua_pushnumber(L, val);
return 1;
}
int LuaPerlinNoise::create_object(lua_State *L)
int LuaValueNoise::create_object(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@ -59,7 +59,7 @@ int LuaPerlinNoise::create_object(lua_State *L)
params.spread = v3f(1, 1, 1) * readParam<float>(L, 4);
}
LuaPerlinNoise *o = new LuaPerlinNoise(&params);
LuaValueNoise *o = new LuaValueNoise(&params);
*(void **)(lua_newuserdata(L, sizeof(void *))) = o;
luaL_getmetatable(L, className);
@ -68,25 +68,25 @@ int LuaPerlinNoise::create_object(lua_State *L)
}
int LuaPerlinNoise::gc_object(lua_State *L)
int LuaValueNoise::gc_object(lua_State *L)
{
LuaPerlinNoise *o = *(LuaPerlinNoise **)(lua_touserdata(L, 1));
LuaValueNoise *o = *(LuaValueNoise **)(lua_touserdata(L, 1));
delete o;
return 0;
}
void *LuaPerlinNoise::packIn(lua_State *L, int idx)
void *LuaValueNoise::packIn(lua_State *L, int idx)
{
LuaPerlinNoise *o = checkObject<LuaPerlinNoise>(L, idx);
LuaValueNoise *o = checkObject<LuaValueNoise>(L, idx);
return new NoiseParams(o->np);
}
void LuaPerlinNoise::packOut(lua_State *L, void *ptr)
void LuaValueNoise::packOut(lua_State *L, void *ptr)
{
NoiseParams *np = reinterpret_cast<NoiseParams*>(ptr);
if (L) {
LuaPerlinNoise *o = new LuaPerlinNoise(np);
LuaValueNoise *o = new LuaValueNoise(np);
*(void **)(lua_newuserdata(L, sizeof(void *))) = o;
luaL_getmetatable(L, className);
lua_setmetatable(L, -2);
@ -95,7 +95,7 @@ void LuaPerlinNoise::packOut(lua_State *L, void *ptr)
}
void LuaPerlinNoise::Register(lua_State *L)
void LuaValueNoise::Register(lua_State *L)
{
static const luaL_Reg metamethods[] = {
{"__gc", gc_object},
@ -109,19 +109,19 @@ void LuaPerlinNoise::Register(lua_State *L)
}
const char LuaPerlinNoise::className[] = "PerlinNoise";
luaL_Reg LuaPerlinNoise::methods[] = {
luamethod_aliased(LuaPerlinNoise, get_2d, get2d),
luamethod_aliased(LuaPerlinNoise, get_3d, get3d),
const char LuaValueNoise::className[] = "ValueNoise";
luaL_Reg LuaValueNoise::methods[] = {
luamethod_aliased(LuaValueNoise, get_2d, get2d),
luamethod_aliased(LuaValueNoise, get_3d, get3d),
{0,0}
};
///////////////////////////////////////
/*
LuaPerlinNoiseMap
LuaValueNoiseMap
*/
LuaPerlinNoiseMap::LuaPerlinNoiseMap(const NoiseParams *np, s32 seed, v3s16 size)
LuaValueNoiseMap::LuaValueNoiseMap(const NoiseParams *np, s32 seed, v3s16 size)
{
try {
noise = new Noise(np, seed, size.X, size.Y, size.Z);
@ -131,22 +131,22 @@ LuaPerlinNoiseMap::LuaPerlinNoiseMap(const NoiseParams *np, s32 seed, v3s16 size
}
LuaPerlinNoiseMap::~LuaPerlinNoiseMap()
LuaValueNoiseMap::~LuaValueNoiseMap()
{
delete noise;
}
int LuaPerlinNoiseMap::l_get_2d_map(lua_State *L)
int LuaValueNoiseMap::l_get_2d_map(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
size_t i = 0;
LuaPerlinNoiseMap *o = checkObject<LuaPerlinNoiseMap>(L, 1);
LuaValueNoiseMap *o = checkObject<LuaValueNoiseMap>(L, 1);
v2f p = readParam<v2f>(L, 2);
Noise *n = o->noise;
n->perlinMap2D(p.X, p.Y);
n->noiseMap2D(p.X, p.Y);
lua_createtable(L, n->sy, 0);
for (u32 y = 0; y != n->sy; y++) {
@ -161,16 +161,16 @@ int LuaPerlinNoiseMap::l_get_2d_map(lua_State *L)
}
int LuaPerlinNoiseMap::l_get_2d_map_flat(lua_State *L)
int LuaValueNoiseMap::l_get_2d_map_flat(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
LuaPerlinNoiseMap *o = checkObject<LuaPerlinNoiseMap>(L, 1);
LuaValueNoiseMap *o = checkObject<LuaValueNoiseMap>(L, 1);
v2f p = readParam<v2f>(L, 2);
bool use_buffer = lua_istable(L, 3);
Noise *n = o->noise;
n->perlinMap2D(p.X, p.Y);
n->noiseMap2D(p.X, p.Y);
size_t maplen = n->sx * n->sy;
@ -187,19 +187,19 @@ int LuaPerlinNoiseMap::l_get_2d_map_flat(lua_State *L)
}
int LuaPerlinNoiseMap::l_get_3d_map(lua_State *L)
int LuaValueNoiseMap::l_get_3d_map(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
size_t i = 0;
LuaPerlinNoiseMap *o = checkObject<LuaPerlinNoiseMap>(L, 1);
LuaValueNoiseMap *o = checkObject<LuaValueNoiseMap>(L, 1);
v3f p = check_v3f(L, 2);
if (!o->is3D())
return 0;
Noise *n = o->noise;
n->perlinMap3D(p.X, p.Y, p.Z);
n->noiseMap3D(p.X, p.Y, p.Z);
lua_createtable(L, n->sz, 0);
for (u32 z = 0; z != n->sz; z++) {
@ -218,11 +218,11 @@ int LuaPerlinNoiseMap::l_get_3d_map(lua_State *L)
}
int LuaPerlinNoiseMap::l_get_3d_map_flat(lua_State *L)
int LuaValueNoiseMap::l_get_3d_map_flat(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
LuaPerlinNoiseMap *o = checkObject<LuaPerlinNoiseMap>(L, 1);
LuaValueNoiseMap *o = checkObject<LuaValueNoiseMap>(L, 1);
v3f p = check_v3f(L, 2);
bool use_buffer = lua_istable(L, 3);
@ -230,7 +230,7 @@ int LuaPerlinNoiseMap::l_get_3d_map_flat(lua_State *L)
return 0;
Noise *n = o->noise;
n->perlinMap3D(p.X, p.Y, p.Z);
n->noiseMap3D(p.X, p.Y, p.Z);
size_t maplen = n->sx * n->sy * n->sz;
@ -247,41 +247,41 @@ int LuaPerlinNoiseMap::l_get_3d_map_flat(lua_State *L)
}
int LuaPerlinNoiseMap::l_calc_2d_map(lua_State *L)
int LuaValueNoiseMap::l_calc_2d_map(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
LuaPerlinNoiseMap *o = checkObject<LuaPerlinNoiseMap>(L, 1);
LuaValueNoiseMap *o = checkObject<LuaValueNoiseMap>(L, 1);
v2f p = readParam<v2f>(L, 2);
Noise *n = o->noise;
n->perlinMap2D(p.X, p.Y);
n->noiseMap2D(p.X, p.Y);
return 0;
}
int LuaPerlinNoiseMap::l_calc_3d_map(lua_State *L)
int LuaValueNoiseMap::l_calc_3d_map(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
LuaPerlinNoiseMap *o = checkObject<LuaPerlinNoiseMap>(L, 1);
LuaValueNoiseMap *o = checkObject<LuaValueNoiseMap>(L, 1);
v3f p = check_v3f(L, 2);
if (!o->is3D())
return 0;
Noise *n = o->noise;
n->perlinMap3D(p.X, p.Y, p.Z);
n->noiseMap3D(p.X, p.Y, p.Z);
return 0;
}
int LuaPerlinNoiseMap::l_get_map_slice(lua_State *L)
int LuaValueNoiseMap::l_get_map_slice(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
LuaPerlinNoiseMap *o = checkObject<LuaPerlinNoiseMap>(L, 1);
LuaValueNoiseMap *o = checkObject<LuaValueNoiseMap>(L, 1);
v3s16 slice_offset = read_v3s16(L, 2);
v3s16 slice_size = read_v3s16(L, 3);
bool use_buffer = lua_istable(L, 4);
@ -302,14 +302,14 @@ int LuaPerlinNoiseMap::l_get_map_slice(lua_State *L)
}
int LuaPerlinNoiseMap::create_object(lua_State *L)
int LuaValueNoiseMap::create_object(lua_State *L)
{
NoiseParams np;
if (!read_noiseparams(L, 1, &np))
return 0;
v3s16 size = read_v3s16(L, 2);
LuaPerlinNoiseMap *o = new LuaPerlinNoiseMap(&np, 0, size);
LuaValueNoiseMap *o = new LuaValueNoiseMap(&np, 0, size);
*(void **)(lua_newuserdata(L, sizeof(void *))) = o;
luaL_getmetatable(L, className);
lua_setmetatable(L, -2);
@ -317,9 +317,9 @@ int LuaPerlinNoiseMap::create_object(lua_State *L)
}
int LuaPerlinNoiseMap::gc_object(lua_State *L)
int LuaValueNoiseMap::gc_object(lua_State *L)
{
LuaPerlinNoiseMap *o = *(LuaPerlinNoiseMap **)(lua_touserdata(L, 1));
LuaValueNoiseMap *o = *(LuaValueNoiseMap **)(lua_touserdata(L, 1));
delete o;
return 0;
}
@ -331,9 +331,9 @@ struct NoiseMapParams {
v3s16 size;
};
void *LuaPerlinNoiseMap::packIn(lua_State *L, int idx)
void *LuaValueNoiseMap::packIn(lua_State *L, int idx)
{
LuaPerlinNoiseMap *o = checkObject<LuaPerlinNoiseMap>(L, idx);
LuaValueNoiseMap *o = checkObject<LuaValueNoiseMap>(L, idx);
NoiseMapParams *ret = new NoiseMapParams();
ret->np = o->noise->np;
ret->seed = o->noise->seed;
@ -341,11 +341,11 @@ void *LuaPerlinNoiseMap::packIn(lua_State *L, int idx)
return ret;
}
void LuaPerlinNoiseMap::packOut(lua_State *L, void *ptr)
void LuaValueNoiseMap::packOut(lua_State *L, void *ptr)
{
NoiseMapParams *p = reinterpret_cast<NoiseMapParams*>(ptr);
if (L) {
LuaPerlinNoiseMap *o = new LuaPerlinNoiseMap(&p->np, p->seed, p->size);
LuaValueNoiseMap *o = new LuaValueNoiseMap(&p->np, p->seed, p->size);
*(void **)(lua_newuserdata(L, sizeof(void *))) = o;
luaL_getmetatable(L, className);
lua_setmetatable(L, -2);
@ -354,7 +354,7 @@ void LuaPerlinNoiseMap::packOut(lua_State *L, void *ptr)
}
void LuaPerlinNoiseMap::Register(lua_State *L)
void LuaValueNoiseMap::Register(lua_State *L)
{
static const luaL_Reg metamethods[] = {
{"__gc", gc_object},
@ -368,15 +368,15 @@ void LuaPerlinNoiseMap::Register(lua_State *L)
}
const char LuaPerlinNoiseMap::className[] = "PerlinNoiseMap";
luaL_Reg LuaPerlinNoiseMap::methods[] = {
luamethod_aliased(LuaPerlinNoiseMap, get_2d_map, get2dMap),
luamethod_aliased(LuaPerlinNoiseMap, get_2d_map_flat, get2dMap_flat),
luamethod_aliased(LuaPerlinNoiseMap, calc_2d_map, calc2dMap),
luamethod_aliased(LuaPerlinNoiseMap, get_3d_map, get3dMap),
luamethod_aliased(LuaPerlinNoiseMap, get_3d_map_flat, get3dMap_flat),
luamethod_aliased(LuaPerlinNoiseMap, calc_3d_map, calc3dMap),
luamethod_aliased(LuaPerlinNoiseMap, get_map_slice, getMapSlice),
const char LuaValueNoiseMap::className[] = "ValueNoiseMap";
luaL_Reg LuaValueNoiseMap::methods[] = {
luamethod_aliased(LuaValueNoiseMap, get_2d_map, get2dMap),
luamethod_aliased(LuaValueNoiseMap, get_2d_map_flat, get2dMap_flat),
luamethod_aliased(LuaValueNoiseMap, calc_2d_map, calc2dMap),
luamethod_aliased(LuaValueNoiseMap, get_3d_map, get3dMap),
luamethod_aliased(LuaValueNoiseMap, get_3d_map_flat, get3dMap_flat),
luamethod_aliased(LuaValueNoiseMap, calc_3d_map, calc3dMap),
luamethod_aliased(LuaValueNoiseMap, get_map_slice, getMapSlice),
{0,0}
};

View file

@ -9,9 +9,9 @@
#include "noise.h"
/*
LuaPerlinNoise
LuaValueNoise
*/
class LuaPerlinNoise : public ModApiBase
class LuaValueNoise : public ModApiBase
{
private:
NoiseParams np;
@ -27,11 +27,11 @@ private:
static int l_get_3d(lua_State *L);
public:
LuaPerlinNoise(const NoiseParams *params);
~LuaPerlinNoise() = default;
LuaValueNoise(const NoiseParams *params);
~LuaValueNoise() = default;
// LuaPerlinNoise(seed, octaves, persistence, scale)
// Creates an LuaPerlinNoise and leaves it on top of stack
// LuaValueNoise(seed, octaves, persistence, scale)
// Creates an LuaValueNoise and leaves it on top of stack
static int create_object(lua_State *L);
static void *packIn(lua_State *L, int idx);
@ -43,9 +43,9 @@ public:
};
/*
LuaPerlinNoiseMap
LuaValueNoiseMap
*/
class LuaPerlinNoiseMap : public ModApiBase
class LuaValueNoiseMap : public ModApiBase
{
Noise *noise;
@ -66,13 +66,13 @@ class LuaPerlinNoiseMap : public ModApiBase
static int l_get_map_slice(lua_State *L);
public:
LuaPerlinNoiseMap(const NoiseParams *np, s32 seed, v3s16 size);
~LuaPerlinNoiseMap();
LuaValueNoiseMap(const NoiseParams *np, s32 seed, v3s16 size);
~LuaValueNoiseMap();
inline bool is3D() const { return noise->sz > 1; }
// LuaPerlinNoiseMap(np, size)
// Creates an LuaPerlinNoiseMap and leaves it on top of stack
// LuaValueNoiseMap(np, size)
// Creates an LuaValueNoiseMap and leaves it on top of stack
static int create_object(lua_State *L);
static void *packIn(lua_State *L, int idx);

View file

@ -60,8 +60,8 @@ void EmergeScripting::InitializeModApi(lua_State *L, int top)
ItemStackMetaRef::Register(L);
LuaAreaStore::Register(L);
LuaItemStack::Register(L);
LuaPerlinNoise::Register(L);
LuaPerlinNoiseMap::Register(L);
LuaValueNoise::Register(L);
LuaValueNoiseMap::Register(L);
LuaPseudoRandom::Register(L);
LuaPcgRandom::Register(L);
LuaSecureRandom::Register(L);

View file

@ -134,8 +134,8 @@ void ServerScripting::InitializeModApi(lua_State *L, int top)
ItemStackMetaRef::Register(L);
LuaAreaStore::Register(L);
LuaItemStack::Register(L);
LuaPerlinNoise::Register(L);
LuaPerlinNoiseMap::Register(L);
LuaValueNoise::Register(L);
LuaValueNoiseMap::Register(L);
LuaPseudoRandom::Register(L);
LuaPcgRandom::Register(L);
LuaRaycast::Register(L);
@ -172,8 +172,8 @@ void ServerScripting::InitializeAsync(lua_State *L, int top)
ItemStackMetaRef::Register(L);
LuaAreaStore::Register(L);
LuaItemStack::Register(L);
LuaPerlinNoise::Register(L);
LuaPerlinNoiseMap::Register(L);
LuaValueNoise::Register(L);
LuaValueNoiseMap::Register(L);
LuaPseudoRandom::Register(L);
LuaPcgRandom::Register(L);
LuaSecureRandom::Register(L);