First noticed incident of operations ruining ChunkSections. Do not build and use this unless you're testing.
Rushed some of the changes, gotta sleep. Would be nice to get a review of this one from @mattbdev and @dordsor21
- Very basic implementation of the SideEffects system. Will definitely need fine tuning for it to be functional, but is not considered a priority in my opinion.
- Minor changes to the World interface and World implementations related to the SideEffects system. Shouldn't be the cause of any new bugs but be on the lookout.
- Included debug in BukkitImplLoader.java to assist contributors in understanding what needs to be implemented for the adapter to load properly.
Still very WIP but we're a few steps closer. So far, this is coming along better than I anticipated. Hopefully we can keep the momentum.
* Use a long to refer to the volume of a region, and rename the method to getVolume
* Fixed issues noted in review
* Forgot to floor
* Fixed review notes
* Can use a long here rather than BigDecimal
* Improve javadocs
* style
(cherry picked from commit 328030fd6281e58a4ea1d0cdd0a2e274da90afbe)
The BlockMap tests got much faster, so there's no need to hide them
behind a flag.
(cherry picked from commit 1e2496af552891e3b43c5703bda8dc4129bbcc5d)
* Start work on lighting engine (does not build)
* Implement getLighting
* Setting, flushing light etc works. Getting light should be working..?
* Better queue/chunk handling
* Use correct location for lighting update
* Correct set location, remove debug
* cleanup a little
* Fix fixlight
* Apply to all versions for the numpties
* Remove lighting extent if not using
* Actually bitmask blocks when setting in chunks
* Initialise Maps and Dequeues with inital size
* format
* Documentation maybe
- Similar to previous commit. If the chunksection was empty, then __reserved__ was parsed to the clipboard, and then not correctly identified as air
- Now assume all __reserved__ is air when writing to clipboards
- ChunkSections containing only air are technically null according to NMS Chunks
- Therefore if we're replacing air, we should ignore the result of get.hasSection(layer) by using "full = true" as it returns false if the chunksection is only air
- We also then need to ensure that the masks correctly identify that the block is "air"
- Revert back to default FAWE behaviour where placed blocks do not tick by default (until a restart, or another edit is done in the same chunksection without changing the block)
* Increase performance slightly when trimming.
If the chunk section is all one blocks (common in plotworlds) it'll be a nice little boost.
* Cache whether blocks are ticking or not. Greatly reduces the time required to create a palette
* collapse 5 lines to 2.
* Also apply to 14 and 15 for the numpties
* Cleanup
Actually ignore the exception - remove my debug print.
Remove double semi-colon
* Apparently 1.14/15 matter too still.
This commit aims to fix existing issues regarding the "0/-1 blocks affected" bug. Introducing the new LinkedFilter class allows us to use multiple filters for single-filter operations, e.g. applying a pattern to blocks while also counting the amount of blocks applied to. SetFilter.java was also removed due to not being used.