TVPT / VoxelGunsmith

Equipping VoxelSniper. The API for the popular Long Range Terraforming plugin VoxelSniper.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stencil & Stencil Lists

mickare opened this issue · comments

Should not need further explaining than the title

It is/was the best command to create huge forests and landscapes.

Old commands:

Stencil:

  • /b st Shows in-game help
  • /b st [name] Makes a new stencil by selecting a cuboid with first two arrow right clicks
  • /b st [fill|full|replace] [name] Selects the paste method for stencil and the stencil to be pasted

Stencil Lists:

  • b sl [file] Right-click with the arrow, it pastes randomly one of the stencils defined in the file.

Can you add the label "enhancement"?

Needed for easy upgrade:

  • Automatic conversion from old stencils and lists.

Other things to consider:

  • Storing stencils in the MCEdit schematic format and converting the old stencil format to scheamtics
  • creating stencil lists ingame
  • selecting a transformation to apply to the stencil when placing it in (rotating flipping) for both stencils and stencil lists

MCEdit-Schematic File Format

Reference link to WorldEdit's git

Stencils

In generall wouldn't it be consequent to do the transformation as a mask / effect?
So also other masks & effects apply to the stencil?

Like a new transformation masks (parameters):

  • Rotation (base rotation + optional random with amplitude)
  • Flipping (direction)
  • Offset (base offset + optional random with amplitude)

Inter-plugin compatibility

  • Importing / Exporting stencils to WorldEdit.

Stencil Lists

  • Ingame maintaining
    • Search for lists / stencils
    • Add, Remove stencils from lists.
    • Create, delete and clear lists.

Yeah thats a good point, having the stencil brush work a lot like a shape (but not quite) might be good so that we can simply have the a rotation mask apply to the stencil. I'd need to modify the current way masks work to hand them a 'view' of the world rather than them looking at the world directly. Since we can then pass a view into a schematic to them in place of the world.

Interoperability with worldedit / other plugins which use schematics is moot since we would be changing away from the stencil format (its crap anyway) to using the schematic format by default.

I did recently a lot with netty and before with world edit.

Why not building something like a brush pipeline?

E.g.:
(World+Position)-> Shape -> Shape -> Mask -> Mask -> Effect -> Effect -> (turning point, other direction out)

Each layer has the methods ingoing & outgoing of a modificatable work object and they pass it through the pipeline.
On their way through the pipeline they get modified, ignored, etc.

That is essentially how it works right now see BrushChain.java