* Only implement cache to MaskingExtent when off main thread
- It's possible for a [Chunk/Char]FilterBlock to be used multiple times in the same "tree" of method calls meaning the mutable paramets (particularly index) get increased within a loop, causing AIOOBs and other issues
- This is only possible on the main thread due to the handling of submissions in SingleThreadQueueExtent, as it ensures all operation remains on the main thread to prevent deadlocks
- Therefore safe usage of FilterBlocks requires that main-threaded operation create a new [Chunk/Char]FilterBlock instance each time
- Further fixes#1681
* Fix typos
* Switch to LongFunction
* Only synchronise tree generation at the very lowest level
- Fixes#1681
* Perform the generate inside try-finally and actually use the resultant copied map to place blocks to the editsession
* Check result of generateTree and return null if failed
* Implement limits to image size and load times
- Prevents issues caused by users attempting to load large images
- Implements #1729
* Check dimensions given before attempting to load image
* feat: Add support for 1.19
* build: Update paperweight version
* fix: obfuscated names, invalid method signatures
* avoid NPE on config access
* build: Update paperweight
* implement no-op light engine to avoid stalled tasks that never complete
* Apply DelegateSemaphore fixes to 1.19 (#1782)
* Apply DelegateSemaphore fixes to 1.19
* Fixes
* Avoid using PalettedContainerRO#recreate as much as possible. Show an error or warning when we're forced to use it to help fix (#1784)
Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
Co-authored-by: SirYwell <hannesgreule@outlook.de>
Co-authored-by: Jordan <dordsor21@gmail.com>
* Allow NBT stored in DiskOptimizedClipboards to be written to disk as a compressed byte array at the end of the file
* Add some deprecations/javadocs and provide the expected clipboard version on error
* Javadoc since tags and add location of clipboard folder to error
* Refactor load-from-file method into DOC class
* Refactor nbt loading code into separate method in DOC
* the set array given in NMSAdapter should have get data written to it
- Fixes#1664
- May fix#1700
* Having target size >= 2* parallel threads allows for adjacent chunks to be loaded with issues
* "empty" chunk section doesn't need to be localised to the chunk and may be static
* Switch to slightly more performant stream method for testing for non-empty sections
* Implement lock into ChunkHolder preventing any modification to occur whilst the edit is being applied to the world
(when ChunkHolder is called)
* Add config note about target-size
* set ordinal equal to air if both set and get are `__reserved__`
* Add note to checkAndWaitOnCalledLock method of its use
* Don't print exception and throw
* Switch to a wrapped StampedLock allowing reentrant behaviour
- StampedLock is not reentrent
- Allow unlock from a different thread only if it provides the correct stamp
- This stamp can only be retrieved by the thread owning the lock
* Avoid some "doubling-up" of using checkAndWaitOnCalledLock
* Unbloat `checkAndWaitOnCalledLock`
* Add since tags
* Fix SideEffectSet.none() being the default set (#1620)
* Fix SideEffectSet.none() being the default set
* Remove the unnecessary private empty constructor for SideEffectSet
* Back to ImmutableMap.of
* Speed up Fast Reorder Mode and make it default (#1653)
* Speed up Fast Reorder Mode and make it default
* Make non-exposed side effects internal
* Docs on isExposed
Co-authored-by: Matthew Miller <mnmiller1@me.com>
* Implement getNameUnsafe method to allow an unloaded world's name to be accessed
- Fixes#1671 and #504
* Add javadoc since tag
Co-authored-by: Alexander Brandes <mc.cache@web.de>
Co-authored-by: Alexander Brandes <mc.cache@web.de>
* Make postProcessSet a default method and change to void
* Throwable#getMessage is nullable
* Move (re-)ticking to a post-processor per "platform"
- Add fluid ticking
* chore: Ignore (for us) irrelevant rules
* chore: Fix correct toml syntax?
* Re-add removed method for API-compliance and refactor it to have a use
* Switch to javax annotations
* Switch to recalcBlockCounts for ticking blocks.
* No need to set air count anymore either
* We can still "not tick" in fast mode in 1.17.2
* update adapters
* Let paper create the chunk section if biomes are null
* Adjust notes to settings
* 1.17.2 didn't exist
* Add 1.18.2
* Don't attempt to cache plains biome ID
* Use correct annotation
Co-authored-by: NotMyFault <mc.cache@web.de>
* Re-add "//snap" and "//snapshot"
* Place code in correct method
* Use CompoundBinaryTags in AnvilChunk18 and implement biome/entity restoration
* Address comments
* Fix biome reading
* Fix retrieval of entities from zipped snapshot world
Co-authored-by: Alex <mc.cache@web.de>