Improved web integrated clipboard
Fully fledged brush visualization (modes 0-2): //br vis
Brush targeting modes (0-3): //br target
Brush scroll actions: //br scroll
- change clipboard from directory or web
- change mask
- change pattern
- change range
- change size
- change target mode
Build multi-brushes (choose the brush for left click and right click
individually)
- //br primary
- //br secondary
- Changing the pattern/mask will affect the currently selected brush,
not both
Changes to brush behavior
- spline connects by clicking the same spot twice
- line/copy brush tweaks
Schematics now default per user
- To save/load globally use "../" before the filename
Easily save a schematic to a directory
- `//schem save folder/` will choose save a the next lowest free number
Improved block parsing
Add resettable brushes
- e.g. line brush resets points by shift + left click
Fixes#439
Update to Java 8
Adds scrollable brushes to the API (action on brush scroll)
- Clipboard
- Mask
- Pattern
- Range
- Size
Adds movable brushes to the API (action on brush move)
Adds different targeting modes for brushes (see enum TargetMode)
Adds VisualBrush to API (sends client block changes instead of changing
the world)
Updater now checks every 30m for updates
Adds in game updater changelog (/fawe changelog)
Adds language option to config
Adds german translations
Adds CircleBrush (WIP)
Simplify DoubleActionBrush and DoubleActionBrushTool to extend
Brush/BrushTool
Use ImmutableBlock instead of anonymous BaseBlock for cache
Fixes CuboidRegion iteration (affected some commands)
Fixes WorldCopyClipboard schematic saving
Optimize FawePlayer -> Player by caching value
Simplified pattern and mask API by extending legacy versions
Optimize sphere, cylinder and deform
Added brush cancellation by SHIFT + LEFT CLICK
Probably some other stuff
Fix biome change not sending packet
Add optimized biome get and set (AsyncWorld, EditSession etc.)
Add undo for biome changes
Fix tile entities for slow (non NMS) bukkit queue
Translate some stuff
Fix some concurrency issues with autoqueue
cuboid region geChunks() now has fixed memory cost (applies to commands
e.g. //listchunks)
Fix some undo issues
Fix for Vector/BlockVector
Use optimized LocalBlockVectorSet for various operations
- Ideally I'd like the operations to use O(1) memory, but for now it'll
use substantially reduced O(n)
Some message tweaks
Some minor entity placement optimizations
Refactor set optimization to be in the EditSession class
Fix and minor optimizations for for countBlocks()
Minor optimizations for affine transforms (//rotate etc.)
Optimizations for fuzzy block mask
The LocalBlockVectorSet implements Set<Vector>
- Faster than a HashSet and uses 100-800x less memory
- Limited to vectors all within a 2048x256x2048 area
Add light related masks
- #opacity
- #brightness
- #blocklight
- #skylight
- #light
- #nolight
- #haslight
Add mask tab completion
Add source masks
- `/gsmask` and `/smask`
- Masking the source instead of the destination (e.g. with //paste)
- if there is no source, the current block/extent will be used
This is an alias for getSelection.
It enables CraftScripts to get a world selection as it is not possible to use getSelection which have two default implementations.
`//sel fuzzy` or `//sel fuzzy=<mask>`
- All connected blocks matching the mask (default is same id/data) will
be added.
- Left click to select the region
- Right click to add to the existing region
Added command tab completion for patterns
Tick limiter:
- Ignore redstone physics
- Per chunk limiting (rather than global)
- Notify console of any limiting
Changes default settings for low memory usage rather than speed:
- Doesn't effect any existing configs, just new installs
- Uses disk and database for undo/redo/clipboard
- Uses compression level 8 instead of 1
Fixes 1.8 queue failing on no isDirty field
Fixes rare chunk skipping
Fixes queue staging issue
Tweak undo/redo failure messages to provide more info
Added sand/gravel sphere message so that people don't ask me "why it no
work!?"
Add #clipboard transform
Add #fullcopy pattern
- similar to transform, it pastes the full clipboard at any changed
block
- e.g. //replace <marker> #fullcopy
Async block get optimizations for bukkit by running tasks multiple times
during a single tick
Tweak the OOM message to be more informative
Tweak the max memory config comment to be more informative
Restructured transforms to use resettable extent + reduce code
duplication
Clipboards can now be streamed to a schematic file without significant
memory overhead
- This means you can now load/paste/copy/save arbitrarily large sizes
with fixed memory usage
Optimizations to the various clipboard implementations
Add optimized extent block translation (no additional object creation
for set block)
Optimized forward extent block copy
- use optimized extent transform/translate
- pre calculate required functions/extents outside iterations
- short circuit certain functions depending on input parameters
Use edit session for patterns rather than world (faster/safer)