| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
* VoxelManip cleanups (const ref, const move) permitting to improve a little bit performance
* VoxelArea: precalculate extent (performance enhancement)
This permits to reduce extend high cost to zero and drop many v3s16 object creation/removal to calculate extent
It rebalance the client thread update to updateFastFaceRow instead of MapBlockMesh generation
This will also benefits to mapgen
|
|
|
|
|
|
|
|
| |
Add 'biome_zero_level' argument to 'generateBiomes()', 'deco_zero_level'
argument to 'placeAllDecos()' and 'ore_zero_level' to 'placeAllOres()'
to allow mapgens to vertically shift the registered biomes, decorations
and ores per-mapchunk.
Will also allow many realm possibilities in future mapgens.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
I also optiized FacePositionCache a bit: I removed a map
lookup and vector copy from both branches of getFacePosition.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Schematics can already be placed with a param2 value, but not
simple 1-node plant decorations of the simple type.
This adds a `param2` field to the simple deco type that is
checked to be between 0 and 255, and put to the placed node
at mapgen.
This can be used to put a degrotate value in, or e.g. a fill
value for leveltype nodes, or a place_param2 value at mapgen
placement, or vary the shape of meshoptions plantlike drawtype.
|
|
|
|
| |
In lua_api.txt, make clear that 'place on' and 'spawn by' can be lists.
|
|
|
|
|
|
|
|
|
| |
(#4430)
This fallback to std::map & std::set for older compilers
Use UNORDERED_SET as an example in decoration and ore biome sets
Use UNORDERED_MAP as an example in nameidmapping
|
|
|
|
|
|
|
|
|
|
| |
Fix height check comparison from '>=' to '>'.
Fix getHeight() for schematic decorations to account for
'deco place center y' flag and for how normal placement
sinks schematic 1 node into the ground.
Jungletrees were not being placed at y = 46, y = 47 despite
having an acceptable 16 nodes of height above ground surface.
|
| |
|
|
|
|
| |
For a decoration count between 0 and 1 calculate a chance for 1
|
|
|
|
| |
In addition to being a better random, this fixes #3228
|
|
|
|
|
| |
Fix memory leak in minetest.place_schematic
Slightly refactor Schematic code
|
|
|
|
|
| |
Add findLiquidSurface() function to mapgen.cpp
Update lua_api.txt
|
|
|
|
|
|
|
| |
Sidelen larger than 16 is essential for low density decorations
With sidelen > 16 chunksize may not be divisable by sidelen if
chunksize is changed, in this situation setting sidelen = chunksize
is desirable and should not create error messages.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Rename everything.
* Strip J prefix.
* Change UpperCamelCase functions to lowerCamelCase.
* Remove global (!) semaphore count mutex on OSX.
* Remove semaphore count getter (unused, unsafe, depended on internal
API functions on Windows, and used a hack on OSX).
* Add `Atomic<type>`.
* Make `Thread` handle thread names.
* Add support for C++11 multi-threading.
* Combine pthread and win32 sources.
* Remove `ThreadStarted` (unused, unneeded).
* Move some includes from the headers to the sources.
* Move all of `Event` into its header (allows inlining with no new includes).
* Make `Event` use `Semaphore` (except on Windows).
* Move some porting functions into `Thread`.
* Integrate logging with `Thread`.
* Add threading test.
|
|
|
|
|
| |
The neighbours checked are the 8 nodes horizontally surrounding the decoration base
and the 8 nodes horizontally surrounding the ground node below the decoration
|
|
|
|
| |
Decorations: Remove lower limit of water level for placement
|
|
|
|
| |
This simplifies NodeResolver logic and makes some interfaces cleaner.
|
|
|
|
|
|
| |
Make sure to include random unittests in android builds, too
Use SWAP() macro
Ensure that negative ranges are tested as well in random unittests
|
|
|
|
|
|
| |
Move place_on check to before place_center_x/y/z displacement of p
Reduce displacement of p by place_center_x/y/z flags
to correctly position schematics
|
| |
|
|
|
|
|
|
|
|
|
| |
NodeResolver name lists now belong to the NodeResolver object instead of
the associated NodeDefManager. In addition to minimizing unnecessary
abstraction and overhead, this move permits NodeResolvers to look up nodes
that they had previously set pending for resolution. So far, this
functionality has been used in the case of schematics for
serialization/deserialization.
|
|
|
|
| |
Add core.clear_registered_schematics() and refactor schematics somewhat
|
|
|
|
| |
Remove max_y from functions, simplify code
|
|
|
|
| |
Add schematic decoration force placement flag
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also set default height_min/height_max to -31000 and 31000,
respectively, for ore and biomes
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Add support for notify-on-decoration
Clean up mapgen constructors
Clean up mapgen.cpp code style somewhat
Remove trailing whitespace from some files
|
|
|
|
| |
Add BiomeManager, OreManager, DecorationManager, and SchematicManager
|
|
|