Skip to content

Commit 56093b6

Browse files
committedJun 17, 2013
Decoration: Change divlen to sidelen
1 parent 0a8519a commit 56093b6

File tree

4 files changed

+15
-8
lines changed

4 files changed

+15
-8
lines changed
 

‎doc/lua_api.txt

+3-2
Original file line numberDiff line numberDiff line change
@@ -1875,8 +1875,9 @@ Decoration definition (register_decoration)
18751875
deco_type = "simple", -- See "Decoration types"
18761876
place_on = "default:dirt_with_grass",
18771877
^ Node that decoration can be placed on
1878-
divlen = 8,
1879-
^ Number of divisions made in the chunk being generated
1878+
sidelen = 8,
1879+
^ Size of divisions made in the chunk being generated.
1880+
^ If the chunk size is not evenly divisible by sidelen, sidelen is made equal to the chunk size.
18801881
fill_ratio = 0.02,
18811882
^ Ratio of the area to be uniformly filled by the decoration.
18821883
^ Used only if noise_params is not specified.

‎src/mapgen.cpp

+8-2
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,14 @@ void Decoration::placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax) {
232232
int carea_size = nmax.X - nmin.X + 1;
233233

234234
// Divide area into parts
235-
s16 sidelen = carea_size / divlen;
236-
float area = sidelen * sidelen;
235+
if (carea_size % sidelen) {
236+
errorstream << "Decoration::placeDeco: chunk size is not divisible by "
237+
"sidelen; setting sidelen to " << carea_size << std::endl;
238+
sidelen = carea_size;
239+
}
240+
241+
s16 divlen = carea_size / sidelen;
242+
int area = sidelen * sidelen;
237243

238244
for (s16 z0 = 0; z0 < divlen; z0++)
239245
for (s16 x0 = 0; x0 < divlen; x0++) {

‎src/mapgen.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ class Decoration {
199199
int mapseed;
200200
std::string place_on_name;
201201
content_t c_place_on;
202-
s16 divlen;
202+
s16 sidelen;
203203
float fill_ratio;
204204
NoiseParams *np;
205205

‎src/script/lua_api/luaapi.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -683,7 +683,7 @@ int ModApiBasic::l_register_decoration(lua_State *L)
683683

684684
deco->c_place_on = CONTENT_IGNORE;
685685
deco->place_on_name = getstringfield_default(L, index, "place_on", "ignore");
686-
deco->divlen = getintfield_default(L, index, "divlen", 8);
686+
deco->sidelen = getintfield_default(L, index, "sidelen", 8);
687687
deco->fill_ratio = getfloatfield_default(L, index, "fill_ratio", 0.02);
688688

689689
lua_getfield(L, index, "noise_params");
@@ -749,8 +749,8 @@ int ModApiBasic::l_register_decoration(lua_State *L)
749749
break; }
750750
}
751751

752-
if (deco->divlen <= 0) {
753-
errorstream << "register_decoration: divlen must be "
752+
if (deco->sidelen <= 0) {
753+
errorstream << "register_decoration: sidelen must be "
754754
"greater than 0" << std::endl;
755755
delete deco;
756756
return 0;

0 commit comments

Comments
 (0)
Please sign in to comment.