projects
/
oweals
/
minetest.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mapgen: Resolve nodes in ctor rather than makeChunk
[oweals/minetest.git]
/
src
/
mapgen_singlenode.cpp
diff --git
a/src/mapgen_singlenode.cpp
b/src/mapgen_singlenode.cpp
index fd443995c6ef50a0c9040f484260ff82a5266baa..9f2e6c122df9516d53a7a1242b8d9375bb2b580d 100644
(file)
--- a/
src/mapgen_singlenode.cpp
+++ b/
src/mapgen_singlenode.cpp
@@
-29,8
+29,7
@@
with this program; if not, write to the Free Software Foundation, Inc.,
//////////////////////// Mapgen Singlenode parameter read/write
//////////////////////// Mapgen Singlenode parameter read/write
-bool MapgenSinglenodeParams::readParams(Settings *settings) {
- return true;
+void MapgenSinglenodeParams::readParams(Settings *settings) {
}
}
@@
-39,8
+38,16
@@
void MapgenSinglenodeParams::writeParams(Settings *settings) {
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
-MapgenSinglenode::MapgenSinglenode(int mapgenid, MapgenSinglenodeParams *params) {
+MapgenSinglenode::MapgenSinglenode(int mapgenid,
+ MapgenParams *params, EmergeManager *emerge)
+{
flags = params->flags;
flags = params->flags;
+
+ INodeDefManager *ndef = emerge->ndef;
+
+ c_node = ndef->getId("mapgen_singlenode");
+ if (c_node == CONTENT_IGNORE)
+ c_node = CONTENT_AIR;
}
}
@@
-69,10
+76,6
@@
void MapgenSinglenode::makeChunk(BlockMakeData *data) {
// Area of central chunk
v3s16 node_min = blockpos_min*MAP_BLOCKSIZE;
v3s16 node_max = (blockpos_max+v3s16(1,1,1))*MAP_BLOCKSIZE-v3s16(1,1,1);
// Area of central chunk
v3s16 node_min = blockpos_min*MAP_BLOCKSIZE;
v3s16 node_max = (blockpos_max+v3s16(1,1,1))*MAP_BLOCKSIZE-v3s16(1,1,1);
-
- content_t c_node = ndef->getId("mapgen_singlenode");
- if (c_node == CONTENT_IGNORE)
- c_node = CONTENT_AIR;
MapNode n_node(c_node);
MapNode n_node(c_node);
@@
-90,7
+93,7
@@
void MapgenSinglenode::makeChunk(BlockMakeData *data) {
updateLiquid(&data->transforming_liquid, node_min, node_max);
// Calculate lighting
updateLiquid(&data->transforming_liquid, node_min, node_max);
// Calculate lighting
- if (
!(flags & MG_NOLIGHT)
)
+ if (
flags & MG_LIGHT
)
calcLighting(node_min - v3s16(1, 0, 1) * MAP_BLOCKSIZE,
node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE);
calcLighting(node_min - v3s16(1, 0, 1) * MAP_BLOCKSIZE,
node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE);