Commit Graph

305 Commits

Author SHA1 Message Date
wizjany
de08c8b8c7
Add better control over expression timeouts. (#451)
Add better control over expression timeouts.
* //timeout command can be used to change player's current timeout.
* Config now also has a max timeout, can be bypassed with permission
* Timeout of < 0 will let expressions run indefinitely.
* Said expressions won't run on a separate thread, slightly reducing the
  overhead from context switching. For large //gen commands, for example,
  this can actually increase speed.
2019-03-06 19:58:32 -05:00
wizjany
f84f3c6f85 Fix error when parsing hand/offhand/pos1 as blocks. 2019-03-03 19:51:49 -05:00
wizjany
aafb854e4f More useful names for block ItemTypes. 2019-03-02 12:26:26 -05:00
wizjany
c3ee926a2e Correctness improvement for legacy data in expression generation. 2019-03-02 11:55:03 -05:00
wizjany
e53962dadd Apply source function after source mask in ForwardExtentCopy.
The source function should only get applied to actually copied blocks.
2019-03-01 21:15:21 -05:00
wizjany
f46c70093c Fix the long-range build tool's ability to build mid-air. 2019-03-01 20:10:46 -05:00
wizjany
0656ef1920 Fix LayerVisitor stopping early instead of skipping covered columns. 2019-03-01 19:25:10 -05:00
wizjany
4bd6d73085 Fix some bad copy-pasta in expression environment queries. 2019-02-28 01:03:02 -05:00
wizjany
243d6476ac Re-add smooth filtering via a mask.
Instead of trying to maintain a list of "natural terrain blocks", just
let the user specify a mask of blocks to use for the height map filter.

https://gfycat.com/severaljauntycondor
2019-02-26 23:54:53 -05:00
wizjany
9eeb0acffe Add radius checks to a few more utility commands. 2019-02-25 18:41:20 -05:00
wizjany
2f734d4570 Check radius instead of diameter for clipboard brush.
This brings it more in line with other brushes in terms of allowable size.
2019-02-25 18:41:19 -05:00
Matthew Miller
5de8e0852c Treat categories as empty when missing 2019-02-18 21:17:36 +10:00
Matthew Miller
50a286b070 Update the block/item category registries - this won't build until a Spigot PR is merged though. 2019-02-17 13:30:40 +10:00
Matthew Miller
3683a0438a Use nonNull rather than !isNull 2019-02-16 19:58:06 +10:00
Matthew Miller
db1315e043 Refactor registries to entirely use the platform 2019-02-16 19:35:13 +10:00
Matthew Miller
1b101740fe Use a proper registry for biomes 2019-02-16 17:27:00 +10:00
Matthew Miller
d6bc85ccbe Speed up the BlockState hashCode method by caching (As it's Immutable). Allows some better optimisations in the future by using them as map keys 2019-02-16 12:46:10 +10:00
wizjany
de9d202681
Clear shaped brush material on command.
The initial material is held in the factory, but if a brush was previously bound, that pattern is used.
Now, using `//br set` will clear the previous material, allowing the OperationFactory's material to work.
This can be changed later with `/mat`, which will once again set the fill on the tool, overriding the factory's context.
2019-02-15 14:51:26 -05:00
wizjany
88014b18a3 Added a few new things using block states.
* `//set ##*tag` sets all states in the tag (not just default state per type)
* `//set ^type` is a pattern changing block type but copying all valid existing states
* `//set ^[prop=val,...]` sets the property `prop` to `val` wherever the existing block has that property
* `//set ^type[prop=val,...]` does both of the above
Those work anywhere a pattern is taken, of course.

* The mask syntax `^[prop=val]` matches blocks with the property `prop` set to `val`, or blocks that don't have the property at all.
* The mask syntax `^=[prop=val]` only matches blocks that have the property.
Those work anywhere a mask is taken, of course. (`//mask`, `//gmask`, `//replace`, etc)

The `//drain` command now takes `-w` flag that removes the waterlogged state from blocks (in addition to removing water, as before).
2019-02-14 17:21:01 -05:00
wizjany
287be0209c Slight readability and usability improvements.
Also no longer allows trailing strings (e.g. //set #clipboardasdf).
2019-02-12 17:11:57 -05:00
wizjany
19796aa3be Added offset to ClipboardPattern.
Takes input like '//set #clipboard@-1,0,1' which shifts the pattern over.
It also now extends RepeatingExtentPattern, which was previously unused.
2019-02-12 17:11:57 -05:00
Wizjany
76400e533d
Add missing flags to clipboard brush usage. 2019-02-11 12:50:51 -05:00
Matthew Miller
3e988e7ffe Fixed parsing fuzzy blocks failing. 2019-02-11 20:30:42 +10:00
wizjany
6708e8292f Restore generation of hollow shapes.
Unfortunately this is a bit slower than before since we can't cache block
id & data values. However, applying patterns generally isn't too expensive,
and hollow regions were entirely broken before.
2019-02-09 20:30:57 -05:00
wizjany
cdd71178f5 Ensure BlockCategories are initialized.
We should probably have a way to initialize all these catalog classes ahead of time.
2019-02-04 22:34:25 -05:00
wizjany
dddf2b963a Fix long-range build tool.
Blocks were always placed around 0,0,0 since the trace direction was being used as a position.
Also the message was backwards.
2019-02-03 19:27:30 -05:00
Matthew Miller
f3ec5bbdde Added a ##tag parser Pattern. gives a random combination using the blocks from the tag with an equal distribution. 2019-01-31 22:28:04 +10:00
Matthew Miller
2f9c7f19f5 Added support for 'rotation' BlockState values. 2019-01-22 21:59:20 +10:00
Matthew Miller
2e0fa300b7 Actually support disabling chunk loading extent 2019-01-22 21:34:37 +10:00
Brokkonaut
432a201266 Make biome changes undoable 2019-01-21 19:07:29 +01:00
Matthew Miller
871541d8c0 Tweak the last access extent cache to provide better caching 2018-12-29 19:21:45 +10:00
Kenzie Togami
2f8bdccf65
Clarify state when asking for caps with no platforms 2018-12-28 22:20:12 -08:00
Matthew Miller
862b63d43a Can't query the row directly 2018-12-28 18:06:41 +10:00
Matthew Miller
54b6e57186 Few minor improvements to the fuzzy system. 2018-12-28 15:05:05 +10:00
Matthew Miller
b544782f3b Make the base fuzzy cached per block type 2018-12-27 15:33:19 +10:00
Matthew Miller
8da984d9f9 Fuzzier fuzzies 2018-12-27 15:19:58 +10:00
Kenzie Togami
386668d221
Clean up other compiler warnings 2018-12-26 16:50:24 -08:00
Kenzie Togami
3fefcbf971
Remove all raw usages of BSH, improve API generics 2018-12-26 16:39:10 -08:00
Matthew Miller
a88f6b8430 Minor improvements to the server side CUI 2018-12-26 18:15:17 +10:00
Matthew Miller
b75d5149eb Fixed the bundle being directly used outside of the registry system. 2018-12-23 21:43:20 +10:00
Matthew Miller
1d5e9b7d04 Few fixes 2018-12-23 21:24:58 +10:00
Matthew Miller
645fd682b6 Finish porting all the old masks across 2018-12-23 19:10:05 +10:00
Matthew Miller
6312bcecf6 Fixed the item parser not using the ItemRegistry 2018-12-23 19:02:58 +10:00
Matthew Miller
c5d9aadab8 Start work on modularising masks and patterns 2018-12-23 18:56:26 +10:00
Matthew Miller
d6977aeae4 Allow a pattern for the leave-id of //move 2018-12-22 17:26:02 +10:00
Matthew Miller
8d07877463 Pass the exception converter through more. 2018-12-21 17:31:27 +10:00
Matthew Miller
ea30578781 Added a way to get the spawn position of a world 2018-12-21 17:05:30 +10:00
Matthew Miller
c949b07df1 Added a method to teleport entities across worlds. 2018-12-21 16:56:10 +10:00
Matthew Miller
b300c21185 Update draw.js and roof.js 2018-12-20 13:43:01 +10:00
Matthew Miller
5eb9b779d7 Move the pasting system over to WorldEdit, and add a /we report command. Currently only reports system status and the config. Need to add a platform reporter system. 2018-12-18 19:28:55 +10:00