Skip to content

[WE] More world editing commands #1214

@Argmaster

Description

@Argmaster

#1141 introduces very basic set of commands for editing world, basically focusing on copying and pasting structures to/from clipboard.

To effectively modify worlds there following commands should be implemented too:

  • /undo - removes last change done with world editing command.
  • /redo - reapplies last change undone with /undo command.
  • /paste - place clipboard into the world.
    • /paste <x> <y> <z> - place clipboard at x y z location, coordinates indicate 0, 0, 0 corner of the blueprint.
  • /set <pattern> - sets all blocks in selection to a given block. (Add /set command #1236)
    • support for block patterns
    • support /undo when applied to selection
    • support -c flag for applying command to clipboard instead of selection
  • /replace <mask> <pattern> - replaces all the blocks of the first type with blocks of the second type. Mind that in this case mask indicates block that are supposed to be replaced, opposite to /mask (Add /replace command #1424)
    • support /undo when applied to selection
    • support -c flag for applying command to clipboard instead of selection
  • /mask <mask> - excludes blocks from being modified by /set, etc. (Add /mask command #1337)
  • /stack <N> [direction] - repeats current selection N times in direction player is looking. Optionally allows to override direction.
    • support /undo when applied to selection
    • support -c flag for applying command to clipboard instead of selection
  • /array <x-reps> <y-reps> <z-reps> - similar to /stack and Blender array modifier - creates x by y by z array of repetitions of current structure.
    • support /undo
    • support -c flag for applying command to clipboard instead of selection
  • /move <relative-distance> [direction] - moves blocks from current selection into direction player is looking. Optionally allows to override direction.
    • support /undo
  • /flip - flip content of clipboard top-down
    • support /undo when applied to selection
    • support -s flag for applying command to selection instead of clipboard
  • /rotate [angle] - rotate content of clipboard around Z axis counterclockwise. (Add /rotate command #1225)
    • support /undo when applied to selection
    • support -s flag for applying command to selection instead of clipboard
  • /sphere <radius> [pos0|pos1|player] - creates a sphere of radius radius around player, optionally second argument can be used to select between selection position 0, selection position 1 and player position.
    • support /undo when applied to selection
    • support -c flag to generate sphere in clipboard instead of around player
  • /select <grow|shrink> <up|down|posX|negX|posY|negY|horizontal|vertical> <blockCount> - manipulate existing selection.
    • Selection modifying wand for adjusting selection after it was created.

It would also be useful to implement pattern syntax similar to what WorldEdit offers.

Brushes should be implemented as single item similarly to #297

Metadata

Metadata

Assignees

Labels

contentengineexperimentala feature or idea that will require lots of experimentationrefactorshuffle code aroundui/ux

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions