Add option 'eased' to NoiseParams
authorSmallJoker <mk939@ymail.com>
Wed, 12 Nov 2014 20:11:40 +0000 (21:11 +0100)
committerCraig Robbins <kde.psych@gmail.com>
Thu, 13 Nov 2014 13:06:38 +0000 (23:06 +1000)
Signed-off-by: Craig Robbins <kde.psych@gmail.com>
doc/lua_api.txt
src/noise.h
src/script/common/c_content.cpp
src/script/lua_api/l_noise.cpp

index 698efbe8af2d0ad98e7b8485df392ddd55ecc79c..e4a016b1a02dbde269606c6dccb0036bf3fdf1d6 100644 (file)
@@ -2796,3 +2796,16 @@ ParticleSpawner definition (add_particlespawner)
     playername = "singleplayer"
     ^ Playername is optional, if specified spawns particle only on the player's client
 }
+
+NoiseParams definition (PerlinNoiseMap)
+{
+    offset = 0,
+    scale = 0,
+    spread = 0,
+    seed = 0,
+    octaves = 0,
+    ^ A higher value will result in more details, this means more operations
+    persist = 0,
+    eased = false
+    ^ Whether it should create curves in 3D perlin maps
+}
index 00d3612af1e93ad4526a3012c4a38b382107f9ae..39805283787da6d64cae11c1398424323cd05ff3 100644 (file)
@@ -73,11 +73,12 @@ struct NoiseParams {
        int seed;
        int octaves;
        float persist;
+       bool eased;
 
        NoiseParams() {}
 
        NoiseParams(float offset_, float scale_, v3f spread_,
-               int seed_, int octaves_, float persist_)
+               int seed_, int octaves_, float persist_, bool eased_=false)
        {
                offset  = offset_;
                scale   = scale_;
@@ -85,6 +86,7 @@ struct NoiseParams {
                seed    = seed_;
                octaves = octaves_;
                persist = persist_;
+               eased   = eased_;
        }
 };
 
index 0e1e608c4ce9cfe9d12513f1bdc9a3092f3a06de..1972c40e0be98a502d83db253d7c21c14a31cd3f 100644 (file)
@@ -1000,6 +1000,7 @@ bool read_noiseparams_nc(lua_State *L, int index, NoiseParams *np)
        np->persist = getfloatfield_default(L, index, "persist", 0.0);
        np->seed    = getintfield_default(L,   index, "seed",    0);
        np->octaves = getintfield_default(L,   index, "octaves", 0);
+       np->eased   = getboolfield_default(L,  index, "eased",   false);
 
        lua_getfield(L, index, "spread");
        np->spread  = read_v3f(L, -1);
index 263ecfd6999aab49f96610d29f5b6d765f88ce8e..4f230b76e0074dc084ae27df4852f20df1ad7344 100644 (file)
@@ -190,7 +190,7 @@ int LuaPerlinNoiseMap::l_get3dMap(lua_State *L)
        v3f p = read_v3f(L, 2);
 
        Noise *n = o->noise;
-       n->perlinMap3D(p.X, p.Y, p.Z);
+       n->perlinMap3D(p.X, p.Y, p.Z, n->np->eased);
 
        lua_newtable(L);
        for (int z = 0; z != n->sz; z++) {
@@ -216,7 +216,7 @@ int LuaPerlinNoiseMap::l_get3dMap_flat(lua_State *L)
        v3f p = read_v3f(L, 2);
 
        Noise *n = o->noise;
-       n->perlinMap3D(p.X, p.Y, p.Z);
+       n->perlinMap3D(p.X, p.Y, p.Z, n->np->eased);
 
 
        int maplen = n->sx * n->sy * n->sz;