When setting the count
argument of /particle
to 0, the dx
dy
and dz
arguments are usually used to set motion, where speed
acts as a multiplier.
This, however, is handled very inconsistently:
Totally ignores motion | Normalizes motion | Uses motion |
---|---|---|
These particles could support motion, but just ignore the passed in values, either creating them still or with fixed unchangeable motion values. | These particles take the motion values, normalize them to the same effective magnitude, and randomize and scale them a bit. You can control the direction, but not the magnitude. This is technically the default for particles according to the code. | These particles use the motion values for their motion, possibly with some additional randomness or scaling, but in a magnitude-preserving way. |
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
1. Only uses dy
, it ignores dx
and dz
2. For some reason requires dy
to be 0, otherwise it ignores dx
and dz
3. Uses dx
to determine its size. (This should probably be ported to a particle argument, like dust
's size.)
4. Has a required target argument, which makes the particle move toward the specified location, it ignores the dxyz values still.
5. Has a required destination argument, which makes the particle move toward the specified location, it ignores the dxyz values still.
Interestingly, block{block_state:"cobweb"}
, item{item:{id:"cobweb",count:1}}
and item_cobweb
all behave differently, despite visually being the same particles.
Objectively, the last group's behavior is the most useful to map makers, and the other 2 behaviors can be recreated with it as well.
It might be an overal good idea to move this behavior to a new argument, rather that keeping it as a count 0 special case.
To reproduce:
/particle <id> ~ ~2 ~ 0 0 1 1 0
If it stays in place, it ignores motion.
If it moves a small distance, it normalizes motion.
If it moves a large distance, it fully uses it as motion
Can confirm.