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)
- Per player inventory mode (0, 1, 2)
- Use mode 2 for survival (setting air doesn't give you the blocks)
- Fixes several duplications glitches
- Adds speed and placement type option per player
-
Usage /plot trimchunks <world> <trim-unowned>
Fixes for Anvil
e.g. /plot trimchunks plotworld true
Will output the trimmed world to another folder (you need spare disk
space)
Some minor fixes.
Added WeakFaweQueueMap which will discard changes when low memory
Optimize spline
Translate spline brush
Add various new patterns (#nox #noy #noz #rel `[stone,wood,blah`
#existing
Can now use percentages with patterns, not just blocks e.g.
50%#clipboard,50%stone
Add resettable patterns
Async flush the changeset (sync flush for undo when needed)
- Not any faster, but edits will feel significantly faster
Fix incorrect bit mask for fixlighting packet sending
Fixes#305 //sel extend bug
Translate a few messages
Add option `store-redo: true`, disabling will result in smaller history
but cannot use redo
Add option `small-edits: false` will reduce history by assuming edits <
4096x256x4096
Change FaweStreamChangeSet to use new settings, but be backwards
compatible (uses mode byte)
Add auto generated semantic version (may not be accurate)
Add recursive brush
Optimize undo/redo using mutable change objects
Tweak several classes to implement HasFaweQueue
Fix wrong cancel message for entity/biome changes
Optimized offset mask
Fixed masks not being reset after edit
Added interface ResettableMask used to reset masks after being used for
an EditSession
Added MaskTraverser for traversing and resetting inherited masks after
use
Added angle mask \#,#
Added id,data,combined mask #id #data #iddata (Must match starting block
id/data)
Added x,y,z axis mask #xaxis #yaxis #zaxis
Add mode 4 FAWE format (short location prefix + no combined from bytes)
Fix `/frb` command not respecting regions
Tweak permission for `/frb` -> worldedit.history.rollback
Translated ToolUtil commands
Reduce max memory allocation size
- Uses multiple byte arrays instead of one large one for streams
- Faster read/write as less dependent on arraycopy
Remove world compression (it was buggy / there was no interest)\
EditSession can now be used as a world
Fix pos1/pos2 being allowed outside the world
Fixed liquid mask not being thread safe
Fixed plot upload
Reduce packet sending
- Increase delay to being able to see blocks, but more efficient