aboutsummaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_noise.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/lua_api/l_noise.cpp')
-rw-r--r--src/script/lua_api/l_noise.cpp120
1 files changed, 84 insertions, 36 deletions
diff --git a/src/script/lua_api/l_noise.cpp b/src/script/lua_api/l_noise.cpp
index 0e9ece82b..9aeb15709 100644
--- a/src/script/lua_api/l_noise.cpp
+++ b/src/script/lua_api/l_noise.cpp
@@ -30,10 +30,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
LuaPerlinNoise
*/
-LuaPerlinNoise::LuaPerlinNoise(NoiseParams *params) : np(*params)
+LuaPerlinNoise::LuaPerlinNoise(NoiseParams *params) :
+ np(*params)
{
}
+
int LuaPerlinNoise::l_get_2d(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@@ -44,6 +46,7 @@ int LuaPerlinNoise::l_get_2d(lua_State *L)
return 1;
}
+
int LuaPerlinNoise::l_get_3d(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@@ -54,6 +57,7 @@ int LuaPerlinNoise::l_get_3d(lua_State *L)
return 1;
}
+
int LuaPerlinNoise::create_object(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@@ -63,10 +67,10 @@ int LuaPerlinNoise::create_object(lua_State *L)
if (lua_istable(L, 1)) {
read_noiseparams(L, 1, &params);
} else {
- params.seed = luaL_checkint(L, 1);
+ params.seed = luaL_checkint(L, 1);
params.octaves = luaL_checkint(L, 2);
params.persist = readParam<float>(L, 3);
- params.spread = v3f(1, 1, 1) * readParam<float>(L, 4);
+ params.spread = v3f(1, 1, 1) * readParam<float>(L, 4);
}
LuaPerlinNoise *o = new LuaPerlinNoise(&params);
@@ -77,6 +81,7 @@ int LuaPerlinNoise::create_object(lua_State *L)
return 1;
}
+
int LuaPerlinNoise::gc_object(lua_State *L)
{
LuaPerlinNoise *o = *(LuaPerlinNoise **)(lua_touserdata(L, 1));
@@ -84,6 +89,7 @@ int LuaPerlinNoise::gc_object(lua_State *L)
return 0;
}
+
LuaPerlinNoise *LuaPerlinNoise::checkobject(lua_State *L, int narg)
{
NO_MAP_LOCK_REQUIRED;
@@ -94,6 +100,7 @@ LuaPerlinNoise *LuaPerlinNoise::checkobject(lua_State *L, int narg)
return *(LuaPerlinNoise **)ud;
}
+
void LuaPerlinNoise::Register(lua_State *L)
{
lua_newtable(L);
@@ -122,9 +129,13 @@ void LuaPerlinNoise::Register(lua_State *L)
lua_register(L, className, create_object);
}
+
const char LuaPerlinNoise::className[] = "PerlinNoise";
-luaL_Reg LuaPerlinNoise::methods[] = {luamethod_aliased(LuaPerlinNoise, get_2d, get2d),
- luamethod_aliased(LuaPerlinNoise, get_3d, get3d), {0, 0}};
+luaL_Reg LuaPerlinNoise::methods[] = {
+ luamethod_aliased(LuaPerlinNoise, get_2d, get2d),
+ luamethod_aliased(LuaPerlinNoise, get_3d, get3d),
+ {0,0}
+};
///////////////////////////////////////
/*
@@ -142,11 +153,13 @@ LuaPerlinNoiseMap::LuaPerlinNoiseMap(NoiseParams *params, s32 seed, v3s16 size)
}
}
+
LuaPerlinNoiseMap::~LuaPerlinNoiseMap()
{
delete noise;
}
+
int LuaPerlinNoiseMap::l_get_2d_map(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@@ -170,6 +183,7 @@ int LuaPerlinNoiseMap::l_get_2d_map(lua_State *L)
return 1;
}
+
int LuaPerlinNoiseMap::l_get_2d_map_flat(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@@ -195,6 +209,7 @@ int LuaPerlinNoiseMap::l_get_2d_map_flat(lua_State *L)
return 1;
}
+
int LuaPerlinNoiseMap::l_get_3d_map(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@@ -225,13 +240,14 @@ int LuaPerlinNoiseMap::l_get_3d_map(lua_State *L)
return 1;
}
+
int LuaPerlinNoiseMap::l_get_3d_map_flat(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
LuaPerlinNoiseMap *o = checkobject(L, 1);
- v3f p = check_v3f(L, 2);
- bool use_buffer = lua_istable(L, 3);
+ v3f p = check_v3f(L, 2);
+ bool use_buffer = lua_istable(L, 3);
if (!o->m_is3d)
return 0;
@@ -253,6 +269,7 @@ int LuaPerlinNoiseMap::l_get_3d_map_flat(lua_State *L)
return 1;
}
+
int LuaPerlinNoiseMap::l_calc_2d_map(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@@ -271,7 +288,7 @@ int LuaPerlinNoiseMap::l_calc_3d_map(lua_State *L)
NO_MAP_LOCK_REQUIRED;
LuaPerlinNoiseMap *o = checkobject(L, 1);
- v3f p = check_v3f(L, 2);
+ v3f p = check_v3f(L, 2);
if (!o->m_is3d)
return 0;
@@ -282,14 +299,15 @@ int LuaPerlinNoiseMap::l_calc_3d_map(lua_State *L)
return 0;
}
+
int LuaPerlinNoiseMap::l_get_map_slice(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
LuaPerlinNoiseMap *o = checkobject(L, 1);
- v3s16 slice_offset = read_v3s16(L, 2);
- v3s16 slice_size = read_v3s16(L, 3);
- bool use_buffer = lua_istable(L, 4);
+ v3s16 slice_offset = read_v3s16(L, 2);
+ v3s16 slice_size = read_v3s16(L, 3);
+ bool use_buffer = lua_istable(L, 4);
Noise *n = o->noise;
@@ -298,13 +316,15 @@ int LuaPerlinNoiseMap::l_get_map_slice(lua_State *L)
else
lua_newtable(L);
- write_array_slice_float(L, lua_gettop(L), n->result, v3u16(n->sx, n->sy, n->sz),
- v3u16(slice_offset.X, slice_offset.Y, slice_offset.Z),
- v3u16(slice_size.X, slice_size.Y, slice_size.Z));
+ write_array_slice_float(L, lua_gettop(L), n->result,
+ v3u16(n->sx, n->sy, n->sz),
+ v3u16(slice_offset.X, slice_offset.Y, slice_offset.Z),
+ v3u16(slice_size.X, slice_size.Y, slice_size.Z));
return 1;
}
+
int LuaPerlinNoiseMap::create_object(lua_State *L)
{
NoiseParams np;
@@ -319,6 +339,7 @@ int LuaPerlinNoiseMap::create_object(lua_State *L)
return 1;
}
+
int LuaPerlinNoiseMap::gc_object(lua_State *L)
{
LuaPerlinNoiseMap *o = *(LuaPerlinNoiseMap **)(lua_touserdata(L, 1));
@@ -326,6 +347,7 @@ int LuaPerlinNoiseMap::gc_object(lua_State *L)
return 0;
}
+
LuaPerlinNoiseMap *LuaPerlinNoiseMap::checkobject(lua_State *L, int narg)
{
luaL_checktype(L, narg, LUA_TUSERDATA);
@@ -337,6 +359,7 @@ LuaPerlinNoiseMap *LuaPerlinNoiseMap::checkobject(lua_State *L, int narg)
return *(LuaPerlinNoiseMap **)ud;
}
+
void LuaPerlinNoiseMap::Register(lua_State *L)
{
lua_newtable(L);
@@ -365,15 +388,18 @@ void LuaPerlinNoiseMap::Register(lua_State *L)
lua_register(L, className, create_object);
}
+
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), {0, 0}};
+ 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),
+ {0,0}
+};
///////////////////////////////////////
/*
@@ -393,22 +419,22 @@ int LuaPseudoRandom::l_next(lua_State *L)
if (lua_isnumber(L, 3))
max = luaL_checkinteger(L, 3);
if (max < min) {
- errorstream << "PseudoRandom.next(): max=" << max << " min=" << min
- << std::endl;
+ errorstream<<"PseudoRandom.next(): max="<<max<<" min="<<min<<std::endl;
throw LuaError("PseudoRandom.next(): max < min");
}
- if (max - min != 32767 && max - min > 32767 / 5)
+ if(max - min != 32767 && max - min > 32767/5)
throw LuaError("PseudoRandom.next() max-min is not 32767"
- " and is > 32768/5. This is disallowed due to"
- " the bad random distribution the"
- " implementation would otherwise make.");
+ " and is > 32768/5. This is disallowed due to"
+ " the bad random distribution the"
+ " implementation would otherwise make.");
PseudoRandom &pseudo = o->m_pseudo;
int val = pseudo.next();
- val = (val % (max - min + 1)) + min;
+ val = (val % (max-min+1)) + min;
lua_pushinteger(L, val);
return 1;
}
+
int LuaPseudoRandom::create_object(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@@ -421,6 +447,7 @@ int LuaPseudoRandom::create_object(lua_State *L)
return 1;
}
+
int LuaPseudoRandom::gc_object(lua_State *L)
{
LuaPseudoRandom *o = *(LuaPseudoRandom **)(lua_touserdata(L, 1));
@@ -428,6 +455,7 @@ int LuaPseudoRandom::gc_object(lua_State *L)
return 0;
}
+
LuaPseudoRandom *LuaPseudoRandom::checkobject(lua_State *L, int narg)
{
luaL_checktype(L, narg, LUA_TUSERDATA);
@@ -437,6 +465,7 @@ LuaPseudoRandom *LuaPseudoRandom::checkobject(lua_State *L, int narg)
return *(LuaPseudoRandom **)ud;
}
+
void LuaPseudoRandom::Register(lua_State *L)
{
lua_newtable(L);
@@ -464,8 +493,12 @@ void LuaPseudoRandom::Register(lua_State *L)
lua_register(L, className, create_object);
}
+
const char LuaPseudoRandom::className[] = "PseudoRandom";
-const luaL_Reg LuaPseudoRandom::methods[] = {luamethod(LuaPseudoRandom, next), {0, 0}};
+const luaL_Reg LuaPseudoRandom::methods[] = {
+ luamethod(LuaPseudoRandom, next),
+ {0,0}
+};
///////////////////////////////////////
/*
@@ -484,6 +517,7 @@ int LuaPcgRandom::l_next(lua_State *L)
return 1;
}
+
int LuaPcgRandom::l_rand_normal_dist(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
@@ -497,19 +531,22 @@ int LuaPcgRandom::l_rand_normal_dist(lua_State *L)
return 1;
}
+
int LuaPcgRandom::create_object(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
u64 seed = luaL_checknumber(L, 1);
- LuaPcgRandom *o = lua_isnumber(L, 2) ? new LuaPcgRandom(seed, lua_tointeger(L, 2))
- : new LuaPcgRandom(seed);
+ LuaPcgRandom *o = lua_isnumber(L, 2) ?
+ new LuaPcgRandom(seed, lua_tointeger(L, 2)) :
+ new LuaPcgRandom(seed);
*(void **)(lua_newuserdata(L, sizeof(void *))) = o;
luaL_getmetatable(L, className);
lua_setmetatable(L, -2);
return 1;
}
+
int LuaPcgRandom::gc_object(lua_State *L)
{
LuaPcgRandom *o = *(LuaPcgRandom **)(lua_touserdata(L, 1));
@@ -517,6 +554,7 @@ int LuaPcgRandom::gc_object(lua_State *L)
return 0;
}
+
LuaPcgRandom *LuaPcgRandom::checkobject(lua_State *L, int narg)
{
luaL_checktype(L, narg, LUA_TUSERDATA);
@@ -526,6 +564,7 @@ LuaPcgRandom *LuaPcgRandom::checkobject(lua_State *L, int narg)
return *(LuaPcgRandom **)ud;
}
+
void LuaPcgRandom::Register(lua_State *L)
{
lua_newtable(L);
@@ -553,9 +592,13 @@ void LuaPcgRandom::Register(lua_State *L)
lua_register(L, className, create_object);
}
+
const char LuaPcgRandom::className[] = "PcgRandom";
-const luaL_Reg LuaPcgRandom::methods[] = {luamethod(LuaPcgRandom, next),
- luamethod(LuaPcgRandom, rand_normal_dist), {0, 0}};
+const luaL_Reg LuaPcgRandom::methods[] = {
+ luamethod(LuaPcgRandom, next),
+ luamethod(LuaPcgRandom, rand_normal_dist),
+ {0,0}
+};
///////////////////////////////////////
/*
@@ -590,8 +633,7 @@ int LuaSecureRandom::l_next_bytes(lua_State *L)
// Refill buffer and copy over the remainder of what was requested
o->fillRandBuf();
- memcpy(output_buf + count_remaining, o->m_rand_buf,
- count - count_remaining);
+ memcpy(output_buf + count_remaining, o->m_rand_buf, count - count_remaining);
// Update index
o->m_rand_idx = count - count_remaining;
@@ -602,6 +644,7 @@ int LuaSecureRandom::l_next_bytes(lua_State *L)
return 1;
}
+
int LuaSecureRandom::create_object(lua_State *L)
{
LuaSecureRandom *o = new LuaSecureRandom();
@@ -618,6 +661,7 @@ int LuaSecureRandom::create_object(lua_State *L)
return 1;
}
+
int LuaSecureRandom::gc_object(lua_State *L)
{
LuaSecureRandom *o = *(LuaSecureRandom **)(lua_touserdata(L, 1));
@@ -625,6 +669,7 @@ int LuaSecureRandom::gc_object(lua_State *L)
return 0;
}
+
LuaSecureRandom *LuaSecureRandom::checkobject(lua_State *L, int narg)
{
luaL_checktype(L, narg, LUA_TUSERDATA);
@@ -634,6 +679,7 @@ LuaSecureRandom *LuaSecureRandom::checkobject(lua_State *L, int narg)
return *(LuaSecureRandom **)ud;
}
+
void LuaSecureRandom::Register(lua_State *L)
{
lua_newtable(L);
@@ -663,4 +709,6 @@ void LuaSecureRandom::Register(lua_State *L)
const char LuaSecureRandom::className[] = "SecureRandom";
const luaL_Reg LuaSecureRandom::methods[] = {
- luamethod(LuaSecureRandom, next_bytes), {0, 0}};
+ luamethod(LuaSecureRandom, next_bytes),
+ {0,0}
+};