Commit Graph

550 Commits

Author SHA1 Message Date
Matthew Miller
0620478763
feature(cli): Added a CLI version of WorldEdit, and allowed most commands to be run from console (#508)
* Re-do commits to avoid awful rebase

* You can load and save a schematic file now. Still gotta setup ability to use commands as a console actor.

* Add a world override concept to LocalSession, and allow a lot more commands to be performed by actors.

* Fixed commands, and set the loaded schematic as the world override in CLI

* Properly load tags

* Added 1.14.4 data values

* Allow a majority of commands to be performed by the console.

* Fixed a lot of PR requested changes

* Added a Locatable interface and use that for getting the location of the player in commands.

* Added script support. Currently requires a newline at the end of the script.

* Shade everything to allow this to run locally - should probably minimize this to an extent later.

* Actually hook up the version

* Added a //world command to set the override

* Fixed a missed checkstyle issue

* Added CommandBlock support to Bukkit

* Make command block support configurable

* Minor cleanup and implementing a few of the final functions

* Fixed most issues from PR

* Improve UX, saving is now automatic and unknown command messages show

* Better save docs and support any clipboard format

* Include the entire formats list

* Arrays.copyOf

* Clear the world override if the selector is called on another world.

* Update logging extent to allow basic logging with non-player actors
2019-08-25 19:58:28 +10:00
Kenzie Togami
33633acbe7
Add validator extent to every entry point, fix extent ordering 2019-08-12 10:04:29 -07:00
Kenzie Togami
f472c20bfb Memory optimizations (#505)
* Remove LocatedBlock overhead in LBL map

* Add new space-efficient block map, with thourough testing

* Drop ordering property, add full insertion test

* Add licenses

* Fix mocked platform conflicts

* Disable full block map testing for faster builds

* Re-implement BlockMap with fastutil maps

* Re-write chunk batching to be memory efficient

* Make MultiStageReorder use BlockMap

* Increase LBL load factor, fix long-pack limit detection

* Fix infinite loop in chunk batching

* Save memory in history by cleaning up MSR

* Re-implement LocatedBlockList in BlockMap

* Fix data race with BlockType lazy fields

* Make IDs ALWAYS present, only runtime-consistent. Use for memory efficiency in BlockMap

* Remap inner structure of BlockMap for smaller maps

* Remove containedBlocks fields, not very efficient

* Fix minor de-optimizing bug in stage reorder

* Make long packed y signed

* Add extended Y limit configuration option

* Add licenses

* Store 3 ints for unoptimized BV list

* Add final to BitMath

* Correct int-cast for long-packing
2019-08-12 22:06:40 +10:00
wizjany
61bc012f6f
Fix source masks using EditSession instead of clipboard. (#515) 2019-08-10 11:54:22 -04:00
Kenzie Togami
f83de2a703
Fix bug with spaces at end of suggestions. 2019-08-08 16:28:00 -07:00
wizjany
0e25839490
Fix schematic list box loading schems with spaces in path. 2019-08-08 10:14:16 -04:00
wizjany
95d5adb30c Update docs links to point to enginehub. 2019-08-06 21:49:43 -04:00
wizjany
d822ccc9e5 This is how Mojang checks if trees can grow.
Subject to changes.
2019-08-05 23:16:42 -04:00
wizjany
e25a6d21cd Add -e/-b/-m flags to //stack and //move, to match copy and paste.
Fixes WORLDEDIT-3935.
2019-08-05 22:47:57 -04:00
wizjany
a1465c02ed Make EditSession#center (//center) set even y blocks.
At some point this was fixed for x and z but never for y...
2019-08-05 22:44:51 -04:00
wizjany
6ab74dc7e5 Add missing radius checks.
Courtesy @mathiascode.
2019-08-05 17:39:00 -04:00
wizjany
4b54c32f3a Skip invalid blocks in schematics. 2019-08-04 15:56:16 -04:00
wizjany
df9d766eb3
Merge pull request #513 from EngineHub/bugfix/reloadable-internal-state-ids
Re-load internal state IDs when WORLD_EDITING cap is re-loaded
2019-08-03 09:59:10 -04:00
Kenzie Togami
f848d3114f
Re-load internal state IDs when WORLD_EDITING cap is re-loaded 2019-08-02 15:47:29 -07:00
wizjany
9a133c05d1
Merge pull request #510 from EngineHub/feature/blocks-are-patterns
Make BlockStateHolder extend Pattern.
2019-08-02 17:42:14 -04:00
wizjany
afae2b0784 Make TE tag optional for MCEdit schems too.
And name our threads here too.
2019-08-01 20:15:34 -04:00
wizjany
9d9e3ea065 Remove overrides. 2019-07-28 22:50:42 -04:00
wizjany
6631b6bdf0 Make BlockStateHolder extend Pattern.
Removes the need for wrapping them in BlockPattern.
2019-07-28 18:20:00 -04:00
wizjany
f4c238c3da Load chunks when setting biomes too. 2019-07-28 10:21:29 -04:00
wizjany
c93e5ccfdf Don't suggest ##* for masks. 2019-07-28 10:02:47 -04:00
Kenzie Togami
50cea37439
Fix other minor suggestion bugs 2019-07-27 23:49:11 -07:00
Kenzie Togami
76b608f90b
Fix suggestions on Bukkit for good 2019-07-27 23:31:38 -07:00
Kenzie Togami
3a5170a0e8
Potenially fix quoted string completion 2019-07-27 18:12:18 -07:00
Kenzie Togami
d134820bcb
Merge branch 'master' into fix/quoted 2019-07-27 17:41:44 -07:00
wizjany
8f33e0d550 Make a bunch of paginations internal, generify command boxes. (#509) 2019-07-27 14:35:38 +10:00
wizjany
415cdc0ab2 Output to debug only if we have a valid DFU for schematics.
Warn for backwards (since we can't DFU) and info for missing DFU
(since it might still be compatible).
Under normal circumstances, a DFU should be available so we'll only
log to debug (which is generally off).
2019-07-24 19:05:39 -04:00
wizjany
78488d9b76
Merge pull request #495 from EngineHub/hotfix/nav
Pass through wall improvements
2019-07-23 22:17:15 -04:00
wizjany
4ee2d3b47c Move isAllowedToFly and setFlying to AbstractPlayer, protect them. 2019-07-23 22:16:26 -04:00
wizjany
2cc6a367c6 Move floatAt logic to AbstractPlayer, add isAllowedToFly and setFlying. 2019-07-23 22:16:26 -04:00
wizjany
8545417b3a Fix error in /up when used out of bounds.
Also reduce calls to Entity#getLocation() all over since it's
more expensive than it needs to be (adapts world/vector every time).
2019-07-23 22:16:26 -04:00
Wyatt Childers
917f8a1842 Pass through wall improvements
This change simplifies the algorithm greatly.

Additionally, this fixes a bug where if standing in a non-solid block
i.e. a glass pane, //thru, and the nav wand would not work.
2019-07-23 12:53:10 -04:00
wizjany
edb2e919e7 Add more id conversions.
Bukkit apparently lower cases these for us, but not Forge.
(And invalid block entities are fine - invalid keys are not).
2019-07-19 21:45:25 -04:00
Jesse Boyd
1d413cde76 BrushTool typo 2019-07-17 10:56:28 -04:00
wizjany
05cee0a30b Don't overwrite history during changes.
Fixes issues with some changes not being undone.

I mean, the sphere algorithm needs to not set blocks 20 times,
but other things can trigger this too.

Also allow radius 0 sphere via //sphere (because /br sphere allows it).
2019-07-16 21:43:14 -04:00
wizjany
f75104f2ac Actually use fixed IDs in MCEdit reader.
Fixes WORLDEDIT-3947.
2019-07-16 19:45:27 -04:00
Kenzie Togami
e98b99edcd
Properly acquire JUnit 4, drop json-simple 2019-07-15 16:38:33 -07:00
Kenzie Togami
5277f99bf2
Minor fixes for craftscripts in Forge 2019-07-12 13:49:45 -07:00
Kenzie Togami
9e7d46662c
Merge pull request #498 from EngineHub/feature/improved-chunk-batching
Buffered extent improvements
2019-07-10 14:25:22 -07:00
Kenzie Togami
e87a5559d6
Ensure blocks are not moved below world boundary 2019-07-10 14:10:22 -07:00
Kenzie Togami
2ee71cc72f
Grav brush: move to bottom, not down one 2019-07-06 15:41:11 -07:00
Kenzie Togami
3ad80665d8
Fix gravity brush itself, not EditSession 2019-07-06 00:12:17 -07:00
wizjany
96e2b6c5af First attempt at fixing quoted string oddities. 2019-07-04 22:01:55 -04:00
wizjany
508ece9e0f
Use pagination for //distr and store results. (#496) 2019-07-04 19:33:37 -04:00
wizjany
a2b3aabbbf Typo fixes and command clarifications/cleanup.
Also re-disable the gradle daemon. It doesn't always play nice with
ForgeGradle and hogs ram.
2019-07-04 19:28:42 -04:00
Kenzie Togami
f2c47f3759
License for new class 2019-07-04 11:55:27 -07:00
Kenzie Togami
99ee32fe8e
Many fixes for buffered extents 2019-07-04 11:43:36 -07:00
Kenzie Togami
d27daefd3e
Implement getBlock for chunk batching extent
Also improve speed of comparators, by using ::comparingX and bitwise
ops.
2019-07-03 21:11:36 -07:00
wizjany
625cbe5e3d Make //count take a mask. Also doc updates, perm fixes. 2019-06-30 00:38:17 -04:00
wizjany
1d1c38887f Added worldedit.setwand permission required to change wand/navwand.
Players without this perm will be stuck with the configuration-defined
default wand/navwand items.
2019-06-29 14:15:58 -04:00
wizjany
6be77451b6 Correct perms for nav wand binding. 2019-06-29 13:55:58 -04:00