| Commit message (Collapse) | Author | Files | Lines |
|
|
|
* Vector3: Add custom fmt compatible formatter.
* cLuaState: Add fmt version of ApiParamError
* Use vector formatting in manual bindings
* Always log vectors with FLOG
|
|
Add check for number of empty lines between functions and fix the corresponding failures
|
|
Closes #1244
Initially I was just going to add the cChunkData to cSetChunkData but profiling revealed
that the copying wasn't even the biggest slowdown. Much more time was being spent in
cChunk::CreateBlockEntities and cChunk::WakeUpSimulators than was in memcpy so I've made
those significantly faster as well.
Optimisations performed:
* cSetChunkData now stores blocks in a cChunkData object
* cChunkData objects can now perform moves even if they are using different pools
* cChunk::CreateBlockEntities now iterates in the correct order and only over present chunk sections
* Similarly for cChunk::WakeUpSimulators
* cSetChunkData::CalculateHeightMap now shortcuts to the highest present chunk section before checking blocks directly
|
|
|
|
* Store block entities in a map from block index
* Cleanup ForEachBlockEntity
* Cleanup DoWithBlockEntityAt
|
|
|
|
convert c style casts to c++ static casts
Changed fabs() to std::abs()
|
|
|
|
|
|
iterator to next valid list element
|
|
unsafely stealing data
|
|
|
|
|
|
|
|
Reported on the Dropper map in #1307.
|
|
Old code was calling dereference on invalid iterator
|
|
Block entities are now loaded based on the blocktype at the coords they specify; before loading, their type ("id" NBT tag) is checked.
The chunk now expects that all block entities given to it via cChunk::SetAllData() have their valid blocktype; asserts if they don't.
Fixes #1354.
|
|
|
|
Fixes #1196.
|