The following //ezspline
subcommands feature three very powerful but more complex spline shapes with effectively limitless customizability.
Noise Spline
//ezsp noise
<pattern>
<radii>
[noise]
[depth]
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-h]
Generates a noise-based spline along the selected positions.
<Pattern>
:- Specifies the block(s) the spline is made out of.
[noise]
(Default: "Perlin(Freq:2,z:0.5)"):- The noise that should be embedded along the spline path.
[depth]
(Default: 0.7):- How deep the noise should cut into the cylinder-shaped spline. Depths approaching 0 approach the original cylinder-shaped spline, 0.5 means the noise may reach half the radius deep, and 1.0 means the full radius, reaching the center. Larger than 1.0 will result in a choppy look.
[-e <expression>]
(Default: "r=sqrt(x*x+y*y);t=r/d+1-1/d;f=r>1?1:(4*r*(r-1))^2;g=f*t+(1-f)*n;p=min(d,1);(g>t)*max((r-1)/p+1,0.01)
"):- Advanced parameter for nerds. Ignore if this above looks scary.
- This expression implements the functionality of the noise cutting into a cylinder at a certain relative
<depth>
. Derivation. If you really want to, you can come up with a different expression here to get a different result. If you don't need custom noises just use//ezspline expression
instead though. - Input parameters are
x,y,z,n,d
wherebyx,y,z
are assigned like in //ezspline expression,n
is the evaluation of the given<noise>
at the coordinatesx,y,z
andd
is the given<depth>
parameter. - An alternative expression could be:
r=sqrt(x*x+y*y);(r<1&&n>0.5)*max(n,0.01)
: If you only want the noise to be restricted to a cylinder shape
The remaining arguments are outlined on the Common Parameters subpage.
Example:
//ezspline noise ##Grayscale 10
Expression Spline
//ezsp expression
<palette>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-z] [-o]
[-h]
<expression...>
Generates a spline shaped by the given WorldEdit expression along the selected positions.
<Palette>
:- Specifies the block palette.
[-z]
:- Without setting this flag, the domain of the z-axis is 0 to the length of the spline divided by the radius. You may set this flag to normalize the z-Axis, that runs along the path of the spline, to the [-1,1] domain.
[-o]
:- By default, expression output maps >0..1 to the palette. Use this flag to instead map the output to whole numbers.
<expression...>
:- A WorldEdit expression. Input variables are
- -1 ≤
x
≤ 1 - -1 ≤
y
≤ 1 - 0 ≤
z
≤ L, whereby L is the length of the spline divided by its radius. - or -1 ≤
z
≤ 1, if you're using the-z
flag.
- -1 ≤
- Output is either a normalized palette index (0,1] or if using the -o flag (0,P] whereby P is the number of blocks in the palette. Note that <=0 means not placing any block.
- A WorldEdit expression. Input variables are
The remaining arguments are outlined on the Common Parameters subpage.
Example:
//ezspline expression clay 10 -t 90 R=0.2;r=0.1;w=0.7;s=0.5;sqrt((abs(x)-w)^2+y^2)<R||sqrt(((z+1)%s-r)^2+y^2)<r&&abs(x)<w
Expression by imhols
Structure Spline
//ezsp structure
<structure>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-z]
[-h]
Embeds a structure along the path defined by the selected convex region.
<structure>
:- The shape/clipboard/schematic to embed along the path. See available-structures.md.
[-z]
:- Normalizes the Z-Axis, which results in exactly one structure being stretched out throughout the entire length of the path.
The structure will be placed in its Z-direction facing along the path. Multiple instances will be repeated one after another as often as its bounding box fits, unless you use -z
, in which case one instance of the structure will be stretched across the whole length of the path.
The remaining arguments are outlined on the Common Parameters subpage.
Examples:
//ezsp structure TS(P:##GlowPurple,S:Heart,T:=(z+y)*.4+.5) 12