}
-/*
-LuaPerlinNoise::LuaPerlinNoise(int a_seed, int a_octaves,
- float a_persistence, float a_scale)
-{
- np.seed = a_seed;
- np.octaves = a_octaves;
- np.persist = a_persistence;
- np.spread = v3f(a_scale, a_scale, a_scale);
-}
-*/
-
LuaPerlinNoise::~LuaPerlinNoise()
{
}
LuaPerlinNoiseMap *o = checkobject(L, 1);
v3f p = read_v3f(L, 2);
+ if (!o->m_is3d)
+ return 0;
+
Noise *n = o->noise;
n->perlinMap3D(p.X, p.Y, p.Z);
LuaPerlinNoiseMap *o = checkobject(L, 1);
v3f p = read_v3f(L, 2);
+ if (!o->m_is3d)
+ return 0;
+
Noise *n = o->noise;
n->perlinMap3D(p.X, p.Y, p.Z);
}
-LuaPerlinNoiseMap::LuaPerlinNoiseMap(NoiseParams *np, int seed, v3s16 size)
+LuaPerlinNoiseMap::LuaPerlinNoiseMap(NoiseParams *params, int seed, v3s16 size)
{
- memcpy(&m_noise_params, np, sizeof(m_noise_params));
+ m_is3d = size.Z <= 1;
+ np = *params;
try {
- noise = new Noise(&m_noise_params, seed, size.X, size.Y, size.Z);
+ noise = new Noise(&np, seed, size.X, size.Y, size.Z);
} catch (InvalidNoiseParamsException &e) {
throw LuaError(e.what());
}
class LuaPerlinNoise : public ModApiBase {
private:
NoiseParams np;
-
static const char className[];
static const luaL_reg methods[];
LuaPerlinNoiseMap
*/
class LuaPerlinNoiseMap : public ModApiBase {
- NoiseParams m_noise_params;
+ NoiseParams np;
Noise *noise;
+ bool m_is3d;
static const char className[];
static const luaL_reg methods[];