aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mg_decoration.cpp2
-rw-r--r--src/mg_decoration.h1
-rw-r--r--src/script/lua_api/l_mapgen.cpp7
3 files changed, 9 insertions, 1 deletions
diff --git a/src/mg_decoration.cpp b/src/mg_decoration.cpp
index 92483abc3..51e4fbbcc 100644
--- a/src/mg_decoration.cpp
+++ b/src/mg_decoration.cpp
@@ -315,7 +315,7 @@ size_t DecoSimple::generate(MMVManip *vm, PcgRandom *pr, v3s16 p)
!force_placement)
break;
- vm->m_data[vi] = MapNode(c_place);
+ vm->m_data[vi] = MapNode(c_place, 0, deco_param2);
}
return 1;
diff --git a/src/mg_decoration.h b/src/mg_decoration.h
index be0ba44d7..986328ec3 100644
--- a/src/mg_decoration.h
+++ b/src/mg_decoration.h
@@ -100,6 +100,7 @@ public:
std::vector<content_t> c_decos;
s16 deco_height;
s16 deco_height_max;
+ u8 deco_param2;
};
class DecoSchematic : public Decoration {
diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp
index da8e71cdc..cefea3da9 100644
--- a/src/script/lua_api/l_mapgen.cpp
+++ b/src/script/lua_api/l_mapgen.cpp
@@ -975,6 +975,7 @@ bool read_deco_simple(lua_State *L, DecoSimple *deco)
deco->deco_height = getintfield_default(L, index, "height", 1);
deco->deco_height_max = getintfield_default(L, index, "height_max", 0);
+ deco->deco_param2 = getintfield_default(L, index, "param2", 0);
if (deco->deco_height <= 0) {
errorstream << "register_decoration: simple decoration height"
@@ -990,6 +991,12 @@ bool read_deco_simple(lua_State *L, DecoSimple *deco)
return false;
}
+ if ((deco->deco_param2 < 0) || (deco->deco_param2 > 255)) {
+ errorstream << "register_decoration: param2 out of bounds (0-255)"
+ << std::endl;
+ return false;
+ }
+
return true;
}