| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add "all_floors" and "all_ceilings" flags for simple and schematic
decorations. Decorations are placed on all floor and/or ceiling surfaces.
Decorations are placed before dungeon generation so placement in dungeons
is not possible.
Add 'getSurfaces()' function to mapgen.cpp that returns 2 arrays of y
coordinates for all floor and ceiling surfaces in a specified node column.
Move 'getHeight()' checks into DecoSimple and DecoSchematic. Delete
'getHeight()' functions.
|
|
|
|
|
|
| |
Necessary for placing the base cube of 'plantlike_rooted' drawtype in the
seabed instead of on it.
Useful for placing decorations sunk into, or buried in, the ground.
|
|
|
|
|
|
|
| |
If 'param2_max' is not used, parameter 'param2' works as before for
compatibility.
If 'param2_max' is used, 'param2' and 'param2_max' become the lower
and upper bounds of a per-decoration random param2.
|
|
|
|
|
|
|
| |
Feature is unnecessary and would greatly complicate future development,
it would also make 'get biome at pos' extremely complex.
Mgv7: Revert option to repeat surface biomes in floatlands, which
depended on the above.
|
|
|
|
|
|
|
|
|
| |
For precise control of schematic vertical position relative to the
'place_on' node.
Avoids workarounds that add empty nodes to a schematic and therefore
reduce performance.
Also remove long-unused decoration cutoff code.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Modernize various files (src/m*)
* range-based for loops
* code style
* C++ headers instead of C headers
* Default operators
* empty function
Thanks to clang-tidy
|
|
|
|
| |
* Migrate cpp headers to pragma once
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
In addition to being a better random, this fixes #3228
|
|
|
|
|
| |
Add findLiquidSurface() function to mapgen.cpp
Update lua_api.txt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
- General code cleanup
- Unified object creation and loading
- Specifying objects in APIs is now orthogonal (i.e. anything can take an ID,
name string, or the raw table definition (and automatically registers if present
|
|
|
|
| |
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
|
|
|